{"version":3,"file":"js/8583-dfc7e44ff666ec38c12e.js","mappings":"6ZAwBAA,EAAA,WAmBI,SAAAA,EACWC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GA5BA,KAAA3B,KAAAA,EACA,KAAAC,OAAAA,EACA,KAAAC,GAAAA,EACA,KAAAC,SAAAA,EACA,KAAAC,cAAAA,EACA,KAAAC,WAAAA,EACA,KAAAC,WAAAA,EACA,KAAAC,WAAAA,EACA,KAAAC,KAAAA,EACA,KAAAC,6BAAAA,EACA,KAAAC,WAAAA,EACA,KAAAC,SAAAA,EACA,KAAAC,UAAAA,EACA,KAAAC,SAAAA,EACA,KAAAC,iBAAAA,EACA,KAAAC,aAAAA,EACA,KAAAC,qBAAAA,EACA,KAAAC,gBAAAA,EACA,KAAAC,4BAAAA,EACA,KAAAC,kBAAAA,EACA,KAAAC,qBAAAA,EAEA,KAAAC,0BAAAA,EACA,KAAAC,QAAAA,EACA,KAAAC,kBAAAA,EACA,KAAAC,eAAAA,EACA,KAAAC,WAAAA,EACA,KAAAC,kBAAAA,EACA,KAAAC,wBAAAA,CACR,CAyhBP,OAvhBW5B,EAAA6B,KAAP,SAAYC,GAER,OADWC,IAAAA,UAAiBD,EAEhC,EAEO9B,EAAAgC,cAAP,SAAqBC,GACjB,IAAKA,EAAW,MAAO,GAGvB,IAFA,IAAIC,EAAe,G,WAEVC,GACL,GAAIC,EAAAA,EAAKC,QAAQF,GAAO,MAAF,WACtB,IAAMG,EAAqBH,EAI3B,GAHIA,EAAKpB,mBACLoB,EAAKnB,aAAYuB,EAAA,GAAOC,OAAOC,OAAON,EAAKpB,mBAAiB,IAE7C,IAAfoB,EAAKjC,YACF,CACH,GAAIiC,EAAKf,kBAAmB,CACxB,IAAIsB,EAASC,EAAAA,EAAYX,cAAc,CAACG,EAAKf,oBAAoB,GAC7DsB,IAAQJ,EAAMjC,cAAgBqC,EAAOE,SACzCN,EAAMlB,kBAAoBsB,C,CAE9B,GAAIP,EAAKd,qBAAsB,CAC3B,IAAIwB,EAAUF,EAAAA,EAAYX,cAAcG,EAAKd,sBAC7C,GAAIiB,EAAMlB,kBAAmB,CACzB,IAAI0B,EAAUD,EAAQE,MAAK,SAAAC,GAAK,OAAAA,EAAEC,WAAaX,EAAMlB,kBAAkB6B,SAAvC,IAC5BH,IAASA,EAAQI,UAAW,E,CAGpCZ,EAAMjB,qBAAuBwB,C,EAIrCX,EAAaiB,KAAKb,E,EAxBLc,EAAA,EAAAC,EAAApB,EAAAmB,EAAAC,EAAAC,OAAAF,I,EAAJC,EAAAD,IA0Bb,OAAOlB,CACX,EAMOlC,EAAAuD,kBAAP,SAAyBC,GACrB,IAAI1C,EAQJ,MAPW,SAAP0C,EACA1C,EAAW,EACG,QAAP0C,EACP1C,EAAW,GACG,OAAP0C,IACP1C,EAAW,KAERA,CACX,EAEOd,EAAAyD,MAAP,SAAaC,EAAmBvB,GAC5B,YADS,IAAAuB,IAAAA,EAAA,WAAmB,IAAAvB,IAAAA,EAAA,SACvBuB,IAASvB,IACTA,IACDA,EAAOuB,EAAKC,sBAGXxB,GACDA,EAAKjC,QAAUF,EAAY4D,WAEnC,EAEO5D,EAAA6D,WAAP,SAAkBH,EAAmBvB,GACjC,YADc,IAAAuB,IAAAA,EAAA,WAAmB,IAAAvB,IAAAA,EAAA,SAC5BuB,IAASvB,IACTA,IACDA,EAAOuB,EAAKC,sBAGXxB,GACDA,EAAKjC,QAAUF,EAAY8D,cAEnC,EAEO9D,EAAA+D,cAAP,WACI,OAAO,IAAI/D,EACP,QACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,IACA,GACC,GACA,EACD,KACA,KACA,KACA,KACA,cACA,KACA,KACA,KACA,MACA,EACA,MACA,EACA,MACA,EACA,MACA,EAER,EASOA,EAAAgE,OAAP,SACIC,EACAC,EACAR,EACA/C,EACAwD,EACAC,EACAC,EACA5D,EACA6D,QALA,IAAA3D,IAAAA,EAAA,WACA,IAAAwD,IAAAA,EAAA,WACA,IAAAC,IAAAA,EAAA,WACA,IAAAC,IAAAA,EAAA,WACA,IAAA5D,IAAAA,EAAA,WACA,IAAA6D,IAAAA,EAAA,MAEA,IAAIC,EAAW,GA+Bf,MA9BiB,QAAbL,GACAK,EAAW,OACXL,EAAW,MACXD,EAAwB,WAAItD,EACxBwD,IAAOF,EAAsB,SAAIE,GACjCC,IACAH,EAAuB,UAAIG,EAC3BH,EAAoB,QAAI,GAExBI,IAAWJ,EAA2B,cAAII,GAC1C5D,IAAMwD,EAAkB,KAAIxD,GAC5B6D,IAAOL,EAAmB,MAAIK,IACd,SAAbJ,GACPD,EAAqB,QAAIP,EAAKc,eACvBP,EAAgB,IACH,QAAbC,IAEPD,EAA4B,eAAIP,EAAKe,gBAErCf,EAAKgB,SACLT,EAA4B,eAAIP,EAAKvD,GAErC8D,EAA4B,eAAIP,EAAKiB,aAEpCV,EAAYhE,MAA4B,IAApBgE,EAAYhE,OACjCgE,EAAYhE,KAAO,UAGvB2E,EAAAA,EAAAA,IAAO,gCAAAC,OAAgCX,EAAQ,WAAAW,OAAUzC,EAAAA,EAAK0C,OAAOb,MAE9Dc,EAAAA,EAAAA,GAAM,CACTC,OAAQd,EACRe,IAAK,GAAAJ,OAAGzC,EAAAA,EAAK8C,UAAS,sBAAAL,OAAqBN,GAC3CY,KAAMlB,IAELmB,MAAK,SAAAC,IACFT,EAAAA,EAAAA,IAAO,2BAAAC,OAA2BQ,EAAIF,KAAKG,QAAO,KAAAT,OAAIzC,EAAAA,EAAK0C,OAAOO,EAAIF,QAClEE,EAAIF,KAAKG,UACTC,EAAAA,EAAOD,QAAU,GAAAT,OAAGQ,EAAIF,KAAKG,UAEjC,IAAME,EAAwBxF,EAAYgC,cAAc,CAACqD,EAAIF,KAAKlB,cAAc,GAC5EwB,EAAcJ,EAAIF,KAAKM,YACvBC,EAAOL,EAAIF,KAAKO,KAEpB,MAAO,CAAEvD,KAAMqD,EAAUG,qBAAsBN,EAAIF,KAAKQ,qBAAsBF,YAAWA,EAAEC,KAAIA,EACnG,IAAE,OACK,SAAAE,GAQH,OAPAhB,EAAAA,EAAAA,IAAO,QAAAC,OAAQe,EAAIN,QAAO,KAAAT,OAAIzC,EAAAA,EAAK0C,OAAOc,EAAIC,YAC9CC,EAAAA,EAAoBC,iBAAiBH,GAM9B,IACX,GACR,EAQO5F,EAAAgG,OAAP,SAAc/B,EAA0BC,EAAUoB,QAAA,IAAAA,IAAAA,EAAA,IAC9C,IAAIf,EAAW,GACf,GAAiB,WAAbL,EACAK,EAAW,cACR,IAAiB,eAAbL,EAIP,YADAqB,EAAAA,EAAOD,QAAU,aAFjBf,EAAW,a,CAKf,IAAM0B,EAAS,CAAE9F,GAAI8D,EAAY9D,GAAImF,QAASA,GAO9C,OAJAV,EAAAA,EAAAA,IAAO,gCAAAC,OAAgCX,EAAQ,WAAAW,OAAUzC,EAAAA,EAAK0C,OAAOb,KAErEC,EAAW,OAEJa,EAAAA,EAAAA,GAAM,CACTC,OAAQd,EACRe,IAAK,GAAAJ,OAAGzC,EAAAA,EAAK8C,UAAS,sBAAAL,OAAqBN,GAC3CY,KAAMc,IAELb,MAAK,SAAAC,GAQF,OAPAT,EAAAA,EAAAA,IAAO,2BAAAC,OAA2BQ,EAAIF,KAAKG,QAAO,KAAAT,OAAIzC,EAAAA,EAAK0C,OAAOO,EAAIF,QAClEE,EAAIF,KAAKG,UACTC,EAAAA,EAAOD,QAAU,GAAAT,OAAGQ,EAAIF,KAAKG,UAEPtF,EAAYgC,cAAc,CAACqD,EAAIF,KAAKlB,cAAc,EAIhF,IAAE,OACK,SAAA2B,GAQH,OAPAhB,EAAAA,EAAAA,IAAO,2BAAAC,OAA2Be,EAAIN,QAAO,KAAAT,OAAIzC,EAAAA,EAAK0C,OAAOc,EAAIC,YACjEC,EAAAA,EAAoBC,iBAAiBH,GAM9B,IACX,GACR,EAEO5F,EAAAkG,iBAAP,WACI,OAAOnB,EAAAA,EACFoB,IAAI,GAAAtB,OAAGzC,EAAAA,EAAK8C,UAAS,iCACrBE,MAAK,SAAAgB,GAGF,OAFAxB,EAAAA,EAAAA,IAAO,eAAAC,QAAewB,EAAAA,EAAAA,MAAU,aAAAxB,OAAYzC,EAAAA,EAAK0C,OAAOsB,EAAOjB,QACnCiB,EAAOjB,KAAKmB,SAE5C,IAAE,OACK,SAAAV,GAGH,OAFAhB,EAAAA,EAAAA,IAAO,eAAAC,QAAewB,EAAAA,EAAAA,MAAU,UAAAxB,OAASe,EAAIN,QAAO,KAAAT,OAAIzC,EAAAA,EAAK0C,OAAOc,EAAIC,YACxEC,EAAAA,EAAoBC,iBAAiBH,GAC9B,IACX,GACR,EAEO5F,EAAAuG,UAAP,WACI,OAAOxB,EAAAA,EACFoB,IAAI,GAAAtB,OAAGzC,EAAAA,EAAK8C,UAAS,8BACrBE,MAAK,SAAAgB,GAGF,OAFAxB,EAAAA,EAAAA,IAAO,eAAAC,QAAewB,EAAAA,EAAAA,MAAU,aAAAxB,OAAYzC,EAAAA,EAAK0C,OAAOsB,EAAOjB,QACtCiB,EAAOjB,KAAKqB,MAEzC,IAAE,OACK,SAAAZ,GAGH,OAFAhB,EAAAA,EAAAA,IAAO,QAAAC,OAAQe,EAAIN,QAAO,KAAAT,OAAIzC,EAAAA,EAAK0C,OAAOc,EAAIC,YAC9CC,EAAAA,EAAoBC,iBAAiBH,GAC9B,IACX,GACR,EAUO5F,EAAAyG,sBAAP,SAA6BtE,EAAmBU,EAAwB6D,QAAA,IAAAA,IAAAA,GAAA,IACpE9B,EAAAA,EAAAA,IAAO,6CAAAC,QAA8ChC,GAAW,IAAIS,OAAM,MAAAuB,OAAKzC,EAAAA,EAAK0C,OAAOjC,KAE3F,IAAIP,EAAQtC,EAAY6B,KAAKM,GACzBwE,EAAc,KAClB,GAAIvE,EAAAA,EAAKwE,UAAU/D,GAAU,CACH,GAAlBA,EAAQS,OACRhB,EAAMrB,qBAAuB,eAE7B0F,EAAc9D,EAAQE,MAAK,SAAAC,GAAK,MAAe,QAAfA,EAAEC,SAAF,IAE5BX,EAAMrB,qBADN0F,EAC6B,4BAEA,eAGrC/B,EAAAA,EAAAA,IAAO,0DAAAC,OAA0DvC,EAAMrB,uBAEvE,IAAI4F,EAAoBhE,EAAQiE,QAAO,SAAA9D,GAAK,MAAe,QAAfA,EAAEC,SAAF,IACxC8D,EAAgBlE,EAAQ,GACxBT,EAAAA,EAAKwE,UAAUG,IAAkB3E,EAAAA,EAAKwE,UAAUG,EAAc5G,MAC9DmC,EAAMpB,gBAAkB6F,EAAc5G,GACtCmC,EAAMlB,kBAAoB2F,GAG1BL,IACA7D,EAAUgE,GAGdvE,EAAMjB,qBAAuBwB,EAC7BP,EAAMjC,eAAiBwC,EAAQ,IAAM,CAAC,GAAY,QACvB,gBAAvBP,EAAMjC,gBACNiC,EAAMjC,cAAgB,KACtBiC,EAAMpB,gBAAkB,MAE5BoB,EAAMnB,4BAA8B0F,EAAkBG,KAAI,SAAAhE,GAAK,OAAAA,EAAE7C,EAAF,G,MAE/DmC,EAAMrB,qBAAuB,cAC7BqB,EAAMjB,qBAAuB,KAC7BiB,EAAMnB,4BAA8B,KACpCmB,EAAMpB,gBAAkB,KACxBoB,EAAMlB,kBAAoB,KAC1BkB,EAAMjC,cAAgB8B,EAAK9B,cAU/B,OALAuE,EAAAA,EAAAA,IACI,qBAAAC,OAAqBvC,EAAMrB,qBAAoB,4BAAA4D,OAC3CvC,EAAMpB,gBAAe,wBAAA2D,OACFzC,EAAAA,EAAK0C,OAAOxC,EAAMlB,qBAEtCkB,CACX,EAGOtC,EAAAiH,aAAP,SAAoB9E,GAChB,QAAI,CAAC,4BAA6B,cAAc+E,SAAS/E,EAAKlB,qBAElE,EAOOjB,EAAAmH,gBAAP,SAAuB7E,EAAoB8E,QAAA,IAAAA,IAAAA,EAAA,OACvCxC,EAAAA,EAAAA,IAAO,oDAAAC,OAAoDvC,EAAMrB,uBAC7DmB,EAAAA,EAAKC,QAAQ+E,IAAahF,EAAAA,EAAKwE,UAAUtE,EAAMjB,wBAAuB+F,EAAQ7E,EAAA,GAAOD,EAAMjB,sBAAoB,IAGnH,IAAIgG,GAAa,EAEjB,IADAzC,EAAAA,EAAAA,IAAO,6CAAAC,OAA6C7E,EAAYiH,aAAa3E,KACzEtC,EAAYiH,aAAa3E,IAAUF,EAAAA,EAAKwE,UAAUtE,EAAMlB,mBAAoB,CAC5E,IAAIkG,EAAM3E,EAAAA,EAAYX,cAAc,CAACM,EAAMlB,oBAAoB,IAC/DwD,EAAAA,EAAAA,IACI,iDAAAC,OAAiDzC,EAAAA,EAAK0C,OAAOwC,GAAI,mBAAAzC,OAAkBuC,EAASJ,KACxF,SAAAhE,GAAK,OAAAA,EAAE7C,EAAF,MAIb,IAAIoH,EAAOH,EAASrE,MAAK,SAAAC,GAAK,OAAAA,EAAE7C,IAAMmH,EAAInH,EAAZ,IAC1BoH,IACA3C,EAAAA,EAAAA,IAAO,yCACP2C,EAAKrE,UAAW,KAEhB0B,EAAAA,EAAAA,IAAO,4CACP0C,EAAIpE,UAAW,EACfkE,EAASjE,KAAKmE,IAElBD,GAAa,C,CAGjB,GAAkC,6BAA9B/E,EAAMrB,qBAAqD,CAC3D,IAAIuG,EAAMJ,EAASrE,MAAK,SAAAC,GAAK,MAAe,QAAfA,EAAEC,SAAF,IAC7B,GAAIuE,EACIlF,EAAMhB,4BAA8B+F,IACpCG,EAAItE,UAAW,OAEhB,CACH,IAAIuE,EAAiB9E,EAAAA,EAAY+E,oBAC7BpF,EAAMhB,4BAA8B+F,IACpCI,EAAevE,UAAW,GAE9BkE,EAASjE,KAAKsE,E,EAKtB,OAFA7C,EAAAA,EAAAA,IAAO,wCAAAC,OAAwCzC,EAAAA,EAAK0C,OAAOsC,KAEpDA,CACX,EAEOpH,EAAA2H,aAAP,SACIjE,EACAkE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAC,EACAC,EAEAC,EACAC,EACAC,QALA,IAAAJ,IAAAA,EAAA,WAGA,IAAAE,IAAAA,EAAA,WACA,IAAAC,IAAAA,EAAA,WACA,IAAAC,IAAAA,EAAA,MAEIF,GAA2B,aAApBA,EAAIG,eACXH,EAAII,yBAA2BR,GAEnC,IAAIS,EAAM,CACN1I,GAAIuD,EAAKvD,GACTQ,WAAYiH,EAAGjH,WACfP,SAAUwH,EAAGxH,SACb0I,UAAWjB,EACXkB,SAAUjB,EACVkB,UAAWjB,EACXC,KAAMA,EACNiB,SAAUhB,EACVxH,KAAMyH,EACN7H,cAAe8H,EACfS,yBAA0BR,EAC1Bc,cAAeb,EACfc,SAAUX,EAAMA,EAAIrI,GAAK,KACzBiJ,UAAWZ,GAAOA,EAAIrI,GAAK,KAAOqI,EAClCa,WAAYZ,GAWhB,OATIrG,EAAAA,EAAKwE,UAAU0B,KACfO,EAAoB,eAAIP,EAAanI,IAGrCiC,EAAAA,EAAKwE,UAAU8B,KAEfA,EAAW,oBAGR3D,EAAAA,EAAAA,GAAM,CACTC,OAAQ,OACRC,IAAK,GAAAJ,OAAGzC,EAAAA,EAAK8C,UAAS,kBAAAL,OAAiB6D,GACvCvD,KAAM0D,IAELzD,MAAK,SAAAC,GASF,OARAT,EAAAA,EAAAA,IAAO,iCAAAC,OAAiCQ,EAAIF,KAAKG,QAAO,KAAAT,OAAIzC,EAAAA,EAAK0C,OAAOO,EAAIF,QACxEE,EAAIF,KAAKG,UACTC,EAAAA,EAAOD,QAAU,GAAAT,OAAGQ,EAAIF,KAAKG,UAM1B,CACHnD,KAL0BnC,EAAYgC,cAAc,CAACqD,EAAIF,KAAKlB,cAAc,GAM5E8E,SALa1D,EAAIF,KAAKmE,gBAAkB,GAMxCC,iBALmBC,EAAAA,EAAKxH,cAAcqD,EAAIF,KAAKsE,2BAA4BlB,EAASmB,SAMpFxJ,OAAQmF,EAAInF,OACZyJ,aAActE,EAAIF,KAAKwE,aAE/B,IAAE,OACK,SAAA/D,GAiCH,OAhCAhB,EAAAA,EAAAA,IAAO,QAAAC,OAAQe,EAAIN,QAAO,KAAAT,OAAIzC,EAAAA,EAAK0C,OAAOc,EAAIC,YAElCD,EAAIC,UAAWD,EAAIC,SA8BxB,CAAE1D,KAAM,KAAM4G,SAAU,KAAMQ,iBAAkB,KAAMrJ,OAAQ,IAAKyJ,aAAc,KAC5F,GACR,EAEO3J,EAAA4J,gBAAP,SAAuBlG,EAAYgC,EAAcsC,GAC7C,IAAIa,EAAM,CACN1I,GAAIuD,EAAKmG,eACTC,QAASpG,EAAKC,oBAAoBxD,GAClCuF,KAAMA,EACNsC,KAAMA,GAGV,OAAOjD,EAAAA,EAAAA,GAAM,CACTC,OAAQ,OACRC,IAAK,GAAAJ,OAAGzC,EAAAA,EAAK8C,UAAS,oCACtBC,KAAM0D,IAELzD,MAAK,SAAAC,GAQF,OAPAT,EAAAA,EAAAA,IAAO,oCAAAC,OAAoCQ,EAAIF,KAAKG,QAAO,KAAAT,OAAIzC,EAAAA,EAAK0C,OAAOO,EAAIF,QAC3EE,EAAIF,KAAKG,UACTC,EAAAA,EAAOD,QAAU,GAAAT,OAAGQ,EAAIF,KAAKG,UAK1B,CAAEnD,KAHqBnC,EAAYgC,cAAc,CAACqD,EAAIF,KAAKlB,cAAc,GAGvD8E,SAFR1D,EAAIF,KAAK4E,mBAAqB,GAGnD,IAAE,OACK,SAAAnE,GAGH,OAFAhB,EAAAA,EAAAA,IAAO,QAAAC,OAAQe,EAAIN,QAAO,KAAAT,OAAIzC,EAAAA,EAAK0C,OAAOc,EAAIC,YAC9CC,EAAAA,EAAoBC,iBAAiBH,GAC9B,IACX,GACR,EAEO5F,EAAAgK,eAAP,SAAsBC,EAAc7J,GAChC,IAAI8J,EAAe,GACnBA,GAAgBD,EAAGE,SAAS,QAC5B,IAAIC,EAAUH,EAAGI,QACbD,EAAU,IAAGA,GAAW,GAC5BF,GAAgB,IAAArF,OAAIyF,EAAAA,EAAQC,YAAYH,GAAQ,KAChDF,GAAgB,GAAArF,OAAGoF,EAAGE,SAAS,UAC/B,IAAIK,EAAOP,EAAGQ,KAAK,CAAEC,QAAStK,IAE9B,OADA8J,EAAgB,IAAArF,OAAI2F,EAAKL,SAAS,SAEtC,EAxkBgBnK,EAAA2K,SAAmB,WACnB3K,EAAA4K,mBAA6B,qBAC7B5K,EAAA6K,sBAAgC,wBAChC7K,EAAA8K,WAAqB,aACrB9K,EAAA+K,QAAkB,UAClB/K,EAAAgL,eAAyB,aACzBhL,EAAAiL,WAAqB,SAErBjL,EAAAkL,iBAA2B,EAC3BlL,EAAA4D,UAAoB,GACpB5D,EAAA8D,cAAwB,EAExB9D,EAAAmL,0BAA4B,CACxC,CAAElL,KAAM,cAAemL,MAAO,MAAOC,IAAK,EAAGC,SAAS,GACtD,CAAErL,KAAM,QAASmL,MAAO,MAAOC,IAAK,GAAIC,SAAS,GACjD,CAAErL,KAAM,WAAYmL,MAAO,QAASC,KAAM,EAAGC,SAAS,IA0jB9DtL,C,CA1kBA,G","sources":["webpack://assistant/./frontend/packs/models/Appointment.ts"],"sourcesContent":["import { DateTime } from \"luxon\"\nimport axios from \"axios\"\nimport Util from \"packs/utils/Util\"\nimport { funcName, Logger } from \"packs/common\"\nimport Notice from \"./Notice\"\nimport Room from \"./Room\"\nimport PossibleDate from \"./PossibleDate\"\nimport RoomMember from \"./RoomMember\"\nimport MeetingAttendeesGroup from \"./MeetingAttendeesGroup\"\nimport LocationTag from \"./LocationTag\"\nimport NotificationControl from \"packs/utils/NotificationControl\"\nimport CalendarTag from \"./CalendarTag\"\nimport DateTag from \"./DateTag\"\nimport lodash from \"lodash\"\n\ninterface OnlineMeetingLocation {\n online_meeting_url: string\n online_meeting_id: string\n online_meeting_password: string\n is_owner_ug: boolean\n online_meeting_account_email: string\n online_meeting_zoom_host_key: string\n}\n\nexport default class Appointment {\n static readonly typeEdit: string = \"editAppo\"\n static readonly typeEditAfterFixed: string = \"editAppoAfterFixed\"\n static readonly typeEditAfterCanceled: string = \"editAppoAfterCanceled\"\n static readonly typeAddNew: string = \"addnewAppo\"\n static readonly typeNew: string = \"newAppo\"\n static readonly typeReschedule: string = \"reschedule\"\n static readonly typeCancel: string = \"cancel\"\n\n static readonly statusInProgress: number = 1\n static readonly statusFix: number = 10\n static readonly statusCancel: number = -1\n\n static readonly DEFAULT_DOWNLOAD_STATUSES = [\n { name: `in_progress`, title: `調整中`, num: 1, checked: true },\n { name: `fixed`, title: `調整済`, num: 10, checked: true },\n { name: `canceled`, title: `キャンセル`, num: -1, checked: true },\n ]\n\n constructor(\n public name: string,\n public status: number,\n public id: string,\n public duration: number, // min\n public location_name: string,\n public created_at: number,\n public updated_at: number,\n public expired_at: number,\n public memo: string,\n public required_owner_participation: boolean, // chukaiが参加するかどうか\n public start_time: number,\n public end_time: number,\n public jp_format: string,\n public fix_type: number, // 日程確定可能者 オーナーのみ=1, オーナーと調整カレンダー最後のユーザー=99, 誰でも=100\n public selected_mag_dic: { [key: string]: MeetingAttendeesGroup },\n public selectedMags: MeetingAttendeesGroup[],\n public location_select_type: string, //registrable, registrable_owner_only, selectable, selectable_or_registrable\n public location_tag_id: string, // optional\n public selectable_location_tag_ids: string[],\n public selected_location: LocationTag,\n public selectable_locations: LocationTag[],\n // public locations: LocationTag[],\n public is_selected_free_location: boolean,\n public localId: string,\n public is_online_meeting: boolean,\n public online_meeting: OnlineMeetingLocation,\n public can_cancel: boolean,\n public cancel_expires_at: number,\n public can_display_mag_in_room: boolean\n ) {}\n\n static copy(o: Appointment): Appointment {\n let newO = lodash.cloneDeep(o)\n return newO\n }\n\n static fetchFromJson(apposJson: any): Appointment[] {\n if (!apposJson) return []\n let appointments = []\n // const arrOfGroups = JSON.parse(groupsJson)\n for (let appo of apposJson) {\n if (Util.isBlank(appo)) continue\n const _appo: Appointment = appo\n if (appo.selected_mag_dic) {\n appo.selectedMags = [...Object.values(appo.selected_mag_dic)]\n }\n if (appo.status == 10) {\n } else {\n if (appo.selected_location) {\n let loctag = LocationTag.fetchFromJson([appo.selected_location])[0]\n if (loctag) _appo.location_name = loctag.keyword\n _appo.selected_location = loctag\n }\n if (appo.selectable_locations) {\n let loctags = LocationTag.fetchFromJson(appo.selectable_locations)\n if (_appo.selected_location) {\n let _loctag = loctags.find(l => l.public_id == _appo.selected_location.public_id)\n if (_loctag) _loctag.selected = true\n }\n\n _appo.selectable_locations = loctags\n }\n }\n\n appointments.push(_appo)\n }\n return appointments\n }\n\n /**\n * numberに変更します.\n * @param str owner/last/any\n */\n static fixTypeFromString(str: string) {\n let fix_type\n if (str == `owner`) {\n fix_type = 1\n } else if (str == `last`) {\n fix_type = 99\n } else if (str == `any`) {\n fix_type = 100\n }\n return fix_type\n }\n\n static isFix(room: Room = null, appo: Appointment = null) {\n if (!room && !appo) return false\n if (!appo) {\n appo = room.current_appointment\n }\n\n if (!appo) return false\n if (appo.status == Appointment.statusFix) return true\n return false\n }\n\n static isCanceled(room: Room = null, appo: Appointment = null) {\n if (!room && !appo) return false\n if (!appo) {\n appo = room.current_appointment\n }\n\n if (!appo) return false\n if (appo.status == Appointment.statusCancel) return true\n return false\n }\n\n static createDefault(): Appointment {\n return new Appointment(\n `打ち合わせ`,\n 1,\n ``,\n 60,\n ``,\n 0,\n 0,\n 0,\n ``,\n true,\n -1,\n -1,\n null,\n null,\n null,\n null,\n `registrable`,\n null,\n null,\n null,\n null,\n false,\n null,\n false,\n null,\n true,\n null,\n false\n )\n }\n\n /**\n * アポを作成/更新します。\n * @param appointment [Appointment]\n * @param sendType [string] \"put\", \"post\", \"fix\"\n * @param room [Room] 調整ページのIDを利用するため.\n * @param magId [string] MeetingAttendeesGroupのidをセットすると、そのmagチームで確定します。\n */\n static update(\n appointment: Appointment,\n sendType,\n room: Room,\n start_time = null,\n magId = null,\n guestKey = null,\n onlineUrl = null,\n memo = null,\n lp_id = null\n ): Promise {\n let endpoint = \"\"\n if (sendType === \"fix\") {\n endpoint = \"/fix\"\n sendType = \"put\"\n appointment[\"start_time\"] = start_time\n if (magId) appointment[\"group_id\"] = magId\n if (guestKey) {\n appointment[`guest_key`] = guestKey\n appointment[`embeds`] = true\n }\n if (onlineUrl) appointment[`location_name`] = onlineUrl\n if (memo) appointment[`memo`] = memo\n if (lp_id) appointment[`lp_id`] = lp_id\n } else if (sendType === \"post\") {\n appointment[\"room_id\"] = room.room_id\n delete appointment[\"id\"]\n } else if (sendType === `put`) {\n // 編集の場合、room_appeal_contentの変更も許可\n appointment[`appeal_content`] = room.appeal_content\n }\n if (room.isParent) {\n appointment[\"parent_room_id\"] = room.id\n } else {\n appointment[\"parent_room_id\"] = room.parentRoomId\n }\n if (!appointment.name || appointment.name == ``) {\n appointment.name = \"打ち合わせ\"\n }\n // appointment[\"parent_room_id\"] = \"\"\n Logger(`Appointment.update sendType: ${sendType} appo: ${Util.output(appointment)}`)\n\n return axios({\n method: sendType,\n url: `${Util.prefixUrl}/room_appointments${endpoint}`,\n data: appointment,\n })\n .then(res => {\n Logger(`Appointment.update res: ${res.data.message} ${Util.output(res.data)}`)\n if (res.data.message) {\n Notice.message = `${res.data.message}`\n }\n const res_appo: Appointment = Appointment.fetchFromJson([res.data.appointment])[0]\n let next_action = res.data.next_action\n let type = res.data.type\n\n return { appo: res_appo, show_attendees_modal: res.data.show_attendees_modal, next_action, type }\n })\n .catch(err => {\n Logger(`err: ${err.message} ${Util.output(err.response)}`)\n NotificationControl.showErrorMessage(err)\n // if (res.code === \"ng_052\") {\n\n // } else {\n // Notice.message = `日程調整情報をうまく更新できませんでした。後ほどお試しください。`\n // }\n return null\n })\n }\n\n /**\n * アポを作成/更新します。\n * @param appointment [Appointment]\n * @param sendType [string] \"cancel\", \"reschedule\"\n * @param message [string] ユーザーがコメントした内容.\n */\n static cancel(appointment: Appointment, sendType, message = ``): Promise {\n let endpoint = \"\"\n if (sendType === \"cancel\") {\n endpoint = \"/cancel\"\n } else if (sendType === \"reschedule\") {\n endpoint = \"/reschedule\"\n } else {\n Notice.message = \"URLが不正です。\"\n return\n }\n const params = { id: appointment.id, message: message }\n\n // appointment[\"parent_room_id\"] = \"\"\n Logger(`Appointment.cancel sendType: ${sendType} appo: ${Util.output(appointment)}`)\n\n sendType = \"put\"\n\n return axios({\n method: sendType,\n url: `${Util.prefixUrl}/room_appointments${endpoint}`,\n data: params,\n })\n .then(res => {\n Logger(`Appointment.cancel res: ${res.data.message} ${Util.output(res.data)}`)\n if (res.data.message) {\n Notice.message = `${res.data.message}`\n }\n const appo: Appointment = Appointment.fetchFromJson([res.data.appointment])[0]\n // const appo: Appointment = res.data.appointment\n\n return appo\n })\n .catch(err => {\n Logger(`Appointment.cancel err: ${err.message} ${Util.output(err.response)}`)\n NotificationControl.showErrorMessage(err)\n // if (res.code === \"ng_052\") {\n\n // } else {\n // Notice.message = `日程調整情報をうまく更新できませんでした。後ほどお試しください。`\n // }\n return null\n })\n }\n\n static getLocationNames(): Promise {\n return axios\n .get(`${Util.prefixUrl}/room_appointments/locations`)\n .then(result => {\n Logger(`Appointment.${funcName()} result: ${Util.output(result.data)}`)\n const locations: string[] = result.data.locations\n return locations\n })\n .catch(err => {\n Logger(`Appointment.${funcName()} err: ${err.message} ${Util.output(err.response)}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n static getTitles(): Promise {\n return axios\n .get(`${Util.prefixUrl}/room_appointments/titles`)\n .then(result => {\n Logger(`Appointment.${funcName()} result: ${Util.output(result.data)}`)\n const titles: string[] = result.data.titles\n return titles\n })\n .catch(err => {\n Logger(`err: ${err.message} ${Util.output(err.response)}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n /**\n * appo内のlocation_select_type(registrable/selectable/selectable_or_registrable)の判定を行います。\n * 最後にappo.selectable_locationsにloctagsをセットします。\n *\n * @param appo [Appointment] 新しいloctagとタイプをセットするappo(途中で更新が走らないようにコピーして利用、返却)\n * @param loctags [LocationTag[]] 判定に利用するlocationTags\n * @param deleteFree [boolean] フリーフォームを削除するか(ルーム作成直前に通すときは削除します)\n */\n static setLocationSelectType(appo: Appointment, loctags: LocationTag[], deleteFree = false) {\n Logger(`Appointment.setLocationSelectType loctags[${(loctags || []).length}]:${Util.output(loctags)}`)\n\n let _appo = Appointment.copy(appo)\n let _freeLoctag = null\n if (Util.isPresent(loctags)) {\n if (loctags.length == 1) {\n _appo.location_select_type = `registrable`\n } else {\n _freeLoctag = loctags.find(l => l.public_id == `free`)\n if (_freeLoctag) {\n _appo.location_select_type = `selectable_or_registrable`\n } else {\n _appo.location_select_type = `selectable`\n }\n }\n Logger(`Appointment.setLocationSelectType location_select_type:${_appo.location_select_type}`)\n\n let loctagsExceptFree = loctags.filter(l => l.public_id != `free`)\n let defaultLoctag = loctags[0]\n if (Util.isPresent(defaultLoctag) && Util.isPresent(defaultLoctag.id)) {\n _appo.location_tag_id = defaultLoctag.id\n _appo.selected_location = defaultLoctag\n }\n\n if (deleteFree) {\n loctags = loctagsExceptFree\n }\n\n _appo.selectable_locations = loctags\n _appo.location_name = (loctags[0] || {})[`keyword`]\n if (_appo.location_name == `自由に場所を入力できます`) {\n _appo.location_name = null\n _appo.location_tag_id = null\n }\n _appo.selectable_location_tag_ids = loctagsExceptFree.map(l => l.id)\n } else {\n _appo.location_select_type = `registrable`\n _appo.selectable_locations = null\n _appo.selectable_location_tag_ids = null\n _appo.location_tag_id = null\n _appo.selected_location = null\n _appo.location_name = appo.location_name\n }\n // if (_appo.location_select_type == `registrable` && Util.isPresent(_appo.selected_location)) {\n // _appo.location_tag_id = _appo.selected_location.id\n // }\n Logger(\n `Appointment. 判定後: ${_appo.location_select_type} _appo.location_tag_id: ${\n _appo.location_tag_id\n }, selected_location:${Util.output(_appo.selected_location)}`\n )\n return _appo\n }\n\n //\n static isSelectable(appo: Appointment) {\n if ([`selectable_or_registrable`, `selectable`].includes(appo.location_select_type)) return true\n return false\n }\n\n /**\n * location_select_typeと整合性をあわせます。\n * @param _appo\n *\n */\n static adjustLocations(_appo: Appointment, _loctags: LocationTag[] = null) {\n Logger(`Appointment.adjustLocations location_select_type:${_appo.location_select_type}`)\n if (Util.isBlank(_loctags) && Util.isPresent(_appo.selectable_locations)) _loctags = [..._appo.selectable_locations]\n\n // 選択できるのは1つだけなので、選択したらtrueにします.\n let isSelected = false\n Logger(`Appointment.adjustLocations isSelectable: ${Appointment.isSelectable(_appo)}`)\n if (Appointment.isSelectable(_appo) && Util.isPresent(_appo.selected_location)) {\n let loc = LocationTag.fetchFromJson([_appo.selected_location])[0]\n Logger(\n `Appointment.adjustLocations 選択中のものを追加します. loc:${Util.output(loc)}, _loctags.ids:${_loctags.map(\n l => l.id\n )}`\n )\n\n let _loc = _loctags.find(l => l.id == loc.id)\n if (_loc) {\n Logger(`Appointment.adjustLocations _locありました`)\n _loc.selected = true\n } else {\n Logger(`Appointment.adjustLocations _locありませんでした`)\n loc.selected = true\n _loctags.push(loc)\n }\n isSelected = true\n }\n\n if (_appo.location_select_type == `selectable_or_registrable`) {\n let _lc = _loctags.find(l => l.public_id == `free`)\n if (_lc) {\n if (_appo.is_selected_free_location && !isSelected) {\n _lc.selected = true\n }\n } else {\n let freeFormLoctag = LocationTag.createRegistrable()\n if (_appo.is_selected_free_location && !isSelected) {\n freeFormLoctag.selected = true\n }\n _loctags.push(freeFormLoctag)\n }\n }\n Logger(`Appointment.adjustLocations _loctags:${Util.output(_loctags)}`)\n\n return _loctags\n }\n\n static fixVotedRoom(\n room: Room,\n pd: PossibleDate,\n voteType: string,\n parentRoomIds: string[],\n sampleId: string,\n text: string,\n force: boolean,\n textMemo: string,\n locationName: string,\n zoomAccs: CalendarTag[],\n newAttendees: RoomMember[],\n // オーナー以外の人が確定する場合、自分のparent_room_idを送信します.\n myParentRoom: Room = null,\n userInfo: RoomMember,\n // 担当者を指定する場合\n mag: MeetingAttendeesGroup = null,\n fAppoDic: any = null,\n endPoint: string = null\n ) {\n if (mag && mag.purpose_type == `temporary`) {\n mag.online_meeting_resources = zoomAccs\n }\n let dic = {\n id: room.id,\n start_time: pd.start_time,\n duration: pd.duration,\n vote_type: voteType,\n room_ids: parentRoomIds,\n sample_id: sampleId,\n text: text,\n is_force: force,\n memo: textMemo,\n location_name: locationName,\n online_meeting_resources: zoomAccs,\n new_attendees: newAttendees,\n group_id: mag ? mag.id : null,\n new_group: mag && mag.id ? null : mag,\n f_appo_dic: fAppoDic,\n }\n if (Util.isPresent(myParentRoom)) {\n dic[`parent_room_id`] = myParentRoom.id\n }\n\n if (Util.isPresent(endPoint)) {\n } else {\n endPoint = `fix_voted_rooms`\n }\n\n return axios({\n method: `post`,\n url: `${Util.prefixUrl}/public_rooms/${endPoint}`,\n data: dic,\n })\n .then(res => {\n Logger(`Appointment.fixVotedRoom res: ${res.data.message} ${Util.output(res.data)}`)\n if (res.data.message) {\n Notice.message = `${res.data.message}`\n }\n const res_appo: Appointment = Appointment.fetchFromJson([res.data.appointment])[0]\n const room_ids = res.data.fixed_room_ids || []\n const newParentRooms = Room.fetchFromJson(res.data.new_attendees_parent_rooms, userInfo.user_id)\n\n return {\n appo: res_appo,\n room_ids: room_ids,\n new_parent_rooms: newParentRooms,\n status: res.status,\n fixed_astags: res.data.fixed_astags,\n }\n })\n .catch(err => {\n Logger(`err: ${err.message} ${Util.output(err.response)}`)\n\n const res = err.response ? err.response : null\n // if (res && res.status == 400) {\n // if (window.confirm(`予定が埋まっていて確定できませんでした。強制的に確定しますか?`)) {\n // this.fixVotedRoom(\n // room,\n // pd,\n // voteType,\n // parentRoomIds,\n // sampleId,\n // text,\n // true,\n // textMemo,\n // locationName,\n // zoomAccs,\n // newAttendees,\n // myParentRoom,\n // userInfo\n // ).then(res => {\n // return res\n // })\n // }\n // } else {\n // NotificationControl.showErrorMessage(err)\n // }\n\n // if (res.code === \"ng_052\") {\n\n // } else {\n // Notice.message = `日程調整情報をうまく更新できませんでした。後ほどお試しください。`\n // }\n return { appo: null, room_ids: null, new_parent_rooms: null, status: 400, fixed_astags: null }\n })\n }\n\n static cancelVotedRoom(room: Room, type: string, text: string) {\n let dic = {\n id: room.public_room_id,\n appo_id: room.current_appointment.id,\n type: type,\n text: text,\n }\n\n return axios({\n method: `post`,\n url: `${Util.prefixUrl}/public_rooms/cancel_voted_rooms`,\n data: dic,\n })\n .then(res => {\n Logger(`Appointment.cancelVotedRoom res: ${res.data.message} ${Util.output(res.data)}`)\n if (res.data.message) {\n Notice.message = `${res.data.message}`\n }\n const res_appo: Appointment = Appointment.fetchFromJson([res.data.appointment])[0]\n const room_ids = res.data.canceled_room_ids || []\n\n return { appo: res_appo, room_ids: room_ids }\n })\n .catch(err => {\n Logger(`err: ${err.message} ${Util.output(err.response)}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n static createJpFormat(dt: DateTime, duration: number) {\n let timeJpFormat = ``\n timeJpFormat += dt.toFormat(`M月d日`)\n let weekNum = dt.weekday\n if (weekNum > 6) weekNum -= 7\n timeJpFormat += `(${DateTag.weekNames()[weekNum]})`\n timeJpFormat += `${dt.toFormat(`HH:mm`)}`\n let endt = dt.plus({ minutes: duration })\n timeJpFormat += `~${endt.toFormat(`HH:mm`)}`\n return timeJpFormat\n }\n}\n"],"names":["Appointment","name","status","id","duration","location_name","created_at","updated_at","expired_at","memo","required_owner_participation","start_time","end_time","jp_format","fix_type","selected_mag_dic","selectedMags","location_select_type","location_tag_id","selectable_location_tag_ids","selected_location","selectable_locations","is_selected_free_location","localId","is_online_meeting","online_meeting","can_cancel","cancel_expires_at","can_display_mag_in_room","copy","o","lodash","fetchFromJson","apposJson","appointments","appo","Util","isBlank","_appo","__spreadArray","Object","values","loctag","LocationTag","keyword","loctags","_loctag","find","l","public_id","selected","push","_i","apposJson_1","length","fixTypeFromString","str","isFix","room","current_appointment","statusFix","isCanceled","statusCancel","createDefault","update","appointment","sendType","magId","guestKey","onlineUrl","lp_id","endpoint","room_id","appeal_content","isParent","parentRoomId","Logger","concat","output","axios","method","url","prefixUrl","data","then","res","message","Notice","res_appo","next_action","type","show_attendees_modal","err","response","NotificationControl","showErrorMessage","cancel","params","getLocationNames","get","result","funcName","locations","getTitles","titles","setLocationSelectType","deleteFree","_freeLoctag","isPresent","loctagsExceptFree","filter","defaultLoctag","map","isSelectable","includes","adjustLocations","_loctags","isSelected","loc_1","_loc","_lc","freeFormLoctag","createRegistrable","fixVotedRoom","pd","voteType","parentRoomIds","sampleId","text","force","textMemo","locationName","zoomAccs","newAttendees","myParentRoom","userInfo","mag","fAppoDic","endPoint","purpose_type","online_meeting_resources","dic","vote_type","room_ids","sample_id","is_force","new_attendees","group_id","new_group","f_appo_dic","fixed_room_ids","new_parent_rooms","Room","new_attendees_parent_rooms","user_id","fixed_astags","cancelVotedRoom","public_room_id","appo_id","canceled_room_ids","createJpFormat","dt","timeJpFormat","toFormat","weekNum","weekday","DateTag","weekNames","endt","plus","minutes","typeEdit","typeEditAfterFixed","typeEditAfterCanceled","typeAddNew","typeNew","typeReschedule","typeCancel","statusInProgress","DEFAULT_DOWNLOAD_STATUSES","title","num","checked"],"sourceRoot":""}