{"version":3,"file":"7973.53a46d9d2ea828ec.js","mappings":"wMAOO,IAAMA,EAAkB,UAAAC,EAAzB,MAAOD,EAWXE,YAAmBC,EAAwBC,EAAqBC,GAP/CC,KAAAC,aAAuB,YACvBD,KAAAE,UAAoB,SACpBF,KAAAG,YAAwB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,SAAU,aACrFH,KAAAI,aAAyB,CAAC,YAAa,UAAW,aAAc,YAAa,OAC7EJ,KAAAK,gBAAkB,GAClBL,KAAAM,kBAAoB,GAGnCN,KAAKH,WAAaA,EAClBG,KAAKF,SAAWA,EAChBE,KAAKD,QAAUA,CACjB,CAGOQ,QAAQC,GACb,MAAMC,EAAgBD,EAAWE,OACjCD,EAAcE,eAAiB,EAC/BF,EAAcG,aAAe,CAC/B,CAGOC,UAAUC,GACf,MAAML,EAAgBK,EAAcJ,OAC9BK,KAAeC,KAAKhB,KAAKI,aAAea,MAAuBC,KAAQJ,EAAcK,IAAKF,KAChG,EAAIG,KAAML,KACRf,KAAKqB,qBAAqBP,EAAeL,GACzCT,KAAKsB,aAAaR,EAAeL,GACjCT,KAAKuB,eAAeT,EAAeL,GACnCT,KAAKwB,gBAAgBV,EAAeL,GACpCT,KAAKyB,kBAAkBX,GAE3B,CAGOY,QAAQZ,GACb,MAAML,EAAgBK,EAAcJ,OAC9BK,KAAeC,KAAKhB,KAAKI,aAAea,MAAuBC,KAAQJ,EAAcK,IAAKF,KAChG,EAAIG,KAAML,IACRf,KAAK2B,uBAAuBlB,EAEhC,CAGOmB,YAAYC,GACjBA,EAAUC,gBACZ,CAGOC,KAAKC,GACV,MACMC,EAAcjC,KAAKkC,kBADHF,EAAUtB,OACyByB,OACzDnC,KAAKoC,cAAcH,EACrB,CAEOI,WACDrC,KAAKsC,mBACPtC,KAAKF,SAASyC,YAAYvC,KAAKH,WAAW2C,cAAe,QAAS,QAEtE,CAEOF,kBACL,SAAOG,KAAQzC,KAAKH,WAAW2C,cAAcL,MAC/C,CAEQd,qBAAqBP,EAA8BL,GACzD,IAAIiC,EAAajC,EAAcE,eAC/B,MAAMgC,EAAc,GACpB,KAAOD,EAAajC,EAAcG,cAChC+B,EAAYC,KAAKF,GACjBA,KAGF,EAAIxB,KAAQJ,EAAcK,IAAKnB,KAAKC,gBAAY,EAAKwC,KAAQE,GAC3DA,EAAYC,KAAKF,EAAa,IAAC,EACtBxB,KAAQJ,EAAcK,IAAKnB,KAAKE,aAAS,EAAKuC,KAAQE,IAC/DA,EAAYC,KAAKF,GAEnB,MAAMG,KAAQ7B,KAAK2B,EAAcG,MAAkB5B,KAAQT,EAAc0B,MAAMY,OAAOD,GAAQ,OAC9F,EAAK1B,KAAMyB,IACT/B,EAAcgB,gBAElB,CAEQR,aAAaR,EAA8BL,GACjD,MAAMU,EAAML,EAAcK,IACpB6B,IAAkC,EAAC9B,KAAQT,EAAcE,eAAiB,EAAGF,EAAcG,cAC3FqC,KAAmC/B,KAAQT,EAAcE,eAAgB,KAAa,GAAGQ,IAAMV,EAAc0B,MAAMY,OAAO,KAAQ/C,KAAKK,gBACvI6C,KAAoChC,KAAQT,EAAcE,eAAgB,KAAa,GAAGF,EAAc0B,MAAMY,OAAO,KAAK5B,IAASnB,KAAKK,iBACzI4C,GAAoCC,IAAsCF,GAC7ElC,EAAcgB,gBAElB,CAEQP,eAAeT,EAA8BL,GACnD,MAAM0C,EAAa1C,EAAc0B,MAAMiB,QAAQ,KACzCjC,EAAML,EAAcK,IACpB6B,IAAkC,EAAC9B,KAAQT,EAAcE,eAAiB,EAAGF,EAAcG,cAC3FyC,KAAmCnC,KAAQT,EAAcE,eAAgBwC,EAAa,KAAa,GAAGhC,IAAMV,EAAc0B,MAAMY,OAAOI,EAAa,KAAQnD,KAAKM,kBACjKgD,KAAoCpC,KAAQT,EAAcE,eAAgBwC,EAAa,KAAa,GAAG1C,EAAc0B,MAAMY,OAAOI,EAAa,KAAKhC,IAASnB,KAAKM,mBACnK+C,GAAoCC,IAAsCN,GAC7ElC,EAAcgB,gBAElB,CAEQN,gBAAgBV,EAA8BL,GACpD,MAAMU,EAAML,EAAcK,IACpBgC,EAAa1C,EAAc0B,MAAMiB,QAAQ,KACzCG,KAAerC,KAAQT,EAAcE,eAAgBF,EAAcG,cACnE4C,EAAkB/C,EAAcE,gBAAkBwC,EAClDM,EAAmBhD,EAAcE,eAAiBwC,EAClDO,IAAgB,EAACxC,KAAQC,EAAKnB,KAAKC,iBAAiB,EAACiB,KAAQC,EAAKnB,KAAKE,WACvEyD,IAAuB,EAAClB,KAAQhC,EAAc0B,MAAMY,OAAOI,EAAa,IAC1EI,GAAgBG,IAAmBP,EAAa,GAAKK,GAAqBG,GAAwBF,IACpG3C,EAAcgB,gBAElB,CAEQL,kBAAkBX,GACxB,MAAM8C,KAAY5C,KAAKhB,KAAKG,YAAcgB,MAAgBD,KAAQJ,EAAcK,IAAKA,KAErF,EAAIC,KAAMwC,IACR9C,EAAcgB,gBAElB,CAEQH,uBAAuBlB,IAC7B,EAAIS,KAAQT,EAAcE,eAAgB,KACxCF,EAAcE,eAAiB,EAC/BF,EAAcG,aAAe,EAEjC,CAEQsB,kBAAkBD,GAExB,SAAIf,KAAQe,EAAYc,OAAO,GADjB,KAGZ/C,KAAKD,QAAQA,QAAQ8D,SADrB5B,EAAc,KAAKA,MACsB,EAChCf,KAAQe,EAAYc,OAAO,GAJxB,MAMZ/C,KAAKD,QAAQA,QAAQ8D,SADrB5B,EAAc,IAAIA,KAIbA,CACT,CAEQG,cAAcH,GACpB,MAAM6B,KAAoBC,KAAK9B,IAE/B,EAAIf,KAAQ4C,EAAmB,GAC7B9D,KAAKD,QAAQA,QAAQ8D,SAAS,GAAG5B,QAAe,EACvCf,KAAQ4C,EAAmB,IACpC9D,KAAKD,QAAQA,QAAQ8D,SAAS,GAAG5B,EAAY+B,UAAU,EAAG,MAAM/B,EAAY+B,UAAU,KAE1F,WA7JWtE,0CAAkBuE,gCAAAC,MAAA,0BAAlBxE,EAAkByE,UAAA,yBAAAC,aAAA,SAAAC,EAAAC,GAAA,EAAAD,GAAlBJ,MAAA,iBAAAM,GAAA,OAAAD,EAAA/D,QAAAgE,EAAe,EAAfN,CAAkB,mBAAAM,GAAA,OAAlBD,EAAAzD,UAAA0D,EAAiB,EAAjBN,CAAkB,iBAAAM,GAAA,OAAlBD,EAAA5C,QAAA6C,EAAe,EAAfN,CAAkB,qBAAAM,GAAA,OAAlBD,EAAA1C,YAAA2C,EAAmB,EAAnBN,CAAkB,gBAAAM,GAAA,OAAlBD,EAAAvC,KAAAwC,EAAY,MAAZ7E,CAAkB,gECAzB,MAAO8E,EASX5E,YAAmB6E,EAAYC,EAAcC,EAAqBC,EAAgCC,EAAsBC,GACtH9E,KAAK+E,IAAMN,EACXzE,KAAKgF,MAAQN,EACb1E,KAAKiF,aAAeN,EACpB3E,KAAKkF,QAAUN,EACf5E,KAAKmF,YAAcN,EACnB7E,KAAKoF,aAAeN,CACtB,CAEO,eAAOO,CAASC,GACrB,OAAO,IAAId,EACTc,EAAiBb,GACjBa,EAAiBZ,KACjBY,EAAiBX,YACjBW,EAAiBV,OAAOW,IAAKC,GAA6BhB,EAAqBa,SAASG,IACxFF,EAAiBT,WACjBS,EAAiBR,YAAYS,IAAKE,GAAwBC,IAAWL,SAASI,IAElF,CAEA,MAAWhB,GACT,OAAOzE,KAAK+E,GACd,CAEA,QAAWL,GACT,OAAO1E,KAAKgF,KACd,CAEA,QAAWN,CAAKvC,GACdnC,KAAKgF,MAAQ7C,CACf,CAEA,eAAWwC,GACT,OAAO3E,KAAKiF,YACd,CAEA,eAAWN,CAAYxC,GACrBnC,KAAKiF,aAAe9C,CACtB,CAEA,UAAWyC,GACT,OAAO5E,KAAKkF,OACd,CAEA,UAAWN,CAAOzC,GAChBnC,KAAKkF,QAAU/C,CACjB,CAEA,cAAW0C,GACT,OAAO7E,KAAKmF,WACd,CAEA,cAAWN,CAAW1C,GACpBnC,KAAKmF,YAAchD,CACrB,CAEA,YAAWwD,GACT,OAAO3F,KAAK4F,SACd,CAEA,YAAWD,CAASxD,GAClBnC,KAAK4F,UAAYzD,CACnB,CAEA,eAAW2C,GACT,OAAO9E,KAAKoF,YACd,CAEA,eAAWN,CAAY3C,GACrBnC,KAAKoF,aAAejD,CACtB,CAEO0D,cAAcC,GACnB,OAAO9F,KAAKoF,aAAapE,KAAM+E,GAA2BA,EAAWC,QAAUF,EACjF,CAEOG,sBAAsBC,GAC3BlG,KAAKoF,aAAepF,KAAKoF,aAAae,OAAQJ,GAA2BA,EAAWC,QAAUE,EAAwBF,OACtHhG,KAAKoF,aAAaxC,KAAKsD,EACzB,CAEOE,2BACL,MAAMC,EAAkC,GAExC,OAAKC,MAAeC,kBAAkBvG,KAAKmF,cACzCkB,EAAsBzD,QAAQ5C,KAAKmF,aAGhCmB,MAAeC,kBAAkBvG,KAAKkF,UACzCmB,EAAsBzD,QAAQ5C,KAAKkF,QAAQsB,QAASC,GAAgCA,EAAML,6BAGrFM,MAAWC,WAAW,IAAIN,GAAyBO,GAAsBA,EAClF,CAEOC,yBACL,MAAMC,EAAgC,GAEtC,OAAKR,MAAeC,kBAAkBvG,KAAKkF,UACzC4B,EAAoBlE,QAAQ5C,KAAKkF,QAAQK,IAAKkB,GAAgCA,EAAMhC,IAAKzE,KAAKyE,IAG3F6B,MAAeC,kBAAkBvG,KAAKkF,UACzC4B,EAAoBlE,QAAQ5C,KAAKkF,QAAQsB,QAASC,GAAgCA,EAAMI,2BAGnFH,MAAWC,WAAW,IAAIG,GAAuBC,GAAoBA,EAC9E,CAEO,mCAAOC,CAA6BC,GAAkD,IAAAC,EAAAC,EAC3F,OAAO,IAAI3C,EACTyC,EAAyBxC,GACzBwC,EAAyBvC,KACzB,KAC+B,QAD3BwC,EACJD,EAAyBrC,cAAM,IAAAsC,OAAA,EAA/BA,EAAiC3B,IAAKkB,GAAoCjC,EAAqBwC,6BAA6BP,IAC3F,QADkGU,EACnIF,EAAyBtB,gBAAQ,IAAAwB,OAAA,EAAjCA,EAAmC5B,IAAK6B,GAAiCA,EAAQ3C,IACjF,GAEJ,+DCpII,MAAO4C,EAIXzH,YAAmB8E,EAAc4C,GAC/BtH,KAAKgF,MAAQN,EACb1E,KAAKuH,UAAYD,CACnB,CAEA,QAAW5C,GACT,OAAO1E,KAAKgF,KACd,CAEA,YAAWsC,GACT,OAAOtH,KAAKuH,SACd,4DCjBI,MAAOC,EAIX5H,YAAmB6E,EAAYC,GAC7B1E,KAAK+E,IAAMN,EACXzE,KAAKgF,MAAQN,CACf,CAEO,eAAOW,CAASC,GACrB,OAAO,IAAIkC,EAAyBlC,EAAiBb,GAAIa,EAAiBZ,KAC5E,CAEA,MAAWD,GACT,OAAOzE,KAAK+E,GACd,CAEA,QAAWL,GACT,OAAO1E,KAAKgF,KACd,2BCGI,MAAOyC,EAyBX7H,YACE6E,EAAa,KACbC,EAAe,KACfgD,EAAgC,KAChCC,EAA+B,KAC/BC,EAA2B,KAC3BC,EAAwB,KACxBC,EAAsB,KACtBC,EAA4C,KAC5CC,EAAoC,KACpCC,EAAsB,GACtBC,EAAkD,KAClDC,EAAkB,KAClBC,EAA6B,KAC7BC,EAAkC,KAClCC,EAAmB,KACnBC,EAAyB,KACzBC,EAA4C,GAC5C1D,EAA4B,GAC5B2D,GAAyB,EACzBC,EAAgB,KAChBC,EAAgB,MAEhB3I,KAAK+E,IAAMN,EACXzE,KAAKgF,MAAQN,EACb1E,KAAK4I,iBAAmBjB,EACxB3H,KAAK6I,aAAejB,EACpB5H,KAAK8I,QAAUjB,EACf7H,KAAK+I,OAASjB,EACd9H,KAAKgJ,YAActB,EACnB1H,KAAKiJ,eAAiBlB,EACtB/H,KAAKkJ,aAAelB,EACpBhI,KAAKmJ,UAAYlB,EACjBjI,KAAKoJ,iBAAmBlB,EACxBlI,KAAKqJ,SAAWlB,EAChBnI,KAAKsJ,oBAAsBlB,EAC3BpI,KAAKuJ,yBAA2BlB,EAChCrI,KAAKwJ,UAAYlB,EACjBtI,KAAKyJ,YAAclB,EACnBvI,KAAK0J,eAAiBlB,EACtBxI,KAAKoF,aAAeN,EACpB9E,KAAK2J,eAAiBlB,EACtBzI,KAAK4J,SAAWlB,EAChB1I,KAAK6J,OAASlB,CAChB,CAEO,eAAOtD,CAASyE,GAAgB,IAAAC,EACrC,MAAMhC,KAA4C3G,KAAM0I,EAAYE,sBAAwB,KAAOC,IAA2B5E,SAASyE,EAAYE,sBAE7IhC,KAAoC5G,KAAM0I,EAAY9B,aAAe,KAAOkC,IAAqB7E,SAASyE,EAAY9B,aAE5H,OAAO,IAAIP,EACTqC,EAAYrF,GACZqF,EAAYpF,QACZtD,KAAM0I,EAAYpC,YAAcoC,EAAYpC,WAAa,CAACvF,MAAO2H,EAAYpC,WAAWvF,MAAOgI,MAAOL,EAAYpC,WAAWyC,OAC7HL,EAAYnC,gBACZyC,IAAY,GAAGN,EAAYlC,gBAAa,EACxCxG,KAAM0I,EAAYjC,QAAUiC,EAAYjC,OAASwC,IAAcP,EAAYjC,QAC3E,KACAE,EACAC,EACA,MACA5G,KAAM0I,EAAY5B,iBACd4B,EAAY5B,gBACZ,IAAIb,EAA+ByC,EAAY5B,gBAAgBxD,KAAM,CACnE4F,YAAaR,EAAY5B,gBAAgBZ,SAASgD,YAClDC,mBAAoBT,EAAY5B,gBAAgBZ,SAASiD,mBACzDC,mBAAoBV,EAAY5B,gBAAgBZ,SAASkD,mBACzDC,kBAAmBX,EAAY5B,gBAAgBZ,SAASmD,oBAE9DX,EAAY3B,QACZ2B,EAAY1B,mBACZ0B,EAAYzB,wBACZyB,EAAYxB,YACZlH,KAAM0I,EAAYY,mBACdZ,EAAYY,kBACZ,CAACC,aAAcb,EAAYY,kBAAkBC,aAAcC,QAASC,MAAQf,EAAYY,kBAAkBE,SAAUE,MAAOhB,EAAYY,kBAAkBI,OAC7JhB,EAAYtB,cAAcjD,IAAKwF,GAAsBvD,EAAyBnC,SAAS0F,IAChE,QAD8EhB,EACrGD,EAAYhF,mBAAW,IAAAiF,OAAA,EAAvBA,EAAyBxE,IAAKQ,GAAoBL,IAAWL,SAASU,IACtE+D,EAAYrB,cACZuC,MAAYC,OAAOnB,EAAYpB,SAC/BoB,EAAYnB,MAEhB,CAEA,MAAWlE,GACT,OAAOzE,KAAK+E,GACd,CAEA,MAAWN,CAAGA,GACZzE,KAAK+E,IAAMN,CACb,CAEA,QAAWC,GACT,OAAO1E,KAAKgF,KACd,CAEA,QAAWN,CAAKA,GACd1E,KAAKgF,MAAQN,CACf,CAEA,mBAAWiD,GACT,OAAO3H,KAAK4I,gBACd,CAEA,mBAAWjB,CAAgBA,GACzB3H,KAAK4I,iBAAmBjB,CAC1B,CAEA,eAAWC,GACT,OAAO5H,KAAK6I,YACd,CAEA,eAAWjB,CAAYA,GACrB5H,KAAK6I,aAAejB,CACtB,CAEA,UAAWC,GACT,OAAO7H,KAAK8I,OACd,CAEA,UAAWjB,CAAOA,GAChB7H,KAAK8I,QAAUjB,CACjB,CAEA,SAAWC,GACT,OAAO9H,KAAK+I,MACd,CAEA,SAAWjB,CAAMA,GACf9H,KAAK+I,OAASjB,CAChB,CAEA,cAAWJ,GACT,OAAKpB,MAAeC,kBAAkBvG,KAAKgJ,eACzChJ,KAAKgJ,YAAY7G,MAAQnC,KAAKgJ,YAAY7G,MAAQ,IAAM,IAAM+I,KAAKC,MAA+B,IAAzBnL,KAAKgJ,YAAY7G,OAAe,KAEpGnC,KAAKgJ,WACd,CAEA,cAAWtB,CAAWA,GACpB1H,KAAKgJ,YAActB,CACrB,CAEA,iBAAWK,GACT,OAAO/H,KAAKiJ,cACd,CAEA,iBAAWlB,CAAcA,GACvB/H,KAAKiJ,eAAiBlB,CACxB,CAEA,eAAWC,GACT,OAAOhI,KAAKkJ,YACd,CAEA,eAAWlB,CAAYA,GACrBhI,KAAKkJ,aAAelB,CACtB,CAEA,YAAWC,GACT,OAAOjI,KAAKmJ,SACd,CAEA,YAAWlB,CAASA,GAClBjI,KAAKmJ,UAAYlB,CACnB,CAEA,mBAAWC,GACT,OAAOlI,KAAKoJ,gBACd,CAEA,mBAAWlB,CAAgBA,GACzBlI,KAAKoJ,iBAAmBlB,CAC1B,CAEA,WAAWC,GACT,OAAOnI,KAAKqJ,QACd,CAEA,WAAWlB,CAAQA,GACjBnI,KAAKqJ,SAAWlB,CAClB,CAEA,sBAAWC,GACT,OAAOpI,KAAKsJ,mBACd,CAEA,sBAAWlB,CAAmBA,GAC5BpI,KAAKsJ,oBAAsBlB,CAC7B,CAEA,2BAAWC,GACT,OAAOrI,KAAKuJ,wBACd,CAEA,2BAAWlB,CAAwBA,GACjCrI,KAAKuJ,yBAA2BlB,CAClC,CAEA,YAAWC,GACT,OAAOtI,KAAKwJ,SACd,CAEA,YAAWlB,CAASA,GAClBtI,KAAKwJ,UAAYlB,CACnB,CAEA,cAAWC,GACT,OAAOvI,KAAKyJ,WACd,CAEA,cAAWlB,CAAWA,GACpBvI,KAAKyJ,YAAclB,CACrB,CAEA,iBAAWC,GACT,OAAOxI,KAAK0J,cACd,CAEA,iBAAWlB,CAAcA,GACvBxI,KAAK0J,eAAiBlB,CACxB,CAEA,eAAW1D,GACT,OAAO9E,KAAKoF,YACd,CAEA,eAAWN,CAAYA,GACrB9E,KAAKoF,aAAeN,CACtB,CAEA,iBAAW2D,GACT,OAAOzI,KAAK2J,cACd,CAEA,iBAAWlB,CAAcA,GACvBzI,KAAK2J,eAAiBlB,CACxB,CAEA,WAAWC,GACT,OAAO1I,KAAK4J,QACd,CAEA,SAAWjB,GACT,OAAO3I,KAAK6J,MACd,CAEA,uBAAWuB,GACT,SAAQhK,KAAMpB,KAAK8H,OAA6B,KAApB9H,KAAK8H,MAAMuD,MACzC,CAEA,0BAAWC,GACT,cAActL,KAAK8H,MAAU,KAA8B,OAAf9H,KAAK8H,MAAiB9H,KAAK8H,MAAMyD,SAAW,IAC1F,CAEA,aAAWC,GACT,SAAOtK,KAAQlB,KAAK6H,OAAQwC,IAAcoB,kBAAc,EAAKvK,KAAQlB,KAAK6H,OAAQwC,IAAcqB,iBAClG,CAEA,kBAAWC,GACT,OAAO3L,KAAK6H,SAAWwC,IAAcuB,YACvC,CAEOC,YACL,SAAO3K,KAAQlB,KAAKwJ,UAAW,MACjC,CAEOsC,mBAAmB9F,GAA8B,IAAA+F,EACtD,OAAuB,QAAvBA,EAAO/L,KAAK8E,mBAAW,IAAAiH,GAA8D,QAA9DA,EAAhBA,EAAkB/K,KAAM+E,GAA2BA,EAAWC,QAAUA,UAAM,IAAA+F,OAAA,EAA9EA,EAAgF5J,KACzF,CAEO6J,yBAAyBC,GAA6B,IAAAC,EAC3D,MAAMC,EAAoB,IAAIzG,IAAW0G,IAAwBH,EAAKjG,OAAQiG,EAAK9J,QAE1C,QAAnB+J,EAAGlM,KAAK8E,mBAAW,IAAAoH,OAAA,EAAhBA,EAAkBG,KAAMtG,GAA2BA,EAAWC,QAAUmG,EAAkBnG,QAGjHhG,KAAK8E,YAAc9E,KAAK8E,YAAYS,IAAKQ,GAA4BA,EAAWC,QAAUmG,EAAkBnG,MAAQmG,EAAoBpG,GAExI/F,KAAK8E,YAAYlC,KAAKuJ,EAE1B,CAEOG,wBAAwBL,GAC7BjM,KAAK0H,WAAa,CAChBvF,MAAO8J,EAAKM,kBAAkBpK,MAC9BgI,MAAO8B,EAAKM,kBAAkBpC,MAElC,CAEOqC,oBAAoBP,GACzBjM,KAAK6H,OAASwC,IAAcoC,wBAAwBR,EAAKS,eACzD1M,KAAKuI,cAAanH,KAAM6K,EAAK1D,YAAc0D,EAAK1D,WAAa,CAACoC,aAAcsB,EAAK1D,WAAWoC,aAAcG,MAAOmB,EAAK1D,WAAWuC,MAAOF,QAASC,MAAQoB,EAAK1D,WAAWqC,SAC3K,CAEO+B,qBAAqBC,GAC1B5M,KAAKiI,SAAS4E,QAAQD,EACxB,CAEOE,6BAA6Bb,GAClCjM,KAAKkI,gBAAkB,IAAIb,EAA+B4E,EAAKc,MAAMrI,KAAMuH,EAAKe,oBAClF,CAEOC,mBAAmBhB,GACxBjM,KAAKoI,mBAAqB6D,EAAK7D,kBACjC,CAEO8E,2BAA2BC,GAChC,MAAMlB,EAAoC,MAA7BkB,OAA6B,EAA7BA,EAA+BC,iCAAiCpN,KAAKyE,IAClFzE,KAAKqN,kBAAoB/G,MAAeC,kBAAkB0F,GAAQ7B,IAAYkD,0BAA0BtN,KAAK4H,aAAe,GAAGqE,EAAKsB,qBAAqBC,sBAC3J","names":["InputTimeDirective","_InputTimeDirective","constructor","elementRef","renderer","control","this","backSpaceKey","deleteKey","allowedKeys","arrowsAndTab","maxHoursAllowed","maxMinutesAllowed","onFocus","focusEvent","targetElement","target","selectionStart","selectionEnd","onKeyDown","keyboardEvent","arrowPressed","find","arrowOrTab","isEqual","key","isNil","preventDeletingColon","preventHours","preventMinutes","preventOverflow","allowOnlyIntegers","onKeyUp","jumpFromHoursToMinutes","onDragStart","dragEvent","preventDefault","blur","blurEvent","targetValue","getFormattedHours","value","formatMinutes","ngOnInit","inputHasNoValue","setProperty","nativeElement","isEmpty","startValue","charIndexes","push","colon","index","charAt","notSelectingBothNumberPositions","isBiggerThen23LeftNumberPosition","isBiggerThen23RightNumberPosition","colonIndex","indexOf","isBiggerThen59LeftNumberPosition","isBiggerThen59RightNumberPosition","notSelecting","selectingOnLeft","selectingOnRight","isNotDeleting","isTooMuchTooTheRight","isAllowed","setValue","targetValueLength","size","substring","i0","i1","selectors","hostBindings","rf","ctx","$event","OverviewMachineGroup","id","name","floorplanId","groups","machineIds","reportItems","_id","_name","_floorplanId","_groups","_machineIds","_reportItems","fromJSON","machineGroupJSON","map","subMachineGroupJSON","reportItemJSON","ReportItem","machines","_machines","getReportItem","reportItemTemplateField","reportItem","field","addOrUpdateReportItem","reportItemToAddOrUpdate","filter","getNestedChildMachineIds","nestedChildMachineIds","AssertionUtils","isNullOrUndefined","flatMap","group","ArrayUtils","distinctBy","machineId","getNestedChildGroupIds","nestedChildGroupIds","groupId","fromMachineGroupOverviewList","machineGroupOverviewList","_machineGroupOverview","_machineGroupOverview2","machine","OverviewMachineProductionOrder","progress","_progress","BaseOverviewMachineGroup","OverviewMachine","efficiency","coordinatesInPx","machineType","status","queue","activeQuality","activeCreel","messages","productionOrder","orderId","rotationsPerMinute","amountOfWarningMessages","roleCode","stopReason","machineGroups","remoteMachine","endTime","speed","_coordinatesInPx","_machineType","_status","_queue","_efficiency","_activeQuality","_activeCreel","_messages","_productionOrder","_orderId","_rotationsPerMinute","_amountOfWarningMessages","_roleCode","_stopReason","_machineGroups","_remoteMachine","_endTime","_speed","machineJSON","_machineJSON$reportIt","activeMachineQuality","OverviewListMachineQuality","OverviewMachineCreel","level","MachineType","MachineStatus","currentPick","totalNumberOfPicks","timeSpentInSeconds","durationInSeconds","currentStopReason","abbreviation","pattern","Pattern","color","machineGroup","StringUtils","toDate","Math","round","amountOfJobsOnQueue","amount","queueRemainingTimeInMs","duration","isStopped","STOPPED_MANUAL","STOPPED_CRITICAL","isDisconnected","DISCONNECTED","isPremium","getReportItemValue","_this$reportItems","updateMachineReportItems","data","_this$reportItems2","updatedReportItem","ReportItemTemplateField","some","updateMachineEfficiency","currentEfficiency","updateMachineStatus","getMachineStatusByLabel","currentStatus","updateMachineMessage","message","unshift","updateMachineProductionOrder","order","orderProgressChange","updateMachineSpeed","calculateCachedMachineIcon","highestSeverityContextService","getHighestSeverityDataForMachine","cachedMachineIcon","getIconNameForMachineType","highestPriorityLevel","toLowerCase"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./apps/texconnect/src/app/application/directives/input-time.directive.ts","./apps/texconnect/src/app/presentation/pages/machine-overview/overview-machine-group.ts","./apps/texconnect/src/app/domain/machine/overview-machine-production-order.ts","./apps/texconnect/src/app/presentation/pages/machine-overview/base-overview-machine-group.ts","./apps/texconnect/src/app/presentation/pages/machine-overview/overview-machine.ts"],"sourcesContent":["import {Directive, ElementRef, HostListener, OnInit, Renderer2} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {find, isEmpty, isEqual, isNil, size} from 'lodash-es';\n\n@Directive({\n selector: 'input[appTime]'\n})\nexport class InputTimeDirective implements OnInit {\n private control: NgControl;\n private readonly elementRef: ElementRef;\n private readonly renderer: Renderer2;\n private readonly backSpaceKey: string = 'Backspace';\n private readonly deleteKey: string = 'Delete';\n private readonly allowedKeys: string[] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'Delete', 'Backspace'];\n private readonly arrowsAndTab: string[] = ['ArrowLeft', 'ArrowUp', 'ArrowRight', 'ArrowDown', 'Tab'];\n private readonly maxHoursAllowed = 23;\n private readonly maxMinutesAllowed = 59;\n\n public constructor(elementRef: ElementRef, renderer: Renderer2, control: NgControl) {\n this.elementRef = elementRef;\n this.renderer = renderer;\n this.control = control;\n }\n\n @HostListener('focus', ['$event'])\n public onFocus(focusEvent: FocusEvent): void {\n const targetElement = focusEvent.target as HTMLInputElement;\n targetElement.selectionStart = 0;\n targetElement.selectionEnd = 2;\n }\n\n @HostListener('keydown', ['$event'])\n public onKeyDown(keyboardEvent: KeyboardEvent): void {\n const targetElement = keyboardEvent.target as HTMLInputElement;\n const arrowPressed = find(this.arrowsAndTab, (arrowOrTab: string) => isEqual(keyboardEvent.key, arrowOrTab));\n if (isNil(arrowPressed)) {\n this.preventDeletingColon(keyboardEvent, targetElement);\n this.preventHours(keyboardEvent, targetElement);\n this.preventMinutes(keyboardEvent, targetElement);\n this.preventOverflow(keyboardEvent, targetElement);\n this.allowOnlyIntegers(keyboardEvent);\n }\n }\n\n @HostListener('keyup', ['$event'])\n public onKeyUp(keyboardEvent: KeyboardEvent): void {\n const targetElement = keyboardEvent.target as HTMLInputElement;\n const arrowPressed = find(this.arrowsAndTab, (arrowOrTab: string) => isEqual(keyboardEvent.key, arrowOrTab));\n if (isNil(arrowPressed)) {\n this.jumpFromHoursToMinutes(targetElement);\n }\n }\n\n @HostListener('dragstart', ['$event'])\n public onDragStart(dragEvent: DragEvent): void {\n dragEvent.preventDefault();\n }\n\n @HostListener('blur', ['$event'])\n public blur(blurEvent: FocusEvent): void {\n const targetElement = blurEvent.target as HTMLInputElement;\n const targetValue = this.getFormattedHours(targetElement.value);\n this.formatMinutes(targetValue);\n }\n\n public ngOnInit(): void {\n if (this.inputHasNoValue()) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', '00:00');\n }\n }\n\n public inputHasNoValue(): boolean {\n return isEmpty(this.elementRef.nativeElement.value);\n }\n\n private preventDeletingColon(keyboardEvent: KeyboardEvent, targetElement: HTMLInputElement): void {\n let startValue = targetElement.selectionStart;\n const charIndexes = [];\n while (startValue < targetElement.selectionEnd) {\n charIndexes.push(startValue);\n startValue++;\n }\n\n if (isEqual(keyboardEvent.key, this.backSpaceKey) && isEmpty(charIndexes)) {\n charIndexes.push(startValue - 1);\n } else if (isEqual(keyboardEvent.key, this.deleteKey) && isEmpty(charIndexes)) {\n charIndexes.push(startValue);\n }\n const colon = find(charIndexes, (index: number) => isEqual(targetElement.value.charAt(index), ':'));\n if (!isNil(colon)) {\n keyboardEvent.preventDefault();\n }\n }\n\n private preventHours(keyboardEvent: KeyboardEvent, targetElement: HTMLInputElement): void {\n const key = keyboardEvent.key;\n const notSelectingBothNumberPositions = !isEqual(targetElement.selectionStart + 2, targetElement.selectionEnd);\n const isBiggerThen23LeftNumberPosition = isEqual(targetElement.selectionStart, 0) && Number(`${key}${targetElement.value.charAt(0)}`) > this.maxHoursAllowed;\n const isBiggerThen23RightNumberPosition = isEqual(targetElement.selectionStart, 1) && Number(`${targetElement.value.charAt(0)}${key}`) > this.maxHoursAllowed;\n if ((isBiggerThen23LeftNumberPosition || isBiggerThen23RightNumberPosition) && notSelectingBothNumberPositions) {\n keyboardEvent.preventDefault();\n }\n }\n\n private preventMinutes(keyboardEvent: KeyboardEvent, targetElement: HTMLInputElement): void {\n const colonIndex = targetElement.value.indexOf(':');\n const key = keyboardEvent.key;\n const notSelectingBothNumberPositions = !isEqual(targetElement.selectionStart + 2, targetElement.selectionEnd);\n const isBiggerThen59LeftNumberPosition = isEqual(targetElement.selectionStart, colonIndex + 1) && Number(`${key}${targetElement.value.charAt(colonIndex + 1)}`) > this.maxMinutesAllowed;\n const isBiggerThen59RightNumberPosition = isEqual(targetElement.selectionStart, colonIndex + 2) && Number(`${targetElement.value.charAt(colonIndex + 1)}${key}`) > this.maxMinutesAllowed;\n if ((isBiggerThen59LeftNumberPosition || isBiggerThen59RightNumberPosition) && notSelectingBothNumberPositions) {\n keyboardEvent.preventDefault();\n }\n }\n\n private preventOverflow(keyboardEvent: KeyboardEvent, targetElement: HTMLInputElement): void {\n const key = keyboardEvent.key;\n const colonIndex = targetElement.value.indexOf(':');\n const notSelecting = isEqual(targetElement.selectionStart, targetElement.selectionEnd);\n const selectingOnLeft = targetElement.selectionStart <= colonIndex;\n const selectingOnRight = targetElement.selectionStart > colonIndex;\n const isNotDeleting = !isEqual(key, this.backSpaceKey) && !isEqual(key, this.deleteKey);\n const isTooMuchTooTheRight = !isEmpty(targetElement.value.charAt(colonIndex + 2));\n if (notSelecting && isNotDeleting && ((colonIndex > 1 && selectingOnLeft) || (isTooMuchTooTheRight && selectingOnRight))) {\n keyboardEvent.preventDefault();\n }\n }\n\n private allowOnlyIntegers(keyboardEvent: KeyboardEvent): void {\n const isAllowed = find(this.allowedKeys, (key: string) => isEqual(keyboardEvent.key, key));\n\n if (isNil(isAllowed)) {\n keyboardEvent.preventDefault();\n }\n }\n\n private jumpFromHoursToMinutes(targetElement: HTMLInputElement): void {\n if (isEqual(targetElement.selectionStart, 2)) {\n targetElement.selectionStart = 3;\n targetElement.selectionEnd = 5;\n }\n }\n\n private getFormattedHours(targetValue: string): string {\n const colon = ':';\n if (isEqual(targetValue.charAt(0), colon)) {\n targetValue = `00${targetValue}`;\n this.control.control.setValue(targetValue);\n } else if (isEqual(targetValue.charAt(1), colon)) {\n targetValue = `0${targetValue}`;\n this.control.control.setValue(targetValue);\n }\n\n return targetValue;\n }\n\n private formatMinutes(targetValue: string): void {\n const targetValueLength = size(targetValue);\n\n if (isEqual(targetValueLength, 3)) {\n this.control.control.setValue(`${targetValue}00`);\n } else if (isEqual(targetValueLength, 4)) {\n this.control.control.setValue(`${targetValue.substring(0, 3)}0${targetValue.substring(3)}`);\n }\n }\n}\n","import {ReportItemTemplateField} from '@domain/report-data-set/report-item-template-field.enum';\nimport {OverviewMachine} from '@presentation/pages/machine-overview/overview-machine';\nimport {ReportItem} from '@presentation/pages/machine-overview/report-item';\nimport {ArrayUtils, AssertionUtils} from '@vdw/angular-component-library';\nimport {MachineGroupOverviewList} from './sidebar/group-editor/machine-group-overview-list';\nimport {MachineOverviewList} from './sidebar/group-editor/machine-overview-list';\n\nexport class OverviewMachineGroup {\n private _id: number;\n private _name: string;\n private _floorplanId: number;\n private _groups: OverviewMachineGroup[];\n private _machineIds: number[];\n private _machines: OverviewMachine[];\n private _reportItems: ReportItem[];\n\n public constructor(id: number, name: string, floorplanId: number, groups: OverviewMachineGroup[], machineIds: number[], reportItems: ReportItem[]) {\n this._id = id;\n this._name = name;\n this._floorplanId = floorplanId;\n this._groups = groups;\n this._machineIds = machineIds;\n this._reportItems = reportItems;\n }\n\n public static fromJSON(machineGroupJSON: any): OverviewMachineGroup {\n return new OverviewMachineGroup(\n machineGroupJSON.id,\n machineGroupJSON.name,\n machineGroupJSON.floorplanId,\n machineGroupJSON.groups.map((subMachineGroupJSON: any) => OverviewMachineGroup.fromJSON(subMachineGroupJSON)),\n machineGroupJSON.machineIds,\n machineGroupJSON.reportItems.map((reportItemJSON: any) => ReportItem.fromJSON(reportItemJSON))\n );\n }\n\n public get id(): number {\n return this._id;\n }\n\n public get name(): string {\n return this._name;\n }\n\n public set name(value: string) {\n this._name = value;\n }\n\n public get floorplanId(): number {\n return this._floorplanId;\n }\n\n public set floorplanId(value: number) {\n this._floorplanId = value;\n }\n\n public get groups(): OverviewMachineGroup[] {\n return this._groups;\n }\n\n public set groups(value: OverviewMachineGroup[]) {\n this._groups = value;\n }\n\n public get machineIds(): number[] {\n return this._machineIds;\n }\n\n public set machineIds(value: number[]) {\n this._machineIds = value;\n }\n\n public get machines(): OverviewMachine[] {\n return this._machines;\n }\n\n public set machines(value: OverviewMachine[]) {\n this._machines = value;\n }\n\n public get reportItems(): ReportItem[] {\n return this._reportItems;\n }\n\n public set reportItems(value: ReportItem[]) {\n this._reportItems = value;\n }\n\n public getReportItem(reportItemTemplateField: ReportItemTemplateField): ReportItem {\n return this._reportItems.find((reportItem: ReportItem) => reportItem.field === reportItemTemplateField);\n }\n\n public addOrUpdateReportItem(reportItemToAddOrUpdate: ReportItem): void {\n this._reportItems = this._reportItems.filter((reportItem: ReportItem) => reportItem.field !== reportItemToAddOrUpdate.field);\n this._reportItems.push(reportItemToAddOrUpdate);\n }\n\n public getNestedChildMachineIds(): number[] {\n const nestedChildMachineIds: number[] = [];\n\n if (!AssertionUtils.isNullOrUndefined(this._machineIds)) {\n nestedChildMachineIds.push(...this._machineIds);\n }\n\n if (!AssertionUtils.isNullOrUndefined(this._groups)) {\n nestedChildMachineIds.push(...this._groups.flatMap((group: OverviewMachineGroup) => group.getNestedChildMachineIds()));\n }\n\n return ArrayUtils.distinctBy([...nestedChildMachineIds], (machineId: number) => machineId);\n }\n\n public getNestedChildGroupIds(): number[] {\n const nestedChildGroupIds: number[] = [];\n\n if (!AssertionUtils.isNullOrUndefined(this._groups)) {\n nestedChildGroupIds.push(...this._groups.map((group: OverviewMachineGroup) => group.id), this.id);\n }\n\n if (!AssertionUtils.isNullOrUndefined(this._groups)) {\n nestedChildGroupIds.push(...this._groups.flatMap((group: OverviewMachineGroup) => group.getNestedChildGroupIds()));\n }\n\n return ArrayUtils.distinctBy([...nestedChildGroupIds], (groupId: number) => groupId);\n }\n\n public static fromMachineGroupOverviewList(machineGroupOverviewList: MachineGroupOverviewList): OverviewMachineGroup {\n return new OverviewMachineGroup(\n machineGroupOverviewList.id,\n machineGroupOverviewList.name,\n null,\n machineGroupOverviewList.groups?.map((group: MachineGroupOverviewList) => OverviewMachineGroup.fromMachineGroupOverviewList(group)),\n machineGroupOverviewList.machines?.map((machine: MachineOverviewList) => machine.id),\n []\n );\n }\n}\n","import {ProductionOrderProgress} from './production-order-progress';\n\nexport class OverviewMachineProductionOrder {\n private _name: string;\n private _progress: ProductionOrderProgress;\n\n public constructor(name: string, progress: ProductionOrderProgress) {\n this._name = name;\n this._progress = progress;\n }\n\n public get name(): string {\n return this._name;\n }\n\n public get progress(): ProductionOrderProgress {\n return this._progress;\n }\n}\n","export class BaseOverviewMachineGroup {\n private _id: number;\n private _name: string;\n\n public constructor(id: number, name: string) {\n this._id = id;\n this._name = name;\n }\n\n public static fromJSON(machineGroupJSON: any): BaseOverviewMachineGroup {\n return new BaseOverviewMachineGroup(machineGroupJSON.id, machineGroupJSON.name);\n }\n\n public get id(): number {\n return this._id;\n }\n\n public get name(): string {\n return this._name;\n }\n}\n","import {Coordinates} from '@domain/coordinates';\nimport {MachineEfficiency} from '@domain/machine/machine-efficiency';\nimport {MachineEfficiencyLevel} from '@domain/machine/machine-efficiency-level.enum';\nimport {MachineEfficiencyUpdate} from '@domain/machine/machine-information-update/machine-efficiency-update.interface';\nimport {MachineProductionOrderUpdate} from '@domain/machine/machine-information-update/machine-production-order-update.interface';\nimport {MachineReportItemUpdate} from '@domain/machine/machine-information-update/machine-report-item-update.interface';\nimport {MachineSpeedUpdate} from '@domain/machine/machine-information-update/machine-speed-update.interface';\nimport {MachineStatusUpdate} from '@domain/machine/machine-information-update/machine-status-update.interface';\nimport {MachineQueue} from '@domain/machine/machine-queue';\nimport {MachineStatus} from '@domain/machine/machine-status.enum';\nimport {MachineType} from '@domain/machine/machine-type.enum';\nimport {OverviewMachineProductionOrder} from '@domain/machine/overview-machine-production-order';\nimport {StopReason} from '@domain/machine/stop-reason.interface';\nimport {ReportItemTemplateField} from '@domain/report-data-set/report-item-template-field.enum';\nimport {OverviewListMachineQuality} from '@presentation/pages/textile-data/machine-quality/overview/overview-list-machine-quality';\nimport {AssertionUtils, Message, Pattern, StringUtils} from '@vdw/angular-component-library';\nimport {isEqual, isNil} from 'lodash-es';\nimport {BaseOverviewMachineGroup} from './base-overview-machine-group';\nimport {OverviewMachineCreel} from './overview-machine-creel';\nimport {ReportItem} from './report-item';\nimport {HighestSeverityNotificationContextService} from '@presentation/pages/machine-overview/highest-severity-notification-context/highest-severity-notification-context.service';\n\nexport class OverviewMachine {\n private _id: number;\n private _name: string;\n private _machineType: MachineType;\n private _coordinatesInPx: Coordinates;\n private _status: MachineStatus;\n private _queue: MachineQueue;\n private _efficiency: MachineEfficiency;\n private _activeQuality: OverviewListMachineQuality;\n private _activeCreel: OverviewMachineCreel;\n private _messages: Message[];\n private _productionOrder: OverviewMachineProductionOrder;\n private _orderId: string;\n private _rotationsPerMinute: number;\n private _amountOfWarningMessages: number;\n private _roleCode: string;\n private _stopReason: StopReason;\n private _machineGroups: BaseOverviewMachineGroup[];\n private _reportItems: ReportItem[];\n private _remoteMachine: boolean;\n private _endTime: Date;\n private _speed: number;\n\n public cachedMachineIcon: string;\n\n public constructor(\n id: number = null,\n name: string = null,\n efficiency: MachineEfficiency = null,\n coordinatesInPx: Coordinates = null,\n machineType: MachineType = null,\n status: MachineStatus = null,\n queue: MachineQueue = null,\n activeQuality: OverviewListMachineQuality = null,\n activeCreel: OverviewMachineCreel = null,\n messages: Message[] = [],\n productionOrder: OverviewMachineProductionOrder = null,\n orderId: string = null,\n rotationsPerMinute: number = null,\n amountOfWarningMessages: number = null,\n roleCode: string = null,\n stopReason: StopReason = null,\n machineGroups: BaseOverviewMachineGroup[] = [],\n reportItems: ReportItem[] = [],\n remoteMachine: boolean = false,\n endTime: Date = null,\n speed: number = null\n ) {\n this._id = id;\n this._name = name;\n this._coordinatesInPx = coordinatesInPx;\n this._machineType = machineType;\n this._status = status;\n this._queue = queue;\n this._efficiency = efficiency;\n this._activeQuality = activeQuality;\n this._activeCreel = activeCreel;\n this._messages = messages;\n this._productionOrder = productionOrder;\n this._orderId = orderId;\n this._rotationsPerMinute = rotationsPerMinute;\n this._amountOfWarningMessages = amountOfWarningMessages;\n this._roleCode = roleCode;\n this._stopReason = stopReason;\n this._machineGroups = machineGroups;\n this._reportItems = reportItems;\n this._remoteMachine = remoteMachine;\n this._endTime = endTime;\n this._speed = speed;\n }\n\n public static fromJSON(machineJSON: any): OverviewMachine {\n const activeQuality: OverviewListMachineQuality = isNil(machineJSON.activeMachineQuality) ? null : OverviewListMachineQuality.fromJSON(machineJSON.activeMachineQuality);\n\n const activeCreel: OverviewMachineCreel = isNil(machineJSON.activeCreel) ? null : OverviewMachineCreel.fromJSON(machineJSON.activeCreel);\n\n return new OverviewMachine(\n machineJSON.id,\n machineJSON.name,\n isNil(machineJSON.efficiency) ? machineJSON.efficiency : {value: machineJSON.efficiency.value, level: machineJSON.efficiency.level},\n machineJSON.coordinatesInPx,\n MachineType[`${machineJSON.machineType}`],\n isNil(machineJSON.status) ? machineJSON.status : MachineStatus[machineJSON.status],\n null,\n activeQuality,\n activeCreel,\n [],\n isNil(machineJSON.productionOrder)\n ? machineJSON.productionOrder\n : new OverviewMachineProductionOrder(machineJSON.productionOrder.name, {\n currentPick: machineJSON.productionOrder.progress.currentPick,\n totalNumberOfPicks: machineJSON.productionOrder.progress.totalNumberOfPicks,\n timeSpentInSeconds: machineJSON.productionOrder.progress.timeSpentInSeconds,\n durationInSeconds: machineJSON.productionOrder.progress.durationInSeconds\n }),\n machineJSON.orderId,\n machineJSON.rotationsPerMinute,\n machineJSON.amountOfWarningMessages,\n machineJSON.roleCode,\n isNil(machineJSON.currentStopReason)\n ? machineJSON.currentStopReason\n : {abbreviation: machineJSON.currentStopReason.abbreviation, pattern: Pattern[machineJSON.currentStopReason.pattern], color: machineJSON.currentStopReason.color},\n machineJSON.machineGroups.map((machineGroup: any) => BaseOverviewMachineGroup.fromJSON(machineGroup)),\n machineJSON.reportItems?.map((reportItem: any) => ReportItem.fromJSON(reportItem)),\n machineJSON.remoteMachine,\n StringUtils.toDate(machineJSON.endTime),\n machineJSON.speed\n );\n }\n\n public get id(): number {\n return this._id;\n }\n\n public set id(id: number) {\n this._id = id;\n }\n\n public get name(): string {\n return this._name;\n }\n\n public set name(name: string) {\n this._name = name;\n }\n\n public get coordinatesInPx(): Coordinates {\n return this._coordinatesInPx;\n }\n\n public set coordinatesInPx(coordinatesInPx: Coordinates) {\n this._coordinatesInPx = coordinatesInPx;\n }\n\n public get machineType(): MachineType {\n return this._machineType;\n }\n\n public set machineType(machineType: MachineType) {\n this._machineType = machineType;\n }\n\n public get status(): MachineStatus {\n return this._status;\n }\n\n public set status(status: MachineStatus) {\n this._status = status;\n }\n\n public get queue(): MachineQueue {\n return this._queue;\n }\n\n public set queue(queue: MachineQueue) {\n this._queue = queue;\n }\n\n public get efficiency(): MachineEfficiency {\n if (!AssertionUtils.isNullOrUndefined(this._efficiency)) {\n this._efficiency.value = this._efficiency.value > 100 ? 100 : Math.round(this._efficiency.value * 100) / 100;\n }\n return this._efficiency;\n }\n\n public set efficiency(efficiency: MachineEfficiency) {\n this._efficiency = efficiency;\n }\n\n public get activeQuality(): OverviewListMachineQuality {\n return this._activeQuality;\n }\n\n public set activeQuality(activeQuality: OverviewListMachineQuality) {\n this._activeQuality = activeQuality;\n }\n\n public get activeCreel(): OverviewMachineCreel {\n return this._activeCreel;\n }\n\n public set activeCreel(activeCreel: OverviewMachineCreel) {\n this._activeCreel = activeCreel;\n }\n\n public get messages(): Message[] {\n return this._messages;\n }\n\n public set messages(messages: Message[]) {\n this._messages = messages;\n }\n\n public get productionOrder(): OverviewMachineProductionOrder {\n return this._productionOrder;\n }\n\n public set productionOrder(productionOrder: OverviewMachineProductionOrder) {\n this._productionOrder = productionOrder;\n }\n\n public get orderId(): string {\n return this._orderId;\n }\n\n public set orderId(orderId: string) {\n this._orderId = orderId;\n }\n\n public get rotationsPerMinute(): number {\n return this._rotationsPerMinute;\n }\n\n public set rotationsPerMinute(rotationsPerMinute: number) {\n this._rotationsPerMinute = rotationsPerMinute;\n }\n\n public get amountOfWarningMessages(): number {\n return this._amountOfWarningMessages;\n }\n\n public set amountOfWarningMessages(amountOfWarningMessages: number) {\n this._amountOfWarningMessages = amountOfWarningMessages;\n }\n\n public get roleCode(): string {\n return this._roleCode;\n }\n\n public set roleCode(roleCode: string) {\n this._roleCode = roleCode;\n }\n\n public get stopReason(): StopReason {\n return this._stopReason;\n }\n\n public set stopReason(stopReason: StopReason) {\n this._stopReason = stopReason;\n }\n\n public get machineGroups(): BaseOverviewMachineGroup[] {\n return this._machineGroups;\n }\n\n public set machineGroups(machineGroups: BaseOverviewMachineGroup[]) {\n this._machineGroups = machineGroups;\n }\n\n public get reportItems(): ReportItem[] {\n return this._reportItems;\n }\n\n public set reportItems(reportItems: ReportItem[]) {\n this._reportItems = reportItems;\n }\n\n public get remoteMachine(): boolean {\n return this._remoteMachine;\n }\n\n public set remoteMachine(remoteMachine: boolean) {\n this._remoteMachine = remoteMachine;\n }\n\n public get endTime(): Date {\n return this._endTime;\n }\n\n public get speed(): number {\n return this._speed;\n }\n\n public get amountOfJobsOnQueue(): number {\n return !isNil(this.queue) ? this.queue.amount : null;\n }\n\n public get queueRemainingTimeInMs(): number {\n return typeof this.queue !== 'undefined' && this.queue !== null ? this.queue.duration : null;\n }\n\n public get isStopped(): boolean {\n return isEqual(this.status, MachineStatus.STOPPED_MANUAL) || isEqual(this.status, MachineStatus.STOPPED_CRITICAL);\n }\n\n public get isDisconnected(): boolean {\n return this.status === MachineStatus.DISCONNECTED;\n }\n\n public isPremium(): boolean {\n return isEqual(this._roleCode, 'M-P');\n }\n\n public getReportItemValue(field: ReportItemTemplateField): any {\n return this.reportItems?.find((reportItem: ReportItem) => reportItem.field === field)?.value;\n }\n\n public updateMachineReportItems(data: MachineReportItemUpdate): void {\n const updatedReportItem = new ReportItem(ReportItemTemplateField[data.field], data.value);\n\n const reportItemExists = this.reportItems?.some((reportItem: ReportItem) => reportItem.field === updatedReportItem.field);\n\n if (reportItemExists) {\n this.reportItems = this.reportItems.map((reportItem: ReportItem) => (reportItem.field === updatedReportItem.field ? updatedReportItem : reportItem));\n } else {\n this.reportItems.push(updatedReportItem);\n }\n }\n\n public updateMachineEfficiency(data: MachineEfficiencyUpdate): void {\n this.efficiency = {\n value: data.currentEfficiency.value,\n level: data.currentEfficiency.level as MachineEfficiencyLevel\n };\n }\n\n public updateMachineStatus(data: MachineStatusUpdate): void {\n this.status = MachineStatus.getMachineStatusByLabel(data.currentStatus);\n this.stopReason = isNil(data.stopReason) ? data.stopReason : {abbreviation: data.stopReason.abbreviation, color: data.stopReason.color, pattern: Pattern[data.stopReason.pattern as any as string]};\n }\n\n public updateMachineMessage(message: Message): void {\n this.messages.unshift(message);\n }\n\n public updateMachineProductionOrder(data: MachineProductionOrderUpdate): void {\n this.productionOrder = new OverviewMachineProductionOrder(data.order.name, data.orderProgressChange);\n }\n\n public updateMachineSpeed(data: MachineSpeedUpdate): void {\n this.rotationsPerMinute = data.rotationsPerMinute;\n }\n\n public calculateCachedMachineIcon(highestSeverityContextService: HighestSeverityNotificationContextService): void {\n const data = highestSeverityContextService?.getHighestSeverityDataForMachine(this.id);\n this.cachedMachineIcon = AssertionUtils.isNullOrUndefined(data) ? MachineType.getIconNameForMachineType(this.machineType) : `${data.highestPriorityLevel.toLowerCase()}-circle`;\n }\n}\n"],"x_google_ignoreList":[]}