{"version":3,"file":"js/app.js","mappings":"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,OAAOC,WAAWkB,UAAYnB,OAAOC,WAAWkB,UAAY,KAE1EC,EAAW,CACtBC,aAAc,GACdC,aAAc,IACdC,mBAAoB,KAGTC,EAAW,CACtBC,YAAa,EACbC,OAAQ,IACRC,OAAQ,IACRC,KAAM,KACNC,IAAK,OAGMC,EAAQ,CACnBC,cAAe,EAAIP,EAASG,QAGjBK,EAAuB,GAAKR,EAASG,OAIrCM,EAA2B,gBAE3BC,EAAiC,wBACjCC,EAAiC,6BACjCC,EAAiC,2BAmCjCC,EAAmB,8CAqJnBC,EAAqB,CAChC,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,WACA,eACA,SACA,MACA,MACA,WACA,SACA,MACA,MACA,SACA,SACA,MACA,MACA,cACA,MACA,MACA,cACA,MACA,MACA,MACA,SACA,SACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,WACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,WACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,WACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,WACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,WACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,WACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,WACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,WACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,WACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,WACA,MACA,MACA,MACA,MACA,WACA,MACA,MACA,MACA,MACA,MACA,MACA,WACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,WACA,WACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,WACA,MACA,MACA,MACA,MACA,MACA,WACA,MACA,WACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAKWC,EAAoB,CAC/BC,IAAK,UACLC,IAAK,GACL,IAAM,GACN,IAAM,GACNC,IAAK,UACLC,IAAK,UACLC,IAAK,GACLC,IAAK,GACLC,SAAU,GACV,eAAgB,MAChB,SAAU,GACVC,IAAK,MACLC,IAAK,UACL,WAAY,GACZ,SAAU,GACVC,IAAK,UACLC,IAAK,WACL,SAAU,oBACV,SAAU,GACVC,IAAK,eACLC,IAAK,iCACL,cAAe,yBACfC,IAAK,gBACLC,IAAK,gBACL,cAAe,eACfC,IAAK,GACLC,IAAK,GACLC,IAAK,YACL,SAAU,yBACV,SAAU,GACVC,IAAK,UACLC,IAAK,WACLC,IAAK,MACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,SACLC,IAAK,SACLC,IAAK,GACLC,IAAK,GACLC,IAAK,SACLC,IAAK,UACLC,IAAK,mBACLC,IAAK,QACLC,IAAK,MACLC,IAAK,QACLC,IAAK,UACLC,IAAK,gBACLC,IAAK,OACLC,IAAK,GACLC,IAAK,GACLC,IAAK,WACLC,IAAK,SACLC,IAAK,SACLC,IAAK,aACLC,IAAK,iBACLC,IAAK,GACLC,IAAK,GACLC,IAAK,QACLC,IAAK,aACLC,IAAK,GACLC,IAAK,GACLC,IAAK,QACLC,IAAK,aACLC,IAAK,GACLC,IAAK,WACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SAC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GACLC,IAAK,GACLC,IAAK,QACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,SAAU,GACVC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,SAAU,GACVC,IAAK,GACLC,IAAK,WACLC,IAAK,SACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,SAAU,GACVC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,UACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,SAAU,GACVC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,SAAU,GACVC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,SAAU,GACVC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,SAAU,GACVC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,SAAU,GACVC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,SAAU,GACVC,SAAU,GACVC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,SAAU,GACVC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,aACLC,SAAU,GACVC,IAAK,GACLC,SAAU,WACVC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,GACLC,IAAK,cACLC,IAAK,SA8CMC,EAAkB,CAC/B,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,kBAAmB,WACnB,UAAW,WACX,UAAW,WACX,kBAAmB,WACnB,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,aAAa,WACb,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,eAAe,UACf,UAAW,UACX,eAAe,UACf,mBAAoB,UACpB,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,eAAe,WACf,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,GAAK,WACL,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,aAAa,WACb,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UAAW,WACX,UA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","sources":["webpack://app/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://app/./src/config/constants.js","webpack://app/./src/config/session.js","webpack://app/./src/i18n/en.js","webpack://app/./src/i18n/index.js","webpack://app/./src/plugins/vuetify.js","webpack://app/./src/store/helpers.js","webpack://app/./src/store/user.js","webpack://app/./src/services/device.js","webpack://app/./src/store/auth.js","webpack://app/./src/store/session.js","webpack://app/./src/store/ratings.js","webpack://app/./src/store/organization.js","webpack://app/./src/store/index.js","webpack://app/./src/router/index.js","webpack://app/./src/App.vue","webpack://app/./src/App.vue?7ccd","webpack://app/./src/main.js","webpack://app/./src/services/api.js","webpack://app/./src/views/AppMixin.vue","webpack://app/./src/views/AppMixin.vue?5fd1","webpack://app/webpack/bootstrap","webpack://app/webpack/runtime/amd options","webpack://app/webpack/runtime/chunk loaded","webpack://app/webpack/runtime/compat get default export","webpack://app/webpack/runtime/define property getters","webpack://app/webpack/runtime/ensure chunk","webpack://app/webpack/runtime/get javascript chunk filename","webpack://app/webpack/runtime/get mini-css chunk filename","webpack://app/webpack/runtime/global","webpack://app/webpack/runtime/harmony module decorator","webpack://app/webpack/runtime/hasOwnProperty shorthand","webpack://app/webpack/runtime/load script","webpack://app/webpack/runtime/make namespace object","webpack://app/webpack/runtime/node module decorator","webpack://app/webpack/runtime/publicPath","webpack://app/webpack/runtime/css loading","webpack://app/webpack/runtime/jsonp chunk loading","webpack://app/webpack/startup"],"sourcesContent":["var map = {\n\t\"./af\": 5177,\n\t\"./af.js\": 5177,\n\t\"./ar\": 1509,\n\t\"./ar-dz\": 1488,\n\t\"./ar-dz.js\": 1488,\n\t\"./ar-kw\": 8676,\n\t\"./ar-kw.js\": 8676,\n\t\"./ar-ly\": 2353,\n\t\"./ar-ly.js\": 2353,\n\t\"./ar-ma\": 4496,\n\t\"./ar-ma.js\": 4496,\n\t\"./ar-ps\": 6947,\n\t\"./ar-ps.js\": 6947,\n\t\"./ar-sa\": 2682,\n\t\"./ar-sa.js\": 2682,\n\t\"./ar-tn\": 9756,\n\t\"./ar-tn.js\": 9756,\n\t\"./ar.js\": 1509,\n\t\"./az\": 5533,\n\t\"./az.js\": 5533,\n\t\"./be\": 8959,\n\t\"./be.js\": 8959,\n\t\"./bg\": 7777,\n\t\"./bg.js\": 7777,\n\t\"./bm\": 4903,\n\t\"./bm.js\": 4903,\n\t\"./bn\": 1290,\n\t\"./bn-bd\": 7357,\n\t\"./bn-bd.js\": 7357,\n\t\"./bn.js\": 1290,\n\t\"./bo\": 1545,\n\t\"./bo.js\": 1545,\n\t\"./br\": 1470,\n\t\"./br.js\": 1470,\n\t\"./bs\": 4429,\n\t\"./bs.js\": 4429,\n\t\"./ca\": 7306,\n\t\"./ca.js\": 7306,\n\t\"./cs\": 6464,\n\t\"./cs.js\": 6464,\n\t\"./cv\": 3635,\n\t\"./cv.js\": 3635,\n\t\"./cy\": 4226,\n\t\"./cy.js\": 4226,\n\t\"./da\": 3601,\n\t\"./da.js\": 3601,\n\t\"./de\": 7853,\n\t\"./de-at\": 6111,\n\t\"./de-at.js\": 6111,\n\t\"./de-ch\": 4697,\n\t\"./de-ch.js\": 4697,\n\t\"./de.js\": 7853,\n\t\"./dv\": 708,\n\t\"./dv.js\": 708,\n\t\"./el\": 4691,\n\t\"./el.js\": 4691,\n\t\"./en-au\": 3872,\n\t\"./en-au.js\": 3872,\n\t\"./en-ca\": 8298,\n\t\"./en-ca.js\": 8298,\n\t\"./en-gb\": 6195,\n\t\"./en-gb.js\": 6195,\n\t\"./en-ie\": 6584,\n\t\"./en-ie.js\": 6584,\n\t\"./en-il\": 5543,\n\t\"./en-il.js\": 5543,\n\t\"./en-in\": 9033,\n\t\"./en-in.js\": 9033,\n\t\"./en-nz\": 9402,\n\t\"./en-nz.js\": 9402,\n\t\"./en-sg\": 3004,\n\t\"./en-sg.js\": 3004,\n\t\"./eo\": 2934,\n\t\"./eo.js\": 2934,\n\t\"./es\": 7650,\n\t\"./es-do\": 838,\n\t\"./es-do.js\": 838,\n\t\"./es-mx\": 7730,\n\t\"./es-mx.js\": 7730,\n\t\"./es-us\": 6575,\n\t\"./es-us.js\": 6575,\n\t\"./es.js\": 7650,\n\t\"./et\": 3035,\n\t\"./et.js\": 3035,\n\t\"./eu\": 3508,\n\t\"./eu.js\": 3508,\n\t\"./fa\": 119,\n\t\"./fa.js\": 119,\n\t\"./fi\": 527,\n\t\"./fi.js\": 527,\n\t\"./fil\": 5995,\n\t\"./fil.js\": 5995,\n\t\"./fo\": 2477,\n\t\"./fo.js\": 2477,\n\t\"./fr\": 5498,\n\t\"./fr-ca\": 6435,\n\t\"./fr-ca.js\": 6435,\n\t\"./fr-ch\": 7892,\n\t\"./fr-ch.js\": 7892,\n\t\"./fr.js\": 5498,\n\t\"./fy\": 7071,\n\t\"./fy.js\": 7071,\n\t\"./ga\": 1734,\n\t\"./ga.js\": 1734,\n\t\"./gd\": 217,\n\t\"./gd.js\": 217,\n\t\"./gl\": 7329,\n\t\"./gl.js\": 7329,\n\t\"./gom-deva\": 2124,\n\t\"./gom-deva.js\": 2124,\n\t\"./gom-latn\": 3383,\n\t\"./gom-latn.js\": 3383,\n\t\"./gu\": 5050,\n\t\"./gu.js\": 5050,\n\t\"./he\": 1713,\n\t\"./he.js\": 1713,\n\t\"./hi\": 3861,\n\t\"./hi.js\": 3861,\n\t\"./hr\": 6308,\n\t\"./hr.js\": 6308,\n\t\"./hu\": 609,\n\t\"./hu.js\": 609,\n\t\"./hy-am\": 7160,\n\t\"./hy-am.js\": 7160,\n\t\"./id\": 4063,\n\t\"./id.js\": 4063,\n\t\"./is\": 9374,\n\t\"./is.js\": 9374,\n\t\"./it\": 8383,\n\t\"./it-ch\": 1827,\n\t\"./it-ch.js\": 1827,\n\t\"./it.js\": 8383,\n\t\"./ja\": 3827,\n\t\"./ja.js\": 3827,\n\t\"./jv\": 9722,\n\t\"./jv.js\": 9722,\n\t\"./ka\": 1794,\n\t\"./ka.js\": 1794,\n\t\"./kk\": 7088,\n\t\"./kk.js\": 7088,\n\t\"./km\": 6870,\n\t\"./km.js\": 6870,\n\t\"./kn\": 4451,\n\t\"./kn.js\": 4451,\n\t\"./ko\": 3164,\n\t\"./ko.js\": 3164,\n\t\"./ku\": 8174,\n\t\"./ku-kmr\": 6181,\n\t\"./ku-kmr.js\": 6181,\n\t\"./ku.js\": 8174,\n\t\"./ky\": 8474,\n\t\"./ky.js\": 8474,\n\t\"./lb\": 9680,\n\t\"./lb.js\": 9680,\n\t\"./lo\": 5867,\n\t\"./lo.js\": 5867,\n\t\"./lt\": 5766,\n\t\"./lt.js\": 5766,\n\t\"./lv\": 9532,\n\t\"./lv.js\": 9532,\n\t\"./me\": 8076,\n\t\"./me.js\": 8076,\n\t\"./mi\": 1848,\n\t\"./mi.js\": 1848,\n\t\"./mk\": 306,\n\t\"./mk.js\": 306,\n\t\"./ml\": 3739,\n\t\"./ml.js\": 3739,\n\t\"./mn\": 9053,\n\t\"./mn.js\": 9053,\n\t\"./mr\": 6169,\n\t\"./mr.js\": 6169,\n\t\"./ms\": 3386,\n\t\"./ms-my\": 2297,\n\t\"./ms-my.js\": 2297,\n\t\"./ms.js\": 3386,\n\t\"./mt\": 7075,\n\t\"./mt.js\": 7075,\n\t\"./my\": 2264,\n\t\"./my.js\": 2264,\n\t\"./nb\": 2274,\n\t\"./nb.js\": 2274,\n\t\"./ne\": 8235,\n\t\"./ne.js\": 8235,\n\t\"./nl\": 2572,\n\t\"./nl-be\": 3784,\n\t\"./nl-be.js\": 3784,\n\t\"./nl.js\": 2572,\n\t\"./nn\": 4566,\n\t\"./nn.js\": 4566,\n\t\"./oc-lnc\": 9330,\n\t\"./oc-lnc.js\": 9330,\n\t\"./pa-in\": 9849,\n\t\"./pa-in.js\": 9849,\n\t\"./pl\": 4418,\n\t\"./pl.js\": 4418,\n\t\"./pt\": 9834,\n\t\"./pt-br\": 8303,\n\t\"./pt-br.js\": 8303,\n\t\"./pt.js\": 9834,\n\t\"./ro\": 4457,\n\t\"./ro.js\": 4457,\n\t\"./ru\": 2271,\n\t\"./ru.js\": 2271,\n\t\"./sd\": 1221,\n\t\"./sd.js\": 1221,\n\t\"./se\": 3478,\n\t\"./se.js\": 3478,\n\t\"./si\": 7538,\n\t\"./si.js\": 7538,\n\t\"./sk\": 5784,\n\t\"./sk.js\": 5784,\n\t\"./sl\": 6637,\n\t\"./sl.js\": 6637,\n\t\"./sq\": 6794,\n\t\"./sq.js\": 6794,\n\t\"./sr\": 5719,\n\t\"./sr-cyrl\": 3322,\n\t\"./sr-cyrl.js\": 3322,\n\t\"./sr.js\": 5719,\n\t\"./ss\": 6000,\n\t\"./ss.js\": 6000,\n\t\"./sv\": 1011,\n\t\"./sv.js\": 1011,\n\t\"./sw\": 748,\n\t\"./sw.js\": 748,\n\t\"./ta\": 1025,\n\t\"./ta.js\": 1025,\n\t\"./te\": 1885,\n\t\"./te.js\": 1885,\n\t\"./tet\": 8861,\n\t\"./tet.js\": 8861,\n\t\"./tg\": 6571,\n\t\"./tg.js\": 6571,\n\t\"./th\": 5802,\n\t\"./th.js\": 5802,\n\t\"./tk\": 9527,\n\t\"./tk.js\": 9527,\n\t\"./tl-ph\": 9231,\n\t\"./tl-ph.js\": 9231,\n\t\"./tlh\": 1052,\n\t\"./tlh.js\": 1052,\n\t\"./tr\": 5096,\n\t\"./tr.js\": 5096,\n\t\"./tzl\": 9846,\n\t\"./tzl.js\": 9846,\n\t\"./tzm\": 1765,\n\t\"./tzm-latn\": 7711,\n\t\"./tzm-latn.js\": 7711,\n\t\"./tzm.js\": 1765,\n\t\"./ug-cn\": 8414,\n\t\"./ug-cn.js\": 8414,\n\t\"./uk\": 6618,\n\t\"./uk.js\": 6618,\n\t\"./ur\": 158,\n\t\"./ur.js\": 158,\n\t\"./uz\": 7609,\n\t\"./uz-latn\": 4856,\n\t\"./uz-latn.js\": 4856,\n\t\"./uz.js\": 7609,\n\t\"./vi\": 1135,\n\t\"./vi.js\": 1135,\n\t\"./x-pseudo\": 4051,\n\t\"./x-pseudo.js\": 4051,\n\t\"./yo\": 2218,\n\t\"./yo.js\": 2218,\n\t\"./zh-cn\": 2648,\n\t\"./zh-cn.js\": 2648,\n\t\"./zh-hk\": 1632,\n\t\"./zh-hk.js\": 1632,\n\t\"./zh-mo\": 1541,\n\t\"./zh-mo.js\": 1541,\n\t\"./zh-tw\": 304,\n\t\"./zh-tw.js\": 304\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 5358;","let assetUrl = window.APP_CONFIG.assetUrl ? window.APP_CONFIG.assetUrl : ''\n\n// define constants for config injected from environment\nexport const API_URL = window.APP_CONFIG.apiUrl ? window.APP_CONFIG.apiUrl : null\nexport const ASSET_URL = window.APP_CONFIG.assetUrl ? window.APP_CONFIG.assetUrl : null\nexport const STRIPE_API_KEY = window.APP_CONFIG.stripeApiKey ? window.APP_CONFIG.stripeApiKey : null\nexport const TOKBOX_API_KEY = window.APP_CONFIG.tokboxApiKey ? window.APP_CONFIG.tokboxApiKey : null\nexport const DEEPLINK_BRANCK_URL = window.APP_CONFIG.deeplinkBranchURL ? window.APP_CONFIG.deeplinkBranchURL : null\nexport const DEFAULT_LOCALE = window.APP_CONFIG.locale ? window.APP_CONFIG.locale : null\nexport const VERSION = window.APP_CONFIG.version ? window.APP_CONFIG.version : 'dev'\nexport const SENTRY_DSN = window.APP_CONFIG.sentryDSN ? window.APP_CONFIG.sentryDSN : null \nexport const SENTRY_ENVIRONMENT = window.APP_CONFIG.sentryEnvironment ? window.APP_CONFIG.sentryEnvironment : null \nexport const REDIRECT_URL = window.APP_CONFIG.redirectURL ? window.APP_CONFIG.redirectURL : null\nexport const WEB_APP_URL = window.APP_CONFIG.webAppURL ? window.APP_CONFIG.webAppURL : null\n\nexport const SCHEDULE = {\n MIN_DURATION: 30, // minimum duration to schedule a call in minutes\n MAX_DURATION: 360, // maximum duration to schedule a call in minutes\n PRE_SCHEDULE_LIMIT: 720 // minimum time limit to schedule a future call in minutes\n}\n\nexport const DURATION = {\n MILLISECOND: 1,\n SECOND: 1000,\n MINUTE: 1000 * 60,\n HOUR: 1000 * 60 * 60,\n DAY: 1000 * 60 * 60 * 24\n}\n\nexport const CACHE = {\n CLIENT_CONFIG: 5 * DURATION.MINUTE // used to throttle reloading billing account account configuration\n}\n\nexport const JWT_REFRESH_INTERVAL = 10 * DURATION.MINUTE\n\n// These flags are also defined in the api. Changes to format must be made in both places\n//Linguist Classification\nexport const featureFlagIsBlockedUser = \"users:blocked\"\n\nexport const featureFlagActiveLinguist = \"users:active-linguist\"\nexport const featureFlagProspectiveLinguist = \"users:prospective-linguist\"\nexport const featureFlagTestCallLinguist = \"users:test-call-linguist\"\n\n\t//Linguist Steps Flags - these are *not* mutually exclusive. These will measure a linguist's progress through the activation process\nexport const\tfeatureFlagLinguistActivationSelfAssessment = \"linguist-activation:self-assessment-completed\"\nexport const\tfeatureFlagLinguistActivationOrientation = \"linguist-activation:orientation-completed\"\nexport const\tfeatureFlagLinguistActivationTrialCallCompleted = \"linguist-activation:trial-call-completed\"\nexport const \tfeatureFlagLinguistActivationServiceAgreement = \"linguist-activation:service-agreement-completed\"\nexport const featureFlagLinguistActivationTestCallCompleted = \"linguist-activation:test-call-completed\"\nexport const featureFlagLinguistActivationEligibilityCompleted = \"linguist-activation:eligibility-completed\"\nexport const featureFlagLinguistActivationAgreementsCompleted = \"linguist-activation:agreements-completed\"\n\n// Healthcare Agreements\nexport const featureFlagAgreementLinguistHCBAA = \"agreements:linguist-healthcare-baa\"\nexport const featureFlagAgreementLinguistHCHIPPAPolicy = \"agreements:linguist-healthcare-hipaa-policy\"\n\n// Medically Active\nexport const featureFlagLinguistTagAseEngMedicalActive = \"linguists:tag:eng+spa:medical-active\"\nexport const featureFlagLinguistTagEngSpaMedicalActive = \"linguists:tag:ase+eng:medical-active\"\n\nexport const LinguistActivationSteps = [\n featureFlagLinguistActivationSelfAssessment,\n featureFlagLinguistActivationOrientation,\n featureFlagLinguistActivationTestCallCompleted,\n featureFlagLinguistActivationEligibilityCompleted,\n featureFlagLinguistActivationAgreementsCompleted\n]\n\n//Trial Period and Eligibility are Mutex\nexport const\tfeatureFlagLinguistActivationTrialPeriod = \"linguist-activation:trial-period-active\"\nexport const\tfeatureFlagLinguistEligibilityMet = \"linguist-activation:eligibility-met\"\n\nexport const CUSTOMER_FREE_MINUTES = 5\n\n// export const serviceWorkerFile = !!window.APP_CONFIG.assetUrl ? '../../dist/firebase-messaging-sw.js' : assetUrl +'/dist/static/firebase-messaging-sw.js'\n\nexport const defaultAvatarURL = 'https://www.gravatar.com/avatar/?d=mp&s=250';\n\n//Current version of each policy that is currently active are defined\nexport const privacyPolicy = {\n URL: assetUrl+'/dist/static/docs/en/Jeenie_PP_V1.txt',\n DOWNLOAD: assetUrl+'/dist/static/docs/en/Jeenie_PP_V1.pdf',\n VERSION: 'v1',\n AGREEMENT: 'privacyPolicy',\n TITLE: \"Jeenie_Privacy_Policy\"\n}\n\nexport const termsOfUse = {\n URL: assetUrl+'/dist/static/docs/en/Jeenie_ToU_V1.txt',\n DOWNLOAD: assetUrl+'/dist/static/docs/en/Jeenie_ToU_V1.pdf',\n VERSION: 'v1',\n AGREEMENT: 'termsOfUse',\n TITLE: 'Jeenie_Terms_Of_Use'\n}\n\nexport const serviceAgreement = {\n URL: assetUrl+'/dist/static/docs/en/Jeenie_LSA_V1.txt',\n DOWNLOAD: assetUrl+'/dist/static/docs/en/Jeenie_LSA_V1.pdf',\n VERSION: 'v1',\n AGREEMENT: 'linguistServiceAgreement',\n TITLE: 'Jeenie_Platform_Service_Agreement'\n}\n\nexport const linguistHealthcareBAA = {\n URL: assetUrl+'/dist/static/docs/en/Jeenie_HC_BAA_V1.txt',\n DOWNLOAD: assetUrl+'/dist/static/docs/en/Jeenie_HC_BAA_V1.pdf',\n VERSION: 'v1',\n AGREEMENT: 'linguistHealthcareBAA',\n TITLE: 'Jeenie_Linguist_Healthcare_BAA'\n}\n\nexport const linguistHIPAAPolicy = {\n URL: assetUrl+'/dist/static/docs/en/Jeenie_HC_HIPAA_V1.txt',\n DOWNLOAD: assetUrl+'/dist/static/docs/en/Jeenie_HC_HIPAA_V1.pdf',\n VERSION: 'v1',\n AGREEMENT: 'linguistHIPAAPolicy',\n TITLE: 'Jeenie_Linguist_HIPAA_Policy'\n}\n\n// Sound files used in project\nexport const incomingCallSound = {\n URL: assetUrl+'/dist/static/sounds/elastic_musical5.wav',\n}\n\n//TODO: Make channel be i18n paths to strings to pass to the translator at render\nexport const linguistChannels = [\n{\n channel: \"Another Language Jeenie\",\n additionalInformation: \"\",\n addInfo: true\n},\n{\n channel: \"Colleague or friend\",\n additionalInformation: \"\",\n addInfo: true\n},\n{\n channel: \"Professional association\",\n additionalInformation: \"\",\n addInfo: true\n},\n{\n channel: \"University or school\",\n additionalInformation: \"\",\n addInfo: true\n},\n{\n channel: \"Social media\",\n additionalInformation: \"\",\n addInfo: false\n},\n{\n channel: \"Direct mail\",\n additionalInformation: \"\",\n addInfo: false\n},\n{\n channel: \"Advertisement\",\n additionalInformation: \"\",\n addInfo: false\n},\n{\n channel: \"ProZ\",\n additionalInformation: \"\",\n addInfo: false\n},\n{\n channel: \"ACTFL\",\n additionalInformation: \"\",\n addInfo: false\n},\n{\n channel: \"NAFSA\",\n additionalInformation: \"\",\n addInfo: false\n},\n{\n channel: \"NCLC\",\n additionalInformation: \"\",\n addInfo: false\n},\n{\n channel: \"Other\",\n additionalInformation: \"\",\n addInfo: true\n}\n]\n\nexport const linguistStatusi = [\n {\n status: \"Interpreter\",\n additionalInformation: \"\"\n },\n {\n status: \"Translator\",\n additionalInformation: \"\"\n },\n {\n status: \"Teacher or professor\",\n additionalInformation: \"\"\n },\n {\n status: \"Other employed professional\",\n additionalInformation: \"\"\n },\n {\n status: \"Student\",\n additionalInformation: \"\"\n },\n {\n status: \"Retired\",\n additionalInformation: \"\"\n },\n {\n status: \"Other\",\n additionalInformation: \"\"\n }\n]\n\nexport const VIDEO_ONLY_LANG_CODES = [\n 'ase',\n 'ugn',\n 'xki'\n]\n\nexport const PRIMARY_LANG_CODES = [\n \"eng\",\n \"ase\",\n \"bem\",\n \"bib\",\n \"cmn\",\n \"yue\",\n \"arz\",\n \"apd\",\n \"tois1237\",\n \"zho-cn-shang\",\n \"zho-tw\",\n \"jpn\",\n \"spa\",\n \"spa-r-la\",\n \"spa-es\",\n \"deu\",\n \"fra\",\n \"fra-ca\",\n \"fra-fr\",\n \"arb\",\n \"aao\",\n \"ara-arz_apd\",\n \"afb\",\n \"acm\",\n \"ara-apc_ajp\",\n \"azj\",\n \"azb\",\n \"por\",\n \"por-br\",\n \"por-pt\",\n \"rus\",\n \"ita\",\n \"kor\",\n \"nld\",\n \"swe\",\n \"nor\",\n \"tur\",\n \"pol\",\n \"dan\",\n \"fin\",\n \"tha\",\n \"heb\",\n \"ind\",\n \"pes\",\n \"prs\",\n \"hin\",\n \"ces\",\n \"zsm\",\n \"pus\",\n \"sin\",\n \"mah\",\n \"ell\",\n \"hun\",\n \"ron\",\n \"vie\",\n \"ben\",\n \"cat\",\n \"fil\",\n \"tam\",\n \"slk\",\n \"kaz\",\n \"ltz\",\n \"kur\",\n \"ukr\",\n \"afr\",\n \"hrv\",\n \"glg\",\n \"slv\",\n \"lit\",\n \"ckb\",\n \"jav\",\n \"urd\",\n \"sqi\",\n \"tel\",\n \"srp\",\n \"yor\",\n \"hau\",\n \"bul\",\n \"uzb\",\n \"swa\",\n \"eus\",\n \"bel\",\n \"tat\",\n \"amh\",\n \"bos\",\n \"mya\",\n \"kea\",\n \"guj\",\n \"hat\",\n \"hmn\",\n \"khm\",\n \"lao\",\n \"npi\",\n \"som\",\n \"tgl\",\n \"tir\",\n \"lin\",\n \"orm\",\n \"ksw\",\n \"eky\",\n \"wol\",\n \"kin\",\n \"jam\",\n \"quc\",\n \"mam\",\n \"tzo\",\n \"kjb\",\n \"mon\",\n \"run\",\n \"pan\",\n \"que\",\n \"knj\",\n \"mixt1427\",\n \"kek\",\n \"aym\",\n \"cak\",\n \"ixi\",\n \"acr\",\n \"cac\",\n \"yua\",\n \"zap\",\n \"poh\",\n \"poc\",\n \"usp\",\n \"agu\",\n \"nav\",\n \"cnh\",\n \"ibo\",\n \"ceb\",\n \"zom\",\n \"rhg\",\n \"mal\",\n \"cho\",\n \"kat\",\n \"chk\",\n \"kos\",\n \"pon\",\n \"ixj\",\n \"ixl\",\n \"hop\",\n \"haz\",\n \"aiq\",\n \"tuk\",\n \"bal\",\n \"brh\",\n \"sot\",\n \"zul\",\n \"mar\",\n \"kan\",\n \"ori\",\n \"asm\",\n \"mai\",\n \"kun\",\n \"yid\",\n \"ugn\",\n \"xki\",\n \"jac\",\n \"aar\",\n \"skr\",\n \"hnd\",\n \"hno\",\n \"arm\",\n \"ctu\",\n \"kbp\",\n \"kon\",\n \"tzh\",\n \"syl\",\n \"ful\",\n \"aka\",\n \"bam\",\n \"tar\",\n \"tac\",\n \"tzj\",\n \"anu\",\n \"qug\",\n \"qxr\",\n \"qvi\",\n \"ahi\",\n \"kro\",\n \"triq1251\",\n \"quz\",\n \"toj\",\n \"csn\",\n \"quv\",\n \"snk\",\n \"pga\",\n \"shu\",\n \"arq\",\n \"apc\",\n \"gsw\",\n \"nds\",\n \"gcr\",\n \"psr\",\n \"nob\",\n \"nno\",\n \"hif\",\n \"psp\",\n \"hac\",\n \"zza\",\n \"kmr\",\n \"sdh\",\n \"hbs\",\n \"bqn\",\n \"swc\",\n \"ghk\",\n \"blk\",\n \"kvu\",\n \"kyu\",\n \"fao\",\n \"isl\",\n \"lav\",\n \"fas\",\n \"bak\",\n \"bre\",\n \"cos\",\n \"div\",\n \"est\",\n \"fry\",\n \"kal\",\n \"iku\",\n \"gle\",\n \"kok\",\n \"kir\",\n \"dsb\",\n \"mkd\",\n \"mlt\",\n \"mri\",\n \"arn\",\n \"moh\",\n \"oci\",\n \"roh\",\n \"smn\",\n \"smj\",\n \"sme\",\n \"sms\",\n \"sma\",\n \"san\",\n \"gla\",\n \"nso\",\n \"tsn\",\n \"syc\",\n \"tgk\",\n \"ber\",\n \"hsb\",\n \"uig\",\n \"cym\",\n \"sah\",\n \"iii\",\n \"bfi\",\n \"isg\",\n \"ncs\",\n \"ewe\",\n \"gaa\",\n \"twi\",\n \"kri\",\n \"fat\",\n \"gan\",\n \"fzho\",\n \"hak\",\n \"hokk1242\",\n \"hsn\",\n \"pcm\",\n \"smo\",\n \"ton\",\n \"fij\",\n \"tvl\",\n \"tpi\",\n \"gil\",\n \"sna\",\n \"grb\",\n \"syr\",\n \"ban\",\n \"bis\",\n \"ilo\",\n \"nau\",\n \"niu\",\n \"pkp\",\n \"sun\",\n \"tah\",\n \"tkl\",\n \"pag\",\n \"nan\",\n \"fcs\",\n \"lat\",\n \"hil\",\n \"ace\",\n \"ach\",\n \"esu\",\n \"xho\",\n \"chao1238\",\n \"ctd\",\n \"zyp\",\n \"kdh\",\n \"din\",\n \"dyo\",\n \"bin\",\n \"gex\",\n \"gug\",\n \"hain1238\",\n \"har\",\n \"mey\",\n \"lom\",\n \"clt\",\n \"ziw\",\n \"mkw\",\n \"kik\",\n \"jing1262\",\n \"jra\",\n \"lug\",\n \"luo\",\n \"ymm\",\n \"mnk\",\n \"mrh\",\n \"hlt\",\n \"myb\",\n \"men\",\n \"ium\",\n \"hna\",\n \"cnr\",\n \"nus\",\n \"wes\",\n \"fuc\",\n \"sez\",\n \"chen1267\",\n \"sus\",\n \"bsq\",\n \"cal\",\n \"cha\",\n \"cfm\",\n \"als\",\n \"brx\",\n \"doi\",\n \"kas\",\n \"mni\",\n \"sat\",\n \"snd\",\n \"tcs\",\n \"ulk\",\n \"wim\",\n \"mwp\",\n \"kky\",\n \"pis\",\n \"wmt\",\n \"ggd\",\n \"yuul1239\",\n \"new\",\n \"apa\",\n \"beq\",\n \"nya\",\n \"sfs\",\n \"nde\",\n \"ssw\",\n \"tso\",\n \"ven\",\n \"toi\",\n \"tog\",\n \"lua\",\n \"mlg\",\n \"lrl\",\n \"mfz\",\n \"tdt\",\n \"ood\",\n \"sag\",\n \"tig\",\n \"scn\",\n \"nyn\",\n \"kac\",\n \"spy\",\n \"kln\",\n \"sgc\",\n \"lan\",\n \"enb\",\n \"pko\",\n \"kpz\",\n \"axe\",\n \"aly\",\n \"eth\",\n \"chat1268\",\n \"rki\",\n \"ade\",\n \"bmb\",\n \"bua\",\n \"cre\",\n \"dgr\",\n \"kqo\",\n \"gej\",\n \"gom\",\n \"pdu\",\n \"tod\",\n \"kxf\",\n \"mls\",\n \"dty\",\n \"pau\",\n \"pam\",\n \"pif\",\n \"krn\",\n \"kvy\",\n \"shn\",\n \"czt\",\n \"blt\",\n \"bfz\",\n \"rkm\",\n \"agq\",\n \"emk\",\n \"aee\",\n \"glh\",\n \"psi\",\n \"psh\",\n \"ibg\",\n \"lir\",\n \"ssy\",\n \"mlq\",\n \"pap\",\n \"tem\",\n \"krw\",\n \"waci1238\",\n \"arc\",\n \"krj\",\n \"haw\",\n \"raj\",\n \"bete1265\",\n \"dzo\",\n \"bgc\",\n \"bho\",\n \"mfs\",\n \"bzj\",\n \"trf\",\n \"limo1249\",\n \"bjs\",\n \"ktb\",\n \"hfy\",\n \"kab\",\n \"mkj\",\n \"hgm\",\n \"dag\",\n \"ryu\",\n \"war\",\n \"csf\",\n \"nzi\",\n \"csg\",\n \"bzs\",\n \"wuu\",\n \"ouji1238\",\n \"xiam1236\",\n \"bhh\",\n \"bai\",\n \"nwe\",\n \"mos\",\n \"ssp\",\n \"cbi\",\n \"kno\",\n \"kfr\",\n \"tiv\",\n \"byv\",\n \"mwr\",\n \"kqs\",\n \"kss\",\n \"gru\",\n \"stv\",\n \"zwa\",\n \"ior\",\n \"mvz\",\n \"sgw\",\n \"phr\",\n \"aaa\",\n \"gkn\",\n \"wln\",\n \"chim1312\",\n \"ghl\",\n \"pov\",\n \"kcm\",\n \"guz\",\n \"nap\",\n \"ning1280\",\n \"tsz\",\n \"baju1245\",\n \"lus\",\n \"cab\",\n \"tcf\",\n \"tpc\",\n \"tpl\",\n \"tpx\",\n \"ttc\",\n \"nah\",\n \"amu\",\n \"azm\",\n \"azg\",\n \"czn\",\n \"cly\",\n \"cya\",\n \"dyu\",\n \"ymn\",\n]\n\n\n\nexport const PRIMARY_LANGUAGES = {\n eng: \"English\",\n ase: \"\",\n \"bem\":\"\",\n \"bib\":\"\",\n cmn: \"中文(普通话)\",\n yue: \"中文(广东话)\",\n arz: \"\",\n apd: \"\",\n tois1237: \"\",\n \"zho-cn-shang\": \"上海話\",\n \"zho-tw\": \"\",\n jpn: \"日本語\",\n spa: \"Español\",\n \"spa-r-la\": \"\",\n \"spa-es\": \"\",\n deu: \"Deutsch\",\n fra: \"Français\",\n \"fra-ca\": \"Français canadien\",\n \"fra-fr\": \"\",\n arb: \"عربي ( فصحي)\",\n aao: \"عربي ( جزائري - مغربي - تونسي)\",\n \"ara-arz_apd\": \"عربي ( مصري أو سوداني)\",\n afb: \"عربي ( خليجي)\",\n acm: \"عربي ( عراقي)\",\n \"ara-apc_ajp\": \"عربي ( شامي)\",\n azj: \"\",\n azb: \"\",\n por: \"Português\",\n \"por-br\": \"Português (Brasileiro)\",\n \"por-pt\": \"\",\n rus: \"Русский\",\n ita: \"Italiano\",\n kor: \"한국인\",\n nld: \"\",\n swe: \"\",\n nor: \"\",\n tur: \"Türkçe\",\n pol: \"Polski\",\n dan: \"\",\n fin: \"\",\n tha: \"แบบไทย\",\n heb: \"עִברִית\",\n ind: \"Bahasa Indonesia\",\n pes: \"فارسی\",\n prs: \"دری\",\n hin: \"हिंदी\",\n ces: \"čeština\",\n zsm: \"Bahasa Melayu\",\n pus: \"پښتو\",\n sin: \"\",\n mah: \"\",\n ell: \"Ελληνικά\",\n hun: \"Magyar\",\n ron: \"Română\",\n vie: \"Tiếng Việt\",\n ben: \"স্থানীয় মধ্যে\",\n cat: \"\",\n fil: \"\",\n tam: \"தமிழ்\",\n slk: \"Slovenčina\",\n kaz: \"\",\n ltz: \"\",\n kur: \"Kurdî\",\n ukr: \"Yкраїнська\",\n afr: \"\",\n hrv: \"Hrvatski\",\n glg: \"\",\n slv: \"\",\n lit: \"\",\n ckb: \"\",\n jav: \"\",\n urd: \"اردو\",\n sqi: \"Shqip\",\n tel: \"తెలుగు\",\n srp: \"Српски\",\n yor: \"Èdè Yorùbá\",\n hau: \"\",\n bul: \"Bŭlgarski\",\n uzb: \"\",\n swa: \"Kiswahili\",\n eus: \"\",\n bel: \"\",\n tat: \"\",\n amh: \"አማርኛ\",\n bos: \"Bosanski\",\n mya: \"မြန်မာ\",\n kea: \"Kriolu\",\n guj: \"ગુજરાતી\",\n hat: \"Kreyòl\",\n hmn: \"Hmoob\",\n khm: \"ភាសាខ្មែរ\",\n lao: \"ພາສາລາວ\",\n npi: \"नेपाली\",\n som: \"Soomaali\",\n tgl: \"\",\n tir: \"ትግሪኛ\",\n lin: \"Lingála\",\n orm: \"Afaan Oromoo\",\n ksw: \"\",\n eky: \"Kayah\",\n wol: \"Làkku Wolof\",\n kin: \"Kinyarwanda\",\n jam: \"\",\n quc: \"K'iche'\",\n mam: \"Mam\",\n tzo: \"\",\n kjb: \"Kanjobal\",\n mon: \"монгол хэл | ᠮᠣᠩᠭᠣᠯ ᠬᠡᠯᠡ\",\n run: \"Ikirundi\",\n pan: \"ਪੰਜਾਬੀ\",\n que: \"\",\n knj: \"Acateco\",\n mixt1427: \"\",\n kek: \"\",\n aym: \"\",\n cak: \"\",\n ixi: \"Nebaj Ixil\",\n acr: \"Achi'\",\n cac: \"Chuj\",\n yua: \"\",\n zap: \"\",\n poh: \"\",\n poc: \"\",\n usp: \"\",\n agu: \"\",\n nav: \"\",\n cnh: \"\",\n ibo: \"\",\n ceb: \"Sugbuanon Binisaya\",\n zom: \"\",\n rhg: \"Ruáingga\",\n mal: \"\",\n cho: \"\",\n kat: \"\",\n chk: \"\",\n kos: \"\",\n pon: \"\",\n ixj: \"\",\n ixl: \"\",\n hop: \"\",\n haz: \"\",\n aiq: \"\",\n tuk: \"\",\n bal: \"\",\n brh: \"\",\n sot: \"\",\n zul: \"\",\n mar: \"\",\n kan: \"\",\n ori: \"\",\n asm: \"\",\n mai: \"\",\n kun: \"\",\n yid: \"\",\n ugn: \"\",\n xki: \"\",\n jac: \"\",\n aar: \"\",\n skr: \"\",\n hnd: \"\",\n hno: \"\",\n arm: \"հայերեն - Hayeren\",\n ctu: \"\",\n kbp: \"Kabɩyɛ\",\n kon: \"\",\n tzh: \"\",\n syl: \"ꠍꠤꠟꠐꠤসিলেটি\",\n ful: \"\",\n aka: \"\",\n bam: \"\",\n tar: \"\",\n tac: \"\",\n tzj: \"\",\n anu: \"\",\n qug: \"\",\n qxr: \"\",\n qvi: \"\",\n ahi: \"\",\n kro: \"\",\n triq1251: \"\",\n quz: \"\",\n toj: \"\",\n csn: \"\",\n quv: \"\",\n snk: \"\",\n pga: \"\",\n shu: \"\",\n arq: \"\",\n apc: \"\",\n gsw: \"\",\n nds: \"\",\n gcr: \"\",\n psr: \"\",\n nob: \"\",\n nno: \"\",\n hif: \"\",\n psp: \"\",\n hac: \"\",\n zza: \"\",\n kmr: \"کورمانجی | Kurmancî\",\n sdh: \"\",\n hbs: \"\",\n bqn: \"\",\n swc: \"\",\n ghk: \"\",\n blk: \"\",\n kvu: \"\",\n kyu: \"\",\n fao: \"\",\n isl: \"\",\n lav: \"\",\n fas: \"\",\n bak: \"\",\n bre: \"\",\n cos: \"\",\n div: \"\",\n est: \"\",\n fry: \"\",\n kal: \"\",\n iku: \"\",\n gle: \"\",\n kok: \"\",\n kir: \"\",\n dsb: \"\",\n mkd: \"македонски јазик\",\n mlt: \"\",\n mri: \"\",\n arn: \"\",\n moh: \"\",\n oci: \"\",\n roh: \"\",\n smn: \"\",\n smj: \"\",\n sme: \"\",\n sms: \"\",\n sma: \"\",\n san: \"\",\n gla: \"\",\n nso: \"\",\n tsn: \"\",\n syc: \"\",\n tgk: \"Tojikī\",\n ber: \"\",\n hsb: \"\",\n uig: \"\",\n cym: \"\",\n sah: \"\",\n iii: \"\",\n bfi: \"\",\n isg: \"\",\n ncs: \"\",\n ewe: \"\",\n gaa: \"Gã\",\n twi: \"\",\n kri: \"\",\n fat: \"\",\n gan: \"\",\n fzho: \"\",\n hak: \"\",\n hokk1242: \"\",\n hsn: \"\",\n pcm: \"\",\n smo: \"\",\n ton: \"\",\n fij: \"\",\n tvl: \"\",\n tpi: \"\",\n gil: \"\",\n sna: \"\",\n grb: \"\",\n syr: \"\",\n ban: \"\",\n bis: \"\",\n ilo: \"\",\n nau: \"\",\n niu: \"\",\n pkp: \"\",\n sun: \"Basa Sunda\",\n tah: \"\",\n tkl: \"\",\n pag: \"\",\n nan: \"\",\n fcs: \"\",\n lat: \"\",\n hil: \"\",\n ace: \"\",\n ach: \"\",\n esu: \"\",\n xho: \"\",\n chao1238: \"潮州話\",\n ctd: \"\",\n zyp: \"\",\n kdh: \"\",\n din: \"\",\n dyo: \"Jóola\",\n bin: \"\",\n gex: \"\",\n gug: \"\",\n hain1238: \"\",\n har: \"\",\n mey: \"\",\n lom: \"\",\n clt: \"\",\n ziw: \"\",\n mkw: \"\",\n kik: \"\",\n jing1262: \"\",\n jra: \"\",\n lug: \"Oluganda\",\n luo: \"Dholuo\",\n ymm: \"\",\n mnk: \"\",\n mrh: \"\",\n hlt: \"\",\n myb: \"\",\n men: \"\",\n ium: \"\",\n hna: \"\",\n cnr: \"\",\n nus: \"\",\n wes: \"\",\n fuc: \"\",\n sez: \"\",\n chen1267: \"\",\n sus: \"\",\n bsq: \"\",\n cal: \"\",\n cha: \"\",\n cfm: \"Laiṭong\",\n als: \"\",\n brx: \"\",\n doi: \"\",\n kas: \"\",\n mni: \"\",\n sat: \"\",\n snd: \"\",\n tcs: \"\",\n ulk: \"\",\n wim: \"\",\n mwp: \"\",\n kky: \"\",\n pis: \"\",\n wmt: \"\",\n ggd: \"\",\n yuul1239: \"\",\n new: \"\",\n apa: \"\",\n beq: \"\",\n nya: \"\",\n sfs: \"\",\n nde: \"\",\n ssw: \"\",\n tso: \"\",\n ven: \"\",\n toi: \"\",\n tog: \"\",\n lua: \"\",\n mlg: \"\",\n lrl: \"\",\n mfz: \"\",\n tdt: \"\",\n ood: \"\",\n sag: \"\",\n tig: \"\",\n scn: \"\",\n nyn: \"\",\n kac: \"\",\n spy: \"\",\n kln: \"\",\n sgc: \"\",\n lan: \"\",\n enb: \"\",\n pko: \"\",\n kpz: \"\",\n axe: \"\",\n aly: \"\",\n eth: \"\",\n chat1268: \"\",\n rki: \"\",\n ade: \"\",\n bmb: \"\",\n bua: \"\",\n cre: \"\",\n dgr: \"\",\n kqo: \"\",\n gej: \"\",\n gom: \"\",\n pdu: \"\",\n tod: \"\",\n kxf: \"\",\n mls: \"\",\n dty: \"\",\n pau: \"\",\n pam: \"\",\n pif: \"\",\n krn: \"\",\n kvy: \"\",\n shn: \"\",\n czt: \"\",\n blt: \"\",\n bfz: \"\",\n rkm: \"\",\n agq: \"\",\n emk: \"\",\n aee: \"\",\n glh: \"\",\n psi: \"\",\n psh: \"\",\n ibg: \"\",\n lir: \"\",\n ssy: \"\",\n mlq: \"\",\n pap: \"\",\n tem: \"\",\n krw: \"\",\n waci1238: \"\",\n arc: \"\",\n krj: \"\",\n haw: \"\",\n raj: \"\",\n bete1265: \"\",\n dzo: \"\",\n bgc: \"\",\n bho: \"\",\n mfs: \"\",\n bzj: \"\",\n trf: \"\",\n limo1249: \"\",\n bjs: \"\",\n ktb: \"\",\n hfy: \"\",\n kab: \"\",\n mkj: \"\",\n hgm: \"\",\n dag: \"\",\n ryu: \"\",\n war: \"\",\n csf: \"\",\n nzi: \"\",\n csg: \"\",\n bzs: \"\",\n wuu: \"\",\n ouji1238: \"\",\n xiam1236: \"\",\n bhh: \"\",\n bai: \"\",\n nwe: \"\",\n mos: \"\",\n ssp: \"\",\n cbi: \"\",\n kno: \"\",\n kfr: \"\",\n tiv: \"\",\n byv: \"\",\n mwr: \"\",\n kqs: \"\",\n kss: \"\",\n gru: \"\",\n stv: \"\",\n zwa: \"\",\n ior: \"\",\n mvz: \"\",\n sgw: \"\",\n phr: \"\",\n aaa: \"\",\n gkn: \"\",\n wln: \"\",\n chim1312: \"\",\n ghl: \"\",\n pov: \"\",\n kcm: \"\",\n guz: \"\",\n nap: \"Napulitano\",\n ning1280: \"\",\n tsz: \"\",\n baju1245: \"Kibajuni\",\n lus: \"\",\n cab: \"\",\n tcf: \"\",\n tpc: \"\",\n tpl: \"\",\n tpx: \"\",\n ttc: \"\",\n nah: \"\",\n amu: \"\",\n azm: \"\",\n azg: \"\",\n czn: \"\",\n cly: \"\",\n cya: \"\",\n dyu: \"\",\n ymn: \"Af- Mai-Mai\",\n fuf: \"Pular\",\n};\nexport const COMING_SOON_LANGUAGES = {\n arb: \"٦ - عربي ( فصحي)\",\n ben: \"স্থানীয় মধ্যে\",\n dan: \"\",\n fin: \"\",\n hin: \"हिंदी\",\n nor: \"\",\n nld: \"\",\n pol: \"Polski\",\n rus: \"Русский\",\n swe: \"\",\n tha: \"แบบไทย\",\n tur: \"Türkçe\",\n urd: \"اردو\",\n zsm: \"Bahasa Melayu\",\n};\n\nexport const i18nLanguages = [\n { val: \"es\", text: \"Español\", translation: \"(Spanish)\" },\n { val: \"zh-hans\", text: \"简体中文\", translation: \"(Chinese - Simplified)\" },\n { val: \"zh-hant\", text: \"繁体中文\", translation: \"(Chinese - Traditional)\" },\n { val: \"en\", text: \"English\" },\n { val: \"fr\", text: \"Français\", translation: \"(French)\" },\n { val: \"de\", text: \"Deutsch\", translation: \"(German)\" },\n { val: \"it\", text: \"Italiano\", translation: \"(Italian)\" },\n { val: \"ja\", text: \"日本語\", translation: \"(Japanese)\" },\n { val: \"ko\", text: \"한국어\", translation: \"(Korean)\" },\n { val: \"pt\", text: \"Português\", translation: \"(Portuguese)\" },\n]\n\nexport const deleteAccountReasonsList = {\n reason1:\"Don’t need it anymore\",\n reason2:\"Using a different interpreting service\",\n reason3:\"Didn’t work for me\",\n reason4:\"Costs too much\",\n reason5:\"Other\"\n}\nexport const STATUS_CHANGE_NOTIFICATION_TYPES = [\n 'session:in-call',\n 'session:off-call',\n 'status:available',\n 'status:unavailable',\n]\n\nexport const langForDuration = {\n\"acr+spa\":\t\"12 hours\",\n\"eng+knj\":\t\"12 hours\",\n\"knj+spa\":\t\"12 hours\",\n\"ase+eng\":\t\"12 hours\",\n\"amh+eng\":\t\"12 hours\",\n\"aao+eng\":\t\"12 hours\",\n\"ara-arz_apd+eng\": \"12 hours\",\n\"afb+eng\":\t\"12 hours\",\n\"acm+eng\":\t\"12 hours\",\n\"ara-apc_ajp+eng\": \"12 hours\",\n\"arb+eng\":\t\"12 hours\",\n\"bam+eng\":\t\"12 hours\",\n\"ben+eng\":\t\"12 hours\",\n\"eng+mya\":\t\"12 hours\",\n\"ixj+spa\":\t\"12 hours\",\n\"eng+yue\":\t\"12 hours\",\n\"cmn+eng\":\t\"12 hours\",\n\"cac+spa\":\t\"12 hours\",\n\"eng+prs\":\t\"12 hours\",\n\"eng+pes\":\t\"12 hours\",\n\"eng+fra\":\t\"12 hours\",\n\"eng+guj\":\t\"12 hours\",\n\"eng+hat\":\t\"12 hours\",\n\"eng+hin\":\t\"12 hours\",\n\"eng+quc\":\t\"12 hours\",\n\"quc+spa\":\t\"12 hours\",\n\"eng+kin\":\t\"12 hours\",\n\"eng+mam\":\t\"12 hours\",\n\"mam+spa\":\t\"12 hours\",\n\"eng+ixi\":\t\"12 hours\",\n\"ixi+spa\":\t\"12 hours\",\n\"eng+npi\":\t\"12 hours\",\n\"eng+glh\":\t\"12 hours\",\n\"eng+orm\":\t\"12 hours\",\n\"eng+pus\":\t\"12 hours\",\n\"poc+spa\":\t\"12 hours\",\n\"poh+spa\":\t\"12 hours\",\n\"eng+por\":\t\"12 hours\",\n\"eng+por-br\":\"12 hours\",\n\"eng+pan\":\t\"12 hours\",\n\"kjb+spa\":\t\"12 hours\",\n\"eng+kek\":\t\"12 hours\",\n\"kek+spa\":\t\"12 hours\",\n\"eng+rhg\":\t\"12 hours\",\n\"eng+rus\":\t\"12 hours\",\n\"ixl+spa\":\t\"12 hours\",\n\"eng+som\":\t\"12 hours\",\n\"eng+spa\":\t\"12 hours\",\n\"eng+swa\":\t\"12 hours\",\n\"eng+syl\":\t\"12 hours\",\n\"eng+tir\":\t\"12 hours\",\n\"eng+tur\":\t\"12 hours\",\n\"spa+tzo\":\t\"12 hours\",\n\"eng+ukr\":\t\"12 hours\",\n\"eng+urd\":\t\"12 hours\",\n\"eng+uzb\":\t\"12 hours\",\n\"eng+vie\":\t\"12 hours\",\n\"baju1245+eng\":\"2 weeks\",\n\"ceb+eng\":\t\"2 weeks\",\n\"chao1238+eng\":\"2 weeks\",\n\"eng+zho-cn-shang\": \"2 weeks\",\n\"chk+eng\":\t\"2 weeks\",\n\"eng+luo\":\t\"2 weeks\",\n\"eng+gaa\":\t\"2 weeks\",\n\"eng+jac\":\t\"2 weeks\",\n\"dyo+eng\":\t\"2 weeks\",\n\"eng+kbp\":\t\"2 weeks\",\n\"eng+lug\":\t\"2 weeks\",\n\"eng+ymn\":\t\"2 weeks\",\n\"eng+mkd\":\t\"2 weeks\",\n\"eng+zsm\":\t\"2 weeks\",\n\"eng+mah\":\t\"2 weeks\",\n\"eng+mon\":\t\"2 weeks\",\n\"nah+spa\":\t\"2 weeks\",\n\"eng+nap\":\t\"2 weeks\",\n\"eng+pon\":\t\"2 weeks\",\n\"que+spa\":\t\"2 weeks\",\n\"qvi+spa\":\t\"2 weeks\",\n\"eng+rom\":\t\"2 weeks\",\n\"eng+slk\":\t\"2 weeks\",\n\"eng+sun\":\t\"2 weeks\",\n\"eng+tel\":\t\"2 weeks\",\n\"spa+tzj\":\t\"2 weeks\",\n\"spa+yua\":\t\"2 weeks\",\n\"aka+eng\":\t\"24 hours\",\n\"eng+sqi\":\t\"24 hours\",\n\"arm+eng\":\t\"24 hours\",\n\"bul+eng\":\t\"24 hours\",\n\"eng+ixj\":\t\"24 hours\",\n\"fra+hat\":\t\"24 hours\",\n\"hat+spa\":\t\"24 hours\",\n\"eng+hau\":\t\"24 hours\",\n\"eng+ind\":\t\"24 hours\",\n\"eng+ita\":\t\"24 hours\",\n\"jac+spa\":\t\"24 hours\",\n\"eng+jpn\":\t\"24 hours\",\n\"eng+ksw\":\t\"24 hours\",\n\"eng+kor\":\t\"24 hours\",\n\"eng+kur\":\t\"24 hours\",\n\"eng+lin\":\t\"24 hours\",\n\"mixt1427+spa\":\"24 hours\",\n\"aee+eng\":\t\"24 hours\",\n\"eng+kmr\":\t\"24 hours\",\n\"por+spa\":\t\"24 hours\",\n\"eng+kjb\":\t\"24 hours\",\n\"eng+ron\":\t\"24 hours\",\n\"eng+ixl\":\t\"24 hours\",\n\"eng+srp\":\t\"24 hours\",\n\"eng+psi\":\t\"24 hours\",\n\"eng+tgl\":\t\"24 hours\",\n\"eng+tgk\":\t\"24 hours\",\n\"eng+tam\":\t\"24 hours\",\n\"eng+tha\":\t\"24 hours\",\n\"eng+twi\":\t\"24 hours\",\n\"eng+wol\":\t\"24 hours\",\n\"eng+yor\":\t\"24 hours\",\n\"CD\":\"48 hours\",\n\"agu+spa\":\t\"48 hours\",\n\"bzj+eng\":\t\"48 hours\",\n\"bos+eng\":\t\"48 hours\",\n\"eng+kea\":\t\"48 hours\",\n\"eng+zho-tw\":\"48 hours\",\n\"ces+eng\":\t\"48 hours\",\n\"eng+fil\":\t\"48 hours\",\n\"fra+spa\":\t\"48 hours\",\n\"eng+gcr\":\t\"48 hours\",\n\"eng+ful\":\t\"48 hours\",\n\"cab+spa\":\t\"48 hours\",\n\"eng+gex\":\t\"48 hours\",\n\"eng+kat\":\t\"48 hours\",\n\"deu+eng\":\t\"48 hours\",\n\"ell+eng\":\t\"48 hours\",\n\"bgc+eng\":\t\"48 hours\",\n\"eng+heb\":\t\"48 hours\",\n\"eng+hmn\":\t\"48 hours\",\n\"eng+hun\":\t\"48 hours\",\n\"cak+eng\":\t\"48 hours\",\n\"cak+spa\":\t\"48 hours\",\n\"eng+khm\":\t\"48 hours\",\n\"eng+run\":\t\"48 hours\",\n\"eng+lao\":\t\"48 hours\",\n\"eng+pol\":\t\"48 hours\",\n\"eng+fuc\":\t\"48 hours\",\n\"eng+kri\":\t\"48 hours\",\n\"spa+usp\":\t\"48 hours\",\n\"eng+mlq\":\t\"48 hours\",\n\"chat1268+spa\":\"72 hours\",\n\"eng+fzho\":\"72 hours\",\n\"eng+kdh\":\t\"72 hours\",\n\"eng+hrv\":\t\"72 hours\",\n\"cfm+eng\":\t\"72 hours\",\n\"eng+fra-ca\":\"72 hours\",\n\"cnh+eng\":\t\"72 hours\",\n\"eng+jam\":\t\"72 hours\",\n\"eky+eng\":\t\"72 hours\",\n\"czn+spa\":\t\"72 hours\",\n\"eng+nor\":\t\"72 hours\",\n\"spa+triq1251\":\"72 hours\", \n\"spa+tzh\":\t\"72 hours\",\n\"eng+yua\":\t\"72 hours\",\n\"spa+zap\":\t\"72 hours\",\n}\n","import {DURATION} from './constants'\n\nexport const SESSION = {\n TYPE: {\n IMMEDIATE_VIRTUAL: 'immediate_virtual',\n SCHEDULED_VIRTUAL: 'scheduled_virtual',\n },\n MATCH: {\n FIRST_AVAILABLE: 'first_available',\n MANUAL: 'manual'\n },\n PLATFORM: {\n JEENIE: \"jeenie\",\n GOOGLE_MEET: \"google_meet\",\n ZOOM: \"zoom\",\n DOXY: \"doxy\",\n MS_TEAMS: \"ms_teams\",\n WHATSAPP: \"whatsapp\",\n RINGCENTRAL: \"ringcentral\",\n SKYPE: \"skype\",\n PSTN: \"pstn\",\n UNKNOWN: \"unknown\",\n },\n START: {\n NORMAL: 'normal', // customer initiated a new call\n RECONNECT: 'reconnect', // customer is attempting to connect again to their previous linguist\n RETRY_CANCEL: \"retry_cancel\", // customer is trying another call after the previous one was canceled by the remote user\n RETRY_FAILURE: 'retry_failure', // customer is trying another call after previous one failed to initially connect\n RETRY_TIMEOUT: 'retry_timeout', // customer is trying another call after previous one did not result in a match\n RETRY_DISCONNECT: 'retry_disconnect' // customer is trying another call after previous one was disconnected mid call\n },\n END: {\n DONE: 'done', // call ended normally by one side\n CANCEL: 'cancel', // call ended before connection was established between both sides\n TIMEOUT: 'timeout', // call ended because no linguist accepted the call within the time limit\n TIME_EXCEEDED: 'time_exceeded', // session had a hard time limit, so call was ended\n BALANCE_EXCEEDED: 'balance_exceeded', // paying customer's balance was empty, so call was ended\n FAILURE_LOCAL: 'failure_local', // call ended because local side failed to initially connect to the session\n FAILURE_REMOTE: 'failure_remote', // call ended because the remote side failed to initially connect to the session\n DISCONNECT_LOCAL: 'disconnect_local', // call ended because local side disconnected during the session\n DISCONNECT_REMOTE: 'disconnect_remote', // call ended because remote side disocnnected during the session\n ABORTED: 'aborted', // call was ended after creation by someone or a process other than the participants\n LEAVE: 'leave'\n },\n TIME: {\n MATCH: 60 * DURATION.SECOND, // time to wait for a linguist to accept call before considering session a timeout\n CONNECT: 60 * DURATION.SECOND, // time to wait before considering initial connction attempt a failure; keep this above 30s, because some OT errors will only fire after 30s\n RECONNECT: 10 * DURATION.SECOND, // time to wait before showing reconnection options\n END_SOON_WARNING: 2 * DURATION.MINUTE, // show warning that call is ending soon when this much time is remaining\n BALANCE_WARNING: 2 * DURATION.MINUTE,\n }\n}\n\nexport const PARTICIPANT = {\n ROLE: {\n LINGUIST: 'linguist',\n CREATOR: 'creator',\n PARTICIPANT: 'participant',\n OBSERVER: 'observer'\n },\n PLATFORM: {\n MOBILE: 'solo_mobile',\n WEB: 'solo_web',\n PSTN: 'pstn',\n },\n STATUS: {\n CONNECTED: 'connected',\n CONNECTING: 'connecting',\n DISCONNECTED: 'disconnected',\n },\n STATUS_REASON: {\n INVITE_SENT: 'invite_sent',\n INVITE_FAILED_UNAVAILABLE: 'invite_failed_unavailable',\n INVITE_FAILED_ERROR: 'invite_failed_error',\n PARTICIPANT_DISCONNECTED: 'participant_disconnected',\n PARTICIPANT_REMOVED: 'participant_removed',\n }\n}\n\nexport const OFF_PLATFORM = {\n ZOOM: {\n //MEETING_TYPE determines the type of zoom meeting user is trying to request an interpreter in \n MEETING_TYPE: {\n INSTANT_MEETING: 1,\n SCHEDULED_MEETING: 2,\n RECURRING_MEETING_NO_FIXED_TIME: 3,\n PMI_MEETING: 4,\n RECURRING_MEETING_FIXED_TIME: 8,\n },\n //USER_TYPE determines the type of zoom account of current zoom user\n USER_TYPE: {\n BASIC: 1,\n LICENSED: 2,\n ON_PREM: 3,\n NONE: 99, \n },\n // APPROVAL_TYPE determines registration type for scheduled meeting\n APPROVAL_TYPE: {\n AUTOMATICALLY_APPROVE: 0, \n MANUALLY_APPROVE: 1, \n NO_REGISTRATION_REQUIRED: 2,\n }\n }\n}\n","export default {\n form: {\n validation: {\n required: \"This field is required\",\n min: \"Must be at least {num}\",\n max: \"Must not be over {num}\",\n minCharacters: \"Must be at least {num} characters\",\n maxCharacters: \"Must not be more than {num} characters\",\n minDigits: \"Must be at least {num} digits\",\n maxDigits: \"Must not be more than {num} digits\",\n tooShort: \"Entry is too short\",\n tooLong: \"Entry is too long\",\n invalidNumber: \"Invalid Number\",\n charLengthRuleForTextArea: \"Require a min of 75 and max 10000 characters\",\n spacesNotAllowed: 'Spaces not allowed',\n numbersNotAllowed: 'Numbers not allowed',\n specialCharacters: 'Special Characters not allowed',\n pattern: 'The format of the value is incorrect'\n },\n file: {\n select: \"Select a file\",\n selectPhoto: \"Select a photo\",\n },\n typeSearch: \"Type to search\"\n },\n actions: {\n \"cancel\": \"Cancel\",\n \"close\": \"Close\",\n \"copy\" :\"Copy\",\n \"login\": \"Sign In\",\n \"createAccount\": \"Create Account\",\n \"learnMore\": \"Learn about Jeenie\",\n \"ok\": \"Ok\",\n \"getAnotherInterpreter\": \"Get Another Interpreter\",\n \"finishInterpretingService\": \"Finish Interpreting Service\",\n \"rateJeenie\": \"Rate Jeenie\",\n \"skipForNow\": \"Skip for Now\",\n \"submit\": \"Submit\",\n \"back\": \"Back\",\n \"joinCall\": \"Join Call\",\n \"skip\": \"Skip\",\n \"endCall\": \"End Interpreting\",\n \"report\": \"Report\",\n choose: \"Choose\",\n continue: \"Continue\",\n goBack: \"Go back\",\n saveChanges: \"Save Changes\",\n gobackBtn: 'No, go back',\n rescheduleCallBtn: 'Yes, I want to reschedule the call',\n copiedToClipboard: 'Info copied to clipboard',\n connect: 'Connect',\n next: \"Next\",\n },\n loginForm: {\n \"signin\": \"Sign in\",\n \"email\": \"Email\",\n \"password\": \"Password\"\n },\n loginErrors: {\n \"noEmail\": \"Email not found\",\n \"wrongPassword\": \"Incorrect Password\",\n \"linguistNotAllowed\": \"Linguist profile not allowed on Zoom App\",\n \"default\": \"Unknown error\"\n },\n menu:{\n logout: \"Logout\"\n },\n logout:{\n confirm: \"Are you sure you want to logout?\"\n },\n auth: {\n loginError: \"There was a problem logging in\",\n logoutError: \"There was an error logging out\",\n deviceError: \"There was an error authenticating\",\n defaultError: \"Your credentials have expired or are invalid.\",\n noUserError: \"No user found for that email address\",\n noEmailError: \"Email not found\",\n passwordIncorrectError: \"The password was incorrect\",\n authRequiredError: \"You must log in again\",\n registrationError: \"There was an unexpected issue creating your account.\",\n userExistsError: \"This email address has already been registered. Did you forget your password?\"\n },\n history: {\n subheader: \"History\",\n recentCalls: \"Recent Calls\",\n noData: \"Your call history is empty at the moment.\",\n seeMore: \"See More\",\n table: {\n headers: {\n createdAt: \"When\",\n endedAt: \"When\",\n createdBy: \"Customer\",\n language: \"Language\",\n duration: \"Duration\",\n linguist: \"Linguist\",\n user: \"User\",\n userToTakeCall: \"User to Take Call\",\n dateAndDuration: \"Date & Duration\",\n action: \"Action\",\n dateAndTime: \"Date & Time\",\n },\n filters: {\n createdBy: {\n all: \"Select All\",\n selected: \"{num} selected\",\n placeholder: \"By user...\"\n },\n daterange: {\n placeholder: \"Search date range\"\n }\n }\n },\n mainScreen:{\n noConnection: 'No Connection',\n processing: 'Processing',\n callCancelled: 'Call Canceled',\n partnerInterpreter: 'Partner Interpreter',\n moreDetails: 'More Details',\n reportIssue: 'Report Issue',\n report: 'Report',\n actionRequired: 'Action Required',\n success: 'Thanks for letting us know!',\n minute270ValidationMessage:'value must be between 1 to 270 minutes',\n callDetail: {\n label: 'Call Details',\n languages: 'Languages',\n addRating: 'Add Rating',\n cancelPolicyLabel: 'Cancellation Policy',\n cancelPolicy: 'This call was canceled. Please note: Your linguists will be paid for reserved time.',\n cancelPolicySecond: 'Session billed: The request to change or cancel scheduled call was within 24 hours of session.',\n dateAndDuration: \"Date And Duration\",\n addDuration: 'Add Duration',\n callType: 'Type Of Call',\n scenario: 'Scenario',\n callPlatform: 'Call Platform',\n scheduled: 'Scheduled',\n immediateVirtual: 'On-Demand',\n notRated: 'Not Rated',\n noRating: 'No Rating',\n ratings: 'Ratings',\n addDurationDialog: {\n label: 'Add Duration',\n longCall : 'How long was the Call?',\n addCallTime : 'Add Call Time',\n thanks: 'Thanks for submitting your call time!',\n }\n },\n reportIssueDialog: {\n label: 'Report Issue',\n issueExperience: 'What issue did you experience?',\n technicalDifficulty: 'Technical difficulty',\n lateForCall : 'Client late to the call',\n lateForCallCustomer : 'Interpreter late to the call',\n incorrectDuration : 'Call duration is incorrect',\n callShowProcessing : 'Call shows as “Processing”',\n abuse : 'Obscene or aggressive behavior',\n other : 'Other' \n },\n reportAbuseDialog: {\n label: 'Report Abuse',\n reportingBehavior: 'You are reporting behavior that you believe \\n is inappropriate and harms the Jeenie community.',\n accountSuspension: 'Doing so may result in the suspension or removal \\n is of their account. Do you want to proceed?',\n props: {\n title: 'Abuse',\n textLabel: 'Let us know what happened.',\n textAreaPlaceHolder: 'Please share specifics about the inappropriate behavior you witnessed',\n }\n },\n reportOtherDialog: {\n propsDefaultValues: {\n title: 'Issue',\n textLabel: 'Let us know what happened.',\n textAreaPlaceHolder: 'Tell us more about this call...',\n }\n },\n reportCallShowAsProcessingDialog: {\n label: 'Report Abuse',\n working: 'We’re working on it. ',\n longerToProcess: \"Occasionally a Jeenie session will take longer to process. Our system identifies unresolved \\n call times and our team works to resolve the issue.\",\n finalizedPayments: 'All call times will be finalized before payments and billing at the end of the month.',\n letUsKnow: 'Still want to let us know that this call has been processing for a while?',\n btnText: 'Notify Jeenie',\n },\n reportIncorrectDurationDialog: {\n line: 'How long was the call ?',\n textAreaPlaceHolder: 'Tell us more about this call...',\n },\n reportLateForCallDialog: {\n interpreterText: 'Did the interpreter join the call?',\n clientText: 'Did the client join the call?',\n line: 'How many minutes were they late?',\n textPlaceHolder: 'Enter time in minutes',\n sorry: \"We're sorry they weren't able to join the call on time. We'll be looking into your session.\",\n minuteValidationMessage:'value must be between 1 to 60 minutes',\n },\n reportTechIssuesDialog: {\n technicalDifficulty: \"What's the technical difficulty?\",\n canTell: \"Anything else you can tell about this call?\",\n textPlaceHolder: 'More details helps us to understand and fix issues',\n issues:{\n noAudio:\"No Audio\",\n noVideo:\"No Video\",\n poorAudio:\"Poor Audio\",\n poorVideo:\"Poor Video\",\n callDropped:\"Call Dropped\",\n lags:\"Lots of Lag\",\n other:\"Other\"\n }\n },\n },\n download: {\n title: 'Call History Download',\n subtitle: 'The current filter settings will export {num} {rowVsRows} to a CSV file.',\n dateRange: 'Date Range:',\n userFilter: 'User Filter:',\n footer: 'You can adjust your export using the filtering options on the Call History page.',\n confirm: 'Confirm',\n notApplied: 'Not applied',\n rowSingular: 'row',\n rowPlural: 'rows',\n }\n },\n\n zoom:{\n startMeeting: \"Start Interpretation\",\n startMeetingDisabled: \"The ability to start an on-demand Zoom meeting where you can request a Jeenie interpreter requires a paid Zoom license\",\n requestChanges: \"Yes. Update My Settings.\",\n restrictionMessages: {\n notLicensedZoomUser: 'The ability to start an on-demand Zoom meeting where you can request a Jeenie interpreter requires a paid Zoom license',\n notScheduled: `To request an on-demand Jeenie interpreter, please end this meeting. Then start a new one using the \"Start New Interpreter Meeting\" button within the Jeenie for Zoom App.`,\n wrongSettings: 'The current Zoom meeting settings prevent an on-demand Jeenie interpreter from joining. If you want to change the settings to allow a Jeenie into THIS meeting, click below.',\n customerRestricted: 'The Jeenie for Zoom app is currently unavailable. Jeenie for Zoom will be available starting February 19th.',\n notHostOrCoHost: 'You must be the meeting host, or co-host, in order to request a Jeenie interpreter.'\n },\n restricedUser: {\n notLicensedZoomUser: \"On-demand Jeenie interpreters are only available to Licensed Zoom users.\",\n notEnterpriseJeenieUser: \"Scheduling a Jeenie interpreter in advance requires an Enterprise Jeenie account.\"\n },\n meetingUnassociated:{\n disclaimer: \"This Zoom meeting is not associated with a Jeenie interpreting session. You may close the Jeenie for Zoom app.\",\n instruction: \"If you are expecting to receive on-demand interpreting requests, please leave this Zoom meeting and return to the Jeenie web or mobile app.\"\n },\n sessionAlreadyEnded: \"Your session has been ended. You should leave the Zoom meeting and return to the Jeenie app to take future calls. You will not be paid for more time in this session.\"\n },\n session: {\n create: {\n header: \"Jeenies are standing by...\",\n error: {\n header: \"Something went wrong\",\n reLogin: \"You need to login again\",\n reInstall: \"You need to re-install the application\",\n noMeeting: \"Only the Zoom meeting owner may invite an interpreter into the Zoom meeting.\",\n noPaymentMethod: \"You must add a payment method to your Jeenie account before you can request an interpreter. Please sign in to your Jeenie account on the web in order to manage your payment method.\",\n default: \"We encountered an unexpected error while requesting your interpreter.\",\n },\n primaryLang: {\n label: \"I speak\",\n placeholder: \"Select your language\"\n },\n secondaryLang: {\n label: \"Get an interpreter for\",\n placeholder: \"Select an option\"\n },\n scenario: {\n label: \"Service\",\n placeholder: \"Select an option\"\n },\n buttons: {\n schedule: \"Reserve a Future Time\",\n cancellation: \"Cancellation Policy\", \n },\n },\n finish:{\n header: \"To End Interpreting Session:\",\n remove:{\n title: \"Remove Interpreters from Meeting\",\n description: \"Are you sure you want to end the interpreting session? Be sure to communicate to your interpreter that you are ready for them to leave the meeting.\"\n },\n endNow: {\n title: \"End Now\",\n interpreterLeft: \"Your interpreter has left the meeting.\",\n description: \"This will end the Jeenie interpreting session but does not prevent the interpreter from rejoining the meeting at a later time.\",\n tip: {\n header: \"PRO TIP:\",\n text: \" Before your Jeenie linguist disconnects, use the Zoom participant menu to remove them from the Zoom meeting. This will also end the Jeenie session automatically.\"\n }\n } \n },\n participant: {\n invite: {\n link: {\n by:\"Copy Join Info\",\n description: \"Invite particpants by link\"\n },\n },\n },\n past: {\n title: \"History\",\n information: \"See your complete usage history (on all platforms) in your Jeenie account.\",\n viewHistory: \"View My History\"\n },\n connecting: {\n header: \"We are getting a Jeenie now...\",\n timeOut: \"Session timed out\",\n linguistJoining: {\n header: \"A linguist is joining the call\",\n note: \"Once your linguist joins the meeting, please give them a moment to get set up before asking them to begin interpreting.\"\n }\n },\n inProgress: {\n header: \"Interpreting in Progress...\",\n amountOfJeenies: \"{count} Jeenie on call\",\n callEndedFromLing: \"Your interpreter is not currently in the meeting. If you do not expect them to return, please select “Finish Interpreting” to end the session with your interpreter.\",\n callEndedFromLingDueToNetworkIssue: \"Linguist got disconnected from the meeting due to a network issue. You can wait for their return or end the call\"\n },\n end: {\n callEnded: \"Call Ended\"\n },\n scheduled: {\n title: \"Reserve a Jeenie Interpreter\",\n forYou: \"Scheduled\",\n noUpcoming: \"No Upcoming Calls\",\n inProgress: \"Your interpreter is scheduled to join this call at\",\n disclaimer: \"This language pair requires at least {duration} advanced notice. If you select a time shorter than this window, we cannot guarantee we can fulfill the request in time but will try our best.\",\n success: \"All Jeenie terms of use and privacy policies apply. After we have reviewed your request, a member of the Jeenie team will be contacting you with any questions and to confirm the details. Thank you!\",\n error: \"We were unable to submit your request. Please reach out to your account representative to schedule a session.\",\n requestChangeDescription: \"As per Jeenie’s cancellation policy, Jeenie requires 24 hours’ notice for modifying scheduled calls. Since your request is within the 24-hour notice period you may still be charged, or we may not be able to accommodate your request. Please explain the modifications you want to make below.\",\n editDetailsDisclaimer: \"Most fields here can be updated without affecting scheduling. To edit a field not shown here, please \",\n editDetailsDisclaimerBtn: \"reschedule the call.\",\n editCallDetails:{\n title: \"Edit Call Details\",\n leave: {\n confirm: 'Are you sure you want to leave?',\n description: 'You have unsaved changes.',\n },\n },\n primaryLang: {\n label: \"I speak (Native Language)\"\n },\n scenario: {\n label: \"Service\",\n placeholder: \"Select\"\n },\n beginningSoon: {\n description: {\n linguist: 'Join when you are ready. You will connect to the client once they join.',\n customer: 'The interpreter will be invited to the call once you join. Join when you are ready.'\n },\n callHappeningNow:'call is happening now',\n callBeginsSoon:'call begins soon',\n },\n gender:{\n label:\"Preferred gender (optional)\",\n info:\"We cannot guarantee that we will find someone of your requested gender but will do our best.\"\n },\n genderPreference:{\n label:\"Check this box if you want us to cancel if we can’t get your preferred gender\"\n },\n fromDate: {\n label: \"Start Date\",\n placeholder: \"Select\"\n },\n fromTime: {\n label: \"Start Time\",\n placeholder: \"Select\"\n },\n from: {\n label: \"Start Date/Time\",\n placeholder: \"Select time\"\n },\n untilDate: {\n label: \"End Date\",\n placeholder: \"Select\"\n },\n untilTime: {\n label: \"End Time\",\n placeholder: \"Select\"\n },\n topic:{\n label:\"Topic\",\n placeholder:\"Examples: behavioral health, endocrinology, immigration\",\n info:\"Tell us what will be discussed to give the interpreter more context.\"\n },\n ccEmails:{\n label:\"Other Emails to Notify (optional)\",\n info:\"These emails will be notified when the call is confirmed.\",\n tooltip: 'This is often used by teams who don’t have individual user accounts but rather share one for a given location or department. You can add business emails to be notified even if these emails don’t have their own Jeenie accounts.'\n },\n url:{\n label: \"URL to join call\",\n info: 'Make sure to use the full meeting link. For example, inputting only \"zoom.us\" is not valid.',\n placeholder: \"https://\"\n },\n schedulingFor: {\n label: \"Member who will place the call (Optional)\",\n info: \"Only change this if you are scheduling this call for another member of your organization.\"\n },\n secondaryLang: {\n label: \"Get an interpreter for\",\n placeholder: \"Select a language\"\n },\n modify: {\n modify: \"Modify\",\n cancel: \"Cancel Call\",\n cancelRequest: \"Request to cancel\",\n modifyRequest: \"Request to change\",\n changeRequestReason: \"Reason\",\n requestChange:\"Request Change\",\n reschedule:\"Reschedule Call\",\n edit:\"Edit Call Details\",\n changeRequestCancel: \"Per Jeenie’s cancellation policy, Jeenie requires 24 hours’ notice for cancelling scheduled calls. Since your request is within the 24-hour notice period you may still be charged.\",\n changeRequestModify: \"Per Jeenie’s cancellation policy, Jeenie requires 24 hours’ notice for modifying scheduled calls. Since your request is within the 24-hour notice period you may still be charged, or we may not be able to accommondate your request. Please explain the modifications you want to make below.\",\n changeRequestSuccess: \"We have received your request. A team member will be in touch soon to confirm any details.\",\n changeMessagePlaceholder: \"Enter details here\",\n late: {\n modify: \"Late Modify\",\n cancel: \"Late Cancel\"\n }, \n confirmCancellation: \"Confirm Cancellation\",\n confirmCallDetails: \"Confirm Call Details\",\n },\n cancel: {\n title: 'Cancel Scheduled Call',\n confirm: 'Are you sure you want to cancel?'\n },\n cancellation: \"Please review our Cancellation Policy and other important information.\",\n choose: {\n title: \"Choose a meeting\",\n description: \"Please choose a meeting in order to reserve an interpreter\",\n },\n validations:{\n scheduleDuration: \"A scheduled call must be between 30 minutes and 6 hours in length.\",\n advanceNotice: \"Your Service Agreement requires more advanced notice to schedule.\",\n chooseLanguage: \"Please choose a different language.\"\n },\n disabled: {\n unavailableBefore: \"Scheduling is not currently enabled for your account. Please sign into your Jeenie account on the web at \",\n unavailableAfter: \" to resolve any outstanding account issues, or to contact support.\",\n button: \"Manage Payment Details\",\n },\n message: {\n label:\"Comments (Optional)\",\n placeholder: \"Please do not include any Personally Identifiable Information (PII) in your comments. Share info about the appointment/event that is helpful for the session or additional instructions for the interpreter.\",\n info:\"Please do not place meeting links in this box. Our system will not recognize them.\"\n },\n cancelLabel:\"Cancel this Call\",\n cancelConfirm: \"Are you sure you want to cancel this call?\",\n cancelConfirm24:\"Per Jeenie’s cancellation policy, Jeenie requires 24 hours’ notice for modifying scheduled calls. Since your request is within the 24-hour notice period you may still be charged, or we may not be able to accommodate your request. Please explain the modifications you want to make below.\",\n confirmCancelCall:\"Yes, Cancel this Call\",\n syncCallLabel:\"Sync Call Information\",\n },\n schedule: {\n title: \"Reserve a Jeenie Interpreter\",\n description: \"To schedule an interpreter for an upcoming appointment or event, enter the information below.\",\n disclaimer: \"For optional availability, please schedule 48 hours advance.\",\n labels: {\n primaryLang: \"I speak\",\n secondaryLang: \"I need help with\",\n startTime: \"Start Date/Time \",\n endTime: \"End Date/Time\",\n scenario: \"I need an interpreter for\",\n link: \"Zoom Link\",\n notes: \"Notes\",\n },\n placeholders: {\n selectDate: \"Select Date\",\n selectTime: \"Select Time\",\n notes: \"Please provide any additional information about the appointment/event or special instructions for the interpreter. If you share your Jeenie ID with anyone else, please include your name, phone number and email address, so that we can contact you with a confirmation and /or ...\",\n },\n cancellationPolicy: \"Cancellation policy and other important information\",\n },\n customFieldDialogs: {\n pre: {\n headerText: \"On Demand Call\",\n formHeading: \"Custom fields\",\n },\n post: {\n headerText: \"Additional Information\",\n formHeading: \"Custom fields for\",\n errorText: \"You cant close without submitting all required fields\",\n },\n },\n },\n fields: {\n gender: {\n label: \"Gender\",\n male: \"Male\",\n female: \"Female\",\n nonbinary: \"Non-Binary\",\n nopreference:\"No preference\",\n other: \"Other\",\n declined: \"Prefer not to specify\",\n notset: \"Not specified\",\n edit: \"Gender\",\n why: \"Why do we ask this?\",\n explanation: \"Customers may request assistance from someone with a specific gender. If you prefer not to disclose your gender, you will not be matched with customers who express a preference.\",\n },\n },\n splitRatings: {\n enjoyJeenie: \"Enjoy Jeenie?\",\n feedback: \"Your feedback means a lot!\",\n lowRatingFeedback: {\n headerText: \"Oh Snap!\",\n ratedLowText: \"We see you have given low rating\",\n helpImproveText: \"Help us to improve\",\n }\n },\n partnerInterpreter:{\n title: 'Partner Interpreter'\n },\n metaData: {\n textFieldPlaceholder: \"Please enter value\",\n dropdownPlaceholder: \"Please select value\",\n successToast: \"Saved Successfully\"\n },\n customerRating: {\n rateLinguist: \"How did I do as an interpreter?\",\n rateCallQuality: \"How was the connection quality?\",\n whatGoodLinguist: \"What did I do well?\",\n whatBetterLinguist: \"What can I improve?\",\n whatGood: \"What was good?\",\n whatBetter: \"What can be better?\",\n comments: \"Anything else we should know?\",\n commentsPlaceholder: \"Please add any additional comments here.\",\n },\n emailverify: {\n title: \"Confirm Email Address\",\n instruction: \"To receive a new email with a link to verify your email address, please your submit your email address below.\",\n submit: \"Send Link\",\n defaultError: \"Error submitting email address\",\n fieldLabel: \"Email\",\n fieldRequired: \"Email is required\",\n fieldInvalid: \"Email must be valid\",\n successAlert: \"Email sent to {email}\",\n successTitle: \"An email has been sent to the address you provided. Please click on the link in the email to verify your email address.\",\n successSpam: \"If you do not receive the email within the next 5 minutes, check your spam folders, or request another link.\",\n successTryAgain: \"Request a new link\",\n },\n\n tabsOptions: {\n callDetails: 'Call Details',\n additionalInformation: 'Custom Fields'\n },\n // for use during primary language selection\n languages: {\n headers: {\n \"recent\": \"Recently Used\",\n \"available\": \"Available Languages\",\n },\n \"eng\": \"English\",\n \"ase\": \"American Sign Language (ASL)\",\n \"cmn\": \"Chinese (Mandarin)\",\n \"yue\": \"Chinese (Cantonese)\",\n \"tois1237\": \"Chinese (Taishanese)\", //glottolog - no ISO639-3 code. https://glottolog.org/resource/languoid/id/tois1237\n \"zho-cn-shang\": \"Chinese (Shanghainese)\",\n \"zho-tw\": \"Chinese (Taiwanese)\",\n \"jpn\": \"Japanese\",\n \"spa\": \"Spanish\",\n \"spa-r-la\": \"Spanish (Latin America)\",\n \"spa-es\": \"Spanish (Spain)\",\n \"deu\": \"German\",\n \"fra\": \"French\",\n \"fra-ca\": \"French (Canada)\",\n \"fra-fr\": \"French (France)\",\n \"arb\": \"Arabic (Modern Standard)\",\n \"aao\": \"Arabic (Algerian, Moroccan & Tunisian)\",\n \"arz\": \"Arabic (Egyptian)\",\n \"ara-arz_apd\": \"Arabic (Egyptian or Sudanese)\",\n \"afb\": \"Arabic (Gulf)\",\n \"apd\": \"Arabic (Sudanese)\",\n \"acm\": \"Arabic (Iraqi)\",\n \"ara-apc_ajp\": \"Arabic (Levantine)\",\n \"azj\": \"Azeri (North)\",\n \"azb\": \"Azeri (South)\",\n \"por\": \"Portuguese\",\n \"por-br\": \"Portuguese (Brazil)\",\n \"por-pt\": \"Portuguese (European)\",\n \"rus\": \"Russian\",\n \"ita\": \"Italian\",\n \"kor\": \"Korean\",\n \"nld\": \"Dutch\",\n \"swe\": \"Swedish\",\n \"nor\": \"Norwegian\",\n \"tur\": \"Turkish\",\n \"pol\": \"Polish\",\n \"dan\": \"Danish\",\n \"fin\": \"Finnish\",\n \"tha\": \"Thai\",\n \"heb\": \"Hebrew\",\n \"ind\": \"Indonesian\",\n \"pes\": \"Farsi (Persian)\",\n \"prs\": \"Dari (Persian)\",\n \"hin\": \"Hindi\",\n \"ces\": \"Czech\",\n \"zsm\": \"Malay\", // NOTE: should be `msa`, `zsm` is actually for Malaysian\n \"pus\": \"Pashto\",\n \"sin\": \"Sinhala\",\n \"mah\": \"Marshallese\",\n \"ell\": \"Greek\",\n \"hun\": \"Hungarian\",\n \"ron\": \"Romanian\",\n \"vie\": \"Vietnamese\",\n \"ben\": \"Bengali\",\n \"bib\": \"Bissa\",\n \"cat\": \"Catalan\",\n \"fil\": \"Filipino\",\n \"tam\": \"Tamil\",\n \"slk\": \"Slovak\",\n \"kaz\": \"Kazakh\",\n \"ltz\": \"Luxembourgish\",\n \"kur\": \"Kurdish\",\n \"ukr\": \"Ukrainian\",\n \"afr\": \"Afrikaans\",\n \"hrv\": \"Croatian\",\n \"glg\": \"Galician\",\n \"slv\": \"Slovenian\",\n \"lit\": \"Lithuanian\",\n \"ckb\": \"Sorani\",\n \"jav\": \"Javanese\",\n \"urd\": \"Urdu\",\n \"sqi\": \"Albanian\",\n \"tel\": \"Telugu\",\n \"srp\": \"Serbian\",\n \"yor\": \"Yoruba\",\n \"hau\": \"Hausa\",\n \"bul\": \"Bulgarian\",\n \"uzb\": \"Uzbek\",\n \"swa\": \"Swahili\",\n \"eus\": \"Basque\",\n \"bel\": \"Belarusian\",\n \"tat\": \"Tatar\",\n \"amh\": \"Amharic\",\n \"bos\": \"Bosnian\",\n \"mya\": \"Burmese\",\n \"kea\": \"Cape Verdean Creole\",\n \"guj\": \"Gujarati\",\n \"hat\": \"Haitian Creole\",\n \"hmn\": \"Hmong\", // technically a macro code, maybe hnj is more appropriate in future?\n \"khm\": \"Khmer (Cambodian)\", // khm or kxm (northern) were options\n \"lao\": \"Lao (Laotian)\",\n \"npi\": \"Nepali\",\n \"som\": \"Somali\",\n \"tgl\": \"Tagalog (Filipino)\",\n \"tir\": \"Tigrinya\",\n \"lin\": \"Lingala\",\n \"orm\": \"Oromo\",\n \"ksw\": \"Karen\",\n \"eky\": \"Karenni\", // this is technically Eastern Kayah, and we may need to add Western Kayah (kyu) later to differentiate\n \"wol\": \"Wolof\",\n \"kin\": \"Kinyarwanda\",\n \"jam\": \"Jamaican Patois\",\n \"quc\": \"K'iche'\",\n \"mam\": \"Mam\",\n \"tzo\": \"Tzotzil Maya\",\n \"kjb\": \"Q'anjob'al/Kanjobal\",\n \"mon\": \"Mongolian\",\n \"run\": \"Kirundi\",\n \"pan\": \"Punjabi\", // could also be pnb for western Punjabi\n \"que\": \"Quechua\",\n \"knj\": \"Akateko\",\n \"mixt1427\": \"Mixteco\", // glottolog code\n \"kek\": \"Q'eqchi\",\n \"aym\": \"Aymara\",\n \"cak\": \"Kaqchikel\",\n \"ixi\": \"Nebaj Ixil\",\n \"acr\": \"Achi\",\n \"cac\": \"Chuj\",\n \"yua\": \"Yucatec\",\n \"zap\": \"Zapoteco\", // careful, this is a macrocode for a family of langs\n \"poh\": \"Poqomchi\",\n \"poc\": \"Poqomam\",\n \"usp\": \"Uspanteko\",\n \"agu\": \"Awakateko/Chalchiteko\",\n \"nav\": \"Navajo\",\n \"cnh\": \"Hakha-Chin\",\n \"ibo\": \"Igbo\",\n \"ceb\": \"Cebuano Visaya\",\n \"zom\": \"Zomi\",\n \"rhg\": \"Rohingya\",\n \"mal\": \"Malayalam\",\n \"cho\": \"Choctaw\", // no Boostlingo code, yet?\n \"kat\": \"Georgian\",\n \"chk\": \"Chuukese\",\n \"kos\": \"Kosraean\",\n \"pon\": \"Pohnpeian\",\n \"ixj\": \"Chajul Ixil\",\n \"ixl\": \"San Juan Cotzal Ixil\",\n \"hop\": \"Hopi\",\n \"haz\": \"Hazaragi\",\n \"aiq\": \"Aimaq\",\n \"tuk\": \"Turkmen\",\n \"bal\": \"Balochi\",\n \"brh\": \"Brahui\",\n \"sot\": \"Sesotho / Sotho\",\n \"zul\": \"Zulu\",\n \"mar\": \"Marathi\",\n \"kan\": \"Kannada\",\n \"ori\": \"Oriya / Odia\",\n \"asm\": \"Assamese\",\n \"mai\": \"Maithili\",\n \"kun\": \"Kunama\",\n \"yid\": \"Yiddish\",\n \"ugn\": \"Ugandan Sign Language\",\n \"xki\": \"Kenyan Sign Language\",\n \"jac\": \"Jakalteko/Poptiʼ\",\n \"aar\": \"Afar\",\n \"skr\": \"Saraiki\",\n \"hnd\": \"Southern Hindko\",\n \"hno\": \"Northern Hindko\",\n \"arm\": \"Armenian\",\n \"ctu\": \"Ch'ol\", // Mayan\n \"kbp\": \"Kabye\",\n \"kon\": \"Kikongo\",\n \"tzh\": \"Tzeltal\", // Mayan\n \"syl\": \"Sylheti\",\n \"ful\": \"Fulani\",\n \"aka\": \"Akan\",\n \"bam\": \"Bambara\",\n \"tar\": \"Central Tarahumara\", // Mayan\n \"tac\": \"Western Tarahumara\", // Mayan\n \"tzj\": \"Tzutujil\", // Mayan\n \"anu\": \"Anuak\",\n \"qug\": \"Quichua - Chimborazo Highland\", // Mayan\n \"qxr\": \"Quichua - Cañar Highland\", // Mayan\n \"qvi\": \"Quichua - Imbabura Highland\", // Mayan\n \"ahi\": \"Tiagba\",\n \"kro\": \"Kru\",\n \"triq1251\": \"Triqui\", // Mayan\n \"quz\": \"Quechua (Sureño)\", // Mayan\n \"toj\": \"Tojolab'al\", // Mayan\n \"csn\": \"Colombian Sign Language\",\n \"quv\": \"Sacapulteco\", // Mayan\n \"snk\": \"Soninké\",\n \"pga\": \"South Sudanese Creole Arabic\",\n \"shu\": \"Chadian (Shuwa) Arabic\",\n \"arq\": \"Algerian Arabic (Darja)\",\n \"apc\": \"Lebanese Arabic\",\n \"gsw\": \"Swiss German\",\n \"nds\": \"Low German\",\n \"gcr\": \"French Guianese Creole\",\n \"psr\": \"Portuguese Sign Language\",\n \"nob\": \"Norwegian Bokmål\",\n \"nno\": \"Norwegian Nynorsk\",\n \"hif\": \"Fiji Hindi\",\n \"psp\": \"Filipino Sign Language\",\n \"hac\": \"Gorani/Hawrami\",\n \"zza\": \"Zaza/Zazaki\",\n \"kmr\": \"Northern Kurdish/Kurmanji\",\n \"sdh\": \"Southern Kurdish\",\n \"hbs\": \"Serbo-Croatian\",\n \"bqn\": \"Bulgarian Sign Language\",\n \"swc\": \"Congo Swahili\",\n \"ghk\": \"Geko Karen\",\n \"blk\": \"Pa'o Karen\",\n \"kvu\": \"Yinbaw Karen\",\n \"kyu\": \"Western Kayah\",\n \"fao\": \"Faroese\",\n \"isl\": \"Icelandic\",\n \"lav\": \"Latvian\",\n \"fas\": \"Persian\",\n \"bak\": \"Bashkir\",\n \"bre\": \"Breton\",\n \"cos\": \"Corsican\",\n \"div\": \"Maldivian/Divehi\",\n \"est\": \"Estonian\",\n \"fry\": \"Frisian\",\n \"kal\": \"Greenlandic\",\n \"iku\": \"Inuktitut\",\n \"gle\": \"Irish/Gaeilge\",\n \"kok\": \"Konkani\",\n \"kir\": \"Kyrgyz\",\n \"dsb\": \"Lower Sorbian\",\n \"mkd\": \"Macedonian\",\n \"mlt\": \"Maltese\",\n \"mri\": \"Māori\",\n \"arn\": \"Mapudungun\",\n \"moh\": \"Mohawk\",\n \"oci\": \"Occitan\",\n \"roh\": \"Romansh\",\n \"smn\": \"Sami (Inari)\",\n \"smj\": \"Sami (Lule)\",\n \"sme\": \"Sami (Northern)\",\n \"sms\": \"Sami (Skolt)\",\n \"sma\": \"Sami (Southern)\",\n \"san\": \"Sanskrit\",\n \"gla\": \"Scottish Gaelic\",\n \"nso\": \"Northern Sotho\",\n \"tsn\": \"Setswana\",\n \"syc\": \"Syriac\",\n \"tgk\": \"Tajik\",\n \"ber\": \"Tamazight\",\n \"hsb\": \"Upper Sorbian/Wendish\",\n \"uig\": \"Uyghur\",\n \"cym\": \"Welsh\",\n \"sah\": \"Yakut\",\n \"iii\": \"Yi/Nuosu\",\n \"bfi\": \"British Sign Language (BSL)\",\n \"isg\": \"Irish Sign Language (ISL)\",\n \"ncs\": \"Nicaraguan Sign Language (ISN)\",\n \"ewe\": \"Ewe\",\n \"gaa\": \"Ga\",\n \"twi\": \"Twi (Akan kasa)\",\n \"kri\": \"Sierra Leonean Creole (Krio)\",\n \"fat\": \"Fante (Fanti)\",\n \"gan\": \"Chinese (Gan)\",\n \"fzho\": \"Chinese (Fuzhou)\",\n \"hak\": \"Chinese (Hakka)\",\n \"hokk1242\": \"Chinese (Hokkien)\",\n \"hsn\": \"Chinese (Xiang)\",\n \"pcm\": \"Nigerian Pidgin\",\n \"smo\": \"Samoan\",\n \"ton\": \"Tongan\",\n \"fij\": \"Fijian\",\n \"tvl\": \"Tuvaluan\",\n \"tpi\": \"Tok Pisin\",\n \"gil\": \"Gilbertese/Kiribati\",\n \"sna\": \"Shona\",\n \"grb\": \"Grebo\",\n \"syr\": \"Assyrian/Suret\",\n \"ban\": \"Balinese\",\n \"bis\": \"Bislama\",\n \"ilo\": \"Ilocano\",\n \"nau\": \"Nauru\",\n \"niu\": \"Niuean\",\n \"pkp\": \"Pukapuka\",\n \"sun\": \"Sundanese\",\n \"tah\": \"Tahitian\",\n \"tkl\": \"Tokelauan\",\n \"pag\": \"Pangasinan\",\n \"nan\": \"Chinese (Min Nan)\",\n \"fcs\": \"Quebec Sign Language (LSQ)\",\n \"lat\": \"Latin\",\n \"hil\": \"Hiligaynon/Ilonggo\",\n \"ace\": \"Acehnese\",\n \"ach\": \"Acholi\",\n \"esu\": \"Yup'ik\",\n \"xho\": \"Xhosa\",\n \"chao1238\": \"Chinese (Chaozhou)\",\n \"ctd\": \"Tedim\",\n \"zyp\": \"Zyphe (Zophei)\",\n \"kdh\": \"Cotocoli (Kotokoli, Tem)\",\n \"din\": \"Dinka\",\n \"dyo\": \"Jola-Fonyi\",\n \"bin\": \"Edo\",\n \"gex\": \"Garre\",\n \"gug\": \"Paraguayan Guarani\",\n \"hain1238\": \"Hainanese\",\n \"har\": \"Harari\",\n \"mey\": \"Hassaniya\",\n \"lom\": \"Loma\",\n \"clt\": \"Lautu\",\n \"ziw\": \"Chizigua/Zigula/Mushunguli\",\n \"mkw\": \"Kituba\",\n \"kik\": \"Kikuyu/Gikuyu\",\n \"jing1262\": \"Chinese (Lower Yangtze Mandarin)\",\n \"jra\": \"Jarai\",\n \"lug\": \"Luganda\",\n \"luo\": \"Dholuo\",\n \"ymm\": \"Af Maay\",\n \"mnk\": \"Mandinka\",\n \"mrh\": \"Mara\",\n \"hlt\": \"Matu\",\n \"myb\": \"Mbay\",\n \"men\": \"Mende\",\n \"ium\": \"Iu Mien\",\n \"hna\": \"Mina (Cameroonian)\",\n \"cnr\": \"Montenegrin\",\n \"nus\": \"Nuer\",\n \"wes\": \"Cameroonian Creole\",\n \"fuc\": \"Pulaar\",\n \"sez\": \"Senthang\",\n \"chen1267\": \"Chinese (Sichuanese)\",\n \"sus\": \"Susu\",\n \"bsq\": \"Bassa\",\n \"cal\": \"Carolinian\",\n \"cha\": \"Chamorro\",\n \"cfm\": \"Falam\",\n \"als\": \"Tosk\",\n \"brx\": \"Boro\",\n \"doi\": \"Dogri\",\n \"kas\": \"Kashmiri\",\n \"mni\": \"Meitei\",\n \"sat\": \"Santali\",\n \"snd\": \"Sindhi\",\n \"tcs\": \"Torres Strait Creole/ Yumplatok\",\n \"ulk\": \"Meriam\",\n \"wim\": \"Wik Mungkan\",\n \"mwp\": \"Kalau Lagau Ya\",\n \"kky\": \"Guugu Yimithirr\",\n \"pis\": \"Pijin\",\n \"wmt\": \"Walmajarri\",\n \"ggd\": \"Kukatj\",\n \"yuul1239\": \"Yolŋu Matha\",\n \"new\": \"Newar/Nepal Bhasa\",\n \"apa\": \"Apache\",\n \"beq\": \"Bembe (Kibeembe)\",\n \"bem\": \"Bemba\",\n \"nya\": \"Chewa/Nyanja\",\n \"sfs\": \"South African Sign Language (SASL)\",\n \"nde\": \"Northern Ndebele\",\n \"ssw\": \"Swati\",\n \"tso\": \"Tsonga\",\n \"ven\": \"Venda\",\n \"toi\": \"Tonga (Zambia & Zimbabwe)\",\n \"tog\": \"Tonga (Malawi) (tog)\",\n \"lua\": \"Luba-Kasai\",\n \"mlg\": \"Malagasy\",\n \"lrl\": \"Achomi\",\n \"mfz\": \"Southern Burun/Mabaan\",\n \"tdt\": \"Tetum\",\n \"ood\": \"O'odham\",\n \"sag\": \"Sango\",\n \"tig\": \"Tigre\",\n \"scn\": \"Sicilian\",\n \"nyn\": \"Nkore/Runyankole\",\n \"kac\": \"Jingpho/Kachin\",\n \"spy\": \"Sabaot\",\n \"kln\": \"Nandi\",\n \"sgc\": \"Kipsigis\",\n \"lan\": \"Laru\",\n \"enb\": \"Markweta\",\n \"pko\": \"Pökoot\",\n \"kpz\": \"Kupsabiny\",\n \"axe\": \"Anmatyerre\",\n \"aly\": \"Alyawarr\",\n \"eth\": \"Ethiopian Sign Language\",\n \"chat1268\": \"Chatino\",\n \"rki\": \"Rakhine (Arakanese)\",\n \"ade\": \"Adele\",\n \"bmb\": \"Bembe (Ibembe)\",\n \"bua\": \"Buryat\",\n \"cre\": \"Cree\",\n \"dgr\": \"Dogrib/Tilcho\",\n \"kqo\": \"Eastern Krahn/Konobo\",\n \"gej\": \"Mina-Gen\",\n \"gom\": \"Goan Konkani\",\n \"pdu\": \"Kayan/Padaung\",\n \"tod\": \"Toma\",\n \"kxf\": \"Manumanaw\",\n \"mls\": \"Masalit\",\n \"dty\": \"Dotyali\",\n \"pau\": \"Palauan\",\n \"pam\": \"Kapampangan\",\n \"pif\": \"Pingelapese\",\n \"krn\": \"Sapo/Southern Krahn\",\n \"kvy\": \"Yintale\",\n \"shn\": \"Shan\",\n \"czt\": \"Zotung\",\n \"blt\": \"Tai Dam\",\n \"bfz\": \"Mahasu Pahari\",\n \"rkm\": \"Marka\",\n \"agq\": \"Aghem\",\n \"emk\": \"Eastern Maninkaka\",\n \"aee\": \"Northeastern Pashayi\",\n \"glh\": \"Northwestern Pashayi\",\n \"psi\": \"Southeastern Pashayi\",\n \"psh\": \"Southwestern Pashayi\",\n \"ibg\": \"Ibanag\",\n \"lir\": \"Liberian Kreyol\",\n \"ssy\": \"Saho\",\n \"mlq\": \"Western Malinke\",\n \"pap\": \"Papiamento\",\n \"tem\": \"Temne\",\n \"krw\": \"Western Krahn krw\",\n \"waci1238\": \"Waziristani\",\n \"arc\": \"Aramaic\",\n \"krj\": \"Kinaray-a\",\n \"haw\": \"Hawaiian\",\n \"raj\": \"Rajasthani\",\n \"bete1265\": \"Bété\",\n \"dzo\": \"Dzongkha / Bhutanese\",\n \"bgc\": \"Haryanvi\",\n \"bho\": \"Bhojpuri\",\n \"mfs\": \"Mexican Sign Language (LSM)\",\n \"bzj\": \"Belize Kriol\",\n \"trf\": \"Trinidadian Creole\",\n \"limo1249\": \"Limonese Creole\",\n \"bjs\": \"Bajan\",\n \"ktb\": \"Kambaata\",\n \"hfy\": \"Hadiyya\",\n \"kab\": \"Kabyle\",\n \"mkj\": \"Mokilese\",\n \"hgm\": \"Ngatikese Creole\",\n \"dag\": \"Dagbani\",\n \"ryu\": \"Okinawan\",\n \"war\": \"Waray\",\n \"csf\": \"Cuban Sign Language (LSC)\",\n \"nzi\": \"Nzema\",\n \"csg\": \"Chilean Sign Language (LSCh)\",\n \"bzs\": \"Brazilian Sign Language\",\n \"wuu\": \"Chinese (Wu)\",\n \"ouji1238\": \"Chinese (Wenzhounese)\",\n \"xiam1236\": \"Chinese (Xiamenese)\",\n \"bhh\": \"Bukhori\",\n \"bai\": \"Bamileke\",\n \"nwe\": \"Ngwe\",\n \"mos\": \"Mossi\",\n \"ssp\": \"Spanish Sign Language (LSE)\",\n \"cbi\": \"Cha'palaa/Cayapa\",\n \"kno\": \"Kono\",\n \"kfr\": \"Kutchi\",\n \"tiv\": \"Tiv\",\n \"byv\": \"Medumba\",\n \"mwr\": \"Marwari\",\n \"kqs\": \"Northern Kissi\",\n \"kss\": \"Southern Kissi\",\n \"gru\": \"Soddo\",\n \"stv\": \"Silt'e\",\n \"zwa\": \"Zay\",\n \"ior\": \"Inor\",\n \"mvz\": \"Mesqan\",\n \"sgw\": \"Sebat Bet\",\n \"phr\": \"Pahari-Pothwari\",\n \"aaa\": \"Ghotuo\",\n \"gkn\": \"Gokana\",\n \"wln\": \"Walloon\",\n \"chim1312\": \"Bravanese\",\n \"ghl\": \"Ghulfan\",\n \"pov\": \"Guinea-Bissau Creole\",\n \"kcm\": \"Kara/Gula\",\n \"guz\": \"Gusii\",\n \"nap\": \"Neapolitan\",\n \"ning1280\": \"Chinese (Ningbo)\",\n \"tsz\": \"Purépecha\",\n \"baju1245\": \"Bajuni\",\n \"lus\": \"Mizo\",\n \"cab\": \"Garifuna\",\n \"tcf\": \"Malinaltepec (East)\",\n \"tpc\": \"Azoyú (South)\",\n \"tpl\": \"Tlacoapa (Central)\",\n \"tpx\": \"Acatepec (west)\",\n \"ttc\": \"Tektiteko\",\n \"nah\": \"Nauhatl\",\n \"amu\": \"Northern Amuzgo\",\n \"azm\": \"Amuzgo de Ipalapa\",\n \"azg\": \"Amuzgo de San Pedro\",\n \"czn\": \"Northern Chatino Zenzontepec \",\n \"cly\": \"Eastern ChatinoTatalpec\",\n \"cya\": \"Eastern Chatino (Lachao - Yolotepec)\",\n \"dyu\": \"Dyula\",\n \"ymn\": \"Maay Maay (Mai-Mai)\",\n \"fuf\": \"Pular\",\n \"chr\": \"Cherokee\",\n }\n};\n","import { DEFAULT_LOCALE } from '@/config/constants'\nimport { createI18n } from 'vue-i18n'\n\nimport en from './en.js'\n\n\n//TODO: Pull this from config?\nconst availableLocales = ['en', 'ja', 'zh-hans', 'zh-hant', 'es', 'pt', 'fr', 'de', 'ko']\n\n// get reference to global window to access local storage\nconst windowGlobal = typeof window !== 'undefined' && window\n\nexport const getDevicePrimaryLocale = () => {\n let l = null\n if (navigator.language) {\n l = navigator.language\n } else if (navigator.languages && navigator.languages > 0) {\n l = navigator.languages[0]\n }\n return l\n}\n\n// default locale could be set in localstorage due to user selection...\n// otherwise it could be set by the server, or inferred by the browser\n// last resort is just to use English\nconst getDefaultLocale = () => {\n // check for local stored setting\n if (windowGlobal.localStorage.getItem(\"app:locale\") != null) {\n return windowGlobal.localStorage.getItem(\"app:locale\")\n }\n\n // or config from environment\n if (DEFAULT_LOCALE) {\n return DEFAULT_LOCALE\n }\n\n // or fall back to guessing from local device\n let deviceLocale = getDevicePrimaryLocale()\n if (deviceLocale) {\n let dlcc = deviceLocale.split(\"-\")\n let country = dlcc[(dlcc.length - 1)]\n let partCode = dlcc[0]\n\n if (dlcc.length > 1) {dlcc.splice((dlcc.length - 1),1)}\n let fullCode = dlcc.join(\"-\")\n\n if (availableLocales.indexOf(fullCode) !== -1) {\n return fullCode\n }\n\n if (partCode === 'zh') {\n return ((country === 'TW') ? 'zh-hant' : 'zh-hans')\n }\n }\n return 'en'\n}\n\nlet currentLocale = getDefaultLocale()\nconst i18n = createI18n({\n locale: currentLocale,\n allowComposition: true,\n fallbackLocale: 'en',\n messages: {\n en\n }\n})\n\n\nconst setLocale = (locale) => {\n windowGlobal.localStorage.setItem(\"app:locale\", locale)\n currentLocale = locale\n}\n\nconst getLocale = () => {\n return currentLocale\n}\n\nexport const translateObjectProperty = (obj, name) => {\n if (obj[name + \"I18N\"] && obj[name + \"I18N\"][getLocale()]) {\n return obj[name + \"I18N\"][getLocale()]\n }\n if (obj[name]) {\n return obj[name]\n }\n return '[i18n error]'\n}\n\n//getDeviceLocaleCountryCode return string\nexport const getDevicePrimaryLocaleCountryCode = () => {\n let dla = null\n let dl = getDevicePrimaryLocale()\n if (dl) {\n dla = dl.split(\"-\")\n return dla[(dla.length - 1)]\n }\n}\n\n//getDeviceLocaleLangueCode return string\nexport const getDevicePrimaryLocaleLanguageCode = () => {\n let dla = null\n let dl = getDevicePrimaryLocale()\n if (dl) {\n dla = dl.split(\"-\")\n if (dla.length > 1) {dla.splice((dla.length - 1),1)}\n return dla.join(\"-\")\n }\n}\n\nexport default i18n\nexport { i18n, getLocale, setLocale, getDefaultLocale, availableLocales}\n","import '@mdi/font/css/materialdesignicons.css'\nimport 'vuetify/lib/styles/main.sass'\nimport { createVuetify } from 'vuetify'\nimport * as components from 'vuetify/lib/components'\nimport * as directives from 'vuetify/lib/directives'\n\nexport default createVuetify({\n components,\n directives,\n theme:true\n})","function resetState(state, data) {\n Object.keys(data).forEach((key) => {\n state[key] = data[key]\n })\n }\n\n export {resetState}","import { api } from '@/services/api'\nimport { resetState } from '@/store/helpers'\nimport i18n from '@/i18n'\nimport * as appConstants from '@/config/constants.js'\nimport moment from \"moment\"\nimport { CACHE } from '../config/constants'\n// import { resolve } from 'core-js/fn/promise'\n\n// this is for internal reference only. When the user\n// is updated, the base apiUrl is updated accordingly for use\n// in api calls. It's assumed that actions are being performed\n// on the user who is logged in.\nlet apiUrl = null\n\n\nconst initState = () => {\n return {\n // general account info\n user: {},\n isLinguist: false,\n linguistProfile: {},\n photoUpdatedAt: new Date().getTime(),\n isSignedInOnMobile: false,\n devicesLoaded: false,\n devices: [],\n billingAccounts: [], // user could have access to more than one billing account\n activeBillingAccount: null,\n clientConfig: {},\n clientConfigReloadAt: null, // a timestamp\n upcomingCallsData: null,\n\n // organization memberships\n memberships: [],\n activeOrganization: null,\n\n // call history\n customerCallHistoryLoaded: false,\n customerCallHistory: [],\n linguistCallHistoryLoaded: false,\n linguistCallHistory: [],\n\n // transaction history\n sessionChargeHistoryLoaded: false,\n sessionChargeHistory: [],\n packageChargeHistoryLoaded: false,\n packageChargeHistory: [],\n\n // customer account balance & usage\n hasPaymentMethod: false,\n autoreloadMinutePackage: null,\n subscribedMinutePackage: null,\n hasUnlimitedUse: false,\n hasUnlimitedUseUntil: false,\n subscriptionPeriods: [],\n subscriptionPeriodsLoadedAt: null,\n currentSubscriptionPeriod: null,\n usagePeriods: [],\n currentUsagePeriod: null,\n\n // purchase options\n packagePromoCode: null,\n availablePackagesLoaded: false,\n packagesAvailable: false,\n availablePackages: [],\n\n // misc\n experimentalFeatureConfigLoaded: false,\n experimentalFeatureConfig: null,\n favoriteLinguists: [],\n referrerLoaded: false,\n referrer: null,\n referralTokenLoaded: false,\n referralToken: null,\n\n //zoomInfo\n zoomUserType: null, //account type of current zoom user \n\n //participant records for current user\n linguistParticipantRecords: [],\n linguistParticipantRecordsLoaded: false,\n\n organizationID: null,\n showPreCallCustomFieldsDialog: false,\n showPostCallCustomFieldsDialog: false,\n featureConfig: false,\n customFieldsDefaultValues: {}\n }\n}\n\nconst state = initState()\nconst fieldType = {\n input: \"input\",\n dropdown: \"dropdown\"\n}\n// TODO: add getters for \"public\" vs \"custom\" packages\nconst getters = {\n getMyState: state => state.user,\n displayName: function (state) {\n if (state.user.preferredName != null) {\n return state.user.preferredName\n }\n\n if (!!state.user.firstName && !!state.user.lastName) {\n return `${state.user.firstName} ${state.user.lastName}`\n }\n\n return state.user.firstName\n },\n avatarUrl: function (state) {\n if (state.user.avatarURL) {\n return state.user.avatarURL + \"?\" + state.photoUpdatedAt\n }\n // default gravatar placeholder\n return \"https://www.gravatar.com/avatar/?d=mp&s=250\"\n },\n isBlockedUser: function (state) {\n return (!!state.user.featureFlags && state.user.featureFlags.indexOf(appConstants.featureFlagIsBlockedUser) != -1) ? true : false\n },\n isOrgOwner: function (state) {\n return (!!state.user.featureFlags && state.user.featureFlags.includes(\"users:type:org-owner\")) ? true : false\n },\n isLinguistTwo: function (state) {\n //WARNING! HACK!!\n if ( state.user.featureFlags ) {\n if (\n (state.user.featureFlags.indexOf(appConstants.featureFlagActiveLinguist) != -1)\n || (state.user.featureFlags.indexOf(appConstants.featureFlagProspectiveLinguist) != -1)\n || (state.user.featureFlags.indexOf(appConstants.featureFlagTestCallLinguist) != -1)\n ) {\n return true\n }\n return false\n }\n },\n getCustomFields: (state) => (session, isPre) => {\n /*t this functions is for mainly getting already set pre and post config fields and\n setting their default values either from user object or from session object\n */\n const configType = isPre ? \"preFeatureConfig\" : \"postFeatureConfig\";\n if (state.activeBillingAccount?.[configType]) {\n for (const prop in state.activeBillingAccount[configType]) {\n let metaData = ''\n if (isPre) {\n // First check if the precedence API has returned any default custom fields values,\n // then the values from the session object, lastly from the user object\n metaData = state.customFieldsDefaultValues?.sessionMetadata || session?.metadata || state.user?.sessionMetadata;\n } else {\n metaData = session?.metadata \n }\n const property = state.activeBillingAccount[configType][prop];\n if (metaData) {\n const matchingMeta = Object.entries(metaData).find(\n ([key]) => property.key === key\n );\n if (matchingMeta) property.value = matchingMeta[1];\n else property.value = \"\";\n state.activeBillingAccount[configType][prop] = property;\n } else property.value = \"\";\n }\n \n return state.activeBillingAccount[configType];\n }\n return {}\n },\n}\n\nconst mutations = {\n reset(state) {\n resetState(state, initState())\n },\n setUser(state, user) {\n\n // set user/linguist state\n state.linguistProfile = {}\n state.user = user\n state.isLinguist = !!user.linguistProfile\n if (state.isLinguist) {\n state.linguistProfile = user.linguistProfile\n }\n\n apiUrl = \"/v1/users/\" + user.id\n },\n setBillingAccounts(state, accounts = []) {\n if (!accounts || accounts.length === 0) {\n state.activeBillingAccount = null\n state.billingAccounts = []\n return\n }\n\n state.billingAccounts = accounts\n },\n updateFeatureConfigFlag(state, payload) {\n state.featureConfig = payload\n },\n updatePreCallCustomFieldsFlag(state, payload) {\n state.showPreCallCustomFieldsDialog = payload\n },\n updatePostCallCustomFieldsFlag(state, payload) {\n state.showPostCallCustomFieldsDialog = payload\n },\n setActiveBillingAccount(state, account = null) {\n if (account === null) {\n state.sessionChargeHistoryLoaded = false\n state.sessionChargeHistory = []\n state.packageChargeHistoryLoaded = false\n state.packageChargeHistory = []\n state.autoreloadMinutePackage = null\n state.subscribedMinutePackage = null\n state.hasUnlimitedUse = false\n state.hasUnlimitedUseUntil = false\n state.subscriptionPeriods = []\n state.subscriptionPeriodsLoadedAt = null\n state.hasUnlimitedUse = false\n state.hasUnlimitedUseUntil = false\n state.hasPaymentMethod = false\n state.currentSubscriptionPeriod = null\n state.usagePeriods = []\n state.currentUsagePeriod = null\n state.clientConfig = {}\n\n return\n }\n state.activeBillingAccount = account\n state.organizationID = account.organizationID\n // check for any payment methods\n if (!!account.paymentMethods && account.paymentMethods.length > 0) {\n state.hasPaymentMethod = true\n } else {\n state.hasPaymentMethod = false\n }\n\n // check currently active subscription periods\n if (!!account.subscriptionPeriods && account.subscriptionPeriods.length > 0) {\n state.subscriptionPeriods = account.subscriptionPeriods\n state.subscriptionPeriodsLoadedAt = new Date().getTime()\n const unlimitedUseUntil = hasUnlimitedUseUntil(account.subscriptionPeriods)\n if (unlimitedUseUntil !== false) {\n state.hasUnlimitedUse = true\n state.hasUnlimitedUseUntil = unlimitedUseUntil\n }\n const cp = getCurrentPeriod(account.subscriptionPeriods)\n state.currentSubscriptionPeriod = (cp) ? cp : null\n } else {\n state.currentSubscriptionPeriod = null\n state.subscriptionPeriods = []\n }\n\n // check for usage periods\n if (!!account.usagePeriods && account.usagePeriods.length > 0) {\n state.usagePeriods = account.usagePeriods || []\n const cp = getCurrentPeriod(state.usagePeriods)\n state.currentUsagePeriod = (cp) ? cp : null\n } else {\n state.usagePeriods = []\n state.currentUsagePeriod = null\n }\n\n // check minute packages\n state.autoreloadMinutePackage = account.autoreloadPackage || null\n state.subscribedMinutePackage = account.subscribedPackage || null\n },\n setClientConfig(state, conf = {}) {\n let reloadAt = null\n const now = new Date().getTime()\n if (conf.reloadAt) {\n reloadAt = new Date(conf.reloadAt).getTime()\n }\n if (!reloadAt || reloadAt < now) {\n reloadAt = now + CACHE.CLIENT_CONFIG\n }\n\n state.clientConfig = conf\n state.clientConfigReloadAt = reloadAt\n },\n setOrganizationMemberships(state, memberships = []) {\n if (!memberships || memberships.length === 0) {\n state.memberships = []\n state.activeMembership = null\n return\n }\n\n state.memberships = memberships\n if (memberships.length > 0) {\n state.activeMembership = memberships[0]\n }\n },\n setZoomUserType(state, userStatus){\n state.zoomUserType = userStatus.type\n },\n setLinguistParticipantRecords(state, records){\n state.linguistParticipantRecords = records\n state.linguistParticipantRecordsLoaded = true\n },\n setCustomFieldsDefaultValues(state, ccfDefaultValues) {\n state.customFieldsDefaultValues = ccfDefaultValues;\n }\n}\n\nconst actions = {\n refresh({ commit, dispatch }, userId = null) {\n if (userId) {\n apiUrl = \"/v1/users/\" + userId\n }\n return new Promise((resolve, reject) => {\n var userRes = null\n api.get(apiUrl)\n .then((res) => {\n commit('setUser', res.data)\n userRes = res.data\n })\n .then(() => {\n return Promise.all([ \n dispatch('loadBillingAccount'),\n dispatch('loadBillingAccounts'), \n dispatch('loadBillingAccountConfig', {force: true}),\n dispatch('loadUpcomingCalls'),\n dispatch('loadCallHistory'),\n \n ])\n })\n .then(() => {\n resolve(userRes)\n })\n .catch(reject)\n })\n },\n loadBillingAccounts({ dispatch }) {\n return new Promise((resolve, reject) => {\n api.get(apiUrl+'/billing-accounts').then((res) => {\n dispatch('setBillingAccounts', res.data)\n resolve(res.data)\n }).catch(reject)\n })\n },\n loadBillingAccount({commit, state}) {\n if (!state.user.billingAccountID) {\n return Promise.reject(new Error('no billing account id for user'))\n }\n\n return new Promise((resolve, reject) => {\n api.get(`/v1/billing-accounts/${state.user.billingAccountID}`)\n .then((res) => {\n let properties = []\n let preproperties = []\n let postproperties = []\n let jsonSchema = res?.data?.featureConfig?.sessionMetadata?.fieldsJsonSchema\n if(jsonSchema) {\n let fields = jsonSchema?.properties ? Object.entries(jsonSchema?.properties) : null\n if(fields){\n for (let [key, fieldValue] of fields){\n if(!fieldValue.deprecated) {\n if(fieldValue.oneOf) {\n fieldValue.inputType = fieldType.dropdown\n fieldValue.placeholder = i18n.global.t('metaData.dropdownPlaceholder')\n \n // Update oneOf values\n fieldValue.oneOf.map( x => {\n x.text = x.title\n x.value = x.const\n delete x.title\n delete x.const\n })\n }\n else {\n fieldValue.inputType = fieldType.input\n fieldValue.placeholder = i18n.global.t('metaData.textFieldPlaceholder')\n }\n \n // Check if key is in requiredFields\n let requiredFields = jsonSchema?.required\n if (requiredFields?.includes(key)) {\n fieldValue.required = true\n }\n \n // Assign metaValue to fieldValue.value\n let metaData = state?.user?.sessionMetadata ? Object.entries(state?.user?.sessionMetadata) : null\n if(metaData){\n for (let [metaKey, metaValue] of metaData){\n if(metaKey === key) {\n fieldValue.value = metaValue;\n }\n }\n }\n fieldValue.key = key;\n properties.push(fieldValue)\n //for pre and post ccf\n let tempFieldValue = { ...fieldValue }; //deep copy\n if (tempFieldValue?.contexts?.length) {\n tempFieldValue.contexts.forEach((element) => {\n tempFieldValue.required = element.required;\n if (element.key == \"precall\") {\n preproperties.push({ ...tempFieldValue });\n } else if (element.key == \"postcall\") {\n postproperties.push({ ...tempFieldValue });\n }\n });\n }\n }\n }\n }\n // Update featureConfig with properties\n res.data.featureConfig = properties\n commit('updateFeatureConfigFlag', true)\n\n if (preproperties.length && state.user.billingAccount?.featureConfig?.orgMemberManagement?.customFieldsManagement?.enabled) {\n res.data.preFeatureConfig = preproperties;\n commit(\"updatePreCallCustomFieldsFlag\", true);\n }\n if (postproperties.length && state.user.billingAccount?.featureConfig?.orgMemberManagement?.customFieldsManagement?.enabled) {\n res.data.postFeatureConfig = postproperties;\n commit(\"updatePostCallCustomFieldsFlag\", true);\n }\n }\n else {\n commit('updateFeatureConfigFlag', false)\n }\n commit('setActiveBillingAccount', res.data)\n resolve(res.data)\n }).catch(reject)\n })\n },\n fetchCustomFieldDefaultValues({commit, state}, scenarioId) {\n const userId = state.user?.id || '';\n let url = `/v1/users/${userId}/customfields/defaults`\n if (scenarioId) {\n url += `?scenario_id=${scenarioId}`\n }\n return new Promise((resolve, reject) => {\n return api.get(url).then((res) => {\n commit('setCustomFieldsDefaultValues', res.data)\n resolve(res.data)\n }).catch(reject)\n })\n },\n setBillingAccounts({commit}, accounts = []) {\n if (!!accounts && accounts.length == 0) {\n commit('setBillingAccounts', [])\n // commit('setActiveBillingAccount', null)\n } else {\n commit('setBillingAccounts', accounts)\n // commit('setActiveBillingAccount', state.activeBillingAccount)\n }\n },\n loadBillingAccountConfig({commit, state}, data = {}) {\n if (!state.user.billingAccountID) {\n return Promise.reject(new Error('no billing account id for user'))\n }\n\n if (!!state.clientConfigReloadAt && new Date().getTime() < state.clientConfigReloadAt && !data.force) {\n return Promise.resolve(state.clientConfig)\n }\n\n return new Promise((resolve, reject) => {\n api.get(`/v1/billing-accounts/${state.user.billingAccountID}/client-config`)\n .then((res) => {\n commit('setClientConfig', res.data)\n resolve(res.data)\n })\n .catch(reject)\n })\n },\n loadUpcomingCalls({ state}, data ={}) {\n const now = moment().subtract(3, 'hours').utc();\n const role = state.isLinguist ? \"linguist\" : \"creator\";\n let params = [\n `type=scheduled_virtual`,\n `scheduledAfter=${now.format('YYYY-MM-DD')}`,\n `isEnded=false`,\n `role=${role}`,\n // `sort=createdAt:desc`,\n ]\n if (data.urlFilters) params = params.concat(data.urlFilters);\n const url = `/v1/sessions?${params.join('&')}`\n let sessmap = {}\n\n return new Promise((resolve, reject) => {\n return api.get(url).then((res) => {\n if (res && res.data && res.data.sessions && res.data.sessions.length > 0) {\n res.data.sessions.forEach((sess) => {\n sessmap[sess.id] = sess\n })\n }\n state.upcomingCallsData = Object.values(sessmap)\n state.upcomingCallsData.sort((a, b) => {\n const ta = moment(a.scheduledBeginAt)\n const tb = moment(b.scheduledBeginAt)\n if (ta.unix() < tb.unix()) {\n return -1\n } else if (ta.unix() > tb.unix()) {\n return 1\n }\n return 0\n })\n resolve(res.data)\n }).catch(reject)\n })\n },\n loadOrganizationMemberships({ commit }) {\n return new Promise((resolve, reject) => {\n api.get(apiUrl+'/memberships').then((res) => {\n commit('setOrganizationMemberships', res.data)\n resolve(res.data)\n }).catch(reject)\n })\n },\n //for getting the account type of zoom user\n getZoomUserType({ commit }){\n return new Promise((resolve, reject) => {\n api.get('/v1/integrations/zoom/user-type').then((res)=>{\n commit('setZoomUserType', res.data)\n resolve(res.data)\n })\n .catch(e=>{reject(e)})\n })\n },\n getLinguistParticipantData({ commit }){\n //for fetching linguist participant records\n return new Promise((resolve, reject)=>{\n api.get(apiUrl + '/session/participants?_skip=0&_limit=10&_relations=session&servicePlatform=zoom&connectionStatus=connecting,connected,disconnected&session_ended=false')\n .then((res)=>{\n commit('setLinguistParticipantRecords', res.data.participants)\n resolve(res.data)\n })\n .catch(reject)\n })\n },\n getLinguistParticipantDataForEndedSessions({ commit }){\n //for fetching linguist participant records for ended sessions\n return new Promise((resolve, reject)=>{\n api.get(apiUrl + '/session/participants?_skip=0&_limit=10&_relations=session&servicePlatform=zoom&connectionStatus=connecting,connected,disconnected&session_ended=true')\n .then((res)=>{\n commit('setLinguistParticipantRecords', res.data.participants)\n resolve(res.data)\n })\n .catch(reject)\n })\n },\n loadCallHistory({dispatch}) {\n let currentDate = new Date();\n currentDate = moment(currentDate).format(\"YYYY-MM-DDTHH:mm:ss\");\n let params = [\n `_relations=rating`,\n `_criteria=billable,unresolved`,\n `happensBefore=${currentDate}`,\n `limit=${50}`,\n `role=creator`,\n `skip=${0}`,\n `servicePlatform=zoom`\n ]\n\n const url = `/v1/sessions?${params.join('&')}`\n return new Promise((resolve, reject) => {\n return api.get(url).then((res) => {\n if (res.data?.sessions?.length) {\n //load recently used secondary languages\n dispatch(\"loadRecentlyUsedLanguages\", res.data.sessions);\n }\n resolve(res.data)\n }).catch(reject)\n })\n },\n loadRecentlyUsedLanguages({dispatch}, data) {\n let arrayUniqueByKey = [\n ...new Map(\n data.reverse().map((item) => [item[\"secondaryLangCode\"], item])\n ).values(),\n ];\n arrayUniqueByKey.forEach((item) => {\n const payload = {\n secondaryLangCode: item.secondaryLangCode,\n timestamp: item.happensAt,\n };\n dispatch(\"updateListOfRecentlyUsedSecondaryLanguages\", payload, { root: true });\n });\n },\n getUserInCallStatus({ rootState, dispatch }, meetingId) {\n let activeSession = null;\n return new Promise((resolve, reject) => {\n api\n .get(apiUrl + \"/session-status\")\n .then((res) => {\n if (!!res?.data?.sessions && res.data.sessions.length) {\n activeSession = getActiveSession(\n res.data.sessions,\n rootState.auth.deviceId,\n meetingId\n );\n if (activeSession?.sessionID) {\n dispatch(\"session/setSessionID\", activeSession?.sessionID, {\n root: true,\n });\n }\n }\n resolve(activeSession);\n })\n .catch(reject);\n });\n },\n loadSchdeuledCallHistory({ dispatch }, meetingInfo) {\n let currentDate = new Date();\n currentDate = moment(currentDate).format(\"YYYY-MM-DDTHH:mm:ss\");\n let params = [\n `_relations=rating`,\n `_criteria=billable,unresolved`,\n `happensBefore=${currentDate}`,\n `limit=${50}`,\n `role=creator`,\n `skip=${0}`,\n `servicePlatform=zoom`,\n `type=scheduled_virtual`\n ]\n let activeSession = null;\n const url = `/v1/sessions?${params.join('&')}`\n return new Promise((resolve, reject) => {\n return api.get(url)\n .then((res) => {\n if (res?.data?.results && res.data.results.length) {\n activeSession = getActiveScheduledSession(\n res.data.results,\n meetingInfo.meetingID\n );\n if (activeSession?.sessionID) {\n dispatch(\"session/setSessionID\", activeSession?.sessionID, {\n root: true,\n });\n }\n }\n resolve(activeSession);\n })\n .catch(reject)\n })\n },\n // eslint-disable-next-line\n submitFeedback( {},payload) {\n return new Promise((resolve, reject) => {\n api.post(apiUrl + \"/feedback\", payload)\n .then(resolve)\n .catch(reject)\n })\n },\n \n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations,\n actions\n}\n\n\nfunction hasUnlimitedUseUntil(periods) {\n periods = periods || [];\n if (periods.length == 0) {\n return false;\n }\n\n const now = moment();\n for (var p of periods) {\n const begin = moment(p.beginAt);\n const end = moment(p.endAt);\n if (p.unlimitedUse) {\n if (begin.isBefore(now) && end.isAfter(now)) {\n return end;\n }\n }\n }\n\n return false;\n}\n\nfunction getCurrentPeriod (periods) {\n periods = periods || []\n if (periods.length == 0) {\n return false\n }\n const now = moment();\n for (var p of periods) {\n const begin = moment(p.beginAt)\n const end = moment(p.endAt)\n if (begin.isBefore(now) && end.isAfter(now)) {\n return p\n }\n }\n return false\n}\nfunction getActiveSession(sessions, deviceID, meetingId) {\n if (!!sessions && sessions.length) {\n //first sort the sessions latest first\n let activeSessions = sessions.sort((a, b) => {\n const ta = moment(a.session?.happensAt);\n const tb = moment(b.session?.happensAt);\n if (ta.unix() < tb.unix()) {\n return 1;\n } else if (ta.unix() > tb.unix()) {\n return -1;\n }\n return 0;\n });\n //then get the active session from it if any\n let activeSession = activeSessions.find((s) => {\n return (\n // s.deviceID === deviceID &&\n s.session?.servicePlatform == \"zoom\" &&\n s.session?.type == \"immediate_virtual\" &&\n s.session?.servicePlatformSessionID == meetingId\n );\n });\n return activeSession;\n }\n return {};\n}\n\nfunction getActiveScheduledSession(sessions, meetingID) {\n if (!!sessions && sessions.length) {\n //first sort the sessions latest first\n let activeSessions = sessions.sort((a, b) => {\n const ta = moment(a.session?.happensAt);\n const tb = moment(b.session?.happensAt);\n if (ta.unix() < tb.unix()) {\n return 1;\n } else if (ta.unix() > tb.unix()) {\n return -1;\n }\n return 0;\n });\n //then get the active session from it if any\n let activeSession = activeSessions.find((s) => {\n let currentDate = new Date();\n currentDate = moment(currentDate).format(\"YYYY-MM-DDTHH:mm:ss\");\n return (\n currentDate <= moment(s.scheduledEndAt).format(\"YYYY-MM-DDTHH:mm:ss\") &&\n s.servicePlatform == \"zoom\" &&\n s.type == \"scheduled_virtual\" &&\n s.servicePlatformMeta.meetingID == meetingID\n );\n });\n return activeSession;\n }\n return {};\n}\n","import {VERSION} from '@/config/constants'\nimport uaParser from 'ua-parser-js'\n\nexport const createDevice = (config) => {\n let l\n if (navigator.language) {\n l = navigator.language\n } else if (!!navigator.languages && navigator.languages > 0) {\n l = navigator.languages[0]\n } else {\n l = \"en\"\n }\n var match = document.cookie.match(RegExp('(?:^|;\\\\s*)' + \"Zoom-Secret\" + '=([^;]*)'));\n \n let clientPlatformHost = \"zoom-desktop\";\n if (config.product != \"desktop\") clientPlatformHost = \"zoom-mobile\";\n\n const { name: deviceOS, version: deviceOSVersion } = uaParser(\n config.userAgent\n ).os;\n \n const browserInfo = config.browserVersion.split(\"/\");\n let deviceName = `${browserInfo[0]} ${browserInfo[1]}`;\n\n return {\n name: deviceName,\n deviceType: \"web\",\n locale: l,\n webAppVersion: VERSION,\n clientPlatform: \"solo_zoom\",\n clientPlatformVersion: VERSION,\n ZoomToken: match ? match[1] : null,\n deviceOS,\n deviceOSVersion,\n clientPlatformHost,\n clientPlatformHostVersion: config.clientVersion,\n };\n}\n","/* eslint-disable */\nimport {\n api,\n setAuthToken,\n translateApiError,\n setAuthFailureHandler,\n clearAuthFailureHandler\n} from \"@/services/api\";\nimport { JWT_REFRESH_INTERVAL } from \"@/config/constants\";\nimport { resetState } from \"@/store/helpers\";\nimport { createDevice } from \"@/services/device\";\nimport * as Sentry from \"@sentry/vue\";\nimport { isProxy, toRaw } from 'vue';\n\nimport i18n from '@/i18n'\n// import { setAuthenticatedUser } from \"@/router\";\n\nconst initState = () => {\n return {\n authenticated: false, // this means a user is authenticated\n userId: null, // id of user who is authenticated, if relevant\n jwtToken: null, // jwt token for authenticated user\n refreshToken: null,\n deviceAuthenticated: false, // this means the device is authenticated\n deviceId: null, // id of authenticated device\n lastAuthorizedAt: null, // Date() when last token was refreshed\n\n // refreshes are generally triggered by intervals, timeouts, or other conditions. So it\n // is possible that two may end up happening almost at the same time, which would result\n // in an auth failure due to the tokens only being usable once. This param is an internal\n // guard to prevent the `refresh` action from dispatching if another is already in progress.\n refreshInProgress: false,\n\n // refresh listener - for use with browser api\n tokenRefreshListener: null,\n configState:false\n };\n};\n\nconst state = {\n initialized: false, // this actually should only be set to false once when the page loads initially\n // TODO: Need better way to use this\n fcmToken: null,\n zoomSdkConfig: null,\n ...initState()\n};\n\nconst mutations = {\n reset(state) {\n resetState(state, initState());\n setAuthToken(null);\n localStorage.removeItem(\"auth:refreshToken\");\n },\n authSuccess(state, data) {\n let parsedJwt = null;\n if (!!data.token) {\n parsedJwt = parseJwt(data.token);\n }\n\n state.initialized = true;\n state.jwtToken = data.token;\n\n // have an authenticated device\n if (!!parsedJwt && !!parsedJwt.device) {\n state.deviceAuthenticated = true;\n state.deviceId = parsedJwt.device.id;\n } else {\n state.deviceAuthenticated = false;\n state.deviceId = null;\n }\n\n // have an authenticated user\n if (!!parsedJwt && !!parsedJwt.user) {\n state.authenticated = true;\n state.userId = parsedJwt.user.id;\n } else {\n state.authenticated = false;\n state.userId = null;\n }\n\n state.lastAuthorizedAt = new Date();\n state.refreshToken = data.refresh;\n setAuthToken(state.jwtToken);\n localStorage.setItem(\"auth:refreshToken\", state.refreshToken);\n // TODO: might need to store jwt token in some cases (device only auth)\n },\n refreshInProgress(state, isInProgress) {\n state.refreshInProgress = isInProgress;\n },\n authFailed(state, err) {\n state.initialized = true;\n state.authenticated = false;\n },\n restoreToken(state) {\n let token = localStorage.getItem(\"auth:refreshToken\");\n if (!!token) {\n state.refreshToken = token;\n }\n // TODO: might need to restore jwt token\n },\n setTokenRefreshListener(state, listener) {\n state.tokenRefreshListener = listener;\n },\n clearToken(state) {\n state.jwtToken = null;\n state.refreshToken = null;\n localStorage.removeItem(\"auth:refreshToken\");\n setAuthToken(null);\n },\n logout(state) {\n state.authenticated = false;\n state.userId = null;\n state.jwtToken = null;\n state.refreshToken = null;\n setAuthToken(null);\n localStorage.removeItem(\"auth:refreshToken\");\n localStorage.removeItem(\"feedback:sessionBefore24Hour\");\n // TODO: might need to remove stored jwt token\n },\n setNotificationToken(state, token) {\n state.fcmToken = token;\n },\n setClientPlatformInfo(state, config) {\n state.zoomSdkConfig = config;\n },\n};\n\nconst actions = {\n // restore auth state from localstorage or cookies\n initialize({ commit, dispatch, state }) {\n commit(\"restoreToken\");\n return new Promise((resolve, reject) => {\n // if there was no refresh token, then there's nothing to do\n if (!state.refreshToken || state.refreshToken == \"undefined\") {\n // TODO: might need to restore device JWT\n resolve();\n return;\n }\n\n // otherwise, use the token and update the user data\n dispatch(\"refresh\")\n .then(() => {\n return dispatch(\"user/refresh\", state.userId, { root: true });\n })\n .then(user => {\n // setAuthenticatedUser(user);\n dispatch(\"setupTokenRefreshListener\");\n resolve();\n })\n .catch((e)=>{\n //GPS-3045?focusedCommentId=12703\n commit(\"logout\");\n reject(e);\n });\n });\n },\n // setup page listener to automatically use refresh token once focus comes back -\n // otherwise user will experience auth failures if they switch away from the tab\n // for too long\n setupTokenRefreshListener({ commit, dispatch, state }) {\n if (!!state.tokenRefreshListener) {\n return;\n }\n\n const listener = doc => {\n // if doc is no longer hidden, check for last time that was refreshed\n if (!doc.hidden) {\n // has it been long enough that we should refresh the auth token?\n if (\n !state.lastAuthorizedAt ||\n (!!state.lastAuthorizedAt &&\n new Date().getTime() >\n state.lastAuthorizedAt.getTime() + JWT_REFRESH_INTERVAL)\n ) {\n if (!!state.refreshToken) {\n dispatch(\"refresh\");\n }\n }\n }\n };\n\n // NOTE: it is theoretically possible that another API request may be triggered before\n // the response from `refresh` comes back. We MAY need to implement new features in\n // the API service that allow buffering API requests until a \"refresh\" response\n // has completed.\n document.addEventListener(\"visibilitychange\", listener, false);\n commit(\"setTokenRefreshListener\", listener);\n },\n\n // use a refresh token to authenticate\n refresh({ commit, state, dispatch }) {\n if (state.refreshInProgress) {\n return;\n }\n\n // get the token from local storage, instead of local state. It's possible another\n // browser tab has already used the current token\n let token = localStorage.getItem(\"auth:refreshToken\");\n if (!token) {\n return Promise.reject(new Error(\"no refresh token\"));\n }\n\n commit(\"refreshInProgress\", true);\n // unset the current JWT before requesting new one with the token\n // TODO: MAYBE don't unset JWT, because device ID might need to be passed\n setAuthToken(null);\n\n // also unset the auth retry handler - if we have an auth failure why trying\n // to use a refresh token, it could lead to an infinite loop\n clearAuthFailureHandler();\n\n // now try to use the refresh token\n return new Promise((resolve, reject) => {\n api\n .get(\"/v1/auth/tokens/\" + token)\n .then(res => {\n commit(\"authSuccess\", res.data);\n setSentryUser(state.userId, state.deviceId);\n\n // automatically use the refresh token at the configured interval\n setTimeout(() => {\n dispatch(\"refresh\").catch(() => {\n dispatch(\"logout\").catch(e => {\n return console.error(i18n.global.t('auth.logoutError'));\n });\n });\n }, JWT_REFRESH_INTERVAL);\n\n // set the auth failure handler - if a request fails\n // it should try to use a refresh token if available and retry,\n // otherwise fail and logout the user\n setAuthFailureHandler(null, err => {\n return dispatch(\"handleAuthFailure\", err);\n });\n\n resolve();\n })\n .catch(e => {\n // if we failed to use the refresh token, then\n // we're basically logged out, so clear all\n // internal auth and user state\n commit(\"authFailed\");\n commit(\"logout\");\n commit(\"user/reset\", null, { root: true });\n setSentryUser(null, null);\n reject(e);\n })\n .finally(() => {\n commit(\"refreshInProgress\", false);\n });\n });\n },\n\n // create and set a device JWT token\n authorizeDevice({ commit , state}) {\n let config = state.zoomSdkConfig;\n if (isProxy(state.zoomSdkConfig)) {\n config = toRaw(state.zoomSdkConfig);\n }\n const device = createDevice(config);\n return new Promise((resolve, reject) => {\n api\n .post(\"/v1/auth/device\", device)\n .then(res => {\n commit(\"authSuccess\", res.data);\n resolve();\n })\n .catch(reject);\n });\n },\n\n // update user device with specified fields\n updateDevice({ commit, state, dispatch }, payload) {\n return new Promise((resolve, reject) => {\n api\n .patch(`/v1/devices/${state.deviceId}`, payload)\n .then(res => {\n resolve(res.data);\n })\n .catch(reject);\n });\n },\n\n // basic login with email/pass combo\n login({ commit, state, dispatch }, payload) {\n return new Promise((resolve, reject) => {\n commit(\"reset\");\n commit(\"user/reset\", null, { root: true });\n\n // TODO: if you log in, it doesn't look like the timeout is being set\n // to user the refresh token if received. The whole thing should probably be refactored\n // to automatically set the timeout to use the token if present in the authentication\n // response\n let config = state.zoomContext;\n if (isProxy(state.zoomContext)) {\n config = toRaw(state.zoomContext);\n }\n\n dispatch(\"authorizeDevice\").finally(() => {\n if (!!payload.email) {\n payload.email = payload.email.trim();\n }\n api\n .post(\"/v1/auth/user\", payload)\n .then(res => {\n commit(\"authSuccess\", res.data);\n setSentryUser(state.userId, state.deviceId);\n dispatch(\"setupTokenRefreshListener\");\n dispatch(\"updateDevice\", { notificationToken: state.fcmToken });\n setAuthFailureHandler(null, err => {\n return dispatch(\"handleAuthFailure\", err);\n });\n return dispatch(\"user/refresh\", state.userId, { root: true }).then(\n user => {\n // setAuthenticatedUser(user);\n }\n );\n })\n .then(resolve)\n .catch(e => {\n commit(\"reset\");\n commit(\"authFailed\");\n setSentryUser(null, null);\n reject(e);\n });\n });\n });\n },\n \n // payload here is an axios response error\n handleAuthFailure({ state, dispatch }, payload) {\n const res = payload.response || {};\n const reqConfig = payload.config || {};\n\n // if we have an auth failure, check if it's possible to retry\n if (!!res.status && res.status === 401) {\n // if no token, then request just fails\n // TODO: should this also force clean internal auth state?\n if (!!!state.refreshToken) {\n return Promise.reject(payload);\n }\n\n // use the refresh token and retry the request, but ensure\n // we don't get stuck in a loop if the retry fails... only reset\n // the auth failure handler after the retry has finished\n return dispatch(\"refresh\").then(() => {\n reqConfig.headers.Authorization='Bearer ' + state.jwtToken\n clearAuthFailureHandler();\n return api.request(reqConfig).finally(() => {\n setAuthFailureHandler(null, err => {\n return dispatch(\"handleAuthFailure\", err);\n });\n });\n });\n }\n\n return Promise.reject(payload);\n },\n\n // logout, will also remove the current device\n logout({ commit }) {\n return new Promise((resolve, reject) => {\n api\n .get(\"/v1/auth/logout\")\n .then(resolve)\n .catch(e => {\n reject(translateApiError(e, \"auth.logoutError\"));\n })\n .finally(() => {\n commit(\"logout\");\n commit(\"user/reset\", null, { root: true });\n // commit(\"organization/reset\", null, { root: true });\n commit(\"session/reset\", null, { root: true });\n setSentryUser(null, null) //clear user on logout\n });\n });\n },\n};\n\nexport default {\n namespaced: true,\n state,\n mutations,\n actions\n};\n\n// thanks internet: https://stackoverflow.com/a/38552302\nfunction parseJwt(token) {\n var base64Url = token.split(\".\")[1];\n var base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n var jsonPayload = decodeURIComponent(\n atob(base64)\n .split(\"\")\n .map(function(c) {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\")\n );\n\n return JSON.parse(jsonPayload);\n}\n\nfunction setSentryUser(id , deviceId){\n if(id && deviceId){\n Sentry.setUser({id , deviceId}) // set userId and deviceId for user identification on Sentry\n return;\n }\n Sentry.setUser({}) //for clearing existing user (in case of logout/authfailure)\n}","// import Vue from \"vue\";\n\nimport { resetState } from \"./helpers\";\nimport { api } from \"@/services/api\";\n\nimport { PARTICIPANT } from \"@/config/session\";\n\n\nconst initState = () => ({\n sessionID: null,\n participantID: null, // set in various ways depending on how a user joins\n role: null,\n participants: null,\n\n // core session object data\n session: {},\n\n // basic session existence state\n status: {\n creating: false,\n created: false,\n began: false, // did both sides initially connect?\n ended: false,\n ending: false,\n endedLocally: false,\n endedRemotely: false\n },\n\n // array of local connection timer start/top events\n connectionTimer: [],\n\n // status of the session timer, contains a log of start/stop/reset events\n sessionTimer: {\n running: false,\n // list of events, each item in format of `{action: \"start|stop|reset\", time: Date().getTime()}`\n events: []\n },\n\n // mapping of all participants in the session by ID\n participantMap: {},\n\n // user info of the other person, either the linguist, or customer\n remoteUser: {},\n\n // incoming invite\n inviteID: null,\n invite: {},\n isIncomingCallActive: false,\n\n //zoom specific info\n zoomMeetingInfo: {}, //contains information about current zoom meeting including meeting settings and meeting type\n\n //linguist status information for current session\n linguistStatusInformation: {}\n});\n\nconst getters = {\n baseURL(state) {\n return `/v1/sessions/${state.sessionID}`;\n },\n isLinguist(state) {\n return state.role === PARTICIPANT.ROLE.LINGUIST;\n },\n localParticipant(state) {\n for (const p of Object.values(state.participantMap)) {\n if (p.id === state.participantID) {\n return p;\n }\n }\n return null;\n },\n linguistParticipant(state) {\n for (const p of Object.values(state.participantMap)) {\n if (p.role === PARTICIPANT.ROLE.LINGUIST) {\n return p;\n }\n }\n return null;\n },\n};\n\nconst mutations = {\n reset(state) {\n Object.assign(state, initState());\n },\n startCreatingSession(state, data) {\n resetState(state, initState());\n state.status.creating = true;\n state.role = PARTICIPANT.ROLE.CREATOR;\n state.session = data;\n },\n sessionCreated(state, data) {\n // TODO: local storage to save/restore session in progress\n state.status.creating = false;\n state.status.created = true;\n state.sessionID = data.sessionID;\n state.session = data;\n state.participantID = data.participant.id;\n state.participantMap = {};\n state.participantMap[state.participantID] = data.participant;\n },\n sessionCreateOrJoinFailed(state) {\n resetState(state, initState());\n },\n sessionEndingLocally(state) {\n state.status.ending = true;\n },\n sessionEndedLocally(state, data = null) {\n state.status.ending = false;\n state.status.endedRemotely = false;\n state.status.ended = true;\n state.status.endedLocally = true;\n if (data) {\n state.session.endReason = data.reason;\n }\n },\n sessionEndedRemotely(state, data = null) {\n state.status.ended = true;\n state.status.endedRemotely = true;\n state.status.ending = false;\n state.status.endedLocally = false;\n if (data) {\n state.session.endReason = data.reason;\n }\n },\n setParticipants(state, data) {\n state.participants=data\n // update each key we have - ensure we set each key individually to avoid\n // overwriting more recent information\n // for (const p of data) {\n // // if (!state.participantMap[p.id]) {\n // // Vue.set(state.participantMap, p.id, createEmptyParticipant());\n // // }\n // Object.keys(p).forEach(key => {\n // state.participantMap[p.id][key] = p[key];\n // });\n // }\n },\n setRemoteUser(state, user) {\n state.remoteUser = user;\n },\n setZoomMeetingInfo(state, info){\n Object.assign(state.zoomMeetingInfo, info)\n },\n setLinguistStatus(state, status){\n //TODO: Check if this works after API updates in GPS-1089\n Object.assign(state.linguistStatusInformation, status)\n },\n setSessionID(state, val) {\n state.sessionID = val;\n }\n};\n\nconst actions = {\n // create and join session as the creator\n createNewSession({ state, dispatch, commit }, data) {\n commit(\"startCreatingSession\", data);\n\n return new Promise((resolve, reject) => {\n let createRes = null;\n api\n .post(\"/v1/sessions\", data)\n .then(res => {\n createRes = res;\n commit(\"sessionCreated\", res.data);\n })\n .then(() => {\n return Promise.all([\n dispatch(\"ratings/getRatingTags\", { sessionID: state.sessionID}, { root: true}), //get rating tags for newly created session\n dispatch(\"loadParticipants\"),\n ])\n })\n .then(() => {\n resolve(createRes);\n })\n .catch(e => {\n commit(\"sessionCreateOrJoinFailed\", e);\n reject(e);\n });\n });\n },\n // sets the remote user, generally set when a linguist accepts an incoming call\n setRemoteUser({ dispatch, commit }, user) {\n commit(\"setRemoteUser\", user);\n dispatch(\"loadParticipants\");\n },\n loadParticipants({ commit, dispatch, getters, state }) {\n // TODO: automatically check for new participants and load them separately\n let res = null;\n return new Promise((resolve, reject) => {\n api\n .get(`${getters.baseURL}/participants`)\n .then(r => {\n res = r;\n // first check if we have any new participants, we'll also\n // do another request to load more information about them\n let newIDs = [];\n for (let p of res.data) {\n if (!state.participantMap[p.id]) {\n newIDs.push(p.id);\n }\n }\n commit(\"setParticipants\", res.data);\n return newIDs;\n })\n .then((newIDs = []) => {\n let promises = [];\n for (const id of newIDs) {\n promises.push(dispatch(\"loadParticipant\", { participantID: id }));\n }\n return Promise.all(promises);\n })\n .then(() => {\n // check for local participant having been removed\n if (getters.localParticipant && getters.localParticipant.removed) {\n commit(\"sessionEndedRemotely\");\n }\n\n resolve(res.data);\n })\n .catch(reject);\n });\n },\n loadParticipant({ getters, commit }, data) {\n const { participantID } = data;\n return new Promise((resolve, reject) => {\n api\n .get(`${getters.baseURL}/participants/${participantID}`)\n .then(res => {\n // check for local participant having been removed\n if (getters.localParticipant && getters.localParticipant.removed) {\n commit(\"sessionEndedRemotely\");\n }\n\n resolve(res.data);\n })\n .catch(reject);\n });\n },\n endSessionLocally({ commit, getters}, data) {\n commit(\"sessionEndingLocally\");\n return new Promise((resolve, reject) => {\n api\n .put(`${getters.baseURL}/end`, {\n reason: data.reason,\n // timer: 3000\n // @todo take timer from zoom\n })\n .then(res => {\n // don't do anything here because ending the session successfully will result\n // in receiving a signal from the server that the session was ended\n resolve(res);\n })\n .catch(err => {\n // but if the attempt to end the session failed - we'll\n // still end it locally. It could have failed because of a\n // local connection failure\n commit(\"sessionEndedLocally\", data);\n reject(err);\n });\n });\n },\n //for creating a new zoom call from within the jeenie app\n createZoomMeeting(){\n return new Promise((resolve, reject)=>{\n api.post('/v1/integrations/zoom/scheduled-meeting')\n .then((res)=>{\n resolve(res.data)\n })\n .catch((e)=>{\n reject(e)\n })\n })\n },\n //for getting information about current zoom meeting\n getZoomMeetingInfo({ commit }, meetingID){\n return new Promise((resolve, reject)=>{\n api.get(`/v1/integrations/zoom/meeting/${meetingID}`)\n .then((res)=>{\n commit('setZoomMeetingInfo', res.data)\n resolve(res)\n })\n .catch((e)=>{reject(e)})\n })\n },\n //update linguist's status in the current session\n updateLinguistStatus({ commit }, data ={}){\n let {latestRecord , connectionType, servicePlatformMeta } = data\n let now = new Date().toISOString()\n let {sessionID , id} = latestRecord\n const payload = {\n \"source\": \"solo_api\",\n \"type\": connectionType,\n \"time\": now,\n \"servicePlatformMeta\": servicePlatformMeta\n }\n return new Promise((resolve, reject)=>{\n api.post(`/v1/sessions/${sessionID}/participants/${id}/events`, payload)\n .then((res)=>{\n commit('setLinguistStatus', res.data)\n resolve(res.data)\n })\n .catch(reject)\n })\n },\n //update linguist's participants in the current session\n updateLinguistParticipants({ dispatch }, data = {}) {\n let { latestRecord, servicePlatformMeta } = data\n let { sessionID, id } = latestRecord\n const payload = {\n \"servicePlatformMeta\": servicePlatformMeta\n }\n return new Promise((resolve, reject) => {\n api.patch(`/v1/sessions/${sessionID}/participants/${id}`, payload)\n .then((res) => {\n dispatch('updateLinguistStatus', data)\n resolve(res.data)\n })\n .catch(reject)\n })\n },\n setSessionID({ commit }, sessionID) {\n commit(\"setSessionID\", sessionID);\n },\n // eslint-disable-next-line\n getSessionStatus({ }, data) {\n return new Promise((resolve, reject) => {\n api\n .get(`/v1/sessions/${data.sessionID}/status`)\n .then(res => {\n resolve(res.data);\n })\n .catch(reject)\n })\n }\n};\n\nexport const createNewModule = () => ({\n state: initState,\n getters,\n mutations,\n actions\n});\n\nexport default {\n namespaced: true,\n state: initState,\n getters,\n mutations,\n actions\n};\n","import { api } from \"@/services/api\";\n\nconst initState = () => ({\n linguistPositiveFlagOptions: [],\n linguistNegativeFlagOptions: [],\n customerPositiveFlagOptions: [],\n customerNegativeFlagOptions: [],\n customerConnectionPositiveFlagsOptions: [],\n customerConnnectionNegativeFlagsOptions: [],\n linguistConnectionPositiveFlagsOptions: [],\n linguistConnnectionNegativeFlagsOptions: [],\n});\nconst getters = {};\nconst actions = {\n getRatingTags({ commit }, data) {\n return new Promise((resolve, reject) => {\n let apiurl = `v1/sessions/${data.sessionID}/rating-tags`;\n return api\n .get(apiurl)\n .then((res) => {\n let results = res.data;\n let linguistRatingNegativeTags = results.person[\"1\"].filter((x) => {\n if (x.role === \"linguist\") {\n return x;\n }\n });\n let linguistRatingPositiveTags = results.person[\"5\"].filter((x) => {\n if (x.role === \"linguist\") {\n return x;\n }\n });\n let customerRatingNegativeTags = results.person[\"1\"].filter((x) => {\n if (x.role === \"creator\") {\n return x;\n }\n });\n let customerRatingPositiveTags = results.person[\"5\"].filter((x) => {\n if (x.role === \"creator\") {\n return x;\n }\n });\n let linguistConnectionRatingNegativeTags = results.technical[\"1\"].filter(x => {\n if(x.role === 'linguist'){\n return x;\n }\n });\n let linguistConnectionRatingPositiveTags = results.technical[\"5\"].filter(x => {\n if(x.role === 'linguist'){\n return x;\n }\n });\n let customerConnectionRatingNegativeTags = results.technical[\"1\"].filter(x => {\n if(x.role === 'creator'){\n return x;\n }\n });\n let customerConnectionRatingPositiveTags = results.technical[\"5\"].filter(x => {\n if(x.role === 'creator'){\n return x;\n }\n });\n commit(\"updateTags\", {\n data: linguistRatingPositiveTags,\n key: \"linguist-positive\",\n });\n commit(\"updateTags\", {\n data: linguistRatingNegativeTags,\n key: \"linguist-negative\",\n });\n commit(\"updateTags\", {\n data: customerRatingNegativeTags,\n key: \"customer-negative\",\n });\n commit(\"updateTags\", {\n data: customerRatingPositiveTags,\n key: \"customer-positive\",\n });\n commit(\"updateTags\", {\n data: linguistConnectionRatingPositiveTags,\n key: \"linguist-connection-positive\",\n });\n commit(\"updateTags\", {\n data: linguistConnectionRatingNegativeTags,\n key: \"linguist-connection-negative\",\n });\n commit(\"updateTags\", {\n data: customerConnectionRatingPositiveTags,\n key: \"customer-connection-positive\",\n });\n commit(\"updateTags\", {\n data: customerConnectionRatingNegativeTags,\n key: \"customer-connection-negative\",\n });\n resolve(res.data);\n })\n .catch((e) => {\n console.log(e);\n reject(e);\n });\n });\n },\n submitRating({ commit }, data) {\n return new Promise((resolve, reject) => {\n api\n .post(`/v1/sessions/${data.sessionID}/ratings`, data.payload)\n .then(res => {\n resolve(res);\n })\n commit()\n .catch((e) => {\n reject(e);\n })\n })\n }\n};\nconst mutations = {\n updateTags(state, payload) {\n switch (payload.key) {\n case \"linguist-positive\":\n state.linguistPositiveFlagOptions = [...payload.data];\n break;\n case \"linguist-negative\":\n state.linguistNegativeFlagOptions = [...payload.data];\n break;\n case \"customer-positive\":\n state.customerPositiveFlagOptions = [...payload.data];\n break;\n case \"customer-negative\":\n state.customerNegativeFlagOptions = [...payload.data];\n break;\n case \"linguist-connection-positive\":\n state.linguistConnectionPositiveFlagsOptions = [...payload.data];\n break;\n case \"linguist-connection-negative\":\n state.linguistConnectionNegativeFlagsOptions = [...payload.data];\n break;\n case \"customer-connection-positive\":\n state.customerConnectionPositiveFlagsOptions = [...payload.data];\n break;\n case \"customer-connection-negative\":\n state.customerConnectionNegativeFlagsOptions = [...payload.data];\n break;\n default:\n return state;\n }\n },\n};\nexport default {\n namespaced: true,\n state: initState,\n getters,\n mutations,\n actions,\n};","/* eslint-disable */\nimport { api } from '@/services/api'\nimport { resetState } from '@/store/helpers'\n\n\nconst initState = () => ({\n organization: null,\n members: [],\n package: null,\n billingAccount: null,\n\n // for options during user management\n memberSlotsHasMax: false,\n memberSlotsTotal: null,\n memberSlotsRemaining: null,\n});\n\nconst mutations = {\n reset(state) {\n resetState(state, initState())\n },\n setOrganization(state, org) {\n state.organization = org\n\n // process the org billing account, member/package config\n if (!!org.billingAccount) {\n state.billingAccount = org.billingAccount\n\n // make sure we have a package for the org set\n if (!!org.billingAccount.autoreloadPackage) {\n state.package = org.billingAccount.autoreloadPackage\n } else if (!!org.billingAccount.subscriptionPackage) {\n state.package = org.billingAccount.subscriptionPackage\n } else {\n state.package = null\n }\n\n // check for accountConfig for member management\n if (!!org.billingAccount?.featureConfig?.orgMemberManagement?.members?.maxAllowed) {\n if (org.billingAccount?.featureConfig?.orgMemberManagement?.members?.maxAllowed > 1) {\n state.memberSlotsHasMax = true\n state.memberSlotsTotal = org.billingAccount?.featureConfig?.orgMemberManagement?.members?.maxAllowed\n state.memberSlotsRemaining = state.memberSlotsTotal - state.members.length\n } else {\n state.memberSlotsHasMax = false\n state.memberSlotsTotal = null\n state.memberSlotsRemaining = null\n }\n } else {\n state.memberSlotsHasMax = false\n state.memberSlotsTotal = null\n state.memberSlotsRemaining = null\n }\n }\n },\n setMembers(state, members) {\n state.members = members.filter(member => !!member.flags ? !member.flags.includes(\"org:member:removed\") : member)\n\n if (state.memberSlotsHasMax) {\n state.memberSlotsRemaining = state.memberSlotsTotal - state.members.length\n }\n }\n}\n\nconst getters = {\n baseURL (state) {\n return !!state.organization ? `/v1/organizations/${state.organization.id}` : ''\n },\n getMembers (state) {\n return state.members;\n },\n orgName(state) {\n return state?.organization ? state.organization.name : \"\";\n },\n}\n\nconst actions = {\n initializeOrganizationByID({commit}, payload) {\n return new Promise((resolve, reject) => {\n api.get(`/v1/organizations/${payload.id}`).then((res) => {\n commit('setOrganization', res.data)\n resolve(res.data)\n }).catch(reject)\n })\n },\n\n refresh({commit, getters}) {\n return new Promise((resolve, reject) => {\n api.get(getters.baseURL).then((res) => {\n commit('setOrganization', res.data)\n resolve(res.data)\n }).catch(reject)\n })\n },\n\n // load all members\n loadMembers({commit, getters}) {\n return new Promise((resolve, reject) => {\n api.get(getters.baseURL+'/memberships').then((res) => {\n commit('setMembers', res.data?.results)\n resolve(res.data?.results)\n }).catch(reject)\n })\n },\n}\n\nexport default {\n namespaced: true,\n state: initState,\n mutations,\n actions,\n getters,\n}\n","import { createStore } from 'vuex'\nimport user from '@/store/user'\nimport auth from '@/store/auth'\nimport session from '@/store/session'\nimport ratings from '@/store/ratings'\nimport organization from '@/store/organization'\n\nexport default createStore({\n state: {\n recentSceondaryLanguages: { maxLength: 10 },\n zoomContext: null,\n zoomMeetingId: null,\n },\n\n mutations: {\n setRecentlyUsedLanguages(state, val){\n state.recentSceondaryLanguages = val;\n },\n setZoomContext(state, val) {\n state.zoomContext = val;\n },\n setZoomMeetingId(state, val) {\n state.zoomMeetingId = val;\n }\n },\n\n actions: {\n updateListOfRecentlyUsedSecondaryLanguages({commit, state}, payload){\n let recentLanguages = state.recentSceondaryLanguages;\n const secondaryLangCode = payload.secondaryLangCode;\n const language = {\n secondaryLangCode,\n timestamp: new Date(payload.timestamp).getTime(),\n };\n recentLanguages = { ...recentLanguages, [secondaryLangCode]: language };\n let languages = Object.values(recentLanguages);\n languages = languages.filter(l => typeof l === 'object');\n languages.sort((x, y) => y.timestamp - x.timestamp);\n recentLanguages = { maxLength: 10 };\n languages.forEach((l, i) => {\n if (i < 10)\n recentLanguages = { ...recentLanguages, [l.secondaryLangCode]: l };\n });\n commit(\"setRecentlyUsedLanguages\", recentLanguages);\n },\n updateZoomContext({ commit }, payload) {\n commit(\"setZoomContext\", payload);\n },\n updateZoomMeetingId({ commit }, payload) {\n commit(\"setZoomMeetingId\", payload);\n },\n },\n getters: {\n zoomContext: state => state.zoomContext,\n zoomMeetingId: state => state.zoomMeetingId,\n },\n\n modules: {\n user,\n auth,\n session,\n ratings,\n organization\n }\n})\n\n","import { createRouter, createWebHistory } from 'vue-router'\nimport store from '../store'\n\nconst routes = [\n {\n path: '/',\n name: 'HomePage',\n component: () => import(/* webpackChunkName: \"home\" */ '@/views/HomePage.vue'),\n meta: {\n auth: 'private'\n }\n },\n {\n path: '/connect',\n name: 'Connect',\n component: () => import(/* webpackChunkName: \"connect\" */ '@/views/Connect.vue'),\n meta: {\n auth: 'private'\n }\n },\n {\n path: '/permissionPage',\n name: 'PermissionPage',\n component: () => import(/* webpackChunkName: \"perm\" */ '@/views/PermissionPage.vue'),\n meta: {\n auth: 'private'\n }\n },\n {\n path: '/linguistConnect',\n name: 'LinguistConnect',\n component: () => import(/* webpackChunkName: \"linguistConnect\" */ '@/views/LinguistConnect.vue'),\n meta: {\n auth: 'private'\n }\n },\n {\n path: '/login',\n name: 'Login',\n component: () => import(/* webpackChunkName: \"login\" */ '@/views/auth/Login.vue'),\n meta: {\n auth: 'public'\n }\n },\n {\n path: '/logout',\n name: 'Logout',\n async beforeEnter(from, to, next) {\n await store.dispatch('auth/logout');\n next('/login')\n },\n meta: {\n auth: 'public'\n }\n },\n {\n path: \"/:catchAll(.*)\",\n name: 'NotFound',\n component: () => import(/* webpackChunkName: \"notfound\" */ '@/views/NotFound.vue'),\n meta: {\n auth: 'public'\n }\n },\n {\n path: '/maintenanceScreen',\n name: 'MaintenanceScreen',\n component: () => import(/* webpackChunkName: \"connect\" */ '@/views/MaintenanceScreen.vue'),\n meta: {\n auth: 'private'\n }\n }\n]\n\nconst router = createRouter({\n mode: 'history',\n history: createWebHistory(),\n routes\n})\n\n// global auth checking, routes can specify an auth check function, which receives a user\n// if the authenticated user is set, it gets passed to that function\nrouter.beforeEach((to, from, next) => {\n let isAuthenticated = store.state.auth.authenticated;\n if (to.meta.auth == \"private\") {\n if (!isAuthenticated) {\n next(\"/login\")\n } else {\n next();\n }\n } else {\n if (isAuthenticated && to.name == \"Login\") {\n next(\"/\")\n } else {\n next();\n }\n\n }\n})\n\n\nexport default router\n","","import { render } from \"./App.vue?vue&type=template&id=7d40e8f4&lang=pug\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=7d40e8f4&lang=scss\"\n\nimport exportComponent from \"../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import vuetify from './plugins/vuetify'\nimport store from './store'\nimport router from './router'\nimport en from './i18n/en.js'\nimport { SENTRY_DSN , SENTRY_ENVIRONMENT , VERSION} from \"@/config/constants\";\nimport { createApp } from \"vue\"\nimport App from './App.vue'\n\nimport './assets/css/main.styl'\n\nimport { createI18n } from \"vue-i18n\";\n\nimport * as Sentry from \"@sentry/vue\";\nimport { BrowserTracing } from \"@sentry/tracing\";\n\nconst app = createApp(App)\n\nconst i18n = createI18n({\n legacy: false,\n locale: \"en\",\n globalInjection: true,\n messages: {\n en\n }\n});\n\nSentry.init({\n app,\n dsn: SENTRY_DSN,\n environment: SENTRY_ENVIRONMENT,\n release: `solo-zoom-app@${VERSION}`,\n integrations: [\n new BrowserTracing({\n routingInstrumentation: Sentry.vueRouterInstrumentation(router),\n tracingOrigins: [\"https://jeeniezoom.pt-staging.com\", \"https://zoom.apps.dev.jeenie.com\", \"https://zoom.apps.jeenie.com\", /^\\//],\n }),\n ],\n // Set tracesSampleRate to 1.0 to capture 100%\n // of transactions for performance monitoring.\n // We recommend adjusting this value in production\n tracesSampleRate: 1.0,\n});\nSentry.setTag(\"version\", VERSION); //for specifying app version\n\napp.use(i18n).use(router).use(vuetify).use(store).mount(\"#app\");\n","import axios from 'axios'\nimport {VERSION, API_URL} from '@/config/constants'\nimport { i18n } from '@/i18n'\n\nlet client = axios.create({\n baseURL: API_URL,\n headers: {\n 'X-Solo-Web-Version': VERSION\n }\n})\nexport {client as api}\n\nlet docs = axios.create()\nexport {docs}\n\n// TODO: check for API \"401\" response, ensure redirect to \"/login\"\n// TODO: figure out how to check for new deployments... may need to poll a server route?\n// TODO: setTimeout to use \"refresh\" token\n\n// map of backend api error strings to i18n keys\nconst apiErrorsI18N = {\n 'Email not found': 'loginErrors.noEmail',\n 'Password incorrect': 'loginErrors.wrongPassword',\n 'linguist profile not allowed on zoom app': 'loginErrors.linguistNotAllowed',\n \"couldn't fetch the scheduled meetings\" : 'session.create.error.reInstall',\n 'device missing zoom refresh token': 'session.create.error.reInstall',\n 'zoom user id not found: pg: no rows in result set': 'session.create.error.reLogin',\n 'no meeting found': 'session.create.error.noMeeting',\n 'payment details required': 'session.create.error.noPaymentMethod',\n 'There was an error logging out': 'auth.logoutError',\n// \"both email and password required\": \"auth.loginError\",\n// \"user not found\": \"auth.noUserError\",\n// \"Email not found\": \"auth.noEmailError\",\n// \"Password incorrect\": \"auth.passwordIncorrectError\",\n// \"authentication required\": \"auth.authRequiredError\",\n// \"user already exists\": \"auth.userExistsError\",\n// \"email already exists\": \"profile.referrer.userExists\",\n// \"cannot find specified token\": \"customerRegistration.tokenMissingError\",\n// \"Account with this email already exists\": \"memberManagement.add.errAlreadyExists\",\n}\n\n// this is primarily used by the vuex store auth module to update\n// the jwt token as needed\nfunction setAuthToken(str) {\n if (str == null) {\n delete client.defaults.headers.common['Authorization']\n } else {\n client.defaults.headers.common['Authorization'] = 'Bearer ' + str\n }\n}\n\n// this will get set dynamically depending on whether or not a user is logged in\nlet responseInterceptor = null\nfunction setAuthFailureHandler(resFN, errFN) {\n responseInterceptor = client.interceptors.response.use(resFN, errFN)\n}\n\nfunction clearAuthFailureHandler() {\n client.interceptors.response.eject(responseInterceptor)\n}\n\n// handle error responses and try to extract\n// an error message from the body if present,\n// otherwise fall back to a default error message\nfunction translateApiError(e, i18nDefaultKey) {\n // some api error responses might be changed through a series of\n // promises - so it's possible that the return has already\n // been turned into a string\n if (\"string\" == typeof e) {\n if (apiErrorsI18N[e]) {\n return i18n.global.t(apiErrorsI18N[e])\n }\n if (i18nDefaultKey) {\n return i18n.global.t(i18nDefaultKey)\n }\n return e\n }\n\n // otherwise check for a response error data strcture\n if (e.response && e.response.data && e.response.data.errors) {\n let key = e.response.data.errors[0]\n if (apiErrorsI18N[key] != null || apiErrorsI18N[key] != undefined) {\n return i18n.global.t(apiErrorsI18N[key])\n } else {\n return e.response.data.errors[0]\n }\n }\n\n if (i18nDefaultKey != null || i18nDefaultKey != undefined) {\n return i18n.global.t(i18nDefaultKey)\n }\n\n return i18n.global.t('loginErrors.default')\n}\n\nexport {\n setAuthToken,\n setAuthFailureHandler,\n clearAuthFailureHandler,\n translateApiError\n}\n","\n","import script from \"./AppMixin.vue?vue&type=script&lang=js\"\nexport * from \"./AppMixin.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + ({\"178\":\"notfound\",\"329\":\"perm\",\"371\":\"connect\",\"934\":\"linguistConnect\",\"962\":\"home\",\"966\":\"login\"}[chunkId] || chunkId) + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + {\"329\":\"perm\",\"371\":\"connect\",\"934\":\"linguistConnect\",\"962\":\"home\",\"966\":\"login\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"app:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/dist/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t524: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"329\":1,\"371\":1,\"934\":1,\"962\":1,\"966\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkapp\"] = self[\"webpackChunkapp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(5835); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","window","APP_CONFIG","assetUrl","API_URL","apiUrl","DEFAULT_LOCALE","stripeApiKey","tokboxApiKey","deeplinkBranchURL","locale","VERSION","version","SENTRY_DSN","sentryDSN","SENTRY_ENVIRONMENT","sentryEnvironment","REDIRECT_URL","redirectURL","WEB_APP_URL","webAppURL","SCHEDULE","MIN_DURATION","MAX_DURATION","PRE_SCHEDULE_LIMIT","DURATION","MILLISECOND","SECOND","MINUTE","HOUR","DAY","CACHE","CLIENT_CONFIG","JWT_REFRESH_INTERVAL","featureFlagIsBlockedUser","featureFlagActiveLinguist","featureFlagProspectiveLinguist","featureFlagTestCallLinguist","defaultAvatarURL","PRIMARY_LANG_CODES","PRIMARY_LANGUAGES","eng","ase","cmn","yue","arz","apd","tois1237","jpn","spa","deu","fra","arb","aao","afb","acm","azj","azb","por","rus","ita","kor","nld","swe","nor","tur","pol","dan","fin","tha","heb","ind","pes","prs","hin","ces","zsm","pus","sin","mah","ell","hun","ron","vie","ben","cat","fil","tam","slk","kaz","ltz","kur","ukr","afr","hrv","glg","slv","lit","ckb","jav","urd","sqi","tel","srp","yor","hau","bul","uzb","swa","eus","bel","tat","amh","bos","mya","kea","guj","hat","hmn","khm","lao","npi","som","tgl","tir","lin","orm","ksw","eky","wol","kin","jam","quc","mam","tzo","kjb","mon","run","pan","que","knj","mixt1427","kek","aym","cak","ixi","acr","cac","yua","zap","poh","poc","usp","agu","nav","cnh","ibo","ceb","zom","rhg","mal","cho","kat","chk","kos","pon","ixj","ixl","hop","haz","aiq","tuk","bal","brh","sot","zul","mar","kan","ori","asm","mai","kun","yid","ugn","xki","jac","aar","skr","hnd","hno","arm","ctu","kbp","kon","tzh","syl","ful","aka","bam","tar","tac","tzj","anu","qug","qxr","qvi","ahi","kro","triq1251","quz","toj","csn","quv","snk","pga","shu","arq","apc","gsw","nds","gcr","psr","nob","nno","hif","psp","hac","zza","kmr","sdh","hbs","bqn","swc","ghk","blk","kvu","kyu","fao","isl","lav","fas","bak","bre","cos","div","est","fry","kal","iku","gle","kok","kir","dsb","mkd","mlt","mri","arn","moh","oci","roh","smn","smj","sme","sms","sma","san","gla","nso","tsn","syc","tgk","ber","hsb","uig","cym","sah","iii","bfi","isg","ncs","ewe","gaa","twi","kri","fat","gan","fzho","hak","hokk1242","hsn","pcm","smo","ton","fij","tvl","tpi","gil","sna","grb","syr","ban","bis","ilo","nau","niu","pkp","sun","tah","tkl","pag","nan","fcs","lat","hil","ace","ach","esu","xho","chao1238","ctd","zyp","kdh","din","dyo","bin","gex","gug","hain1238","har","mey","lom","clt","ziw","mkw","kik","jing1262","jra","lug","luo","ymm","mnk","mrh","hlt","myb","men","ium","hna","cnr","nus","wes","fuc","sez","chen1267","sus","bsq","cal","cha","cfm","als","brx","doi","kas","mni","sat","snd","tcs","ulk","wim","mwp","kky","pis","wmt","ggd","yuul1239","new","apa","beq","nya","sfs","nde","ssw","tso","ven","toi","tog","lua","mlg","lrl","mfz","tdt","ood","sag","tig","scn","nyn","kac","spy","kln","sgc","lan","enb","pko","kpz","axe","aly","eth","chat1268","rki","ade","bmb","bua","cre","dgr","kqo","gej","gom","pdu","tod","kxf","mls","dty","pau","pam","pif","krn","kvy","shn","czt","blt","bfz","rkm","agq","emk","aee","glh","psi","psh","ibg","lir","ssy","mlq","pap","tem","krw","waci1238","arc","krj","haw","raj","bete1265","dzo","bgc","bho","mfs","bzj","trf","limo1249","bjs","ktb","hfy","kab","mkj","hgm","dag","ryu","war","csf","nzi","csg","bzs","wuu","ouji1238","xiam1236","bhh","bai","nwe","mos","ssp","cbi","kno","kfr","tiv","byv","mwr","kqs","kss","gru","stv","zwa","ior","mvz","sgw","phr","aaa","gkn","wln","chim1312","ghl","pov","kcm","guz","nap","ning1280","tsz","baju1245","lus","cab","tcf","tpc","tpl","tpx","ttc","nah","amu","azm","azg","czn","cly","cya","dyu","ymn","fuf","langForDuration","SESSION","TYPE","IMMEDIATE_VIRTUAL","SCHEDULED_VIRTUAL","MATCH","FIRST_AVAILABLE","MANUAL","PLATFORM","JEENIE","GOOGLE_MEET","ZOOM","DOXY","MS_TEAMS","WHATSAPP","RINGCENTRAL","SKYPE","PSTN","UNKNOWN","START","NORMAL","RECONNECT","RETRY_CANCEL","RETRY_FAILURE","RETRY_TIMEOUT","RETRY_DISCONNECT","END","DONE","CANCEL","TIMEOUT","TIME_EXCEEDED","BALANCE_EXCEEDED","FAILURE_LOCAL","FAILURE_REMOTE","DISCONNECT_LOCAL","DISCONNECT_REMOTE","ABORTED","LEAVE","TIME","CONNECT","END_SOON_WARNING","BALANCE_WARNING","PARTICIPANT","ROLE","LINGUIST","CREATOR","OBSERVER","MOBILE","WEB","STATUS","CONNECTED","CONNECTING","DISCONNECTED","STATUS_REASON","INVITE_SENT","INVITE_FAILED_UNAVAILABLE","INVITE_FAILED_ERROR","PARTICIPANT_DISCONNECTED","PARTICIPANT_REMOVED","OFF_PLATFORM","MEETING_TYPE","INSTANT_MEETING","SCHEDULED_MEETING","RECURRING_MEETING_NO_FIXED_TIME","PMI_MEETING","RECURRING_MEETING_FIXED_TIME","USER_TYPE","BASIC","LICENSED","ON_PREM","NONE","APPROVAL_TYPE","AUTOMATICALLY_APPROVE","MANUALLY_APPROVE","NO_REGISTRATION_REQUIRED","form","validation","required","min","max","minCharacters","maxCharacters","minDigits","maxDigits","tooShort","tooLong","invalidNumber","charLengthRuleForTextArea","spacesNotAllowed","numbersNotAllowed","specialCharacters","pattern","file","select","selectPhoto","typeSearch","actions","choose","continue","goBack","saveChanges","gobackBtn","rescheduleCallBtn","copiedToClipboard","connect","next","loginForm","loginErrors","menu","logout","confirm","auth","loginError","logoutError","deviceError","defaultError","noUserError","noEmailError","passwordIncorrectError","authRequiredError","registrationError","userExistsError","history","subheader","recentCalls","noData","seeMore","table","headers","createdAt","endedAt","createdBy","language","duration","linguist","user","userToTakeCall","dateAndDuration","action","dateAndTime","filters","all","selected","placeholder","daterange","mainScreen","noConnection","processing","callCancelled","partnerInterpreter","moreDetails","reportIssue","report","actionRequired","success","minute270ValidationMessage","callDetail","label","languages","addRating","cancelPolicyLabel","cancelPolicy","cancelPolicySecond","addDuration","callType","scenario","callPlatform","scheduled","immediateVirtual","notRated","noRating","ratings","addDurationDialog","longCall","addCallTime","thanks","reportIssueDialog","issueExperience","technicalDifficulty","lateForCall","lateForCallCustomer","incorrectDuration","callShowProcessing","abuse","other","reportAbuseDialog","reportingBehavior","accountSuspension","props","title","textLabel","textAreaPlaceHolder","reportOtherDialog","propsDefaultValues","reportCallShowAsProcessingDialog","working","longerToProcess","finalizedPayments","letUsKnow","btnText","reportIncorrectDurationDialog","line","reportLateForCallDialog","interpreterText","clientText","textPlaceHolder","sorry","minuteValidationMessage","reportTechIssuesDialog","canTell","issues","noAudio","noVideo","poorAudio","poorVideo","callDropped","lags","download","subtitle","dateRange","userFilter","footer","notApplied","rowSingular","rowPlural","zoom","startMeeting","startMeetingDisabled","requestChanges","restrictionMessages","notLicensedZoomUser","notScheduled","wrongSettings","customerRestricted","notHostOrCoHost","restricedUser","notEnterpriseJeenieUser","meetingUnassociated","disclaimer","instruction","sessionAlreadyEnded","session","create","header","error","reLogin","reInstall","noMeeting","noPaymentMethod","default","primaryLang","secondaryLang","buttons","schedule","cancellation","finish","remove","description","endNow","interpreterLeft","tip","text","participant","invite","link","by","past","information","viewHistory","connecting","timeOut","linguistJoining","note","inProgress","amountOfJeenies","callEndedFromLing","callEndedFromLingDueToNetworkIssue","end","callEnded","forYou","noUpcoming","requestChangeDescription","editDetailsDisclaimer","editDetailsDisclaimerBtn","editCallDetails","leave","beginningSoon","customer","callHappeningNow","callBeginsSoon","gender","info","genderPreference","fromDate","fromTime","from","untilDate","untilTime","topic","ccEmails","tooltip","url","schedulingFor","modify","cancel","cancelRequest","modifyRequest","changeRequestReason","requestChange","reschedule","edit","changeRequestCancel","changeRequestModify","changeRequestSuccess","changeMessagePlaceholder","late","confirmCancellation","confirmCallDetails","validations","scheduleDuration","advanceNotice","chooseLanguage","disabled","unavailableBefore","unavailableAfter","button","message","cancelLabel","cancelConfirm","cancelConfirm24","confirmCancelCall","syncCallLabel","labels","startTime","endTime","notes","placeholders","selectDate","selectTime","cancellationPolicy","customFieldDialogs","pre","headerText","formHeading","post","errorText","fields","male","female","nonbinary","nopreference","declined","notset","why","explanation","splitRatings","enjoyJeenie","feedback","lowRatingFeedback","ratedLowText","helpImproveText","metaData","textFieldPlaceholder","dropdownPlaceholder","successToast","customerRating","rateLinguist","rateCallQuality","whatGoodLinguist","whatBetterLinguist","whatGood","whatBetter","comments","commentsPlaceholder","emailverify","submit","fieldLabel","fieldRequired","fieldInvalid","successAlert","successTitle","successSpam","successTryAgain","tabsOptions","callDetails","additionalInformation","availableLocales","windowGlobal","getDevicePrimaryLocale","l","navigator","getDefaultLocale","localStorage","getItem","deviceLocale","dlcc","split","country","length","partCode","splice","fullCode","join","indexOf","currentLocale","i18n","createI18n","allowComposition","fallbackLocale","messages","en","getLocale","translateObjectProperty","obj","name","createVuetify","components","directives","theme","resetState","state","data","forEach","key","initState","isLinguist","linguistProfile","photoUpdatedAt","Date","getTime","isSignedInOnMobile","devicesLoaded","devices","billingAccounts","activeBillingAccount","clientConfig","clientConfigReloadAt","upcomingCallsData","memberships","activeOrganization","customerCallHistoryLoaded","customerCallHistory","linguistCallHistoryLoaded","linguistCallHistory","sessionChargeHistoryLoaded","sessionChargeHistory","packageChargeHistoryLoaded","packageChargeHistory","hasPaymentMethod","autoreloadMinutePackage","subscribedMinutePackage","hasUnlimitedUse","hasUnlimitedUseUntil","subscriptionPeriods","subscriptionPeriodsLoadedAt","currentSubscriptionPeriod","usagePeriods","currentUsagePeriod","packagePromoCode","availablePackagesLoaded","packagesAvailable","availablePackages","experimentalFeatureConfigLoaded","experimentalFeatureConfig","favoriteLinguists","referrerLoaded","referrer","referralTokenLoaded","referralToken","zoomUserType","linguistParticipantRecords","linguistParticipantRecordsLoaded","organizationID","showPreCallCustomFieldsDialog","showPostCallCustomFieldsDialog","featureConfig","customFieldsDefaultValues","fieldType","input","dropdown","getters","getMyState","displayName","preferredName","firstName","lastName","avatarUrl","avatarURL","isBlockedUser","featureFlags","appConstants","isOrgOwner","includes","isLinguistTwo","getCustomFields","isPre","configType","prop","sessionMetadata","metadata","property","matchingMeta","entries","find","value","mutations","reset","setUser","setBillingAccounts","accounts","updateFeatureConfigFlag","payload","updatePreCallCustomFieldsFlag","updatePostCallCustomFieldsFlag","setActiveBillingAccount","account","paymentMethods","unlimitedUseUntil","cp","getCurrentPeriod","autoreloadPackage","subscribedPackage","setClientConfig","conf","reloadAt","now","setOrganizationMemberships","activeMembership","setZoomUserType","userStatus","type","setLinguistParticipantRecords","records","setCustomFieldsDefaultValues","ccfDefaultValues","refresh","commit","dispatch","userId","Promise","reject","userRes","api","get","then","res","force","catch","loadBillingAccounts","loadBillingAccount","billingAccountID","properties","preproperties","postproperties","jsonSchema","fieldsJsonSchema","fieldValue","deprecated","oneOf","inputType","global","t","x","const","requiredFields","metaKey","metaValue","push","tempFieldValue","contexts","element","billingAccount","orgMemberManagement","customFieldsManagement","enabled","preFeatureConfig","postFeatureConfig","fetchCustomFieldDefaultValues","scenarioId","loadBillingAccountConfig","loadUpcomingCalls","moment","subtract","utc","role","params","format","urlFilters","concat","sessmap","sessions","sess","values","sort","a","b","ta","scheduledBeginAt","tb","unix","loadOrganizationMemberships","getZoomUserType","getLinguistParticipantData","participants","getLinguistParticipantDataForEndedSessions","loadCallHistory","currentDate","loadRecentlyUsedLanguages","arrayUniqueByKey","Map","reverse","item","secondaryLangCode","timestamp","happensAt","root","getUserInCallStatus","rootState","meetingId","activeSession","getActiveSession","deviceId","sessionID","loadSchdeuledCallHistory","meetingInfo","results","getActiveScheduledSession","meetingID","submitFeedback","namespaced","periods","p","begin","beginAt","endAt","unlimitedUse","isBefore","isAfter","deviceID","activeSessions","s","servicePlatform","servicePlatformSessionID","scheduledEndAt","servicePlatformMeta","createDevice","config","match","document","cookie","RegExp","clientPlatformHost","product","deviceOS","deviceOSVersion","uaParser","userAgent","os","browserInfo","browserVersion","deviceName","deviceType","webAppVersion","clientPlatform","clientPlatformVersion","ZoomToken","clientPlatformHostVersion","clientVersion","authenticated","jwtToken","refreshToken","deviceAuthenticated","lastAuthorizedAt","refreshInProgress","tokenRefreshListener","configState","initialized","fcmToken","zoomSdkConfig","setAuthToken","removeItem","authSuccess","parsedJwt","token","parseJwt","device","setItem","isInProgress","authFailed","err","restoreToken","setTokenRefreshListener","listener","clearToken","setNotificationToken","setClientPlatformInfo","initialize","setupTokenRefreshListener","doc","hidden","addEventListener","clearAuthFailureHandler","setSentryUser","setTimeout","console","setAuthFailureHandler","finally","authorizeDevice","isProxy","toRaw","updateDevice","patch","login","zoomContext","email","trim","notificationToken","handleAuthFailure","response","reqConfig","status","Authorization","request","translateApiError","base64Url","base64","replace","jsonPayload","decodeURIComponent","atob","c","charCodeAt","toString","slice","JSON","parse","Sentry","participantID","creating","created","began","ended","ending","endedLocally","endedRemotely","connectionTimer","sessionTimer","running","events","participantMap","remoteUser","inviteID","isIncomingCallActive","zoomMeetingInfo","linguistStatusInformation","baseURL","localParticipant","linguistParticipant","assign","startCreatingSession","sessionCreated","sessionCreateOrJoinFailed","sessionEndingLocally","sessionEndedLocally","endReason","reason","sessionEndedRemotely","setParticipants","setRemoteUser","setZoomMeetingInfo","setLinguistStatus","setSessionID","val","createNewSession","createRes","loadParticipants","r","newIDs","promises","removed","loadParticipant","endSessionLocally","put","createZoomMeeting","getZoomMeetingInfo","updateLinguistStatus","latestRecord","connectionType","toISOString","updateLinguistParticipants","getSessionStatus","linguistPositiveFlagOptions","linguistNegativeFlagOptions","customerPositiveFlagOptions","customerNegativeFlagOptions","customerConnectionPositiveFlagsOptions","customerConnnectionNegativeFlagsOptions","linguistConnectionPositiveFlagsOptions","linguistConnnectionNegativeFlagsOptions","getRatingTags","apiurl","linguistRatingNegativeTags","person","filter","linguistRatingPositiveTags","customerRatingNegativeTags","customerRatingPositiveTags","linguistConnectionRatingNegativeTags","technical","linguistConnectionRatingPositiveTags","customerConnectionRatingNegativeTags","customerConnectionRatingPositiveTags","log","submitRating","updateTags","linguistConnectionNegativeFlagsOptions","customerConnectionNegativeFlagsOptions","organization","members","package","memberSlotsHasMax","memberSlotsTotal","memberSlotsRemaining","setOrganization","org","subscriptionPackage","maxAllowed","setMembers","member","flags","getMembers","orgName","initializeOrganizationByID","loadMembers","createStore","recentSceondaryLanguages","maxLength","zoomMeetingId","setRecentlyUsedLanguages","setZoomContext","setZoomMeetingId","updateListOfRecentlyUsedSecondaryLanguages","recentLanguages","y","i","updateZoomContext","updateZoomMeetingId","modules","routes","path","component","meta","beforeEnter","to","store","router","createRouter","mode","createWebHistory","beforeEach","isAuthenticated","_createBlock","_component_router_view","mixins","AppMixin","watch","$router","$store","ensureAuth","configureZoomApp","querySelector","className","context","zoomSdk","getUserContext","result","getzoomMeetingId","mounted","computed","mapState","mapGetters","methods","configResponse","capabilities","runningContext","configLoaded","getMeetingContext","__exports__","render","app","createApp","App","legacy","globalInjection","dsn","environment","release","integrations","BrowserTracing","routingInstrumentation","tracingOrigins","tracesSampleRate","use","vuetify","mount","client","axios","apiErrorsI18N","str","defaults","common","responseInterceptor","resFN","errFN","interceptors","eject","i18nDefaultKey","errors","undefined","loaded","this","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","call","m","amdO","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","n","getter","__esModule","d","definition","defineProperty","enumerable","f","chunkId","reduce","u","miniCssF","g","globalThis","Function","hmd","children","set","prototype","hasOwnProperty","dataWebpackPrefix","done","script","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","target","head","appendChild","Symbol","toStringTag","nmd","paths","createStylesheet","fullhref","oldTag","linkTag","rel","nonce","onLinkComplete","errorType","realHref","href","insertBefore","nextSibling","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}