Няма описание
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

outlook-web-16.01.debug.js 420KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041
  1. /* Outlook web application specific API library */
  2. /* Version: 16.0.7511.3000 */
  3. /*
  4. Copyright (c) Microsoft Corporation. All rights reserved.
  5. */
  6. /*
  7. Your use of this file is governed by the Microsoft Services Agreement http://go.microsoft.com/fwlink/?LinkId=266419.
  8. */
  9. var __extends=this && this.__extends || function(d, b)
  10. {
  11. for(var p in b)
  12. if(b.hasOwnProperty(p))
  13. d[p]=b[p];
  14. function __()
  15. {
  16. this.constructor=d
  17. }
  18. d.prototype=b===null ? Object.create(b) : (__.prototype=b.prototype,new __)
  19. };
  20. var OfficeExt;
  21. (function(OfficeExt)
  22. {
  23. var MicrosoftAjaxFactory=function()
  24. {
  25. function MicrosoftAjaxFactory(){}
  26. MicrosoftAjaxFactory.prototype.isMsAjaxLoaded=function()
  27. {
  28. if(typeof Sys !=="undefined" && typeof Type !=="undefined" && Sys.StringBuilder && typeof Sys.StringBuilder==="function" && Type.registerNamespace && typeof Type.registerNamespace==="function" && Type.registerClass && typeof Type.registerClass==="function" && typeof Function._validateParams==="function" && Sys.Serialization && Sys.Serialization.JavaScriptSerializer && typeof Sys.Serialization.JavaScriptSerializer.serialize==="function")
  29. return true;
  30. else
  31. return false
  32. };
  33. MicrosoftAjaxFactory.prototype.loadMsAjaxFull=function(callback)
  34. {
  35. var msAjaxCDNPath=(window.location.protocol.toLowerCase()==="https:" ? "https:" : "http:")+"//ajax.aspnetcdn.com/ajax/3.5/MicrosoftAjax.js";
  36. OSF.OUtil.loadScript(msAjaxCDNPath,callback)
  37. };
  38. Object.defineProperty(MicrosoftAjaxFactory.prototype,"msAjaxError",{
  39. get: function()
  40. {
  41. if(this._msAjaxError==null && this.isMsAjaxLoaded())
  42. this._msAjaxError=Error;
  43. return this._msAjaxError
  44. },
  45. set: function(errorClass)
  46. {
  47. this._msAjaxError=errorClass
  48. },
  49. enumerable: true,
  50. configurable: true
  51. });
  52. Object.defineProperty(MicrosoftAjaxFactory.prototype,"msAjaxSerializer",{
  53. get: function()
  54. {
  55. if(this._msAjaxSerializer==null && this.isMsAjaxLoaded())
  56. this._msAjaxSerializer=Sys.Serialization.JavaScriptSerializer;
  57. return this._msAjaxSerializer
  58. },
  59. set: function(serializerClass)
  60. {
  61. this._msAjaxSerializer=serializerClass
  62. },
  63. enumerable: true,
  64. configurable: true
  65. });
  66. Object.defineProperty(MicrosoftAjaxFactory.prototype,"msAjaxString",{
  67. get: function()
  68. {
  69. if(this._msAjaxString==null && this.isMsAjaxLoaded())
  70. this._msAjaxSerializer=String;
  71. return this._msAjaxString
  72. },
  73. set: function(stringClass)
  74. {
  75. this._msAjaxString=stringClass
  76. },
  77. enumerable: true,
  78. configurable: true
  79. });
  80. Object.defineProperty(MicrosoftAjaxFactory.prototype,"msAjaxDebug",{
  81. get: function()
  82. {
  83. if(this._msAjaxDebug==null && this.isMsAjaxLoaded())
  84. this._msAjaxDebug=Sys.Debug;
  85. return this._msAjaxDebug
  86. },
  87. set: function(debugClass)
  88. {
  89. this._msAjaxDebug=debugClass
  90. },
  91. enumerable: true,
  92. configurable: true
  93. });
  94. return MicrosoftAjaxFactory
  95. }();
  96. OfficeExt.MicrosoftAjaxFactory=MicrosoftAjaxFactory
  97. })(OfficeExt || (OfficeExt={}));
  98. var OsfMsAjaxFactory=new OfficeExt.MicrosoftAjaxFactory;
  99. var OSF=OSF || {};
  100. var OfficeExt;
  101. (function(OfficeExt)
  102. {
  103. var SafeStorage=function()
  104. {
  105. function SafeStorage(_internalStorage)
  106. {
  107. this._internalStorage=_internalStorage
  108. }
  109. SafeStorage.prototype.getItem=function(key)
  110. {
  111. try
  112. {
  113. return this._internalStorage && this._internalStorage.getItem(key)
  114. }
  115. catch(e)
  116. {
  117. return null
  118. }
  119. };
  120. SafeStorage.prototype.setItem=function(key, data)
  121. {
  122. try
  123. {
  124. this._internalStorage && this._internalStorage.setItem(key,data)
  125. }
  126. catch(e){}
  127. };
  128. SafeStorage.prototype.clear=function()
  129. {
  130. try
  131. {
  132. this._internalStorage && this._internalStorage.clear()
  133. }
  134. catch(e){}
  135. };
  136. SafeStorage.prototype.removeItem=function(key)
  137. {
  138. try
  139. {
  140. this._internalStorage && this._internalStorage.removeItem(key)
  141. }
  142. catch(e){}
  143. };
  144. SafeStorage.prototype.getKeysWithPrefix=function(keyPrefix)
  145. {
  146. var keyList=[];
  147. try
  148. {
  149. var len=this._internalStorage && this._internalStorage.length || 0;
  150. for(var i=0; i < len; i++)
  151. {
  152. var key=this._internalStorage.key(i);
  153. if(key.indexOf(keyPrefix)===0)
  154. keyList.push(key)
  155. }
  156. }
  157. catch(e){}
  158. return keyList
  159. };
  160. return SafeStorage
  161. }();
  162. OfficeExt.SafeStorage=SafeStorage
  163. })(OfficeExt || (OfficeExt={}));
  164. OSF.XdmFieldName={
  165. ConversationUrl: "ConversationUrl",
  166. AppId: "AppId"
  167. };
  168. OSF.WindowNameItemKeys={
  169. BaseFrameName: "baseFrameName",
  170. HostInfo: "hostInfo",
  171. XdmInfo: "xdmInfo",
  172. SerializerVersion: "serializerVersion",
  173. AppContext: "appContext"
  174. };
  175. OSF.OUtil=function()
  176. {
  177. var _uniqueId=-1;
  178. var _xdmInfoKey="&_xdm_Info=";
  179. var _serializerVersionKey="&_serializer_version=";
  180. var _xdmSessionKeyPrefix="_xdm_";
  181. var _serializerVersionKeyPrefix="_serializer_version=";
  182. var _fragmentSeparator="#";
  183. var _fragmentInfoDelimiter="&";
  184. var _classN="class";
  185. var _loadedScripts={};
  186. var _defaultScriptLoadingTimeout=3e4;
  187. var _safeSessionStorage=null;
  188. var _safeLocalStorage=null;
  189. var _rndentropy=(new Date).getTime();
  190. function _random()
  191. {
  192. var nextrand=2147483647 * Math.random();
  193. nextrand ^=_rndentropy ^ (new Date).getMilliseconds() << Math.floor(Math.random() * (31 - 10));
  194. return nextrand.toString(16)
  195. }
  196. function _getSessionStorage()
  197. {
  198. if(!_safeSessionStorage)
  199. {
  200. try
  201. {
  202. var sessionStorage=window.sessionStorage
  203. }
  204. catch(ex)
  205. {
  206. sessionStorage=null
  207. }
  208. _safeSessionStorage=new OfficeExt.SafeStorage(sessionStorage)
  209. }
  210. return _safeSessionStorage
  211. }
  212. function _reOrderTabbableElements(elements)
  213. {
  214. var bucket0=[];
  215. var bucketPositive=[];
  216. var i;
  217. var len=elements.length;
  218. var ele;
  219. for(i=0; i < len; i++)
  220. {
  221. ele=elements[i];
  222. if(ele.tabIndex)
  223. {
  224. if(ele.tabIndex > 0)
  225. bucketPositive.push(ele);
  226. else if(ele.tabIndex===0)
  227. bucket0.push(ele)
  228. }
  229. else
  230. bucket0.push(ele)
  231. }
  232. bucketPositive=bucketPositive.sort(function(left, right)
  233. {
  234. var diff=left.tabIndex - right.tabIndex;
  235. if(diff===0)
  236. diff=bucketPositive.indexOf(left) - bucketPositive.indexOf(right);
  237. return diff
  238. });
  239. return[].concat(bucketPositive,bucket0)
  240. }
  241. return{
  242. set_entropy: function OSF_OUtil$set_entropy(entropy)
  243. {
  244. if(typeof entropy=="string")
  245. for(var i=0; i < entropy.length; i+=4)
  246. {
  247. var temp=0;
  248. for(var j=0; j < 4 && i+j < entropy.length; j++)
  249. temp=(temp << 8)+entropy.charCodeAt(i+j);
  250. _rndentropy ^=temp
  251. }
  252. else if(typeof entropy=="number")
  253. _rndentropy ^=entropy;
  254. else
  255. _rndentropy ^=2147483647 * Math.random();
  256. _rndentropy &=2147483647
  257. },
  258. extend: function OSF_OUtil$extend(child, parent)
  259. {
  260. var F=function(){};
  261. F.prototype=parent.prototype;
  262. child.prototype=new F;
  263. child.prototype.constructor=child;
  264. child.uber=parent.prototype;
  265. if(parent.prototype.constructor===Object.prototype.constructor)
  266. parent.prototype.constructor=parent
  267. },
  268. setNamespace: function OSF_OUtil$setNamespace(name, parent)
  269. {
  270. if(parent && name && !parent[name])
  271. parent[name]={}
  272. },
  273. unsetNamespace: function OSF_OUtil$unsetNamespace(name, parent)
  274. {
  275. if(parent && name && parent[name])
  276. delete parent[name]
  277. },
  278. loadScript: function OSF_OUtil$loadScript(url, callback, timeoutInMs)
  279. {
  280. if(url && callback)
  281. {
  282. var doc=window.document;
  283. var _loadedScriptEntry=_loadedScripts[url];
  284. if(!_loadedScriptEntry)
  285. {
  286. var script=doc.createElement("script");
  287. script.type="text/javascript";
  288. _loadedScriptEntry={
  289. loaded: false,
  290. pendingCallbacks: [callback],
  291. timer: null
  292. };
  293. _loadedScripts[url]=_loadedScriptEntry;
  294. var onLoadCallback=function OSF_OUtil_loadScript$onLoadCallback()
  295. {
  296. if(_loadedScriptEntry.timer !=null)
  297. {
  298. clearTimeout(_loadedScriptEntry.timer);
  299. delete _loadedScriptEntry.timer
  300. }
  301. _loadedScriptEntry.loaded=true;
  302. var pendingCallbackCount=_loadedScriptEntry.pendingCallbacks.length;
  303. for(var i=0; i < pendingCallbackCount; i++)
  304. {
  305. var currentCallback=_loadedScriptEntry.pendingCallbacks.shift();
  306. currentCallback()
  307. }
  308. };
  309. var onLoadError=function OSF_OUtil_loadScript$onLoadError()
  310. {
  311. delete _loadedScripts[url];
  312. if(_loadedScriptEntry.timer !=null)
  313. {
  314. clearTimeout(_loadedScriptEntry.timer);
  315. delete _loadedScriptEntry.timer
  316. }
  317. var pendingCallbackCount=_loadedScriptEntry.pendingCallbacks.length;
  318. for(var i=0; i < pendingCallbackCount; i++)
  319. {
  320. var currentCallback=_loadedScriptEntry.pendingCallbacks.shift();
  321. currentCallback()
  322. }
  323. };
  324. if(script.readyState)
  325. script.onreadystatechange=function()
  326. {
  327. if(script.readyState=="loaded" || script.readyState=="complete")
  328. {
  329. script.onreadystatechange=null;
  330. onLoadCallback()
  331. }
  332. };
  333. else
  334. script.onload=onLoadCallback;
  335. script.onerror=onLoadError;
  336. timeoutInMs=timeoutInMs || _defaultScriptLoadingTimeout;
  337. _loadedScriptEntry.timer=setTimeout(onLoadError,timeoutInMs);
  338. script.src=url;
  339. doc.getElementsByTagName("head")[0].appendChild(script)
  340. }
  341. else if(_loadedScriptEntry.loaded)
  342. callback();
  343. else
  344. _loadedScriptEntry.pendingCallbacks.push(callback)
  345. }
  346. },
  347. loadCSS: function OSF_OUtil$loadCSS(url)
  348. {
  349. if(url)
  350. {
  351. var doc=window.document;
  352. var link=doc.createElement("link");
  353. link.type="text/css";
  354. link.rel="stylesheet";
  355. link.href=url;
  356. doc.getElementsByTagName("head")[0].appendChild(link)
  357. }
  358. },
  359. parseEnum: function OSF_OUtil$parseEnum(str, enumObject)
  360. {
  361. var parsed=enumObject[str.trim()];
  362. if(typeof parsed=="undefined")
  363. {
  364. OsfMsAjaxFactory.msAjaxDebug.trace("invalid enumeration string:"+str);
  365. throw OsfMsAjaxFactory.msAjaxError.argument("str");
  366. }
  367. return parsed
  368. },
  369. delayExecutionAndCache: function OSF_OUtil$delayExecutionAndCache()
  370. {
  371. var obj={calc: arguments[0]};
  372. return function()
  373. {
  374. if(obj.calc)
  375. {
  376. obj.val=obj.calc.apply(this,arguments);
  377. delete obj.calc
  378. }
  379. return obj.val
  380. }
  381. },
  382. getUniqueId: function OSF_OUtil$getUniqueId()
  383. {
  384. _uniqueId=_uniqueId+1;
  385. return _uniqueId.toString()
  386. },
  387. formatString: function OSF_OUtil$formatString()
  388. {
  389. var args=arguments;
  390. var source=args[0];
  391. return source.replace(/{(\d+)}/gm,function(match, number)
  392. {
  393. var index=parseInt(number,10)+1;
  394. return args[index]===undefined ? "{"+number+"}" : args[index]
  395. })
  396. },
  397. generateConversationId: function OSF_OUtil$generateConversationId()
  398. {
  399. return[_random(),_random(),(new Date).getTime().toString()].join("_")
  400. },
  401. getFrameName: function OSF_OUtil$getFrameName(cacheKey)
  402. {
  403. return _xdmSessionKeyPrefix+cacheKey+this.generateConversationId()
  404. },
  405. addXdmInfoAsHash: function OSF_OUtil$addXdmInfoAsHash(url, xdmInfoValue)
  406. {
  407. return OSF.OUtil.addInfoAsHash(url,_xdmInfoKey,xdmInfoValue,false)
  408. },
  409. addSerializerVersionAsHash: function OSF_OUtil$addSerializerVersionAsHash(url, serializerVersion)
  410. {
  411. return OSF.OUtil.addInfoAsHash(url,_serializerVersionKey,serializerVersion,true)
  412. },
  413. addInfoAsHash: function OSF_OUtil$addInfoAsHash(url, keyName, infoValue, encodeInfo)
  414. {
  415. url=url.trim() || "";
  416. var urlParts=url.split(_fragmentSeparator);
  417. var urlWithoutFragment=urlParts.shift();
  418. var fragment=urlParts.join(_fragmentSeparator);
  419. var newFragment;
  420. if(encodeInfo)
  421. newFragment=[keyName,encodeURIComponent(infoValue),fragment].join("");
  422. else
  423. newFragment=[fragment,keyName,infoValue].join("");
  424. return[urlWithoutFragment,_fragmentSeparator,newFragment].join("")
  425. },
  426. parseHostInfoFromWindowName: function OSF_OUtil$parseHostInfoFromWindowName(skipSessionStorage, windowName)
  427. {
  428. return OSF.OUtil.parseInfoFromWindowName(skipSessionStorage,windowName,OSF.WindowNameItemKeys.HostInfo)
  429. },
  430. parseXdmInfo: function OSF_OUtil$parseXdmInfo(skipSessionStorage)
  431. {
  432. var xdmInfoValue=OSF.OUtil.parseXdmInfoWithGivenFragment(skipSessionStorage,window.location.hash);
  433. if(!xdmInfoValue)
  434. xdmInfoValue=OSF.OUtil.parseXdmInfoFromWindowName(skipSessionStorage,window.name);
  435. return xdmInfoValue
  436. },
  437. parseXdmInfoFromWindowName: function OSF_OUtil$parseXdmInfoFromWindowName(skipSessionStorage, windowName)
  438. {
  439. return OSF.OUtil.parseInfoFromWindowName(skipSessionStorage,windowName,OSF.WindowNameItemKeys.XdmInfo)
  440. },
  441. parseXdmInfoWithGivenFragment: function OSF_OUtil$parseXdmInfoWithGivenFragment(skipSessionStorage, fragment)
  442. {
  443. return OSF.OUtil.parseInfoWithGivenFragment(_xdmInfoKey,_xdmSessionKeyPrefix,false,skipSessionStorage,fragment)
  444. },
  445. parseSerializerVersion: function OSF_OUtil$parseSerializerVersion(skipSessionStorage)
  446. {
  447. var serializerVersion=OSF.OUtil.parseSerializerVersionWithGivenFragment(skipSessionStorage,window.location.hash);
  448. if(isNaN(serializerVersion))
  449. serializerVersion=OSF.OUtil.parseSerializerVersionFromWindowName(skipSessionStorage,window.name);
  450. return serializerVersion
  451. },
  452. parseSerializerVersionFromWindowName: function OSF_OUtil$parseSerializerVersionFromWindowName(skipSessionStorage, windowName)
  453. {
  454. return parseInt(OSF.OUtil.parseInfoFromWindowName(skipSessionStorage,windowName,OSF.WindowNameItemKeys.SerializerVersion))
  455. },
  456. parseSerializerVersionWithGivenFragment: function OSF_OUtil$parseSerializerVersionWithGivenFragment(skipSessionStorage, fragment)
  457. {
  458. return parseInt(OSF.OUtil.parseInfoWithGivenFragment(_serializerVersionKey,_serializerVersionKeyPrefix,true,skipSessionStorage,fragment))
  459. },
  460. parseInfoFromWindowName: function OSF_OUtil$parseInfoFromWindowName(skipSessionStorage, windowName, infoKey)
  461. {
  462. try
  463. {
  464. var windowNameObj=JSON.parse(windowName);
  465. var infoValue=windowNameObj !=null ? windowNameObj[infoKey] : null;
  466. var osfSessionStorage=_getSessionStorage();
  467. if(!skipSessionStorage && osfSessionStorage && windowNameObj !=null)
  468. {
  469. var sessionKey=windowNameObj[OSF.WindowNameItemKeys.BaseFrameName]+infoKey;
  470. if(infoValue)
  471. osfSessionStorage.setItem(sessionKey,infoValue);
  472. else
  473. infoValue=osfSessionStorage.getItem(sessionKey)
  474. }
  475. return infoValue
  476. }
  477. catch(Exception)
  478. {
  479. return null
  480. }
  481. },
  482. parseInfoWithGivenFragment: function OSF_OUtil$parseInfoWithGivenFragment(infoKey, infoKeyPrefix, decodeInfo, skipSessionStorage, fragment)
  483. {
  484. var fragmentParts=fragment.split(infoKey);
  485. var infoValue=fragmentParts.length > 1 ? fragmentParts[fragmentParts.length - 1] : null;
  486. if(decodeInfo && infoValue !=null)
  487. {
  488. if(infoValue.indexOf(_fragmentInfoDelimiter) >=0)
  489. infoValue=infoValue.split(_fragmentInfoDelimiter)[0];
  490. infoValue=decodeURIComponent(infoValue)
  491. }
  492. var osfSessionStorage=_getSessionStorage();
  493. if(!skipSessionStorage && osfSessionStorage)
  494. {
  495. var sessionKeyStart=window.name.indexOf(infoKeyPrefix);
  496. if(sessionKeyStart > -1)
  497. {
  498. var sessionKeyEnd=window.name.indexOf(";",sessionKeyStart);
  499. if(sessionKeyEnd==-1)
  500. sessionKeyEnd=window.name.length;
  501. var sessionKey=window.name.substring(sessionKeyStart,sessionKeyEnd);
  502. if(infoValue)
  503. osfSessionStorage.setItem(sessionKey,infoValue);
  504. else
  505. infoValue=osfSessionStorage.getItem(sessionKey)
  506. }
  507. }
  508. return infoValue
  509. },
  510. getConversationId: function OSF_OUtil$getConversationId()
  511. {
  512. var searchString=window.location.search;
  513. var conversationId=null;
  514. if(searchString)
  515. {
  516. var index=searchString.indexOf("&");
  517. conversationId=index > 0 ? searchString.substring(1,index) : searchString.substr(1);
  518. if(conversationId && conversationId.charAt(conversationId.length - 1)==="=")
  519. {
  520. conversationId=conversationId.substring(0,conversationId.length - 1);
  521. if(conversationId)
  522. conversationId=decodeURIComponent(conversationId)
  523. }
  524. }
  525. return conversationId
  526. },
  527. getInfoItems: function OSF_OUtil$getInfoItems(strInfo)
  528. {
  529. var items=strInfo.split("$");
  530. if(typeof items[1]=="undefined")
  531. items=strInfo.split("|");
  532. if(typeof items[1]=="undefined")
  533. items=strInfo.split("%7C");
  534. return items
  535. },
  536. getXdmFieldValue: function OSF_OUtil$getXdmFieldValue(xdmFieldName, skipSessionStorage)
  537. {
  538. var fieldValue="";
  539. var xdmInfoValue=OSF.OUtil.parseXdmInfo(skipSessionStorage);
  540. if(xdmInfoValue)
  541. {
  542. var items=OSF.OUtil.getInfoItems(xdmInfoValue);
  543. if(items !=undefined && items.length >=3)
  544. switch(xdmFieldName)
  545. {
  546. case OSF.XdmFieldName.ConversationUrl:
  547. fieldValue=items[2];
  548. break;
  549. case OSF.XdmFieldName.AppId:
  550. fieldValue=items[1];
  551. break
  552. }
  553. }
  554. return fieldValue
  555. },
  556. validateParamObject: function OSF_OUtil$validateParamObject(params, expectedProperties, callback)
  557. {
  558. var e=Function._validateParams(arguments,[{
  559. name: "params",
  560. type: Object,
  561. mayBeNull: false
  562. },{
  563. name: "expectedProperties",
  564. type: Object,
  565. mayBeNull: false
  566. },{
  567. name: "callback",
  568. type: Function,
  569. mayBeNull: true
  570. }]);
  571. if(e)
  572. throw e;
  573. for(var p in expectedProperties)
  574. {
  575. e=Function._validateParameter(params[p],expectedProperties[p],p);
  576. if(e)
  577. throw e;
  578. }
  579. },
  580. writeProfilerMark: function OSF_OUtil$writeProfilerMark(text)
  581. {
  582. if(window.msWriteProfilerMark)
  583. {
  584. window.msWriteProfilerMark(text);
  585. OsfMsAjaxFactory.msAjaxDebug.trace(text)
  586. }
  587. },
  588. outputDebug: function OSF_OUtil$outputDebug(text)
  589. {
  590. if(typeof OsfMsAjaxFactory !=="undefined" && OsfMsAjaxFactory.msAjaxDebug && OsfMsAjaxFactory.msAjaxDebug.trace)
  591. OsfMsAjaxFactory.msAjaxDebug.trace(text)
  592. },
  593. defineNondefaultProperty: function OSF_OUtil$defineNondefaultProperty(obj, prop, descriptor, attributes)
  594. {
  595. descriptor=descriptor || {};
  596. for(var nd in attributes)
  597. {
  598. var attribute=attributes[nd];
  599. if(descriptor[attribute]==undefined)
  600. descriptor[attribute]=true
  601. }
  602. Object.defineProperty(obj,prop,descriptor);
  603. return obj
  604. },
  605. defineNondefaultProperties: function OSF_OUtil$defineNondefaultProperties(obj, descriptors, attributes)
  606. {
  607. descriptors=descriptors || {};
  608. for(var prop in descriptors)
  609. OSF.OUtil.defineNondefaultProperty(obj,prop,descriptors[prop],attributes);
  610. return obj
  611. },
  612. defineEnumerableProperty: function OSF_OUtil$defineEnumerableProperty(obj, prop, descriptor)
  613. {
  614. return OSF.OUtil.defineNondefaultProperty(obj,prop,descriptor,["enumerable"])
  615. },
  616. defineEnumerableProperties: function OSF_OUtil$defineEnumerableProperties(obj, descriptors)
  617. {
  618. return OSF.OUtil.defineNondefaultProperties(obj,descriptors,["enumerable"])
  619. },
  620. defineMutableProperty: function OSF_OUtil$defineMutableProperty(obj, prop, descriptor)
  621. {
  622. return OSF.OUtil.defineNondefaultProperty(obj,prop,descriptor,["writable","enumerable","configurable"])
  623. },
  624. defineMutableProperties: function OSF_OUtil$defineMutableProperties(obj, descriptors)
  625. {
  626. return OSF.OUtil.defineNondefaultProperties(obj,descriptors,["writable","enumerable","configurable"])
  627. },
  628. finalizeProperties: function OSF_OUtil$finalizeProperties(obj, descriptor)
  629. {
  630. descriptor=descriptor || {};
  631. var props=Object.getOwnPropertyNames(obj);
  632. var propsLength=props.length;
  633. for(var i=0; i < propsLength; i++)
  634. {
  635. var prop=props[i];
  636. var desc=Object.getOwnPropertyDescriptor(obj,prop);
  637. if(!desc.get && !desc.set)
  638. desc.writable=descriptor.writable || false;
  639. desc.configurable=descriptor.configurable || false;
  640. desc.enumerable=descriptor.enumerable || true;
  641. Object.defineProperty(obj,prop,desc)
  642. }
  643. return obj
  644. },
  645. mapList: function OSF_OUtil$MapList(list, mapFunction)
  646. {
  647. var ret=[];
  648. if(list)
  649. for(var item in list)
  650. ret.push(mapFunction(list[item]));
  651. return ret
  652. },
  653. listContainsKey: function OSF_OUtil$listContainsKey(list, key)
  654. {
  655. for(var item in list)
  656. if(key==item)
  657. return true;
  658. return false
  659. },
  660. listContainsValue: function OSF_OUtil$listContainsElement(list, value)
  661. {
  662. for(var item in list)
  663. if(value==list[item])
  664. return true;
  665. return false
  666. },
  667. augmentList: function OSF_OUtil$augmentList(list, addenda)
  668. {
  669. var add=list.push ? function(key, value)
  670. {
  671. list.push(value)
  672. } : function(key, value)
  673. {
  674. list[key]=value
  675. };
  676. for(var key in addenda)
  677. add(key,addenda[key])
  678. },
  679. redefineList: function OSF_Outil$redefineList(oldList, newList)
  680. {
  681. for(var key1 in oldList)
  682. delete oldList[key1];
  683. for(var key2 in newList)
  684. oldList[key2]=newList[key2]
  685. },
  686. isArray: function OSF_OUtil$isArray(obj)
  687. {
  688. return Object.prototype.toString.apply(obj)==="[object Array]"
  689. },
  690. isFunction: function OSF_OUtil$isFunction(obj)
  691. {
  692. return Object.prototype.toString.apply(obj)==="[object Function]"
  693. },
  694. isDate: function OSF_OUtil$isDate(obj)
  695. {
  696. return Object.prototype.toString.apply(obj)==="[object Date]"
  697. },
  698. addEventListener: function OSF_OUtil$addEventListener(element, eventName, listener)
  699. {
  700. if(element.addEventListener)
  701. element.addEventListener(eventName,listener,false);
  702. else if(Sys.Browser.agent===Sys.Browser.InternetExplorer && element.attachEvent)
  703. element.attachEvent("on"+eventName,listener);
  704. else
  705. element["on"+eventName]=listener
  706. },
  707. removeEventListener: function OSF_OUtil$removeEventListener(element, eventName, listener)
  708. {
  709. if(element.removeEventListener)
  710. element.removeEventListener(eventName,listener,false);
  711. else if(Sys.Browser.agent===Sys.Browser.InternetExplorer && element.detachEvent)
  712. element.detachEvent("on"+eventName,listener);
  713. else
  714. element["on"+eventName]=null
  715. },
  716. getCookieValue: function OSF_OUtil$getCookieValue(cookieName)
  717. {
  718. var tmpCookieString=RegExp(cookieName+"[^;]+").exec(document.cookie);
  719. return tmpCookieString.toString().replace(/^[^=]+./,"")
  720. },
  721. xhrGet: function OSF_OUtil$xhrGet(url, onSuccess, onError)
  722. {
  723. var xmlhttp;
  724. try
  725. {
  726. xmlhttp=new XMLHttpRequest;
  727. xmlhttp.onreadystatechange=function()
  728. {
  729. if(xmlhttp.readyState==4)
  730. if(xmlhttp.status==200)
  731. onSuccess(xmlhttp.responseText);
  732. else
  733. onError(xmlhttp.status)
  734. };
  735. xmlhttp.open("GET",url,true);
  736. xmlhttp.send()
  737. }
  738. catch(ex)
  739. {
  740. onError(ex)
  741. }
  742. },
  743. xhrGetFull: function OSF_OUtil$xhrGetFull(url, oneDriveFileName, onSuccess, onError)
  744. {
  745. var xmlhttp;
  746. var requestedFileName=oneDriveFileName;
  747. try
  748. {
  749. xmlhttp=new XMLHttpRequest;
  750. xmlhttp.onreadystatechange=function()
  751. {
  752. if(xmlhttp.readyState==4)
  753. if(xmlhttp.status==200)
  754. onSuccess(xmlhttp,requestedFileName);
  755. else
  756. onError(xmlhttp.status)
  757. };
  758. xmlhttp.open("GET",url,true);
  759. xmlhttp.send()
  760. }
  761. catch(ex)
  762. {
  763. onError(ex)
  764. }
  765. },
  766. encodeBase64: function OSF_Outil$encodeBase64(input)
  767. {
  768. if(!input)
  769. return input;
  770. var codex="ABCDEFGHIJKLMNOP"+"QRSTUVWXYZabcdef"+"ghijklmnopqrstuv"+"wxyz0123456789+/=";
  771. var output=[];
  772. var temp=[];
  773. var index=0;
  774. var c1,
  775. c2,
  776. c3,
  777. a,
  778. b,
  779. c;
  780. var i;
  781. var length=input.length;
  782. do
  783. {
  784. c1=input.charCodeAt(index++);
  785. c2=input.charCodeAt(index++);
  786. c3=input.charCodeAt(index++);
  787. i=0;
  788. a=c1 & 255;
  789. b=c1 >> 8;
  790. c=c2 & 255;
  791. temp[i++]=a >> 2;
  792. temp[i++]=(a & 3) << 4 | b >> 4;
  793. temp[i++]=(b & 15) << 2 | c >> 6;
  794. temp[i++]=c & 63;
  795. if(!isNaN(c2))
  796. {
  797. a=c2 >> 8;
  798. b=c3 & 255;
  799. c=c3 >> 8;
  800. temp[i++]=a >> 2;
  801. temp[i++]=(a & 3) << 4 | b >> 4;
  802. temp[i++]=(b & 15) << 2 | c >> 6;
  803. temp[i++]=c & 63
  804. }
  805. if(isNaN(c2))
  806. temp[i - 1]=64;
  807. else if(isNaN(c3))
  808. {
  809. temp[i - 2]=64;
  810. temp[i - 1]=64
  811. }
  812. for(var t=0; t < i; t++)
  813. output.push(codex.charAt(temp[t]))
  814. } while(index < length);
  815. return output.join("")
  816. },
  817. getSessionStorage: function OSF_Outil$getSessionStorage()
  818. {
  819. return _getSessionStorage()
  820. },
  821. getLocalStorage: function OSF_Outil$getLocalStorage()
  822. {
  823. if(!_safeLocalStorage)
  824. {
  825. try
  826. {
  827. var localStorage=window.localStorage
  828. }
  829. catch(ex)
  830. {
  831. localStorage=null
  832. }
  833. _safeLocalStorage=new OfficeExt.SafeStorage(localStorage)
  834. }
  835. return _safeLocalStorage
  836. },
  837. convertIntToCssHexColor: function OSF_Outil$convertIntToCssHexColor(val)
  838. {
  839. var hex="#"+(Number(val)+16777216).toString(16).slice(-6);
  840. return hex
  841. },
  842. attachClickHandler: function OSF_Outil$attachClickHandler(element, handler)
  843. {
  844. element.onclick=function(e)
  845. {
  846. handler()
  847. };
  848. element.ontouchend=function(e)
  849. {
  850. handler();
  851. e.preventDefault()
  852. }
  853. },
  854. getQueryStringParamValue: function OSF_Outil$getQueryStringParamValue(queryString, paramName)
  855. {
  856. var e=Function._validateParams(arguments,[{
  857. name: "queryString",
  858. type: String,
  859. mayBeNull: false
  860. },{
  861. name: "paramName",
  862. type: String,
  863. mayBeNull: false
  864. }]);
  865. if(e)
  866. {
  867. OsfMsAjaxFactory.msAjaxDebug.trace("OSF_Outil_getQueryStringParamValue: Parameters cannot be null.");
  868. return""
  869. }
  870. var queryExp=new RegExp("[\\?&]"+paramName+"=([^&#]*)","i");
  871. if(!queryExp.test(queryString))
  872. {
  873. OsfMsAjaxFactory.msAjaxDebug.trace("OSF_Outil_getQueryStringParamValue: The parameter is not found.");
  874. return""
  875. }
  876. return queryExp.exec(queryString)[1]
  877. },
  878. isiOS: function OSF_Outil$isiOS()
  879. {
  880. return window.navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false
  881. },
  882. isChrome: function OSF_Outil$isChrome()
  883. {
  884. return window.navigator.userAgent.indexOf("Chrome") > 0 && !OSF.OUtil.isEdge()
  885. },
  886. isEdge: function OSF_Outil$isEdge()
  887. {
  888. return window.navigator.userAgent.indexOf("Edge") > 0
  889. },
  890. isIE: function OSF_Outil$isIE()
  891. {
  892. return window.navigator.userAgent.indexOf("Trident") > 0
  893. },
  894. isFirefox: function OSF_Outil$isFirefox()
  895. {
  896. return window.navigator.userAgent.indexOf("Firefox") > 0
  897. },
  898. shallowCopy: function OSF_Outil$shallowCopy(sourceObj)
  899. {
  900. var copyObj=sourceObj.constructor();
  901. for(var property in sourceObj)
  902. if(sourceObj.hasOwnProperty(property))
  903. copyObj[property]=sourceObj[property];
  904. return copyObj
  905. },
  906. createObject: function OSF_Outil$createObject(properties)
  907. {
  908. var obj=null;
  909. if(properties)
  910. {
  911. obj={};
  912. var len=properties.length;
  913. for(var i=0; i < len; i++)
  914. obj[properties[i].name]=properties[i].value
  915. }
  916. return obj
  917. },
  918. addClass: function OSF_OUtil$addClass(elmt, val)
  919. {
  920. if(!OSF.OUtil.hasClass(elmt,val))
  921. {
  922. var className=elmt.getAttribute(_classN);
  923. if(className)
  924. elmt.setAttribute(_classN,className+" "+val);
  925. else
  926. elmt.setAttribute(_classN,val)
  927. }
  928. },
  929. hasClass: function OSF_OUtil$hasClass(elmt, clsName)
  930. {
  931. var className=elmt.getAttribute(_classN);
  932. return className && className.match(new RegExp("(\\s|^)"+clsName+"(\\s|$)"))
  933. },
  934. focusToFirstTabbable: function OSF_OUtil$focusToFirstTabbable(all, backward)
  935. {
  936. var next;
  937. var focused=false;
  938. var candidate;
  939. var setFlag=function(e)
  940. {
  941. focused=true
  942. };
  943. var findNextPos=function(allLen, currPos, backward)
  944. {
  945. if(currPos < 0 || currPos > allLen)
  946. return-1;
  947. else if(currPos===0 && backward)
  948. return-1;
  949. else if(currPos===allLen - 1 && !backward)
  950. return-1;
  951. if(backward)
  952. return currPos - 1;
  953. else
  954. return currPos+1
  955. };
  956. all=_reOrderTabbableElements(all);
  957. next=backward ? all.length - 1 : 0;
  958. if(all.length===0)
  959. return null;
  960. while(!focused && next >=0 && next < all.length)
  961. {
  962. candidate=all[next];
  963. window.focus();
  964. candidate.addEventListener("focus",setFlag);
  965. candidate.focus();
  966. candidate.removeEventListener("focus",setFlag);
  967. next=findNextPos(all.length,next,backward);
  968. if(!focused && candidate===document.activeElement)
  969. focused=true
  970. }
  971. if(focused)
  972. return candidate;
  973. else
  974. return null
  975. },
  976. focusToNextTabbable: function OSF_OUtil$focusToNextTabbable(all, curr, shift)
  977. {
  978. var currPos;
  979. var next;
  980. var focused=false;
  981. var candidate;
  982. var setFlag=function(e)
  983. {
  984. focused=true
  985. };
  986. var findCurrPos=function(all, curr)
  987. {
  988. var i=0;
  989. for(; i < all.length; i++)
  990. if(all[i]===curr)
  991. return i;
  992. return-1
  993. };
  994. var findNextPos=function(allLen, currPos, shift)
  995. {
  996. if(currPos < 0 || currPos > allLen)
  997. return-1;
  998. else if(currPos===0 && shift)
  999. return-1;
  1000. else if(currPos===allLen - 1 && !shift)
  1001. return-1;
  1002. if(shift)
  1003. return currPos - 1;
  1004. else
  1005. return currPos+1
  1006. };
  1007. all=_reOrderTabbableElements(all);
  1008. currPos=findCurrPos(all,curr);
  1009. next=findNextPos(all.length,currPos,shift);
  1010. if(next < 0)
  1011. return null;
  1012. while(!focused && next >=0 && next < all.length)
  1013. {
  1014. candidate=all[next];
  1015. candidate.addEventListener("focus",setFlag);
  1016. candidate.focus();
  1017. candidate.removeEventListener("focus",setFlag);
  1018. next=findNextPos(all.length,next,shift);
  1019. if(!focused && candidate===document.activeElement)
  1020. focused=true
  1021. }
  1022. if(focused)
  1023. return candidate;
  1024. else
  1025. return null
  1026. }
  1027. }
  1028. }();
  1029. OSF.OUtil.Guid=function()
  1030. {
  1031. var hexCode=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];
  1032. return{generateNewGuid: function OSF_Outil_Guid$generateNewGuid()
  1033. {
  1034. var result="";
  1035. var tick=(new Date).getTime();
  1036. var index=0;
  1037. for(; index < 32 && tick > 0; index++)
  1038. {
  1039. if(index==8 || index==12 || index==16 || index==20)
  1040. result+="-";
  1041. result+=hexCode[tick % 16];
  1042. tick=Math.floor(tick / 16)
  1043. }
  1044. for(; index < 32; index++)
  1045. {
  1046. if(index==8 || index==12 || index==16 || index==20)
  1047. result+="-";
  1048. result+=hexCode[Math.floor(Math.random() * 16)]
  1049. }
  1050. return result
  1051. }}
  1052. }();
  1053. window.OSF=OSF;
  1054. OSF.OUtil.setNamespace("OSF",window);
  1055. OSF.AppName={
  1056. Unsupported: 0,
  1057. Excel: 1,
  1058. Word: 2,
  1059. PowerPoint: 4,
  1060. Outlook: 8,
  1061. ExcelWebApp: 16,
  1062. WordWebApp: 32,
  1063. OutlookWebApp: 64,
  1064. Project: 128,
  1065. AccessWebApp: 256,
  1066. PowerpointWebApp: 512,
  1067. ExcelIOS: 1024,
  1068. Sway: 2048,
  1069. WordIOS: 4096,
  1070. PowerPointIOS: 8192,
  1071. Access: 16384,
  1072. Lync: 32768,
  1073. OutlookIOS: 65536,
  1074. OneNoteWebApp: 131072,
  1075. OneNote: 262144,
  1076. ExcelWinRT: 524288,
  1077. WordWinRT: 1048576,
  1078. PowerpointWinRT: 2097152,
  1079. OutlookAndroid: 4194304,
  1080. OneNoteWinRT: 8388608,
  1081. ExcelAndroid: 8388609,
  1082. VisioWebApp: 8388610
  1083. };
  1084. OSF.InternalPerfMarker={
  1085. DataCoercionBegin: "Agave.HostCall.CoerceDataStart",
  1086. DataCoercionEnd: "Agave.HostCall.CoerceDataEnd"
  1087. };
  1088. OSF.HostCallPerfMarker={
  1089. IssueCall: "Agave.HostCall.IssueCall",
  1090. ReceiveResponse: "Agave.HostCall.ReceiveResponse",
  1091. RuntimeExceptionRaised: "Agave.HostCall.RuntimeExecptionRaised"
  1092. };
  1093. OSF.AgaveHostAction={
  1094. Select: 0,
  1095. UnSelect: 1,
  1096. CancelDialog: 2,
  1097. InsertAgave: 3,
  1098. CtrlF6In: 4,
  1099. CtrlF6Exit: 5,
  1100. CtrlF6ExitShift: 6,
  1101. SelectWithError: 7,
  1102. NotifyHostError: 8,
  1103. RefreshAddinCommands: 9,
  1104. PageIsReady: 10,
  1105. TabIn: 11,
  1106. TabInShift: 12,
  1107. TabExit: 13,
  1108. TabExitShift: 14,
  1109. EscExit: 15,
  1110. F2Exit: 16,
  1111. ExitNoFocusable: 17,
  1112. ExitNoFocusableShift: 18
  1113. };
  1114. OSF.SharedConstants={NotificationConversationIdSuffix: "_ntf"};
  1115. OSF.DialogMessageType={
  1116. DialogMessageReceived: 0,
  1117. DialogParentMessageReceived: 1,
  1118. DialogClosed: 12006
  1119. };
  1120. OSF.OfficeAppContext=function OSF_OfficeAppContext(id, appName, appVersion, appUILocale, dataLocale, docUrl, clientMode, settings, reason, osfControlType, eToken, correlationId, appInstanceId, touchEnabled, commerceAllowed, appMinorVersion, requirementMatrix, hostCustomMessage, hostFullVersion, clientWindowHeight, clientWindowWidth, addinName, appDomains)
  1121. {
  1122. this._id=id;
  1123. this._appName=appName;
  1124. this._appVersion=appVersion;
  1125. this._appUILocale=appUILocale;
  1126. this._dataLocale=dataLocale;
  1127. this._docUrl=docUrl;
  1128. this._clientMode=clientMode;
  1129. this._settings=settings;
  1130. this._reason=reason;
  1131. this._osfControlType=osfControlType;
  1132. this._eToken=eToken;
  1133. this._correlationId=correlationId;
  1134. this._appInstanceId=appInstanceId;
  1135. this._touchEnabled=touchEnabled;
  1136. this._commerceAllowed=commerceAllowed;
  1137. this._appMinorVersion=appMinorVersion;
  1138. this._requirementMatrix=requirementMatrix;
  1139. this._hostCustomMessage=hostCustomMessage;
  1140. this._hostFullVersion=hostFullVersion;
  1141. this._isDialog=false;
  1142. this._clientWindowHeight=clientWindowHeight;
  1143. this._clientWindowWidth=clientWindowWidth;
  1144. this._addinName=addinName;
  1145. this._appDomains=appDomains;
  1146. this.get_id=function get_id()
  1147. {
  1148. return this._id
  1149. };
  1150. this.get_appName=function get_appName()
  1151. {
  1152. return this._appName
  1153. };
  1154. this.get_appVersion=function get_appVersion()
  1155. {
  1156. return this._appVersion
  1157. };
  1158. this.get_appUILocale=function get_appUILocale()
  1159. {
  1160. return this._appUILocale
  1161. };
  1162. this.get_dataLocale=function get_dataLocale()
  1163. {
  1164. return this._dataLocale
  1165. };
  1166. this.get_docUrl=function get_docUrl()
  1167. {
  1168. return this._docUrl
  1169. };
  1170. this.get_clientMode=function get_clientMode()
  1171. {
  1172. return this._clientMode
  1173. };
  1174. this.get_bindings=function get_bindings()
  1175. {
  1176. return this._bindings
  1177. };
  1178. this.get_settings=function get_settings()
  1179. {
  1180. return this._settings
  1181. };
  1182. this.get_reason=function get_reason()
  1183. {
  1184. return this._reason
  1185. };
  1186. this.get_osfControlType=function get_osfControlType()
  1187. {
  1188. return this._osfControlType
  1189. };
  1190. this.get_eToken=function get_eToken()
  1191. {
  1192. return this._eToken
  1193. };
  1194. this.get_correlationId=function get_correlationId()
  1195. {
  1196. return this._correlationId
  1197. };
  1198. this.get_appInstanceId=function get_appInstanceId()
  1199. {
  1200. return this._appInstanceId
  1201. };
  1202. this.get_touchEnabled=function get_touchEnabled()
  1203. {
  1204. return this._touchEnabled
  1205. };
  1206. this.get_commerceAllowed=function get_commerceAllowed()
  1207. {
  1208. return this._commerceAllowed
  1209. };
  1210. this.get_appMinorVersion=function get_appMinorVersion()
  1211. {
  1212. return this._appMinorVersion
  1213. };
  1214. this.get_requirementMatrix=function get_requirementMatrix()
  1215. {
  1216. return this._requirementMatrix
  1217. };
  1218. this.get_hostCustomMessage=function get_hostCustomMessage()
  1219. {
  1220. return this._hostCustomMessage
  1221. };
  1222. this.get_hostFullVersion=function get_hostFullVersion()
  1223. {
  1224. return this._hostFullVersion
  1225. };
  1226. this.get_isDialog=function get_isDialog()
  1227. {
  1228. return this._isDialog
  1229. };
  1230. this.get_clientWindowHeight=function get_clientWindowHeight()
  1231. {
  1232. return this._clientWindowHeight
  1233. };
  1234. this.get_clientWindowWidth=function get_clientWindowWidth()
  1235. {
  1236. return this._clientWindowWidth
  1237. };
  1238. this.get_addinName=function get_addinName()
  1239. {
  1240. return this._addinName
  1241. };
  1242. this.get_appDomains=function get_appDomains()
  1243. {
  1244. return this._appDomains
  1245. }
  1246. };
  1247. OSF.OsfControlType={
  1248. DocumentLevel: 0,
  1249. ContainerLevel: 1
  1250. };
  1251. OSF.ClientMode={
  1252. ReadOnly: 0,
  1253. ReadWrite: 1
  1254. };
  1255. OSF.OUtil.setNamespace("Microsoft",window);
  1256. OSF.OUtil.setNamespace("Office",Microsoft);
  1257. OSF.OUtil.setNamespace("Client",Microsoft.Office);
  1258. OSF.OUtil.setNamespace("WebExtension",Microsoft.Office);
  1259. Microsoft.Office.WebExtension.InitializationReason={
  1260. Inserted: "inserted",
  1261. DocumentOpened: "documentOpened"
  1262. };
  1263. Microsoft.Office.WebExtension.ValueFormat={
  1264. Unformatted: "unformatted",
  1265. Formatted: "formatted"
  1266. };
  1267. Microsoft.Office.WebExtension.FilterType={All: "all"};
  1268. Microsoft.Office.WebExtension.Parameters={
  1269. BindingType: "bindingType",
  1270. CoercionType: "coercionType",
  1271. ValueFormat: "valueFormat",
  1272. FilterType: "filterType",
  1273. Columns: "columns",
  1274. SampleData: "sampleData",
  1275. GoToType: "goToType",
  1276. SelectionMode: "selectionMode",
  1277. Id: "id",
  1278. PromptText: "promptText",
  1279. ItemName: "itemName",
  1280. FailOnCollision: "failOnCollision",
  1281. StartRow: "startRow",
  1282. StartColumn: "startColumn",
  1283. RowCount: "rowCount",
  1284. ColumnCount: "columnCount",
  1285. Callback: "callback",
  1286. AsyncContext: "asyncContext",
  1287. Data: "data",
  1288. Rows: "rows",
  1289. OverwriteIfStale: "overwriteIfStale",
  1290. FileType: "fileType",
  1291. EventType: "eventType",
  1292. Handler: "handler",
  1293. SliceSize: "sliceSize",
  1294. SliceIndex: "sliceIndex",
  1295. ActiveView: "activeView",
  1296. Status: "status",
  1297. Xml: "xml",
  1298. Namespace: "namespace",
  1299. Prefix: "prefix",
  1300. XPath: "xPath",
  1301. Text: "text",
  1302. ImageLeft: "imageLeft",
  1303. ImageTop: "imageTop",
  1304. ImageWidth: "imageWidth",
  1305. ImageHeight: "imageHeight",
  1306. TaskId: "taskId",
  1307. FieldId: "fieldId",
  1308. FieldValue: "fieldValue",
  1309. ServerUrl: "serverUrl",
  1310. ListName: "listName",
  1311. ResourceId: "resourceId",
  1312. ViewType: "viewType",
  1313. ViewName: "viewName",
  1314. GetRawValue: "getRawValue",
  1315. CellFormat: "cellFormat",
  1316. TableOptions: "tableOptions",
  1317. TaskIndex: "taskIndex",
  1318. ResourceIndex: "resourceIndex",
  1319. CustomFieldId: "customFieldId",
  1320. Url: "url",
  1321. MessageHandler: "messageHandler",
  1322. Width: "width",
  1323. Height: "height",
  1324. RequireHTTPs: "requireHTTPS",
  1325. MessageToParent: "messageToParent",
  1326. DisplayInIframe: "displayInIframe",
  1327. MessageContent: "messageContent"
  1328. };
  1329. OSF.OUtil.setNamespace("DDA",OSF);
  1330. OSF.DDA.DocumentMode={
  1331. ReadOnly: 1,
  1332. ReadWrite: 0
  1333. };
  1334. OSF.DDA.PropertyDescriptors={AsyncResultStatus: "AsyncResultStatus"};
  1335. OSF.DDA.EventDescriptors={};
  1336. OSF.DDA.ListDescriptors={};
  1337. OSF.DDA.UI={};
  1338. OSF.DDA.getXdmEventName=function OSF_DDA$GetXdmEventName(id, eventType)
  1339. {
  1340. if(eventType==Microsoft.Office.WebExtension.EventType.BindingSelectionChanged || eventType==Microsoft.Office.WebExtension.EventType.BindingDataChanged || eventType==Microsoft.Office.WebExtension.EventType.DataNodeDeleted || eventType==Microsoft.Office.WebExtension.EventType.DataNodeInserted || eventType==Microsoft.Office.WebExtension.EventType.DataNodeReplaced)
  1341. return id+"_"+eventType;
  1342. else
  1343. return eventType
  1344. };
  1345. OSF.DDA.MethodDispId={
  1346. dispidMethodMin: 64,
  1347. dispidGetSelectedDataMethod: 64,
  1348. dispidSetSelectedDataMethod: 65,
  1349. dispidAddBindingFromSelectionMethod: 66,
  1350. dispidAddBindingFromPromptMethod: 67,
  1351. dispidGetBindingMethod: 68,
  1352. dispidReleaseBindingMethod: 69,
  1353. dispidGetBindingDataMethod: 70,
  1354. dispidSetBindingDataMethod: 71,
  1355. dispidAddRowsMethod: 72,
  1356. dispidClearAllRowsMethod: 73,
  1357. dispidGetAllBindingsMethod: 74,
  1358. dispidLoadSettingsMethod: 75,
  1359. dispidSaveSettingsMethod: 76,
  1360. dispidGetDocumentCopyMethod: 77,
  1361. dispidAddBindingFromNamedItemMethod: 78,
  1362. dispidAddColumnsMethod: 79,
  1363. dispidGetDocumentCopyChunkMethod: 80,
  1364. dispidReleaseDocumentCopyMethod: 81,
  1365. dispidNavigateToMethod: 82,
  1366. dispidGetActiveViewMethod: 83,
  1367. dispidGetDocumentThemeMethod: 84,
  1368. dispidGetOfficeThemeMethod: 85,
  1369. dispidGetFilePropertiesMethod: 86,
  1370. dispidClearFormatsMethod: 87,
  1371. dispidSetTableOptionsMethod: 88,
  1372. dispidSetFormatsMethod: 89,
  1373. dispidExecuteRichApiRequestMethod: 93,
  1374. dispidAppCommandInvocationCompletedMethod: 94,
  1375. dispidCloseContainerMethod: 97,
  1376. dispidAddDataPartMethod: 128,
  1377. dispidGetDataPartByIdMethod: 129,
  1378. dispidGetDataPartsByNamespaceMethod: 130,
  1379. dispidGetDataPartXmlMethod: 131,
  1380. dispidGetDataPartNodesMethod: 132,
  1381. dispidDeleteDataPartMethod: 133,
  1382. dispidGetDataNodeValueMethod: 134,
  1383. dispidGetDataNodeXmlMethod: 135,
  1384. dispidGetDataNodesMethod: 136,
  1385. dispidSetDataNodeValueMethod: 137,
  1386. dispidSetDataNodeXmlMethod: 138,
  1387. dispidAddDataNamespaceMethod: 139,
  1388. dispidGetDataUriByPrefixMethod: 140,
  1389. dispidGetDataPrefixByUriMethod: 141,
  1390. dispidGetDataNodeTextMethod: 142,
  1391. dispidSetDataNodeTextMethod: 143,
  1392. dispidMessageParentMethod: 144,
  1393. dispidSendMessageMethod: 145,
  1394. dispidMethodMax: 145,
  1395. dispidGetSelectedTaskMethod: 110,
  1396. dispidGetSelectedResourceMethod: 111,
  1397. dispidGetTaskMethod: 112,
  1398. dispidGetResourceFieldMethod: 113,
  1399. dispidGetWSSUrlMethod: 114,
  1400. dispidGetTaskFieldMethod: 115,
  1401. dispidGetProjectFieldMethod: 116,
  1402. dispidGetSelectedViewMethod: 117,
  1403. dispidGetTaskByIndexMethod: 118,
  1404. dispidGetResourceByIndexMethod: 119,
  1405. dispidSetTaskFieldMethod: 120,
  1406. dispidSetResourceFieldMethod: 121,
  1407. dispidGetMaxTaskIndexMethod: 122,
  1408. dispidGetMaxResourceIndexMethod: 123,
  1409. dispidCreateTaskMethod: 124
  1410. };
  1411. OSF.DDA.EventDispId={
  1412. dispidEventMin: 0,
  1413. dispidInitializeEvent: 0,
  1414. dispidSettingsChangedEvent: 1,
  1415. dispidDocumentSelectionChangedEvent: 2,
  1416. dispidBindingSelectionChangedEvent: 3,
  1417. dispidBindingDataChangedEvent: 4,
  1418. dispidDocumentOpenEvent: 5,
  1419. dispidDocumentCloseEvent: 6,
  1420. dispidActiveViewChangedEvent: 7,
  1421. dispidDocumentThemeChangedEvent: 8,
  1422. dispidOfficeThemeChangedEvent: 9,
  1423. dispidDialogMessageReceivedEvent: 10,
  1424. dispidDialogNotificationShownInAddinEvent: 11,
  1425. dispidDialogParentMessageReceivedEvent: 12,
  1426. dispidActivationStatusChangedEvent: 32,
  1427. dispidAppCommandInvokedEvent: 39,
  1428. dispidOlkItemSelectedChangedEvent: 46,
  1429. dispidTaskSelectionChangedEvent: 56,
  1430. dispidResourceSelectionChangedEvent: 57,
  1431. dispidViewSelectionChangedEvent: 58,
  1432. dispidDataNodeAddedEvent: 60,
  1433. dispidDataNodeReplacedEvent: 61,
  1434. dispidDataNodeDeletedEvent: 62,
  1435. dispidEventMax: 63
  1436. };
  1437. OSF.DDA.ErrorCodeManager=function()
  1438. {
  1439. var _errorMappings={};
  1440. return{
  1441. getErrorArgs: function OSF_DDA_ErrorCodeManager$getErrorArgs(errorCode)
  1442. {
  1443. var errorArgs=_errorMappings[errorCode];
  1444. if(!errorArgs)
  1445. errorArgs=_errorMappings[this.errorCodes.ooeInternalError];
  1446. else
  1447. {
  1448. if(!errorArgs.name)
  1449. errorArgs.name=_errorMappings[this.errorCodes.ooeInternalError].name;
  1450. if(!errorArgs.message)
  1451. errorArgs.message=_errorMappings[this.errorCodes.ooeInternalError].message
  1452. }
  1453. return errorArgs
  1454. },
  1455. addErrorMessage: function OSF_DDA_ErrorCodeManager$addErrorMessage(errorCode, errorNameMessage)
  1456. {
  1457. _errorMappings[errorCode]=errorNameMessage
  1458. },
  1459. errorCodes: {
  1460. ooeSuccess: 0,
  1461. ooeChunkResult: 1,
  1462. ooeCoercionTypeNotSupported: 1e3,
  1463. ooeGetSelectionNotMatchDataType: 1001,
  1464. ooeCoercionTypeNotMatchBinding: 1002,
  1465. ooeInvalidGetRowColumnCounts: 1003,
  1466. ooeSelectionNotSupportCoercionType: 1004,
  1467. ooeInvalidGetStartRowColumn: 1005,
  1468. ooeNonUniformPartialGetNotSupported: 1006,
  1469. ooeGetDataIsTooLarge: 1008,
  1470. ooeFileTypeNotSupported: 1009,
  1471. ooeGetDataParametersConflict: 1010,
  1472. ooeInvalidGetColumns: 1011,
  1473. ooeInvalidGetRows: 1012,
  1474. ooeInvalidReadForBlankRow: 1013,
  1475. ooeUnsupportedDataObject: 2e3,
  1476. ooeCannotWriteToSelection: 2001,
  1477. ooeDataNotMatchSelection: 2002,
  1478. ooeOverwriteWorksheetData: 2003,
  1479. ooeDataNotMatchBindingSize: 2004,
  1480. ooeInvalidSetStartRowColumn: 2005,
  1481. ooeInvalidDataFormat: 2006,
  1482. ooeDataNotMatchCoercionType: 2007,
  1483. ooeDataNotMatchBindingType: 2008,
  1484. ooeSetDataIsTooLarge: 2009,
  1485. ooeNonUniformPartialSetNotSupported: 2010,
  1486. ooeInvalidSetColumns: 2011,
  1487. ooeInvalidSetRows: 2012,
  1488. ooeSetDataParametersConflict: 2013,
  1489. ooeCellDataAmountBeyondLimits: 2014,
  1490. ooeSelectionCannotBound: 3e3,
  1491. ooeBindingNotExist: 3002,
  1492. ooeBindingToMultipleSelection: 3003,
  1493. ooeInvalidSelectionForBindingType: 3004,
  1494. ooeOperationNotSupportedOnThisBindingType: 3005,
  1495. ooeNamedItemNotFound: 3006,
  1496. ooeMultipleNamedItemFound: 3007,
  1497. ooeInvalidNamedItemForBindingType: 3008,
  1498. ooeUnknownBindingType: 3009,
  1499. ooeOperationNotSupportedOnMatrixData: 3010,
  1500. ooeInvalidColumnsForBinding: 3011,
  1501. ooeSettingNameNotExist: 4e3,
  1502. ooeSettingsCannotSave: 4001,
  1503. ooeSettingsAreStale: 4002,
  1504. ooeOperationNotSupported: 5e3,
  1505. ooeInternalError: 5001,
  1506. ooeDocumentReadOnly: 5002,
  1507. ooeEventHandlerNotExist: 5003,
  1508. ooeInvalidApiCallInContext: 5004,
  1509. ooeShuttingDown: 5005,
  1510. ooeUnsupportedEnumeration: 5007,
  1511. ooeIndexOutOfRange: 5008,
  1512. ooeBrowserAPINotSupported: 5009,
  1513. ooeInvalidParam: 5010,
  1514. ooeRequestTimeout: 5011,
  1515. ooeTooManyIncompleteRequests: 5100,
  1516. ooeRequestTokenUnavailable: 5101,
  1517. ooeActivityLimitReached: 5102,
  1518. ooeCustomXmlNodeNotFound: 6e3,
  1519. ooeCustomXmlError: 6100,
  1520. ooeCustomXmlExceedQuota: 6101,
  1521. ooeCustomXmlOutOfDate: 6102,
  1522. ooeNoCapability: 7e3,
  1523. ooeCannotNavTo: 7001,
  1524. ooeSpecifiedIdNotExist: 7002,
  1525. ooeNavOutOfBound: 7004,
  1526. ooeElementMissing: 8e3,
  1527. ooeProtectedError: 8001,
  1528. ooeInvalidCellsValue: 8010,
  1529. ooeInvalidTableOptionValue: 8011,
  1530. ooeInvalidFormatValue: 8012,
  1531. ooeRowIndexOutOfRange: 8020,
  1532. ooeColIndexOutOfRange: 8021,
  1533. ooeFormatValueOutOfRange: 8022,
  1534. ooeCellFormatAmountBeyondLimits: 8023,
  1535. ooeMemoryFileLimit: 11e3,
  1536. ooeNetworkProblemRetrieveFile: 11001,
  1537. ooeInvalidSliceSize: 11002,
  1538. ooeInvalidCallback: 11101,
  1539. ooeInvalidWidth: 12e3,
  1540. ooeInvalidHeight: 12001,
  1541. ooeNavigationError: 12002,
  1542. ooeInvalidScheme: 12003,
  1543. ooeAppDomains: 12004,
  1544. ooeRequireHTTPS: 12005,
  1545. ooeWebDialogClosed: 12006,
  1546. ooeDialogAlreadyOpened: 12007,
  1547. ooeEndUserAllow: 12008,
  1548. ooeEndUserIgnore: 12009,
  1549. ooeNotUILessDialog: 12010
  1550. },
  1551. initializeErrorMessages: function OSF_DDA_ErrorCodeManager$initializeErrorMessages(stringNS)
  1552. {
  1553. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCoercionTypeNotSupported]={
  1554. name: stringNS.L_InvalidCoercion,
  1555. message: stringNS.L_CoercionTypeNotSupported
  1556. };
  1557. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeGetSelectionNotMatchDataType]={
  1558. name: stringNS.L_DataReadError,
  1559. message: stringNS.L_GetSelectionNotSupported
  1560. };
  1561. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCoercionTypeNotMatchBinding]={
  1562. name: stringNS.L_InvalidCoercion,
  1563. message: stringNS.L_CoercionTypeNotMatchBinding
  1564. };
  1565. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidGetRowColumnCounts]={
  1566. name: stringNS.L_DataReadError,
  1567. message: stringNS.L_InvalidGetRowColumnCounts
  1568. };
  1569. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeSelectionNotSupportCoercionType]={
  1570. name: stringNS.L_DataReadError,
  1571. message: stringNS.L_SelectionNotSupportCoercionType
  1572. };
  1573. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidGetStartRowColumn]={
  1574. name: stringNS.L_DataReadError,
  1575. message: stringNS.L_InvalidGetStartRowColumn
  1576. };
  1577. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeNonUniformPartialGetNotSupported]={
  1578. name: stringNS.L_DataReadError,
  1579. message: stringNS.L_NonUniformPartialGetNotSupported
  1580. };
  1581. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeGetDataIsTooLarge]={
  1582. name: stringNS.L_DataReadError,
  1583. message: stringNS.L_GetDataIsTooLarge
  1584. };
  1585. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeFileTypeNotSupported]={
  1586. name: stringNS.L_DataReadError,
  1587. message: stringNS.L_FileTypeNotSupported
  1588. };
  1589. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeGetDataParametersConflict]={
  1590. name: stringNS.L_DataReadError,
  1591. message: stringNS.L_GetDataParametersConflict
  1592. };
  1593. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidGetColumns]={
  1594. name: stringNS.L_DataReadError,
  1595. message: stringNS.L_InvalidGetColumns
  1596. };
  1597. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidGetRows]={
  1598. name: stringNS.L_DataReadError,
  1599. message: stringNS.L_InvalidGetRows
  1600. };
  1601. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidReadForBlankRow]={
  1602. name: stringNS.L_DataReadError,
  1603. message: stringNS.L_InvalidReadForBlankRow
  1604. };
  1605. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeUnsupportedDataObject]={
  1606. name: stringNS.L_DataWriteError,
  1607. message: stringNS.L_UnsupportedDataObject
  1608. };
  1609. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCannotWriteToSelection]={
  1610. name: stringNS.L_DataWriteError,
  1611. message: stringNS.L_CannotWriteToSelection
  1612. };
  1613. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeDataNotMatchSelection]={
  1614. name: stringNS.L_DataWriteError,
  1615. message: stringNS.L_DataNotMatchSelection
  1616. };
  1617. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeOverwriteWorksheetData]={
  1618. name: stringNS.L_DataWriteError,
  1619. message: stringNS.L_OverwriteWorksheetData
  1620. };
  1621. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeDataNotMatchBindingSize]={
  1622. name: stringNS.L_DataWriteError,
  1623. message: stringNS.L_DataNotMatchBindingSize
  1624. };
  1625. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidSetStartRowColumn]={
  1626. name: stringNS.L_DataWriteError,
  1627. message: stringNS.L_InvalidSetStartRowColumn
  1628. };
  1629. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidDataFormat]={
  1630. name: stringNS.L_InvalidFormat,
  1631. message: stringNS.L_InvalidDataFormat
  1632. };
  1633. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeDataNotMatchCoercionType]={
  1634. name: stringNS.L_InvalidDataObject,
  1635. message: stringNS.L_DataNotMatchCoercionType
  1636. };
  1637. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeDataNotMatchBindingType]={
  1638. name: stringNS.L_InvalidDataObject,
  1639. message: stringNS.L_DataNotMatchBindingType
  1640. };
  1641. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeSetDataIsTooLarge]={
  1642. name: stringNS.L_DataWriteError,
  1643. message: stringNS.L_SetDataIsTooLarge
  1644. };
  1645. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeNonUniformPartialSetNotSupported]={
  1646. name: stringNS.L_DataWriteError,
  1647. message: stringNS.L_NonUniformPartialSetNotSupported
  1648. };
  1649. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidSetColumns]={
  1650. name: stringNS.L_DataWriteError,
  1651. message: stringNS.L_InvalidSetColumns
  1652. };
  1653. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidSetRows]={
  1654. name: stringNS.L_DataWriteError,
  1655. message: stringNS.L_InvalidSetRows
  1656. };
  1657. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeSetDataParametersConflict]={
  1658. name: stringNS.L_DataWriteError,
  1659. message: stringNS.L_SetDataParametersConflict
  1660. };
  1661. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeSelectionCannotBound]={
  1662. name: stringNS.L_BindingCreationError,
  1663. message: stringNS.L_SelectionCannotBound
  1664. };
  1665. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeBindingNotExist]={
  1666. name: stringNS.L_InvalidBindingError,
  1667. message: stringNS.L_BindingNotExist
  1668. };
  1669. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeBindingToMultipleSelection]={
  1670. name: stringNS.L_BindingCreationError,
  1671. message: stringNS.L_BindingToMultipleSelection
  1672. };
  1673. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidSelectionForBindingType]={
  1674. name: stringNS.L_BindingCreationError,
  1675. message: stringNS.L_InvalidSelectionForBindingType
  1676. };
  1677. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeOperationNotSupportedOnThisBindingType]={
  1678. name: stringNS.L_InvalidBindingOperation,
  1679. message: stringNS.L_OperationNotSupportedOnThisBindingType
  1680. };
  1681. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeNamedItemNotFound]={
  1682. name: stringNS.L_BindingCreationError,
  1683. message: stringNS.L_NamedItemNotFound
  1684. };
  1685. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeMultipleNamedItemFound]={
  1686. name: stringNS.L_BindingCreationError,
  1687. message: stringNS.L_MultipleNamedItemFound
  1688. };
  1689. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidNamedItemForBindingType]={
  1690. name: stringNS.L_BindingCreationError,
  1691. message: stringNS.L_InvalidNamedItemForBindingType
  1692. };
  1693. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeUnknownBindingType]={
  1694. name: stringNS.L_InvalidBinding,
  1695. message: stringNS.L_UnknownBindingType
  1696. };
  1697. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeOperationNotSupportedOnMatrixData]={
  1698. name: stringNS.L_InvalidBindingOperation,
  1699. message: stringNS.L_OperationNotSupportedOnMatrixData
  1700. };
  1701. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidColumnsForBinding]={
  1702. name: stringNS.L_InvalidBinding,
  1703. message: stringNS.L_InvalidColumnsForBinding
  1704. };
  1705. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeSettingNameNotExist]={
  1706. name: stringNS.L_ReadSettingsError,
  1707. message: stringNS.L_SettingNameNotExist
  1708. };
  1709. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeSettingsCannotSave]={
  1710. name: stringNS.L_SaveSettingsError,
  1711. message: stringNS.L_SettingsCannotSave
  1712. };
  1713. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeSettingsAreStale]={
  1714. name: stringNS.L_SettingsStaleError,
  1715. message: stringNS.L_SettingsAreStale
  1716. };
  1717. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeOperationNotSupported]={
  1718. name: stringNS.L_HostError,
  1719. message: stringNS.L_OperationNotSupported
  1720. };
  1721. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError]={
  1722. name: stringNS.L_InternalError,
  1723. message: stringNS.L_InternalErrorDescription
  1724. };
  1725. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeDocumentReadOnly]={
  1726. name: stringNS.L_PermissionDenied,
  1727. message: stringNS.L_DocumentReadOnly
  1728. };
  1729. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeEventHandlerNotExist]={
  1730. name: stringNS.L_EventRegistrationError,
  1731. message: stringNS.L_EventHandlerNotExist
  1732. };
  1733. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidApiCallInContext]={
  1734. name: stringNS.L_InvalidAPICall,
  1735. message: stringNS.L_InvalidApiCallInContext
  1736. };
  1737. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeShuttingDown]={
  1738. name: stringNS.L_ShuttingDown,
  1739. message: stringNS.L_ShuttingDown
  1740. };
  1741. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeUnsupportedEnumeration]={
  1742. name: stringNS.L_UnsupportedEnumeration,
  1743. message: stringNS.L_UnsupportedEnumerationMessage
  1744. };
  1745. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeIndexOutOfRange]={
  1746. name: stringNS.L_IndexOutOfRange,
  1747. message: stringNS.L_IndexOutOfRange
  1748. };
  1749. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeBrowserAPINotSupported]={
  1750. name: stringNS.L_APINotSupported,
  1751. message: stringNS.L_BrowserAPINotSupported
  1752. };
  1753. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeRequestTimeout]={
  1754. name: stringNS.L_APICallFailed,
  1755. message: stringNS.L_RequestTimeout
  1756. };
  1757. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeTooManyIncompleteRequests]={
  1758. name: stringNS.L_APICallFailed,
  1759. message: stringNS.L_TooManyIncompleteRequests
  1760. };
  1761. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeRequestTokenUnavailable]={
  1762. name: stringNS.L_APICallFailed,
  1763. message: stringNS.L_RequestTokenUnavailable
  1764. };
  1765. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeActivityLimitReached]={
  1766. name: stringNS.L_APICallFailed,
  1767. message: stringNS.L_ActivityLimitReached
  1768. };
  1769. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCustomXmlNodeNotFound]={
  1770. name: stringNS.L_InvalidNode,
  1771. message: stringNS.L_CustomXmlNodeNotFound
  1772. };
  1773. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCustomXmlError]={
  1774. name: stringNS.L_CustomXmlError,
  1775. message: stringNS.L_CustomXmlError
  1776. };
  1777. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCustomXmlExceedQuota]={
  1778. name: stringNS.L_CustomXmlExceedQuotaName,
  1779. message: stringNS.L_CustomXmlExceedQuotaMessage
  1780. };
  1781. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCustomXmlOutOfDate]={
  1782. name: stringNS.L_CustomXmlOutOfDateName,
  1783. message: stringNS.L_CustomXmlOutOfDateMessage
  1784. };
  1785. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeNoCapability]={
  1786. name: stringNS.L_PermissionDenied,
  1787. message: stringNS.L_NoCapability
  1788. };
  1789. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCannotNavTo]={
  1790. name: stringNS.L_CannotNavigateTo,
  1791. message: stringNS.L_CannotNavigateTo
  1792. };
  1793. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeSpecifiedIdNotExist]={
  1794. name: stringNS.L_SpecifiedIdNotExist,
  1795. message: stringNS.L_SpecifiedIdNotExist
  1796. };
  1797. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeNavOutOfBound]={
  1798. name: stringNS.L_NavOutOfBound,
  1799. message: stringNS.L_NavOutOfBound
  1800. };
  1801. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCellDataAmountBeyondLimits]={
  1802. name: stringNS.L_DataWriteReminder,
  1803. message: stringNS.L_CellDataAmountBeyondLimits
  1804. };
  1805. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeElementMissing]={
  1806. name: stringNS.L_MissingParameter,
  1807. message: stringNS.L_ElementMissing
  1808. };
  1809. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeProtectedError]={
  1810. name: stringNS.L_PermissionDenied,
  1811. message: stringNS.L_NoCapability
  1812. };
  1813. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidCellsValue]={
  1814. name: stringNS.L_InvalidValue,
  1815. message: stringNS.L_InvalidCellsValue
  1816. };
  1817. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidTableOptionValue]={
  1818. name: stringNS.L_InvalidValue,
  1819. message: stringNS.L_InvalidTableOptionValue
  1820. };
  1821. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidFormatValue]={
  1822. name: stringNS.L_InvalidValue,
  1823. message: stringNS.L_InvalidFormatValue
  1824. };
  1825. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeRowIndexOutOfRange]={
  1826. name: stringNS.L_OutOfRange,
  1827. message: stringNS.L_RowIndexOutOfRange
  1828. };
  1829. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeColIndexOutOfRange]={
  1830. name: stringNS.L_OutOfRange,
  1831. message: stringNS.L_ColIndexOutOfRange
  1832. };
  1833. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeFormatValueOutOfRange]={
  1834. name: stringNS.L_OutOfRange,
  1835. message: stringNS.L_FormatValueOutOfRange
  1836. };
  1837. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeCellFormatAmountBeyondLimits]={
  1838. name: stringNS.L_FormattingReminder,
  1839. message: stringNS.L_CellFormatAmountBeyondLimits
  1840. };
  1841. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeMemoryFileLimit]={
  1842. name: stringNS.L_MemoryLimit,
  1843. message: stringNS.L_CloseFileBeforeRetrieve
  1844. };
  1845. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeNetworkProblemRetrieveFile]={
  1846. name: stringNS.L_NetworkProblem,
  1847. message: stringNS.L_NetworkProblemRetrieveFile
  1848. };
  1849. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidSliceSize]={
  1850. name: stringNS.L_InvalidValue,
  1851. message: stringNS.L_SliceSizeNotSupported
  1852. };
  1853. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeDialogAlreadyOpened]={
  1854. name: stringNS.L_DisplayDialogError,
  1855. message: stringNS.L_DialogAlreadyOpened
  1856. };
  1857. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidWidth]={
  1858. name: stringNS.L_IndexOutOfRange,
  1859. message: stringNS.L_IndexOutOfRange
  1860. };
  1861. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidHeight]={
  1862. name: stringNS.L_IndexOutOfRange,
  1863. message: stringNS.L_IndexOutOfRange
  1864. };
  1865. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeNavigationError]={
  1866. name: stringNS.L_DisplayDialogError,
  1867. message: stringNS.L_NetworkProblem
  1868. };
  1869. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidScheme]={
  1870. name: stringNS.L_DialogNavigateError,
  1871. message: stringNS.L_DialogAddressNotTrusted
  1872. };
  1873. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeAppDomains]={
  1874. name: stringNS.L_DisplayDialogError,
  1875. message: stringNS.L_DialogAddressNotTrusted
  1876. };
  1877. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeRequireHTTPS]={
  1878. name: stringNS.L_DisplayDialogError,
  1879. message: stringNS.L_DialogAddressNotTrusted
  1880. };
  1881. _errorMappings[OSF.DDA.ErrorCodeManager.errorCodes.ooeEndUserIgnore]={
  1882. name: stringNS.L_DisplayDialogError,
  1883. message: stringNS.L_UserClickIgnore
  1884. }
  1885. }
  1886. }
  1887. }();
  1888. var OfficeExt;
  1889. (function(OfficeExt)
  1890. {
  1891. var Requirement;
  1892. (function(Requirement)
  1893. {
  1894. var RequirementMatrix=function()
  1895. {
  1896. function RequirementMatrix(_setMap)
  1897. {
  1898. this.isSetSupported=function _isSetSupported(name, minVersion)
  1899. {
  1900. if(name==undefined)
  1901. return false;
  1902. if(minVersion==undefined)
  1903. minVersion=0;
  1904. var setSupportArray=this._setMap;
  1905. var sets=setSupportArray._sets;
  1906. if(sets.hasOwnProperty(name.toLowerCase()))
  1907. {
  1908. var setMaxVersion=sets[name.toLowerCase()];
  1909. return setMaxVersion > 0 && setMaxVersion >=minVersion
  1910. }
  1911. else
  1912. return false
  1913. };
  1914. this._setMap=_setMap;
  1915. this.isSetSupported=this.isSetSupported.bind(this)
  1916. }
  1917. return RequirementMatrix
  1918. }();
  1919. Requirement.RequirementMatrix=RequirementMatrix;
  1920. var DefaultSetRequirement=function()
  1921. {
  1922. function DefaultSetRequirement(setMap)
  1923. {
  1924. this._addSetMap=function DefaultSetRequirement_addSetMap(addedSet)
  1925. {
  1926. for(var name in addedSet)
  1927. this._sets[name]=addedSet[name]
  1928. };
  1929. this._sets=setMap
  1930. }
  1931. return DefaultSetRequirement
  1932. }();
  1933. Requirement.DefaultSetRequirement=DefaultSetRequirement;
  1934. var ExcelClientDefaultSetRequirement=function(_super)
  1935. {
  1936. __extends(ExcelClientDefaultSetRequirement,_super);
  1937. function ExcelClientDefaultSetRequirement()
  1938. {
  1939. _super.call(this,{
  1940. bindingevents: 1.1,
  1941. documentevents: 1.1,
  1942. excelapi: 1.1,
  1943. matrixbindings: 1.1,
  1944. matrixcoercion: 1.1,
  1945. selection: 1.1,
  1946. settings: 1.1,
  1947. tablebindings: 1.1,
  1948. tablecoercion: 1.1,
  1949. textbindings: 1.1,
  1950. textcoercion: 1.1
  1951. })
  1952. }
  1953. return ExcelClientDefaultSetRequirement
  1954. }(DefaultSetRequirement);
  1955. Requirement.ExcelClientDefaultSetRequirement=ExcelClientDefaultSetRequirement;
  1956. var ExcelClientV1DefaultSetRequirement=function(_super)
  1957. {
  1958. __extends(ExcelClientV1DefaultSetRequirement,_super);
  1959. function ExcelClientV1DefaultSetRequirement()
  1960. {
  1961. _super.call(this);
  1962. this._addSetMap({imagecoercion: 1.1})
  1963. }
  1964. return ExcelClientV1DefaultSetRequirement
  1965. }(ExcelClientDefaultSetRequirement);
  1966. Requirement.ExcelClientV1DefaultSetRequirement=ExcelClientV1DefaultSetRequirement;
  1967. var OutlookClientDefaultSetRequirement=function(_super)
  1968. {
  1969. __extends(OutlookClientDefaultSetRequirement,_super);
  1970. function OutlookClientDefaultSetRequirement()
  1971. {
  1972. _super.call(this,{mailbox: 1.3})
  1973. }
  1974. return OutlookClientDefaultSetRequirement
  1975. }(DefaultSetRequirement);
  1976. Requirement.OutlookClientDefaultSetRequirement=OutlookClientDefaultSetRequirement;
  1977. var WordClientDefaultSetRequirement=function(_super)
  1978. {
  1979. __extends(WordClientDefaultSetRequirement,_super);
  1980. function WordClientDefaultSetRequirement()
  1981. {
  1982. _super.call(this,{
  1983. bindingevents: 1.1,
  1984. compressedfile: 1.1,
  1985. customxmlparts: 1.1,
  1986. documentevents: 1.1,
  1987. file: 1.1,
  1988. htmlcoercion: 1.1,
  1989. matrixbindings: 1.1,
  1990. matrixcoercion: 1.1,
  1991. ooxmlcoercion: 1.1,
  1992. pdffile: 1.1,
  1993. selection: 1.1,
  1994. settings: 1.1,
  1995. tablebindings: 1.1,
  1996. tablecoercion: 1.1,
  1997. textbindings: 1.1,
  1998. textcoercion: 1.1,
  1999. textfile: 1.1,
  2000. wordapi: 1.1
  2001. })
  2002. }
  2003. return WordClientDefaultSetRequirement
  2004. }(DefaultSetRequirement);
  2005. Requirement.WordClientDefaultSetRequirement=WordClientDefaultSetRequirement;
  2006. var WordClientV1DefaultSetRequirement=function(_super)
  2007. {
  2008. __extends(WordClientV1DefaultSetRequirement,_super);
  2009. function WordClientV1DefaultSetRequirement()
  2010. {
  2011. _super.call(this);
  2012. this._addSetMap({
  2013. customxmlparts: 1.2,
  2014. wordapi: 1.2,
  2015. imagecoercion: 1.1
  2016. })
  2017. }
  2018. return WordClientV1DefaultSetRequirement
  2019. }(WordClientDefaultSetRequirement);
  2020. Requirement.WordClientV1DefaultSetRequirement=WordClientV1DefaultSetRequirement;
  2021. var PowerpointClientDefaultSetRequirement=function(_super)
  2022. {
  2023. __extends(PowerpointClientDefaultSetRequirement,_super);
  2024. function PowerpointClientDefaultSetRequirement()
  2025. {
  2026. _super.call(this,{
  2027. activeview: 1.1,
  2028. compressedfile: 1.1,
  2029. documentevents: 1.1,
  2030. file: 1.1,
  2031. pdffile: 1.1,
  2032. selection: 1.1,
  2033. settings: 1.1,
  2034. textcoercion: 1.1
  2035. })
  2036. }
  2037. return PowerpointClientDefaultSetRequirement
  2038. }(DefaultSetRequirement);
  2039. Requirement.PowerpointClientDefaultSetRequirement=PowerpointClientDefaultSetRequirement;
  2040. var PowerpointClientV1DefaultSetRequirement=function(_super)
  2041. {
  2042. __extends(PowerpointClientV1DefaultSetRequirement,_super);
  2043. function PowerpointClientV1DefaultSetRequirement()
  2044. {
  2045. _super.call(this);
  2046. this._addSetMap({imagecoercion: 1.1})
  2047. }
  2048. return PowerpointClientV1DefaultSetRequirement
  2049. }(PowerpointClientDefaultSetRequirement);
  2050. Requirement.PowerpointClientV1DefaultSetRequirement=PowerpointClientV1DefaultSetRequirement;
  2051. var ProjectClientDefaultSetRequirement=function(_super)
  2052. {
  2053. __extends(ProjectClientDefaultSetRequirement,_super);
  2054. function ProjectClientDefaultSetRequirement()
  2055. {
  2056. _super.call(this,{
  2057. selection: 1.1,
  2058. textcoercion: 1.1
  2059. })
  2060. }
  2061. return ProjectClientDefaultSetRequirement
  2062. }(DefaultSetRequirement);
  2063. Requirement.ProjectClientDefaultSetRequirement=ProjectClientDefaultSetRequirement;
  2064. var ExcelWebDefaultSetRequirement=function(_super)
  2065. {
  2066. __extends(ExcelWebDefaultSetRequirement,_super);
  2067. function ExcelWebDefaultSetRequirement()
  2068. {
  2069. _super.call(this,{
  2070. bindingevents: 1.1,
  2071. dialogapi: 1.1,
  2072. documentevents: 1.1,
  2073. matrixbindings: 1.1,
  2074. matrixcoercion: 1.1,
  2075. selection: 1.1,
  2076. settings: 1.1,
  2077. tablebindings: 1.1,
  2078. tablecoercion: 1.1,
  2079. textbindings: 1.1,
  2080. textcoercion: 1.1,
  2081. file: 1.1
  2082. })
  2083. }
  2084. return ExcelWebDefaultSetRequirement
  2085. }(DefaultSetRequirement);
  2086. Requirement.ExcelWebDefaultSetRequirement=ExcelWebDefaultSetRequirement;
  2087. var WordWebDefaultSetRequirement=function(_super)
  2088. {
  2089. __extends(WordWebDefaultSetRequirement,_super);
  2090. function WordWebDefaultSetRequirement()
  2091. {
  2092. _super.call(this,{
  2093. bindingevents: 1.1,
  2094. compressedfile: 1.1,
  2095. customxmlparts: 1.1,
  2096. dialogapi: 1.1,
  2097. documentevents: 1.1,
  2098. file: 1.1,
  2099. htmlcoercion: 1.1,
  2100. imagecoercion: 1.1,
  2101. matrixbindings: 1.1,
  2102. matrixcoercion: 1.1,
  2103. ooxmlcoercion: 1.1,
  2104. pdffile: 1.1,
  2105. selection: 1.1,
  2106. settings: 1.1,
  2107. tablebindings: 1.1,
  2108. tablecoercion: 1.1,
  2109. textbindings: 1.1,
  2110. textcoercion: 1.1,
  2111. textfile: 1.1,
  2112. wordapi: 1.2
  2113. })
  2114. }
  2115. return WordWebDefaultSetRequirement
  2116. }(DefaultSetRequirement);
  2117. Requirement.WordWebDefaultSetRequirement=WordWebDefaultSetRequirement;
  2118. var PowerpointWebDefaultSetRequirement=function(_super)
  2119. {
  2120. __extends(PowerpointWebDefaultSetRequirement,_super);
  2121. function PowerpointWebDefaultSetRequirement()
  2122. {
  2123. _super.call(this,{
  2124. activeview: 1.1,
  2125. dialogapi: 1.1,
  2126. settings: 1.1
  2127. })
  2128. }
  2129. return PowerpointWebDefaultSetRequirement
  2130. }(DefaultSetRequirement);
  2131. Requirement.PowerpointWebDefaultSetRequirement=PowerpointWebDefaultSetRequirement;
  2132. var OutlookWebDefaultSetRequirement=function(_super)
  2133. {
  2134. __extends(OutlookWebDefaultSetRequirement,_super);
  2135. function OutlookWebDefaultSetRequirement()
  2136. {
  2137. _super.call(this,{mailbox: 1.3})
  2138. }
  2139. return OutlookWebDefaultSetRequirement
  2140. }(DefaultSetRequirement);
  2141. Requirement.OutlookWebDefaultSetRequirement=OutlookWebDefaultSetRequirement;
  2142. var SwayWebDefaultSetRequirement=function(_super)
  2143. {
  2144. __extends(SwayWebDefaultSetRequirement,_super);
  2145. function SwayWebDefaultSetRequirement()
  2146. {
  2147. _super.call(this,{
  2148. activeview: 1.1,
  2149. documentevents: 1.1,
  2150. selection: 1.1,
  2151. settings: 1.1,
  2152. textcoercion: 1.1
  2153. })
  2154. }
  2155. return SwayWebDefaultSetRequirement
  2156. }(DefaultSetRequirement);
  2157. Requirement.SwayWebDefaultSetRequirement=SwayWebDefaultSetRequirement;
  2158. var AccessWebDefaultSetRequirement=function(_super)
  2159. {
  2160. __extends(AccessWebDefaultSetRequirement,_super);
  2161. function AccessWebDefaultSetRequirement()
  2162. {
  2163. _super.call(this,{
  2164. bindingevents: 1.1,
  2165. partialtablebindings: 1.1,
  2166. settings: 1.1,
  2167. tablebindings: 1.1,
  2168. tablecoercion: 1.1
  2169. })
  2170. }
  2171. return AccessWebDefaultSetRequirement
  2172. }(DefaultSetRequirement);
  2173. Requirement.AccessWebDefaultSetRequirement=AccessWebDefaultSetRequirement;
  2174. var ExcelIOSDefaultSetRequirement=function(_super)
  2175. {
  2176. __extends(ExcelIOSDefaultSetRequirement,_super);
  2177. function ExcelIOSDefaultSetRequirement()
  2178. {
  2179. _super.call(this,{
  2180. bindingevents: 1.1,
  2181. documentevents: 1.1,
  2182. matrixbindings: 1.1,
  2183. matrixcoercion: 1.1,
  2184. selection: 1.1,
  2185. settings: 1.1,
  2186. tablebindings: 1.1,
  2187. tablecoercion: 1.1,
  2188. textbindings: 1.1,
  2189. textcoercion: 1.1
  2190. })
  2191. }
  2192. return ExcelIOSDefaultSetRequirement
  2193. }(DefaultSetRequirement);
  2194. Requirement.ExcelIOSDefaultSetRequirement=ExcelIOSDefaultSetRequirement;
  2195. var WordIOSDefaultSetRequirement=function(_super)
  2196. {
  2197. __extends(WordIOSDefaultSetRequirement,_super);
  2198. function WordIOSDefaultSetRequirement()
  2199. {
  2200. _super.call(this,{
  2201. bindingevents: 1.1,
  2202. compressedfile: 1.1,
  2203. customxmlparts: 1.1,
  2204. documentevents: 1.1,
  2205. file: 1.1,
  2206. htmlcoercion: 1.1,
  2207. matrixbindings: 1.1,
  2208. matrixcoercion: 1.1,
  2209. ooxmlcoercion: 1.1,
  2210. pdffile: 1.1,
  2211. selection: 1.1,
  2212. settings: 1.1,
  2213. tablebindings: 1.1,
  2214. tablecoercion: 1.1,
  2215. textbindings: 1.1,
  2216. textcoercion: 1.1,
  2217. textfile: 1.1
  2218. })
  2219. }
  2220. return WordIOSDefaultSetRequirement
  2221. }(DefaultSetRequirement);
  2222. Requirement.WordIOSDefaultSetRequirement=WordIOSDefaultSetRequirement;
  2223. var WordIOSV1DefaultSetRequirement=function(_super)
  2224. {
  2225. __extends(WordIOSV1DefaultSetRequirement,_super);
  2226. function WordIOSV1DefaultSetRequirement()
  2227. {
  2228. _super.call(this);
  2229. this._addSetMap({
  2230. customxmlparts: 1.2,
  2231. wordapi: 1.2
  2232. })
  2233. }
  2234. return WordIOSV1DefaultSetRequirement
  2235. }(WordIOSDefaultSetRequirement);
  2236. Requirement.WordIOSV1DefaultSetRequirement=WordIOSV1DefaultSetRequirement;
  2237. var PowerpointIOSDefaultSetRequirement=function(_super)
  2238. {
  2239. __extends(PowerpointIOSDefaultSetRequirement,_super);
  2240. function PowerpointIOSDefaultSetRequirement()
  2241. {
  2242. _super.call(this,{
  2243. activeview: 1.1,
  2244. compressedfile: 1.1,
  2245. documentevents: 1.1,
  2246. file: 1.1,
  2247. pdffile: 1.1,
  2248. selection: 1.1,
  2249. settings: 1.1,
  2250. textcoercion: 1.1
  2251. })
  2252. }
  2253. return PowerpointIOSDefaultSetRequirement
  2254. }(DefaultSetRequirement);
  2255. Requirement.PowerpointIOSDefaultSetRequirement=PowerpointIOSDefaultSetRequirement;
  2256. var OutlookIOSDefaultSetRequirement=function(_super)
  2257. {
  2258. __extends(OutlookIOSDefaultSetRequirement,_super);
  2259. function OutlookIOSDefaultSetRequirement()
  2260. {
  2261. _super.call(this,{mailbox: 1.1})
  2262. }
  2263. return OutlookIOSDefaultSetRequirement
  2264. }(DefaultSetRequirement);
  2265. Requirement.OutlookIOSDefaultSetRequirement=OutlookIOSDefaultSetRequirement;
  2266. var RequirementsMatrixFactory=function()
  2267. {
  2268. function RequirementsMatrixFactory(){}
  2269. RequirementsMatrixFactory.initializeOsfDda=function()
  2270. {
  2271. OSF.OUtil.setNamespace("Requirement",OSF.DDA)
  2272. };
  2273. RequirementsMatrixFactory.getDefaultRequirementMatrix=function(appContext)
  2274. {
  2275. this.initializeDefaultSetMatrix();
  2276. var defaultRequirementMatrix=undefined;
  2277. var clientRequirement=appContext.get_requirementMatrix();
  2278. if(clientRequirement !=undefined && clientRequirement.length > 0 && typeof JSON !=="undefined")
  2279. {
  2280. var matrixItem=JSON.parse(appContext.get_requirementMatrix().toLowerCase());
  2281. defaultRequirementMatrix=new RequirementMatrix(new DefaultSetRequirement(matrixItem))
  2282. }
  2283. else
  2284. {
  2285. var appLocator=RequirementsMatrixFactory.getClientFullVersionString(appContext);
  2286. if(RequirementsMatrixFactory.DefaultSetArrayMatrix !=undefined && RequirementsMatrixFactory.DefaultSetArrayMatrix[appLocator] !=undefined)
  2287. defaultRequirementMatrix=new RequirementMatrix(RequirementsMatrixFactory.DefaultSetArrayMatrix[appLocator]);
  2288. else
  2289. defaultRequirementMatrix=new RequirementMatrix(new DefaultSetRequirement({}))
  2290. }
  2291. return defaultRequirementMatrix
  2292. };
  2293. RequirementsMatrixFactory.getClientFullVersionString=function(appContext)
  2294. {
  2295. var appMinorVersion=appContext.get_appMinorVersion();
  2296. var appMinorVersionString="";
  2297. var appFullVersion="";
  2298. var appName=appContext.get_appName();
  2299. var isIOSClient=appName==1024 || appName==4096 || appName==8192 || appName==65536;
  2300. if(isIOSClient && appContext.get_appVersion()==1)
  2301. if(appName==4096 && appMinorVersion >=15)
  2302. appFullVersion="16.00.01";
  2303. else
  2304. appFullVersion="16.00";
  2305. else if(appContext.get_appName()==64)
  2306. appFullVersion=appContext.get_appVersion();
  2307. else
  2308. {
  2309. if(appMinorVersion < 10)
  2310. appMinorVersionString="0"+appMinorVersion;
  2311. else
  2312. appMinorVersionString=""+appMinorVersion;
  2313. appFullVersion=appContext.get_appVersion()+"."+appMinorVersionString
  2314. }
  2315. return appContext.get_appName()+"-"+appFullVersion
  2316. };
  2317. RequirementsMatrixFactory.initializeDefaultSetMatrix=function()
  2318. {
  2319. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Excel_RCLIENT_1600]=new ExcelClientDefaultSetRequirement;
  2320. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Word_RCLIENT_1600]=new WordClientDefaultSetRequirement;
  2321. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.PowerPoint_RCLIENT_1600]=new PowerpointClientDefaultSetRequirement;
  2322. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Excel_RCLIENT_1601]=new ExcelClientV1DefaultSetRequirement;
  2323. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Word_RCLIENT_1601]=new WordClientV1DefaultSetRequirement;
  2324. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.PowerPoint_RCLIENT_1601]=new PowerpointClientV1DefaultSetRequirement;
  2325. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Outlook_RCLIENT_1600]=new OutlookClientDefaultSetRequirement;
  2326. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Excel_WAC_1600]=new ExcelWebDefaultSetRequirement;
  2327. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Word_WAC_1600]=new WordWebDefaultSetRequirement;
  2328. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Outlook_WAC_1600]=new OutlookWebDefaultSetRequirement;
  2329. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Outlook_WAC_1601]=new OutlookWebDefaultSetRequirement;
  2330. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Project_RCLIENT_1600]=new ProjectClientDefaultSetRequirement;
  2331. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Access_WAC_1600]=new AccessWebDefaultSetRequirement;
  2332. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.PowerPoint_WAC_1600]=new PowerpointWebDefaultSetRequirement;
  2333. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Excel_IOS_1600]=new ExcelIOSDefaultSetRequirement;
  2334. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.SWAY_WAC_1600]=new SwayWebDefaultSetRequirement;
  2335. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Word_IOS_1600]=new WordIOSDefaultSetRequirement;
  2336. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Word_IOS_16001]=new WordIOSV1DefaultSetRequirement;
  2337. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.PowerPoint_IOS_1600]=new PowerpointIOSDefaultSetRequirement;
  2338. RequirementsMatrixFactory.DefaultSetArrayMatrix[RequirementsMatrixFactory.Outlook_IOS_1600]=new OutlookIOSDefaultSetRequirement
  2339. };
  2340. RequirementsMatrixFactory.Excel_RCLIENT_1600="1-16.00";
  2341. RequirementsMatrixFactory.Excel_RCLIENT_1601="1-16.01";
  2342. RequirementsMatrixFactory.Word_RCLIENT_1600="2-16.00";
  2343. RequirementsMatrixFactory.Word_RCLIENT_1601="2-16.01";
  2344. RequirementsMatrixFactory.PowerPoint_RCLIENT_1600="4-16.00";
  2345. RequirementsMatrixFactory.PowerPoint_RCLIENT_1601="4-16.01";
  2346. RequirementsMatrixFactory.Outlook_RCLIENT_1600="8-16.00";
  2347. RequirementsMatrixFactory.Excel_WAC_1600="16-16.00";
  2348. RequirementsMatrixFactory.Word_WAC_1600="32-16.00";
  2349. RequirementsMatrixFactory.Outlook_WAC_1600="64-16.00";
  2350. RequirementsMatrixFactory.Outlook_WAC_1601="64-16.01";
  2351. RequirementsMatrixFactory.Project_RCLIENT_1600="128-16.00";
  2352. RequirementsMatrixFactory.Access_WAC_1600="256-16.00";
  2353. RequirementsMatrixFactory.PowerPoint_WAC_1600="512-16.00";
  2354. RequirementsMatrixFactory.Excel_IOS_1600="1024-16.00";
  2355. RequirementsMatrixFactory.SWAY_WAC_1600="2048-16.00";
  2356. RequirementsMatrixFactory.Word_IOS_1600="4096-16.00";
  2357. RequirementsMatrixFactory.Word_IOS_16001="4096-16.00.01";
  2358. RequirementsMatrixFactory.PowerPoint_IOS_1600="8192-16.00";
  2359. RequirementsMatrixFactory.Outlook_IOS_1600="65536-16.00";
  2360. RequirementsMatrixFactory.DefaultSetArrayMatrix={};
  2361. return RequirementsMatrixFactory
  2362. }();
  2363. Requirement.RequirementsMatrixFactory=RequirementsMatrixFactory
  2364. })(Requirement=OfficeExt.Requirement || (OfficeExt.Requirement={}))
  2365. })(OfficeExt || (OfficeExt={}));
  2366. OfficeExt.Requirement.RequirementsMatrixFactory.initializeOsfDda();
  2367. Microsoft.Office.WebExtension.ApplicationMode={
  2368. WebEditor: "webEditor",
  2369. WebViewer: "webViewer",
  2370. Client: "client"
  2371. };
  2372. Microsoft.Office.WebExtension.DocumentMode={
  2373. ReadOnly: "readOnly",
  2374. ReadWrite: "readWrite"
  2375. };
  2376. OSF.NamespaceManager=function OSF_NamespaceManager()
  2377. {
  2378. var _userOffice;
  2379. var _useShortcut=false;
  2380. return{
  2381. enableShortcut: function OSF_NamespaceManager$enableShortcut()
  2382. {
  2383. if(!_useShortcut)
  2384. {
  2385. if(window.Office)
  2386. _userOffice=window.Office;
  2387. else
  2388. OSF.OUtil.setNamespace("Office",window);
  2389. window.Office=Microsoft.Office.WebExtension;
  2390. _useShortcut=true
  2391. }
  2392. },
  2393. disableShortcut: function OSF_NamespaceManager$disableShortcut()
  2394. {
  2395. if(_useShortcut)
  2396. {
  2397. if(_userOffice)
  2398. window.Office=_userOffice;
  2399. else
  2400. OSF.OUtil.unsetNamespace("Office",window);
  2401. _useShortcut=false
  2402. }
  2403. }
  2404. }
  2405. }();
  2406. OSF.NamespaceManager.enableShortcut();
  2407. Microsoft.Office.WebExtension.useShortNamespace=function Microsoft_Office_WebExtension_useShortNamespace(useShortcut)
  2408. {
  2409. if(useShortcut)
  2410. OSF.NamespaceManager.enableShortcut();
  2411. else
  2412. OSF.NamespaceManager.disableShortcut()
  2413. };
  2414. Microsoft.Office.WebExtension.select=function Microsoft_Office_WebExtension_select(str, errorCallback)
  2415. {
  2416. var promise;
  2417. if(str && typeof str=="string")
  2418. {
  2419. var index=str.indexOf("#");
  2420. if(index !=-1)
  2421. {
  2422. var op=str.substring(0,index);
  2423. var target=str.substring(index+1);
  2424. switch(op)
  2425. {
  2426. case"binding":
  2427. case"bindings":
  2428. if(target)
  2429. promise=new OSF.DDA.BindingPromise(target);
  2430. break
  2431. }
  2432. }
  2433. }
  2434. if(!promise)
  2435. {
  2436. if(errorCallback)
  2437. {
  2438. var callbackType=typeof errorCallback;
  2439. if(callbackType=="function")
  2440. {
  2441. var callArgs={};
  2442. callArgs[Microsoft.Office.WebExtension.Parameters.Callback]=errorCallback;
  2443. OSF.DDA.issueAsyncResult(callArgs,OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidApiCallInContext,OSF.DDA.ErrorCodeManager.getErrorArgs(OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidApiCallInContext))
  2444. }
  2445. else
  2446. throw OSF.OUtil.formatString(Strings.OfficeOM.L_CallbackNotAFunction,callbackType);
  2447. }
  2448. }
  2449. else
  2450. {
  2451. promise.onFail=errorCallback;
  2452. return promise
  2453. }
  2454. };
  2455. OSF.DDA.Context=function OSF_DDA_Context(officeAppContext, document, license, appOM, getOfficeTheme)
  2456. {
  2457. OSF.OUtil.defineEnumerableProperties(this,{
  2458. contentLanguage: {value: officeAppContext.get_dataLocale()},
  2459. displayLanguage: {value: officeAppContext.get_appUILocale()},
  2460. touchEnabled: {value: officeAppContext.get_touchEnabled()},
  2461. commerceAllowed: {value: officeAppContext.get_commerceAllowed()}
  2462. });
  2463. if(license)
  2464. OSF.OUtil.defineEnumerableProperty(this,"license",{value: license});
  2465. if(officeAppContext.ui)
  2466. OSF.OUtil.defineEnumerableProperty(this,"ui",{value: officeAppContext.ui});
  2467. if(!officeAppContext.get_isDialog())
  2468. {
  2469. if(document)
  2470. OSF.OUtil.defineEnumerableProperty(this,"document",{value: document});
  2471. if(appOM)
  2472. {
  2473. var displayName=appOM.displayName || "appOM";
  2474. delete appOM.displayName;
  2475. OSF.OUtil.defineEnumerableProperty(this,displayName,{value: appOM})
  2476. }
  2477. if(getOfficeTheme)
  2478. OSF.OUtil.defineEnumerableProperty(this,"officeTheme",{get: function()
  2479. {
  2480. return getOfficeTheme()
  2481. }});
  2482. var requirements=OfficeExt.Requirement.RequirementsMatrixFactory.getDefaultRequirementMatrix(officeAppContext);
  2483. OSF.OUtil.defineEnumerableProperty(this,"requirements",{value: requirements})
  2484. }
  2485. };
  2486. OSF.DDA.OutlookContext=function OSF_DDA_OutlookContext(appContext, settings, license, appOM, getOfficeTheme)
  2487. {
  2488. OSF.DDA.OutlookContext.uber.constructor.call(this,appContext,null,license,appOM,getOfficeTheme);
  2489. if(settings)
  2490. OSF.OUtil.defineEnumerableProperty(this,"roamingSettings",{value: settings})
  2491. };
  2492. OSF.OUtil.extend(OSF.DDA.OutlookContext,OSF.DDA.Context);
  2493. OSF.DDA.OutlookAppOm=function OSF_DDA_OutlookAppOm(appContext, window, appReady){};
  2494. OSF.DDA.Document=function OSF_DDA_Document(officeAppContext, settings)
  2495. {
  2496. var mode;
  2497. switch(officeAppContext.get_clientMode())
  2498. {
  2499. case OSF.ClientMode.ReadOnly:
  2500. mode=Microsoft.Office.WebExtension.DocumentMode.ReadOnly;
  2501. break;
  2502. case OSF.ClientMode.ReadWrite:
  2503. mode=Microsoft.Office.WebExtension.DocumentMode.ReadWrite;
  2504. break
  2505. }
  2506. if(settings)
  2507. OSF.OUtil.defineEnumerableProperty(this,"settings",{value: settings});
  2508. OSF.OUtil.defineMutableProperties(this,{
  2509. mode: {value: mode},
  2510. url: {value: officeAppContext.get_docUrl()}
  2511. })
  2512. };
  2513. OSF.DDA.JsomDocument=function OSF_DDA_JsomDocument(officeAppContext, bindingFacade, settings)
  2514. {
  2515. OSF.DDA.JsomDocument.uber.constructor.call(this,officeAppContext,settings);
  2516. if(bindingFacade)
  2517. OSF.OUtil.defineEnumerableProperty(this,"bindings",{get: function OSF_DDA_Document$GetBindings()
  2518. {
  2519. return bindingFacade
  2520. }});
  2521. var am=OSF.DDA.AsyncMethodNames;
  2522. OSF.DDA.DispIdHost.addAsyncMethods(this,[am.GetSelectedDataAsync,am.SetSelectedDataAsync]);
  2523. OSF.DDA.DispIdHost.addEventSupport(this,new OSF.EventDispatch([Microsoft.Office.WebExtension.EventType.DocumentSelectionChanged]))
  2524. };
  2525. OSF.OUtil.extend(OSF.DDA.JsomDocument,OSF.DDA.Document);
  2526. OSF.OUtil.defineEnumerableProperty(Microsoft.Office.WebExtension,"context",{get: function Microsoft_Office_WebExtension$GetContext()
  2527. {
  2528. var context;
  2529. if(OSF && OSF._OfficeAppFactory)
  2530. context=OSF._OfficeAppFactory.getContext();
  2531. return context
  2532. }});
  2533. OSF.DDA.License=function OSF_DDA_License(eToken)
  2534. {
  2535. OSF.OUtil.defineEnumerableProperty(this,"value",{value: eToken})
  2536. };
  2537. OSF.DDA.ApiMethodCall=function OSF_DDA_ApiMethodCall(requiredParameters, supportedOptions, privateStateCallbacks, checkCallArgs, displayName)
  2538. {
  2539. var requiredCount=requiredParameters.length;
  2540. var getInvalidParameterString=OSF.OUtil.delayExecutionAndCache(function()
  2541. {
  2542. return OSF.OUtil.formatString(Strings.OfficeOM.L_InvalidParameters,displayName)
  2543. });
  2544. this.verifyArguments=function OSF_DDA_ApiMethodCall$VerifyArguments(params, args)
  2545. {
  2546. for(var name in params)
  2547. {
  2548. var param=params[name];
  2549. var arg=args[name];
  2550. if(param["enum"])
  2551. switch(typeof arg)
  2552. {
  2553. case"string":
  2554. if(OSF.OUtil.listContainsValue(param["enum"],arg))
  2555. break;
  2556. case"undefined":
  2557. throw OSF.DDA.ErrorCodeManager.errorCodes.ooeUnsupportedEnumeration;
  2558. default:
  2559. throw getInvalidParameterString();
  2560. }
  2561. if(param["types"])
  2562. if(!OSF.OUtil.listContainsValue(param["types"],typeof arg))
  2563. throw getInvalidParameterString();
  2564. }
  2565. };
  2566. this.extractRequiredArguments=function OSF_DDA_ApiMethodCall$ExtractRequiredArguments(userArgs, caller, stateInfo)
  2567. {
  2568. if(userArgs.length < requiredCount)
  2569. throw OsfMsAjaxFactory.msAjaxError.parameterCount(Strings.OfficeOM.L_MissingRequiredArguments);
  2570. var requiredArgs=[];
  2571. var index;
  2572. for(index=0; index < requiredCount; index++)
  2573. requiredArgs.push(userArgs[index]);
  2574. this.verifyArguments(requiredParameters,requiredArgs);
  2575. var ret={};
  2576. for(index=0; index < requiredCount; index++)
  2577. {
  2578. var param=requiredParameters[index];
  2579. var arg=requiredArgs[index];
  2580. if(param.verify)
  2581. {
  2582. var isValid=param.verify(arg,caller,stateInfo);
  2583. if(!isValid)
  2584. throw getInvalidParameterString();
  2585. }
  2586. ret[param.name]=arg
  2587. }
  2588. return ret
  2589. },this.fillOptions=function OSF_DDA_ApiMethodCall$FillOptions(options, requiredArgs, caller, stateInfo)
  2590. {
  2591. options=options || {};
  2592. for(var optionName in supportedOptions)
  2593. if(!OSF.OUtil.listContainsKey(options,optionName))
  2594. {
  2595. var value=undefined;
  2596. var option=supportedOptions[optionName];
  2597. if(option.calculate && requiredArgs)
  2598. value=option.calculate(requiredArgs,caller,stateInfo);
  2599. if(!value && option.defaultValue !==undefined)
  2600. value=option.defaultValue;
  2601. options[optionName]=value
  2602. }
  2603. return options
  2604. };
  2605. this.constructCallArgs=function OSF_DAA_ApiMethodCall$ConstructCallArgs(required, options, caller, stateInfo)
  2606. {
  2607. var callArgs={};
  2608. for(var r in required)
  2609. callArgs[r]=required[r];
  2610. for(var o in options)
  2611. callArgs[o]=options[o];
  2612. for(var s in privateStateCallbacks)
  2613. callArgs[s]=privateStateCallbacks[s](caller,stateInfo);
  2614. if(checkCallArgs)
  2615. callArgs=checkCallArgs(callArgs,caller,stateInfo);
  2616. return callArgs
  2617. }
  2618. };
  2619. OSF.OUtil.setNamespace("AsyncResultEnum",OSF.DDA);
  2620. OSF.DDA.AsyncResultEnum.Properties={
  2621. Context: "Context",
  2622. Value: "Value",
  2623. Status: "Status",
  2624. Error: "Error"
  2625. };
  2626. Microsoft.Office.WebExtension.AsyncResultStatus={
  2627. Succeeded: "succeeded",
  2628. Failed: "failed"
  2629. };
  2630. OSF.DDA.AsyncResultEnum.ErrorCode={
  2631. Success: 0,
  2632. Failed: 1
  2633. };
  2634. OSF.DDA.AsyncResultEnum.ErrorProperties={
  2635. Name: "Name",
  2636. Message: "Message",
  2637. Code: "Code"
  2638. };
  2639. OSF.DDA.AsyncMethodNames={};
  2640. OSF.DDA.AsyncMethodNames.addNames=function(methodNames)
  2641. {
  2642. for(var entry in methodNames)
  2643. {
  2644. var am={};
  2645. OSF.OUtil.defineEnumerableProperties(am,{
  2646. id: {value: entry},
  2647. displayName: {value: methodNames[entry]}
  2648. });
  2649. OSF.DDA.AsyncMethodNames[entry]=am
  2650. }
  2651. };
  2652. OSF.DDA.AsyncMethodCall=function OSF_DDA_AsyncMethodCall(requiredParameters, supportedOptions, privateStateCallbacks, onSucceeded, onFailed, checkCallArgs, displayName)
  2653. {
  2654. var requiredCount=requiredParameters.length;
  2655. var apiMethods=new OSF.DDA.ApiMethodCall(requiredParameters,supportedOptions,privateStateCallbacks,checkCallArgs,displayName);
  2656. function OSF_DAA_AsyncMethodCall$ExtractOptions(userArgs, requiredArgs, caller, stateInfo)
  2657. {
  2658. if(userArgs.length > requiredCount+2)
  2659. throw OsfMsAjaxFactory.msAjaxError.parameterCount(Strings.OfficeOM.L_TooManyArguments);
  2660. var options,
  2661. parameterCallback;
  2662. for(var i=userArgs.length - 1; i >=requiredCount; i--)
  2663. {
  2664. var argument=userArgs[i];
  2665. switch(typeof argument)
  2666. {
  2667. case"object":
  2668. if(options)
  2669. throw OsfMsAjaxFactory.msAjaxError.parameterCount(Strings.OfficeOM.L_TooManyOptionalObjects);
  2670. else
  2671. options=argument;
  2672. break;
  2673. case"function":
  2674. if(parameterCallback)
  2675. throw OsfMsAjaxFactory.msAjaxError.parameterCount(Strings.OfficeOM.L_TooManyOptionalFunction);
  2676. else
  2677. parameterCallback=argument;
  2678. break;
  2679. default:
  2680. throw OsfMsAjaxFactory.msAjaxError.argument(Strings.OfficeOM.L_InValidOptionalArgument);
  2681. break
  2682. }
  2683. }
  2684. options=apiMethods.fillOptions(options,requiredArgs,caller,stateInfo);
  2685. if(parameterCallback)
  2686. if(options[Microsoft.Office.WebExtension.Parameters.Callback])
  2687. throw Strings.OfficeOM.L_RedundantCallbackSpecification;
  2688. else
  2689. options[Microsoft.Office.WebExtension.Parameters.Callback]=parameterCallback;
  2690. apiMethods.verifyArguments(supportedOptions,options);
  2691. return options
  2692. }
  2693. this.verifyAndExtractCall=function OSF_DAA_AsyncMethodCall$VerifyAndExtractCall(userArgs, caller, stateInfo)
  2694. {
  2695. var required=apiMethods.extractRequiredArguments(userArgs,caller,stateInfo);
  2696. var options=OSF_DAA_AsyncMethodCall$ExtractOptions(userArgs,required,caller,stateInfo);
  2697. var callArgs=apiMethods.constructCallArgs(required,options,caller,stateInfo);
  2698. return callArgs
  2699. };
  2700. this.processResponse=function OSF_DAA_AsyncMethodCall$ProcessResponse(status, response, caller, callArgs)
  2701. {
  2702. var payload;
  2703. if(status==OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
  2704. if(onSucceeded)
  2705. payload=onSucceeded(response,caller,callArgs);
  2706. else
  2707. payload=response;
  2708. else if(onFailed)
  2709. payload=onFailed(status,response);
  2710. else
  2711. payload=OSF.DDA.ErrorCodeManager.getErrorArgs(status);
  2712. return payload
  2713. };
  2714. this.getCallArgs=function(suppliedArgs)
  2715. {
  2716. var options,
  2717. parameterCallback;
  2718. for(var i=suppliedArgs.length - 1; i >=requiredCount; i--)
  2719. {
  2720. var argument=suppliedArgs[i];
  2721. switch(typeof argument)
  2722. {
  2723. case"object":
  2724. options=argument;
  2725. break;
  2726. case"function":
  2727. parameterCallback=argument;
  2728. break
  2729. }
  2730. }
  2731. options=options || {};
  2732. if(parameterCallback)
  2733. options[Microsoft.Office.WebExtension.Parameters.Callback]=parameterCallback;
  2734. return options
  2735. }
  2736. };
  2737. OSF.DDA.AsyncMethodCallFactory=function()
  2738. {
  2739. return{manufacture: function(params)
  2740. {
  2741. var supportedOptions=params.supportedOptions ? OSF.OUtil.createObject(params.supportedOptions) : [];
  2742. var privateStateCallbacks=params.privateStateCallbacks ? OSF.OUtil.createObject(params.privateStateCallbacks) : [];
  2743. return new OSF.DDA.AsyncMethodCall(params.requiredArguments || [],supportedOptions,privateStateCallbacks,params.onSucceeded,params.onFailed,params.checkCallArgs,params.method.displayName)
  2744. }}
  2745. }();
  2746. OSF.DDA.AsyncMethodCalls={};
  2747. OSF.DDA.AsyncMethodCalls.define=function(callDefinition)
  2748. {
  2749. OSF.DDA.AsyncMethodCalls[callDefinition.method.id]=OSF.DDA.AsyncMethodCallFactory.manufacture(callDefinition)
  2750. };
  2751. OSF.DDA.Error=function OSF_DDA_Error(name, message, code)
  2752. {
  2753. OSF.OUtil.defineEnumerableProperties(this,{
  2754. name: {value: name},
  2755. message: {value: message},
  2756. code: {value: code}
  2757. })
  2758. };
  2759. OSF.DDA.AsyncResult=function OSF_DDA_AsyncResult(initArgs, errorArgs)
  2760. {
  2761. OSF.OUtil.defineEnumerableProperties(this,{
  2762. value: {value: initArgs[OSF.DDA.AsyncResultEnum.Properties.Value]},
  2763. status: {value: errorArgs ? Microsoft.Office.WebExtension.AsyncResultStatus.Failed : Microsoft.Office.WebExtension.AsyncResultStatus.Succeeded}
  2764. });
  2765. if(initArgs[OSF.DDA.AsyncResultEnum.Properties.Context])
  2766. OSF.OUtil.defineEnumerableProperty(this,"asyncContext",{value: initArgs[OSF.DDA.AsyncResultEnum.Properties.Context]});
  2767. if(errorArgs)
  2768. OSF.OUtil.defineEnumerableProperty(this,"error",{value: new OSF.DDA.Error(errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Name],errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Message],errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Code])})
  2769. };
  2770. OSF.DDA.issueAsyncResult=function OSF_DDA$IssueAsyncResult(callArgs, status, payload)
  2771. {
  2772. var callback=callArgs[Microsoft.Office.WebExtension.Parameters.Callback];
  2773. if(callback)
  2774. {
  2775. var asyncInitArgs={};
  2776. asyncInitArgs[OSF.DDA.AsyncResultEnum.Properties.Context]=callArgs[Microsoft.Office.WebExtension.Parameters.AsyncContext];
  2777. var errorArgs;
  2778. if(status==OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
  2779. asyncInitArgs[OSF.DDA.AsyncResultEnum.Properties.Value]=payload;
  2780. else
  2781. {
  2782. errorArgs={};
  2783. payload=payload || OSF.DDA.ErrorCodeManager.getErrorArgs(OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError);
  2784. errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Code]=status || OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError;
  2785. errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Name]=payload.name || payload;
  2786. errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Message]=payload.message || payload
  2787. }
  2788. callback(new OSF.DDA.AsyncResult(asyncInitArgs,errorArgs))
  2789. }
  2790. };
  2791. OSF.DDA.SyncMethodNames={};
  2792. OSF.DDA.SyncMethodNames.addNames=function(methodNames)
  2793. {
  2794. for(var entry in methodNames)
  2795. {
  2796. var am={};
  2797. OSF.OUtil.defineEnumerableProperties(am,{
  2798. id: {value: entry},
  2799. displayName: {value: methodNames[entry]}
  2800. });
  2801. OSF.DDA.SyncMethodNames[entry]=am
  2802. }
  2803. };
  2804. OSF.DDA.SyncMethodCall=function OSF_DDA_SyncMethodCall(requiredParameters, supportedOptions, privateStateCallbacks, checkCallArgs, displayName)
  2805. {
  2806. var requiredCount=requiredParameters.length;
  2807. var apiMethods=new OSF.DDA.ApiMethodCall(requiredParameters,supportedOptions,privateStateCallbacks,checkCallArgs,displayName);
  2808. function OSF_DAA_SyncMethodCall$ExtractOptions(userArgs, requiredArgs, caller, stateInfo)
  2809. {
  2810. if(userArgs.length > requiredCount+1)
  2811. throw OsfMsAjaxFactory.msAjaxError.parameterCount(Strings.OfficeOM.L_TooManyArguments);
  2812. var options,
  2813. parameterCallback;
  2814. for(var i=userArgs.length - 1; i >=requiredCount; i--)
  2815. {
  2816. var argument=userArgs[i];
  2817. switch(typeof argument)
  2818. {
  2819. case"object":
  2820. if(options)
  2821. throw OsfMsAjaxFactory.msAjaxError.parameterCount(Strings.OfficeOM.L_TooManyOptionalObjects);
  2822. else
  2823. options=argument;
  2824. break;
  2825. default:
  2826. throw OsfMsAjaxFactory.msAjaxError.argument(Strings.OfficeOM.L_InValidOptionalArgument);
  2827. break
  2828. }
  2829. }
  2830. options=apiMethods.fillOptions(options,requiredArgs,caller,stateInfo);
  2831. apiMethods.verifyArguments(supportedOptions,options);
  2832. return options
  2833. }
  2834. this.verifyAndExtractCall=function OSF_DAA_AsyncMethodCall$VerifyAndExtractCall(userArgs, caller, stateInfo)
  2835. {
  2836. var required=apiMethods.extractRequiredArguments(userArgs,caller,stateInfo);
  2837. var options=OSF_DAA_SyncMethodCall$ExtractOptions(userArgs,required,caller,stateInfo);
  2838. var callArgs=apiMethods.constructCallArgs(required,options,caller,stateInfo);
  2839. return callArgs
  2840. }
  2841. };
  2842. OSF.DDA.SyncMethodCallFactory=function()
  2843. {
  2844. return{manufacture: function(params)
  2845. {
  2846. var supportedOptions=params.supportedOptions ? OSF.OUtil.createObject(params.supportedOptions) : [];
  2847. return new OSF.DDA.SyncMethodCall(params.requiredArguments || [],supportedOptions,params.privateStateCallbacks,params.checkCallArgs,params.method.displayName)
  2848. }}
  2849. }();
  2850. OSF.DDA.SyncMethodCalls={};
  2851. OSF.DDA.SyncMethodCalls.define=function(callDefinition)
  2852. {
  2853. OSF.DDA.SyncMethodCalls[callDefinition.method.id]=OSF.DDA.SyncMethodCallFactory.manufacture(callDefinition)
  2854. };
  2855. OSF.DDA.ListType=function()
  2856. {
  2857. var listTypes={};
  2858. return{
  2859. setListType: function OSF_DDA_ListType$AddListType(t, prop)
  2860. {
  2861. listTypes[t]=prop
  2862. },
  2863. isListType: function OSF_DDA_ListType$IsListType(t)
  2864. {
  2865. return OSF.OUtil.listContainsKey(listTypes,t)
  2866. },
  2867. getDescriptor: function OSF_DDA_ListType$getDescriptor(t)
  2868. {
  2869. return listTypes[t]
  2870. }
  2871. }
  2872. }();
  2873. OSF.DDA.HostParameterMap=function(specialProcessor, mappings)
  2874. {
  2875. var toHostMap="toHost";
  2876. var fromHostMap="fromHost";
  2877. var sourceData="sourceData";
  2878. var self="self";
  2879. var dynamicTypes={};
  2880. dynamicTypes[Microsoft.Office.WebExtension.Parameters.Data]={
  2881. toHost: function(data)
  2882. {
  2883. if(data !=null && data.rows !==undefined)
  2884. {
  2885. var tableData={};
  2886. tableData[OSF.DDA.TableDataProperties.TableRows]=data.rows;
  2887. tableData[OSF.DDA.TableDataProperties.TableHeaders]=data.headers;
  2888. data=tableData
  2889. }
  2890. return data
  2891. },
  2892. fromHost: function(args)
  2893. {
  2894. return args
  2895. }
  2896. };
  2897. dynamicTypes[Microsoft.Office.WebExtension.Parameters.SampleData]=dynamicTypes[Microsoft.Office.WebExtension.Parameters.Data];
  2898. function mapValues(preimageSet, mapping)
  2899. {
  2900. var ret=preimageSet ? {} : undefined;
  2901. for(var entry in preimageSet)
  2902. {
  2903. var preimage=preimageSet[entry];
  2904. var image;
  2905. if(OSF.DDA.ListType.isListType(entry))
  2906. {
  2907. image=[];
  2908. for(var subEntry in preimage)
  2909. image.push(mapValues(preimage[subEntry],mapping))
  2910. }
  2911. else if(OSF.OUtil.listContainsKey(dynamicTypes,entry))
  2912. image=dynamicTypes[entry][mapping](preimage);
  2913. else if(mapping==fromHostMap && specialProcessor.preserveNesting(entry))
  2914. image=mapValues(preimage,mapping);
  2915. else
  2916. {
  2917. var maps=mappings[entry];
  2918. if(maps)
  2919. {
  2920. var map=maps[mapping];
  2921. if(map)
  2922. {
  2923. image=map[preimage];
  2924. if(image===undefined)
  2925. image=preimage
  2926. }
  2927. }
  2928. else
  2929. image=preimage
  2930. }
  2931. ret[entry]=image
  2932. }
  2933. return ret
  2934. }
  2935. function generateArguments(imageSet, parameters)
  2936. {
  2937. var ret;
  2938. for(var param in parameters)
  2939. {
  2940. var arg;
  2941. if(specialProcessor.isComplexType(param))
  2942. arg=generateArguments(imageSet,mappings[param][toHostMap]);
  2943. else
  2944. arg=imageSet[param];
  2945. if(arg !=undefined)
  2946. {
  2947. if(!ret)
  2948. ret={};
  2949. var index=parameters[param];
  2950. if(index==self)
  2951. index=param;
  2952. ret[index]=specialProcessor.pack(param,arg)
  2953. }
  2954. }
  2955. return ret
  2956. }
  2957. function extractArguments(source, parameters, extracted)
  2958. {
  2959. if(!extracted)
  2960. extracted={};
  2961. for(var param in parameters)
  2962. {
  2963. var index=parameters[param];
  2964. var value;
  2965. if(index==self)
  2966. value=source;
  2967. else if(index==sourceData)
  2968. {
  2969. extracted[param]=source.toArray();
  2970. continue
  2971. }
  2972. else
  2973. value=source[index];
  2974. if(value===null || value===undefined)
  2975. extracted[param]=undefined;
  2976. else
  2977. {
  2978. value=specialProcessor.unpack(param,value);
  2979. var map;
  2980. if(specialProcessor.isComplexType(param))
  2981. {
  2982. map=mappings[param][fromHostMap];
  2983. if(specialProcessor.preserveNesting(param))
  2984. extracted[param]=extractArguments(value,map);
  2985. else
  2986. extractArguments(value,map,extracted)
  2987. }
  2988. else if(OSF.DDA.ListType.isListType(param))
  2989. {
  2990. map={};
  2991. var entryDescriptor=OSF.DDA.ListType.getDescriptor(param);
  2992. map[entryDescriptor]=self;
  2993. var extractedValues=new Array(value.length);
  2994. for(var item in value)
  2995. extractedValues[item]=extractArguments(value[item],map);
  2996. extracted[param]=extractedValues
  2997. }
  2998. else
  2999. extracted[param]=value
  3000. }
  3001. }
  3002. return extracted
  3003. }
  3004. function applyMap(mapName, preimage, mapping)
  3005. {
  3006. var parameters=mappings[mapName][mapping];
  3007. var image;
  3008. if(mapping=="toHost")
  3009. {
  3010. var imageSet=mapValues(preimage,mapping);
  3011. image=generateArguments(imageSet,parameters)
  3012. }
  3013. else if(mapping=="fromHost")
  3014. {
  3015. var argumentSet=extractArguments(preimage,parameters);
  3016. image=mapValues(argumentSet,mapping)
  3017. }
  3018. return image
  3019. }
  3020. if(!mappings)
  3021. mappings={};
  3022. this.addMapping=function(mapName, description)
  3023. {
  3024. var toHost,
  3025. fromHost;
  3026. if(description.map)
  3027. {
  3028. toHost=description.map;
  3029. fromHost={};
  3030. for(var preimage in toHost)
  3031. {
  3032. var image=toHost[preimage];
  3033. if(image==self)
  3034. image=preimage;
  3035. fromHost[image]=preimage
  3036. }
  3037. }
  3038. else
  3039. {
  3040. toHost=description.toHost;
  3041. fromHost=description.fromHost
  3042. }
  3043. var pair=mappings[mapName];
  3044. if(pair)
  3045. {
  3046. var currMap=pair[toHostMap];
  3047. for(var th in currMap)
  3048. toHost[th]=currMap[th];
  3049. currMap=pair[fromHostMap];
  3050. for(var fh in currMap)
  3051. fromHost[fh]=currMap[fh]
  3052. }
  3053. else
  3054. pair=mappings[mapName]={};
  3055. pair[toHostMap]=toHost;
  3056. pair[fromHostMap]=fromHost
  3057. };
  3058. this.toHost=function(mapName, preimage)
  3059. {
  3060. return applyMap(mapName,preimage,toHostMap)
  3061. };
  3062. this.fromHost=function(mapName, image)
  3063. {
  3064. return applyMap(mapName,image,fromHostMap)
  3065. };
  3066. this.self=self;
  3067. this.sourceData=sourceData;
  3068. this.addComplexType=function(ct)
  3069. {
  3070. specialProcessor.addComplexType(ct)
  3071. };
  3072. this.getDynamicType=function(dt)
  3073. {
  3074. return specialProcessor.getDynamicType(dt)
  3075. };
  3076. this.setDynamicType=function(dt, handler)
  3077. {
  3078. specialProcessor.setDynamicType(dt,handler)
  3079. };
  3080. this.dynamicTypes=dynamicTypes;
  3081. this.doMapValues=function(preimageSet, mapping)
  3082. {
  3083. return mapValues(preimageSet,mapping)
  3084. }
  3085. };
  3086. OSF.DDA.SpecialProcessor=function(complexTypes, dynamicTypes)
  3087. {
  3088. this.addComplexType=function OSF_DDA_SpecialProcessor$addComplexType(ct)
  3089. {
  3090. complexTypes.push(ct)
  3091. };
  3092. this.getDynamicType=function OSF_DDA_SpecialProcessor$getDynamicType(dt)
  3093. {
  3094. return dynamicTypes[dt]
  3095. };
  3096. this.setDynamicType=function OSF_DDA_SpecialProcessor$setDynamicType(dt, handler)
  3097. {
  3098. dynamicTypes[dt]=handler
  3099. };
  3100. this.isComplexType=function OSF_DDA_SpecialProcessor$isComplexType(t)
  3101. {
  3102. return OSF.OUtil.listContainsValue(complexTypes,t)
  3103. };
  3104. this.isDynamicType=function OSF_DDA_SpecialProcessor$isDynamicType(p)
  3105. {
  3106. return OSF.OUtil.listContainsKey(dynamicTypes,p)
  3107. };
  3108. this.preserveNesting=function OSF_DDA_SpecialProcessor$preserveNesting(p)
  3109. {
  3110. var pn=[];
  3111. if(OSF.DDA.PropertyDescriptors)
  3112. pn.push(OSF.DDA.PropertyDescriptors.Subset);
  3113. if(OSF.DDA.DataNodeEventProperties)
  3114. pn=pn.concat([OSF.DDA.DataNodeEventProperties.OldNode,OSF.DDA.DataNodeEventProperties.NewNode,OSF.DDA.DataNodeEventProperties.NextSiblingNode]);
  3115. return OSF.OUtil.listContainsValue(pn,p)
  3116. };
  3117. this.pack=function OSF_DDA_SpecialProcessor$pack(param, arg)
  3118. {
  3119. var value;
  3120. if(this.isDynamicType(param))
  3121. value=dynamicTypes[param].toHost(arg);
  3122. else
  3123. value=arg;
  3124. return value
  3125. };
  3126. this.unpack=function OSF_DDA_SpecialProcessor$unpack(param, arg)
  3127. {
  3128. var value;
  3129. if(this.isDynamicType(param))
  3130. value=dynamicTypes[param].fromHost(arg);
  3131. else
  3132. value=arg;
  3133. return value
  3134. }
  3135. };
  3136. OSF.DDA.getDecoratedParameterMap=function(specialProcessor, initialDefs)
  3137. {
  3138. var parameterMap=new OSF.DDA.HostParameterMap(specialProcessor);
  3139. var self=parameterMap.self;
  3140. function createObject(properties)
  3141. {
  3142. var obj=null;
  3143. if(properties)
  3144. {
  3145. obj={};
  3146. var len=properties.length;
  3147. for(var i=0; i < len; i++)
  3148. obj[properties[i].name]=properties[i].value
  3149. }
  3150. return obj
  3151. }
  3152. parameterMap.define=function define(definition)
  3153. {
  3154. var args={};
  3155. var toHost=createObject(definition.toHost);
  3156. if(definition.invertible)
  3157. args.map=toHost;
  3158. else if(definition.canonical)
  3159. args.toHost=args.fromHost=toHost;
  3160. else
  3161. {
  3162. args.toHost=toHost;
  3163. args.fromHost=createObject(definition.fromHost)
  3164. }
  3165. parameterMap.addMapping(definition.type,args);
  3166. if(definition.isComplexType)
  3167. parameterMap.addComplexType(definition.type)
  3168. };
  3169. for(var id in initialDefs)
  3170. parameterMap.define(initialDefs[id]);
  3171. return parameterMap
  3172. };
  3173. OSF.OUtil.setNamespace("DispIdHost",OSF.DDA);
  3174. OSF.DDA.DispIdHost.Methods={
  3175. InvokeMethod: "invokeMethod",
  3176. AddEventHandler: "addEventHandler",
  3177. RemoveEventHandler: "removeEventHandler",
  3178. OpenDialog: "openDialog",
  3179. CloseDialog: "closeDialog",
  3180. MessageParent: "messageParent",
  3181. SendMessage: "sendMessage"
  3182. };
  3183. OSF.DDA.DispIdHost.Delegates={
  3184. ExecuteAsync: "executeAsync",
  3185. RegisterEventAsync: "registerEventAsync",
  3186. UnregisterEventAsync: "unregisterEventAsync",
  3187. ParameterMap: "parameterMap",
  3188. OpenDialog: "openDialog",
  3189. CloseDialog: "closeDialog",
  3190. MessageParent: "messageParent",
  3191. SendMessage: "sendMessage"
  3192. };
  3193. OSF.DDA.DispIdHost.Facade=function OSF_DDA_DispIdHost_Facade(getDelegateMethods, parameterMap)
  3194. {
  3195. var dispIdMap={};
  3196. var jsom=OSF.DDA.AsyncMethodNames;
  3197. var did=OSF.DDA.MethodDispId;
  3198. var methodMap={
  3199. GoToByIdAsync: did.dispidNavigateToMethod,
  3200. GetSelectedDataAsync: did.dispidGetSelectedDataMethod,
  3201. SetSelectedDataAsync: did.dispidSetSelectedDataMethod,
  3202. GetDocumentCopyChunkAsync: did.dispidGetDocumentCopyChunkMethod,
  3203. ReleaseDocumentCopyAsync: did.dispidReleaseDocumentCopyMethod,
  3204. GetDocumentCopyAsync: did.dispidGetDocumentCopyMethod,
  3205. AddFromSelectionAsync: did.dispidAddBindingFromSelectionMethod,
  3206. AddFromPromptAsync: did.dispidAddBindingFromPromptMethod,
  3207. AddFromNamedItemAsync: did.dispidAddBindingFromNamedItemMethod,
  3208. GetAllAsync: did.dispidGetAllBindingsMethod,
  3209. GetByIdAsync: did.dispidGetBindingMethod,
  3210. ReleaseByIdAsync: did.dispidReleaseBindingMethod,
  3211. GetDataAsync: did.dispidGetBindingDataMethod,
  3212. SetDataAsync: did.dispidSetBindingDataMethod,
  3213. AddRowsAsync: did.dispidAddRowsMethod,
  3214. AddColumnsAsync: did.dispidAddColumnsMethod,
  3215. DeleteAllDataValuesAsync: did.dispidClearAllRowsMethod,
  3216. RefreshAsync: did.dispidLoadSettingsMethod,
  3217. SaveAsync: did.dispidSaveSettingsMethod,
  3218. GetActiveViewAsync: did.dispidGetActiveViewMethod,
  3219. GetFilePropertiesAsync: did.dispidGetFilePropertiesMethod,
  3220. GetOfficeThemeAsync: did.dispidGetOfficeThemeMethod,
  3221. GetDocumentThemeAsync: did.dispidGetDocumentThemeMethod,
  3222. ClearFormatsAsync: did.dispidClearFormatsMethod,
  3223. SetTableOptionsAsync: did.dispidSetTableOptionsMethod,
  3224. SetFormatsAsync: did.dispidSetFormatsMethod,
  3225. ExecuteRichApiRequestAsync: did.dispidExecuteRichApiRequestMethod,
  3226. AppCommandInvocationCompletedAsync: did.dispidAppCommandInvocationCompletedMethod,
  3227. CloseContainerAsync: did.dispidCloseContainerMethod,
  3228. AddDataPartAsync: did.dispidAddDataPartMethod,
  3229. GetDataPartByIdAsync: did.dispidGetDataPartByIdMethod,
  3230. GetDataPartsByNameSpaceAsync: did.dispidGetDataPartsByNamespaceMethod,
  3231. GetPartXmlAsync: did.dispidGetDataPartXmlMethod,
  3232. GetPartNodesAsync: did.dispidGetDataPartNodesMethod,
  3233. DeleteDataPartAsync: did.dispidDeleteDataPartMethod,
  3234. GetNodeValueAsync: did.dispidGetDataNodeValueMethod,
  3235. GetNodeXmlAsync: did.dispidGetDataNodeXmlMethod,
  3236. GetRelativeNodesAsync: did.dispidGetDataNodesMethod,
  3237. SetNodeValueAsync: did.dispidSetDataNodeValueMethod,
  3238. SetNodeXmlAsync: did.dispidSetDataNodeXmlMethod,
  3239. AddDataPartNamespaceAsync: did.dispidAddDataNamespaceMethod,
  3240. GetDataPartNamespaceAsync: did.dispidGetDataUriByPrefixMethod,
  3241. GetDataPartPrefixAsync: did.dispidGetDataPrefixByUriMethod,
  3242. GetNodeTextAsync: did.dispidGetDataNodeTextMethod,
  3243. SetNodeTextAsync: did.dispidSetDataNodeTextMethod,
  3244. GetSelectedTask: did.dispidGetSelectedTaskMethod,
  3245. GetTask: did.dispidGetTaskMethod,
  3246. GetWSSUrl: did.dispidGetWSSUrlMethod,
  3247. GetTaskField: did.dispidGetTaskFieldMethod,
  3248. GetSelectedResource: did.dispidGetSelectedResourceMethod,
  3249. GetResourceField: did.dispidGetResourceFieldMethod,
  3250. GetProjectField: did.dispidGetProjectFieldMethod,
  3251. GetSelectedView: did.dispidGetSelectedViewMethod,
  3252. GetTaskByIndex: did.dispidGetTaskByIndexMethod,
  3253. GetResourceByIndex: did.dispidGetResourceByIndexMethod,
  3254. SetTaskField: did.dispidSetTaskFieldMethod,
  3255. SetResourceField: did.dispidSetResourceFieldMethod,
  3256. GetMaxTaskIndex: did.dispidGetMaxTaskIndexMethod,
  3257. GetMaxResourceIndex: did.dispidGetMaxResourceIndexMethod,
  3258. CreateTask: did.dispidCreateTaskMethod
  3259. };
  3260. for(var method in methodMap)
  3261. if(jsom[method])
  3262. dispIdMap[jsom[method].id]=methodMap[method];
  3263. jsom=OSF.DDA.SyncMethodNames;
  3264. did=OSF.DDA.MethodDispId;
  3265. var asyncMethodMap={
  3266. MessageParent: did.dispidMessageParentMethod,
  3267. SendMessage: did.dispidSendMessageMethod
  3268. };
  3269. for(var method in asyncMethodMap)
  3270. if(jsom[method])
  3271. dispIdMap[jsom[method].id]=asyncMethodMap[method];
  3272. jsom=Microsoft.Office.WebExtension.EventType;
  3273. did=OSF.DDA.EventDispId;
  3274. var eventMap={
  3275. SettingsChanged: did.dispidSettingsChangedEvent,
  3276. DocumentSelectionChanged: did.dispidDocumentSelectionChangedEvent,
  3277. BindingSelectionChanged: did.dispidBindingSelectionChangedEvent,
  3278. BindingDataChanged: did.dispidBindingDataChangedEvent,
  3279. ActiveViewChanged: did.dispidActiveViewChangedEvent,
  3280. OfficeThemeChanged: did.dispidOfficeThemeChangedEvent,
  3281. DocumentThemeChanged: did.dispidDocumentThemeChangedEvent,
  3282. AppCommandInvoked: did.dispidAppCommandInvokedEvent,
  3283. DialogMessageReceived: did.dispidDialogMessageReceivedEvent,
  3284. DialogParentMessageReceived: did.dispidDialogParentMessageReceivedEvent,
  3285. OlkItemSelectedChanged: did.dispidOlkItemSelectedChangedEvent,
  3286. TaskSelectionChanged: did.dispidTaskSelectionChangedEvent,
  3287. ResourceSelectionChanged: did.dispidResourceSelectionChangedEvent,
  3288. ViewSelectionChanged: did.dispidViewSelectionChangedEvent,
  3289. DataNodeInserted: did.dispidDataNodeAddedEvent,
  3290. DataNodeReplaced: did.dispidDataNodeReplacedEvent,
  3291. DataNodeDeleted: did.dispidDataNodeDeletedEvent
  3292. };
  3293. for(var event in eventMap)
  3294. if(jsom[event])
  3295. dispIdMap[jsom[event]]=eventMap[event];
  3296. function onException(ex, asyncMethodCall, suppliedArgs, callArgs)
  3297. {
  3298. if(typeof ex=="number")
  3299. {
  3300. if(!callArgs)
  3301. callArgs=asyncMethodCall.getCallArgs(suppliedArgs);
  3302. OSF.DDA.issueAsyncResult(callArgs,ex,OSF.DDA.ErrorCodeManager.getErrorArgs(ex))
  3303. }
  3304. else
  3305. throw ex;
  3306. }
  3307. this[OSF.DDA.DispIdHost.Methods.InvokeMethod]=function OSF_DDA_DispIdHost_Facade$InvokeMethod(method, suppliedArguments, caller, privateState)
  3308. {
  3309. var callArgs;
  3310. try
  3311. {
  3312. var methodName=method.id;
  3313. var asyncMethodCall=OSF.DDA.AsyncMethodCalls[methodName];
  3314. callArgs=asyncMethodCall.verifyAndExtractCall(suppliedArguments,caller,privateState);
  3315. var dispId=dispIdMap[methodName];
  3316. var delegate=getDelegateMethods(methodName);
  3317. var richApiInExcelMethodSubstitution=null;
  3318. if(window.Excel && window.Office.context.requirements.isSetSupported("RedirectV1Api"))
  3319. window.Excel._RedirectV1APIs=true;
  3320. if(window.Excel && window.Excel._RedirectV1APIs && (richApiInExcelMethodSubstitution=window.Excel._V1APIMap[methodName]))
  3321. {
  3322. if(richApiInExcelMethodSubstitution.preprocess)
  3323. callArgs=richApiInExcelMethodSubstitution.preprocess(callArgs);
  3324. var ctx=new window.Excel.RequestContext;
  3325. var result=richApiInExcelMethodSubstitution.call(ctx,callArgs);
  3326. ctx.sync().then(function()
  3327. {
  3328. var response=result.value;
  3329. var status=response.status;
  3330. delete response["status"];
  3331. delete response["@odata.type"];
  3332. if(richApiInExcelMethodSubstitution.postprocess)
  3333. response=richApiInExcelMethodSubstitution.postprocess(response,callArgs);
  3334. if(status !=0)
  3335. response=OSF.DDA.ErrorCodeManager.getErrorArgs(status);
  3336. OSF.DDA.issueAsyncResult(callArgs,status,response)
  3337. })["catch"](function(error)
  3338. {
  3339. OSF.DDA.issueAsyncResult(callArgs,OSF.DDA.ErrorCodeManager.errorCodes.ooeFailure,null)
  3340. })
  3341. }
  3342. else
  3343. {
  3344. var hostCallArgs;
  3345. if(parameterMap.toHost)
  3346. hostCallArgs=parameterMap.toHost(dispId,callArgs);
  3347. else
  3348. hostCallArgs=callArgs;
  3349. delegate[OSF.DDA.DispIdHost.Delegates.ExecuteAsync]({
  3350. dispId: dispId,
  3351. hostCallArgs: hostCallArgs,
  3352. onCalling: function OSF_DDA_DispIdFacade$Execute_onCalling(){},
  3353. onReceiving: function OSF_DDA_DispIdFacade$Execute_onReceiving(){},
  3354. onComplete: function(status, hostResponseArgs)
  3355. {
  3356. var responseArgs;
  3357. if(status==OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
  3358. if(parameterMap.fromHost)
  3359. responseArgs=parameterMap.fromHost(dispId,hostResponseArgs);
  3360. else
  3361. responseArgs=hostResponseArgs;
  3362. else
  3363. responseArgs=hostResponseArgs;
  3364. var payload=asyncMethodCall.processResponse(status,responseArgs,caller,callArgs);
  3365. OSF.DDA.issueAsyncResult(callArgs,status,payload)
  3366. }
  3367. })
  3368. }
  3369. }
  3370. catch(ex)
  3371. {
  3372. onException(ex,asyncMethodCall,suppliedArguments,callArgs)
  3373. }
  3374. };
  3375. this[OSF.DDA.DispIdHost.Methods.AddEventHandler]=function OSF_DDA_DispIdHost_Facade$AddEventHandler(suppliedArguments, eventDispatch, caller)
  3376. {
  3377. var callArgs;
  3378. var eventType,
  3379. handler;
  3380. function onEnsureRegistration(status)
  3381. {
  3382. if(status==OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
  3383. {
  3384. var added=eventDispatch.addEventHandler(eventType,handler);
  3385. if(!added)
  3386. status=OSF.DDA.ErrorCodeManager.errorCodes.ooeEventHandlerAdditionFailed
  3387. }
  3388. var error;
  3389. if(status !=OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
  3390. error=OSF.DDA.ErrorCodeManager.getErrorArgs(status);
  3391. OSF.DDA.issueAsyncResult(callArgs,status,error)
  3392. }
  3393. try
  3394. {
  3395. var asyncMethodCall=OSF.DDA.AsyncMethodCalls[OSF.DDA.AsyncMethodNames.AddHandlerAsync.id];
  3396. callArgs=asyncMethodCall.verifyAndExtractCall(suppliedArguments,caller,eventDispatch);
  3397. eventType=callArgs[Microsoft.Office.WebExtension.Parameters.EventType];
  3398. handler=callArgs[Microsoft.Office.WebExtension.Parameters.Handler];
  3399. if(eventDispatch.getEventHandlerCount(eventType)==0)
  3400. {
  3401. var dispId=dispIdMap[eventType];
  3402. var invoker=getDelegateMethods(eventType)[OSF.DDA.DispIdHost.Delegates.RegisterEventAsync];
  3403. invoker({
  3404. eventType: eventType,
  3405. dispId: dispId,
  3406. targetId: caller.id || "",
  3407. onCalling: function OSF_DDA_DispIdFacade$Execute_onCalling()
  3408. {
  3409. OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.IssueCall)
  3410. },
  3411. onReceiving: function OSF_DDA_DispIdFacade$Execute_onReceiving()
  3412. {
  3413. OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.ReceiveResponse)
  3414. },
  3415. onComplete: onEnsureRegistration,
  3416. onEvent: function handleEvent(hostArgs)
  3417. {
  3418. var args=parameterMap.fromHost(dispId,hostArgs);
  3419. eventDispatch.fireEvent(OSF.DDA.OMFactory.manufactureEventArgs(eventType,caller,args))
  3420. }
  3421. })
  3422. }
  3423. else
  3424. onEnsureRegistration(OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
  3425. }
  3426. catch(ex)
  3427. {
  3428. onException(ex,asyncMethodCall,suppliedArguments,callArgs)
  3429. }
  3430. };
  3431. this[OSF.DDA.DispIdHost.Methods.RemoveEventHandler]=function OSF_DDA_DispIdHost_Facade$RemoveEventHandler(suppliedArguments, eventDispatch, caller)
  3432. {
  3433. var callArgs;
  3434. var eventType,
  3435. handler;
  3436. function onEnsureRegistration(status)
  3437. {
  3438. var error;
  3439. if(status !=OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
  3440. error=OSF.DDA.ErrorCodeManager.getErrorArgs(status);
  3441. OSF.DDA.issueAsyncResult(callArgs,status,error)
  3442. }
  3443. try
  3444. {
  3445. var asyncMethodCall=OSF.DDA.AsyncMethodCalls[OSF.DDA.AsyncMethodNames.RemoveHandlerAsync.id];
  3446. callArgs=asyncMethodCall.verifyAndExtractCall(suppliedArguments,caller,eventDispatch);
  3447. eventType=callArgs[Microsoft.Office.WebExtension.Parameters.EventType];
  3448. handler=callArgs[Microsoft.Office.WebExtension.Parameters.Handler];
  3449. var status,
  3450. removeSuccess;
  3451. if(handler===null)
  3452. {
  3453. removeSuccess=eventDispatch.clearEventHandlers(eventType);
  3454. status=OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess
  3455. }
  3456. else
  3457. {
  3458. removeSuccess=eventDispatch.removeEventHandler(eventType,handler);
  3459. status=removeSuccess ? OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess : OSF.DDA.ErrorCodeManager.errorCodes.ooeEventHandlerNotExist
  3460. }
  3461. if(removeSuccess && eventDispatch.getEventHandlerCount(eventType)==0)
  3462. {
  3463. var dispId=dispIdMap[eventType];
  3464. var invoker=getDelegateMethods(eventType)[OSF.DDA.DispIdHost.Delegates.UnregisterEventAsync];
  3465. invoker({
  3466. eventType: eventType,
  3467. dispId: dispId,
  3468. targetId: caller.id || "",
  3469. onCalling: function OSF_DDA_DispIdFacade$Execute_onCalling()
  3470. {
  3471. OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.IssueCall)
  3472. },
  3473. onReceiving: function OSF_DDA_DispIdFacade$Execute_onReceiving()
  3474. {
  3475. OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.ReceiveResponse)
  3476. },
  3477. onComplete: onEnsureRegistration
  3478. })
  3479. }
  3480. else
  3481. onEnsureRegistration(status)
  3482. }
  3483. catch(ex)
  3484. {
  3485. onException(ex,asyncMethodCall,suppliedArguments,callArgs)
  3486. }
  3487. };
  3488. this[OSF.DDA.DispIdHost.Methods.OpenDialog]=function OSF_DDA_DispIdHost_Facade$OpenDialog(suppliedArguments, eventDispatch, caller)
  3489. {
  3490. var callArgs;
  3491. var targetId;
  3492. var dialogMessageEvent=Microsoft.Office.WebExtension.EventType.DialogMessageReceived;
  3493. var dialogOtherEvent=Microsoft.Office.WebExtension.EventType.DialogEventReceived;
  3494. function onEnsureRegistration(status)
  3495. {
  3496. var payload;
  3497. if(status !=OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
  3498. payload=OSF.DDA.ErrorCodeManager.getErrorArgs(status);
  3499. else
  3500. {
  3501. var onSucceedArgs={};
  3502. onSucceedArgs[Microsoft.Office.WebExtension.Parameters.Id]=targetId;
  3503. onSucceedArgs[Microsoft.Office.WebExtension.Parameters.Data]=eventDispatch;
  3504. var payload=asyncMethodCall.processResponse(status,onSucceedArgs,caller,callArgs);
  3505. OSF.DialogShownStatus.hasDialogShown=true;
  3506. eventDispatch.clearEventHandlers(dialogMessageEvent);
  3507. eventDispatch.clearEventHandlers(dialogOtherEvent)
  3508. }
  3509. OSF.DDA.issueAsyncResult(callArgs,status,payload)
  3510. }
  3511. try
  3512. {
  3513. if(dialogMessageEvent==undefined || dialogOtherEvent==undefined)
  3514. onEnsureRegistration(OSF.DDA.ErrorCodeManager.ooeOperationNotSupported);
  3515. if(OSF.DDA.AsyncMethodNames.DisplayDialogAsync==null)
  3516. {
  3517. onEnsureRegistration(OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError);
  3518. return
  3519. }
  3520. var asyncMethodCall=OSF.DDA.AsyncMethodCalls[OSF.DDA.AsyncMethodNames.DisplayDialogAsync.id];
  3521. callArgs=asyncMethodCall.verifyAndExtractCall(suppliedArguments,caller,eventDispatch);
  3522. var dispId=dispIdMap[dialogMessageEvent];
  3523. var delegateMethods=getDelegateMethods(dialogMessageEvent);
  3524. var invoker=delegateMethods[OSF.DDA.DispIdHost.Delegates.OpenDialog] !=undefined ? delegateMethods[OSF.DDA.DispIdHost.Delegates.OpenDialog] : delegateMethods[OSF.DDA.DispIdHost.Delegates.RegisterEventAsync];
  3525. targetId=JSON.stringify(callArgs);
  3526. invoker({
  3527. eventType: dialogMessageEvent,
  3528. dispId: dispId,
  3529. targetId: targetId,
  3530. onCalling: function OSF_DDA_DispIdFacade$Execute_onCalling()
  3531. {
  3532. OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.IssueCall)
  3533. },
  3534. onReceiving: function OSF_DDA_DispIdFacade$Execute_onReceiving()
  3535. {
  3536. OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.ReceiveResponse)
  3537. },
  3538. onComplete: onEnsureRegistration,
  3539. onEvent: function handleEvent(hostArgs)
  3540. {
  3541. var args=parameterMap.fromHost(dispId,hostArgs);
  3542. var event=OSF.DDA.OMFactory.manufactureEventArgs(dialogMessageEvent,caller,args);
  3543. if(event.type==dialogOtherEvent)
  3544. {
  3545. var payload=OSF.DDA.ErrorCodeManager.getErrorArgs(event.error);
  3546. var errorArgs={};
  3547. errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Code]=status || OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError;
  3548. errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Name]=payload.name || payload;
  3549. errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Message]=payload.message || payload;
  3550. event.error=new OSF.DDA.Error(errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Name],errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Message],errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties.Code])
  3551. }
  3552. eventDispatch.fireOrQueueEvent(event);
  3553. if(args[OSF.DDA.PropertyDescriptors.MessageType]==OSF.DialogMessageType.DialogClosed)
  3554. {
  3555. eventDispatch.clearEventHandlers(dialogMessageEvent);
  3556. eventDispatch.clearEventHandlers(dialogOtherEvent);
  3557. eventDispatch.clearEventHandlers(Microsoft.Office.WebExtension.EventType.DialogParentMessageReceived);
  3558. OSF.DialogShownStatus.hasDialogShown=false
  3559. }
  3560. }
  3561. })
  3562. }
  3563. catch(ex)
  3564. {
  3565. onException(ex,asyncMethodCall,suppliedArguments,callArgs)
  3566. }
  3567. };
  3568. this[OSF.DDA.DispIdHost.Methods.CloseDialog]=function OSF_DDA_DispIdHost_Facade$CloseDialog(suppliedArguments, targetId, eventDispatch, caller)
  3569. {
  3570. var callArgs;
  3571. var dialogMessageEvent,
  3572. dialogOtherEvent;
  3573. var closeStatus=OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess;
  3574. function closeCallback(status)
  3575. {
  3576. closeStatus=status;
  3577. OSF.DialogShownStatus.hasDialogShown=false
  3578. }
  3579. try
  3580. {
  3581. var asyncMethodCall=OSF.DDA.AsyncMethodCalls[OSF.DDA.AsyncMethodNames.CloseAsync.id];
  3582. callArgs=asyncMethodCall.verifyAndExtractCall(suppliedArguments,caller,eventDispatch);
  3583. dialogMessageEvent=Microsoft.Office.WebExtension.EventType.DialogMessageReceived;
  3584. dialogOtherEvent=Microsoft.Office.WebExtension.EventType.DialogEventReceived;
  3585. eventDispatch.clearEventHandlers(dialogMessageEvent);
  3586. eventDispatch.clearEventHandlers(dialogOtherEvent);
  3587. var dispId=dispIdMap[dialogMessageEvent];
  3588. var delegateMethods=getDelegateMethods(dialogMessageEvent);
  3589. var invoker=delegateMethods[OSF.DDA.DispIdHost.Delegates.CloseDialog] !=undefined ? delegateMethods[OSF.DDA.DispIdHost.Delegates.CloseDialog] : delegateMethods[OSF.DDA.DispIdHost.Delegates.UnregisterEventAsync];
  3590. invoker({
  3591. eventType: dialogMessageEvent,
  3592. dispId: dispId,
  3593. targetId: targetId,
  3594. onCalling: function OSF_DDA_DispIdFacade$Execute_onCalling()
  3595. {
  3596. OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.IssueCall)
  3597. },
  3598. onReceiving: function OSF_DDA_DispIdFacade$Execute_onReceiving()
  3599. {
  3600. OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.ReceiveResponse)
  3601. },
  3602. onComplete: closeCallback
  3603. })
  3604. }
  3605. catch(ex)
  3606. {
  3607. onException(ex,asyncMethodCall,suppliedArguments,callArgs)
  3608. }
  3609. if(closeStatus !=OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
  3610. throw OSF.OUtil.formatString(Strings.OfficeOM.L_FunctionCallFailed,OSF.DDA.AsyncMethodNames.CloseAsync.displayName,closeStatus);
  3611. };
  3612. this[OSF.DDA.DispIdHost.Methods.MessageParent]=function OSF_DDA_DispIdHost_Facade$MessageParent(suppliedArguments, caller)
  3613. {
  3614. var stateInfo={};
  3615. var syncMethodCall=OSF.DDA.SyncMethodCalls[OSF.DDA.SyncMethodNames.MessageParent.id];
  3616. var callArgs=syncMethodCall.verifyAndExtractCall(suppliedArguments,caller,stateInfo);
  3617. var delegate=getDelegateMethods(OSF.DDA.SyncMethodNames.MessageParent.id);
  3618. var invoker=delegate[OSF.DDA.DispIdHost.Delegates.MessageParent];
  3619. var dispId=dispIdMap[OSF.DDA.SyncMethodNames.MessageParent.id];
  3620. return invoker({
  3621. dispId: dispId,
  3622. hostCallArgs: callArgs,
  3623. onCalling: function OSF_DDA_DispIdFacade$Execute_onCalling()
  3624. {
  3625. OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.IssueCall)
  3626. },
  3627. onReceiving: function OSF_DDA_DispIdFacade$Execute_onReceiving()
  3628. {
  3629. OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.ReceiveResponse)
  3630. }
  3631. })
  3632. };
  3633. this[OSF.DDA.DispIdHost.Methods.SendMessage]=function OSF_DDA_DispIdHost_Facade$SendMessage(suppliedArguments, eventDispatch, caller)
  3634. {
  3635. var stateInfo={};
  3636. var syncMethodCall=OSF.DDA.SyncMethodCalls[OSF.DDA.SyncMethodNames.SendMessage.id];
  3637. var callArgs=syncMethodCall.verifyAndExtractCall(suppliedArguments,caller,stateInfo);
  3638. var delegate=getDelegateMethods(OSF.DDA.SyncMethodNames.SendMessage.id);
  3639. var invoker=delegate[OSF.DDA.DispIdHost.Delegates.SendMessage];
  3640. var dispId=dispIdMap[OSF.DDA.SyncMethodNames.SendMessage.id];
  3641. return invoker({
  3642. dispId: dispId,
  3643. hostCallArgs: callArgs,
  3644. onCalling: function OSF_DDA_DispIdFacade$Execute_onCalling()
  3645. {
  3646. OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.IssueCall)
  3647. },
  3648. onReceiving: function OSF_DDA_DispIdFacade$Execute_onReceiving()
  3649. {
  3650. OSF.OUtil.writeProfilerMark(OSF.HostCallPerfMarker.ReceiveResponse)
  3651. }
  3652. })
  3653. }
  3654. };
  3655. OSF.DDA.DispIdHost.addAsyncMethods=function OSF_DDA_DispIdHost$AddAsyncMethods(target, asyncMethodNames, privateState)
  3656. {
  3657. for(var entry in asyncMethodNames)
  3658. {
  3659. var method=asyncMethodNames[entry];
  3660. var name=method.displayName;
  3661. if(!target[name])
  3662. OSF.OUtil.defineEnumerableProperty(target,name,{value: function(asyncMethod)
  3663. {
  3664. return function()
  3665. {
  3666. var invokeMethod=OSF._OfficeAppFactory.getHostFacade()[OSF.DDA.DispIdHost.Methods.InvokeMethod];
  3667. invokeMethod(asyncMethod,arguments,target,privateState)
  3668. }
  3669. }(method)})
  3670. }
  3671. };
  3672. OSF.DDA.DispIdHost.addEventSupport=function OSF_DDA_DispIdHost$AddEventSupport(target, eventDispatch)
  3673. {
  3674. var add=OSF.DDA.AsyncMethodNames.AddHandlerAsync.displayName;
  3675. var remove=OSF.DDA.AsyncMethodNames.RemoveHandlerAsync.displayName;
  3676. if(!target[add])
  3677. OSF.OUtil.defineEnumerableProperty(target,add,{value: function()
  3678. {
  3679. var addEventHandler=OSF._OfficeAppFactory.getHostFacade()[OSF.DDA.DispIdHost.Methods.AddEventHandler];
  3680. addEventHandler(arguments,eventDispatch,target)
  3681. }});
  3682. if(!target[remove])
  3683. OSF.OUtil.defineEnumerableProperty(target,remove,{value: function()
  3684. {
  3685. var removeEventHandler=OSF._OfficeAppFactory.getHostFacade()[OSF.DDA.DispIdHost.Methods.RemoveEventHandler];
  3686. removeEventHandler(arguments,eventDispatch,target)
  3687. }})
  3688. };
  3689. OSF.ShowWindowDialogParameterKeys={
  3690. Url: "url",
  3691. Width: "width",
  3692. Height: "height",
  3693. DisplayInIframe: "displayInIframe"
  3694. };
  3695. OSF.HostThemeButtonStyleKeys={
  3696. ButtonBorderColor: "buttonBorderColor",
  3697. ButtonBackgroundColor: "buttonBackgroundColor"
  3698. };
  3699. var OfficeExt;
  3700. (function(OfficeExt)
  3701. {
  3702. var WACUtils;
  3703. (function(WACUtils)
  3704. {
  3705. var _trustedDomain="^https://[a-zA-Z0-9]+.(officeapps.live|officeapps-df.live|partner.officewebapps).com/";
  3706. function parseAppContextFromWindowName(skipSessionStorage, windowName)
  3707. {
  3708. return OSF.OUtil.parseInfoFromWindowName(skipSessionStorage,windowName,OSF.WindowNameItemKeys.AppContext)
  3709. }
  3710. WACUtils.parseAppContextFromWindowName=parseAppContextFromWindowName;
  3711. function serializeObjectToString(response)
  3712. {
  3713. if(typeof JSON !=="undefined")
  3714. try
  3715. {
  3716. return JSON.stringify(response)
  3717. }
  3718. catch(ex){}
  3719. return""
  3720. }
  3721. WACUtils.serializeObjectToString=serializeObjectToString;
  3722. function isHostTrusted()
  3723. {
  3724. return new RegExp(_trustedDomain).test(OSF.getClientEndPoint()._targetUrl)
  3725. }
  3726. WACUtils.isHostTrusted=isHostTrusted
  3727. })(WACUtils=OfficeExt.WACUtils || (OfficeExt.WACUtils={}))
  3728. })(OfficeExt || (OfficeExt={}));
  3729. OSF.OUtil.setNamespace("Microsoft",window);
  3730. OSF.OUtil.setNamespace("Office",Microsoft);
  3731. OSF.OUtil.setNamespace("Common",Microsoft.Office);
  3732. OSF.SerializerVersion={
  3733. MsAjax: 0,
  3734. Browser: 1
  3735. };
  3736. var OfficeExt;
  3737. (function(OfficeExt)
  3738. {
  3739. function appSpecificCheckOriginFunction(url, eventObj, messageObj, checkOriginFunction)
  3740. {
  3741. return true
  3742. }
  3743. OfficeExt.appSpecificCheckOrigin=appSpecificCheckOriginFunction
  3744. })(OfficeExt || (OfficeExt={}));
  3745. (function(window)
  3746. {
  3747. "use strict";
  3748. var stringRegEx=new RegExp('"(\\\\.|[^"\\\\])*"',"g"),
  3749. trueFalseNullRegEx=new RegExp("\\b(true|false|null)\\b","g"),
  3750. numbersRegEx=new RegExp("-?(0|([1-9]\\d*))(\\.\\d+)?([eE][+-]?\\d+)?","g"),
  3751. badBracketsRegEx=new RegExp("[^{:,\\[\\s](?=\\s*\\[)"),
  3752. badRemainderRegEx=new RegExp("[^\\s\\[\\]{}:,]"),
  3753. jsonErrorMsg="Cannot deserialize. The data does not correspond to valid JSON.";
  3754. function addHandler(element, eventName, handler)
  3755. {
  3756. if(element.addEventListener)
  3757. element.addEventListener(eventName,handler,false);
  3758. else if(element.attachEvent)
  3759. element.attachEvent("on"+eventName,handler)
  3760. }
  3761. function getAjaxSerializer()
  3762. {
  3763. if(OsfMsAjaxFactory.msAjaxSerializer)
  3764. return OsfMsAjaxFactory.msAjaxSerializer;
  3765. return null
  3766. }
  3767. function deserialize(data, secure, oldDeserialize)
  3768. {
  3769. var transformed;
  3770. if(!secure)
  3771. return oldDeserialize(data);
  3772. if(window.JSON && window.JSON.parse)
  3773. return window.JSON.parse(data);
  3774. transformed=data.replace(stringRegEx,"[]");
  3775. transformed=transformed.replace(trueFalseNullRegEx,"[]");
  3776. transformed=transformed.replace(numbersRegEx,"[]");
  3777. if(badBracketsRegEx.test(transformed))
  3778. throw jsonErrorMsg;
  3779. if(badRemainderRegEx.test(transformed))
  3780. throw jsonErrorMsg;
  3781. try
  3782. {
  3783. eval("("+data+")")
  3784. }
  3785. catch(e)
  3786. {
  3787. throw jsonErrorMsg;
  3788. }
  3789. }
  3790. function patchDeserializer()
  3791. {
  3792. var serializer=getAjaxSerializer(),
  3793. oldDeserialize;
  3794. if(serializer===null || typeof serializer.deserialize !=="function")
  3795. return false;
  3796. if(serializer.__patchVersion >=1)
  3797. return true;
  3798. oldDeserialize=serializer.deserialize;
  3799. serializer.deserialize=function(data, secure)
  3800. {
  3801. return deserialize(data,true,oldDeserialize)
  3802. };
  3803. serializer.__patchVersion=1;
  3804. return true
  3805. }
  3806. if(!patchDeserializer())
  3807. addHandler(window,"load",function()
  3808. {
  3809. patchDeserializer()
  3810. })
  3811. })(window);
  3812. Microsoft.Office.Common.InvokeType={
  3813. async: 0,
  3814. sync: 1,
  3815. asyncRegisterEvent: 2,
  3816. asyncUnregisterEvent: 3,
  3817. syncRegisterEvent: 4,
  3818. syncUnregisterEvent: 5
  3819. };
  3820. Microsoft.Office.Common.InvokeResultCode={
  3821. noError: 0,
  3822. errorInRequest: -1,
  3823. errorHandlingRequest: -2,
  3824. errorInResponse: -3,
  3825. errorHandlingResponse: -4,
  3826. errorHandlingRequestAccessDenied: -5,
  3827. errorHandlingMethodCallTimedout: -6
  3828. };
  3829. Microsoft.Office.Common.MessageType={
  3830. request: 0,
  3831. response: 1
  3832. };
  3833. Microsoft.Office.Common.ActionType={
  3834. invoke: 0,
  3835. registerEvent: 1,
  3836. unregisterEvent: 2
  3837. };
  3838. Microsoft.Office.Common.ResponseType={
  3839. forCalling: 0,
  3840. forEventing: 1
  3841. };
  3842. Microsoft.Office.Common.MethodObject=function Microsoft_Office_Common_MethodObject(method, invokeType, blockingOthers)
  3843. {
  3844. this._method=method;
  3845. this._invokeType=invokeType;
  3846. this._blockingOthers=blockingOthers
  3847. };
  3848. Microsoft.Office.Common.MethodObject.prototype={
  3849. getMethod: function Microsoft_Office_Common_MethodObject$getMethod()
  3850. {
  3851. return this._method
  3852. },
  3853. getInvokeType: function Microsoft_Office_Common_MethodObject$getInvokeType()
  3854. {
  3855. return this._invokeType
  3856. },
  3857. getBlockingFlag: function Microsoft_Office_Common_MethodObject$getBlockingFlag()
  3858. {
  3859. return this._blockingOthers
  3860. }
  3861. };
  3862. Microsoft.Office.Common.EventMethodObject=function Microsoft_Office_Common_EventMethodObject(registerMethodObject, unregisterMethodObject)
  3863. {
  3864. this._registerMethodObject=registerMethodObject;
  3865. this._unregisterMethodObject=unregisterMethodObject
  3866. };
  3867. Microsoft.Office.Common.EventMethodObject.prototype={
  3868. getRegisterMethodObject: function Microsoft_Office_Common_EventMethodObject$getRegisterMethodObject()
  3869. {
  3870. return this._registerMethodObject
  3871. },
  3872. getUnregisterMethodObject: function Microsoft_Office_Common_EventMethodObject$getUnregisterMethodObject()
  3873. {
  3874. return this._unregisterMethodObject
  3875. }
  3876. };
  3877. Microsoft.Office.Common.ServiceEndPoint=function Microsoft_Office_Common_ServiceEndPoint(serviceEndPointId)
  3878. {
  3879. var e=Function._validateParams(arguments,[{
  3880. name: "serviceEndPointId",
  3881. type: String,
  3882. mayBeNull: false
  3883. }]);
  3884. if(e)
  3885. throw e;
  3886. this._methodObjectList={};
  3887. this._eventHandlerProxyList={};
  3888. this._Id=serviceEndPointId;
  3889. this._conversations={};
  3890. this._policyManager=null;
  3891. this._appDomains={};
  3892. this._onHandleRequestError=null
  3893. };
  3894. Microsoft.Office.Common.ServiceEndPoint.prototype={
  3895. registerMethod: function Microsoft_Office_Common_ServiceEndPoint$registerMethod(methodName, method, invokeType, blockingOthers)
  3896. {
  3897. var e=Function._validateParams(arguments,[{
  3898. name: "methodName",
  3899. type: String,
  3900. mayBeNull: false
  3901. },{
  3902. name: "method",
  3903. type: Function,
  3904. mayBeNull: false
  3905. },{
  3906. name: "invokeType",
  3907. type: Number,
  3908. mayBeNull: false
  3909. },{
  3910. name: "blockingOthers",
  3911. type: Boolean,
  3912. mayBeNull: false
  3913. }]);
  3914. if(e)
  3915. throw e;
  3916. if(invokeType !==Microsoft.Office.Common.InvokeType.async && invokeType !==Microsoft.Office.Common.InvokeType.sync)
  3917. throw OsfMsAjaxFactory.msAjaxError.argument("invokeType");
  3918. var methodObject=new Microsoft.Office.Common.MethodObject(method,invokeType,blockingOthers);
  3919. this._methodObjectList[methodName]=methodObject
  3920. },
  3921. unregisterMethod: function Microsoft_Office_Common_ServiceEndPoint$unregisterMethod(methodName)
  3922. {
  3923. var e=Function._validateParams(arguments,[{
  3924. name: "methodName",
  3925. type: String,
  3926. mayBeNull: false
  3927. }]);
  3928. if(e)
  3929. throw e;
  3930. delete this._methodObjectList[methodName]
  3931. },
  3932. registerEvent: function Microsoft_Office_Common_ServiceEndPoint$registerEvent(eventName, registerMethod, unregisterMethod)
  3933. {
  3934. var e=Function._validateParams(arguments,[{
  3935. name: "eventName",
  3936. type: String,
  3937. mayBeNull: false
  3938. },{
  3939. name: "registerMethod",
  3940. type: Function,
  3941. mayBeNull: false
  3942. },{
  3943. name: "unregisterMethod",
  3944. type: Function,
  3945. mayBeNull: false
  3946. }]);
  3947. if(e)
  3948. throw e;
  3949. var methodObject=new Microsoft.Office.Common.EventMethodObject(new Microsoft.Office.Common.MethodObject(registerMethod,Microsoft.Office.Common.InvokeType.syncRegisterEvent,false),new Microsoft.Office.Common.MethodObject(unregisterMethod,Microsoft.Office.Common.InvokeType.syncUnregisterEvent,false));
  3950. this._methodObjectList[eventName]=methodObject
  3951. },
  3952. registerEventEx: function Microsoft_Office_Common_ServiceEndPoint$registerEventEx(eventName, registerMethod, registerMethodInvokeType, unregisterMethod, unregisterMethodInvokeType)
  3953. {
  3954. var e=Function._validateParams(arguments,[{
  3955. name: "eventName",
  3956. type: String,
  3957. mayBeNull: false
  3958. },{
  3959. name: "registerMethod",
  3960. type: Function,
  3961. mayBeNull: false
  3962. },{
  3963. name: "registerMethodInvokeType",
  3964. type: Number,
  3965. mayBeNull: false
  3966. },{
  3967. name: "unregisterMethod",
  3968. type: Function,
  3969. mayBeNull: false
  3970. },{
  3971. name: "unregisterMethodInvokeType",
  3972. type: Number,
  3973. mayBeNull: false
  3974. }]);
  3975. if(e)
  3976. throw e;
  3977. var methodObject=new Microsoft.Office.Common.EventMethodObject(new Microsoft.Office.Common.MethodObject(registerMethod,registerMethodInvokeType,false),new Microsoft.Office.Common.MethodObject(unregisterMethod,unregisterMethodInvokeType,false));
  3978. this._methodObjectList[eventName]=methodObject
  3979. },
  3980. unregisterEvent: function(eventName)
  3981. {
  3982. var e=Function._validateParams(arguments,[{
  3983. name: "eventName",
  3984. type: String,
  3985. mayBeNull: false
  3986. }]);
  3987. if(e)
  3988. throw e;
  3989. this.unregisterMethod(eventName)
  3990. },
  3991. registerConversation: function Microsoft_Office_Common_ServiceEndPoint$registerConversation(conversationId, conversationUrl, appDomains, serializerVersion)
  3992. {
  3993. var e=Function._validateParams(arguments,[{
  3994. name: "conversationId",
  3995. type: String,
  3996. mayBeNull: false
  3997. },{
  3998. name: "conversationUrl",
  3999. type: String,
  4000. mayBeNull: false,
  4001. optional: true
  4002. },{
  4003. name: "appDomains",
  4004. type: Object,
  4005. mayBeNull: true,
  4006. optional: true
  4007. },{
  4008. name: "serializerVersion",
  4009. type: Number,
  4010. mayBeNull: true,
  4011. optional: true
  4012. }]);
  4013. if(e)
  4014. throw e;
  4015. if(appDomains)
  4016. {
  4017. if(!(appDomains instanceof Array))
  4018. throw OsfMsAjaxFactory.msAjaxError.argument("appDomains");
  4019. this._appDomains[conversationId]=appDomains
  4020. }
  4021. this._conversations[conversationId]={
  4022. url: conversationUrl,
  4023. serializerVersion: serializerVersion
  4024. }
  4025. },
  4026. unregisterConversation: function Microsoft_Office_Common_ServiceEndPoint$unregisterConversation(conversationId)
  4027. {
  4028. var e=Function._validateParams(arguments,[{
  4029. name: "conversationId",
  4030. type: String,
  4031. mayBeNull: false
  4032. }]);
  4033. if(e)
  4034. throw e;
  4035. delete this._conversations[conversationId]
  4036. },
  4037. setPolicyManager: function Microsoft_Office_Common_ServiceEndPoint$setPolicyManager(policyManager)
  4038. {
  4039. var e=Function._validateParams(arguments,[{
  4040. name: "policyManager",
  4041. type: Object,
  4042. mayBeNull: false
  4043. }]);
  4044. if(e)
  4045. throw e;
  4046. if(!policyManager.checkPermission)
  4047. throw OsfMsAjaxFactory.msAjaxError.argument("policyManager");
  4048. this._policyManager=policyManager
  4049. },
  4050. getPolicyManager: function Microsoft_Office_Common_ServiceEndPoint$getPolicyManager()
  4051. {
  4052. return this._policyManager
  4053. },
  4054. dispose: function Microsoft_Office_Common_ServiceEndPoint$dispose()
  4055. {
  4056. this._methodObjectList=null;
  4057. this._eventHandlerProxyList=null;
  4058. this._Id=null;
  4059. this._conversations=null;
  4060. this._policyManager=null;
  4061. this._appDomains=null;
  4062. this._onHandleRequestError=null
  4063. }
  4064. };
  4065. Microsoft.Office.Common.ClientEndPoint=function Microsoft_Office_Common_ClientEndPoint(conversationId, targetWindow, targetUrl, serializerVersion)
  4066. {
  4067. var e=Function._validateParams(arguments,[{
  4068. name: "conversationId",
  4069. type: String,
  4070. mayBeNull: false
  4071. },{
  4072. name: "targetWindow",
  4073. mayBeNull: false
  4074. },{
  4075. name: "targetUrl",
  4076. type: String,
  4077. mayBeNull: false
  4078. },{
  4079. name: "serializerVersion",
  4080. type: Number,
  4081. mayBeNull: true,
  4082. optional: true
  4083. }]);
  4084. if(e)
  4085. throw e;
  4086. try
  4087. {
  4088. if(!targetWindow.postMessage)
  4089. throw OsfMsAjaxFactory.msAjaxError.argument("targetWindow");
  4090. }
  4091. catch(ex)
  4092. {
  4093. if(!Object.prototype.hasOwnProperty.call(targetWindow,"postMessage"))
  4094. throw OsfMsAjaxFactory.msAjaxError.argument("targetWindow");
  4095. }
  4096. this._conversationId=conversationId;
  4097. this._targetWindow=targetWindow;
  4098. this._targetUrl=targetUrl;
  4099. this._callingIndex=0;
  4100. this._callbackList={};
  4101. this._eventHandlerList={};
  4102. if(serializerVersion !=null)
  4103. this._serializerVersion=serializerVersion;
  4104. else
  4105. this._serializerVersion=OSF.SerializerVersion.MsAjax
  4106. };
  4107. Microsoft.Office.Common.ClientEndPoint.prototype={
  4108. invoke: function Microsoft_Office_Common_ClientEndPoint$invoke(targetMethodName, callback, param)
  4109. {
  4110. var e=Function._validateParams(arguments,[{
  4111. name: "targetMethodName",
  4112. type: String,
  4113. mayBeNull: false
  4114. },{
  4115. name: "callback",
  4116. type: Function,
  4117. mayBeNull: true
  4118. },{
  4119. name: "param",
  4120. mayBeNull: true
  4121. }]);
  4122. if(e)
  4123. throw e;
  4124. var correlationId=this._callingIndex++;
  4125. var now=new Date;
  4126. var callbackEntry={
  4127. callback: callback,
  4128. createdOn: now.getTime()
  4129. };
  4130. if(param && typeof param==="object" && typeof param.__timeout__==="number")
  4131. {
  4132. callbackEntry.timeout=param.__timeout__;
  4133. delete param.__timeout__
  4134. }
  4135. this._callbackList[correlationId]=callbackEntry;
  4136. try
  4137. {
  4138. var callRequest=new Microsoft.Office.Common.Request(targetMethodName,Microsoft.Office.Common.ActionType.invoke,this._conversationId,correlationId,param);
  4139. var msg=Microsoft.Office.Common.MessagePackager.envelope(callRequest,this._serializerVersion);
  4140. this._targetWindow.postMessage(msg,this._targetUrl);
  4141. Microsoft.Office.Common.XdmCommunicationManager._startMethodTimeoutTimer()
  4142. }
  4143. catch(ex)
  4144. {
  4145. try
  4146. {
  4147. if(callback !==null)
  4148. callback(Microsoft.Office.Common.InvokeResultCode.errorInRequest,ex)
  4149. }
  4150. finally
  4151. {
  4152. delete this._callbackList[correlationId]
  4153. }
  4154. }
  4155. },
  4156. registerForEvent: function Microsoft_Office_Common_ClientEndPoint$registerForEvent(targetEventName, eventHandler, callback, data)
  4157. {
  4158. var e=Function._validateParams(arguments,[{
  4159. name: "targetEventName",
  4160. type: String,
  4161. mayBeNull: false
  4162. },{
  4163. name: "eventHandler",
  4164. type: Function,
  4165. mayBeNull: false
  4166. },{
  4167. name: "callback",
  4168. type: Function,
  4169. mayBeNull: true
  4170. },{
  4171. name: "data",
  4172. mayBeNull: true,
  4173. optional: true
  4174. }]);
  4175. if(e)
  4176. throw e;
  4177. var correlationId=this._callingIndex++;
  4178. var now=new Date;
  4179. this._callbackList[correlationId]={
  4180. callback: callback,
  4181. createdOn: now.getTime()
  4182. };
  4183. try
  4184. {
  4185. var callRequest=new Microsoft.Office.Common.Request(targetEventName,Microsoft.Office.Common.ActionType.registerEvent,this._conversationId,correlationId,data);
  4186. var msg=Microsoft.Office.Common.MessagePackager.envelope(callRequest,this._serializerVersion);
  4187. this._targetWindow.postMessage(msg,this._targetUrl);
  4188. Microsoft.Office.Common.XdmCommunicationManager._startMethodTimeoutTimer();
  4189. this._eventHandlerList[targetEventName]=eventHandler
  4190. }
  4191. catch(ex)
  4192. {
  4193. try
  4194. {
  4195. if(callback !==null)
  4196. callback(Microsoft.Office.Common.InvokeResultCode.errorInRequest,ex)
  4197. }
  4198. finally
  4199. {
  4200. delete this._callbackList[correlationId]
  4201. }
  4202. }
  4203. },
  4204. unregisterForEvent: function Microsoft_Office_Common_ClientEndPoint$unregisterForEvent(targetEventName, callback, data)
  4205. {
  4206. var e=Function._validateParams(arguments,[{
  4207. name: "targetEventName",
  4208. type: String,
  4209. mayBeNull: false
  4210. },{
  4211. name: "callback",
  4212. type: Function,
  4213. mayBeNull: true
  4214. },{
  4215. name: "data",
  4216. mayBeNull: true,
  4217. optional: true
  4218. }]);
  4219. if(e)
  4220. throw e;
  4221. var correlationId=this._callingIndex++;
  4222. var now=new Date;
  4223. this._callbackList[correlationId]={
  4224. callback: callback,
  4225. createdOn: now.getTime()
  4226. };
  4227. try
  4228. {
  4229. var callRequest=new Microsoft.Office.Common.Request(targetEventName,Microsoft.Office.Common.ActionType.unregisterEvent,this._conversationId,correlationId,data);
  4230. var msg=Microsoft.Office.Common.MessagePackager.envelope(callRequest,this._serializerVersion);
  4231. this._targetWindow.postMessage(msg,this._targetUrl);
  4232. Microsoft.Office.Common.XdmCommunicationManager._startMethodTimeoutTimer()
  4233. }
  4234. catch(ex)
  4235. {
  4236. try
  4237. {
  4238. if(callback !==null)
  4239. callback(Microsoft.Office.Common.InvokeResultCode.errorInRequest,ex)
  4240. }
  4241. finally
  4242. {
  4243. delete this._callbackList[correlationId]
  4244. }
  4245. }
  4246. finally
  4247. {
  4248. delete this._eventHandlerList[targetEventName]
  4249. }
  4250. }
  4251. };
  4252. Microsoft.Office.Common.XdmCommunicationManager=function()
  4253. {
  4254. var _invokerQueue=[];
  4255. var _lastMessageProcessTime=null;
  4256. var _messageProcessingTimer=null;
  4257. var _processInterval=10;
  4258. var _blockingFlag=false;
  4259. var _methodTimeoutTimer=null;
  4260. var _methodTimeoutProcessInterval=2e3;
  4261. var _methodTimeoutDefault=65e3;
  4262. var _methodTimeout=_methodTimeoutDefault;
  4263. var _serviceEndPoints={};
  4264. var _clientEndPoints={};
  4265. var _initialized=false;
  4266. function _lookupServiceEndPoint(conversationId)
  4267. {
  4268. for(var id in _serviceEndPoints)
  4269. if(_serviceEndPoints[id]._conversations[conversationId])
  4270. return _serviceEndPoints[id];
  4271. OsfMsAjaxFactory.msAjaxDebug.trace("Unknown conversation Id.");
  4272. throw OsfMsAjaxFactory.msAjaxError.argument("conversationId");
  4273. }
  4274. function _lookupClientEndPoint(conversationId)
  4275. {
  4276. var clientEndPoint=_clientEndPoints[conversationId];
  4277. if(!clientEndPoint)
  4278. OsfMsAjaxFactory.msAjaxDebug.trace("Unknown conversation Id.");
  4279. return clientEndPoint
  4280. }
  4281. function _lookupMethodObject(serviceEndPoint, messageObject)
  4282. {
  4283. var methodOrEventMethodObject=serviceEndPoint._methodObjectList[messageObject._actionName];
  4284. if(!methodOrEventMethodObject)
  4285. {
  4286. OsfMsAjaxFactory.msAjaxDebug.trace("The specified method is not registered on service endpoint:"+messageObject._actionName);
  4287. throw OsfMsAjaxFactory.msAjaxError.argument("messageObject");
  4288. }
  4289. var methodObject=null;
  4290. if(messageObject._actionType===Microsoft.Office.Common.ActionType.invoke)
  4291. methodObject=methodOrEventMethodObject;
  4292. else if(messageObject._actionType===Microsoft.Office.Common.ActionType.registerEvent)
  4293. methodObject=methodOrEventMethodObject.getRegisterMethodObject();
  4294. else
  4295. methodObject=methodOrEventMethodObject.getUnregisterMethodObject();
  4296. return methodObject
  4297. }
  4298. function _enqueInvoker(invoker)
  4299. {
  4300. _invokerQueue.push(invoker)
  4301. }
  4302. function _dequeInvoker()
  4303. {
  4304. if(_messageProcessingTimer !==null)
  4305. {
  4306. if(!_blockingFlag)
  4307. if(_invokerQueue.length > 0)
  4308. {
  4309. var invoker=_invokerQueue.shift();
  4310. _executeCommand(invoker)
  4311. }
  4312. else
  4313. {
  4314. clearInterval(_messageProcessingTimer);
  4315. _messageProcessingTimer=null
  4316. }
  4317. }
  4318. else
  4319. OsfMsAjaxFactory.msAjaxDebug.trace("channel is not ready.")
  4320. }
  4321. function _executeCommand(invoker)
  4322. {
  4323. _blockingFlag=invoker.getInvokeBlockingFlag();
  4324. invoker.invoke();
  4325. _lastMessageProcessTime=(new Date).getTime()
  4326. }
  4327. function _checkMethodTimeout()
  4328. {
  4329. if(_methodTimeoutTimer)
  4330. {
  4331. var clientEndPoint;
  4332. var methodCallsNotTimedout=0;
  4333. var now=new Date;
  4334. var timeoutValue;
  4335. for(var conversationId in _clientEndPoints)
  4336. {
  4337. clientEndPoint=_clientEndPoints[conversationId];
  4338. for(var correlationId in clientEndPoint._callbackList)
  4339. {
  4340. var callbackEntry=clientEndPoint._callbackList[correlationId];
  4341. timeoutValue=callbackEntry.timeout ? callbackEntry.timeout : _methodTimeout;
  4342. if(timeoutValue >=0 && Math.abs(now.getTime() - callbackEntry.createdOn) >=timeoutValue)
  4343. try
  4344. {
  4345. if(callbackEntry.callback)
  4346. callbackEntry.callback(Microsoft.Office.Common.InvokeResultCode.errorHandlingMethodCallTimedout,null)
  4347. }
  4348. finally
  4349. {
  4350. delete clientEndPoint._callbackList[correlationId]
  4351. }
  4352. else
  4353. methodCallsNotTimedout++ }
  4354. }
  4355. if(methodCallsNotTimedout===0)
  4356. {
  4357. clearInterval(_methodTimeoutTimer);
  4358. _methodTimeoutTimer=null
  4359. }
  4360. }
  4361. else
  4362. OsfMsAjaxFactory.msAjaxDebug.trace("channel is not ready.")
  4363. }
  4364. function _postCallbackHandler()
  4365. {
  4366. _blockingFlag=false
  4367. }
  4368. function _registerListener(listener)
  4369. {
  4370. if(window.addEventListener)
  4371. window.addEventListener("message",listener,false);
  4372. else if(navigator.userAgent.indexOf("MSIE") > -1 && window.attachEvent)
  4373. window.attachEvent("onmessage",listener);
  4374. else
  4375. {
  4376. OsfMsAjaxFactory.msAjaxDebug.trace("Browser doesn't support the required API.");
  4377. throw OsfMsAjaxFactory.msAjaxError.argument("Browser");
  4378. }
  4379. }
  4380. function _checkOrigin(url, origin)
  4381. {
  4382. var res=false;
  4383. if(url===true)
  4384. return true;
  4385. if(!url || !origin || !url.length || !origin.length)
  4386. return res;
  4387. var url_parser,
  4388. org_parser;
  4389. url_parser=document.createElement("a");
  4390. org_parser=document.createElement("a");
  4391. url_parser.href=url;
  4392. org_parser.href=origin;
  4393. res=_urlCompare(url_parser,org_parser);
  4394. delete url_parser,org_parser;
  4395. return res
  4396. }
  4397. function _checkOriginWithAppDomains(allowed_domains, origin)
  4398. {
  4399. var res=false;
  4400. if(!origin || !origin.length || !allowed_domains || !(allowed_domains instanceof Array) || !allowed_domains.length)
  4401. return res;
  4402. var org_parser=document.createElement("a");
  4403. var app_domain_parser=document.createElement("a");
  4404. org_parser.href=origin;
  4405. for(var i=0; i < allowed_domains.length && !res; i++)
  4406. if(allowed_domains[i].indexOf("://") !==-1)
  4407. {
  4408. app_domain_parser.href=allowed_domains[i];
  4409. res=_urlCompare(org_parser,app_domain_parser)
  4410. }
  4411. delete org_parser,app_domain_parser;
  4412. return res
  4413. }
  4414. function _urlCompare(url_parser1, url_parser2)
  4415. {
  4416. return url_parser1.hostname==url_parser2.hostname && url_parser1.protocol==url_parser2.protocol && url_parser1.port==url_parser2.port
  4417. }
  4418. function _receive(e)
  4419. {
  4420. if(e.data !="")
  4421. {
  4422. var messageObject;
  4423. var serializerVersion=OSF.SerializerVersion.MsAjax;
  4424. var serializedMessage=e.data;
  4425. try
  4426. {
  4427. messageObject=Microsoft.Office.Common.MessagePackager.unenvelope(serializedMessage,OSF.SerializerVersion.Browser);
  4428. serializerVersion=messageObject._serializerVersion !=null ? messageObject._serializerVersion : serializerVersion
  4429. }
  4430. catch(ex){}
  4431. if(serializerVersion !=OSF.SerializerVersion.Browser)
  4432. try
  4433. {
  4434. messageObject=Microsoft.Office.Common.MessagePackager.unenvelope(serializedMessage,serializerVersion)
  4435. }
  4436. catch(ex)
  4437. {
  4438. return
  4439. }
  4440. if(typeof messageObject._messageType=="undefined")
  4441. return;
  4442. if(messageObject._messageType===Microsoft.Office.Common.MessageType.request)
  4443. {
  4444. var requesterUrl=e.origin==null || e.origin=="null" ? messageObject._origin : e.origin;
  4445. try
  4446. {
  4447. var serviceEndPoint=_lookupServiceEndPoint(messageObject._conversationId);
  4448. var conversation=serviceEndPoint._conversations[messageObject._conversationId];
  4449. serializerVersion=conversation.serializerVersion !=null ? conversation.serializerVersion : serializerVersion;
  4450. if(!_checkOrigin(conversation.url,e.origin) && !_checkOriginWithAppDomains(serviceEndPoint._appDomains[messageObject._conversationId],e.origin))
  4451. throw"Failed origin check";
  4452. var policyManager=serviceEndPoint.getPolicyManager();
  4453. if(policyManager && !policyManager.checkPermission(messageObject._conversationId,messageObject._actionName,messageObject._data))
  4454. throw"Access Denied";
  4455. var methodObject=_lookupMethodObject(serviceEndPoint,messageObject);
  4456. var invokeCompleteCallback=new Microsoft.Office.Common.InvokeCompleteCallback(e.source,requesterUrl,messageObject._actionName,messageObject._conversationId,messageObject._correlationId,_postCallbackHandler,serializerVersion);
  4457. var invoker=new Microsoft.Office.Common.Invoker(methodObject,messageObject._data,invokeCompleteCallback,serviceEndPoint._eventHandlerProxyList,messageObject._conversationId,messageObject._actionName,serializerVersion);
  4458. var shouldEnque=true;
  4459. if(_messageProcessingTimer==null)
  4460. if((_lastMessageProcessTime==null || (new Date).getTime() - _lastMessageProcessTime > _processInterval) && !_blockingFlag)
  4461. {
  4462. _executeCommand(invoker);
  4463. shouldEnque=false
  4464. }
  4465. else
  4466. _messageProcessingTimer=setInterval(_dequeInvoker,_processInterval);
  4467. if(shouldEnque)
  4468. _enqueInvoker(invoker)
  4469. }
  4470. catch(ex)
  4471. {
  4472. if(serviceEndPoint && serviceEndPoint._onHandleRequestError)
  4473. serviceEndPoint._onHandleRequestError(messageObject,ex);
  4474. var errorCode=Microsoft.Office.Common.InvokeResultCode.errorHandlingRequest;
  4475. if(ex=="Access Denied")
  4476. errorCode=Microsoft.Office.Common.InvokeResultCode.errorHandlingRequestAccessDenied;
  4477. var callResponse=new Microsoft.Office.Common.Response(messageObject._actionName,messageObject._conversationId,messageObject._correlationId,errorCode,Microsoft.Office.Common.ResponseType.forCalling,ex);
  4478. var envelopedResult=Microsoft.Office.Common.MessagePackager.envelope(callResponse,serializerVersion);
  4479. if(e.source && e.source.postMessage)
  4480. e.source.postMessage(envelopedResult,requesterUrl)
  4481. }
  4482. }
  4483. else if(messageObject._messageType===Microsoft.Office.Common.MessageType.response)
  4484. {
  4485. var clientEndPoint=_lookupClientEndPoint(messageObject._conversationId);
  4486. if(!clientEndPoint)
  4487. return;
  4488. clientEndPoint._serializerVersion=serializerVersion;
  4489. if(!_checkOrigin(clientEndPoint._targetUrl,e.origin))
  4490. throw"Failed orgin check";
  4491. if(messageObject._responseType===Microsoft.Office.Common.ResponseType.forCalling)
  4492. {
  4493. var callbackEntry=clientEndPoint._callbackList[messageObject._correlationId];
  4494. if(callbackEntry)
  4495. try
  4496. {
  4497. if(callbackEntry.callback)
  4498. callbackEntry.callback(messageObject._errorCode,messageObject._data)
  4499. }
  4500. finally
  4501. {
  4502. delete clientEndPoint._callbackList[messageObject._correlationId]
  4503. }
  4504. }
  4505. else
  4506. {
  4507. var eventhandler=clientEndPoint._eventHandlerList[messageObject._actionName];
  4508. if(eventhandler !==undefined && eventhandler !==null)
  4509. eventhandler(messageObject._data)
  4510. }
  4511. }
  4512. else
  4513. return
  4514. }
  4515. }
  4516. function _initialize()
  4517. {
  4518. if(!_initialized)
  4519. {
  4520. _registerListener(_receive);
  4521. _initialized=true
  4522. }
  4523. }
  4524. return{
  4525. connect: function Microsoft_Office_Common_XdmCommunicationManager$connect(conversationId, targetWindow, targetUrl, serializerVersion)
  4526. {
  4527. var clientEndPoint=_clientEndPoints[conversationId];
  4528. if(!clientEndPoint)
  4529. {
  4530. _initialize();
  4531. clientEndPoint=new Microsoft.Office.Common.ClientEndPoint(conversationId,targetWindow,targetUrl,serializerVersion);
  4532. _clientEndPoints[conversationId]=clientEndPoint
  4533. }
  4534. return clientEndPoint
  4535. },
  4536. getClientEndPoint: function Microsoft_Office_Common_XdmCommunicationManager$getClientEndPoint(conversationId)
  4537. {
  4538. var e=Function._validateParams(arguments,[{
  4539. name: "conversationId",
  4540. type: String,
  4541. mayBeNull: false
  4542. }]);
  4543. if(e)
  4544. throw e;
  4545. return _clientEndPoints[conversationId]
  4546. },
  4547. createServiceEndPoint: function Microsoft_Office_Common_XdmCommunicationManager$createServiceEndPoint(serviceEndPointId)
  4548. {
  4549. _initialize();
  4550. var serviceEndPoint=new Microsoft.Office.Common.ServiceEndPoint(serviceEndPointId);
  4551. _serviceEndPoints[serviceEndPointId]=serviceEndPoint;
  4552. return serviceEndPoint
  4553. },
  4554. getServiceEndPoint: function Microsoft_Office_Common_XdmCommunicationManager$getServiceEndPoint(serviceEndPointId)
  4555. {
  4556. var e=Function._validateParams(arguments,[{
  4557. name: "serviceEndPointId",
  4558. type: String,
  4559. mayBeNull: false
  4560. }]);
  4561. if(e)
  4562. throw e;
  4563. return _serviceEndPoints[serviceEndPointId]
  4564. },
  4565. deleteClientEndPoint: function Microsoft_Office_Common_XdmCommunicationManager$deleteClientEndPoint(conversationId)
  4566. {
  4567. var e=Function._validateParams(arguments,[{
  4568. name: "conversationId",
  4569. type: String,
  4570. mayBeNull: false
  4571. }]);
  4572. if(e)
  4573. throw e;
  4574. delete _clientEndPoints[conversationId]
  4575. },
  4576. deleteServiceEndPoint: function Microsoft_Office_Common_XdmCommunicationManager$deleteServiceEndPoint(serviceEndPointId)
  4577. {
  4578. var e=Function._validateParams(arguments,[{
  4579. name: "serviceEndPointId",
  4580. type: String,
  4581. mayBeNull: false
  4582. }]);
  4583. if(e)
  4584. throw e;
  4585. delete _serviceEndPoints[serviceEndPointId]
  4586. },
  4587. checkUrlWithAppDomains: function Microsoft_Office_Common_XdmCommunicationManager$_checkUrlWithAppDomains(appDomains, origin)
  4588. {
  4589. return _checkOriginWithAppDomains(appDomains,origin)
  4590. },
  4591. _setMethodTimeout: function Microsoft_Office_Common_XdmCommunicationManager$_setMethodTimeout(methodTimeout)
  4592. {
  4593. var e=Function._validateParams(arguments,[{
  4594. name: "methodTimeout",
  4595. type: Number,
  4596. mayBeNull: false
  4597. }]);
  4598. if(e)
  4599. throw e;
  4600. _methodTimeout=methodTimeout <=0 ? _methodTimeoutDefault : methodTimeout
  4601. },
  4602. _startMethodTimeoutTimer: function Microsoft_Office_Common_XdmCommunicationManager$_startMethodTimeoutTimer()
  4603. {
  4604. if(!_methodTimeoutTimer)
  4605. _methodTimeoutTimer=setInterval(_checkMethodTimeout,_methodTimeoutProcessInterval)
  4606. }
  4607. }
  4608. }();
  4609. Microsoft.Office.Common.Message=function Microsoft_Office_Common_Message(messageType, actionName, conversationId, correlationId, data)
  4610. {
  4611. var e=Function._validateParams(arguments,[{
  4612. name: "messageType",
  4613. type: Number,
  4614. mayBeNull: false
  4615. },{
  4616. name: "actionName",
  4617. type: String,
  4618. mayBeNull: false
  4619. },{
  4620. name: "conversationId",
  4621. type: String,
  4622. mayBeNull: false
  4623. },{
  4624. name: "correlationId",
  4625. mayBeNull: false
  4626. },{
  4627. name: "data",
  4628. mayBeNull: true,
  4629. optional: true
  4630. }]);
  4631. if(e)
  4632. throw e;
  4633. this._messageType=messageType;
  4634. this._actionName=actionName;
  4635. this._conversationId=conversationId;
  4636. this._correlationId=correlationId;
  4637. this._origin=window.location.href;
  4638. if(typeof data=="undefined")
  4639. this._data=null;
  4640. else
  4641. this._data=data
  4642. };
  4643. Microsoft.Office.Common.Message.prototype={
  4644. getActionName: function Microsoft_Office_Common_Message$getActionName()
  4645. {
  4646. return this._actionName
  4647. },
  4648. getConversationId: function Microsoft_Office_Common_Message$getConversationId()
  4649. {
  4650. return this._conversationId
  4651. },
  4652. getCorrelationId: function Microsoft_Office_Common_Message$getCorrelationId()
  4653. {
  4654. return this._correlationId
  4655. },
  4656. getOrigin: function Microsoft_Office_Common_Message$getOrigin()
  4657. {
  4658. return this._origin
  4659. },
  4660. getData: function Microsoft_Office_Common_Message$getData()
  4661. {
  4662. return this._data
  4663. },
  4664. getMessageType: function Microsoft_Office_Common_Message$getMessageType()
  4665. {
  4666. return this._messageType
  4667. }
  4668. };
  4669. Microsoft.Office.Common.Request=function Microsoft_Office_Common_Request(actionName, actionType, conversationId, correlationId, data)
  4670. {
  4671. Microsoft.Office.Common.Request.uber.constructor.call(this,Microsoft.Office.Common.MessageType.request,actionName,conversationId,correlationId,data);
  4672. this._actionType=actionType
  4673. };
  4674. OSF.OUtil.extend(Microsoft.Office.Common.Request,Microsoft.Office.Common.Message);
  4675. Microsoft.Office.Common.Request.prototype.getActionType=function Microsoft_Office_Common_Request$getActionType()
  4676. {
  4677. return this._actionType
  4678. };
  4679. Microsoft.Office.Common.Response=function Microsoft_Office_Common_Response(actionName, conversationId, correlationId, errorCode, responseType, data)
  4680. {
  4681. Microsoft.Office.Common.Response.uber.constructor.call(this,Microsoft.Office.Common.MessageType.response,actionName,conversationId,correlationId,data);
  4682. this._errorCode=errorCode;
  4683. this._responseType=responseType
  4684. };
  4685. OSF.OUtil.extend(Microsoft.Office.Common.Response,Microsoft.Office.Common.Message);
  4686. Microsoft.Office.Common.Response.prototype.getErrorCode=function Microsoft_Office_Common_Response$getErrorCode()
  4687. {
  4688. return this._errorCode
  4689. };
  4690. Microsoft.Office.Common.Response.prototype.getResponseType=function Microsoft_Office_Common_Response$getResponseType()
  4691. {
  4692. return this._responseType
  4693. };
  4694. Microsoft.Office.Common.MessagePackager={
  4695. envelope: function Microsoft_Office_Common_MessagePackager$envelope(messageObject, serializerVersion)
  4696. {
  4697. if(serializerVersion==OSF.SerializerVersion.Browser && typeof JSON !=="undefined")
  4698. {
  4699. if(typeof messageObject==="object")
  4700. messageObject._serializerVersion=serializerVersion;
  4701. return JSON.stringify(messageObject)
  4702. }
  4703. else
  4704. {
  4705. if(typeof messageObject==="object")
  4706. messageObject._serializerVersion=OSF.SerializerVersion.MsAjax;
  4707. return OsfMsAjaxFactory.msAjaxSerializer.serialize(messageObject)
  4708. }
  4709. },
  4710. unenvelope: function Microsoft_Office_Common_MessagePackager$unenvelope(messageObject, serializerVersion)
  4711. {
  4712. if(serializerVersion==OSF.SerializerVersion.Browser && typeof JSON !=="undefined")
  4713. return JSON.parse(messageObject);
  4714. else
  4715. return OsfMsAjaxFactory.msAjaxSerializer.deserialize(messageObject,true)
  4716. }
  4717. };
  4718. Microsoft.Office.Common.ResponseSender=function Microsoft_Office_Common_ResponseSender(requesterWindow, requesterUrl, actionName, conversationId, correlationId, responseType, serializerVersion)
  4719. {
  4720. var e=Function._validateParams(arguments,[{
  4721. name: "requesterWindow",
  4722. mayBeNull: false
  4723. },{
  4724. name: "requesterUrl",
  4725. type: String,
  4726. mayBeNull: false
  4727. },{
  4728. name: "actionName",
  4729. type: String,
  4730. mayBeNull: false
  4731. },{
  4732. name: "conversationId",
  4733. type: String,
  4734. mayBeNull: false
  4735. },{
  4736. name: "correlationId",
  4737. mayBeNull: false
  4738. },{
  4739. name: "responsetype",
  4740. type: Number,
  4741. maybeNull: false
  4742. },{
  4743. name: "serializerVersion",
  4744. type: Number,
  4745. maybeNull: true,
  4746. optional: true
  4747. }]);
  4748. if(e)
  4749. throw e;
  4750. this._requesterWindow=requesterWindow;
  4751. this._requesterUrl=requesterUrl;
  4752. this._actionName=actionName;
  4753. this._conversationId=conversationId;
  4754. this._correlationId=correlationId;
  4755. this._invokeResultCode=Microsoft.Office.Common.InvokeResultCode.noError;
  4756. this._responseType=responseType;
  4757. var me=this;
  4758. this._send=function(result)
  4759. {
  4760. try
  4761. {
  4762. var response=new Microsoft.Office.Common.Response(me._actionName,me._conversationId,me._correlationId,me._invokeResultCode,me._responseType,result);
  4763. var envelopedResult=Microsoft.Office.Common.MessagePackager.envelope(response,serializerVersion);
  4764. me._requesterWindow.postMessage(envelopedResult,me._requesterUrl)
  4765. }
  4766. catch(ex)
  4767. {
  4768. OsfMsAjaxFactory.msAjaxDebug.trace("ResponseSender._send error:"+ex.message)
  4769. }
  4770. }
  4771. };
  4772. Microsoft.Office.Common.ResponseSender.prototype={
  4773. getRequesterWindow: function Microsoft_Office_Common_ResponseSender$getRequesterWindow()
  4774. {
  4775. return this._requesterWindow
  4776. },
  4777. getRequesterUrl: function Microsoft_Office_Common_ResponseSender$getRequesterUrl()
  4778. {
  4779. return this._requesterUrl
  4780. },
  4781. getActionName: function Microsoft_Office_Common_ResponseSender$getActionName()
  4782. {
  4783. return this._actionName
  4784. },
  4785. getConversationId: function Microsoft_Office_Common_ResponseSender$getConversationId()
  4786. {
  4787. return this._conversationId
  4788. },
  4789. getCorrelationId: function Microsoft_Office_Common_ResponseSender$getCorrelationId()
  4790. {
  4791. return this._correlationId
  4792. },
  4793. getSend: function Microsoft_Office_Common_ResponseSender$getSend()
  4794. {
  4795. return this._send
  4796. },
  4797. setResultCode: function Microsoft_Office_Common_ResponseSender$setResultCode(resultCode)
  4798. {
  4799. this._invokeResultCode=resultCode
  4800. }
  4801. };
  4802. Microsoft.Office.Common.InvokeCompleteCallback=function Microsoft_Office_Common_InvokeCompleteCallback(requesterWindow, requesterUrl, actionName, conversationId, correlationId, postCallbackHandler, serializerVersion)
  4803. {
  4804. Microsoft.Office.Common.InvokeCompleteCallback.uber.constructor.call(this,requesterWindow,requesterUrl,actionName,conversationId,correlationId,Microsoft.Office.Common.ResponseType.forCalling,serializerVersion);
  4805. this._postCallbackHandler=postCallbackHandler;
  4806. var me=this;
  4807. this._send=function(result, responseCode)
  4808. {
  4809. if(responseCode !=undefined)
  4810. me._invokeResultCode=responseCode;
  4811. try
  4812. {
  4813. var response=new Microsoft.Office.Common.Response(me._actionName,me._conversationId,me._correlationId,me._invokeResultCode,me._responseType,result);
  4814. var envelopedResult=Microsoft.Office.Common.MessagePackager.envelope(response,serializerVersion);
  4815. me._requesterWindow.postMessage(envelopedResult,me._requesterUrl);
  4816. me._postCallbackHandler()
  4817. }
  4818. catch(ex)
  4819. {
  4820. OsfMsAjaxFactory.msAjaxDebug.trace("InvokeCompleteCallback._send error:"+ex.message)
  4821. }
  4822. }
  4823. };
  4824. OSF.OUtil.extend(Microsoft.Office.Common.InvokeCompleteCallback,Microsoft.Office.Common.ResponseSender);
  4825. Microsoft.Office.Common.Invoker=function Microsoft_Office_Common_Invoker(methodObject, paramValue, invokeCompleteCallback, eventHandlerProxyList, conversationId, eventName, serializerVersion)
  4826. {
  4827. var e=Function._validateParams(arguments,[{
  4828. name: "methodObject",
  4829. mayBeNull: false
  4830. },{
  4831. name: "paramValue",
  4832. mayBeNull: true
  4833. },{
  4834. name: "invokeCompleteCallback",
  4835. mayBeNull: false
  4836. },{
  4837. name: "eventHandlerProxyList",
  4838. mayBeNull: true
  4839. },{
  4840. name: "conversationId",
  4841. type: String,
  4842. mayBeNull: false
  4843. },{
  4844. name: "eventName",
  4845. type: String,
  4846. mayBeNull: false
  4847. },{
  4848. name: "serializerVersion",
  4849. type: Number,
  4850. mayBeNull: true,
  4851. optional: true
  4852. }]);
  4853. if(e)
  4854. throw e;
  4855. this._methodObject=methodObject;
  4856. this._param=paramValue;
  4857. this._invokeCompleteCallback=invokeCompleteCallback;
  4858. this._eventHandlerProxyList=eventHandlerProxyList;
  4859. this._conversationId=conversationId;
  4860. this._eventName=eventName;
  4861. this._serializerVersion=serializerVersion
  4862. };
  4863. Microsoft.Office.Common.Invoker.prototype={
  4864. invoke: function Microsoft_Office_Common_Invoker$invoke()
  4865. {
  4866. try
  4867. {
  4868. var result;
  4869. switch(this._methodObject.getInvokeType())
  4870. {
  4871. case Microsoft.Office.Common.InvokeType.async:
  4872. this._methodObject.getMethod()(this._param,this._invokeCompleteCallback.getSend());
  4873. break;
  4874. case Microsoft.Office.Common.InvokeType.sync:
  4875. result=this._methodObject.getMethod()(this._param);
  4876. this._invokeCompleteCallback.getSend()(result);
  4877. break;
  4878. case Microsoft.Office.Common.InvokeType.syncRegisterEvent:
  4879. var eventHandlerProxy=this._createEventHandlerProxyObject(this._invokeCompleteCallback);
  4880. result=this._methodObject.getMethod()(eventHandlerProxy.getSend(),this._param);
  4881. this._eventHandlerProxyList[this._conversationId+this._eventName]=eventHandlerProxy.getSend();
  4882. this._invokeCompleteCallback.getSend()(result);
  4883. break;
  4884. case Microsoft.Office.Common.InvokeType.syncUnregisterEvent:
  4885. var eventHandler=this._eventHandlerProxyList[this._conversationId+this._eventName];
  4886. result=this._methodObject.getMethod()(eventHandler,this._param);
  4887. delete this._eventHandlerProxyList[this._conversationId+this._eventName];
  4888. this._invokeCompleteCallback.getSend()(result);
  4889. break;
  4890. case Microsoft.Office.Common.InvokeType.asyncRegisterEvent:
  4891. var eventHandlerProxyAsync=this._createEventHandlerProxyObject(this._invokeCompleteCallback);
  4892. this._methodObject.getMethod()(eventHandlerProxyAsync.getSend(),this._invokeCompleteCallback.getSend(),this._param);
  4893. this._eventHandlerProxyList[this._callerId+this._eventName]=eventHandlerProxyAsync.getSend();
  4894. break;
  4895. case Microsoft.Office.Common.InvokeType.asyncUnregisterEvent:
  4896. var eventHandlerAsync=this._eventHandlerProxyList[this._callerId+this._eventName];
  4897. this._methodObject.getMethod()(eventHandlerAsync,this._invokeCompleteCallback.getSend(),this._param);
  4898. delete this._eventHandlerProxyList[this._callerId+this._eventName];
  4899. break;
  4900. default:
  4901. break
  4902. }
  4903. }
  4904. catch(ex)
  4905. {
  4906. this._invokeCompleteCallback.setResultCode(Microsoft.Office.Common.InvokeResultCode.errorInResponse);
  4907. this._invokeCompleteCallback.getSend()(ex)
  4908. }
  4909. },
  4910. getInvokeBlockingFlag: function Microsoft_Office_Common_Invoker$getInvokeBlockingFlag()
  4911. {
  4912. return this._methodObject.getBlockingFlag()
  4913. },
  4914. _createEventHandlerProxyObject: function Microsoft_Office_Common_Invoker$_createEventHandlerProxyObject(invokeCompleteObject)
  4915. {
  4916. return new Microsoft.Office.Common.ResponseSender(invokeCompleteObject.getRequesterWindow(),invokeCompleteObject.getRequesterUrl(),invokeCompleteObject.getActionName(),invokeCompleteObject.getConversationId(),invokeCompleteObject.getCorrelationId(),Microsoft.Office.Common.ResponseType.forEventing,this._serializerVersion)
  4917. }
  4918. };
  4919. OSF.OUtil.setNamespace("WAC",OSF.DDA);
  4920. OSF.DDA.WAC.UniqueArguments={
  4921. Data: "Data",
  4922. Properties: "Properties",
  4923. BindingRequest: "DdaBindingsMethod",
  4924. BindingResponse: "Bindings",
  4925. SingleBindingResponse: "singleBindingResponse",
  4926. GetData: "DdaGetBindingData",
  4927. AddRowsColumns: "DdaAddRowsColumns",
  4928. SetData: "DdaSetBindingData",
  4929. ClearFormats: "DdaClearBindingFormats",
  4930. SetFormats: "DdaSetBindingFormats",
  4931. SettingsRequest: "DdaSettingsMethod",
  4932. BindingEventSource: "ddaBinding",
  4933. ArrayData: "ArrayData"
  4934. };
  4935. OSF.OUtil.setNamespace("Delegate",OSF.DDA.WAC);
  4936. OSF.DDA.WAC.Delegate.SpecialProcessor=function OSF_DDA_WAC_Delegate_SpecialProcessor()
  4937. {
  4938. var complexTypes=[OSF.DDA.WAC.UniqueArguments.SingleBindingResponse,OSF.DDA.WAC.UniqueArguments.BindingRequest,OSF.DDA.WAC.UniqueArguments.BindingResponse,OSF.DDA.WAC.UniqueArguments.GetData,OSF.DDA.WAC.UniqueArguments.AddRowsColumns,OSF.DDA.WAC.UniqueArguments.SetData,OSF.DDA.WAC.UniqueArguments.ClearFormats,OSF.DDA.WAC.UniqueArguments.SetFormats,OSF.DDA.WAC.UniqueArguments.SettingsRequest,OSF.DDA.WAC.UniqueArguments.BindingEventSource];
  4939. var dynamicTypes={};
  4940. OSF.DDA.WAC.Delegate.SpecialProcessor.uber.constructor.call(this,complexTypes,dynamicTypes)
  4941. };
  4942. OSF.OUtil.extend(OSF.DDA.WAC.Delegate.SpecialProcessor,OSF.DDA.SpecialProcessor);
  4943. OSF.DDA.WAC.Delegate.ParameterMap=OSF.DDA.getDecoratedParameterMap(new OSF.DDA.WAC.Delegate.SpecialProcessor,[]);
  4944. OSF.OUtil.setNamespace("WAC",OSF.DDA);
  4945. OSF.OUtil.setNamespace("Delegate",OSF.DDA.WAC);
  4946. OSF.DDA.WAC.getDelegateMethods=function OSF_DDA_WAC_getDelegateMethods()
  4947. {
  4948. var delegateMethods={};
  4949. delegateMethods[OSF.DDA.DispIdHost.Delegates.ExecuteAsync]=OSF.DDA.WAC.Delegate.executeAsync;
  4950. delegateMethods[OSF.DDA.DispIdHost.Delegates.RegisterEventAsync]=OSF.DDA.WAC.Delegate.registerEventAsync;
  4951. delegateMethods[OSF.DDA.DispIdHost.Delegates.UnregisterEventAsync]=OSF.DDA.WAC.Delegate.unregisterEventAsync;
  4952. delegateMethods[OSF.DDA.DispIdHost.Delegates.OpenDialog]=OSF.DDA.WAC.Delegate.openDialog;
  4953. delegateMethods[OSF.DDA.DispIdHost.Delegates.MessageParent]=OSF.DDA.WAC.Delegate.messageParent;
  4954. delegateMethods[OSF.DDA.DispIdHost.Delegates.SendMessage]=OSF.DDA.WAC.Delegate.sendMessage;
  4955. delegateMethods[OSF.DDA.DispIdHost.Delegates.CloseDialog]=OSF.DDA.WAC.Delegate.closeDialog;
  4956. return delegateMethods
  4957. };
  4958. OSF.DDA.WAC.Delegate.version=1;
  4959. OSF.DDA.WAC.Delegate.executeAsync=function OSF_DDA_WAC_Delegate$executeAsync(args)
  4960. {
  4961. if(!args.hostCallArgs)
  4962. args.hostCallArgs={};
  4963. args.hostCallArgs["DdaMethod"]={
  4964. ControlId: OSF._OfficeAppFactory.getId(),
  4965. Version: OSF.DDA.WAC.Delegate.version,
  4966. DispatchId: args.dispId
  4967. };
  4968. args.hostCallArgs["__timeout__"]=-1;
  4969. if(args.onCalling)
  4970. args.onCalling();
  4971. var startTime=(new Date).getTime();
  4972. OSF.getClientEndPoint().invoke("executeMethod",function OSF_DDA_WAC_Delegate$OMFacade$OnResponse(xdmStatus, payload)
  4973. {
  4974. if(args.onReceiving)
  4975. args.onReceiving();
  4976. var error;
  4977. if(xdmStatus==Microsoft.Office.Common.InvokeResultCode.noError)
  4978. {
  4979. OSF.DDA.WAC.Delegate.version=payload["Version"];
  4980. error=payload["Error"]
  4981. }
  4982. else
  4983. switch(xdmStatus)
  4984. {
  4985. case Microsoft.Office.Common.InvokeResultCode.errorHandlingRequestAccessDenied:
  4986. error=OSF.DDA.ErrorCodeManager.errorCodes.ooeNoCapability;
  4987. break;
  4988. default:
  4989. error=OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError;
  4990. break
  4991. }
  4992. if(args.onComplete)
  4993. args.onComplete(error,payload);
  4994. if(OSF.AppTelemetry)
  4995. OSF.AppTelemetry.onMethodDone(args.dispId,args.hostCallArgs,Math.abs((new Date).getTime() - startTime),error)
  4996. },args.hostCallArgs)
  4997. };
  4998. OSF.DDA.WAC.Delegate._getOnAfterRegisterEvent=function OSF_DDA_WAC_Delegate$GetOnAfterRegisterEvent(register, args)
  4999. {
  5000. var startTime=(new Date).getTime();
  5001. return function OSF_DDA_WAC_Delegate$OnAfterRegisterEvent(xdmStatus, payload)
  5002. {
  5003. if(args.onReceiving)
  5004. args.onReceiving();
  5005. var status;
  5006. if(xdmStatus !=Microsoft.Office.Common.InvokeResultCode.noError)
  5007. switch(xdmStatus)
  5008. {
  5009. case Microsoft.Office.Common.InvokeResultCode.errorHandlingRequestAccessDenied:
  5010. status=OSF.DDA.ErrorCodeManager.errorCodes.ooeNoCapability;
  5011. break;
  5012. default:
  5013. status=OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError;
  5014. break
  5015. }
  5016. else if(payload)
  5017. if(payload["Error"])
  5018. status=payload["Error"];
  5019. else
  5020. status=OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess;
  5021. else
  5022. status=OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError;
  5023. if(args.onComplete)
  5024. args.onComplete(status);
  5025. if(OSF.AppTelemetry)
  5026. OSF.AppTelemetry.onRegisterDone(register,args.dispId,Math.abs((new Date).getTime() - startTime),status)
  5027. }
  5028. };
  5029. OSF.DDA.WAC.Delegate.registerEventAsync=function OSF_DDA_WAC_Delegate$RegisterEventAsync(args)
  5030. {
  5031. if(args.onCalling)
  5032. args.onCalling();
  5033. OSF.getClientEndPoint().registerForEvent(OSF.DDA.getXdmEventName(args.targetId,args.eventType),function OSF_DDA_WACOMFacade$OnEvent(payload)
  5034. {
  5035. if(args.onEvent)
  5036. args.onEvent(payload);
  5037. if(OSF.AppTelemetry)
  5038. OSF.AppTelemetry.onEventDone(args.dispId)
  5039. },OSF.DDA.WAC.Delegate._getOnAfterRegisterEvent(true,args),{
  5040. controlId: OSF._OfficeAppFactory.getId(),
  5041. eventDispId: args.dispId,
  5042. targetId: args.targetId
  5043. })
  5044. };
  5045. OSF.DDA.WAC.Delegate.unregisterEventAsync=function OSF_DDA_WAC_Delegate$UnregisterEventAsync(args)
  5046. {
  5047. if(args.onCalling)
  5048. args.onCalling();
  5049. OSF.getClientEndPoint().unregisterForEvent(OSF.DDA.getXdmEventName(args.targetId,args.eventType),OSF.DDA.WAC.Delegate._getOnAfterRegisterEvent(false,args),{
  5050. controlId: OSF._OfficeAppFactory.getId(),
  5051. eventDispId: args.dispId,
  5052. targetId: args.targetId
  5053. })
  5054. };
  5055. OSF.OUtil.setNamespace("WebApp",OSF);
  5056. OSF.WebApp.AddHostInfoAndXdmInfo=function OSF_WebApp$AddHostInfoAndXdmInfo(url)
  5057. {
  5058. if(OSF._OfficeAppFactory.getWindowLocationSearch && OSF._OfficeAppFactory.getWindowLocationHash)
  5059. return url+OSF._OfficeAppFactory.getWindowLocationSearch()+OSF._OfficeAppFactory.getWindowLocationHash();
  5060. else
  5061. return url
  5062. };
  5063. OSF.WebApp._UpdateLinksForHostAndXdmInfo=function OSF_WebApp$_UpdateLinksForHostAndXdmInfo()
  5064. {
  5065. var links=document.querySelectorAll("a[data-officejs-navigate]");
  5066. for(var i=0; i < links.length; i++)
  5067. if(OSF.WebApp._isGoodUrl(links[i].href))
  5068. links[i].href=OSF.WebApp.AddHostInfoAndXdmInfo(links[i].href);
  5069. var forms=document.querySelectorAll("form[data-officejs-navigate]");
  5070. for(var i=0; i < forms.length; i++)
  5071. {
  5072. var form=forms[i];
  5073. if(OSF.WebApp._isGoodUrl(form.action))
  5074. form.action=OSF.WebApp.AddHostInfoAndXdmInfo(form.action)
  5075. }
  5076. };
  5077. OSF.WebApp._isGoodUrl=function OSF_WebApp$_isGoodUrl(url)
  5078. {
  5079. if(typeof url=="undefined")
  5080. return false;
  5081. url=url.trim();
  5082. var colonIndex=url.indexOf(":");
  5083. var protocol=colonIndex > 0 ? url.substr(0,colonIndex) : null;
  5084. var goodUrl=protocol !==null ? protocol.toLowerCase()==="http" || protocol.toLowerCase()==="https" : true;
  5085. goodUrl=goodUrl && url !="#" && url !="/" && url !="" && url !=OSF._OfficeAppFactory.getWebAppState().webAppUrl;
  5086. return goodUrl
  5087. };
  5088. OSF.InitializationHelper=function OSF_InitializationHelper(hostInfo, webAppState, context, settings, hostFacade)
  5089. {
  5090. this._hostInfo=hostInfo;
  5091. this._webAppState=webAppState;
  5092. this._context=context;
  5093. this._settings=settings;
  5094. this._hostFacade=hostFacade;
  5095. this._appContext={};
  5096. this._tabbableElements="a[href]:not([tabindex='-1']),"+"area[href]:not([tabindex='-1']),"+"button:not([disabled]):not([tabindex='-1']),"+"input:not([disabled]):not([tabindex='-1']),"+"select:not([disabled]):not([tabindex='-1']),"+"textarea:not([disabled]):not([tabindex='-1']),"+"*[tabindex]:not([tabindex='-1']),"+"*[contenteditable]:not([disabled]):not([tabindex='-1'])";
  5097. this._initializeSettings=function OSF_InitializationHelper$initializeSettings(appContext, refreshSupported)
  5098. {
  5099. var settings;
  5100. var serializedSettings=appContext.get_settings();
  5101. var osfSessionStorage=OSF.OUtil.getSessionStorage();
  5102. if(osfSessionStorage)
  5103. {
  5104. var storageSettings=osfSessionStorage.getItem(OSF._OfficeAppFactory.getCachedSessionSettingsKey());
  5105. if(storageSettings)
  5106. serializedSettings=typeof JSON !=="undefined" ? JSON.parse(storageSettings) : OsfMsAjaxFactory.msAjaxSerializer.deserialize(storageSettings,true);
  5107. else
  5108. {
  5109. storageSettings=typeof JSON !=="undefined" ? JSON.stringify(serializedSettings) : OsfMsAjaxFactory.msAjaxSerializer.serialize(serializedSettings);
  5110. osfSessionStorage.setItem(OSF._OfficeAppFactory.getCachedSessionSettingsKey(),storageSettings)
  5111. }
  5112. }
  5113. var deserializedSettings=OSF.DDA.SettingsManager.deserializeSettings(serializedSettings);
  5114. if(refreshSupported)
  5115. settings=new OSF.DDA.RefreshableSettings(deserializedSettings);
  5116. else
  5117. settings=new OSF.DDA.Settings(deserializedSettings);
  5118. return settings
  5119. };
  5120. var windowOpen=function OSF_InitializationHelper$windowOpen(windowObj)
  5121. {
  5122. var proxy=window.open;
  5123. windowObj.open=function(strUrl, strWindowName, strWindowFeatures)
  5124. {
  5125. var windowObject=null;
  5126. try
  5127. {
  5128. windowObject=proxy(strUrl,strWindowName,strWindowFeatures)
  5129. }
  5130. catch(ex)
  5131. {
  5132. if(OSF.AppTelemetry)
  5133. OSF.AppTelemetry.logAppCommonMessage("Exception happens at windowOpen."+ex)
  5134. }
  5135. if(!windowObject)
  5136. {
  5137. var params={
  5138. strUrl: strUrl,
  5139. strWindowName: strWindowName,
  5140. strWindowFeatures: strWindowFeatures
  5141. };
  5142. OSF._OfficeAppFactory.getClientEndPoint().invoke("ContextActivationManager_openWindowInHost",null,params)
  5143. }
  5144. return windowObject
  5145. }
  5146. };
  5147. windowOpen(window)
  5148. };
  5149. OSF.InitializationHelper.prototype.saveAndSetDialogInfo=function OSF_InitializationHelper$saveAndSetDialogInfo(hostInfoValue)
  5150. {
  5151. var getAppIdFromWindowLocation=function OSF_InitializationHelper$getAppIdFromWindowLocation()
  5152. {
  5153. var xdmInfoValue=OSF.OUtil.parseXdmInfo(true);
  5154. if(xdmInfoValue)
  5155. {
  5156. var items=xdmInfoValue.split("|");
  5157. return items[1]
  5158. }
  5159. return null
  5160. };
  5161. var osfSessionStorage=OSF.OUtil.getSessionStorage();
  5162. if(osfSessionStorage)
  5163. {
  5164. if(!hostInfoValue)
  5165. hostInfoValue=OSF.OUtil.parseHostInfoFromWindowName(true,OSF._OfficeAppFactory.getWindowName());
  5166. if(hostInfoValue && hostInfoValue.indexOf("isDialog") > -1)
  5167. {
  5168. var appId=getAppIdFromWindowLocation();
  5169. if(appId !=null)
  5170. osfSessionStorage.setItem(appId+"IsDialog","true")
  5171. }
  5172. this._hostInfo.isDialog=osfSessionStorage.getItem(OSF.OUtil.getXdmFieldValue(OSF.XdmFieldName.AppId,false)+"IsDialog") !=null ? true : false
  5173. }
  5174. };
  5175. OSF.InitializationHelper.prototype.getAppContext=function OSF_InitializationHelper$getAppContext(wnd, gotAppContext)
  5176. {
  5177. var me=this;
  5178. var getInvocationCallbackWebApp=function OSF_InitializationHelper_getAppContextAsync$getInvocationCallbackWebApp(errorCode, appContext)
  5179. {
  5180. var settings;
  5181. if(appContext._appName===OSF.AppName.ExcelWebApp)
  5182. {
  5183. var serializedSettings=appContext._settings;
  5184. settings={};
  5185. for(var index in serializedSettings)
  5186. {
  5187. var setting=serializedSettings[index];
  5188. settings[setting[0]]=setting[1]
  5189. }
  5190. }
  5191. else
  5192. settings=appContext._settings;
  5193. if(errorCode===0 && appContext._id !=undefined && appContext._appName !=undefined && appContext._appVersion !=undefined && appContext._appUILocale !=undefined && appContext._dataLocale !=undefined && appContext._docUrl !=undefined && appContext._clientMode !=undefined && appContext._settings !=undefined && appContext._reason !=undefined)
  5194. {
  5195. me._appContext=appContext;
  5196. var appInstanceId=appContext._appInstanceId ? appContext._appInstanceId : appContext._id;
  5197. var touchEnabled=false;
  5198. var commerceAllowed=true;
  5199. var minorVersion=0;
  5200. if(appContext._appMinorVersion !=undefined)
  5201. minorVersion=appContext._appMinorVersion;
  5202. var requirementMatrix=undefined;
  5203. if(appContext._requirementMatrix !=undefined)
  5204. requirementMatrix=appContext._requirementMatrix;
  5205. var returnedContext=new OSF.OfficeAppContext(appContext._id,appContext._appName,appContext._appVersion,appContext._appUILocale,appContext._dataLocale,appContext._docUrl,appContext._clientMode,settings,appContext._reason,appContext._osfControlType,appContext._eToken,appContext._correlationId,appInstanceId,touchEnabled,commerceAllowed,minorVersion,requirementMatrix,appContext._hostCustomMessage,appContext._hostFullVersion,appContext._clientWindowHeight,appContext._clientWindowWidth,appContext._addinName);
  5206. if(OSF.AppTelemetry)
  5207. OSF.AppTelemetry.initialize(returnedContext);
  5208. gotAppContext(returnedContext)
  5209. }
  5210. else
  5211. {
  5212. var errorMsg="Function ContextActivationManager_getAppContextAsync call failed. ErrorCode is "+errorCode+", exception: "+appContext;
  5213. if(OSF.AppTelemetry)
  5214. OSF.AppTelemetry.logAppException(errorMsg);
  5215. throw errorMsg;
  5216. }
  5217. };
  5218. try
  5219. {
  5220. if(this._hostInfo.isDialog && window.opener !=null)
  5221. {
  5222. var appContext=OfficeExt.WACUtils.parseAppContextFromWindowName(false,OSF._OfficeAppFactory.getWindowName());
  5223. getInvocationCallbackWebApp(0,appContext)
  5224. }
  5225. else
  5226. this._webAppState.clientEndPoint.invoke("ContextActivationManager_getAppContextAsync",getInvocationCallbackWebApp,this._webAppState.id)
  5227. }
  5228. catch(ex)
  5229. {
  5230. if(OSF.AppTelemetry)
  5231. OSF.AppTelemetry.logAppException("Exception thrown when trying to invoke getAppContextAsync. Exception:["+ex+"]");
  5232. throw ex;
  5233. }
  5234. };
  5235. OSF.InitializationHelper.prototype.setAgaveHostCommunication=function OSF_InitializationHelper$setAgaveHostCommunication()
  5236. {
  5237. try
  5238. {
  5239. var me=this;
  5240. var xdmInfoValue=OSF.OUtil.parseXdmInfoWithGivenFragment(false,OSF._OfficeAppFactory.getWindowLocationHash());
  5241. if(!xdmInfoValue && OSF._OfficeAppFactory.getWindowName)
  5242. xdmInfoValue=OSF.OUtil.parseXdmInfoFromWindowName(false,OSF._OfficeAppFactory.getWindowName());
  5243. if(xdmInfoValue)
  5244. {
  5245. var xdmItems=OSF.OUtil.getInfoItems(xdmInfoValue);
  5246. if(xdmItems !=undefined && xdmItems.length >=3)
  5247. {
  5248. me._webAppState.conversationID=xdmItems[0];
  5249. me._webAppState.id=xdmItems[1];
  5250. me._webAppState.webAppUrl=xdmItems[2].indexOf(":") >=0 ? xdmItems[2] : decodeURIComponent(xdmItems[2])
  5251. }
  5252. }
  5253. me._webAppState.wnd=window.opener !=null ? window.opener : window.parent;
  5254. var serializerVersion=OSF.OUtil.parseSerializerVersionWithGivenFragment(false,OSF._OfficeAppFactory.getWindowLocationHash());
  5255. if(isNaN(serializerVersion) && OSF._OfficeAppFactory.getWindowName)
  5256. serializerVersion=OSF.OUtil.parseSerializerVersionFromWindowName(false,OSF._OfficeAppFactory.getWindowName());
  5257. me._webAppState.serializerVersion=serializerVersion;
  5258. me._webAppState.clientEndPoint=Microsoft.Office.Common.XdmCommunicationManager.connect(me._webAppState.conversationID,me._webAppState.wnd,me._webAppState.webAppUrl,me._webAppState.serializerVersion);
  5259. me._webAppState.serviceEndPoint=Microsoft.Office.Common.XdmCommunicationManager.createServiceEndPoint(me._webAppState.id);
  5260. var notificationConversationId=me._webAppState.conversationID+OSF.SharedConstants.NotificationConversationIdSuffix;
  5261. me._webAppState.serviceEndPoint.registerConversation(notificationConversationId,me._webAppState.webAppUrl);
  5262. if(this._hostInfo.isDialog && window.opener !=null)
  5263. return;
  5264. var notifyAgave=function OSF__OfficeAppFactory_initialize$notifyAgave(actionId)
  5265. {
  5266. switch(actionId)
  5267. {
  5268. case OSF.AgaveHostAction.Select:
  5269. me._webAppState.focused=true;
  5270. break;
  5271. case OSF.AgaveHostAction.UnSelect:
  5272. me._webAppState.focused=false;
  5273. break;
  5274. case OSF.AgaveHostAction.TabIn:
  5275. case OSF.AgaveHostAction.CtrlF6In:
  5276. window.focus();
  5277. var list=document.querySelectorAll(me._tabbableElements);
  5278. var focused=OSF.OUtil.focusToFirstTabbable(list,false);
  5279. if(!focused)
  5280. {
  5281. window.blur();
  5282. me._webAppState.focused=false;
  5283. me._webAppState.clientEndPoint.invoke("ContextActivationManager_notifyHost",null,[me._webAppState.id,OSF.AgaveHostAction.ExitNoFocusable])
  5284. }
  5285. break;
  5286. case OSF.AgaveHostAction.TabInShift:
  5287. window.focus();
  5288. var list=document.querySelectorAll(me._tabbableElements);
  5289. var focused=OSF.OUtil.focusToFirstTabbable(list,true);
  5290. if(!focused)
  5291. {
  5292. window.blur();
  5293. me._webAppState.focused=false;
  5294. me._webAppState.clientEndPoint.invoke("ContextActivationManager_notifyHost",null,[me._webAppState.id,OSF.AgaveHostAction.ExitNoFocusableShift])
  5295. }
  5296. break;
  5297. default:
  5298. OsfMsAjaxFactory.msAjaxDebug.trace("actionId "+actionId+" notifyAgave is wrong.");
  5299. break
  5300. }
  5301. };
  5302. me._webAppState.serviceEndPoint.registerMethod("Office_notifyAgave",notifyAgave,Microsoft.Office.Common.InvokeType.async,false);
  5303. OSF.OUtil.addEventListener(window,"focus",function()
  5304. {
  5305. if(!me._webAppState.focused)
  5306. me._webAppState.focused=true;
  5307. me._webAppState.clientEndPoint.invoke("ContextActivationManager_notifyHost",null,[me._webAppState.id,OSF.AgaveHostAction.Select])
  5308. });
  5309. OSF.OUtil.addEventListener(window,"blur",function()
  5310. {
  5311. if(me._webAppState.focused)
  5312. me._webAppState.focused=false;
  5313. me._webAppState.clientEndPoint.invoke("ContextActivationManager_notifyHost",null,[me._webAppState.id,OSF.AgaveHostAction.UnSelect])
  5314. });
  5315. OSF.OUtil.addEventListener(window,"keydown",function(e)
  5316. {
  5317. e.preventDefault=e.preventDefault || function()
  5318. {
  5319. e.returnValue=false
  5320. };
  5321. if(e.keyCode==117 && (e.ctrlKey || e.metaKey))
  5322. {
  5323. var actionId=OSF.AgaveHostAction.CtrlF6Exit;
  5324. if(e.shiftKey)
  5325. actionId=OSF.AgaveHostAction.CtrlF6ExitShift;
  5326. me._webAppState.clientEndPoint.invoke("ContextActivationManager_notifyHost",null,[me._webAppState.id,actionId])
  5327. }
  5328. else if(e.keyCode==9)
  5329. {
  5330. e.preventDefault();
  5331. var allTabbableElements=document.querySelectorAll(me._tabbableElements);
  5332. var focused=OSF.OUtil.focusToNextTabbable(allTabbableElements,e.target || e.srcElement,e.shiftKey);
  5333. if(!focused)
  5334. if(me._hostInfo.isDialog)
  5335. OSF.OUtil.focusToFirstTabbable(allTabbableElements,e.shiftKey);
  5336. else if(e.shiftKey)
  5337. me._webAppState.clientEndPoint.invoke("ContextActivationManager_notifyHost",null,[me._webAppState.id,OSF.AgaveHostAction.TabExitShift]);
  5338. else
  5339. me._webAppState.clientEndPoint.invoke("ContextActivationManager_notifyHost",null,[me._webAppState.id,OSF.AgaveHostAction.TabExit])
  5340. }
  5341. else if(e.keyCode==27)
  5342. {
  5343. e.preventDefault();
  5344. me.dismissDialogNotification && me.dismissDialogNotification();
  5345. me._webAppState.clientEndPoint.invoke("ContextActivationManager_notifyHost",null,[me._webAppState.id,OSF.AgaveHostAction.EscExit])
  5346. }
  5347. else if(e.keyCode==113)
  5348. {
  5349. e.preventDefault();
  5350. me._webAppState.clientEndPoint.invoke("ContextActivationManager_notifyHost",null,[me._webAppState.id,OSF.AgaveHostAction.F2Exit])
  5351. }
  5352. });
  5353. OSF.OUtil.addEventListener(window,"keypress",function(e)
  5354. {
  5355. if(e.keyCode==117 && e.ctrlKey)
  5356. if(e.preventDefault)
  5357. e.preventDefault();
  5358. else
  5359. e.returnValue=false
  5360. })
  5361. }
  5362. catch(ex)
  5363. {
  5364. if(OSF.AppTelemetry)
  5365. OSF.AppTelemetry.logAppException("Exception thrown in setAgaveHostCommunication. Exception:["+ex+"]");
  5366. throw ex;
  5367. }
  5368. };
  5369. OSF.InitializationHelper.prototype.initWebDialog=function OSF_InitializationHelper$initWebDialog(appContext)
  5370. {
  5371. if(appContext.get_isDialog())
  5372. {
  5373. if(OSF.DDA.UI.ChildUI)
  5374. {
  5375. appContext.ui=new OSF.DDA.UI.ChildUI;
  5376. if(window.opener !=null)
  5377. this.registerMessageReceivedEventForWindowDialog && this.registerMessageReceivedEventForWindowDialog()
  5378. }
  5379. }
  5380. else if(OSF.DDA.UI.ParentUI)
  5381. {
  5382. appContext.ui=new OSF.DDA.UI.ParentUI;
  5383. if(OfficeExt.Container)
  5384. OSF.DDA.DispIdHost.addAsyncMethods(appContext.ui,[OSF.DDA.AsyncMethodNames.CloseContainerAsync])
  5385. }
  5386. };
  5387. OSF.getClientEndPoint=function OSF$getClientEndPoint()
  5388. {
  5389. var initializationHelper=OSF._OfficeAppFactory.getInitializationHelper();
  5390. return initializationHelper._webAppState.clientEndPoint
  5391. };
  5392. OSF.InitializationHelper.prototype.prepareRightAfterWebExtensionInitialize=function OSF_InitializationHelper$prepareRightAfterWebExtensionInitialize()
  5393. {
  5394. if(this._hostInfo.isDialog)
  5395. {
  5396. window.focus();
  5397. var list=document.querySelectorAll(this._tabbableElements);
  5398. var focused=OSF.OUtil.focusToFirstTabbable(list,false);
  5399. if(!focused)
  5400. {
  5401. window.blur();
  5402. this._webAppState.focused=false;
  5403. this._webAppState.clientEndPoint.invoke("ContextActivationManager_notifyHost",null,[this._webAppState.id,OSF.AgaveHostAction.ExitNoFocusable])
  5404. }
  5405. }
  5406. };
  5407. (function()
  5408. {
  5409. var checkScriptOverride=function OSF$checkScriptOverride()
  5410. {
  5411. var postScriptOverrideCheckAction=function OSF$postScriptOverrideCheckAction(customizedScriptPath)
  5412. {
  5413. if(customizedScriptPath)
  5414. OSF.OUtil.loadScript(customizedScriptPath,function()
  5415. {
  5416. OsfMsAjaxFactory.msAjaxDebug.trace("loaded customized script:"+customizedScriptPath)
  5417. })
  5418. };
  5419. var conversationID,
  5420. webAppUrl,
  5421. items;
  5422. var clientEndPoint=null;
  5423. var xdmInfoValue=OSF.OUtil.parseXdmInfo();
  5424. if(xdmInfoValue)
  5425. {
  5426. items=OSF.OUtil.getInfoItems(xdmInfoValue);
  5427. if(items && items.length >=3)
  5428. {
  5429. conversationID=items[0];
  5430. webAppUrl=items[2];
  5431. var serializerVersion=OSF.OUtil.parseSerializerVersionWithGivenFragment(false,OSF._OfficeAppFactory.getWindowLocationHash());
  5432. if(isNaN(serializerVersion) && OSF._OfficeAppFactory.getWindowName)
  5433. serializerVersion=OSF.OUtil.parseSerializerVersionFromWindowName(false,OSF._OfficeAppFactory.getWindowName());
  5434. clientEndPoint=Microsoft.Office.Common.XdmCommunicationManager.connect(conversationID,window.parent,webAppUrl,serializerVersion)
  5435. }
  5436. }
  5437. var customizedScriptPath=null;
  5438. if(!clientEndPoint)
  5439. {
  5440. try
  5441. {
  5442. if(window.external && typeof window.external.getCustomizedScriptPath !=="undefined")
  5443. customizedScriptPath=window.external.getCustomizedScriptPath()
  5444. }
  5445. catch(ex)
  5446. {
  5447. OsfMsAjaxFactory.msAjaxDebug.trace("no script override through window.external.")
  5448. }
  5449. postScriptOverrideCheckAction(customizedScriptPath)
  5450. }
  5451. else
  5452. try
  5453. {
  5454. clientEndPoint.invoke("getCustomizedScriptPathAsync",function OSF$getCustomizedScriptPathAsyncCallback(errorCode, scriptPath)
  5455. {
  5456. postScriptOverrideCheckAction(errorCode===0 ? scriptPath : null)
  5457. },{__timeout__: 1e3})
  5458. }
  5459. catch(ex)
  5460. {
  5461. OsfMsAjaxFactory.msAjaxDebug.trace("no script override through cross frame communication.")
  5462. }
  5463. };
  5464. var requiresMsAjax=true;
  5465. if(requiresMsAjax && !OsfMsAjaxFactory.isMsAjaxLoaded())
  5466. if(!(OSF._OfficeAppFactory && OSF._OfficeAppFactory && OSF._OfficeAppFactory.getLoadScriptHelper && OSF._OfficeAppFactory.getLoadScriptHelper().isScriptLoading(OSF.ConstantNames.MicrosoftAjaxId)))
  5467. OsfMsAjaxFactory.loadMsAjaxFull(function OSF$loadMSAjaxCallback()
  5468. {
  5469. if(OsfMsAjaxFactory.isMsAjaxLoaded())
  5470. checkScriptOverride();
  5471. else
  5472. throw"Not able to load MicrosoftAjax.js.";
  5473. });
  5474. else
  5475. OSF._OfficeAppFactory.getLoadScriptHelper().waitForScripts([OSF.ConstantNames.MicrosoftAjaxId],checkScriptOverride);
  5476. else
  5477. checkScriptOverride()
  5478. })();
  5479. var OSFLog;
  5480. (function(OSFLog)
  5481. {
  5482. var BaseUsageData=function()
  5483. {
  5484. function BaseUsageData(table)
  5485. {
  5486. this._table=table;
  5487. this._fields={}
  5488. }
  5489. Object.defineProperty(BaseUsageData.prototype,"Fields",{
  5490. get: function()
  5491. {
  5492. return this._fields
  5493. },
  5494. enumerable: true,
  5495. configurable: true
  5496. });
  5497. Object.defineProperty(BaseUsageData.prototype,"Table",{
  5498. get: function()
  5499. {
  5500. return this._table
  5501. },
  5502. enumerable: true,
  5503. configurable: true
  5504. });
  5505. BaseUsageData.prototype.SerializeFields=function(){};
  5506. BaseUsageData.prototype.SetSerializedField=function(key, value)
  5507. {
  5508. if(typeof value !=="undefined" && value !==null)
  5509. this._serializedFields[key]=value.toString()
  5510. };
  5511. BaseUsageData.prototype.SerializeRow=function()
  5512. {
  5513. this._serializedFields={};
  5514. this.SetSerializedField("Table",this._table);
  5515. this.SerializeFields();
  5516. return JSON.stringify(this._serializedFields)
  5517. };
  5518. return BaseUsageData
  5519. }();
  5520. OSFLog.BaseUsageData=BaseUsageData;
  5521. var AppActivatedUsageData=function(_super)
  5522. {
  5523. __extends(AppActivatedUsageData,_super);
  5524. function AppActivatedUsageData()
  5525. {
  5526. _super.call(this,"AppActivated")
  5527. }
  5528. Object.defineProperty(AppActivatedUsageData.prototype,"CorrelationId",{
  5529. get: function()
  5530. {
  5531. return this.Fields["CorrelationId"]
  5532. },
  5533. set: function(value)
  5534. {
  5535. this.Fields["CorrelationId"]=value
  5536. },
  5537. enumerable: true,
  5538. configurable: true
  5539. });
  5540. Object.defineProperty(AppActivatedUsageData.prototype,"SessionId",{
  5541. get: function()
  5542. {
  5543. return this.Fields["SessionId"]
  5544. },
  5545. set: function(value)
  5546. {
  5547. this.Fields["SessionId"]=value
  5548. },
  5549. enumerable: true,
  5550. configurable: true
  5551. });
  5552. Object.defineProperty(AppActivatedUsageData.prototype,"AppId",{
  5553. get: function()
  5554. {
  5555. return this.Fields["AppId"]
  5556. },
  5557. set: function(value)
  5558. {
  5559. this.Fields["AppId"]=value
  5560. },
  5561. enumerable: true,
  5562. configurable: true
  5563. });
  5564. Object.defineProperty(AppActivatedUsageData.prototype,"AppInstanceId",{
  5565. get: function()
  5566. {
  5567. return this.Fields["AppInstanceId"]
  5568. },
  5569. set: function(value)
  5570. {
  5571. this.Fields["AppInstanceId"]=value
  5572. },
  5573. enumerable: true,
  5574. configurable: true
  5575. });
  5576. Object.defineProperty(AppActivatedUsageData.prototype,"AppURL",{
  5577. get: function()
  5578. {
  5579. return this.Fields["AppURL"]
  5580. },
  5581. set: function(value)
  5582. {
  5583. this.Fields["AppURL"]=value
  5584. },
  5585. enumerable: true,
  5586. configurable: true
  5587. });
  5588. Object.defineProperty(AppActivatedUsageData.prototype,"AssetId",{
  5589. get: function()
  5590. {
  5591. return this.Fields["AssetId"]
  5592. },
  5593. set: function(value)
  5594. {
  5595. this.Fields["AssetId"]=value
  5596. },
  5597. enumerable: true,
  5598. configurable: true
  5599. });
  5600. Object.defineProperty(AppActivatedUsageData.prototype,"Browser",{
  5601. get: function()
  5602. {
  5603. return this.Fields["Browser"]
  5604. },
  5605. set: function(value)
  5606. {
  5607. this.Fields["Browser"]=value
  5608. },
  5609. enumerable: true,
  5610. configurable: true
  5611. });
  5612. Object.defineProperty(AppActivatedUsageData.prototype,"UserId",{
  5613. get: function()
  5614. {
  5615. return this.Fields["UserId"]
  5616. },
  5617. set: function(value)
  5618. {
  5619. this.Fields["UserId"]=value
  5620. },
  5621. enumerable: true,
  5622. configurable: true
  5623. });
  5624. Object.defineProperty(AppActivatedUsageData.prototype,"Host",{
  5625. get: function()
  5626. {
  5627. return this.Fields["Host"]
  5628. },
  5629. set: function(value)
  5630. {
  5631. this.Fields["Host"]=value
  5632. },
  5633. enumerable: true,
  5634. configurable: true
  5635. });
  5636. Object.defineProperty(AppActivatedUsageData.prototype,"HostVersion",{
  5637. get: function()
  5638. {
  5639. return this.Fields["HostVersion"]
  5640. },
  5641. set: function(value)
  5642. {
  5643. this.Fields["HostVersion"]=value
  5644. },
  5645. enumerable: true,
  5646. configurable: true
  5647. });
  5648. Object.defineProperty(AppActivatedUsageData.prototype,"ClientId",{
  5649. get: function()
  5650. {
  5651. return this.Fields["ClientId"]
  5652. },
  5653. set: function(value)
  5654. {
  5655. this.Fields["ClientId"]=value
  5656. },
  5657. enumerable: true,
  5658. configurable: true
  5659. });
  5660. Object.defineProperty(AppActivatedUsageData.prototype,"AppSizeWidth",{
  5661. get: function()
  5662. {
  5663. return this.Fields["AppSizeWidth"]
  5664. },
  5665. set: function(value)
  5666. {
  5667. this.Fields["AppSizeWidth"]=value
  5668. },
  5669. enumerable: true,
  5670. configurable: true
  5671. });
  5672. Object.defineProperty(AppActivatedUsageData.prototype,"AppSizeHeight",{
  5673. get: function()
  5674. {
  5675. return this.Fields["AppSizeHeight"]
  5676. },
  5677. set: function(value)
  5678. {
  5679. this.Fields["AppSizeHeight"]=value
  5680. },
  5681. enumerable: true,
  5682. configurable: true
  5683. });
  5684. Object.defineProperty(AppActivatedUsageData.prototype,"Message",{
  5685. get: function()
  5686. {
  5687. return this.Fields["Message"]
  5688. },
  5689. set: function(value)
  5690. {
  5691. this.Fields["Message"]=value
  5692. },
  5693. enumerable: true,
  5694. configurable: true
  5695. });
  5696. Object.defineProperty(AppActivatedUsageData.prototype,"DocUrl",{
  5697. get: function()
  5698. {
  5699. return this.Fields["DocUrl"]
  5700. },
  5701. set: function(value)
  5702. {
  5703. this.Fields["DocUrl"]=value
  5704. },
  5705. enumerable: true,
  5706. configurable: true
  5707. });
  5708. Object.defineProperty(AppActivatedUsageData.prototype,"OfficeJSVersion",{
  5709. get: function()
  5710. {
  5711. return this.Fields["OfficeJSVersion"]
  5712. },
  5713. set: function(value)
  5714. {
  5715. this.Fields["OfficeJSVersion"]=value
  5716. },
  5717. enumerable: true,
  5718. configurable: true
  5719. });
  5720. Object.defineProperty(AppActivatedUsageData.prototype,"HostJSVersion",{
  5721. get: function()
  5722. {
  5723. return this.Fields["HostJSVersion"]
  5724. },
  5725. set: function(value)
  5726. {
  5727. this.Fields["HostJSVersion"]=value
  5728. },
  5729. enumerable: true,
  5730. configurable: true
  5731. });
  5732. AppActivatedUsageData.prototype.SerializeFields=function()
  5733. {
  5734. this.SetSerializedField("CorrelationId",this.CorrelationId);
  5735. this.SetSerializedField("SessionId",this.SessionId);
  5736. this.SetSerializedField("AppId",this.AppId);
  5737. this.SetSerializedField("AppInstanceId",this.AppInstanceId);
  5738. this.SetSerializedField("AppURL",this.AppURL);
  5739. this.SetSerializedField("AssetId",this.AssetId);
  5740. this.SetSerializedField("Browser",this.Browser);
  5741. this.SetSerializedField("UserId",this.UserId);
  5742. this.SetSerializedField("Host",this.Host);
  5743. this.SetSerializedField("HostVersion",this.HostVersion);
  5744. this.SetSerializedField("ClientId",this.ClientId);
  5745. this.SetSerializedField("AppSizeWidth",this.AppSizeWidth);
  5746. this.SetSerializedField("AppSizeHeight",this.AppSizeHeight);
  5747. this.SetSerializedField("Message",this.Message);
  5748. this.SetSerializedField("DocUrl",this.DocUrl);
  5749. this.SetSerializedField("OfficeJSVersion",this.OfficeJSVersion);
  5750. this.SetSerializedField("HostJSVersion",this.HostJSVersion)
  5751. };
  5752. return AppActivatedUsageData
  5753. }(BaseUsageData);
  5754. OSFLog.AppActivatedUsageData=AppActivatedUsageData;
  5755. var ScriptLoadUsageData=function(_super)
  5756. {
  5757. __extends(ScriptLoadUsageData,_super);
  5758. function ScriptLoadUsageData()
  5759. {
  5760. _super.call(this,"ScriptLoad")
  5761. }
  5762. Object.defineProperty(ScriptLoadUsageData.prototype,"CorrelationId",{
  5763. get: function()
  5764. {
  5765. return this.Fields["CorrelationId"]
  5766. },
  5767. set: function(value)
  5768. {
  5769. this.Fields["CorrelationId"]=value
  5770. },
  5771. enumerable: true,
  5772. configurable: true
  5773. });
  5774. Object.defineProperty(ScriptLoadUsageData.prototype,"SessionId",{
  5775. get: function()
  5776. {
  5777. return this.Fields["SessionId"]
  5778. },
  5779. set: function(value)
  5780. {
  5781. this.Fields["SessionId"]=value
  5782. },
  5783. enumerable: true,
  5784. configurable: true
  5785. });
  5786. Object.defineProperty(ScriptLoadUsageData.prototype,"ScriptId",{
  5787. get: function()
  5788. {
  5789. return this.Fields["ScriptId"]
  5790. },
  5791. set: function(value)
  5792. {
  5793. this.Fields["ScriptId"]=value
  5794. },
  5795. enumerable: true,
  5796. configurable: true
  5797. });
  5798. Object.defineProperty(ScriptLoadUsageData.prototype,"StartTime",{
  5799. get: function()
  5800. {
  5801. return this.Fields["StartTime"]
  5802. },
  5803. set: function(value)
  5804. {
  5805. this.Fields["StartTime"]=value
  5806. },
  5807. enumerable: true,
  5808. configurable: true
  5809. });
  5810. Object.defineProperty(ScriptLoadUsageData.prototype,"ResponseTime",{
  5811. get: function()
  5812. {
  5813. return this.Fields["ResponseTime"]
  5814. },
  5815. set: function(value)
  5816. {
  5817. this.Fields["ResponseTime"]=value
  5818. },
  5819. enumerable: true,
  5820. configurable: true
  5821. });
  5822. ScriptLoadUsageData.prototype.SerializeFields=function()
  5823. {
  5824. this.SetSerializedField("CorrelationId",this.CorrelationId);
  5825. this.SetSerializedField("SessionId",this.SessionId);
  5826. this.SetSerializedField("ScriptId",this.ScriptId);
  5827. this.SetSerializedField("StartTime",this.StartTime);
  5828. this.SetSerializedField("ResponseTime",this.ResponseTime)
  5829. };
  5830. return ScriptLoadUsageData
  5831. }(BaseUsageData);
  5832. OSFLog.ScriptLoadUsageData=ScriptLoadUsageData;
  5833. var AppClosedUsageData=function(_super)
  5834. {
  5835. __extends(AppClosedUsageData,_super);
  5836. function AppClosedUsageData()
  5837. {
  5838. _super.call(this,"AppClosed")
  5839. }
  5840. Object.defineProperty(AppClosedUsageData.prototype,"CorrelationId",{
  5841. get: function()
  5842. {
  5843. return this.Fields["CorrelationId"]
  5844. },
  5845. set: function(value)
  5846. {
  5847. this.Fields["CorrelationId"]=value
  5848. },
  5849. enumerable: true,
  5850. configurable: true
  5851. });
  5852. Object.defineProperty(AppClosedUsageData.prototype,"SessionId",{
  5853. get: function()
  5854. {
  5855. return this.Fields["SessionId"]
  5856. },
  5857. set: function(value)
  5858. {
  5859. this.Fields["SessionId"]=value
  5860. },
  5861. enumerable: true,
  5862. configurable: true
  5863. });
  5864. Object.defineProperty(AppClosedUsageData.prototype,"FocusTime",{
  5865. get: function()
  5866. {
  5867. return this.Fields["FocusTime"]
  5868. },
  5869. set: function(value)
  5870. {
  5871. this.Fields["FocusTime"]=value
  5872. },
  5873. enumerable: true,
  5874. configurable: true
  5875. });
  5876. Object.defineProperty(AppClosedUsageData.prototype,"AppSizeFinalWidth",{
  5877. get: function()
  5878. {
  5879. return this.Fields["AppSizeFinalWidth"]
  5880. },
  5881. set: function(value)
  5882. {
  5883. this.Fields["AppSizeFinalWidth"]=value
  5884. },
  5885. enumerable: true,
  5886. configurable: true
  5887. });
  5888. Object.defineProperty(AppClosedUsageData.prototype,"AppSizeFinalHeight",{
  5889. get: function()
  5890. {
  5891. return this.Fields["AppSizeFinalHeight"]
  5892. },
  5893. set: function(value)
  5894. {
  5895. this.Fields["AppSizeFinalHeight"]=value
  5896. },
  5897. enumerable: true,
  5898. configurable: true
  5899. });
  5900. Object.defineProperty(AppClosedUsageData.prototype,"OpenTime",{
  5901. get: function()
  5902. {
  5903. return this.Fields["OpenTime"]
  5904. },
  5905. set: function(value)
  5906. {
  5907. this.Fields["OpenTime"]=value
  5908. },
  5909. enumerable: true,
  5910. configurable: true
  5911. });
  5912. Object.defineProperty(AppClosedUsageData.prototype,"CloseMethod",{
  5913. get: function()
  5914. {
  5915. return this.Fields["CloseMethod"]
  5916. },
  5917. set: function(value)
  5918. {
  5919. this.Fields["CloseMethod"]=value
  5920. },
  5921. enumerable: true,
  5922. configurable: true
  5923. });
  5924. AppClosedUsageData.prototype.SerializeFields=function()
  5925. {
  5926. this.SetSerializedField("CorrelationId",this.CorrelationId);
  5927. this.SetSerializedField("SessionId",this.SessionId);
  5928. this.SetSerializedField("FocusTime",this.FocusTime);
  5929. this.SetSerializedField("AppSizeFinalWidth",this.AppSizeFinalWidth);
  5930. this.SetSerializedField("AppSizeFinalHeight",this.AppSizeFinalHeight);
  5931. this.SetSerializedField("OpenTime",this.OpenTime);
  5932. this.SetSerializedField("CloseMethod",this.CloseMethod)
  5933. };
  5934. return AppClosedUsageData
  5935. }(BaseUsageData);
  5936. OSFLog.AppClosedUsageData=AppClosedUsageData;
  5937. var APIUsageUsageData=function(_super)
  5938. {
  5939. __extends(APIUsageUsageData,_super);
  5940. function APIUsageUsageData()
  5941. {
  5942. _super.call(this,"APIUsage")
  5943. }
  5944. Object.defineProperty(APIUsageUsageData.prototype,"CorrelationId",{
  5945. get: function()
  5946. {
  5947. return this.Fields["CorrelationId"]
  5948. },
  5949. set: function(value)
  5950. {
  5951. this.Fields["CorrelationId"]=value
  5952. },
  5953. enumerable: true,
  5954. configurable: true
  5955. });
  5956. Object.defineProperty(APIUsageUsageData.prototype,"SessionId",{
  5957. get: function()
  5958. {
  5959. return this.Fields["SessionId"]
  5960. },
  5961. set: function(value)
  5962. {
  5963. this.Fields["SessionId"]=value
  5964. },
  5965. enumerable: true,
  5966. configurable: true
  5967. });
  5968. Object.defineProperty(APIUsageUsageData.prototype,"APIType",{
  5969. get: function()
  5970. {
  5971. return this.Fields["APIType"]
  5972. },
  5973. set: function(value)
  5974. {
  5975. this.Fields["APIType"]=value
  5976. },
  5977. enumerable: true,
  5978. configurable: true
  5979. });
  5980. Object.defineProperty(APIUsageUsageData.prototype,"APIID",{
  5981. get: function()
  5982. {
  5983. return this.Fields["APIID"]
  5984. },
  5985. set: function(value)
  5986. {
  5987. this.Fields["APIID"]=value
  5988. },
  5989. enumerable: true,
  5990. configurable: true
  5991. });
  5992. Object.defineProperty(APIUsageUsageData.prototype,"Parameters",{
  5993. get: function()
  5994. {
  5995. return this.Fields["Parameters"]
  5996. },
  5997. set: function(value)
  5998. {
  5999. this.Fields["Parameters"]=value
  6000. },
  6001. enumerable: true,
  6002. configurable: true
  6003. });
  6004. Object.defineProperty(APIUsageUsageData.prototype,"ResponseTime",{
  6005. get: function()
  6006. {
  6007. return this.Fields["ResponseTime"]
  6008. },
  6009. set: function(value)
  6010. {
  6011. this.Fields["ResponseTime"]=value
  6012. },
  6013. enumerable: true,
  6014. configurable: true
  6015. });
  6016. Object.defineProperty(APIUsageUsageData.prototype,"ErrorType",{
  6017. get: function()
  6018. {
  6019. return this.Fields["ErrorType"]
  6020. },
  6021. set: function(value)
  6022. {
  6023. this.Fields["ErrorType"]=value
  6024. },
  6025. enumerable: true,
  6026. configurable: true
  6027. });
  6028. APIUsageUsageData.prototype.SerializeFields=function()
  6029. {
  6030. this.SetSerializedField("CorrelationId",this.CorrelationId);
  6031. this.SetSerializedField("SessionId",this.SessionId);
  6032. this.SetSerializedField("APIType",this.APIType);
  6033. this.SetSerializedField("APIID",this.APIID);
  6034. this.SetSerializedField("Parameters",this.Parameters);
  6035. this.SetSerializedField("ResponseTime",this.ResponseTime);
  6036. this.SetSerializedField("ErrorType",this.ErrorType)
  6037. };
  6038. return APIUsageUsageData
  6039. }(BaseUsageData);
  6040. OSFLog.APIUsageUsageData=APIUsageUsageData;
  6041. var AppInitializationUsageData=function(_super)
  6042. {
  6043. __extends(AppInitializationUsageData,_super);
  6044. function AppInitializationUsageData()
  6045. {
  6046. _super.call(this,"AppInitialization")
  6047. }
  6048. Object.defineProperty(AppInitializationUsageData.prototype,"CorrelationId",{
  6049. get: function()
  6050. {
  6051. return this.Fields["CorrelationId"]
  6052. },
  6053. set: function(value)
  6054. {
  6055. this.Fields["CorrelationId"]=value
  6056. },
  6057. enumerable: true,
  6058. configurable: true
  6059. });
  6060. Object.defineProperty(AppInitializationUsageData.prototype,"SessionId",{
  6061. get: function()
  6062. {
  6063. return this.Fields["SessionId"]
  6064. },
  6065. set: function(value)
  6066. {
  6067. this.Fields["SessionId"]=value
  6068. },
  6069. enumerable: true,
  6070. configurable: true
  6071. });
  6072. Object.defineProperty(AppInitializationUsageData.prototype,"SuccessCode",{
  6073. get: function()
  6074. {
  6075. return this.Fields["SuccessCode"]
  6076. },
  6077. set: function(value)
  6078. {
  6079. this.Fields["SuccessCode"]=value
  6080. },
  6081. enumerable: true,
  6082. configurable: true
  6083. });
  6084. Object.defineProperty(AppInitializationUsageData.prototype,"Message",{
  6085. get: function()
  6086. {
  6087. return this.Fields["Message"]
  6088. },
  6089. set: function(value)
  6090. {
  6091. this.Fields["Message"]=value
  6092. },
  6093. enumerable: true,
  6094. configurable: true
  6095. });
  6096. AppInitializationUsageData.prototype.SerializeFields=function()
  6097. {
  6098. this.SetSerializedField("CorrelationId",this.CorrelationId);
  6099. this.SetSerializedField("SessionId",this.SessionId);
  6100. this.SetSerializedField("SuccessCode",this.SuccessCode);
  6101. this.SetSerializedField("Message",this.Message)
  6102. };
  6103. return AppInitializationUsageData
  6104. }(BaseUsageData);
  6105. OSFLog.AppInitializationUsageData=AppInitializationUsageData
  6106. })(OSFLog || (OSFLog={}));
  6107. var Logger;
  6108. (function(Logger)
  6109. {
  6110. "use strict";
  6111. (function(TraceLevel)
  6112. {
  6113. TraceLevel[TraceLevel["info"]=0]="info";
  6114. TraceLevel[TraceLevel["warning"]=1]="warning";
  6115. TraceLevel[TraceLevel["error"]=2]="error"
  6116. })(Logger.TraceLevel || (Logger.TraceLevel={}));
  6117. var TraceLevel=Logger.TraceLevel;
  6118. (function(SendFlag)
  6119. {
  6120. SendFlag[SendFlag["none"]=0]="none";
  6121. SendFlag[SendFlag["flush"]=1]="flush"
  6122. })(Logger.SendFlag || (Logger.SendFlag={}));
  6123. var SendFlag=Logger.SendFlag;
  6124. function allowUploadingData()
  6125. {
  6126. if(OSF.Logger && OSF.Logger.ulsEndpoint)
  6127. OSF.Logger.ulsEndpoint.loadProxyFrame()
  6128. }
  6129. Logger.allowUploadingData=allowUploadingData;
  6130. function sendLog(traceLevel, message, flag)
  6131. {
  6132. if(OSF.Logger && OSF.Logger.ulsEndpoint)
  6133. {
  6134. var jsonObj={
  6135. traceLevel: traceLevel,
  6136. message: message,
  6137. flag: flag,
  6138. internalLog: true
  6139. };
  6140. var logs=JSON.stringify(jsonObj);
  6141. OSF.Logger.ulsEndpoint.writeLog(logs)
  6142. }
  6143. }
  6144. Logger.sendLog=sendLog;
  6145. function creatULSEndpoint()
  6146. {
  6147. try
  6148. {
  6149. return new ULSEndpointProxy
  6150. }
  6151. catch(e)
  6152. {
  6153. return null
  6154. }
  6155. }
  6156. var ULSEndpointProxy=function()
  6157. {
  6158. function ULSEndpointProxy()
  6159. {
  6160. var _this=this;
  6161. this.proxyFrame=null;
  6162. this.telemetryEndPoint="https://telemetryservice.firstpartyapps.oaspapps.com/telemetryservice/telemetryproxy.html";
  6163. this.buffer=[];
  6164. this.proxyFrameReady=false;
  6165. OSF.OUtil.addEventListener(window,"message",function(e)
  6166. {
  6167. return _this.tellProxyFrameReady(e)
  6168. });
  6169. setTimeout(function()
  6170. {
  6171. _this.loadProxyFrame()
  6172. },3e3)
  6173. }
  6174. ULSEndpointProxy.prototype.writeLog=function(log)
  6175. {
  6176. if(this.proxyFrameReady===true)
  6177. this.proxyFrame.contentWindow.postMessage(log,ULSEndpointProxy.telemetryOrigin);
  6178. else if(this.buffer.length < 128)
  6179. this.buffer.push(log)
  6180. };
  6181. ULSEndpointProxy.prototype.loadProxyFrame=function()
  6182. {
  6183. if(this.proxyFrame==null)
  6184. {
  6185. this.proxyFrame=document.createElement("iframe");
  6186. this.proxyFrame.setAttribute("style","display:none");
  6187. this.proxyFrame.setAttribute("src",this.telemetryEndPoint);
  6188. document.head.appendChild(this.proxyFrame)
  6189. }
  6190. };
  6191. ULSEndpointProxy.prototype.tellProxyFrameReady=function(e)
  6192. {
  6193. var _this=this;
  6194. if(e.data==="ProxyFrameReadyToLog")
  6195. {
  6196. this.proxyFrameReady=true;
  6197. for(var i=0; i < this.buffer.length; i++)
  6198. this.writeLog(this.buffer[i]);
  6199. this.buffer.length=0;
  6200. OSF.OUtil.removeEventListener(window,"message",function(e)
  6201. {
  6202. return _this.tellProxyFrameReady(e)
  6203. })
  6204. }
  6205. else if(e.data==="ProxyFrameReadyToInit")
  6206. {
  6207. var initJson={
  6208. appName: "Office APPs",
  6209. sessionId: OSF.OUtil.Guid.generateNewGuid()
  6210. };
  6211. var initStr=JSON.stringify(initJson);
  6212. this.proxyFrame.contentWindow.postMessage(initStr,ULSEndpointProxy.telemetryOrigin)
  6213. }
  6214. };
  6215. ULSEndpointProxy.telemetryOrigin="https://telemetryservice.firstpartyapps.oaspapps.com";
  6216. return ULSEndpointProxy
  6217. }();
  6218. if(!OSF.Logger)
  6219. OSF.Logger=Logger;
  6220. Logger.ulsEndpoint=creatULSEndpoint()
  6221. })(Logger || (Logger={}));
  6222. var OSFAppTelemetry;
  6223. (function(OSFAppTelemetry)
  6224. {
  6225. "use strict";
  6226. var appInfo;
  6227. var sessionId=OSF.OUtil.Guid.generateNewGuid();
  6228. var osfControlAppCorrelationId="";
  6229. var omexDomainRegex=new RegExp("^https?://store\\.office(ppe|-int)?\\.com/","i");
  6230. var AppInfo=function()
  6231. {
  6232. function AppInfo(){}
  6233. return AppInfo
  6234. }();
  6235. var Event=function()
  6236. {
  6237. function Event(name, handler)
  6238. {
  6239. this.name=name;
  6240. this.handler=handler
  6241. }
  6242. return Event
  6243. }();
  6244. var AppStorage=function()
  6245. {
  6246. function AppStorage()
  6247. {
  6248. this.clientIDKey="Office API client";
  6249. this.logIdSetKey="Office App Log Id Set"
  6250. }
  6251. AppStorage.prototype.getClientId=function()
  6252. {
  6253. var clientId=this.getValue(this.clientIDKey);
  6254. if(!clientId || clientId.length <=0 || clientId.length > 40)
  6255. {
  6256. clientId=OSF.OUtil.Guid.generateNewGuid();
  6257. this.setValue(this.clientIDKey,clientId)
  6258. }
  6259. return clientId
  6260. };
  6261. AppStorage.prototype.saveLog=function(logId, log)
  6262. {
  6263. var logIdSet=this.getValue(this.logIdSetKey);
  6264. logIdSet=(logIdSet && logIdSet.length > 0 ? logIdSet+";" : "")+logId;
  6265. this.setValue(this.logIdSetKey,logIdSet);
  6266. this.setValue(logId,log)
  6267. };
  6268. AppStorage.prototype.enumerateLog=function(callback, clean)
  6269. {
  6270. var logIdSet=this.getValue(this.logIdSetKey);
  6271. if(logIdSet)
  6272. {
  6273. var ids=logIdSet.split(";");
  6274. for(var id in ids)
  6275. {
  6276. var logId=ids[id];
  6277. var log=this.getValue(logId);
  6278. if(log)
  6279. {
  6280. if(callback)
  6281. callback(logId,log);
  6282. if(clean)
  6283. this.remove(logId)
  6284. }
  6285. }
  6286. if(clean)
  6287. this.remove(this.logIdSetKey)
  6288. }
  6289. };
  6290. AppStorage.prototype.getValue=function(key)
  6291. {
  6292. var osfLocalStorage=OSF.OUtil.getLocalStorage();
  6293. var value="";
  6294. if(osfLocalStorage)
  6295. value=osfLocalStorage.getItem(key);
  6296. return value
  6297. };
  6298. AppStorage.prototype.setValue=function(key, value)
  6299. {
  6300. var osfLocalStorage=OSF.OUtil.getLocalStorage();
  6301. if(osfLocalStorage)
  6302. osfLocalStorage.setItem(key,value)
  6303. };
  6304. AppStorage.prototype.remove=function(key)
  6305. {
  6306. var osfLocalStorage=OSF.OUtil.getLocalStorage();
  6307. if(osfLocalStorage)
  6308. try
  6309. {
  6310. osfLocalStorage.removeItem(key)
  6311. }
  6312. catch(ex){}
  6313. };
  6314. return AppStorage
  6315. }();
  6316. var AppLogger=function()
  6317. {
  6318. function AppLogger(){}
  6319. AppLogger.prototype.LogData=function(data)
  6320. {
  6321. if(!OSF.Logger)
  6322. return;
  6323. OSF.Logger.sendLog(OSF.Logger.TraceLevel.info,data.SerializeRow(),OSF.Logger.SendFlag.none)
  6324. };
  6325. AppLogger.prototype.LogRawData=function(log)
  6326. {
  6327. if(!OSF.Logger)
  6328. return;
  6329. OSF.Logger.sendLog(OSF.Logger.TraceLevel.info,log,OSF.Logger.SendFlag.none)
  6330. };
  6331. return AppLogger
  6332. }();
  6333. function initialize(context)
  6334. {
  6335. if(!OSF.Logger)
  6336. return;
  6337. if(appInfo)
  6338. return;
  6339. appInfo=new AppInfo;
  6340. if(context.get_hostFullVersion())
  6341. appInfo.hostVersion=context.get_hostFullVersion();
  6342. else
  6343. appInfo.hostVersion=context.get_appVersion();
  6344. appInfo.appId=context.get_id();
  6345. appInfo.host=context.get_appName();
  6346. appInfo.browser=window.navigator.userAgent;
  6347. appInfo.correlationId=context.get_correlationId();
  6348. appInfo.clientId=(new AppStorage).getClientId();
  6349. appInfo.appInstanceId=context.get_appInstanceId();
  6350. if(appInfo.appInstanceId)
  6351. appInfo.appInstanceId=appInfo.appInstanceId.replace(/[{}]/g,"").toLowerCase();
  6352. appInfo.message=context.get_hostCustomMessage();
  6353. appInfo.officeJSVersion=OSF.ConstantNames.FileVersion;
  6354. appInfo.hostJSVersion="16.0.7510.1000";
  6355. var docUrl=context.get_docUrl();
  6356. appInfo.docUrl=omexDomainRegex.test(docUrl) ? docUrl : "";
  6357. var url=location.href;
  6358. if(url)
  6359. url=url.split("?")[0].split("#")[0];
  6360. appInfo.appURL=url;
  6361. (function getUserIdAndAssetIdFromToken(token, appInfo)
  6362. {
  6363. var xmlContent;
  6364. var parser;
  6365. var xmlDoc;
  6366. appInfo.assetId="";
  6367. appInfo.userId="";
  6368. try
  6369. {
  6370. xmlContent=decodeURIComponent(token);
  6371. parser=new DOMParser;
  6372. xmlDoc=parser.parseFromString(xmlContent,"text/xml");
  6373. var cidNode=xmlDoc.getElementsByTagName("t")[0].attributes.getNamedItem("cid");
  6374. var oidNode=xmlDoc.getElementsByTagName("t")[0].attributes.getNamedItem("oid");
  6375. if(cidNode && cidNode.nodeValue)
  6376. appInfo.userId=cidNode.nodeValue;
  6377. else if(oidNode && oidNode.nodeValue)
  6378. appInfo.userId=oidNode.nodeValue;
  6379. appInfo.assetId=xmlDoc.getElementsByTagName("t")[0].attributes.getNamedItem("aid").nodeValue
  6380. }
  6381. catch(e){}
  6382. finally
  6383. {
  6384. xmlContent=null;
  6385. xmlDoc=null;
  6386. parser=null
  6387. }
  6388. })(context.get_eToken(),appInfo);
  6389. (function handleLifecycle()
  6390. {
  6391. var startTime=new Date;
  6392. var lastFocus=null;
  6393. var focusTime=0;
  6394. var finished=false;
  6395. var adjustFocusTime=function()
  6396. {
  6397. if(document.hasFocus())
  6398. {
  6399. if(lastFocus==null)
  6400. lastFocus=new Date
  6401. }
  6402. else if(lastFocus)
  6403. {
  6404. focusTime+=Math.abs((new Date).getTime() - lastFocus.getTime());
  6405. lastFocus=null
  6406. }
  6407. };
  6408. var eventList=[];
  6409. eventList.push(new Event("focus",adjustFocusTime));
  6410. eventList.push(new Event("blur",adjustFocusTime));
  6411. eventList.push(new Event("focusout",adjustFocusTime));
  6412. eventList.push(new Event("focusin",adjustFocusTime));
  6413. var exitFunction=function()
  6414. {
  6415. for(var i=0; i < eventList.length; i++)
  6416. OSF.OUtil.removeEventListener(window,eventList[i].name,eventList[i].handler);
  6417. eventList.length=0;
  6418. if(!finished)
  6419. {
  6420. if(document.hasFocus() && lastFocus)
  6421. {
  6422. focusTime+=Math.abs((new Date).getTime() - lastFocus.getTime());
  6423. lastFocus=null
  6424. }
  6425. OSFAppTelemetry.onAppClosed(Math.abs((new Date).getTime() - startTime.getTime()),focusTime);
  6426. finished=true
  6427. }
  6428. };
  6429. eventList.push(new Event("beforeunload",exitFunction));
  6430. eventList.push(new Event("unload",exitFunction));
  6431. for(var i=0; i < eventList.length; i++)
  6432. OSF.OUtil.addEventListener(window,eventList[i].name,eventList[i].handler);
  6433. adjustFocusTime()
  6434. })();
  6435. OSFAppTelemetry.onAppActivated()
  6436. }
  6437. OSFAppTelemetry.initialize=initialize;
  6438. function onAppActivated()
  6439. {
  6440. if(!appInfo)
  6441. return;
  6442. (new AppStorage).enumerateLog(function(id, log)
  6443. {
  6444. return(new AppLogger).LogRawData(log)
  6445. },true);
  6446. var data=new OSFLog.AppActivatedUsageData;
  6447. data.SessionId=sessionId;
  6448. data.AppId=appInfo.appId;
  6449. data.AssetId=appInfo.assetId;
  6450. data.AppURL=appInfo.appURL;
  6451. data.UserId=appInfo.userId;
  6452. data.ClientId=appInfo.clientId;
  6453. data.Browser=appInfo.browser;
  6454. data.Host=appInfo.host;
  6455. data.HostVersion=appInfo.hostVersion;
  6456. data.CorrelationId=appInfo.correlationId;
  6457. data.AppSizeWidth=window.innerWidth;
  6458. data.AppSizeHeight=window.innerHeight;
  6459. data.AppInstanceId=appInfo.appInstanceId;
  6460. data.Message=appInfo.message;
  6461. data.DocUrl=appInfo.docUrl;
  6462. data.OfficeJSVersion=appInfo.officeJSVersion;
  6463. data.HostJSVersion=appInfo.hostJSVersion;
  6464. (new AppLogger).LogData(data);
  6465. setTimeout(function()
  6466. {
  6467. if(!OSF.Logger)
  6468. return;
  6469. OSF.Logger.allowUploadingData()
  6470. },100)
  6471. }
  6472. OSFAppTelemetry.onAppActivated=onAppActivated;
  6473. function onScriptDone(scriptId, msStartTime, msResponseTime, appCorrelationId)
  6474. {
  6475. var data=new OSFLog.ScriptLoadUsageData;
  6476. data.CorrelationId=appCorrelationId;
  6477. data.SessionId=sessionId;
  6478. data.ScriptId=scriptId;
  6479. data.StartTime=msStartTime;
  6480. data.ResponseTime=msResponseTime;
  6481. (new AppLogger).LogData(data)
  6482. }
  6483. OSFAppTelemetry.onScriptDone=onScriptDone;
  6484. function onCallDone(apiType, id, parameters, msResponseTime, errorType)
  6485. {
  6486. if(!appInfo)
  6487. return;
  6488. var data=new OSFLog.APIUsageUsageData;
  6489. data.CorrelationId=osfControlAppCorrelationId;
  6490. data.SessionId=sessionId;
  6491. data.APIType=apiType;
  6492. data.APIID=id;
  6493. data.Parameters=parameters;
  6494. data.ResponseTime=msResponseTime;
  6495. data.ErrorType=errorType;
  6496. (new AppLogger).LogData(data)
  6497. }
  6498. OSFAppTelemetry.onCallDone=onCallDone;
  6499. function onMethodDone(id, args, msResponseTime, errorType)
  6500. {
  6501. var parameters=null;
  6502. if(args)
  6503. if(typeof args=="number")
  6504. parameters=String(args);
  6505. else if(typeof args==="object")
  6506. for(var index in args)
  6507. {
  6508. if(parameters !==null)
  6509. parameters+=",";
  6510. else
  6511. parameters="";
  6512. if(typeof args[index]=="number")
  6513. parameters+=String(args[index])
  6514. }
  6515. else
  6516. parameters="";
  6517. OSF.AppTelemetry.onCallDone("method",id,parameters,msResponseTime,errorType)
  6518. }
  6519. OSFAppTelemetry.onMethodDone=onMethodDone;
  6520. function onPropertyDone(propertyName, msResponseTime)
  6521. {
  6522. OSF.AppTelemetry.onCallDone("property",-1,propertyName,msResponseTime)
  6523. }
  6524. OSFAppTelemetry.onPropertyDone=onPropertyDone;
  6525. function onEventDone(id, errorType)
  6526. {
  6527. OSF.AppTelemetry.onCallDone("event",id,null,0,errorType)
  6528. }
  6529. OSFAppTelemetry.onEventDone=onEventDone;
  6530. function onRegisterDone(register, id, msResponseTime, errorType)
  6531. {
  6532. OSF.AppTelemetry.onCallDone(register ? "registerevent" : "unregisterevent",id,null,msResponseTime,errorType)
  6533. }
  6534. OSFAppTelemetry.onRegisterDone=onRegisterDone;
  6535. function onAppClosed(openTime, focusTime)
  6536. {
  6537. if(!appInfo)
  6538. return;
  6539. var data=new OSFLog.AppClosedUsageData;
  6540. data.CorrelationId=osfControlAppCorrelationId;
  6541. data.SessionId=sessionId;
  6542. data.FocusTime=focusTime;
  6543. data.OpenTime=openTime;
  6544. data.AppSizeFinalWidth=window.innerWidth;
  6545. data.AppSizeFinalHeight=window.innerHeight;
  6546. (new AppStorage).saveLog(sessionId,data.SerializeRow())
  6547. }
  6548. OSFAppTelemetry.onAppClosed=onAppClosed;
  6549. function setOsfControlAppCorrelationId(correlationId)
  6550. {
  6551. osfControlAppCorrelationId=correlationId
  6552. }
  6553. OSFAppTelemetry.setOsfControlAppCorrelationId=setOsfControlAppCorrelationId;
  6554. function doAppInitializationLogging(isException, message)
  6555. {
  6556. var data=new OSFLog.AppInitializationUsageData;
  6557. data.CorrelationId=osfControlAppCorrelationId;
  6558. data.SessionId=sessionId;
  6559. data.SuccessCode=isException ? 1 : 0;
  6560. data.Message=message;
  6561. (new AppLogger).LogData(data)
  6562. }
  6563. OSFAppTelemetry.doAppInitializationLogging=doAppInitializationLogging;
  6564. function logAppCommonMessage(message)
  6565. {
  6566. doAppInitializationLogging(false,message)
  6567. }
  6568. OSFAppTelemetry.logAppCommonMessage=logAppCommonMessage;
  6569. function logAppException(errorMessage)
  6570. {
  6571. doAppInitializationLogging(true,errorMessage)
  6572. }
  6573. OSFAppTelemetry.logAppException=logAppException;
  6574. OSF.AppTelemetry=OSFAppTelemetry
  6575. })(OSFAppTelemetry || (OSFAppTelemetry={}));
  6576. Microsoft.Office.WebExtension.EventType={};
  6577. OSF.EventDispatch=function OSF_EventDispatch(eventTypes)
  6578. {
  6579. this._eventHandlers={};
  6580. this._queuedEventsArgs={};
  6581. for(var entry in eventTypes)
  6582. {
  6583. var eventType=eventTypes[entry];
  6584. this._eventHandlers[eventType]=[];
  6585. this._queuedEventsArgs[eventType]=[]
  6586. }
  6587. };
  6588. OSF.EventDispatch.prototype={
  6589. getSupportedEvents: function OSF_EventDispatch$getSupportedEvents()
  6590. {
  6591. var events=[];
  6592. for(var eventName in this._eventHandlers)
  6593. events.push(eventName);
  6594. return events
  6595. },
  6596. supportsEvent: function OSF_EventDispatch$supportsEvent(event)
  6597. {
  6598. var isSupported=false;
  6599. for(var eventName in this._eventHandlers)
  6600. if(event==eventName)
  6601. {
  6602. isSupported=true;
  6603. break
  6604. }
  6605. return isSupported
  6606. },
  6607. hasEventHandler: function OSF_EventDispatch$hasEventHandler(eventType, handler)
  6608. {
  6609. var handlers=this._eventHandlers[eventType];
  6610. if(handlers && handlers.length > 0)
  6611. for(var h in handlers)
  6612. if(handlers[h]===handler)
  6613. return true;
  6614. return false
  6615. },
  6616. addEventHandler: function OSF_EventDispatch$addEventHandler(eventType, handler)
  6617. {
  6618. if(typeof handler !="function")
  6619. return false;
  6620. var handlers=this._eventHandlers[eventType];
  6621. if(handlers && !this.hasEventHandler(eventType,handler))
  6622. {
  6623. handlers.push(handler);
  6624. return true
  6625. }
  6626. else
  6627. return false
  6628. },
  6629. addEventHandlerAndFireQueuedEvent: function OSF_EventDispatch$addEventHandlerAndFireQueuedEvent(eventType, handler)
  6630. {
  6631. var handlers=this._eventHandlers[eventType];
  6632. var isFirstHandler=handlers.length==0;
  6633. var succeed=this.addEventHandler(eventType,handler);
  6634. if(isFirstHandler && succeed)
  6635. this.fireQueuedEvent(eventType);
  6636. return succeed
  6637. },
  6638. removeEventHandler: function OSF_EventDispatch$removeEventHandler(eventType, handler)
  6639. {
  6640. var handlers=this._eventHandlers[eventType];
  6641. if(handlers && handlers.length > 0)
  6642. for(var index=0; index < handlers.length; index++)
  6643. if(handlers[index]===handler)
  6644. {
  6645. handlers.splice(index,1);
  6646. return true
  6647. }
  6648. return false
  6649. },
  6650. clearEventHandlers: function OSF_EventDispatch$clearEventHandlers(eventType)
  6651. {
  6652. if(typeof this._eventHandlers[eventType] !="undefined" && this._eventHandlers[eventType].length > 0)
  6653. {
  6654. this._eventHandlers[eventType]=[];
  6655. return true
  6656. }
  6657. return false
  6658. },
  6659. getEventHandlerCount: function OSF_EventDispatch$getEventHandlerCount(eventType)
  6660. {
  6661. return this._eventHandlers[eventType] !=undefined ? this._eventHandlers[eventType].length : -1
  6662. },
  6663. fireEvent: function OSF_EventDispatch$fireEvent(eventArgs)
  6664. {
  6665. if(eventArgs.type==undefined)
  6666. return false;
  6667. var eventType=eventArgs.type;
  6668. if(eventType && this._eventHandlers[eventType])
  6669. {
  6670. var eventHandlers=this._eventHandlers[eventType];
  6671. for(var handler in eventHandlers)
  6672. eventHandlers[handler](eventArgs);
  6673. return true
  6674. }
  6675. else
  6676. return false
  6677. },
  6678. fireOrQueueEvent: function OSF_EventDispatch$fireOrQueueEvent(eventArgs)
  6679. {
  6680. var eventType=eventArgs.type;
  6681. if(eventType && this._eventHandlers[eventType])
  6682. {
  6683. var eventHandlers=this._eventHandlers[eventType];
  6684. var queuedEvents=this._queuedEventsArgs[eventType];
  6685. if(eventHandlers.length==0)
  6686. queuedEvents.push(eventArgs);
  6687. else
  6688. this.fireEvent(eventArgs);
  6689. return true
  6690. }
  6691. else
  6692. return false
  6693. },
  6694. fireQueuedEvent: function OSF_EventDispatch$queueEvent(eventType)
  6695. {
  6696. if(eventType && this._eventHandlers[eventType])
  6697. {
  6698. var eventHandlers=this._eventHandlers[eventType];
  6699. var queuedEvents=this._queuedEventsArgs[eventType];
  6700. if(eventHandlers.length > 0)
  6701. {
  6702. var eventHandler=eventHandlers[0];
  6703. while(queuedEvents.length > 0)
  6704. {
  6705. var eventArgs=queuedEvents.shift();
  6706. eventHandler(eventArgs)
  6707. }
  6708. return true
  6709. }
  6710. }
  6711. return false
  6712. }
  6713. };
  6714. OSF.DDA.OMFactory=OSF.DDA.OMFactory || {};
  6715. OSF.DDA.OMFactory.manufactureEventArgs=function OSF_DDA_OMFactory$manufactureEventArgs(eventType, target, eventProperties)
  6716. {
  6717. var args;
  6718. switch(eventType)
  6719. {
  6720. case Microsoft.Office.WebExtension.EventType.DocumentSelectionChanged:
  6721. args=new OSF.DDA.DocumentSelectionChangedEventArgs(target);
  6722. break;
  6723. case Microsoft.Office.WebExtension.EventType.BindingSelectionChanged:
  6724. args=new OSF.DDA.BindingSelectionChangedEventArgs(this.manufactureBinding(eventProperties,target.document),eventProperties[OSF.DDA.PropertyDescriptors.Subset]);
  6725. break;
  6726. case Microsoft.Office.WebExtension.EventType.BindingDataChanged:
  6727. args=new OSF.DDA.BindingDataChangedEventArgs(this.manufactureBinding(eventProperties,target.document));
  6728. break;
  6729. case Microsoft.Office.WebExtension.EventType.SettingsChanged:
  6730. args=new OSF.DDA.SettingsChangedEventArgs(target);
  6731. break;
  6732. case Microsoft.Office.WebExtension.EventType.ActiveViewChanged:
  6733. args=new OSF.DDA.ActiveViewChangedEventArgs(eventProperties);
  6734. break;
  6735. case Microsoft.Office.WebExtension.EventType.OfficeThemeChanged:
  6736. args=new OSF.DDA.Theming.OfficeThemeChangedEventArgs(eventProperties);
  6737. break;
  6738. case Microsoft.Office.WebExtension.EventType.DocumentThemeChanged:
  6739. args=new OSF.DDA.Theming.DocumentThemeChangedEventArgs(eventProperties);
  6740. break;
  6741. case Microsoft.Office.WebExtension.EventType.AppCommandInvoked:
  6742. args=OSF.DDA.AppCommand.AppCommandInvokedEventArgs.create(eventProperties);
  6743. break;
  6744. case Microsoft.Office.WebExtension.EventType.DataNodeInserted:
  6745. args=new OSF.DDA.NodeInsertedEventArgs(this.manufactureDataNode(eventProperties[OSF.DDA.DataNodeEventProperties.NewNode]),eventProperties[OSF.DDA.DataNodeEventProperties.InUndoRedo]);
  6746. break;
  6747. case Microsoft.Office.WebExtension.EventType.DataNodeReplaced:
  6748. args=new OSF.DDA.NodeReplacedEventArgs(this.manufactureDataNode(eventProperties[OSF.DDA.DataNodeEventProperties.OldNode]),this.manufactureDataNode(eventProperties[OSF.DDA.DataNodeEventProperties.NewNode]),eventProperties[OSF.DDA.DataNodeEventProperties.InUndoRedo]);
  6749. break;
  6750. case Microsoft.Office.WebExtension.EventType.DataNodeDeleted:
  6751. args=new OSF.DDA.NodeDeletedEventArgs(this.manufactureDataNode(eventProperties[OSF.DDA.DataNodeEventProperties.OldNode]),this.manufactureDataNode(eventProperties[OSF.DDA.DataNodeEventProperties.NextSiblingNode]),eventProperties[OSF.DDA.DataNodeEventProperties.InUndoRedo]);
  6752. break;
  6753. case Microsoft.Office.WebExtension.EventType.TaskSelectionChanged:
  6754. args=new OSF.DDA.TaskSelectionChangedEventArgs(target);
  6755. break;
  6756. case Microsoft.Office.WebExtension.EventType.ResourceSelectionChanged:
  6757. args=new OSF.DDA.ResourceSelectionChangedEventArgs(target);
  6758. break;
  6759. case Microsoft.Office.WebExtension.EventType.ViewSelectionChanged:
  6760. args=new OSF.DDA.ViewSelectionChangedEventArgs(target);
  6761. break;
  6762. case Microsoft.Office.WebExtension.EventType.DialogMessageReceived:
  6763. args=new OSF.DDA.DialogEventArgs(eventProperties);
  6764. break;
  6765. case Microsoft.Office.WebExtension.EventType.DialogParentMessageReceived:
  6766. args=new OSF.DDA.DialogParentEventArgs(eventProperties);
  6767. break;
  6768. case Microsoft.Office.WebExtension.EventType.OlkItemSelectedChanged:
  6769. if(OSF._OfficeAppFactory.getHostInfo()["hostType"]=="outlook" || OSF._OfficeAppFactory.getHostInfo()["hostType"]=="outlookwebapp")
  6770. {
  6771. args=new OSF.DDA.OlkItemSelectedChangedEventArgs(eventProperties);
  6772. target.initialize(args["initialData"]);
  6773. target.setCurrentItemNumber(args["itemNumber"].itemNumber)
  6774. }
  6775. else
  6776. throw OsfMsAjaxFactory.msAjaxError.argument(Microsoft.Office.WebExtension.Parameters.EventType,OSF.OUtil.formatString(Strings.OfficeOM.L_NotSupportedEventType,eventType));
  6777. break;
  6778. default:
  6779. throw OsfMsAjaxFactory.msAjaxError.argument(Microsoft.Office.WebExtension.Parameters.EventType,OSF.OUtil.formatString(Strings.OfficeOM.L_NotSupportedEventType,eventType));
  6780. }
  6781. return args
  6782. };
  6783. OSF.DDA.AsyncMethodNames.addNames({
  6784. AddHandlerAsync: "addHandlerAsync",
  6785. RemoveHandlerAsync: "removeHandlerAsync"
  6786. });
  6787. OSF.DDA.AsyncMethodCalls.define({
  6788. method: OSF.DDA.AsyncMethodNames.AddHandlerAsync,
  6789. requiredArguments: [{
  6790. name: Microsoft.Office.WebExtension.Parameters.EventType,
  6791. "enum": Microsoft.Office.WebExtension.EventType,
  6792. verify: function(eventType, caller, eventDispatch)
  6793. {
  6794. return eventDispatch.supportsEvent(eventType)
  6795. }
  6796. },{
  6797. name: Microsoft.Office.WebExtension.Parameters.Handler,
  6798. types: ["function"]
  6799. }],
  6800. supportedOptions: [],
  6801. privateStateCallbacks: []
  6802. });
  6803. OSF.DDA.AsyncMethodCalls.define({
  6804. method: OSF.DDA.AsyncMethodNames.RemoveHandlerAsync,
  6805. requiredArguments: [{
  6806. name: Microsoft.Office.WebExtension.Parameters.EventType,
  6807. "enum": Microsoft.Office.WebExtension.EventType,
  6808. verify: function(eventType, caller, eventDispatch)
  6809. {
  6810. return eventDispatch.supportsEvent(eventType)
  6811. }
  6812. }],
  6813. supportedOptions: [{
  6814. name: Microsoft.Office.WebExtension.Parameters.Handler,
  6815. value: {
  6816. types: ["function","object"],
  6817. defaultValue: null
  6818. }
  6819. }],
  6820. privateStateCallbacks: []
  6821. });
  6822. var OfficeExt;
  6823. (function(OfficeExt)
  6824. {
  6825. var AppCommand;
  6826. (function(AppCommand)
  6827. {
  6828. var AppCommandManager=function()
  6829. {
  6830. function AppCommandManager()
  6831. {
  6832. var _this=this;
  6833. this._pseudoDocument=null;
  6834. this._eventDispatch=null;
  6835. this._processAppCommandInvocation=function(args)
  6836. {
  6837. var verifyResult=_this._verifyManifestCallback(args.callbackName);
  6838. if(verifyResult.errorCode !=OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
  6839. {
  6840. _this._invokeAppCommandCompletedMethod(args.appCommandId,verifyResult.errorCode,"");
  6841. return
  6842. }
  6843. var eventObj=_this._constructEventObjectForCallback(args);
  6844. if(eventObj)
  6845. window.setTimeout(function()
  6846. {
  6847. verifyResult.callback(eventObj)
  6848. },0);
  6849. else
  6850. _this._invokeAppCommandCompletedMethod(args.appCommandId,OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError,"")
  6851. }
  6852. }
  6853. AppCommandManager.initializeOsfDda=function()
  6854. {
  6855. OSF.DDA.AsyncMethodNames.addNames({AppCommandInvocationCompletedAsync: "appCommandInvocationCompletedAsync"});
  6856. OSF.DDA.AsyncMethodCalls.define({
  6857. method: OSF.DDA.AsyncMethodNames.AppCommandInvocationCompletedAsync,
  6858. requiredArguments: [{
  6859. name: Microsoft.Office.WebExtension.Parameters.Id,
  6860. types: ["string"]
  6861. },{
  6862. name: Microsoft.Office.WebExtension.Parameters.Status,
  6863. types: ["number"]
  6864. },{
  6865. name: Microsoft.Office.WebExtension.Parameters.Data,
  6866. types: ["string"]
  6867. }]
  6868. });
  6869. OSF.OUtil.augmentList(OSF.DDA.EventDescriptors,{AppCommandInvokedEvent: "AppCommandInvokedEvent"});
  6870. OSF.OUtil.augmentList(Microsoft.Office.WebExtension.EventType,{AppCommandInvoked: "appCommandInvoked"});
  6871. OSF.OUtil.setNamespace("AppCommand",OSF.DDA);
  6872. OSF.DDA.AppCommand.AppCommandInvokedEventArgs=OfficeExt.AppCommand.AppCommandInvokedEventArgs
  6873. };
  6874. AppCommandManager.prototype.initializeAndChangeOnce=function(callback)
  6875. {
  6876. AppCommand.registerDdaFacade();
  6877. this._pseudoDocument={};
  6878. OSF.DDA.DispIdHost.addAsyncMethods(this._pseudoDocument,[OSF.DDA.AsyncMethodNames.AppCommandInvocationCompletedAsync,]);
  6879. this._eventDispatch=new OSF.EventDispatch([Microsoft.Office.WebExtension.EventType.AppCommandInvoked,]);
  6880. var onRegisterCompleted=function(result)
  6881. {
  6882. if(callback)
  6883. if(result.status=="succeeded")
  6884. callback(OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess);
  6885. else
  6886. callback(OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError)
  6887. };
  6888. OSF.DDA.DispIdHost.addEventSupport(this._pseudoDocument,this._eventDispatch);
  6889. this._pseudoDocument.addHandlerAsync(Microsoft.Office.WebExtension.EventType.AppCommandInvoked,this._processAppCommandInvocation,onRegisterCompleted)
  6890. };
  6891. AppCommandManager.prototype._verifyManifestCallback=function(callbackName)
  6892. {
  6893. var defaultResult={
  6894. callback: null,
  6895. errorCode: OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidCallback
  6896. };
  6897. callbackName=callbackName.trim();
  6898. try
  6899. {
  6900. var callList=callbackName.split(".");
  6901. var parentObject=window;
  6902. for(var i=0; i < callList.length - 1; i++)
  6903. if(parentObject[callList[i]] && (typeof parentObject[callList[i]]=="object" || typeof parentObject[callList[i]]=="function"))
  6904. parentObject=parentObject[callList[i]];
  6905. else
  6906. return defaultResult;
  6907. var callbackFunc=parentObject[callList[callList.length - 1]];
  6908. if(typeof callbackFunc !="function")
  6909. return defaultResult
  6910. }
  6911. catch(e)
  6912. {
  6913. return defaultResult
  6914. }
  6915. return{
  6916. callback: callbackFunc,
  6917. errorCode: OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess
  6918. }
  6919. };
  6920. AppCommandManager.prototype._invokeAppCommandCompletedMethod=function(appCommandId, resultCode, data)
  6921. {
  6922. this._pseudoDocument.appCommandInvocationCompletedAsync(appCommandId,resultCode,data)
  6923. };
  6924. AppCommandManager.prototype._constructEventObjectForCallback=function(args)
  6925. {
  6926. var _this=this;
  6927. var eventObj=new AppCommandCallbackEventArgs;
  6928. try
  6929. {
  6930. var jsonData=JSON.parse(args.eventObjStr);
  6931. this._translateEventObjectInternal(jsonData,eventObj);
  6932. Object.defineProperty(eventObj,"completed",{
  6933. value: function(completedContext)
  6934. {
  6935. eventObj.completedContext=completedContext;
  6936. var jsonString=JSON.stringify(eventObj);
  6937. _this._invokeAppCommandCompletedMethod(args.appCommandId,OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess,jsonString)
  6938. },
  6939. enumerable: true
  6940. })
  6941. }
  6942. catch(e)
  6943. {
  6944. eventObj=null
  6945. }
  6946. return eventObj
  6947. };
  6948. AppCommandManager.prototype._translateEventObjectInternal=function(input, output)
  6949. {
  6950. for(var key in input)
  6951. {
  6952. if(!input.hasOwnProperty(key))
  6953. continue;
  6954. var inputChild=input[key];
  6955. if(typeof inputChild=="object" && inputChild !=null)
  6956. {
  6957. OSF.OUtil.defineEnumerableProperty(output,key,{value: {}});
  6958. this._translateEventObjectInternal(inputChild,output[key])
  6959. }
  6960. else
  6961. Object.defineProperty(output,key,{
  6962. value: inputChild,
  6963. enumerable: true,
  6964. writable: true
  6965. })
  6966. }
  6967. };
  6968. AppCommandManager.prototype._constructObjectByTemplate=function(template, input)
  6969. {
  6970. var output={};
  6971. if(!template || !input)
  6972. return output;
  6973. for(var key in template)
  6974. if(template.hasOwnProperty(key))
  6975. {
  6976. output[key]=null;
  6977. if(input[key] !=null)
  6978. {
  6979. var templateChild=template[key];
  6980. var inputChild=input[key];
  6981. var inputChildType=typeof inputChild;
  6982. if(typeof templateChild=="object" && templateChild !=null)
  6983. output[key]=this._constructObjectByTemplate(templateChild,inputChild);
  6984. else if(inputChildType=="number" || inputChildType=="string" || inputChildType=="boolean")
  6985. output[key]=inputChild
  6986. }
  6987. }
  6988. return output
  6989. };
  6990. AppCommandManager.instance=function()
  6991. {
  6992. if(AppCommandManager._instance==null)
  6993. AppCommandManager._instance=new AppCommandManager;
  6994. return AppCommandManager._instance
  6995. };
  6996. AppCommandManager._instance=null;
  6997. return AppCommandManager
  6998. }();
  6999. AppCommand.AppCommandManager=AppCommandManager;
  7000. var AppCommandInvokedEventArgs=function()
  7001. {
  7002. function AppCommandInvokedEventArgs(appCommandId, callbackName, eventObjStr)
  7003. {
  7004. this.type=Microsoft.Office.WebExtension.EventType.AppCommandInvoked;
  7005. this.appCommandId=appCommandId;
  7006. this.callbackName=callbackName;
  7007. this.eventObjStr=eventObjStr
  7008. }
  7009. AppCommandInvokedEventArgs.create=function(eventProperties)
  7010. {
  7011. return new AppCommandInvokedEventArgs(eventProperties[AppCommand.AppCommandInvokedEventEnums.AppCommandId],eventProperties[AppCommand.AppCommandInvokedEventEnums.CallbackName],eventProperties[AppCommand.AppCommandInvokedEventEnums.EventObjStr])
  7012. };
  7013. return AppCommandInvokedEventArgs
  7014. }();
  7015. AppCommand.AppCommandInvokedEventArgs=AppCommandInvokedEventArgs;
  7016. var AppCommandCallbackEventArgs=function()
  7017. {
  7018. function AppCommandCallbackEventArgs(){}
  7019. return AppCommandCallbackEventArgs
  7020. }();
  7021. AppCommand.AppCommandCallbackEventArgs=AppCommandCallbackEventArgs;
  7022. AppCommand.AppCommandInvokedEventEnums={
  7023. AppCommandId: "appCommandId",
  7024. CallbackName: "callbackName",
  7025. EventObjStr: "eventObjStr"
  7026. }
  7027. })(AppCommand=OfficeExt.AppCommand || (OfficeExt.AppCommand={}))
  7028. })(OfficeExt || (OfficeExt={}));
  7029. OfficeExt.AppCommand.AppCommandManager.initializeOsfDda();
  7030. OSF.OUtil.setNamespace("Marshaling",OSF.DDA);
  7031. OSF.OUtil.setNamespace("AppCommand",OSF.DDA.Marshaling);
  7032. var OSF_DDA_Marshaling_AppCommand_AppCommandInvokedEventKeys;
  7033. (function(OSF_DDA_Marshaling_AppCommand_AppCommandInvokedEventKeys)
  7034. {
  7035. OSF_DDA_Marshaling_AppCommand_AppCommandInvokedEventKeys[OSF_DDA_Marshaling_AppCommand_AppCommandInvokedEventKeys["AppCommandId"]=0]="AppCommandId";
  7036. OSF_DDA_Marshaling_AppCommand_AppCommandInvokedEventKeys[OSF_DDA_Marshaling_AppCommand_AppCommandInvokedEventKeys["CallbackName"]=1]="CallbackName";
  7037. OSF_DDA_Marshaling_AppCommand_AppCommandInvokedEventKeys[OSF_DDA_Marshaling_AppCommand_AppCommandInvokedEventKeys["EventObjStr"]=2]="EventObjStr"
  7038. })(OSF_DDA_Marshaling_AppCommand_AppCommandInvokedEventKeys || (OSF_DDA_Marshaling_AppCommand_AppCommandInvokedEventKeys={}));
  7039. OSF.DDA.Marshaling.AppCommand.AppCommandInvokedEventKeys=OSF_DDA_Marshaling_AppCommand_AppCommandInvokedEventKeys;
  7040. var OSF_DDA_Marshaling_AppCommand_AppCommandCompletedMethodParameterKeys;
  7041. (function(OSF_DDA_Marshaling_AppCommand_AppCommandCompletedMethodParameterKeys)
  7042. {
  7043. OSF_DDA_Marshaling_AppCommand_AppCommandCompletedMethodParameterKeys[OSF_DDA_Marshaling_AppCommand_AppCommandCompletedMethodParameterKeys["Id"]=0]="Id";
  7044. OSF_DDA_Marshaling_AppCommand_AppCommandCompletedMethodParameterKeys[OSF_DDA_Marshaling_AppCommand_AppCommandCompletedMethodParameterKeys["Status"]=1]="Status";
  7045. OSF_DDA_Marshaling_AppCommand_AppCommandCompletedMethodParameterKeys[OSF_DDA_Marshaling_AppCommand_AppCommandCompletedMethodParameterKeys["Data"]=2]="Data"
  7046. })(OSF_DDA_Marshaling_AppCommand_AppCommandCompletedMethodParameterKeys || (OSF_DDA_Marshaling_AppCommand_AppCommandCompletedMethodParameterKeys={}));
  7047. OSF.DDA.Marshaling.AppCommand.AppCommandCompletedMethodParameterKeys=OSF_DDA_Marshaling_AppCommand_AppCommandCompletedMethodParameterKeys;
  7048. var OfficeExt;
  7049. (function(OfficeExt)
  7050. {
  7051. var AppCommand;
  7052. (function(AppCommand)
  7053. {
  7054. function registerDdaFacade()
  7055. {
  7056. if(OSF.DDA.WAC)
  7057. {
  7058. var parameterMap=OSF.DDA.WAC.Delegate.ParameterMap;
  7059. parameterMap.define({
  7060. type: OSF.DDA.MethodDispId.dispidAppCommandInvocationCompletedMethod,
  7061. toHost: [{
  7062. name: Microsoft.Office.WebExtension.Parameters.Id,
  7063. value: OSF.DDA.Marshaling.AppCommand.AppCommandCompletedMethodParameterKeys.Id
  7064. },{
  7065. name: Microsoft.Office.WebExtension.Parameters.Status,
  7066. value: OSF.DDA.Marshaling.AppCommand.AppCommandCompletedMethodParameterKeys.Status
  7067. },{
  7068. name: Microsoft.Office.WebExtension.Parameters.Data,
  7069. value: OSF.DDA.Marshaling.AppCommand.AppCommandCompletedMethodParameterKeys.Data
  7070. }]
  7071. });
  7072. parameterMap.define({
  7073. type: OSF.DDA.EventDispId.dispidAppCommandInvokedEvent,
  7074. fromHost: [{
  7075. name: OSF.DDA.EventDescriptors.AppCommandInvokedEvent,
  7076. value: parameterMap.self
  7077. }]
  7078. });
  7079. parameterMap.addComplexType(OSF.DDA.EventDescriptors.AppCommandInvokedEvent);
  7080. parameterMap.define({
  7081. type: OSF.DDA.EventDescriptors.AppCommandInvokedEvent,
  7082. fromHost: [{
  7083. name: OfficeExt.AppCommand.AppCommandInvokedEventEnums.AppCommandId,
  7084. value: OSF.DDA.Marshaling.AppCommand.AppCommandInvokedEventKeys.AppCommandId
  7085. },{
  7086. name: OfficeExt.AppCommand.AppCommandInvokedEventEnums.CallbackName,
  7087. value: OSF.DDA.Marshaling.AppCommand.AppCommandInvokedEventKeys.CallbackName
  7088. },{
  7089. name: OfficeExt.AppCommand.AppCommandInvokedEventEnums.EventObjStr,
  7090. value: OSF.DDA.Marshaling.AppCommand.AppCommandInvokedEventKeys.EventObjStr
  7091. },]
  7092. })
  7093. }
  7094. }
  7095. AppCommand.registerDdaFacade=registerDdaFacade
  7096. })(AppCommand=OfficeExt.AppCommand || (OfficeExt.AppCommand={}))
  7097. })(OfficeExt || (OfficeExt={}));
  7098. OSF.DialogShownStatus={
  7099. hasDialogShown: false,
  7100. isWindowDialog: false
  7101. };
  7102. OSF.OUtil.augmentList(OSF.DDA.EventDescriptors,{DialogMessageReceivedEvent: "DialogMessageReceivedEvent"});
  7103. OSF.OUtil.augmentList(Microsoft.Office.WebExtension.EventType,{
  7104. DialogMessageReceived: "dialogMessageReceived",
  7105. DialogEventReceived: "dialogEventReceived"
  7106. });
  7107. OSF.OUtil.augmentList(OSF.DDA.PropertyDescriptors,{
  7108. MessageType: "messageType",
  7109. MessageContent: "messageContent"
  7110. });
  7111. OSF.DDA.DialogEventType={};
  7112. OSF.OUtil.augmentList(OSF.DDA.DialogEventType,{
  7113. DialogClosed: "dialogClosed",
  7114. NavigationFailed: "naviationFailed"
  7115. });
  7116. OSF.DDA.AsyncMethodNames.addNames({
  7117. DisplayDialogAsync: "displayDialogAsync",
  7118. CloseAsync: "close"
  7119. });
  7120. OSF.DDA.SyncMethodNames.addNames({
  7121. MessageParent: "messageParent",
  7122. AddMessageHandler: "addEventHandler",
  7123. SendMessage: "sendMessage"
  7124. });
  7125. OSF.DDA.UI.ParentUI=function OSF_DDA_ParentUI()
  7126. {
  7127. var eventDispatch=new OSF.EventDispatch([Microsoft.Office.WebExtension.EventType.DialogMessageReceived,Microsoft.Office.WebExtension.EventType.DialogEventReceived,Microsoft.Office.WebExtension.EventType.DialogParentMessageReceived]);
  7128. var openDialogName=OSF.DDA.AsyncMethodNames.DisplayDialogAsync.displayName;
  7129. var target=this;
  7130. if(!target[openDialogName])
  7131. OSF.OUtil.defineEnumerableProperty(target,openDialogName,{value: function()
  7132. {
  7133. var openDialog=OSF._OfficeAppFactory.getHostFacade()[OSF.DDA.DispIdHost.Methods.OpenDialog];
  7134. openDialog(arguments,eventDispatch,target)
  7135. }});
  7136. OSF.OUtil.finalizeProperties(this)
  7137. };
  7138. OSF.DDA.UI.ChildUI=function OSF_DDA_ChildUI()
  7139. {
  7140. var messageParentName=OSF.DDA.SyncMethodNames.MessageParent.displayName;
  7141. var target=this;
  7142. if(!target[messageParentName])
  7143. OSF.OUtil.defineEnumerableProperty(target,messageParentName,{value: function()
  7144. {
  7145. var messageParent=OSF._OfficeAppFactory.getHostFacade()[OSF.DDA.DispIdHost.Methods.MessageParent];
  7146. return messageParent(arguments,target)
  7147. }});
  7148. var addEventHandler=OSF.DDA.SyncMethodNames.AddMessageHandler.displayName;
  7149. if(!target[addEventHandler] && typeof OSF.DialogParentMessageEventDispatch !="undefined")
  7150. OSF.DDA.DispIdHost.addEventSupport(target,OSF.DialogParentMessageEventDispatch);
  7151. OSF.OUtil.finalizeProperties(this)
  7152. };
  7153. OSF.DialogHandler=function OSF_DialogHandler(){};
  7154. OSF.DDA.DialogEventArgs=function OSF_DDA_DialogEventArgs(message)
  7155. {
  7156. if(message[OSF.DDA.PropertyDescriptors.MessageType]==OSF.DialogMessageType.DialogMessageReceived)
  7157. OSF.OUtil.defineEnumerableProperties(this,{
  7158. type: {value: Microsoft.Office.WebExtension.EventType.DialogMessageReceived},
  7159. message: {value: message[OSF.DDA.PropertyDescriptors.MessageContent]}
  7160. });
  7161. else
  7162. OSF.OUtil.defineEnumerableProperties(this,{
  7163. type: {value: Microsoft.Office.WebExtension.EventType.DialogParentEventReceived},
  7164. error: {value: message[OSF.DDA.PropertyDescriptors.MessageType]}
  7165. })
  7166. };
  7167. OSF.DDA.DialogParentEventArgs=function OSF_DDA_DialogParentEventArgs(message)
  7168. {
  7169. if(message[OSF.DDA.PropertyDescriptors.MessageType]==OSF.DialogMessageType.DialogParentMessageReceived)
  7170. OSF.OUtil.defineEnumerableProperties(this,{
  7171. type: {value: Microsoft.Office.WebExtension.EventType.DialogParentMessageReceived},
  7172. message: {value: message[OSF.DDA.PropertyDescriptors.MessageContent]}
  7173. });
  7174. else
  7175. OSF.OUtil.defineEnumerableProperties(this,{
  7176. type: {value: Microsoft.Office.WebExtension.EventType.DialogParentEventReceived},
  7177. error: {value: message[OSF.DDA.PropertyDescriptors.MessageType]}
  7178. })
  7179. };
  7180. OSF.DDA.AsyncMethodCalls.define({
  7181. method: OSF.DDA.AsyncMethodNames.DisplayDialogAsync,
  7182. requiredArguments: [{
  7183. name: Microsoft.Office.WebExtension.Parameters.Url,
  7184. types: ["string"]
  7185. }],
  7186. supportedOptions: [{
  7187. name: Microsoft.Office.WebExtension.Parameters.Width,
  7188. value: {
  7189. types: ["number"],
  7190. defaultValue: 99
  7191. }
  7192. },{
  7193. name: Microsoft.Office.WebExtension.Parameters.Height,
  7194. value: {
  7195. types: ["number"],
  7196. defaultValue: 99
  7197. }
  7198. },{
  7199. name: Microsoft.Office.WebExtension.Parameters.RequireHTTPs,
  7200. value: {
  7201. types: ["boolean"],
  7202. defaultValue: true
  7203. }
  7204. },{
  7205. name: Microsoft.Office.WebExtension.Parameters.DisplayInIframe,
  7206. value: {
  7207. types: ["boolean"],
  7208. defaultValue: false
  7209. }
  7210. }],
  7211. privateStateCallbacks: [],
  7212. onSucceeded: function(args, caller, callArgs)
  7213. {
  7214. var targetId=args[Microsoft.Office.WebExtension.Parameters.Id];
  7215. var eventDispatch=args[Microsoft.Office.WebExtension.Parameters.Data];
  7216. var dialog=new OSF.DialogHandler;
  7217. var closeDialog=OSF.DDA.AsyncMethodNames.CloseAsync.displayName;
  7218. OSF.OUtil.defineEnumerableProperty(dialog,closeDialog,{value: function()
  7219. {
  7220. var closeDialogfunction=OSF._OfficeAppFactory.getHostFacade()[OSF.DDA.DispIdHost.Methods.CloseDialog];
  7221. closeDialogfunction(arguments,targetId,eventDispatch,dialog)
  7222. }});
  7223. var addHandler=OSF.DDA.SyncMethodNames.AddMessageHandler.displayName;
  7224. OSF.OUtil.defineEnumerableProperty(dialog,addHandler,{value: function()
  7225. {
  7226. var syncMethodCall=OSF.DDA.SyncMethodCalls[OSF.DDA.SyncMethodNames.AddMessageHandler.id];
  7227. var callArgs=syncMethodCall.verifyAndExtractCall(arguments,dialog,eventDispatch);
  7228. var eventType=callArgs[Microsoft.Office.WebExtension.Parameters.EventType];
  7229. var handler=callArgs[Microsoft.Office.WebExtension.Parameters.Handler];
  7230. return eventDispatch.addEventHandlerAndFireQueuedEvent(eventType,handler)
  7231. }});
  7232. var sendMessage=OSF.DDA.SyncMethodNames.SendMessage.displayName;
  7233. OSF.OUtil.defineEnumerableProperty(dialog,sendMessage,{value: function()
  7234. {
  7235. var execute=OSF._OfficeAppFactory.getHostFacade()[OSF.DDA.DispIdHost.Methods.SendMessage];
  7236. return execute(arguments,eventDispatch,dialog)
  7237. }});
  7238. return dialog
  7239. },
  7240. checkCallArgs: function(callArgs, caller, stateInfo)
  7241. {
  7242. if(callArgs[Microsoft.Office.WebExtension.Parameters.Width] <=0)
  7243. callArgs[Microsoft.Office.WebExtension.Parameters.Width]=1;
  7244. if(callArgs[Microsoft.Office.WebExtension.Parameters.Width] > 100)
  7245. callArgs[Microsoft.Office.WebExtension.Parameters.Width]=99;
  7246. if(callArgs[Microsoft.Office.WebExtension.Parameters.Height] <=0)
  7247. callArgs[Microsoft.Office.WebExtension.Parameters.Height]=1;
  7248. if(callArgs[Microsoft.Office.WebExtension.Parameters.Height] > 100)
  7249. callArgs[Microsoft.Office.WebExtension.Parameters.Height]=99;
  7250. if(!callArgs[Microsoft.Office.WebExtension.Parameters.RequireHTTPs])
  7251. callArgs[Microsoft.Office.WebExtension.Parameters.RequireHTTPs]=true;
  7252. return callArgs
  7253. }
  7254. });
  7255. OSF.DDA.AsyncMethodCalls.define({
  7256. method: OSF.DDA.AsyncMethodNames.CloseAsync,
  7257. requiredArguments: [],
  7258. supportedOptions: [],
  7259. privateStateCallbacks: []
  7260. });
  7261. OSF.DDA.SyncMethodCalls.define({
  7262. method: OSF.DDA.SyncMethodNames.MessageParent,
  7263. requiredArguments: [{
  7264. name: Microsoft.Office.WebExtension.Parameters.MessageToParent,
  7265. types: ["string","number","boolean"]
  7266. }],
  7267. supportedOptions: []
  7268. });
  7269. OSF.DDA.SyncMethodCalls.define({
  7270. method: OSF.DDA.SyncMethodNames.AddMessageHandler,
  7271. requiredArguments: [{
  7272. name: Microsoft.Office.WebExtension.Parameters.EventType,
  7273. "enum": Microsoft.Office.WebExtension.EventType,
  7274. verify: function(eventType, caller, eventDispatch)
  7275. {
  7276. return eventDispatch.supportsEvent(eventType)
  7277. }
  7278. },{
  7279. name: Microsoft.Office.WebExtension.Parameters.Handler,
  7280. types: ["function"]
  7281. }],
  7282. supportedOptions: []
  7283. });
  7284. OSF.DDA.SyncMethodCalls.define({
  7285. method: OSF.DDA.SyncMethodNames.SendMessage,
  7286. requiredArguments: [{
  7287. name: Microsoft.Office.WebExtension.Parameters.MessageContent,
  7288. types: ["string"]
  7289. }],
  7290. supportedOptions: [],
  7291. privateStateCallbacks: []
  7292. });
  7293. OSF.OUtil.setNamespace("Marshaling",OSF.DDA);
  7294. OSF.OUtil.setNamespace("Dialog",OSF.DDA.Marshaling);
  7295. OSF.DDA.Marshaling.Dialog.DialogMessageReceivedEventKeys={
  7296. MessageType: "messageType",
  7297. MessageContent: "messageContent"
  7298. };
  7299. OSF.DDA.Marshaling.Dialog.DialogParentMessageReceivedEventKeys={
  7300. MessageType: "messageType",
  7301. MessageContent: "messageContent"
  7302. };
  7303. OSF.DDA.Marshaling.MessageParentKeys={MessageToParent: "messageToParent"};
  7304. OSF.DDA.Marshaling.DialogNotificationShownEventType={DialogNotificationShown: "dialogNotificationShown"};
  7305. OSF.DDA.Marshaling.SendMessageKeys={MessageContent: "messageContent"};
  7306. var OfficeExt;
  7307. (function(OfficeExt)
  7308. {
  7309. var WacCommonUICssManager;
  7310. (function(WacCommonUICssManager)
  7311. {
  7312. var hostType={
  7313. Excel: "excel",
  7314. Word: "word",
  7315. PowerPoint: "powerpoint",
  7316. Outlook: "outlook"
  7317. };
  7318. function getDialogCssManager(applicationHostType)
  7319. {
  7320. switch(applicationHostType)
  7321. {
  7322. case hostType.Excel:
  7323. case hostType.Word:
  7324. case hostType.PowerPoint:
  7325. case hostType.Outlook:
  7326. return new DefaultDialogCSSManager;
  7327. default:
  7328. return new DefaultDialogCSSManager
  7329. }
  7330. return null
  7331. }
  7332. WacCommonUICssManager.getDialogCssManager=getDialogCssManager;
  7333. var DefaultDialogCSSManager=function()
  7334. {
  7335. function DefaultDialogCSSManager()
  7336. {
  7337. this.overlayElementCSS=["position: absolute","top: 0","left: 0","width: 100%","height: 100%","background-color: rgba(198, 198, 198, 0.5)","z-index: 99998"];
  7338. this.dialogNotificationPanelCSS=["width: 100%","height: 120px","position: absolute","z-index: 99999","background-color: rgba(255, 255, 255, 1)","left: 0px","top: 50%","margin-top: -60px"];
  7339. this.dialogNotificationTextPanelCSS=["margin: 20px 30px","font-family: Segoe UI,Arial,Verdana,sans-serif","font-size: 14px","height: 40px"];
  7340. this.dialogNotificationButtonPanelCSS="margin:0px 25px";
  7341. this.buttonStyleCSS=["text-align: center","width: 70px","height: 25px","font-size: 14px","font-family: Segoe UI,Arial,Verdana,sans-serif","margin: 0px 5px","border-width: 1px","border-style: solid"]
  7342. }
  7343. DefaultDialogCSSManager.prototype.getOverlayElementCSS=function()
  7344. {
  7345. return this.overlayElementCSS.join(";")
  7346. };
  7347. DefaultDialogCSSManager.prototype.getDialogNotificationPanelCSS=function()
  7348. {
  7349. return this.dialogNotificationPanelCSS.join(";")
  7350. };
  7351. DefaultDialogCSSManager.prototype.getDialogNotificationTextPanelCSS=function()
  7352. {
  7353. return this.dialogNotificationTextPanelCSS.join(";")
  7354. };
  7355. DefaultDialogCSSManager.prototype.getDialogNotificationButtonPanelCSS=function()
  7356. {
  7357. return this.dialogNotificationButtonPanelCSS
  7358. };
  7359. DefaultDialogCSSManager.prototype.getDialogButtonCSS=function()
  7360. {
  7361. return this.buttonStyleCSS.join(";")
  7362. };
  7363. return DefaultDialogCSSManager
  7364. }();
  7365. WacCommonUICssManager.DefaultDialogCSSManager=DefaultDialogCSSManager
  7366. })(WacCommonUICssManager=OfficeExt.WacCommonUICssManager || (OfficeExt.WacCommonUICssManager={}))
  7367. })(OfficeExt || (OfficeExt={}));
  7368. var OfficeExt;
  7369. (function(OfficeExt)
  7370. {
  7371. var AddinNativeAction;
  7372. (function(AddinNativeAction)
  7373. {
  7374. var Dialog;
  7375. (function(Dialog)
  7376. {
  7377. var windowInstance=null;
  7378. var handler=null;
  7379. var overlayElement=null;
  7380. var dialogNotificationPanel=null;
  7381. var closeDialogKey="action=closeDialog";
  7382. var showDialogCallback=null;
  7383. var checkWindowDialogCloseInterval=-1;
  7384. var hostThemeButtonStyle=null;
  7385. var commonButtonBorderColor="#ababab";
  7386. var commonButtonBackgroundColor="#ffffff";
  7387. var commonEventInButtonBackgroundColor="#ccc";
  7388. var newWindowNotificationId="newWindowNotificaiton";
  7389. var registerDialogNotificationShownArgs={
  7390. dispId: OSF.DDA.EventDispId.dispidDialogNotificationShownInAddinEvent,
  7391. eventType: OSF.DDA.Marshaling.DialogNotificationShownEventType.DialogNotificationShown,
  7392. onComplete: null
  7393. };
  7394. function setHostThemeButtonStyle(args)
  7395. {
  7396. var hostThemeButtonStyleArgs=args.input;
  7397. if(hostThemeButtonStyleArgs !=null)
  7398. hostThemeButtonStyle={
  7399. HostButtonBorderColor: hostThemeButtonStyleArgs[OSF.HostThemeButtonStyleKeys.ButtonBorderColor],
  7400. HostButtonBackgroundColor: hostThemeButtonStyleArgs[OSF.HostThemeButtonStyleKeys.ButtonBackgroundColor]
  7401. };
  7402. args.completed()
  7403. }
  7404. Dialog.setHostThemeButtonStyle=setHostThemeButtonStyle;
  7405. function handleNewWindowDialog(dialogInfo)
  7406. {
  7407. try
  7408. {
  7409. var allowButtonKeyDownClick=false;
  7410. var ignoreButtonKeyDownClick=false;
  7411. var hostInfoObj=OSF._OfficeAppFactory.getInitializationHelper()._hostInfo;
  7412. var dialogCssManager=OfficeExt.WacCommonUICssManager.getDialogCssManager(hostInfoObj.hostType);
  7413. var notificationText=OSF.OUtil.formatString(Strings.OfficeOM.L_ShowWindowDialogNotification,OSF._OfficeAppFactory.getInitializationHelper()._appContext._addinName);
  7414. overlayElement=createOverlayElement(dialogCssManager);
  7415. document.body.insertBefore(overlayElement,document.body.firstChild);
  7416. dialogNotificationPanel=createNotificationPanel(dialogCssManager,notificationText);
  7417. dialogNotificationPanel.id=newWindowNotificationId;
  7418. var dialogNotificationButtonPanel=createButtonPanel(dialogCssManager);
  7419. var allowButton=createButtonControl(dialogCssManager,Strings.OfficeOM.L_ShowWindowDialogNotificationAllow);
  7420. var ignoreButton=createButtonControl(dialogCssManager,Strings.OfficeOM.L_ShowWindowDialogNotificationIgnore);
  7421. dialogNotificationButtonPanel.appendChild(allowButton);
  7422. dialogNotificationButtonPanel.appendChild(ignoreButton);
  7423. dialogNotificationPanel.appendChild(dialogNotificationButtonPanel);
  7424. document.body.insertBefore(dialogNotificationPanel,document.body.firstChild);
  7425. function allowButtonClickEventHandler()
  7426. {
  7427. showDialog(dialogInfo);
  7428. dismissDialogNotification()
  7429. }
  7430. allowButton.onclick=allowButtonClickEventHandler;
  7431. function ignoreButtonClickEventHandler()
  7432. {
  7433. function unregisterDialogNotificationShownEventCallback(status)
  7434. {
  7435. removeDialogNotificationElement();
  7436. setFocusOnFirstElement(status);
  7437. showDialogCallback(OSF.DDA.ErrorCodeManager.errorCodes.ooeEndUserIgnore)
  7438. }
  7439. registerDialogNotificationShownArgs.onComplete=unregisterDialogNotificationShownEventCallback;
  7440. OSF.DDA.WAC.Delegate.unregisterEventAsync(registerDialogNotificationShownArgs)
  7441. }
  7442. ignoreButton.onclick=ignoreButtonClickEventHandler;
  7443. allowButton.addEventListener("keydown",function(event)
  7444. {
  7445. if(event.shiftKey && event.keyCode==9)
  7446. {
  7447. handleButtonControlEventOut(allowButton);
  7448. handleButtonControlEventIn(ignoreButton);
  7449. ignoreButton.focus();
  7450. event.preventDefault();
  7451. event.stopPropagation()
  7452. }
  7453. else if(event.keyCode==13)
  7454. {
  7455. allowButtonKeyDownClick=true;
  7456. event.preventDefault();
  7457. event.stopPropagation()
  7458. }
  7459. },false);
  7460. allowButton.addEventListener("keyup",function(event)
  7461. {
  7462. if(event.keyCode==13 && allowButtonKeyDownClick)
  7463. {
  7464. allowButtonKeyDownClick=false;
  7465. allowButtonClickEventHandler();
  7466. event.preventDefault();
  7467. event.stopPropagation()
  7468. }
  7469. },false);
  7470. ignoreButton.addEventListener("keydown",function(event)
  7471. {
  7472. if(!event.shiftKey && event.keyCode==9)
  7473. {
  7474. handleButtonControlEventOut(ignoreButton);
  7475. handleButtonControlEventIn(allowButton);
  7476. allowButton.focus();
  7477. event.preventDefault();
  7478. event.stopPropagation()
  7479. }
  7480. else if(event.keyCode==13)
  7481. {
  7482. ignoreButtonKeyDownClick=true;
  7483. event.preventDefault();
  7484. event.stopPropagation()
  7485. }
  7486. },false);
  7487. ignoreButton.addEventListener("keyup",function(event)
  7488. {
  7489. if(event.keyCode==13 && ignoreButtonKeyDownClick)
  7490. {
  7491. ignoreButtonKeyDownClick=false;
  7492. ignoreButtonClickEventHandler();
  7493. event.preventDefault();
  7494. event.stopPropagation()
  7495. }
  7496. },false);
  7497. window.focus();
  7498. function registerDialogNotificationShownEventCallback(status)
  7499. {
  7500. allowButton.focus()
  7501. }
  7502. registerDialogNotificationShownArgs.onComplete=registerDialogNotificationShownEventCallback;
  7503. OSF.DDA.WAC.Delegate.registerEventAsync(registerDialogNotificationShownArgs)
  7504. }
  7505. catch(e)
  7506. {
  7507. if(OSF.AppTelemetry)
  7508. OSF.AppTelemetry.logAppException("Exception happens at new window dialog."+e);
  7509. showDialogCallback(OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError)
  7510. }
  7511. }
  7512. Dialog.handleNewWindowDialog=handleNewWindowDialog;
  7513. function closeDialog(callback)
  7514. {
  7515. try
  7516. {
  7517. if(windowInstance !=null)
  7518. {
  7519. var appDomains=OSF._OfficeAppFactory.getInitializationHelper()._appContext._appDomains;
  7520. if(appDomains)
  7521. for(var i=0; i < appDomains.length && appDomains[i].indexOf("://") !==-1; i++)
  7522. windowInstance.postMessage(closeDialogKey,appDomains[i]);
  7523. if(windowInstance !=null && !windowInstance.closed)
  7524. windowInstance.close();
  7525. window.removeEventListener("message",receiveMessage);
  7526. window.clearInterval(checkWindowDialogCloseInterval);
  7527. windowInstance=null;
  7528. callback(OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
  7529. }
  7530. else
  7531. callback(OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError)
  7532. }
  7533. catch(e)
  7534. {
  7535. if(OSF.AppTelemetry)
  7536. OSF.AppTelemetry.logAppException("Exception happens at close window dialog."+e);
  7537. callback(OSF.DDA.ErrorCodeManager.errorCodes.ooeInternalError)
  7538. }
  7539. }
  7540. Dialog.closeDialog=closeDialog;
  7541. function messageParent(params)
  7542. {
  7543. var message=params.hostCallArgs[Microsoft.Office.WebExtension.Parameters.MessageToParent];
  7544. var appDomains=OSF._OfficeAppFactory.getInitializationHelper()._appContext._appDomains;
  7545. if(appDomains)
  7546. for(var i=0; i < appDomains.length && appDomains[i].indexOf("://") !==-1; i++)
  7547. window.opener.postMessage(message,appDomains[i])
  7548. }
  7549. Dialog.messageParent=messageParent;
  7550. function registerMessageReceivedEvent()
  7551. {
  7552. function receiveCloseDialogMessage(event)
  7553. {
  7554. if(event.source==window.opener && event.data.indexOf(closeDialogKey) > -1)
  7555. window.close()
  7556. }
  7557. window.addEventListener("message",receiveCloseDialogMessage)
  7558. }
  7559. Dialog.registerMessageReceivedEvent=registerMessageReceivedEvent;
  7560. function setHandlerAndShowDialogCallback(onEventHandler, callback)
  7561. {
  7562. handler=onEventHandler;
  7563. showDialogCallback=callback
  7564. }
  7565. Dialog.setHandlerAndShowDialogCallback=setHandlerAndShowDialogCallback;
  7566. function escDismissDialogNotification()
  7567. {
  7568. if(dialogNotificationPanel && dialogNotificationPanel.id==newWindowNotificationId && showDialogCallback)
  7569. showDialogCallback(OSF.DDA.ErrorCodeManager.errorCodes.ooeEndUserIgnore);
  7570. dismissDialogNotification()
  7571. }
  7572. Dialog.escDismissDialogNotification=escDismissDialogNotification;
  7573. function receiveMessage(event)
  7574. {
  7575. if(event.source==windowInstance)
  7576. try
  7577. {
  7578. var dialogMessageReceivedArgs={};
  7579. dialogMessageReceivedArgs[OSF.DDA.Marshaling.Dialog.DialogMessageReceivedEventKeys.MessageType]=OSF.DialogMessageType.DialogMessageReceived;
  7580. dialogMessageReceivedArgs[OSF.DDA.Marshaling.Dialog.DialogMessageReceivedEventKeys.MessageContent]=event.data;
  7581. handler(dialogMessageReceivedArgs)
  7582. }
  7583. catch(e)
  7584. {
  7585. if(OSF.AppTelemetry)
  7586. OSF.AppTelemetry.logAppException("Error happened during receive message handler."+e)
  7587. }
  7588. }
  7589. function showDialog(dialogInfo)
  7590. {
  7591. var hostInfoObj=OSF._OfficeAppFactory.getInitializationHelper()._hostInfo;
  7592. var hostInfoVals=[hostInfoObj.hostType,hostInfoObj.hostPlatform,hostInfoObj.hostSpecificFileVersion,hostInfoObj.hostLocale,hostInfoObj.osfControlAppCorrelationId,"isDialog"];
  7593. var hostInfo=hostInfoVals.join("|");
  7594. var appContext=OSF._OfficeAppFactory.getInitializationHelper()._appContext;
  7595. var windowUrl=dialogInfo[OSF.ShowWindowDialogParameterKeys.Url];
  7596. var windowName=JSON.parse(window.name);
  7597. windowName[OSF.WindowNameItemKeys.HostInfo]=hostInfo;
  7598. windowName[OSF.WindowNameItemKeys.AppContext]=appContext;
  7599. var width=dialogInfo[OSF.ShowWindowDialogParameterKeys.Width] * appContext._clientWindowWidth / 100;
  7600. var height=dialogInfo[OSF.ShowWindowDialogParameterKeys.Height] * appContext._clientWindowHeight / 100;
  7601. var left=appContext._clientWindowWidth / 2 - width / 2;
  7602. var top=appContext._clientWindowHeight / 2 - height / 2;
  7603. var windowSpecs="width="+width+", height="+height+", left="+left+", top="+top+",channelmode=no,directories=no,fullscreen=no,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,titlebar=yes,toolbar=no";
  7604. windowInstance=window.open(windowUrl,OfficeExt.WACUtils.serializeObjectToString(windowName),windowSpecs);
  7605. window.addEventListener("message",receiveMessage);
  7606. function checkWindowClose()
  7607. {
  7608. try
  7609. {
  7610. if(windowInstance==null || windowInstance.closed)
  7611. {
  7612. window.clearInterval(checkWindowDialogCloseInterval);
  7613. window.removeEventListener("message",receiveMessage);
  7614. var dialogClosedArgs={};
  7615. dialogClosedArgs[OSF.DDA.Marshaling.Dialog.DialogMessageReceivedEventKeys.MessageType]=OSF.DialogMessageType.DialogClosed;
  7616. handler(dialogClosedArgs)
  7617. }
  7618. }
  7619. catch(e)
  7620. {
  7621. if(OSF.AppTelemetry)
  7622. OSF.AppTelemetry.logAppException("Error happened during check or handle window close."+e)
  7623. }
  7624. }
  7625. checkWindowDialogCloseInterval=window.setInterval(checkWindowClose,1e3);
  7626. if(showDialogCallback !=null)
  7627. showDialogCallback(OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess);
  7628. else if(OSF.AppTelemetry)
  7629. OSF.AppTelemetry.logAppException("showDialogCallback can not be null.")
  7630. }
  7631. function createButtonControl(dialogCssManager, buttonValue)
  7632. {
  7633. var buttonControl=document.createElement("input");
  7634. buttonControl.setAttribute("type","button");
  7635. buttonControl.style.cssText=dialogCssManager.getDialogButtonCSS();
  7636. buttonControl.style.borderColor=commonButtonBorderColor;
  7637. buttonControl.style.backgroundColor=commonButtonBackgroundColor;
  7638. buttonControl.setAttribute("value",buttonValue);
  7639. var buttonControlEventInHandler=function()
  7640. {
  7641. handleButtonControlEventIn(buttonControl)
  7642. };
  7643. var buttonControlEventOutHandler=function()
  7644. {
  7645. handleButtonControlEventOut(buttonControl)
  7646. };
  7647. buttonControl.addEventListener("mouseover",buttonControlEventInHandler);
  7648. buttonControl.addEventListener("focus",buttonControlEventInHandler);
  7649. buttonControl.addEventListener("mouseout",buttonControlEventOutHandler);
  7650. buttonControl.addEventListener("focusout",buttonControlEventOutHandler);
  7651. return buttonControl
  7652. }
  7653. function handleButtonControlEventIn(buttonControl)
  7654. {
  7655. if(hostThemeButtonStyle !=null)
  7656. {
  7657. buttonControl.style.borderColor=hostThemeButtonStyle.HostButtonBorderColor;
  7658. buttonControl.style.backgroundColor=hostThemeButtonStyle.HostButtonBackgroundColor
  7659. }
  7660. else if(OSF.CommonUI && OSF.CommonUI.HostButtonBorderColor && OSF.CommonUI.HostButtonBackgroundColor)
  7661. {
  7662. buttonControl.style.borderColor=OSF.CommonUI.HostButtonBorderColor;
  7663. buttonControl.style.backgroundColor=OSF.CommonUI.HostButtonBackgroundColor
  7664. }
  7665. else
  7666. buttonControl.style.backgroundColor=commonEventInButtonBackgroundColor
  7667. }
  7668. function handleButtonControlEventOut(buttonControl)
  7669. {
  7670. buttonControl.style.borderColor=commonButtonBorderColor;
  7671. buttonControl.style.backgroundColor=commonButtonBackgroundColor
  7672. }
  7673. function dismissDialogNotification()
  7674. {
  7675. function unregisterDialogNotificationShownEventCallback(status)
  7676. {
  7677. removeDialogNotificationElement();
  7678. setFocusOnFirstElement(status)
  7679. }
  7680. registerDialogNotificationShownArgs.onComplete=unregisterDialogNotificationShownEventCallback;
  7681. OSF.DDA.WAC.Delegate.unregisterEventAsync(registerDialogNotificationShownArgs)
  7682. }
  7683. function removeDialogNotificationElement()
  7684. {
  7685. if(dialogNotificationPanel !=null)
  7686. {
  7687. document.body.removeChild(dialogNotificationPanel);
  7688. dialogNotificationPanel=null
  7689. }
  7690. if(overlayElement !=null)
  7691. {
  7692. document.body.removeChild(overlayElement);
  7693. overlayElement=null
  7694. }
  7695. }
  7696. function createOverlayElement(dialogCssManager)
  7697. {
  7698. var overlayElement=document.createElement("div");
  7699. overlayElement.style.cssText=dialogCssManager.getOverlayElementCSS();
  7700. return overlayElement
  7701. }
  7702. function createNotificationPanel(dialogCssManager, notificationString)
  7703. {
  7704. var dialogNotificationPanel=document.createElement("div");
  7705. dialogNotificationPanel.style.cssText=dialogCssManager.getDialogNotificationPanelCSS();
  7706. var dialogNotificationTextPanel=document.createElement("div");
  7707. dialogNotificationTextPanel.innerText=notificationString;
  7708. dialogNotificationTextPanel.style.cssText=dialogCssManager.getDialogNotificationTextPanelCSS();
  7709. dialogNotificationPanel.appendChild(dialogNotificationTextPanel);
  7710. return dialogNotificationPanel
  7711. }
  7712. function createButtonPanel(dialogCssManager)
  7713. {
  7714. var dialogNotificationButtonPanel=document.createElement("div");
  7715. dialogNotificationButtonPanel.style.cssText=dialogCssManager.getDialogNotificationButtonPanelCSS();
  7716. if(document.documentElement.getAttribute("dir")=="rtl")
  7717. dialogNotificationButtonPanel.style.cssFloat="left";
  7718. else
  7719. dialogNotificationButtonPanel.style.cssFloat="right";
  7720. return dialogNotificationButtonPanel
  7721. }
  7722. function setFocusOnFirstElement(status)
  7723. {
  7724. if(status !=OSF.DDA.ErrorCodeManager.errorCodes.ooeSuccess)
  7725. {
  7726. var list=document.querySelectorAll(OSF._OfficeAppFactory.getInitializationHelper()._tabbableElements);
  7727. OSF.OUtil.focusToFirstTabbable(list,false)
  7728. }
  7729. }
  7730. })(Dialog=AddinNativeAction.Dialog || (AddinNativeAction.Dialog={}))
  7731. })(AddinNativeAction=OfficeExt.AddinNativeAction || (OfficeExt.AddinNativeAction={}))
  7732. })(OfficeExt || (OfficeExt={}));
  7733. OSF.DDA.WAC.Delegate.ParameterMap.define({
  7734. type: OSF.DDA.EventDispId.dispidDialogMessageReceivedEvent,
  7735. fromHost: [{
  7736. name: OSF.DDA.EventDescriptors.DialogMessageReceivedEvent,
  7737. value: OSF.DDA.WAC.Delegate.ParameterMap.self
  7738. }]
  7739. });
  7740. OSF.DDA.WAC.Delegate.ParameterMap.addComplexType(OSF.DDA.EventDescriptors.DialogMessageReceivedEvent);
  7741. OSF.DDA.WAC.Delegate.ParameterMap.define({
  7742. type: OSF.DDA.EventDescriptors.DialogMessageReceivedEvent,
  7743. fromHost: [{
  7744. name: OSF.DDA.PropertyDescriptors.MessageType,
  7745. value: OSF.DDA.Marshaling.Dialog.DialogMessageReceivedEventKeys.MessageType
  7746. },{
  7747. name: OSF.DDA.PropertyDescriptors.MessageContent,
  7748. value: OSF.DDA.Marshaling.Dialog.DialogMessageReceivedEventKeys.MessageContent
  7749. }]
  7750. });
  7751. OSF.DDA.WAC.Delegate.ParameterMap.define({
  7752. type: OSF.DDA.EventDispId.dispidDialogParentMessageReceivedEvent,
  7753. fromHost: [{
  7754. name: OSF.DDA.EventDescriptors.DialogParentMessageReceivedEvent,
  7755. value: OSF.DDA.WAC.Delegate.ParameterMap.self
  7756. }]
  7757. });
  7758. OSF.DDA.WAC.Delegate.ParameterMap.addComplexType(OSF.DDA.EventDescriptors.DialogParentMessageReceivedEvent);
  7759. OSF.DDA.WAC.Delegate.ParameterMap.define({
  7760. type: OSF.DDA.EventDescriptors.DialogParentMessageReceivedEvent,
  7761. fromHost: [{
  7762. name: OSF.DDA.PropertyDescriptors.MessageType,
  7763. value: OSF.DDA.Marshaling.Dialog.DialogParentMessageReceivedEventKeys.MessageType
  7764. },{
  7765. name: OSF.DDA.PropertyDescriptors.MessageContent,
  7766. value: OSF.DDA.Marshaling.Dialog.DialogParentMessageReceivedEventKeys.MessageContent
  7767. }]
  7768. });
  7769. OSF.DDA.WAC.Delegate.ParameterMap.define({
  7770. type: OSF.DDA.MethodDispId.dispidMessageParentMethod,
  7771. toHost: [{
  7772. name: Microsoft.Office.WebExtension.Parameters.MessageToParent,
  7773. value: OSF.DDA.Marshaling.MessageParentKeys.MessageToParent
  7774. }]
  7775. });
  7776. OSF.DDA.WAC.Delegate.ParameterMap.define({
  7777. type: OSF.DDA.MethodDispId.dispidSendMessageMethod,
  7778. toHost: [{
  7779. name: Microsoft.Office.WebExtension.Parameters.MessageContent,
  7780. value: OSF.DDA.Marshaling.SendMessageKeys.MessageContent
  7781. }]
  7782. });
  7783. OSF.DDA.WAC.Delegate.openDialog=function OSF_DDA_WAC_Delegate$OpenDialog(args)
  7784. {
  7785. var httpsIdentifyString="https://";
  7786. var httpIdentifyString="http://";
  7787. var dialogInfo=JSON.parse(args.targetId);
  7788. var callback=OSF.DDA.WAC.Delegate._getOnAfterRegisterEvent(true,args);
  7789. function showDialogCallback(status)
  7790. {
  7791. var payload={Error: status};
  7792. callback(Microsoft.Office.Common.InvokeResultCode.noError,payload)
  7793. }
  7794. if(OSF.DialogShownStatus.hasDialogShown)
  7795. {
  7796. showDialogCallback(OSF.DDA.ErrorCodeManager.errorCodes.ooeDialogAlreadyOpened);
  7797. return
  7798. }
  7799. var dialogUrl=dialogInfo[OSF.ShowWindowDialogParameterKeys.Url].toLowerCase();
  7800. if(dialogUrl==null || !dialogUrl.startsWith(httpsIdentifyString))
  7801. {
  7802. if(dialogUrl.startsWith(httpIdentifyString))
  7803. showDialogCallback(OSF.DDA.ErrorCodeManager.errorCodes.ooeRequireHTTPS);
  7804. else
  7805. showDialogCallback(OSF.DDA.ErrorCodeManager.errorCodes.ooeInvalidScheme);
  7806. return
  7807. }
  7808. if(!dialogInfo[OSF.ShowWindowDialogParameterKeys.DisplayInIframe])
  7809. {
  7810. OSF.DialogShownStatus.isWindowDialog=true;
  7811. OfficeExt.AddinNativeAction.Dialog.setHandlerAndShowDialogCallback(function OSF_DDA_WACDelegate$RegisterEventAsync_OnEvent(payload)
  7812. {
  7813. if(args.onEvent)
  7814. args.onEvent(payload);
  7815. if(OSF.AppTelemetry)
  7816. OSF.AppTelemetry.onEventDone(args.dispId)
  7817. },showDialogCallback);
  7818. OfficeExt.AddinNativeAction.Dialog.handleNewWindowDialog(dialogInfo)
  7819. }
  7820. else
  7821. {
  7822. OSF.DialogShownStatus.isWindowDialog=false;
  7823. OSF.DDA.WAC.Delegate.registerEventAsync(args)
  7824. }
  7825. };
  7826. OSF.DDA.WAC.Delegate.messageParent=function OSF_DDA_WAC_Delegate$MessageParent(args)
  7827. {
  7828. if(window.opener !=null)
  7829. OfficeExt.AddinNativeAction.Dialog.messageParent(args);
  7830. else
  7831. OSF.DDA.WAC.Delegate.executeAsync(args)
  7832. };
  7833. OSF.DDA.WAC.Delegate.sendMessage=function OSF_DDA_WAC_Delegate$SendMessage(args)
  7834. {
  7835. OSF.DDA.WAC.Delegate.executeAsync(args)
  7836. };
  7837. OSF.DDA.WAC.Delegate.closeDialog=function OSF_DDA_WAC_Delegate$CloseDialog(args)
  7838. {
  7839. var callback=OSF.DDA.WAC.Delegate._getOnAfterRegisterEvent(false,args);
  7840. function closeDialogCallback(status)
  7841. {
  7842. var payload={Error: status};
  7843. callback(Microsoft.Office.Common.InvokeResultCode.noError,payload)
  7844. }
  7845. if(!OSF.DialogShownStatus.hasDialogShown)
  7846. closeDialogCallback(OSF.DDA.ErrorCodeManager.errorCodes.ooeWebDialogClosed);
  7847. else if(OSF.DialogShownStatus.isWindowDialog)
  7848. {
  7849. if(args.onCalling)
  7850. args.onCalling();
  7851. OfficeExt.AddinNativeAction.Dialog.closeDialog(closeDialogCallback)
  7852. }
  7853. else
  7854. OSF.DDA.WAC.Delegate.unregisterEventAsync(args)
  7855. };
  7856. OSF.InitializationHelper.prototype.dismissDialogNotification=function OSF_InitializationHelper$dismissDialogNotification()
  7857. {
  7858. OfficeExt.AddinNativeAction.Dialog.escDismissDialogNotification()
  7859. };
  7860. OSF.InitializationHelper.prototype.registerMessageReceivedEventForWindowDialog=function OSF_InitializationHelper$registerMessageReceivedEventForWindowDialog()
  7861. {
  7862. OfficeExt.AddinNativeAction.Dialog.registerMessageReceivedEvent()
  7863. };
  7864. OSF.DDA.AsyncMethodNames.addNames({CloseContainerAsync: "closeContainer"});
  7865. var OfficeExt;
  7866. (function(OfficeExt)
  7867. {
  7868. var Container=function()
  7869. {
  7870. function Container(parameters){}
  7871. return Container
  7872. }();
  7873. OfficeExt.Container=Container
  7874. })(OfficeExt || (OfficeExt={}));
  7875. OSF.DDA.AsyncMethodCalls.define({
  7876. method: OSF.DDA.AsyncMethodNames.CloseContainerAsync,
  7877. requiredArguments: [],
  7878. supportedOptions: [],
  7879. privateStateCallbacks: []
  7880. });
  7881. OSF.DDA.WAC.Delegate.ParameterMap.define({
  7882. type: OSF.DDA.MethodDispId.dispidCloseContainerMethod,
  7883. fromHost: [],
  7884. toHost: []
  7885. });
  7886. OSF.OUtil.augmentList(Microsoft.Office.WebExtension.EventType,{OlkItemSelectedChanged: "olkItemSelectedChanged"});
  7887. OSF.OUtil.augmentList(OSF.DDA.EventDescriptors,{OlkItemSelectedData: "OlkItemSelectedData"});
  7888. OSF.DDA.OlkItemSelectedChangedEventArgs=function OSF_DDA_OlkItemSelectedChangedEventArgs(eventData)
  7889. {
  7890. OSF.OUtil.defineEnumerableProperties(this,{
  7891. type: {value: Microsoft.Office.WebExtension.EventType.OlkItemSelectedChanged},
  7892. initialData: {value: JSON.parse(eventData[OSF.DDA.EventDescriptors.OlkItemSelectedData][0])},
  7893. itemNumber: {value: JSON.parse(eventData[OSF.DDA.EventDescriptors.OlkItemSelectedData][1])}
  7894. })
  7895. };
  7896. OSF.DDA.WAC.Delegate.ParameterMap.define({
  7897. type: OSF.DDA.EventDispId.dispidOlkItemSelectedChangedEvent,
  7898. fromHost: [{
  7899. name: OSF.DDA.EventDescriptors.OlkItemSelectedData,
  7900. value: OSF.DDA.WAC.Delegate.ParameterMap.sourceData
  7901. }],
  7902. isComplexType: true
  7903. });
  7904. OSF.InitializationHelper.prototype.prepareRightBeforeWebExtensionInitialize=function OSF_InitializationHelper$prepareRightBeforeWebExtensionInitialize(appContext)
  7905. {
  7906. OSF.WebApp._UpdateLinksForHostAndXdmInfo()
  7907. };
  7908. OSF.InitializationHelper.prototype.prepareRightAfterWebExtensionInitialize=function()
  7909. {
  7910. var appCommandHandler=OfficeExt.AppCommand.AppCommandManager.instance();
  7911. appCommandHandler.initializeAndChangeOnce()
  7912. };
  7913. OSF.InitializationHelper.prototype.getInitializationReason=function OSF_InitializationHelper$getInitializationReason(appContext)
  7914. {
  7915. return appContext.get_reason()
  7916. };
  7917. var executeAsyncBase=OSF.DDA.WAC.Delegate.executeAsync;
  7918. OSF.DDA.WAC.Delegate.executeAsync=function OSF_DDA_WAC_Delegate$executeAsyncOverride(args)
  7919. {
  7920. var onCallingBase=args.onCalling;
  7921. args.onCalling=function OSF_DDA_WAC_Delegate$executeAsync$onCalling()
  7922. {
  7923. args.hostCallArgs=OSF.DDA.OutlookAppOm.addAdditionalArgs(args.dispId,args.hostCallArgs);
  7924. onCallingBase && onCallingBase()
  7925. };
  7926. executeAsyncBase(args)
  7927. };
  7928. OSF.InitializationHelper.prototype.prepareApiSurface=function OSF_InitializationHelper$prepareApiSurface(appContext)
  7929. {
  7930. var license=new OSF.DDA.License(appContext.get_eToken());
  7931. if(appContext.get_appName()==OSF.AppName.OutlookWebApp)
  7932. {
  7933. OSF.WebApp._UpdateLinksForHostAndXdmInfo();
  7934. this.initWebDialog(appContext);
  7935. OSF._OfficeAppFactory.setContext(new OSF.DDA.OutlookContext(appContext,this._settings,license,appContext.appOM));
  7936. OSF._OfficeAppFactory.setHostFacade(new OSF.DDA.DispIdHost.Facade(OSF.DDA.WAC.getDelegateMethods,OSF.DDA.WAC.Delegate.ParameterMap))
  7937. }
  7938. else
  7939. {
  7940. OfficeJsClient_OutlookWin32.prepareApiSurface(appContext);
  7941. OSF._OfficeAppFactory.setContext(new OSF.DDA.OutlookContext(appContext,this._settings,license,appContext.appOM,OSF.DDA.Theming ? OSF.DDA.Theming.getOfficeTheme : null,appContext.ui));
  7942. OSF._OfficeAppFactory.setHostFacade(new OSF.DDA.DispIdHost.Facade(OSF.DDA.DispIdHost.getClientDelegateMethods,OSF.DDA.SafeArray.Delegate.ParameterMap))
  7943. }
  7944. };
  7945. OSF.DDA.SettingsManager={
  7946. SerializedSettings: "serializedSettings",
  7947. DateJSONPrefix: "Date(",
  7948. DataJSONSuffix: ")",
  7949. serializeSettings: function OSF_DDA_SettingsManager$serializeSettings(settingsCollection)
  7950. {
  7951. var ret={};
  7952. for(var key in settingsCollection)
  7953. {
  7954. var value=settingsCollection[key];
  7955. try
  7956. {
  7957. if(JSON)
  7958. value=JSON.stringify(value,function dateReplacer(k, v)
  7959. {
  7960. return OSF.OUtil.isDate(this[k]) ? OSF.DDA.SettingsManager.DateJSONPrefix+this[k].getTime()+OSF.DDA.SettingsManager.DataJSONSuffix : v
  7961. });
  7962. else
  7963. value=Sys.Serialization.JavaScriptSerializer.serialize(value);
  7964. ret[key]=value
  7965. }
  7966. catch(ex){}
  7967. }
  7968. return ret
  7969. },
  7970. deserializeSettings: function OSF_DDA_SettingsManager$deserializeSettings(serializedSettings)
  7971. {
  7972. var ret={};
  7973. serializedSettings=serializedSettings || {};
  7974. for(var key in serializedSettings)
  7975. {
  7976. var value=serializedSettings[key];
  7977. try
  7978. {
  7979. if(JSON)
  7980. value=JSON.parse(value,function dateReviver(k, v)
  7981. {
  7982. var d;
  7983. if(typeof v==="string" && v && v.length > 6 && v.slice(0,5)===OSF.DDA.SettingsManager.DateJSONPrefix && v.slice(-1)===OSF.DDA.SettingsManager.DataJSONSuffix)
  7984. {
  7985. d=new Date(parseInt(v.slice(5,-1)));
  7986. if(d)
  7987. return d
  7988. }
  7989. return v
  7990. });
  7991. else
  7992. value=Sys.Serialization.JavaScriptSerializer.deserialize(value,true);
  7993. ret[key]=value
  7994. }
  7995. catch(ex){}
  7996. }
  7997. return ret
  7998. }
  7999. };
  8000. OSF.InitializationHelper.prototype.loadAppSpecificScriptAndCreateOM=function OSF_InitializationHelper$loadAppSpecificScriptAndCreateOM(appContext, appReady, basePath)
  8001. {
  8002. Type.registerNamespace("Microsoft.Office.WebExtension.MailboxEnums");
  8003. Microsoft.Office.WebExtension.MailboxEnums.EntityType={
  8004. MeetingSuggestion: "meetingSuggestion",
  8005. TaskSuggestion: "taskSuggestion",
  8006. Address: "address",
  8007. EmailAddress: "emailAddress",
  8008. Url: "url",
  8009. PhoneNumber: "phoneNumber",
  8010. Contact: "contact",
  8011. FlightReservations: "flightReservations",
  8012. ParcelDeliveries: "parcelDeliveries"
  8013. };
  8014. Microsoft.Office.WebExtension.MailboxEnums.ItemType={
  8015. Message: "message",
  8016. Appointment: "appointment"
  8017. };
  8018. Microsoft.Office.WebExtension.MailboxEnums.ResponseType={
  8019. None: "none",
  8020. Organizer: "organizer",
  8021. Tentative: "tentative",
  8022. Accepted: "accepted",
  8023. Declined: "declined"
  8024. };
  8025. Microsoft.Office.WebExtension.MailboxEnums.RecipientType={
  8026. Other: "other",
  8027. DistributionList: "distributionList",
  8028. User: "user",
  8029. ExternalUser: "externalUser"
  8030. };
  8031. Microsoft.Office.WebExtension.MailboxEnums.AttachmentType={
  8032. File: "file",
  8033. Item: "item",
  8034. Cloud: "cloud"
  8035. };
  8036. Microsoft.Office.WebExtension.MailboxEnums.BodyType={
  8037. Text: "text",
  8038. Html: "html"
  8039. };
  8040. Microsoft.Office.WebExtension.MailboxEnums.ItemNotificationMessageType={
  8041. ProgressIndicator: "progressIndicator",
  8042. InformationalMessage: "informationalMessage",
  8043. ErrorMessage: "errorMessage"
  8044. };
  8045. Microsoft.Office.WebExtension.CoercionType={
  8046. Text: "text",
  8047. Html: "html"
  8048. };
  8049. Microsoft.Office.WebExtension.MailboxEnums.UserProfileType={
  8050. Office365: "office365",
  8051. OutlookCom: "outlookCom",
  8052. Enterprise: "enterprise"
  8053. };
  8054. Microsoft.Office.WebExtension.MailboxEnums.RestVersion={
  8055. v1_0: "v1.0",
  8056. v2_0: "v2.0",
  8057. Beta: "beta"
  8058. };
  8059. Microsoft.Office.WebExtension.MailboxEnums.ModuleType={Addins: "addins"};
  8060. Type.registerNamespace("OSF.DDA");
  8061. var OSF=window["OSF"] || {};
  8062. OSF.DDA=OSF.DDA || {};
  8063. window["OSF"]["DDA"]["OutlookAppOm"]=OSF.DDA.OutlookAppOm=function(officeAppContext, targetWindow, appReadyCallback)
  8064. {
  8065. this.$$d_navigateToModuleAsync=Function.createDelegate(this,this.navigateToModuleAsync);
  8066. this.$$d_displayPersonaCardAsync=Function.createDelegate(this,this.displayPersonaCardAsync);
  8067. this.$$d_displayNewMessageFormApi=Function.createDelegate(this,this.displayNewMessageFormApi);
  8068. this.$$d__displayNewAppointmentFormApi$p$0=Function.createDelegate(this,this._displayNewAppointmentFormApi$p$0);
  8069. this.$$d_windowOpenOverrideHandler=Function.createDelegate(this,this.windowOpenOverrideHandler);
  8070. this.$$d__getRestUrl$p$0=Function.createDelegate(this,this._getRestUrl$p$0);
  8071. this.$$d__getEwsUrl$p$0=Function.createDelegate(this,this._getEwsUrl$p$0);
  8072. this.$$d__getDiagnostics$p$0=Function.createDelegate(this,this._getDiagnostics$p$0);
  8073. this.$$d__getUserProfile$p$0=Function.createDelegate(this,this._getUserProfile$p$0);
  8074. this.$$d__getItem$p$0=Function.createDelegate(this,this._getItem$p$0);
  8075. this.$$d__callAppReadyCallback$p$0=Function.createDelegate(this,this._callAppReadyCallback$p$0);
  8076. this.$$d__getInitialDataResponseHandler$p$0=Function.createDelegate(this,this._getInitialDataResponseHandler$p$0);
  8077. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p=this;
  8078. this._officeAppContext$p$0=officeAppContext;
  8079. this._appReadyCallback$p$0=appReadyCallback;
  8080. var $$t_4=this;
  8081. var stringLoadedCallback=function()
  8082. {
  8083. if(appReadyCallback)
  8084. if(!officeAppContext["get_isDialog"]())
  8085. $$t_4.invokeHostMethod(1,null,$$t_4.$$d__getInitialDataResponseHandler$p$0);
  8086. else
  8087. window.setTimeout($$t_4.$$d__callAppReadyCallback$p$0,0)
  8088. };
  8089. if(this._areStringsLoaded$p$0())
  8090. stringLoadedCallback();
  8091. else
  8092. this._loadLocalizedScript$p$0(stringLoadedCallback)
  8093. };
  8094. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i=function(currentPermissionLevel)
  8095. {
  8096. if(!currentPermissionLevel)
  8097. throw Error.create(window["_u"]["ExtensibilityStrings"]["l_ElevatedPermissionNeeded_Text"]);
  8098. };
  8099. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i=function(value, minValue, maxValue, argumentName)
  8100. {
  8101. if(value < minValue || value > maxValue)
  8102. throw Error.argumentOutOfRange(argumentName);
  8103. };
  8104. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidModule$p=function(module)
  8105. {
  8106. if($h.ScriptHelpers.isNullOrUndefined(module))
  8107. throw Error.argumentNull("module");
  8108. else if(module==="")
  8109. throw Error.argument("module","module cannot be empty.");
  8110. if(module !==window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ModuleType"]["Addins"])
  8111. throw Error.notImplemented(String.format("API not supported for module '{0}'",module));
  8112. };
  8113. window["OSF"]["DDA"]["OutlookAppOm"]._getHtmlBody$p=function(data)
  8114. {
  8115. var htmlBody="";
  8116. if("htmlBody" in data)
  8117. {
  8118. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidHtmlBody$p(data["htmlBody"]);
  8119. htmlBody=data["htmlBody"]
  8120. }
  8121. return htmlBody
  8122. };
  8123. window["OSF"]["DDA"]["OutlookAppOm"]._getAttachments$p=function(data)
  8124. {
  8125. var attachments=[];
  8126. if("attachments" in data)
  8127. {
  8128. attachments=data["attachments"];
  8129. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentsArray$p(attachments)
  8130. }
  8131. return attachments
  8132. };
  8133. window["OSF"]["DDA"]["OutlookAppOm"]._getOptionsAndCallback$p=function(data)
  8134. {
  8135. var args=[];
  8136. if("options" in data)
  8137. args[0]=data["options"];
  8138. if("callback" in data)
  8139. args[args["length"]]=data["callback"];
  8140. return args
  8141. };
  8142. window["OSF"]["DDA"]["OutlookAppOm"]._createAttachmentsDataForHost$p=function(attachments)
  8143. {
  8144. var attachmentsData=new Array(0);
  8145. if(Array["isInstanceOfType"](attachments))
  8146. for(var i=0; i < attachments["length"]; i++)
  8147. if(Object["isInstanceOfType"](attachments[i]))
  8148. {
  8149. var attachment=attachments[i];
  8150. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachment$p(attachment);
  8151. attachmentsData[i]=window["OSF"]["DDA"]["OutlookAppOm"]._createAttachmentData$p(attachment)
  8152. }
  8153. else
  8154. throw Error.argument("attachments");
  8155. return attachmentsData
  8156. };
  8157. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidHtmlBody$p=function(htmlBody)
  8158. {
  8159. if(!String["isInstanceOfType"](htmlBody))
  8160. throw Error.argument("htmlBody");
  8161. if($h.ScriptHelpers.isNullOrUndefined(htmlBody))
  8162. throw Error.argument("htmlBody");
  8163. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(htmlBody.length,0,window["OSF"]["DDA"]["OutlookAppOm"].maxBodyLength,"htmlBody")
  8164. };
  8165. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentsArray$p=function(attachments)
  8166. {
  8167. if(!Array["isInstanceOfType"](attachments))
  8168. throw Error.argument("attachments");
  8169. };
  8170. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachment$p=function(attachment)
  8171. {
  8172. if(!Object["isInstanceOfType"](attachment))
  8173. throw Error.argument("attachments");
  8174. if(!("type" in attachment) || !("name" in attachment))
  8175. throw Error.argument("attachments");
  8176. if(!("url" in attachment || "itemId" in attachment))
  8177. throw Error.argument("attachments");
  8178. };
  8179. window["OSF"]["DDA"]["OutlookAppOm"]._createAttachmentData$p=function(attachment)
  8180. {
  8181. var attachmentData=null;
  8182. if(attachment["type"]==="file")
  8183. {
  8184. var url=attachment["url"];
  8185. var name=attachment["name"];
  8186. var isInline=$h.ScriptHelpers.isValueTrue(attachment["isInline"]);
  8187. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentUrlOrName$p(url,name);
  8188. attachmentData=window["OSF"]["DDA"]["OutlookAppOm"]._createFileAttachmentData$p(url,name,isInline)
  8189. }
  8190. else if(attachment["type"]==="item")
  8191. {
  8192. var itemId=window["OSF"]["DDA"]["OutlookAppOm"].getItemIdBasedOnHost(attachment["itemId"]);
  8193. var name=attachment["name"];
  8194. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentItemIdOrName$p(itemId,name);
  8195. attachmentData=window["OSF"]["DDA"]["OutlookAppOm"]._createItemAttachmentData$p(itemId,name)
  8196. }
  8197. else
  8198. throw Error.argument("attachments");
  8199. return attachmentData
  8200. };
  8201. window["OSF"]["DDA"]["OutlookAppOm"]._createFileAttachmentData$p=function(url, name, isInline)
  8202. {
  8203. return["file",name,url,isInline]
  8204. };
  8205. window["OSF"]["DDA"]["OutlookAppOm"]._createItemAttachmentData$p=function(itemId, name)
  8206. {
  8207. return["item",name,itemId]
  8208. };
  8209. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentUrlOrName$p=function(url, name)
  8210. {
  8211. if(!String["isInstanceOfType"](url) || !String["isInstanceOfType"](name))
  8212. throw Error.argument("attachments");
  8213. if(url.length > 2048)
  8214. throw Error.argumentOutOfRange("attachments",url.length,window["_u"]["ExtensibilityStrings"]["l_AttachmentUrlTooLong_Text"]);
  8215. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentName$p(name)
  8216. };
  8217. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentItemIdOrName$p=function(itemId, name)
  8218. {
  8219. if(!String["isInstanceOfType"](itemId) || !String["isInstanceOfType"](name))
  8220. throw Error.argument("attachments");
  8221. if(itemId.length > 200)
  8222. throw Error.argumentOutOfRange("attachments",itemId.length,window["_u"]["ExtensibilityStrings"]["l_AttachmentItemIdTooLong_Text"]);
  8223. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentName$p(name)
  8224. };
  8225. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidAttachmentName$p=function(name)
  8226. {
  8227. if(name.length > 255)
  8228. throw Error.argumentOutOfRange("attachments",name.length,window["_u"]["ExtensibilityStrings"]["l_AttachmentNameTooLong_Text"]);
  8229. };
  8230. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidRestVersion$p=function(restVersion)
  8231. {
  8232. if(!restVersion)
  8233. throw Error.argumentNull("restVersion");
  8234. if(restVersion !==window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RestVersion"]["v1_0"] && restVersion !==window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RestVersion"]["v2_0"] && restVersion !==window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RestVersion"]["Beta"])
  8235. throw Error.argument("restVersion");
  8236. };
  8237. window["OSF"]["DDA"]["OutlookAppOm"].getItemIdBasedOnHost=function(itemId)
  8238. {
  8239. if(window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._initialData$p$0 && window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._initialData$p$0.get__isRestIdSupported$i$0())
  8240. return window["OSF"]["DDA"]["OutlookAppOm"]._instance$p["convertToRestId"](itemId,window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RestVersion"]["v1_0"]);
  8241. return window["OSF"]["DDA"]["OutlookAppOm"]._instance$p["convertToEwsId"](itemId,window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RestVersion"]["v1_0"])
  8242. };
  8243. window["OSF"]["DDA"]["OutlookAppOm"]["addAdditionalArgs"]=function(dispid, data)
  8244. {
  8245. return data
  8246. };
  8247. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnArgumentType$p=function(value, expectedType, argumentName)
  8248. {
  8249. if(Object["getType"](value) !==expectedType)
  8250. throw Error.argumentType(argumentName);
  8251. };
  8252. window["OSF"]["DDA"]["OutlookAppOm"]._validateOptionalStringParameter$p=function(value, minLength, maxLength, name)
  8253. {
  8254. if($h.ScriptHelpers.isNullOrUndefined(value))
  8255. return;
  8256. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnArgumentType$p(value,String,name);
  8257. var stringValue=value;
  8258. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(stringValue.length,minLength,maxLength,name)
  8259. };
  8260. window["OSF"]["DDA"]["OutlookAppOm"]._convertRecipientArrayParameterForOutlookForDisplayApi$p=function(array)
  8261. {
  8262. return array ? array["join"](";") : null
  8263. };
  8264. window["OSF"]["DDA"]["OutlookAppOm"]._convertComposeEmailDictionaryParameterForSetApi$p=function(recipients)
  8265. {
  8266. if(!recipients)
  8267. return null;
  8268. var results=new Array(recipients["length"]);
  8269. for(var i=0; i < recipients["length"]; i++)
  8270. results[i]=[recipients[i]["address"],recipients[i]["name"]];
  8271. return results
  8272. };
  8273. window["OSF"]["DDA"]["OutlookAppOm"]._validateAndNormalizeRecipientEmails$p=function(emailset, name)
  8274. {
  8275. if($h.ScriptHelpers.isNullOrUndefined(emailset))
  8276. return null;
  8277. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnArgumentType$p(emailset,Array,name);
  8278. var originalAttendees=emailset;
  8279. var updatedAttendees=null;
  8280. var normalizationNeeded=false;
  8281. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(originalAttendees["length"],0,window["OSF"]["DDA"]["OutlookAppOm"]._maxRecipients$p,String.format("{0}.length",name));
  8282. for(var i=0; i < originalAttendees["length"]; i++)
  8283. if($h.EmailAddressDetails["isInstanceOfType"](originalAttendees[i]))
  8284. {
  8285. normalizationNeeded=true;
  8286. break
  8287. }
  8288. if(normalizationNeeded)
  8289. updatedAttendees=[];
  8290. for(var i=0; i < originalAttendees["length"]; i++)
  8291. if(normalizationNeeded)
  8292. {
  8293. updatedAttendees[i]=$h.EmailAddressDetails["isInstanceOfType"](originalAttendees[i]) ? originalAttendees[i]["emailAddress"] : originalAttendees[i];
  8294. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnArgumentType$p(updatedAttendees[i],String,String.format("{0}[{1}]",name,i))
  8295. }
  8296. else
  8297. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnArgumentType$p(originalAttendees[i],String,String.format("{0}[{1}]",name,i));
  8298. return updatedAttendees
  8299. };
  8300. OSF.DDA.OutlookAppOm.prototype={
  8301. _initialData$p$0: null,
  8302. _item$p$0: null,
  8303. _userProfile$p$0: null,
  8304. _diagnostics$p$0: null,
  8305. _officeAppContext$p$0: null,
  8306. _appReadyCallback$p$0: null,
  8307. _clientEndPoint$p$0: null,
  8308. _hostItemType$p$0: 0,
  8309. _supportsPersistence$p$0: false,
  8310. _additionalOutlookParams$p$0: null,
  8311. get_clientEndPoint: function()
  8312. {
  8313. if(!this._clientEndPoint$p$0)
  8314. this._clientEndPoint$p$0=OSF._OfficeAppFactory["getClientEndPoint"]();
  8315. return this._clientEndPoint$p$0
  8316. },
  8317. set_clientEndPoint: function(value)
  8318. {
  8319. this._clientEndPoint$p$0=value;
  8320. return value
  8321. },
  8322. get_initialData: function()
  8323. {
  8324. return this._initialData$p$0
  8325. },
  8326. get__appName$i$0: function()
  8327. {
  8328. return this._officeAppContext$p$0["get_appName"]()
  8329. },
  8330. get_additionalOutlookParams: function()
  8331. {
  8332. return this._additionalOutlookParams$p$0
  8333. },
  8334. windowOpenOverrideHandler: function(url, targetName, features, replace)
  8335. {
  8336. this.invokeHostMethod(403,{launchUrl: url},null)
  8337. },
  8338. createAsyncResult: function(value, errorCode, detailedErrorCode, userContext, errorMessage)
  8339. {
  8340. var initArgs={};
  8341. var errorArgs=null;
  8342. initArgs[OSF.DDA.AsyncResultEnum.Properties["Value"]]=value;
  8343. initArgs[OSF.DDA.AsyncResultEnum.Properties["Context"]]=userContext;
  8344. if(0 !==errorCode)
  8345. {
  8346. errorArgs={};
  8347. var errorProperties=$h.OutlookErrorManager.getErrorArgs(detailedErrorCode);
  8348. errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties["Name"]]=errorProperties["name"];
  8349. errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties["Message"]]=!errorMessage ? errorProperties["message"] : errorMessage;
  8350. errorArgs[OSF.DDA.AsyncResultEnum.ErrorProperties["Code"]]=detailedErrorCode
  8351. }
  8352. return new OSF.DDA.AsyncResult(initArgs,errorArgs)
  8353. },
  8354. _throwOnMethodCallForInsufficientPermission$i$0: function(requiredPermissionLevel, methodName)
  8355. {
  8356. if(this._initialData$p$0._permissionLevel$p$0 < requiredPermissionLevel)
  8357. throw Error.create(String.format(window["_u"]["ExtensibilityStrings"]["l_ElevatedPermissionNeededForMethod_Text"],methodName));
  8358. },
  8359. _displayReplyForm$i$0: function(obj)
  8360. {
  8361. this._displayReplyFormHelper$p$0(obj,false)
  8362. },
  8363. _displayReplyAllForm$i$0: function(obj)
  8364. {
  8365. this._displayReplyFormHelper$p$0(obj,true)
  8366. },
  8367. _displayReplyFormHelper$p$0: function(obj, isReplyAll)
  8368. {
  8369. if(String["isInstanceOfType"](obj))
  8370. this._doDisplayReplyForm$p$0(obj,isReplyAll);
  8371. else if(Object["isInstanceOfType"](obj) && Object.getTypeName(obj)==="Object")
  8372. this._doDisplayReplyFormWithAttachments$p$0(obj,isReplyAll);
  8373. else
  8374. throw Error.argumentType();
  8375. },
  8376. _doDisplayReplyForm$p$0: function(htmlBody, isReplyAll)
  8377. {
  8378. if(!$h.ScriptHelpers.isNullOrUndefined(htmlBody))
  8379. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(htmlBody.length,0,window["OSF"]["DDA"]["OutlookAppOm"].maxBodyLength,"htmlBody");
  8380. this.invokeHostMethod(isReplyAll ? 11 : 10,{htmlBody: htmlBody},null)
  8381. },
  8382. _doDisplayReplyFormWithAttachments$p$0: function(data, isReplyAll)
  8383. {
  8384. var htmlBody=window["OSF"]["DDA"]["OutlookAppOm"]._getHtmlBody$p(data);
  8385. var attachments=window["OSF"]["DDA"]["OutlookAppOm"]._getAttachments$p(data);
  8386. var parameters=$h.CommonParameters.parse(window["OSF"]["DDA"]["OutlookAppOm"]._getOptionsAndCallback$p(data),false);
  8387. var $$t_6=this;
  8388. this._standardInvokeHostMethod$i$0(isReplyAll ? 31 : 30,{
  8389. htmlBody: htmlBody,
  8390. attachments: window["OSF"]["DDA"]["OutlookAppOm"]._createAttachmentsDataForHost$p(attachments)
  8391. },function(rawInput)
  8392. {
  8393. return rawInput
  8394. },parameters._asyncContext$p$0,parameters._callback$p$0)
  8395. },
  8396. _standardInvokeHostMethod$i$0: function(dispid, data, format, userContext, callback)
  8397. {
  8398. var $$t_B=this;
  8399. this.invokeHostMethod(dispid,data,function(resultCode, response)
  8400. {
  8401. if(callback)
  8402. {
  8403. var asyncResult=null;
  8404. if(Object["isInstanceOfType"](response))
  8405. {
  8406. var responseDictionary=response;
  8407. if("error" in responseDictionary || "data" in responseDictionary || "errorCode" in responseDictionary)
  8408. if(!responseDictionary["error"])
  8409. {
  8410. var formattedData=format ? format(responseDictionary["data"]) : responseDictionary["data"];
  8411. asyncResult=$$t_B.createAsyncResult(formattedData,0,0,userContext,null)
  8412. }
  8413. else
  8414. {
  8415. var errorCode=responseDictionary["errorCode"];
  8416. asyncResult=$$t_B.createAsyncResult(null,1,errorCode,userContext,null)
  8417. }
  8418. }
  8419. if(!asyncResult && resultCode)
  8420. asyncResult=$$t_B.createAsyncResult(null,1,9002,userContext,null);
  8421. callback(asyncResult)
  8422. }
  8423. })
  8424. },
  8425. invokeHostMethod: function(dispid, data, responseCallback)
  8426. {
  8427. if(64===this._officeAppContext$p$0["get_appName"]())
  8428. {
  8429. var args={ApiParams: data};
  8430. args["MethodData"]={
  8431. ControlId: OSF._OfficeAppFactory["getId"](),
  8432. DispatchId: dispid
  8433. };
  8434. args=window["OSF"]["DDA"]["OutlookAppOm"]["addAdditionalArgs"](dispid,args);
  8435. if(dispid===1)
  8436. this.get_clientEndPoint()["invoke"]("GetInitialData",responseCallback,args);
  8437. else
  8438. this.get_clientEndPoint()["invoke"]("ExecuteMethod",responseCallback,args)
  8439. }
  8440. else if(!this._isOwaOnlyMethod$p$0(dispid))
  8441. {
  8442. var executeParameters=this._convertToOutlookParameters$p$0(dispid,data);
  8443. var $$t_B=this;
  8444. OSF.ClientHostController["execute"](dispid,executeParameters,function(nativeData, resultCode)
  8445. {
  8446. if(responseCallback)
  8447. {
  8448. var responseData=nativeData.toArray();
  8449. var rawData=window["JSON"]["parse"](responseData[0]);
  8450. if(Object["isInstanceOfType"](rawData))
  8451. {
  8452. var deserializedData=rawData;
  8453. if(responseData["length"] > 1 && responseData[1])
  8454. {
  8455. deserializedData["error"]=true;
  8456. deserializedData["errorCode"]=responseData[1]
  8457. }
  8458. else
  8459. deserializedData["error"]=false;
  8460. responseCallback(resultCode,deserializedData)
  8461. }
  8462. else if(Number["isInstanceOfType"](rawData))
  8463. {
  8464. var returnDict={};
  8465. returnDict["error"]=true;
  8466. returnDict["errorCode"]=rawData;
  8467. responseCallback(resultCode,returnDict)
  8468. }
  8469. else
  8470. throw Error.notImplemented("Return data type from host must be Dictionary or int");
  8471. }
  8472. })
  8473. }
  8474. else if(responseCallback)
  8475. responseCallback(-2,null)
  8476. },
  8477. _dictionaryToDate$i$0: function(input)
  8478. {
  8479. var retValue=new Date(input["year"],input["month"],input["date"],input["hours"],input["minutes"],input["seconds"],!input["milliseconds"] ? 0 : input["milliseconds"]);
  8480. if(window["isNaN"](retValue["getTime"]()))
  8481. throw Error.format(window["_u"]["ExtensibilityStrings"]["l_InvalidDate_Text"]);
  8482. return retValue
  8483. },
  8484. _dateToDictionary$i$0: function(input)
  8485. {
  8486. var retValue={};
  8487. retValue["month"]=input["getMonth"]();
  8488. retValue["date"]=input["getDate"]();
  8489. retValue["year"]=input["getFullYear"]();
  8490. retValue["hours"]=input["getHours"]();
  8491. retValue["minutes"]=input["getMinutes"]();
  8492. retValue["seconds"]=input["getSeconds"]();
  8493. retValue["milliseconds"]=input["getMilliseconds"]();
  8494. return retValue
  8495. },
  8496. _isOwaOnlyMethod$p$0: function(dispId)
  8497. {
  8498. switch(dispId)
  8499. {
  8500. case 402:
  8501. case 401:
  8502. case 400:
  8503. case 403:
  8504. return true;
  8505. default:
  8506. return false
  8507. }
  8508. },
  8509. isOutlook16OrGreater: function()
  8510. {
  8511. var hostVersion=this._initialData$p$0.get__hostVersion$i$0();
  8512. var endIndex=0;
  8513. var majorVersionNumber=0;
  8514. if(hostVersion)
  8515. {
  8516. endIndex=hostVersion.indexOf(".");
  8517. majorVersionNumber=window["parseInt"](hostVersion.substring(0,endIndex))
  8518. }
  8519. return majorVersionNumber >=16
  8520. },
  8521. _convertToOutlookParameters$p$0: function(dispid, data)
  8522. {
  8523. var executeParameters=null;
  8524. switch(dispid)
  8525. {
  8526. case 1:
  8527. case 2:
  8528. case 12:
  8529. case 3:
  8530. case 14:
  8531. case 18:
  8532. case 26:
  8533. case 32:
  8534. case 41:
  8535. case 34:
  8536. break;
  8537. case 4:
  8538. var jsonProperty=window["JSON"]["stringify"](data["customProperties"]);
  8539. executeParameters=[jsonProperty];
  8540. break;
  8541. case 5:
  8542. executeParameters=[data["body"]];
  8543. break;
  8544. case 8:
  8545. case 9:
  8546. executeParameters=[data["itemId"]];
  8547. break;
  8548. case 7:
  8549. executeParameters=[window["OSF"]["DDA"]["OutlookAppOm"]._convertRecipientArrayParameterForOutlookForDisplayApi$p(data["requiredAttendees"]),window["OSF"]["DDA"]["OutlookAppOm"]._convertRecipientArrayParameterForOutlookForDisplayApi$p(data["optionalAttendees"]),data["start"],data["end"],data["location"],window["OSF"]["DDA"]["OutlookAppOm"]._convertRecipientArrayParameterForOutlookForDisplayApi$p(data["resources"]),data["subject"],data["body"]];
  8550. break;
  8551. case 44:
  8552. executeParameters=[window["OSF"]["DDA"]["OutlookAppOm"]._convertRecipientArrayParameterForOutlookForDisplayApi$p(data["toRecipients"]),window["OSF"]["DDA"]["OutlookAppOm"]._convertRecipientArrayParameterForOutlookForDisplayApi$p(data["ccRecipients"]),window["OSF"]["DDA"]["OutlookAppOm"]._convertRecipientArrayParameterForOutlookForDisplayApi$p(data["bccRecipients"]),data["subject"],data["htmlBody"],data["attachments"]];
  8553. break;
  8554. case 43:
  8555. executeParameters=[data["ewsIdOrEmail"]];
  8556. break;
  8557. case 45:
  8558. executeParameters=[data["module"],data["queryString"]];
  8559. break;
  8560. case 40:
  8561. executeParameters=[data["extensionId"],data["consentState"]];
  8562. break;
  8563. case 11:
  8564. case 10:
  8565. executeParameters=[data["htmlBody"]];
  8566. break;
  8567. case 31:
  8568. case 30:
  8569. executeParameters=[data["htmlBody"],data["attachments"]];
  8570. break;
  8571. case 23:
  8572. case 13:
  8573. case 38:
  8574. case 29:
  8575. executeParameters=[data["data"],data["coercionType"]];
  8576. break;
  8577. case 37:
  8578. case 28:
  8579. executeParameters=[data["coercionType"]];
  8580. break;
  8581. case 17:
  8582. executeParameters=[data["subject"]];
  8583. break;
  8584. case 15:
  8585. executeParameters=[data["recipientField"]];
  8586. break;
  8587. case 22:
  8588. case 21:
  8589. executeParameters=[data["recipientField"],window["OSF"]["DDA"]["OutlookAppOm"]._convertComposeEmailDictionaryParameterForSetApi$p(data["recipientArray"])];
  8590. break;
  8591. case 19:
  8592. executeParameters=[data["itemId"],data["name"]];
  8593. break;
  8594. case 16:
  8595. executeParameters=[data["uri"],data["name"],data["isInline"]];
  8596. break;
  8597. case 20:
  8598. executeParameters=[data["attachmentIndex"]];
  8599. break;
  8600. case 25:
  8601. executeParameters=[data["TimeProperty"],data["time"]];
  8602. break;
  8603. case 24:
  8604. executeParameters=[data["TimeProperty"]];
  8605. break;
  8606. case 27:
  8607. executeParameters=[data["location"]];
  8608. break;
  8609. case 33:
  8610. case 35:
  8611. executeParameters=[data["key"],data["type"],data["persistent"],data["message"],data["icon"]];
  8612. break;
  8613. case 36:
  8614. executeParameters=[data["key"]];
  8615. break;
  8616. default:
  8617. Sys.Debug.fail("Unexpected method dispid");
  8618. break
  8619. }
  8620. if(this._supportsPersistence$p$0)
  8621. if(!executeParameters)
  8622. executeParameters=[window["JSON"]["stringify"](this._additionalOutlookParams$p$0)];
  8623. else
  8624. executeParameters["push"](window["JSON"]["stringify"](this._additionalOutlookParams$p$0));
  8625. return executeParameters
  8626. },
  8627. _displayNewAppointmentFormApi$p$0: function(parameters)
  8628. {
  8629. var normalizedRequiredAttendees=window["OSF"]["DDA"]["OutlookAppOm"]._validateAndNormalizeRecipientEmails$p(parameters["requiredAttendees"],"requiredAttendees");
  8630. var normalizedOptionalAttendees=window["OSF"]["DDA"]["OutlookAppOm"]._validateAndNormalizeRecipientEmails$p(parameters["optionalAttendees"],"optionalAttendees");
  8631. window["OSF"]["DDA"]["OutlookAppOm"]._validateOptionalStringParameter$p(parameters["location"],0,window["OSF"]["DDA"]["OutlookAppOm"]._maxLocationLength$p,"location");
  8632. window["OSF"]["DDA"]["OutlookAppOm"]._validateOptionalStringParameter$p(parameters["body"],0,window["OSF"]["DDA"]["OutlookAppOm"].maxBodyLength,"body");
  8633. window["OSF"]["DDA"]["OutlookAppOm"]._validateOptionalStringParameter$p(parameters["subject"],0,window["OSF"]["DDA"]["OutlookAppOm"]._maxSubjectLength$p,"subject");
  8634. if(!$h.ScriptHelpers.isNullOrUndefined(parameters["start"]))
  8635. {
  8636. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnArgumentType$p(parameters["start"],Date,"start");
  8637. var startDateTime=parameters["start"];
  8638. parameters["start"]=startDateTime["getTime"]();
  8639. if(!$h.ScriptHelpers.isNullOrUndefined(parameters["end"]))
  8640. {
  8641. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnArgumentType$p(parameters["end"],Date,"end");
  8642. var endDateTime=parameters["end"];
  8643. if(endDateTime < startDateTime)
  8644. throw Error.argumentOutOfRange("end",endDateTime,window["_u"]["ExtensibilityStrings"]["l_InvalidEventDates_Text"]);
  8645. parameters["end"]=endDateTime["getTime"]()
  8646. }
  8647. }
  8648. var updatedParameters=null;
  8649. if(normalizedRequiredAttendees || normalizedOptionalAttendees)
  8650. {
  8651. updatedParameters={};
  8652. var $$dict_7=parameters;
  8653. for(var $$key_8 in $$dict_7)
  8654. {
  8655. var entry={
  8656. key: $$key_8,
  8657. value: $$dict_7[$$key_8]
  8658. };
  8659. updatedParameters[entry["key"]]=entry["value"]
  8660. }
  8661. if(normalizedRequiredAttendees)
  8662. updatedParameters["requiredAttendees"]=normalizedRequiredAttendees;
  8663. if(normalizedOptionalAttendees)
  8664. updatedParameters["optionalAttendees"]=normalizedOptionalAttendees
  8665. }
  8666. this.invokeHostMethod(7,updatedParameters || parameters,null)
  8667. },
  8668. displayNewMessageFormApi: function(parameters)
  8669. {
  8670. var updatedParameters={};
  8671. if(parameters)
  8672. {
  8673. var normalizedToRecipients=window["OSF"]["DDA"]["OutlookAppOm"]._validateAndNormalizeRecipientEmails$p(parameters["toRecipients"],"toRecipients");
  8674. var normalizedCcRecipients=window["OSF"]["DDA"]["OutlookAppOm"]._validateAndNormalizeRecipientEmails$p(parameters["ccRecipients"],"ccRecipients");
  8675. var normalizedBccRecipients=window["OSF"]["DDA"]["OutlookAppOm"]._validateAndNormalizeRecipientEmails$p(parameters["bccRecipients"],"bccRecipients");
  8676. window["OSF"]["DDA"]["OutlookAppOm"]._validateOptionalStringParameter$p(parameters["htmlBody"],0,window["OSF"]["DDA"]["OutlookAppOm"].maxBodyLength,"htmlBody");
  8677. window["OSF"]["DDA"]["OutlookAppOm"]._validateOptionalStringParameter$p(parameters["subject"],0,window["OSF"]["DDA"]["OutlookAppOm"]._maxSubjectLength$p,"subject");
  8678. var attachments=window["OSF"]["DDA"]["OutlookAppOm"]._getAttachments$p(parameters);
  8679. var $$dict_7=parameters;
  8680. for(var $$key_8 in $$dict_7)
  8681. {
  8682. var entry={
  8683. key: $$key_8,
  8684. value: $$dict_7[$$key_8]
  8685. };
  8686. updatedParameters[entry["key"]]=entry["value"]
  8687. }
  8688. if(normalizedToRecipients)
  8689. updatedParameters["toRecipients"]=normalizedToRecipients;
  8690. if(normalizedCcRecipients)
  8691. updatedParameters["ccRecipients"]=normalizedCcRecipients;
  8692. if(normalizedBccRecipients)
  8693. updatedParameters["bccRecipients"]=normalizedBccRecipients;
  8694. if(attachments)
  8695. updatedParameters["attachments"]=window["OSF"]["DDA"]["OutlookAppOm"]._createAttachmentsDataForHost$p(attachments)
  8696. }
  8697. this.invokeHostMethod(44,updatedParameters || parameters,null)
  8698. },
  8699. displayPersonaCardAsync: function(ewsIdOrEmail)
  8700. {
  8701. var args=[];
  8702. for(var $$pai_3=1; $$pai_3 < arguments["length"];++$$pai_3)
  8703. args[$$pai_3 - 1]=arguments[$$pai_3];
  8704. if($h.ScriptHelpers.isNullOrUndefined(ewsIdOrEmail))
  8705. throw Error.argumentNull("ewsIdOrEmail");
  8706. else if(ewsIdOrEmail==="")
  8707. throw Error.argument("ewsIdOrEmail","ewsIdOrEmail cannot be empty.");
  8708. var parameters=$h.CommonParameters.parse(args,false);
  8709. this._standardInvokeHostMethod$i$0(43,{ewsIdOrEmail: ewsIdOrEmail.trim()},null,parameters._asyncContext$p$0,parameters._callback$p$0)
  8710. },
  8711. navigateToModuleAsync: function(module)
  8712. {
  8713. var args=[];
  8714. for(var $$pai_5=1; $$pai_5 < arguments["length"];++$$pai_5)
  8715. args[$$pai_5 - 1]=arguments[$$pai_5];
  8716. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidModule$p(module);
  8717. var parameters=$h.CommonParameters.parse(args,false);
  8718. var updatedParameters={};
  8719. if(module===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ModuleType"]["Addins"])
  8720. {
  8721. var queryString="";
  8722. if(parameters._options$p$0 && parameters._options$p$0["queryString"])
  8723. queryString=parameters._options$p$0["queryString"];
  8724. updatedParameters["queryString"]=queryString
  8725. }
  8726. updatedParameters["module"]=module;
  8727. this._standardInvokeHostMethod$i$0(45,updatedParameters,null,parameters._asyncContext$p$0,parameters._callback$p$0)
  8728. },
  8729. _initializeMethods$p$0: function()
  8730. {
  8731. var currentInstance=this;
  8732. if($h.Item["isInstanceOfType"](this._item$p$0) || this._hostItemType$p$0===6)
  8733. {
  8734. currentInstance["displayNewAppointmentForm"]=this.$$d__displayNewAppointmentFormApi$p$0;
  8735. currentInstance["displayNewMessageForm"]=this.$$d_displayNewMessageFormApi;
  8736. currentInstance["displayPersonaCardAsync"]=this.$$d_displayPersonaCardAsync;
  8737. currentInstance["navigateToModuleAsync"]=this.$$d_navigateToModuleAsync
  8738. }
  8739. },
  8740. _getInitialDataResponseHandler$p$0: function(resultCode, data)
  8741. {
  8742. if(resultCode)
  8743. return;
  8744. this["initialize"](data);
  8745. this["displayName"]="mailbox";
  8746. window.setTimeout(this.$$d__callAppReadyCallback$p$0,0)
  8747. },
  8748. _callAppReadyCallback$p$0: function()
  8749. {
  8750. this._appReadyCallback$p$0()
  8751. },
  8752. _invokeGetTokenMethodAsync$p$0: function(outlookDispid, methodName, callback, userContext)
  8753. {
  8754. if($h.ScriptHelpers.isNullOrUndefined(callback))
  8755. throw Error.argumentNull("callback");
  8756. var $$t_8=this;
  8757. this.invokeHostMethod(outlookDispid,null,function(resultCode, response)
  8758. {
  8759. var asyncResult;
  8760. if(resultCode)
  8761. asyncResult=$$t_8.createAsyncResult(null,1,9017,userContext,String.format(window["_u"]["ExtensibilityStrings"]["l_InternalProtocolError_Text"],resultCode));
  8762. else
  8763. {
  8764. var responseDictionary=response;
  8765. if(responseDictionary["wasSuccessful"])
  8766. asyncResult=$$t_8.createAsyncResult(responseDictionary["token"],0,0,userContext,null);
  8767. else
  8768. asyncResult=$$t_8.createAsyncResult(null,1,responseDictionary["errorCode"],userContext,responseDictionary["errorMessage"])
  8769. }
  8770. callback(asyncResult)
  8771. })
  8772. },
  8773. _getItem$p$0: function()
  8774. {
  8775. return this._item$p$0
  8776. },
  8777. _getUserProfile$p$0: function()
  8778. {
  8779. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._initialData$p$0._permissionLevel$p$0);
  8780. return this._userProfile$p$0
  8781. },
  8782. _getDiagnostics$p$0: function()
  8783. {
  8784. return this._diagnostics$p$0
  8785. },
  8786. _getEwsUrl$p$0: function()
  8787. {
  8788. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._initialData$p$0._permissionLevel$p$0);
  8789. return this._initialData$p$0.get__ewsUrl$i$0()
  8790. },
  8791. _getRestUrl$p$0: function()
  8792. {
  8793. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._initialData$p$0._permissionLevel$p$0);
  8794. if(!this._initialData$p$0.get__restUrl$i$0())
  8795. return null;
  8796. return this._initialData$p$0.get__restUrl$i$0()
  8797. },
  8798. _findOffset$p$0: function(value)
  8799. {
  8800. var ranges=this._initialData$p$0.get__timeZoneOffsets$i$0();
  8801. for(var r=0; r < ranges["length"]; r++)
  8802. {
  8803. var range=ranges[r];
  8804. var start=window["parseInt"](range["start"]);
  8805. var end=window["parseInt"](range["end"]);
  8806. if(value["getTime"]() - start >=0 && value["getTime"]() - end < 0)
  8807. return window["parseInt"](range["offset"])
  8808. }
  8809. throw Error.format(window["_u"]["ExtensibilityStrings"]["l_InvalidDate_Text"]);
  8810. },
  8811. _areStringsLoaded$p$0: function()
  8812. {
  8813. var stringsLoaded=false;
  8814. try
  8815. {
  8816. stringsLoaded=!$h.ScriptHelpers.isNullOrUndefined(window["_u"]["ExtensibilityStrings"]["l_EwsRequestOversized_Text"])
  8817. }
  8818. catch($$e_1){}
  8819. return stringsLoaded
  8820. },
  8821. _loadLocalizedScript$p$0: function(stringLoadedCallback)
  8822. {
  8823. var url=null;
  8824. var baseUrl="";
  8825. var scripts=document.getElementsByTagName("script");
  8826. for(var i=scripts.length - 1; i >=0; i--)
  8827. {
  8828. var filename=null;
  8829. var attributes=scripts[i].attributes;
  8830. if(attributes)
  8831. {
  8832. var attribute=attributes.getNamedItem("src");
  8833. if(attribute)
  8834. filename=attribute.value;
  8835. if(filename)
  8836. {
  8837. var debug=false;
  8838. filename=filename.toLowerCase();
  8839. var officeIndex=filename.indexOf("office_strings.js");
  8840. if(officeIndex < 0)
  8841. {
  8842. officeIndex=filename.indexOf("office_strings.debug.js");
  8843. debug=true
  8844. }
  8845. if(officeIndex > 0 && officeIndex < filename.length)
  8846. {
  8847. url=filename.replace(debug ? "office_strings.debug.js" : "office_strings.js","outlook_strings.js");
  8848. var languageUrl=filename.substring(0,officeIndex);
  8849. var lastIndexOfSlash=languageUrl.lastIndexOf("/",languageUrl.length - 2);
  8850. if(lastIndexOfSlash===-1)
  8851. lastIndexOfSlash=languageUrl.lastIndexOf("\\",languageUrl.length - 2);
  8852. if(lastIndexOfSlash !==-1 && languageUrl.length > lastIndexOfSlash+1)
  8853. baseUrl=languageUrl.substring(0,lastIndexOfSlash+1);
  8854. break
  8855. }
  8856. }
  8857. }
  8858. }
  8859. if(url)
  8860. {
  8861. var head=document.getElementsByTagName("head")[0];
  8862. var scriptElement=null;
  8863. var $$t_H=this;
  8864. var scriptElementCallback=function()
  8865. {
  8866. if(stringLoadedCallback && (!scriptElement.readyState || scriptElement.readyState && (scriptElement.readyState==="loaded" || scriptElement.readyState==="complete")))
  8867. {
  8868. scriptElement.onload=null;
  8869. scriptElement.onreadystatechange=null;
  8870. stringLoadedCallback()
  8871. }
  8872. };
  8873. var $$t_I=this;
  8874. var failureCallback=function()
  8875. {
  8876. if(!$$t_I._areStringsLoaded$p$0())
  8877. {
  8878. var fallbackUrl=baseUrl+"en-us/"+"outlook_strings.js";
  8879. scriptElement.onload=null;
  8880. scriptElement.onreadystatechange=null;
  8881. scriptElement=$$t_I._createScriptElement$p$0(fallbackUrl);
  8882. scriptElement.onload=scriptElementCallback;
  8883. scriptElement.onreadystatechange=scriptElementCallback;
  8884. head.appendChild(scriptElement)
  8885. }
  8886. };
  8887. scriptElement=this._createScriptElement$p$0(url);
  8888. scriptElement.onload=scriptElementCallback;
  8889. scriptElement.onreadystatechange=scriptElementCallback;
  8890. window.setTimeout(failureCallback,2e3);
  8891. head.appendChild(scriptElement)
  8892. }
  8893. },
  8894. _createScriptElement$p$0: function(url)
  8895. {
  8896. var scriptElement=document.createElement("script");
  8897. scriptElement.type="text/javascript";
  8898. scriptElement.src=url;
  8899. return scriptElement
  8900. }
  8901. };
  8902. OSF.DDA.OutlookAppOm.prototype.initialize=function(initialData)
  8903. {
  8904. var ItemTypeKey="itemType";
  8905. this._initialData$p$0=new $h.InitialData(initialData);
  8906. this._hostItemType$p$0=initialData[ItemTypeKey];
  8907. if(1===initialData[ItemTypeKey])
  8908. this._item$p$0=new $h.Message(this._initialData$p$0);
  8909. else if(3===initialData[ItemTypeKey])
  8910. this._item$p$0=new $h.MeetingRequest(this._initialData$p$0);
  8911. else if(2===initialData[ItemTypeKey])
  8912. this._item$p$0=new $h.Appointment(this._initialData$p$0);
  8913. else if(4===initialData[ItemTypeKey])
  8914. this._item$p$0=new $h.MessageCompose(this._initialData$p$0);
  8915. else if(5===initialData[ItemTypeKey])
  8916. this._item$p$0=new $h.AppointmentCompose(this._initialData$p$0);
  8917. else if(6===initialData[ItemTypeKey]);
  8918. else
  8919. Sys.Debug.trace("Unexpected item type was received from the host.");
  8920. this._userProfile$p$0=new $h.UserProfile(this._initialData$p$0);
  8921. this._diagnostics$p$0=new $h.Diagnostics(this._initialData$p$0,this._officeAppContext$p$0["get_appName"]());
  8922. this._additionalOutlookParams$p$0={};
  8923. if(window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.get__appName$i$0()===8)
  8924. this._supportsPersistence$p$0=this.isOutlook16OrGreater();
  8925. this._initializeMethods$p$0();
  8926. $h.InitialData._defineReadOnlyProperty$i(this,"item",this.$$d__getItem$p$0);
  8927. $h.InitialData._defineReadOnlyProperty$i(this,"userProfile",this.$$d__getUserProfile$p$0);
  8928. $h.InitialData._defineReadOnlyProperty$i(this,"diagnostics",this.$$d__getDiagnostics$p$0);
  8929. $h.InitialData._defineReadOnlyProperty$i(this,"ewsUrl",this.$$d__getEwsUrl$p$0);
  8930. $h.InitialData._defineReadOnlyProperty$i(this,"restUrl",this.$$d__getRestUrl$p$0);
  8931. if(window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.get__appName$i$0()===64)
  8932. if(this._initialData$p$0.get__overrideWindowOpen$i$0())
  8933. window.open=this.$$d_windowOpenOverrideHandler
  8934. };
  8935. OSF.DDA.OutlookAppOm.prototype.makeEwsRequestAsync=function(data)
  8936. {
  8937. var args=[];
  8938. for(var $$pai_5=1; $$pai_5 < arguments["length"];++$$pai_5)
  8939. args[$$pai_5 - 1]=arguments[$$pai_5];
  8940. if($h.ScriptHelpers.isNullOrUndefined(data))
  8941. throw Error.argumentNull("data");
  8942. if(data.length > window["OSF"]["DDA"]["OutlookAppOm"]._maxEwsRequestSize$p)
  8943. throw Error.argument("data",window["_u"]["ExtensibilityStrings"]["l_EwsRequestOversized_Text"]);
  8944. this._throwOnMethodCallForInsufficientPermission$i$0(3,"makeEwsRequestAsync");
  8945. var parameters=$h.CommonParameters.parse(args,true,true);
  8946. var ewsRequest=new $h.EwsRequest(parameters._asyncContext$p$0);
  8947. var $$t_4=this;
  8948. ewsRequest.onreadystatechange=function()
  8949. {
  8950. if(4===ewsRequest.get__requestState$i$1())
  8951. parameters._callback$p$0(ewsRequest._asyncResult$p$0)
  8952. };
  8953. ewsRequest.send(data)
  8954. };
  8955. OSF.DDA.OutlookAppOm.prototype.recordDataPoint=function(data)
  8956. {
  8957. if($h.ScriptHelpers.isNullOrUndefined(data))
  8958. throw Error.argumentNull("data");
  8959. this.invokeHostMethod(402,data,null)
  8960. };
  8961. OSF.DDA.OutlookAppOm.prototype.recordTrace=function(data)
  8962. {
  8963. if($h.ScriptHelpers.isNullOrUndefined(data))
  8964. throw Error.argumentNull("data");
  8965. this.invokeHostMethod(401,data,null)
  8966. };
  8967. OSF.DDA.OutlookAppOm.prototype.trackCtq=function(data)
  8968. {
  8969. if($h.ScriptHelpers.isNullOrUndefined(data))
  8970. throw Error.argumentNull("data");
  8971. this.invokeHostMethod(400,data,null)
  8972. };
  8973. OSF.DDA.OutlookAppOm.prototype.convertToLocalClientTime=function(timeValue)
  8974. {
  8975. var date=new Date(timeValue["getTime"]());
  8976. var offset=date["getTimezoneOffset"]() * -1;
  8977. if(this._initialData$p$0 && this._initialData$p$0.get__timeZoneOffsets$i$0())
  8978. {
  8979. date["setUTCMinutes"](date["getUTCMinutes"]() - offset);
  8980. offset=this._findOffset$p$0(date);
  8981. date["setUTCMinutes"](date["getUTCMinutes"]()+offset)
  8982. }
  8983. var retValue=this._dateToDictionary$i$0(date);
  8984. retValue["timezoneOffset"]=offset;
  8985. return retValue
  8986. };
  8987. OSF.DDA.OutlookAppOm.prototype.convertToUtcClientTime=function(input)
  8988. {
  8989. var retValue=this._dictionaryToDate$i$0(input);
  8990. if(this._initialData$p$0 && this._initialData$p$0.get__timeZoneOffsets$i$0())
  8991. {
  8992. var offset=this._findOffset$p$0(retValue);
  8993. retValue["setUTCMinutes"](retValue["getUTCMinutes"]() - offset);
  8994. offset=!input["timezoneOffset"] ? retValue["getTimezoneOffset"]() * -1 : input["timezoneOffset"];
  8995. retValue["setUTCMinutes"](retValue["getUTCMinutes"]()+offset)
  8996. }
  8997. return retValue
  8998. };
  8999. OSF.DDA.OutlookAppOm.prototype.convertToRestId=function(itemId, restVersion)
  9000. {
  9001. if(!itemId)
  9002. throw Error.argumentNull("itemId");
  9003. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidRestVersion$p(restVersion);
  9004. return itemId.replace(new RegExp("[/]","g"),"-").replace(new RegExp("[+]","g"),"_")
  9005. };
  9006. OSF.DDA.OutlookAppOm.prototype.convertToEwsId=function(itemId, restVersion)
  9007. {
  9008. if(!itemId)
  9009. throw Error.argumentNull("itemId");
  9010. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnInvalidRestVersion$p(restVersion);
  9011. return itemId.replace(new RegExp("[-]","g"),"/").replace(new RegExp("[_]","g"),"+")
  9012. };
  9013. OSF.DDA.OutlookAppOm.prototype.getUserIdentityTokenAsync=function()
  9014. {
  9015. var args=[];
  9016. for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
  9017. args[$$pai_2]=arguments[$$pai_2];
  9018. this._throwOnMethodCallForInsufficientPermission$i$0(1,"getUserIdentityTokenAsync");
  9019. var parameters=$h.CommonParameters.parse(args,true,true);
  9020. this._invokeGetTokenMethodAsync$p$0(2,"GetUserIdentityToken",parameters._callback$p$0,parameters._asyncContext$p$0)
  9021. };
  9022. OSF.DDA.OutlookAppOm.prototype.getCallbackTokenAsync=function()
  9023. {
  9024. var args=[];
  9025. for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
  9026. args[$$pai_2]=arguments[$$pai_2];
  9027. this._throwOnMethodCallForInsufficientPermission$i$0(1,"getCallbackTokenAsync");
  9028. var parameters=$h.CommonParameters.parse(args,true,true);
  9029. this._invokeGetTokenMethodAsync$p$0(12,"GetCallbackToken",parameters._callback$p$0,parameters._asyncContext$p$0)
  9030. };
  9031. OSF.DDA.OutlookAppOm.prototype.displayMessageForm=function(itemId)
  9032. {
  9033. if($h.ScriptHelpers.isNullOrUndefined(itemId))
  9034. throw Error.argumentNull("itemId");
  9035. this.invokeHostMethod(8,{itemId: window["OSF"]["DDA"]["OutlookAppOm"].getItemIdBasedOnHost(itemId)},null)
  9036. };
  9037. OSF.DDA.OutlookAppOm.prototype.displayAppointmentForm=function(itemId)
  9038. {
  9039. if($h.ScriptHelpers.isNullOrUndefined(itemId))
  9040. throw Error.argumentNull("itemId");
  9041. this.invokeHostMethod(9,{itemId: window["OSF"]["DDA"]["OutlookAppOm"].getItemIdBasedOnHost(itemId)},null)
  9042. };
  9043. OSF.DDA.OutlookAppOm.prototype.RegisterConsentAsync=function(consentState)
  9044. {
  9045. if(consentState !==2 && consentState !==1 && consentState)
  9046. throw Error.argumentOutOfRange("consentState");
  9047. var parameters={};
  9048. parameters["consentState"]=consentState["toString"]();
  9049. parameters["extensionId"]=this["GetExtensionId"]();
  9050. this.invokeHostMethod(40,parameters,null)
  9051. };
  9052. OSF.DDA.OutlookAppOm.prototype.CloseApp=function()
  9053. {
  9054. this.invokeHostMethod(42,null,null)
  9055. };
  9056. OSF.DDA.OutlookAppOm.prototype.GetIsRead=function()
  9057. {
  9058. return this._initialData$p$0.get__isRead$i$0()
  9059. };
  9060. OSF.DDA.OutlookAppOm.prototype.GetEndNodeUrl=function()
  9061. {
  9062. return this._initialData$p$0.get__endNodeUrl$i$0()
  9063. };
  9064. OSF.DDA.OutlookAppOm.prototype.GetConsentMetadata=function()
  9065. {
  9066. return this._initialData$p$0.get__consentMetadata$i$0()
  9067. };
  9068. OSF.DDA.OutlookAppOm.prototype.GetEntryPointUrl=function()
  9069. {
  9070. return this._initialData$p$0.get__entryPointUrl$i$0()
  9071. };
  9072. OSF.DDA.OutlookAppOm.prototype.GetMarketplaceContentMarket=function()
  9073. {
  9074. return this._initialData$p$0.get__marketplaceContentMarket$i$0()
  9075. };
  9076. OSF.DDA.OutlookAppOm.prototype.GetMarketplaceAssetId=function()
  9077. {
  9078. return this._initialData$p$0.get__marketplaceAssetId$i$0()
  9079. };
  9080. OSF.DDA.OutlookAppOm.prototype.GetExtensionId=function()
  9081. {
  9082. return this._initialData$p$0.get__extensionId$i$0()
  9083. };
  9084. OSF.DDA.OutlookAppOm.prototype.setCurrentItemNumber=function(itemNumber)
  9085. {
  9086. if(itemNumber > 0)
  9087. this._additionalOutlookParams$p$0["itemNumber"]=itemNumber["toString"]()
  9088. };
  9089. window["OSF"]["DDA"]["Settings"]=OSF.DDA.Settings=function(data)
  9090. {
  9091. this._rawData$p$0=data
  9092. };
  9093. window["OSF"]["DDA"]["Settings"]._convertFromRawSettings$p=function(rawSettings)
  9094. {
  9095. if(!rawSettings)
  9096. return{};
  9097. if(window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.get__appName$i$0()===8 || window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.get__appName$i$0()===65536 || window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.get__appName$i$0()===4194304)
  9098. {
  9099. var outlookSettings=rawSettings["SettingsKey"];
  9100. if(outlookSettings)
  9101. return OSF.DDA.SettingsManager["deserializeSettings"](outlookSettings)
  9102. }
  9103. return rawSettings
  9104. };
  9105. OSF.DDA.Settings.prototype={
  9106. _rawData$p$0: null,
  9107. _settingsData$p$0: null,
  9108. get__data$p$0: function()
  9109. {
  9110. if(!this._settingsData$p$0)
  9111. {
  9112. this._settingsData$p$0=window["OSF"]["DDA"]["Settings"]._convertFromRawSettings$p(this._rawData$p$0);
  9113. this._rawData$p$0=null
  9114. }
  9115. return this._settingsData$p$0
  9116. },
  9117. _saveSettingsForOutlook$p$0: function(callback, userContext)
  9118. {
  9119. var storedException=null;
  9120. try
  9121. {
  9122. var serializedSettings=OSF.DDA.SettingsManager["serializeSettings"](this.get__data$p$0());
  9123. var jsonSettings=window["JSON"]["stringify"](serializedSettings);
  9124. var settingsObjectToSave={SettingsKey: jsonSettings};
  9125. OSF.DDA.ClientSettingsManager["write"](settingsObjectToSave)
  9126. }
  9127. catch(ex)
  9128. {
  9129. storedException=ex
  9130. }
  9131. if(callback)
  9132. {
  9133. var asyncResult;
  9134. if(storedException)
  9135. asyncResult=window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.createAsyncResult(null,1,9019,userContext,storedException["message"]);
  9136. else
  9137. asyncResult=window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.createAsyncResult(null,0,0,userContext,null);
  9138. callback(asyncResult)
  9139. }
  9140. },
  9141. _saveSettingsForOwa$p$0: function(callback, userContext)
  9142. {
  9143. var serializedSettings=OSF.DDA.SettingsManager["serializeSettings"](this.get__data$p$0());
  9144. var $$t_7=this;
  9145. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.invokeHostMethod(404,[serializedSettings],function(resultCode, response)
  9146. {
  9147. if(callback)
  9148. {
  9149. var asyncResult;
  9150. if(resultCode)
  9151. asyncResult=window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.createAsyncResult(null,1,9017,userContext,String.format(window["_u"]["ExtensibilityStrings"]["l_InternalProtocolError_Text"],resultCode));
  9152. else
  9153. {
  9154. var responseDictionary=response;
  9155. if(!responseDictionary["error"])
  9156. asyncResult=window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.createAsyncResult(null,0,0,userContext,null);
  9157. else
  9158. asyncResult=window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.createAsyncResult(null,1,9019,userContext,responseDictionary["errorMessage"])
  9159. }
  9160. callback(asyncResult)
  9161. }
  9162. })
  9163. }
  9164. };
  9165. OSF.DDA.Settings.prototype.get=function(name)
  9166. {
  9167. return this.get__data$p$0()[name]
  9168. };
  9169. OSF.DDA.Settings.prototype.set=function(name, value)
  9170. {
  9171. this.get__data$p$0()[name]=value
  9172. };
  9173. OSF.DDA.Settings.prototype.remove=function(name)
  9174. {
  9175. delete this.get__data$p$0()[name]
  9176. };
  9177. OSF.DDA.Settings.prototype.saveAsync=function()
  9178. {
  9179. var args=[];
  9180. for(var $$pai_4=0; $$pai_4 < arguments["length"];++$$pai_4)
  9181. args[$$pai_4]=arguments[$$pai_4];
  9182. var commonParameters=$h.CommonParameters.parse(args,false);
  9183. if(window["JSON"]["stringify"](OSF.DDA.SettingsManager["serializeSettings"](this.get__data$p$0())).length > 32768)
  9184. {
  9185. var asyncResult=window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.createAsyncResult(null,1,9019,commonParameters._asyncContext$p$0,"");
  9186. var $$t_3=this;
  9187. window.setTimeout(function()
  9188. {
  9189. commonParameters._callback$p$0(asyncResult)
  9190. },0);
  9191. return
  9192. }
  9193. if(window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.get__appName$i$0()===64)
  9194. this._saveSettingsForOwa$p$0(commonParameters._callback$p$0,commonParameters._asyncContext$p$0);
  9195. else
  9196. this._saveSettingsForOutlook$p$0(commonParameters._callback$p$0,commonParameters._asyncContext$p$0)
  9197. };
  9198. Type.registerNamespace("$h");
  9199. var $h=window["$h"] || {};
  9200. Type.registerNamespace("Office.cast");
  9201. var Office=window["Office"] || {};
  9202. Office.cast=Office.cast || {};
  9203. $h.Appointment=function(dataDictionary)
  9204. {
  9205. this.$$d__getOrganizer$p$2=Function.createDelegate(this,this._getOrganizer$p$2);
  9206. this.$$d__getNormalizedSubject$p$2=Function.createDelegate(this,this._getNormalizedSubject$p$2);
  9207. this.$$d__getSubject$p$2=Function.createDelegate(this,this._getSubject$p$2);
  9208. this.$$d__getResources$p$2=Function.createDelegate(this,this._getResources$p$2);
  9209. this.$$d__getRequiredAttendees$p$2=Function.createDelegate(this,this._getRequiredAttendees$p$2);
  9210. this.$$d__getOptionalAttendees$p$2=Function.createDelegate(this,this._getOptionalAttendees$p$2);
  9211. this.$$d__getLocation$p$2=Function.createDelegate(this,this._getLocation$p$2);
  9212. this.$$d__getEnd$p$2=Function.createDelegate(this,this._getEnd$p$2);
  9213. this.$$d__getStart$p$2=Function.createDelegate(this,this._getStart$p$2);
  9214. $h.Appointment["initializeBase"](this,[dataDictionary]);
  9215. $h.InitialData._defineReadOnlyProperty$i(this,"start",this.$$d__getStart$p$2);
  9216. $h.InitialData._defineReadOnlyProperty$i(this,"end",this.$$d__getEnd$p$2);
  9217. $h.InitialData._defineReadOnlyProperty$i(this,"location",this.$$d__getLocation$p$2);
  9218. $h.InitialData._defineReadOnlyProperty$i(this,"optionalAttendees",this.$$d__getOptionalAttendees$p$2);
  9219. $h.InitialData._defineReadOnlyProperty$i(this,"requiredAttendees",this.$$d__getRequiredAttendees$p$2);
  9220. $h.InitialData._defineReadOnlyProperty$i(this,"resources",this.$$d__getResources$p$2);
  9221. $h.InitialData._defineReadOnlyProperty$i(this,"subject",this.$$d__getSubject$p$2);
  9222. $h.InitialData._defineReadOnlyProperty$i(this,"normalizedSubject",this.$$d__getNormalizedSubject$p$2);
  9223. $h.InitialData._defineReadOnlyProperty$i(this,"organizer",this.$$d__getOrganizer$p$2)
  9224. };
  9225. $h.Appointment.prototype={
  9226. getItemType: function()
  9227. {
  9228. return window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ItemType"]["Appointment"]
  9229. },
  9230. _getStart$p$2: function()
  9231. {
  9232. return this._data$p$0.get__start$i$0()
  9233. },
  9234. _getEnd$p$2: function()
  9235. {
  9236. return this._data$p$0.get__end$i$0()
  9237. },
  9238. _getLocation$p$2: function()
  9239. {
  9240. return this._data$p$0.get__location$i$0()
  9241. },
  9242. _getOptionalAttendees$p$2: function()
  9243. {
  9244. return this._data$p$0.get__cc$i$0()
  9245. },
  9246. _getRequiredAttendees$p$2: function()
  9247. {
  9248. return this._data$p$0.get__to$i$0()
  9249. },
  9250. _getResources$p$2: function()
  9251. {
  9252. return this._data$p$0.get__resources$i$0()
  9253. },
  9254. _getSubject$p$2: function()
  9255. {
  9256. return this._data$p$0.get__subject$i$0()
  9257. },
  9258. _getNormalizedSubject$p$2: function()
  9259. {
  9260. return this._data$p$0.get__normalizedSubject$i$0()
  9261. },
  9262. _getOrganizer$p$2: function()
  9263. {
  9264. return this._data$p$0.get__organizer$i$0()
  9265. }
  9266. };
  9267. $h.Appointment.prototype.getEntities=function()
  9268. {
  9269. return this._data$p$0._getEntities$i$0()
  9270. };
  9271. $h.Appointment.prototype.getEntitiesByType=function(entityType)
  9272. {
  9273. return this._data$p$0._getEntitiesByType$i$0(entityType)
  9274. };
  9275. $h.Appointment.prototype.getSelectedEntities=function()
  9276. {
  9277. return this._data$p$0._getSelectedEntities$i$0()
  9278. };
  9279. $h.Appointment.prototype.getRegExMatches=function()
  9280. {
  9281. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"getRegExMatches");
  9282. return this._data$p$0._getRegExMatches$i$0()
  9283. };
  9284. $h.Appointment.prototype.getFilteredEntitiesByName=function(name)
  9285. {
  9286. return this._data$p$0._getFilteredEntitiesByName$i$0(name)
  9287. };
  9288. $h.Appointment.prototype.getRegExMatchesByName=function(name)
  9289. {
  9290. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"getRegExMatchesByName");
  9291. return this._data$p$0._getRegExMatchesByName$i$0(name)
  9292. };
  9293. $h.Appointment.prototype.getSelectedRegExMatches=function()
  9294. {
  9295. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"getSelectedRegExMatches");
  9296. return this._data$p$0._getSelectedRegExMatches$i$0()
  9297. };
  9298. $h.Appointment.prototype.displayReplyForm=function(obj)
  9299. {
  9300. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._displayReplyForm$i$0(obj)
  9301. };
  9302. $h.Appointment.prototype.displayReplyAllForm=function(obj)
  9303. {
  9304. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._displayReplyAllForm$i$0(obj)
  9305. };
  9306. $h.AppointmentCompose=function(data)
  9307. {
  9308. this.$$d__getLocation$p$2=Function.createDelegate(this,this._getLocation$p$2);
  9309. this.$$d__getEnd$p$2=Function.createDelegate(this,this._getEnd$p$2);
  9310. this.$$d__getStart$p$2=Function.createDelegate(this,this._getStart$p$2);
  9311. this.$$d__getOptionalAttendees$p$2=Function.createDelegate(this,this._getOptionalAttendees$p$2);
  9312. this.$$d__getRequiredAttendees$p$2=Function.createDelegate(this,this._getRequiredAttendees$p$2);
  9313. $h.AppointmentCompose["initializeBase"](this,[data]);
  9314. $h.InitialData._defineReadOnlyProperty$i(this,"requiredAttendees",this.$$d__getRequiredAttendees$p$2);
  9315. $h.InitialData._defineReadOnlyProperty$i(this,"optionalAttendees",this.$$d__getOptionalAttendees$p$2);
  9316. $h.InitialData._defineReadOnlyProperty$i(this,"start",this.$$d__getStart$p$2);
  9317. $h.InitialData._defineReadOnlyProperty$i(this,"end",this.$$d__getEnd$p$2);
  9318. $h.InitialData._defineReadOnlyProperty$i(this,"location",this.$$d__getLocation$p$2)
  9319. };
  9320. $h.AppointmentCompose.prototype={
  9321. _requiredAttendees$p$2: null,
  9322. _optionalAttendees$p$2: null,
  9323. _start$p$2: null,
  9324. _end$p$2: null,
  9325. _location$p$2: null,
  9326. getItemType: function()
  9327. {
  9328. return window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ItemType"]["Appointment"]
  9329. },
  9330. _getRequiredAttendees$p$2: function()
  9331. {
  9332. this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
  9333. if(!this._requiredAttendees$p$2)
  9334. this._requiredAttendees$p$2=new $h.ComposeRecipient(0,"requiredAttendees");
  9335. return this._requiredAttendees$p$2
  9336. },
  9337. _getOptionalAttendees$p$2: function()
  9338. {
  9339. this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
  9340. if(!this._optionalAttendees$p$2)
  9341. this._optionalAttendees$p$2=new $h.ComposeRecipient(1,"optionalAttendees");
  9342. return this._optionalAttendees$p$2
  9343. },
  9344. _getStart$p$2: function()
  9345. {
  9346. this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
  9347. if(!this._start$p$2)
  9348. this._start$p$2=new $h.ComposeTime(1);
  9349. return this._start$p$2
  9350. },
  9351. _getEnd$p$2: function()
  9352. {
  9353. this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
  9354. if(!this._end$p$2)
  9355. this._end$p$2=new $h.ComposeTime(2);
  9356. return this._end$p$2
  9357. },
  9358. _getLocation$p$2: function()
  9359. {
  9360. this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
  9361. if(!this._location$p$2)
  9362. this._location$p$2=new $h.ComposeLocation;
  9363. return this._location$p$2
  9364. }
  9365. };
  9366. $h.AttachmentConstants=function(){};
  9367. $h.AttachmentDetails=function(data)
  9368. {
  9369. this.$$d__getIsInline$p$0=Function.createDelegate(this,this._getIsInline$p$0);
  9370. this.$$d__getAttachmentType$p$0=Function.createDelegate(this,this._getAttachmentType$p$0);
  9371. this.$$d__getSize$p$0=Function.createDelegate(this,this._getSize$p$0);
  9372. this.$$d__getContentType$p$0=Function.createDelegate(this,this._getContentType$p$0);
  9373. this.$$d__getName$p$0=Function.createDelegate(this,this._getName$p$0);
  9374. this.$$d__getId$p$0=Function.createDelegate(this,this._getId$p$0);
  9375. this._data$p$0=data;
  9376. $h.InitialData._defineReadOnlyProperty$i(this,"id",this.$$d__getId$p$0);
  9377. $h.InitialData._defineReadOnlyProperty$i(this,"name",this.$$d__getName$p$0);
  9378. $h.InitialData._defineReadOnlyProperty$i(this,"contentType",this.$$d__getContentType$p$0);
  9379. $h.InitialData._defineReadOnlyProperty$i(this,"size",this.$$d__getSize$p$0);
  9380. $h.InitialData._defineReadOnlyProperty$i(this,"attachmentType",this.$$d__getAttachmentType$p$0);
  9381. $h.InitialData._defineReadOnlyProperty$i(this,"isInline",this.$$d__getIsInline$p$0)
  9382. };
  9383. $h.AttachmentDetails.prototype={
  9384. _data$p$0: null,
  9385. _getId$p$0: function()
  9386. {
  9387. return this._data$p$0["id"]
  9388. },
  9389. _getName$p$0: function()
  9390. {
  9391. return this._data$p$0["name"]
  9392. },
  9393. _getContentType$p$0: function()
  9394. {
  9395. return this._data$p$0["contentType"]
  9396. },
  9397. _getSize$p$0: function()
  9398. {
  9399. return this._data$p$0["size"]
  9400. },
  9401. _getAttachmentType$p$0: function()
  9402. {
  9403. var response=this._data$p$0["attachmentType"];
  9404. return response < $h.AttachmentDetails._attachmentTypeMap$p["length"] ? $h.AttachmentDetails._attachmentTypeMap$p[response] : window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["AttachmentType"]["File"]
  9405. },
  9406. _getIsInline$p$0: function()
  9407. {
  9408. return this._data$p$0["isInline"]
  9409. }
  9410. };
  9411. $h.Body=function(){};
  9412. $h.Body._tryMapToHostCoercionType$i=function(coercionType, hostCoercionType)
  9413. {
  9414. hostCoercionType["val"]=undefined;
  9415. if(coercionType===window["Microsoft"]["Office"]["WebExtension"]["CoercionType"]["Html"])
  9416. hostCoercionType["val"]=3;
  9417. else if(coercionType===window["Microsoft"]["Office"]["WebExtension"]["CoercionType"]["Text"])
  9418. hostCoercionType["val"]=0;
  9419. else
  9420. return false;
  9421. return true
  9422. };
  9423. $h.Body.prototype.getAsync=function(coercionType)
  9424. {
  9425. var args=[];
  9426. for(var $$pai_7=1; $$pai_7 < arguments["length"];++$$pai_7)
  9427. args[$$pai_7 - 1]=arguments[$$pai_7];
  9428. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"body.getAsync");
  9429. var commonParameters=$h.CommonParameters.parse(args,true);
  9430. var hostCoercionType;
  9431. var $$t_5,
  9432. $$t_6;
  9433. if(!($$t_6=$h.Body._tryMapToHostCoercionType$i(coercionType,$$t_5={val: hostCoercionType}),hostCoercionType=$$t_5["val"],$$t_6))
  9434. throw Error.argument("coercionType");
  9435. var dataToHost={coercionType: hostCoercionType};
  9436. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(37,dataToHost,null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
  9437. };
  9438. $h.ComposeBody=function()
  9439. {
  9440. $h.ComposeBody["initializeBase"](this)
  9441. };
  9442. $h.ComposeBody._createParameterDictionaryToHost$i=function(data, parameters)
  9443. {
  9444. var dataToHost={data: data};
  9445. if(parameters._options$p$0 && parameters._options$p$0["hasOwnProperty"]("coercionType") && !$h.ScriptHelpers.isNull(parameters._options$p$0["coercionType"]))
  9446. {
  9447. var hostCoercionType;
  9448. var $$t_4,
  9449. $$t_5;
  9450. if(!($$t_5=$h.Body._tryMapToHostCoercionType$i(parameters._options$p$0["coercionType"],$$t_4={val: hostCoercionType}),hostCoercionType=$$t_4["val"],$$t_5))
  9451. {
  9452. if(parameters._callback$p$0)
  9453. parameters._callback$p$0(window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.createAsyncResult(null,1,1e3,parameters._asyncContext$p$0,null));
  9454. return null
  9455. }
  9456. dataToHost["coercionType"]=hostCoercionType
  9457. }
  9458. else
  9459. dataToHost["coercionType"]=0;
  9460. return dataToHost
  9461. };
  9462. $h.ComposeBody.prototype.getTypeAsync=function()
  9463. {
  9464. var args=[];
  9465. for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
  9466. args[$$pai_2]=arguments[$$pai_2];
  9467. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"body.getTypeAsync");
  9468. var parameters=$h.CommonParameters.parse(args,true);
  9469. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(14,null,null,parameters._asyncContext$p$0,parameters._callback$p$0)
  9470. };
  9471. $h.ComposeBody.prototype.setSelectedDataAsync=function(data)
  9472. {
  9473. var args=[];
  9474. for(var $$pai_4=1; $$pai_4 < arguments["length"];++$$pai_4)
  9475. args[$$pai_4 - 1]=arguments[$$pai_4];
  9476. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"body.setSelectedDataAsync");
  9477. var parameters=$h.CommonParameters.parse(args,false);
  9478. if(!String["isInstanceOfType"](data))
  9479. throw Error.argumentType("data",Object["getType"](data),String);
  9480. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(data.length,0,1e6,"data");
  9481. var dataToHost=$h.ComposeBody._createParameterDictionaryToHost$i(data,parameters);
  9482. if(!dataToHost)
  9483. return;
  9484. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(13,dataToHost,null,parameters._asyncContext$p$0,parameters._callback$p$0)
  9485. };
  9486. $h.ComposeBody.prototype.prependAsync=function(data)
  9487. {
  9488. var args=[];
  9489. for(var $$pai_4=1; $$pai_4 < arguments["length"];++$$pai_4)
  9490. args[$$pai_4 - 1]=arguments[$$pai_4];
  9491. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"body.prependAsync");
  9492. var parameters=$h.CommonParameters.parse(args,false);
  9493. if(!String["isInstanceOfType"](data))
  9494. throw Error.argumentType("data",Object["getType"](data),String);
  9495. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(data.length,0,1e6,"data");
  9496. var dataToHost=$h.ComposeBody._createParameterDictionaryToHost$i(data,parameters);
  9497. if(!dataToHost)
  9498. return;
  9499. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(23,dataToHost,null,parameters._asyncContext$p$0,parameters._callback$p$0)
  9500. };
  9501. $h.ComposeBody.prototype.setAsync=function(data)
  9502. {
  9503. var args=[];
  9504. for(var $$pai_4=1; $$pai_4 < arguments["length"];++$$pai_4)
  9505. args[$$pai_4 - 1]=arguments[$$pai_4];
  9506. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"body.setAsync");
  9507. var parameters=$h.CommonParameters.parse(args,false);
  9508. if(!String["isInstanceOfType"](data))
  9509. throw Error.argumentType("data",Object["getType"](data),String);
  9510. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(data.length,0,1e6,"data");
  9511. var dataToHost=$h.ComposeBody._createParameterDictionaryToHost$i(data,parameters);
  9512. if(!dataToHost)
  9513. return;
  9514. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(38,dataToHost,null,parameters._asyncContext$p$0,parameters._callback$p$0)
  9515. };
  9516. $h.ComposeItem=function(data)
  9517. {
  9518. this.$$d__getBody$p$1=Function.createDelegate(this,this._getBody$p$1);
  9519. this.$$d__getSubject$p$1=Function.createDelegate(this,this._getSubject$p$1);
  9520. $h.ComposeItem["initializeBase"](this,[data]);
  9521. $h.InitialData._defineReadOnlyProperty$i(this,"subject",this.$$d__getSubject$p$1);
  9522. $h.InitialData._defineReadOnlyProperty$i(this,"body",this.$$d__getBody$p$1)
  9523. };
  9524. $h.ComposeItem.prototype={
  9525. _subject$p$1: null,
  9526. _body$p$1: null,
  9527. _getBody$p$1: function()
  9528. {
  9529. this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
  9530. if(!this._body$p$1)
  9531. this._body$p$1=new $h.ComposeBody;
  9532. return this._body$p$1
  9533. },
  9534. _getSubject$p$1: function()
  9535. {
  9536. this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
  9537. if(!this._subject$p$1)
  9538. this._subject$p$1=new $h.ComposeSubject;
  9539. return this._subject$p$1
  9540. }
  9541. };
  9542. $h.ComposeItem.prototype.addFileAttachmentAsync=function(uri, attachmentName)
  9543. {
  9544. var args=[];
  9545. for(var $$pai_6=2; $$pai_6 < arguments["length"];++$$pai_6)
  9546. args[$$pai_6 - 2]=arguments[$$pai_6];
  9547. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"addFileAttachmentAsync");
  9548. if(!$h.ScriptHelpers.isNonEmptyString(uri))
  9549. throw Error.argument("uri");
  9550. if(!$h.ScriptHelpers.isNonEmptyString(attachmentName))
  9551. throw Error.argument("attachmentName");
  9552. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(uri.length,0,2048,"uri");
  9553. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(attachmentName.length,0,255,"attachmentName");
  9554. var commonParameters=$h.CommonParameters.parse(args,false);
  9555. var isInline=false;
  9556. if(!$h.ScriptHelpers.isNull(commonParameters._options$p$0))
  9557. isInline=$h.ScriptHelpers.isValueTrue(commonParameters._options$p$0["isInline"]);
  9558. var parameters={
  9559. uri: uri,
  9560. name: attachmentName,
  9561. isInline: isInline,
  9562. __timeout__: 6e5
  9563. };
  9564. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(16,parameters,null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
  9565. };
  9566. $h.ComposeItem.prototype.addItemAttachmentAsync=function(itemId, attachmentName)
  9567. {
  9568. var args=[];
  9569. for(var $$pai_5=2; $$pai_5 < arguments["length"];++$$pai_5)
  9570. args[$$pai_5 - 2]=arguments[$$pai_5];
  9571. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"addItemAttachmentAsync");
  9572. if(!$h.ScriptHelpers.isNonEmptyString(itemId))
  9573. throw Error.argument("itemId");
  9574. if(!$h.ScriptHelpers.isNonEmptyString(attachmentName))
  9575. throw Error.argument("attachmentName");
  9576. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(itemId.length,0,200,"itemId");
  9577. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(attachmentName.length,0,255,"attachmentName");
  9578. var commonParameters=$h.CommonParameters.parse(args,false);
  9579. var parameters={
  9580. itemId: window["OSF"]["DDA"]["OutlookAppOm"].getItemIdBasedOnHost(itemId),
  9581. name: attachmentName,
  9582. __timeout__: 6e5
  9583. };
  9584. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(19,parameters,null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
  9585. };
  9586. $h.ComposeItem.prototype.removeAttachmentAsync=function(attachmentId)
  9587. {
  9588. var args=[];
  9589. for(var $$pai_3=1; $$pai_3 < arguments["length"];++$$pai_3)
  9590. args[$$pai_3 - 1]=arguments[$$pai_3];
  9591. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"removeAttachmentAsync");
  9592. if(!$h.ScriptHelpers.isNonEmptyString(attachmentId))
  9593. throw Error.argument("attachmentId");
  9594. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(attachmentId.length,0,200,"attachmentId");
  9595. var commonParameters=$h.CommonParameters.parse(args,false);
  9596. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(20,{attachmentIndex: attachmentId},null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
  9597. };
  9598. $h.ComposeItem.prototype.getSelectedDataAsync=function(coercionType)
  9599. {
  9600. var args=[];
  9601. for(var $$pai_7=1; $$pai_7 < arguments["length"];++$$pai_7)
  9602. args[$$pai_7 - 1]=arguments[$$pai_7];
  9603. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"getSelectedDataAsync");
  9604. var commonParameters=$h.CommonParameters.parse(args,true);
  9605. var hostCoercionType;
  9606. var $$t_5,
  9607. $$t_6;
  9608. if(coercionType !==window["Microsoft"]["Office"]["WebExtension"]["CoercionType"]["Html"] && coercionType !==window["Microsoft"]["Office"]["WebExtension"]["CoercionType"]["Text"] || !($$t_6=$h.Body._tryMapToHostCoercionType$i(coercionType,$$t_5={val: hostCoercionType}),hostCoercionType=$$t_5["val"],$$t_6))
  9609. throw Error.argument("coercionType");
  9610. var dataToHost={coercionType: hostCoercionType};
  9611. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(28,dataToHost,null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
  9612. };
  9613. $h.ComposeItem.prototype.setSelectedDataAsync=function(data)
  9614. {
  9615. var args=[];
  9616. for(var $$pai_4=1; $$pai_4 < arguments["length"];++$$pai_4)
  9617. args[$$pai_4 - 1]=arguments[$$pai_4];
  9618. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"setSelectedDataAsync");
  9619. var parameters=$h.CommonParameters.parse(args,false);
  9620. if(!String["isInstanceOfType"](data))
  9621. throw Error.argumentType("data",Object["getType"](data),String);
  9622. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(data.length,0,1e6,"data");
  9623. var dataToHost=$h.ComposeBody._createParameterDictionaryToHost$i(data,parameters);
  9624. if(!dataToHost)
  9625. return;
  9626. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(29,dataToHost,null,parameters._asyncContext$p$0,parameters._callback$p$0)
  9627. };
  9628. $h.ComposeItem.prototype.close=function()
  9629. {
  9630. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(41,null,null,null,null)
  9631. };
  9632. $h.ComposeItem.prototype.saveAsync=function()
  9633. {
  9634. var args=[];
  9635. for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
  9636. args[$$pai_2]=arguments[$$pai_2];
  9637. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"saveAsync");
  9638. var parameters=$h.CommonParameters.parse(args,false);
  9639. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(32,null,null,parameters._asyncContext$p$0,parameters._callback$p$0)
  9640. };
  9641. $h.ComposeRecipient=function(type, propertyName)
  9642. {
  9643. this._type$p$0=type;
  9644. this._propertyName$p$0=propertyName
  9645. };
  9646. $h.ComposeRecipient._throwOnInvalidDisplayNameOrEmail$p=function(displayName, emailAddress)
  9647. {
  9648. if(!displayName && !emailAddress)
  9649. throw Error.argument("recipients");
  9650. if(displayName && displayName.length > 255)
  9651. throw Error.argumentOutOfRange("recipients",displayName.length,window["_u"]["ExtensibilityStrings"]["l_DisplayNameTooLong_Text"]);
  9652. if(emailAddress && emailAddress.length > 571)
  9653. throw Error.argumentOutOfRange("recipients",emailAddress.length,window["_u"]["ExtensibilityStrings"]["l_EmailAddressTooLong_Text"]);
  9654. };
  9655. $h.ComposeRecipient._getAsyncFormatter$p=function(rawInput)
  9656. {
  9657. var input=rawInput;
  9658. var output=[];
  9659. for(var i=0; i < input["length"]; i++)
  9660. {
  9661. var email=new $h.EmailAddressDetails(input[i]);
  9662. output[i]=email
  9663. }
  9664. return output
  9665. };
  9666. $h.ComposeRecipient._createEmailDictionaryForHost$p=function(address, name)
  9667. {
  9668. return{
  9669. address: address,
  9670. name: name
  9671. }
  9672. };
  9673. $h.ComposeRecipient.prototype={
  9674. _propertyName$p$0: null,
  9675. _type$p$0: 0,
  9676. setAddHelper: function(recipients, args, isSet)
  9677. {
  9678. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(recipients["length"],0,100,"recipients");
  9679. var parameters=$h.CommonParameters.parse(args,false);
  9680. var recipientData=[];
  9681. if(Array["isInstanceOfType"](recipients))
  9682. for(var i=0; i < recipients["length"]; i++)
  9683. if(String["isInstanceOfType"](recipients[i]))
  9684. {
  9685. $h.ComposeRecipient._throwOnInvalidDisplayNameOrEmail$p(recipients[i],recipients[i]);
  9686. recipientData[i]=$h.ComposeRecipient._createEmailDictionaryForHost$p(recipients[i],recipients[i])
  9687. }
  9688. else if($h.EmailAddressDetails["isInstanceOfType"](recipients[i]))
  9689. {
  9690. var address=recipients[i];
  9691. $h.ComposeRecipient._throwOnInvalidDisplayNameOrEmail$p(address["displayName"],address["emailAddress"]);
  9692. recipientData[i]=$h.ComposeRecipient._createEmailDictionaryForHost$p(address["emailAddress"],address["displayName"])
  9693. }
  9694. else if(Object["isInstanceOfType"](recipients[i]))
  9695. {
  9696. var input=recipients[i];
  9697. var emailAddress=input["emailAddress"];
  9698. var displayName=input["displayName"];
  9699. $h.ComposeRecipient._throwOnInvalidDisplayNameOrEmail$p(displayName,emailAddress);
  9700. recipientData[i]=$h.ComposeRecipient._createEmailDictionaryForHost$p(emailAddress,displayName)
  9701. }
  9702. else
  9703. throw Error.argument("recipients");
  9704. else
  9705. throw Error.argument("recipients");
  9706. var $$t_B=this;
  9707. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(isSet ? 21 : 22,{
  9708. recipientField: this._type$p$0,
  9709. recipientArray: recipientData
  9710. },function(rawInput)
  9711. {
  9712. return rawInput
  9713. },parameters._asyncContext$p$0,parameters._callback$p$0)
  9714. }
  9715. };
  9716. $h.ComposeRecipient.prototype.getAsync=function()
  9717. {
  9718. var args=[];
  9719. for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
  9720. args[$$pai_2]=arguments[$$pai_2];
  9721. var parameters=$h.CommonParameters.parse(args,true);
  9722. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,this._propertyName$p$0+".getAsync");
  9723. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(15,{recipientField: this._type$p$0},$h.ComposeRecipient._getAsyncFormatter$p,parameters._asyncContext$p$0,parameters._callback$p$0)
  9724. };
  9725. $h.ComposeRecipient.prototype.setAsync=function(recipients)
  9726. {
  9727. var args=[];
  9728. for(var $$pai_2=1; $$pai_2 < arguments["length"];++$$pai_2)
  9729. args[$$pai_2 - 1]=arguments[$$pai_2];
  9730. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,this._propertyName$p$0+".setAsync");
  9731. this.setAddHelper(recipients,args,true)
  9732. };
  9733. $h.ComposeRecipient.prototype.addAsync=function(recipients)
  9734. {
  9735. var args=[];
  9736. for(var $$pai_2=1; $$pai_2 < arguments["length"];++$$pai_2)
  9737. args[$$pai_2 - 1]=arguments[$$pai_2];
  9738. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,this._propertyName$p$0+".addAsync");
  9739. this.setAddHelper(recipients,args,false)
  9740. };
  9741. $h.ComposeRecipient.RecipientField=function(){};
  9742. $h.ComposeRecipient.RecipientField.prototype={
  9743. to: 0,
  9744. cc: 1,
  9745. bcc: 2,
  9746. requiredAttendees: 0,
  9747. optionalAttendees: 1
  9748. };
  9749. $h.ComposeRecipient.RecipientField["registerEnum"]("$h.0",false);
  9750. $h.ComposeLocation=function(){};
  9751. $h.ComposeLocation.prototype.getAsync=function()
  9752. {
  9753. var args=[];
  9754. for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
  9755. args[$$pai_2]=arguments[$$pai_2];
  9756. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"location.getAsync");
  9757. var parameters=$h.CommonParameters.parse(args,true);
  9758. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(26,null,null,parameters._asyncContext$p$0,parameters._callback$p$0)
  9759. };
  9760. $h.ComposeLocation.prototype.setAsync=function(location)
  9761. {
  9762. var args=[];
  9763. for(var $$pai_3=1; $$pai_3 < arguments["length"];++$$pai_3)
  9764. args[$$pai_3 - 1]=arguments[$$pai_3];
  9765. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"location.setAsync");
  9766. var parameters=$h.CommonParameters.parse(args,false);
  9767. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(location.length,0,255,"location");
  9768. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(27,{location: location},null,parameters._asyncContext$p$0,parameters._callback$p$0)
  9769. };
  9770. $h.ComposeSubject=function(){};
  9771. $h.ComposeSubject.prototype.getAsync=function()
  9772. {
  9773. var args=[];
  9774. for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
  9775. args[$$pai_2]=arguments[$$pai_2];
  9776. var parameters=$h.CommonParameters.parse(args,true);
  9777. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"subject.getAsync");
  9778. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(18,null,null,parameters._asyncContext$p$0,parameters._callback$p$0)
  9779. };
  9780. $h.ComposeSubject.prototype.setAsync=function(data)
  9781. {
  9782. var args=[];
  9783. for(var $$pai_3=1; $$pai_3 < arguments["length"];++$$pai_3)
  9784. args[$$pai_3 - 1]=arguments[$$pai_3];
  9785. var parameters=$h.CommonParameters.parse(args,false);
  9786. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,"subject.setAsync");
  9787. if(!String["isInstanceOfType"](data))
  9788. throw Error.argument("data");
  9789. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(data.length,0,255,"data");
  9790. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(17,{subject: data},null,parameters._asyncContext$p$0,parameters._callback$p$0)
  9791. };
  9792. $h.ComposeTime=function(type)
  9793. {
  9794. this.$$d__ticksToDateFormatter$p$0=Function.createDelegate(this,this._ticksToDateFormatter$p$0);
  9795. this._timeType$p$0=type
  9796. };
  9797. $h.ComposeTime.prototype={
  9798. _timeType$p$0: 0,
  9799. _ticksToDateFormatter$p$0: function(rawInput)
  9800. {
  9801. var ticks=rawInput;
  9802. return new Date(ticks)
  9803. },
  9804. _getPropertyName$p$0: function()
  9805. {
  9806. return this._timeType$p$0===1 ? "start" : "end"
  9807. }
  9808. };
  9809. $h.ComposeTime.prototype.getAsync=function()
  9810. {
  9811. var args=[];
  9812. for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
  9813. args[$$pai_2]=arguments[$$pai_2];
  9814. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,this._getPropertyName$p$0()+".getAsync");
  9815. var parameters=$h.CommonParameters.parse(args,true);
  9816. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(24,{TimeProperty: this._timeType$p$0},this.$$d__ticksToDateFormatter$p$0,parameters._asyncContext$p$0,parameters._callback$p$0)
  9817. };
  9818. $h.ComposeTime.prototype.setAsync=function(dateTime)
  9819. {
  9820. var args=[];
  9821. for(var $$pai_3=1; $$pai_3 < arguments["length"];++$$pai_3)
  9822. args[$$pai_3 - 1]=arguments[$$pai_3];
  9823. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(2,this._getPropertyName$p$0()+".setAsync");
  9824. if(!Date["isInstanceOfType"](dateTime))
  9825. throw Error.argumentType("dateTime",Object["getType"](dateTime),Date);
  9826. if(window["isNaN"](dateTime["getTime"]()))
  9827. throw Error.argument("dateTime");
  9828. if(dateTime["getTime"]() < -864e13 || dateTime["getTime"]() > 864e13)
  9829. throw Error.argumentOutOfRange("dateTime");
  9830. var parameters=$h.CommonParameters.parse(args,false);
  9831. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(25,{
  9832. TimeProperty: this._timeType$p$0,
  9833. time: dateTime["getTime"]()
  9834. },null,parameters._asyncContext$p$0,parameters._callback$p$0)
  9835. };
  9836. $h.ComposeTime.TimeType=function(){};
  9837. $h.ComposeTime.TimeType.prototype={
  9838. start: 1,
  9839. end: 2
  9840. };
  9841. $h.ComposeTime.TimeType["registerEnum"]("$h.1",false);
  9842. $h.Contact=function(data)
  9843. {
  9844. this.$$d__getContactString$p$0=Function.createDelegate(this,this._getContactString$p$0);
  9845. this.$$d__getAddresses$p$0=Function.createDelegate(this,this._getAddresses$p$0);
  9846. this.$$d__getUrls$p$0=Function.createDelegate(this,this._getUrls$p$0);
  9847. this.$$d__getEmailAddresses$p$0=Function.createDelegate(this,this._getEmailAddresses$p$0);
  9848. this.$$d__getPhoneNumbers$p$0=Function.createDelegate(this,this._getPhoneNumbers$p$0);
  9849. this.$$d__getBusinessName$p$0=Function.createDelegate(this,this._getBusinessName$p$0);
  9850. this.$$d__getPersonName$p$0=Function.createDelegate(this,this._getPersonName$p$0);
  9851. this._data$p$0=data;
  9852. $h.InitialData._defineReadOnlyProperty$i(this,"personName",this.$$d__getPersonName$p$0);
  9853. $h.InitialData._defineReadOnlyProperty$i(this,"businessName",this.$$d__getBusinessName$p$0);
  9854. $h.InitialData._defineReadOnlyProperty$i(this,"phoneNumbers",this.$$d__getPhoneNumbers$p$0);
  9855. $h.InitialData._defineReadOnlyProperty$i(this,"emailAddresses",this.$$d__getEmailAddresses$p$0);
  9856. $h.InitialData._defineReadOnlyProperty$i(this,"urls",this.$$d__getUrls$p$0);
  9857. $h.InitialData._defineReadOnlyProperty$i(this,"addresses",this.$$d__getAddresses$p$0);
  9858. $h.InitialData._defineReadOnlyProperty$i(this,"contactString",this.$$d__getContactString$p$0)
  9859. };
  9860. $h.Contact.prototype={
  9861. _data$p$0: null,
  9862. _phoneNumbers$p$0: null,
  9863. _getPersonName$p$0: function()
  9864. {
  9865. return this._data$p$0["PersonName"]
  9866. },
  9867. _getBusinessName$p$0: function()
  9868. {
  9869. return this._data$p$0["BusinessName"]
  9870. },
  9871. _getAddresses$p$0: function()
  9872. {
  9873. return $h.Entities._getExtractedStringProperty$i(this._data$p$0,"Addresses")
  9874. },
  9875. _getEmailAddresses$p$0: function()
  9876. {
  9877. return $h.Entities._getExtractedStringProperty$i(this._data$p$0,"EmailAddresses")
  9878. },
  9879. _getUrls$p$0: function()
  9880. {
  9881. return $h.Entities._getExtractedStringProperty$i(this._data$p$0,"Urls")
  9882. },
  9883. _getPhoneNumbers$p$0: function()
  9884. {
  9885. if(!this._phoneNumbers$p$0)
  9886. {
  9887. var $$t_1=this;
  9888. this._phoneNumbers$p$0=$h.Entities._getExtractedObjects$i($h.PhoneNumber,this._data$p$0,"PhoneNumbers",function(data)
  9889. {
  9890. return new $h.PhoneNumber(data)
  9891. })
  9892. }
  9893. return this._phoneNumbers$p$0
  9894. },
  9895. _getContactString$p$0: function()
  9896. {
  9897. return this._data$p$0["ContactString"]
  9898. }
  9899. };
  9900. $h.CustomProperties=function(data)
  9901. {
  9902. if($h.ScriptHelpers.isNullOrUndefined(data))
  9903. throw Error.argumentNull("data");
  9904. if(Array["isInstanceOfType"](data))
  9905. {
  9906. var customPropertiesArray=data;
  9907. if(customPropertiesArray["length"] > 0)
  9908. this._data$p$0=customPropertiesArray[0];
  9909. else
  9910. throw Error.argument("data");
  9911. }
  9912. else
  9913. this._data$p$0=data
  9914. };
  9915. $h.CustomProperties.prototype={_data$p$0: null};
  9916. $h.CustomProperties.prototype.get=function(name)
  9917. {
  9918. var value=this._data$p$0[name];
  9919. if(typeof value==="string")
  9920. {
  9921. var valueString=value;
  9922. if(valueString.length > 6 && valueString.startsWith("Date(") && valueString.endsWith(")"))
  9923. {
  9924. var ticksString=valueString.substring(5,valueString.length - 1);
  9925. var ticks=window["parseInt"](ticksString);
  9926. if(!window["isNaN"](ticks))
  9927. {
  9928. var dateTimeValue=new Date(ticks);
  9929. if(dateTimeValue)
  9930. value=dateTimeValue
  9931. }
  9932. }
  9933. }
  9934. return value
  9935. };
  9936. $h.CustomProperties.prototype.set=function(name, value)
  9937. {
  9938. if(window["OSF"]["OUtil"]["isDate"](value))
  9939. value="Date("+value["getTime"]()+")";
  9940. this._data$p$0[name]=value
  9941. };
  9942. $h.CustomProperties.prototype.remove=function(name)
  9943. {
  9944. delete this._data$p$0[name]
  9945. };
  9946. $h.CustomProperties.prototype.saveAsync=function()
  9947. {
  9948. var args=[];
  9949. for(var $$pai_4=0; $$pai_4 < arguments["length"];++$$pai_4)
  9950. args[$$pai_4]=arguments[$$pai_4];
  9951. var MaxCustomPropertiesLength=2500;
  9952. if(window["JSON"]["stringify"](this._data$p$0).length > MaxCustomPropertiesLength)
  9953. throw Error.argument();
  9954. var parameters=$h.CommonParameters.parse(args,false,true);
  9955. var saveCustomProperties=new $h.SaveDictionaryRequest(parameters._callback$p$0,parameters._asyncContext$p$0);
  9956. saveCustomProperties._sendRequest$i$0(4,"SaveCustomProperties",{customProperties: this._data$p$0})
  9957. };
  9958. $h.Diagnostics=function(data, appName)
  9959. {
  9960. this.$$d__getOwaView$p$0=Function.createDelegate(this,this._getOwaView$p$0);
  9961. this.$$d__getHostVersion$p$0=Function.createDelegate(this,this._getHostVersion$p$0);
  9962. this.$$d__getHostName$p$0=Function.createDelegate(this,this._getHostName$p$0);
  9963. this._data$p$0=data;
  9964. this._appName$p$0=appName;
  9965. $h.InitialData._defineReadOnlyProperty$i(this,"hostName",this.$$d__getHostName$p$0);
  9966. $h.InitialData._defineReadOnlyProperty$i(this,"hostVersion",this.$$d__getHostVersion$p$0);
  9967. if(64===this._appName$p$0)
  9968. $h.InitialData._defineReadOnlyProperty$i(this,"OWAView",this.$$d__getOwaView$p$0)
  9969. };
  9970. $h.Diagnostics.prototype={
  9971. _data$p$0: null,
  9972. _appName$p$0: 0,
  9973. _getHostName$p$0: function()
  9974. {
  9975. switch(this._appName$p$0)
  9976. {
  9977. case 8:
  9978. return"Outlook";
  9979. case 64:
  9980. return"OutlookWebApp";
  9981. case 65536:
  9982. return"OutlookIOS";
  9983. case 4194304:
  9984. return"OutlookAndroid";
  9985. default:
  9986. return null
  9987. }
  9988. },
  9989. _getHostVersion$p$0: function()
  9990. {
  9991. return this._data$p$0.get__hostVersion$i$0()
  9992. },
  9993. _getOwaView$p$0: function()
  9994. {
  9995. return this._data$p$0.get__owaView$i$0()
  9996. }
  9997. };
  9998. $h.EmailAddressDetails=function(data)
  9999. {
  10000. this.$$d__getRecipientType$p$0=Function.createDelegate(this,this._getRecipientType$p$0);
  10001. this.$$d__getAppointmentResponse$p$0=Function.createDelegate(this,this._getAppointmentResponse$p$0);
  10002. this.$$d__getDisplayName$p$0=Function.createDelegate(this,this._getDisplayName$p$0);
  10003. this.$$d__getEmailAddress$p$0=Function.createDelegate(this,this._getEmailAddress$p$0);
  10004. this._data$p$0=data;
  10005. $h.InitialData._defineReadOnlyProperty$i(this,"emailAddress",this.$$d__getEmailAddress$p$0);
  10006. $h.InitialData._defineReadOnlyProperty$i(this,"displayName",this.$$d__getDisplayName$p$0);
  10007. if($h.ScriptHelpers.dictionaryContainsKey(data,"appointmentResponse"))
  10008. $h.InitialData._defineReadOnlyProperty$i(this,"appointmentResponse",this.$$d__getAppointmentResponse$p$0);
  10009. if($h.ScriptHelpers.dictionaryContainsKey(data,"recipientType"))
  10010. $h.InitialData._defineReadOnlyProperty$i(this,"recipientType",this.$$d__getRecipientType$p$0)
  10011. };
  10012. $h.EmailAddressDetails._createFromEmailUserDictionary$i=function(data)
  10013. {
  10014. var emailAddressDetailsDictionary={};
  10015. var displayName=data["Name"];
  10016. var emailAddress=data["UserId"];
  10017. emailAddressDetailsDictionary["name"]=displayName || $h.EmailAddressDetails._emptyString$p;
  10018. emailAddressDetailsDictionary["address"]=emailAddress || $h.EmailAddressDetails._emptyString$p;
  10019. return new $h.EmailAddressDetails(emailAddressDetailsDictionary)
  10020. };
  10021. $h.EmailAddressDetails.prototype={
  10022. _data$p$0: null,
  10023. _getEmailAddress$p$0: function()
  10024. {
  10025. return this._data$p$0["address"]
  10026. },
  10027. _getDisplayName$p$0: function()
  10028. {
  10029. return this._data$p$0["name"]
  10030. },
  10031. _getAppointmentResponse$p$0: function()
  10032. {
  10033. var response=this._data$p$0["appointmentResponse"];
  10034. return response < $h.EmailAddressDetails._responseTypeMap$p["length"] ? $h.EmailAddressDetails._responseTypeMap$p[response] : window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ResponseType"]["None"]
  10035. },
  10036. _getRecipientType$p$0: function()
  10037. {
  10038. var response=this._data$p$0["recipientType"];
  10039. return response < $h.EmailAddressDetails._recipientTypeMap$p["length"] ? $h.EmailAddressDetails._recipientTypeMap$p[response] : window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RecipientType"]["Other"]
  10040. }
  10041. };
  10042. $h.EmailAddressDetails.prototype.toJSON=function()
  10043. {
  10044. var result={};
  10045. result["emailAddress"]=this._getEmailAddress$p$0();
  10046. result["displayName"]=this._getDisplayName$p$0();
  10047. if($h.ScriptHelpers.dictionaryContainsKey(this._data$p$0,"appointmentResponse"))
  10048. result["appointmentResponse"]=this._getAppointmentResponse$p$0();
  10049. if($h.ScriptHelpers.dictionaryContainsKey(this._data$p$0,"recipientType"))
  10050. result["recipientType"]=this._getRecipientType$p$0();
  10051. return result
  10052. };
  10053. $h.Entities=function(data, filteredEntitiesData, timeSent, permissionLevel)
  10054. {
  10055. this.$$d__createMeetingSuggestion$p$0=Function.createDelegate(this,this._createMeetingSuggestion$p$0);
  10056. this.$$d__getParcelDeliveries$p$0=Function.createDelegate(this,this._getParcelDeliveries$p$0);
  10057. this.$$d__getFlightReservations$p$0=Function.createDelegate(this,this._getFlightReservations$p$0);
  10058. this.$$d__getContacts$p$0=Function.createDelegate(this,this._getContacts$p$0);
  10059. this.$$d__getPhoneNumbers$p$0=Function.createDelegate(this,this._getPhoneNumbers$p$0);
  10060. this.$$d__getUrls$p$0=Function.createDelegate(this,this._getUrls$p$0);
  10061. this.$$d__getEmailAddresses$p$0=Function.createDelegate(this,this._getEmailAddresses$p$0);
  10062. this.$$d__getMeetingSuggestions$p$0=Function.createDelegate(this,this._getMeetingSuggestions$p$0);
  10063. this.$$d__getTaskSuggestions$p$0=Function.createDelegate(this,this._getTaskSuggestions$p$0);
  10064. this.$$d__getAddresses$p$0=Function.createDelegate(this,this._getAddresses$p$0);
  10065. this._data$p$0=data || {};
  10066. this._filteredData$p$0=filteredEntitiesData || {};
  10067. this._dateTimeSent$p$0=timeSent;
  10068. $h.InitialData._defineReadOnlyProperty$i(this,"addresses",this.$$d__getAddresses$p$0);
  10069. $h.InitialData._defineReadOnlyProperty$i(this,"taskSuggestions",this.$$d__getTaskSuggestions$p$0);
  10070. $h.InitialData._defineReadOnlyProperty$i(this,"meetingSuggestions",this.$$d__getMeetingSuggestions$p$0);
  10071. $h.InitialData._defineReadOnlyProperty$i(this,"emailAddresses",this.$$d__getEmailAddresses$p$0);
  10072. $h.InitialData._defineReadOnlyProperty$i(this,"urls",this.$$d__getUrls$p$0);
  10073. $h.InitialData._defineReadOnlyProperty$i(this,"phoneNumbers",this.$$d__getPhoneNumbers$p$0);
  10074. $h.InitialData._defineReadOnlyProperty$i(this,"contacts",this.$$d__getContacts$p$0);
  10075. $h.InitialData._defineReadOnlyProperty$i(this,"flightReservations",this.$$d__getFlightReservations$p$0);
  10076. $h.InitialData._defineReadOnlyProperty$i(this,"parcelDeliveries",this.$$d__getParcelDeliveries$p$0);
  10077. this._permissionLevel$p$0=permissionLevel
  10078. };
  10079. $h.Entities._getExtractedObjects$i=function(T, data, name, creator, removeDuplicates, stringPropertyName)
  10080. {
  10081. var results=null;
  10082. var extractedObjects=data[name];
  10083. if(!extractedObjects)
  10084. return new Array(0);
  10085. if(removeDuplicates)
  10086. extractedObjects=$h.Entities._removeDuplicate$p(Object,extractedObjects,$h.Entities._entityDictionaryEquals$p,stringPropertyName);
  10087. results=new Array(extractedObjects["length"]);
  10088. var count=0;
  10089. for(var $$arr_9=extractedObjects, $$len_A=$$arr_9.length, $$idx_B=0; $$idx_B < $$len_A;++$$idx_B)
  10090. {
  10091. var extractedObject=$$arr_9[$$idx_B];
  10092. if(creator)
  10093. results[count++]=creator(extractedObject);
  10094. else
  10095. results[count++]=extractedObject
  10096. }
  10097. return results
  10098. };
  10099. $h.Entities._getExtractedStringProperty$i=function(data, name, removeDuplicate)
  10100. {
  10101. var extractedProperties=data[name];
  10102. if(!extractedProperties)
  10103. return new Array(0);
  10104. if(removeDuplicate)
  10105. extractedProperties=$h.Entities._removeDuplicate$p(String,extractedProperties,$h.Entities._stringEquals$p,null);
  10106. return extractedProperties
  10107. };
  10108. $h.Entities._createContact$p=function(data)
  10109. {
  10110. return new $h.Contact(data)
  10111. };
  10112. $h.Entities._createTaskSuggestion$p=function(data)
  10113. {
  10114. return new $h.TaskSuggestion(data)
  10115. };
  10116. $h.Entities._createPhoneNumber$p=function(data)
  10117. {
  10118. return new $h.PhoneNumber(data)
  10119. };
  10120. $h.Entities._entityDictionaryEquals$p=function(dictionary1, dictionary2, entityPropertyIdentifier)
  10121. {
  10122. if(dictionary1===dictionary2)
  10123. return true;
  10124. if(!dictionary1 || !dictionary2)
  10125. return false;
  10126. if(dictionary1[entityPropertyIdentifier]===dictionary2[entityPropertyIdentifier])
  10127. return true;
  10128. return false
  10129. };
  10130. $h.Entities._stringEquals$p=function(string1, string2, entityProperty)
  10131. {
  10132. return string1===string2
  10133. };
  10134. $h.Entities._removeDuplicate$p=function(T, array, entityEquals, entityPropertyIdentifier)
  10135. {
  10136. for(var matchIndex1=array["length"] - 1; matchIndex1 >=0; matchIndex1--)
  10137. {
  10138. var removeMatch=false;
  10139. for(var matchIndex2=matchIndex1 - 1; matchIndex2 >=0; matchIndex2--)
  10140. if(entityEquals(array[matchIndex1],array[matchIndex2],entityPropertyIdentifier))
  10141. {
  10142. removeMatch=true;
  10143. break
  10144. }
  10145. if(removeMatch)
  10146. Array.removeAt(array,matchIndex1)
  10147. }
  10148. return array
  10149. };
  10150. $h.Entities.prototype={
  10151. _dateTimeSent$p$0: null,
  10152. _data$p$0: null,
  10153. _filteredData$p$0: null,
  10154. _filteredEntitiesCache$p$0: null,
  10155. _permissionLevel$p$0: 0,
  10156. _taskSuggestions$p$0: null,
  10157. _meetingSuggestions$p$0: null,
  10158. _phoneNumbers$p$0: null,
  10159. _contacts$p$0: null,
  10160. _addresses$p$0: null,
  10161. _emailAddresses$p$0: null,
  10162. _urls$p$0: null,
  10163. _flightReservations$p$0: null,
  10164. _parcelDeliveries$p$0: null,
  10165. _getByType$i$0: function(entityType)
  10166. {
  10167. if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["MeetingSuggestion"])
  10168. return this._getMeetingSuggestions$p$0();
  10169. else if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["TaskSuggestion"])
  10170. return this._getTaskSuggestions$p$0();
  10171. else if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["Address"])
  10172. return this._getAddresses$p$0();
  10173. else if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["PhoneNumber"])
  10174. return this._getPhoneNumbers$p$0();
  10175. else if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["EmailAddress"])
  10176. return this._getEmailAddresses$p$0();
  10177. else if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["Url"])
  10178. return this._getUrls$p$0();
  10179. else if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["Contact"])
  10180. return this._getContacts$p$0();
  10181. else if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["FlightReservations"])
  10182. return this._getFlightReservations$p$0();
  10183. else if(entityType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["EntityType"]["ParcelDeliveries"])
  10184. return this._getParcelDeliveries$p$0();
  10185. return null
  10186. },
  10187. _getFilteredEntitiesByName$i$0: function(name)
  10188. {
  10189. if(!this._filteredEntitiesCache$p$0)
  10190. this._filteredEntitiesCache$p$0={};
  10191. if(!$h.ScriptHelpers.dictionaryContainsKey(this._filteredEntitiesCache$p$0,name))
  10192. {
  10193. var found=false;
  10194. for(var i=0; i < $h.Entities._allEntityKeys$p["length"]; i++)
  10195. {
  10196. var entityTypeKey=$h.Entities._allEntityKeys$p[i];
  10197. var perEntityTypeDictionary=this._filteredData$p$0[entityTypeKey];
  10198. if(!perEntityTypeDictionary)
  10199. continue;
  10200. if($h.ScriptHelpers.dictionaryContainsKey(perEntityTypeDictionary,name))
  10201. {
  10202. switch(entityTypeKey)
  10203. {
  10204. case"EmailAddresses":
  10205. case"Urls":
  10206. this._filteredEntitiesCache$p$0[name]=$h.Entities._getExtractedStringProperty$i(perEntityTypeDictionary,name);
  10207. break;
  10208. case"Addresses":
  10209. this._filteredEntitiesCache$p$0[name]=$h.Entities._getExtractedStringProperty$i(perEntityTypeDictionary,name,true);
  10210. break;
  10211. case"PhoneNumbers":
  10212. this._filteredEntitiesCache$p$0[name]=$h.Entities._getExtractedObjects$i($h.PhoneNumber,perEntityTypeDictionary,name,$h.Entities._createPhoneNumber$p,false,null);
  10213. break;
  10214. case"TaskSuggestions":
  10215. this._filteredEntitiesCache$p$0[name]=$h.Entities._getExtractedObjects$i($h.TaskSuggestion,perEntityTypeDictionary,name,$h.Entities._createTaskSuggestion$p,true,"TaskString");
  10216. break;
  10217. case"MeetingSuggestions":
  10218. this._filteredEntitiesCache$p$0[name]=$h.Entities._getExtractedObjects$i($h.MeetingSuggestion,perEntityTypeDictionary,name,this.$$d__createMeetingSuggestion$p$0,true,"MeetingString");
  10219. break;
  10220. case"Contacts":
  10221. this._filteredEntitiesCache$p$0[name]=$h.Entities._getExtractedObjects$i($h.Contact,perEntityTypeDictionary,name,$h.Entities._createContact$p,true,"ContactString");
  10222. break
  10223. }
  10224. found=true;
  10225. break
  10226. }
  10227. }
  10228. if(!found)
  10229. this._filteredEntitiesCache$p$0[name]=null
  10230. }
  10231. return this._filteredEntitiesCache$p$0[name]
  10232. },
  10233. _createMeetingSuggestion$p$0: function(data)
  10234. {
  10235. return new $h.MeetingSuggestion(data,this._dateTimeSent$p$0)
  10236. },
  10237. _getAddresses$p$0: function()
  10238. {
  10239. if(!this._addresses$p$0)
  10240. this._addresses$p$0=$h.Entities._getExtractedStringProperty$i(this._data$p$0,"Addresses",true);
  10241. return this._addresses$p$0
  10242. },
  10243. _getEmailAddresses$p$0: function()
  10244. {
  10245. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._permissionLevel$p$0);
  10246. if(!this._emailAddresses$p$0)
  10247. this._emailAddresses$p$0=$h.Entities._getExtractedStringProperty$i(this._data$p$0,"EmailAddresses",false);
  10248. return this._emailAddresses$p$0
  10249. },
  10250. _getUrls$p$0: function()
  10251. {
  10252. if(!this._urls$p$0)
  10253. this._urls$p$0=$h.Entities._getExtractedStringProperty$i(this._data$p$0,"Urls",false);
  10254. return this._urls$p$0
  10255. },
  10256. _getPhoneNumbers$p$0: function()
  10257. {
  10258. if(!this._phoneNumbers$p$0)
  10259. this._phoneNumbers$p$0=$h.Entities._getExtractedObjects$i($h.PhoneNumber,this._data$p$0,"PhoneNumbers",$h.Entities._createPhoneNumber$p);
  10260. return this._phoneNumbers$p$0
  10261. },
  10262. _getTaskSuggestions$p$0: function()
  10263. {
  10264. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._permissionLevel$p$0);
  10265. if(!this._taskSuggestions$p$0)
  10266. this._taskSuggestions$p$0=$h.Entities._getExtractedObjects$i($h.TaskSuggestion,this._data$p$0,"TaskSuggestions",$h.Entities._createTaskSuggestion$p,true,"TaskString");
  10267. return this._taskSuggestions$p$0
  10268. },
  10269. _getMeetingSuggestions$p$0: function()
  10270. {
  10271. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._permissionLevel$p$0);
  10272. if(!this._meetingSuggestions$p$0)
  10273. this._meetingSuggestions$p$0=$h.Entities._getExtractedObjects$i($h.MeetingSuggestion,this._data$p$0,"MeetingSuggestions",this.$$d__createMeetingSuggestion$p$0,true,"MeetingString");
  10274. return this._meetingSuggestions$p$0
  10275. },
  10276. _getContacts$p$0: function()
  10277. {
  10278. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._permissionLevel$p$0);
  10279. if(!this._contacts$p$0)
  10280. this._contacts$p$0=$h.Entities._getExtractedObjects$i($h.Contact,this._data$p$0,"Contacts",$h.Entities._createContact$p,true,"ContactString");
  10281. return this._contacts$p$0
  10282. },
  10283. _getParcelDeliveries$p$0: function()
  10284. {
  10285. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._permissionLevel$p$0);
  10286. if(!this._parcelDeliveries$p$0)
  10287. this._parcelDeliveries$p$0=$h.Entities._getExtractedObjects$i(Object,this._data$p$0,"ParcelDeliveries",null);
  10288. return this._parcelDeliveries$p$0
  10289. },
  10290. _getFlightReservations$p$0: function()
  10291. {
  10292. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._permissionLevel$p$0);
  10293. if(!this._flightReservations$p$0)
  10294. this._flightReservations$p$0=$h.Entities._getExtractedObjects$i(Object,this._data$p$0,"FlightReservations",null);
  10295. return this._flightReservations$p$0
  10296. }
  10297. };
  10298. $h.ReplyConstants=function(){};
  10299. $h.AsyncConstants=function(){};
  10300. window["Office"]["cast"]["item"]=Office.cast.item=function(){};
  10301. window["Office"]["cast"]["item"]["toItemRead"]=function(item)
  10302. {
  10303. if($h.Item["isInstanceOfType"](item))
  10304. return item;
  10305. throw Error.argumentType();
  10306. };
  10307. window["Office"]["cast"]["item"]["toItemCompose"]=function(item)
  10308. {
  10309. if($h.ComposeItem["isInstanceOfType"](item))
  10310. return item;
  10311. throw Error.argumentType();
  10312. };
  10313. window["Office"]["cast"]["item"]["toMessage"]=function(item)
  10314. {
  10315. return window["Office"]["cast"]["item"]["toMessageRead"](item)
  10316. };
  10317. window["Office"]["cast"]["item"]["toMessageRead"]=function(item)
  10318. {
  10319. if($h.Message["isInstanceOfType"](item))
  10320. return item;
  10321. throw Error.argumentType();
  10322. };
  10323. window["Office"]["cast"]["item"]["toMessageCompose"]=function(item)
  10324. {
  10325. if($h.MessageCompose["isInstanceOfType"](item))
  10326. return item;
  10327. throw Error.argumentType();
  10328. };
  10329. window["Office"]["cast"]["item"]["toMeetingRequest"]=function(item)
  10330. {
  10331. if($h.MeetingRequest["isInstanceOfType"](item))
  10332. return item;
  10333. throw Error.argumentType();
  10334. };
  10335. window["Office"]["cast"]["item"]["toAppointment"]=function(item)
  10336. {
  10337. return window["Office"]["cast"]["item"]["toAppointmentRead"](item)
  10338. };
  10339. window["Office"]["cast"]["item"]["toAppointmentRead"]=function(item)
  10340. {
  10341. if($h.Appointment["isInstanceOfType"](item))
  10342. return item;
  10343. throw Error.argumentType();
  10344. };
  10345. window["Office"]["cast"]["item"]["toAppointmentCompose"]=function(item)
  10346. {
  10347. if($h.AppointmentCompose["isInstanceOfType"](item))
  10348. return item;
  10349. throw Error.argumentType();
  10350. };
  10351. $h.Item=function(data)
  10352. {
  10353. this.$$d__getBody$p$1=Function.createDelegate(this,this._getBody$p$1);
  10354. this.$$d__getAttachments$p$1=Function.createDelegate(this,this._getAttachments$p$1);
  10355. this.$$d__getItemClass$p$1=Function.createDelegate(this,this._getItemClass$p$1);
  10356. this.$$d__getItemId$p$1=Function.createDelegate(this,this._getItemId$p$1);
  10357. this.$$d__getDateTimeModified$p$1=Function.createDelegate(this,this._getDateTimeModified$p$1);
  10358. this.$$d__getDateTimeCreated$p$1=Function.createDelegate(this,this._getDateTimeCreated$p$1);
  10359. $h.Item["initializeBase"](this,[data]);
  10360. $h.InitialData._defineReadOnlyProperty$i(this,"dateTimeCreated",this.$$d__getDateTimeCreated$p$1);
  10361. $h.InitialData._defineReadOnlyProperty$i(this,"dateTimeModified",this.$$d__getDateTimeModified$p$1);
  10362. $h.InitialData._defineReadOnlyProperty$i(this,"itemId",this.$$d__getItemId$p$1);
  10363. $h.InitialData._defineReadOnlyProperty$i(this,"itemClass",this.$$d__getItemClass$p$1);
  10364. $h.InitialData._defineReadOnlyProperty$i(this,"attachments",this.$$d__getAttachments$p$1);
  10365. $h.InitialData._defineReadOnlyProperty$i(this,"body",this.$$d__getBody$p$1)
  10366. };
  10367. $h.Item.prototype={
  10368. _body$p$1: null,
  10369. _getItemId$p$1: function()
  10370. {
  10371. return this._data$p$0.get__itemId$i$0()
  10372. },
  10373. _getItemClass$p$1: function()
  10374. {
  10375. return this._data$p$0.get__itemClass$i$0()
  10376. },
  10377. _getDateTimeCreated$p$1: function()
  10378. {
  10379. return this._data$p$0.get__dateTimeCreated$i$0()
  10380. },
  10381. _getDateTimeModified$p$1: function()
  10382. {
  10383. return this._data$p$0.get__dateTimeModified$i$0()
  10384. },
  10385. _getAttachments$p$1: function()
  10386. {
  10387. return this._data$p$0.get__attachments$i$0()
  10388. },
  10389. _getBody$p$1: function()
  10390. {
  10391. if(!this._body$p$1)
  10392. this._body$p$1=new $h.Body;
  10393. return this._body$p$1
  10394. }
  10395. };
  10396. $h.ItemBase=function(data)
  10397. {
  10398. this.$$d__createCustomProperties$i$0=Function.createDelegate(this,this._createCustomProperties$i$0);
  10399. this.$$d__getNotificationMessages$p$0=Function.createDelegate(this,this._getNotificationMessages$p$0);
  10400. this.$$d_getItemType=Function.createDelegate(this,this.getItemType);
  10401. this._data$p$0=data;
  10402. $h.InitialData._defineReadOnlyProperty$i(this,"itemType",this.$$d_getItemType);
  10403. $h.InitialData._defineReadOnlyProperty$i(this,"notificationMessages",this.$$d__getNotificationMessages$p$0)
  10404. };
  10405. $h.ItemBase.prototype={
  10406. _data$p$0: null,
  10407. _notificationMessages$p$0: null,
  10408. get_data: function()
  10409. {
  10410. return this._data$p$0
  10411. },
  10412. _createCustomProperties$i$0: function(data)
  10413. {
  10414. return new $h.CustomProperties(data)
  10415. },
  10416. _getNotificationMessages$p$0: function()
  10417. {
  10418. if(!this._notificationMessages$p$0)
  10419. this._notificationMessages$p$0=new $h.NotificationMessages;
  10420. return this._notificationMessages$p$0
  10421. }
  10422. };
  10423. $h.ItemBase.prototype.loadCustomPropertiesAsync=function()
  10424. {
  10425. var args=[];
  10426. for(var $$pai_3=0; $$pai_3 < arguments["length"];++$$pai_3)
  10427. args[$$pai_3]=arguments[$$pai_3];
  10428. var parameters=$h.CommonParameters.parse(args,true,true);
  10429. var loadCustomProperties=new $h._loadDictionaryRequest(this.$$d__createCustomProperties$i$0,"customProperties",parameters._callback$p$0,parameters._asyncContext$p$0);
  10430. loadCustomProperties._sendRequest$i$0(3,"LoadCustomProperties",{})
  10431. };
  10432. $h.MeetingRequest=function(data)
  10433. {
  10434. this.$$d__getRequiredAttendees$p$3=Function.createDelegate(this,this._getRequiredAttendees$p$3);
  10435. this.$$d__getOptionalAttendees$p$3=Function.createDelegate(this,this._getOptionalAttendees$p$3);
  10436. this.$$d__getLocation$p$3=Function.createDelegate(this,this._getLocation$p$3);
  10437. this.$$d__getEnd$p$3=Function.createDelegate(this,this._getEnd$p$3);
  10438. this.$$d__getStart$p$3=Function.createDelegate(this,this._getStart$p$3);
  10439. $h.MeetingRequest["initializeBase"](this,[data]);
  10440. $h.InitialData._defineReadOnlyProperty$i(this,"start",this.$$d__getStart$p$3);
  10441. $h.InitialData._defineReadOnlyProperty$i(this,"end",this.$$d__getEnd$p$3);
  10442. $h.InitialData._defineReadOnlyProperty$i(this,"location",this.$$d__getLocation$p$3);
  10443. $h.InitialData._defineReadOnlyProperty$i(this,"optionalAttendees",this.$$d__getOptionalAttendees$p$3);
  10444. $h.InitialData._defineReadOnlyProperty$i(this,"requiredAttendees",this.$$d__getRequiredAttendees$p$3)
  10445. };
  10446. $h.MeetingRequest.prototype={
  10447. _getStart$p$3: function()
  10448. {
  10449. return this._data$p$0.get__start$i$0()
  10450. },
  10451. _getEnd$p$3: function()
  10452. {
  10453. return this._data$p$0.get__end$i$0()
  10454. },
  10455. _getLocation$p$3: function()
  10456. {
  10457. return this._data$p$0.get__location$i$0()
  10458. },
  10459. _getOptionalAttendees$p$3: function()
  10460. {
  10461. return this._data$p$0.get__cc$i$0()
  10462. },
  10463. _getRequiredAttendees$p$3: function()
  10464. {
  10465. return this._data$p$0.get__to$i$0()
  10466. }
  10467. };
  10468. $h.MeetingSuggestion=function(data, dateTimeSent)
  10469. {
  10470. this.$$d__getEndTime$p$0=Function.createDelegate(this,this._getEndTime$p$0);
  10471. this.$$d__getStartTime$p$0=Function.createDelegate(this,this._getStartTime$p$0);
  10472. this.$$d__getSubject$p$0=Function.createDelegate(this,this._getSubject$p$0);
  10473. this.$$d__getLocation$p$0=Function.createDelegate(this,this._getLocation$p$0);
  10474. this.$$d__getAttendees$p$0=Function.createDelegate(this,this._getAttendees$p$0);
  10475. this.$$d__getMeetingString$p$0=Function.createDelegate(this,this._getMeetingString$p$0);
  10476. this._data$p$0=data;
  10477. this._dateTimeSent$p$0=dateTimeSent;
  10478. $h.InitialData._defineReadOnlyProperty$i(this,"meetingString",this.$$d__getMeetingString$p$0);
  10479. $h.InitialData._defineReadOnlyProperty$i(this,"attendees",this.$$d__getAttendees$p$0);
  10480. $h.InitialData._defineReadOnlyProperty$i(this,"location",this.$$d__getLocation$p$0);
  10481. $h.InitialData._defineReadOnlyProperty$i(this,"subject",this.$$d__getSubject$p$0);
  10482. $h.InitialData._defineReadOnlyProperty$i(this,"start",this.$$d__getStartTime$p$0);
  10483. $h.InitialData._defineReadOnlyProperty$i(this,"end",this.$$d__getEndTime$p$0)
  10484. };
  10485. $h.MeetingSuggestion.prototype={
  10486. _dateTimeSent$p$0: null,
  10487. _data$p$0: null,
  10488. _attendees$p$0: null,
  10489. _getMeetingString$p$0: function()
  10490. {
  10491. return this._data$p$0["MeetingString"]
  10492. },
  10493. _getLocation$p$0: function()
  10494. {
  10495. return this._data$p$0["Location"]
  10496. },
  10497. _getSubject$p$0: function()
  10498. {
  10499. return this._data$p$0["Subject"]
  10500. },
  10501. _getStartTime$p$0: function()
  10502. {
  10503. var time=this._createDateTimeFromParameter$p$0("StartTime");
  10504. var resolvedTime=$h.MeetingSuggestionTimeDecoder.resolve(time,this._dateTimeSent$p$0);
  10505. if(resolvedTime["getTime"]() !==time["getTime"]())
  10506. return window["OSF"]["DDA"]["OutlookAppOm"]._instance$p["convertToUtcClientTime"](window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._dateToDictionary$i$0(resolvedTime));
  10507. return time
  10508. },
  10509. _getEndTime$p$0: function()
  10510. {
  10511. var time=this._createDateTimeFromParameter$p$0("EndTime");
  10512. var resolvedTime=$h.MeetingSuggestionTimeDecoder.resolve(time,this._dateTimeSent$p$0);
  10513. if(resolvedTime["getTime"]() !==time["getTime"]())
  10514. return window["OSF"]["DDA"]["OutlookAppOm"]._instance$p["convertToUtcClientTime"](window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._dateToDictionary$i$0(resolvedTime));
  10515. return time
  10516. },
  10517. _createDateTimeFromParameter$p$0: function(keyName)
  10518. {
  10519. var dateTimeString=this._data$p$0[keyName];
  10520. if(!dateTimeString)
  10521. return null;
  10522. return new Date(dateTimeString)
  10523. },
  10524. _getAttendees$p$0: function()
  10525. {
  10526. if(!this._attendees$p$0)
  10527. {
  10528. var $$t_1=this;
  10529. this._attendees$p$0=$h.Entities._getExtractedObjects$i($h.EmailAddressDetails,this._data$p$0,"Attendees",function(data)
  10530. {
  10531. return $h.EmailAddressDetails._createFromEmailUserDictionary$i(data)
  10532. })
  10533. }
  10534. return this._attendees$p$0
  10535. }
  10536. };
  10537. $h.MeetingSuggestionTimeDecoder=function(){};
  10538. $h.MeetingSuggestionTimeDecoder.resolve=function(inTime, sentTime)
  10539. {
  10540. if(!sentTime)
  10541. return inTime;
  10542. try
  10543. {
  10544. var tod;
  10545. var outDate;
  10546. var extractedDate;
  10547. var sentDate=new Date(sentTime["getFullYear"](),sentTime["getMonth"](),sentTime["getDate"](),0,0,0,0);
  10548. var $$t_7,
  10549. $$t_8,
  10550. $$t_9;
  10551. if(!($$t_9=$h.MeetingSuggestionTimeDecoder._decode$p(inTime,$$t_7={val: extractedDate},$$t_8={val: tod}),extractedDate=$$t_7["val"],tod=$$t_8["val"],$$t_9))
  10552. return inTime;
  10553. else
  10554. {
  10555. if($h._preciseDate["isInstanceOfType"](extractedDate))
  10556. outDate=$h.MeetingSuggestionTimeDecoder._resolvePreciseDate$p(sentDate,extractedDate);
  10557. else if($h._relativeDate["isInstanceOfType"](extractedDate))
  10558. outDate=$h.MeetingSuggestionTimeDecoder._resolveRelativeDate$p(sentDate,extractedDate);
  10559. else
  10560. outDate=sentDate;
  10561. if(window["isNaN"](outDate["getTime"]()))
  10562. return sentTime;
  10563. outDate["setMilliseconds"](outDate["getMilliseconds"]()+tod);
  10564. return outDate
  10565. }
  10566. }
  10567. catch($$e_6)
  10568. {
  10569. return sentTime
  10570. }
  10571. };
  10572. $h.MeetingSuggestionTimeDecoder._isNullOrUndefined$i=function(value)
  10573. {
  10574. return null===value || value===undefined
  10575. };
  10576. $h.MeetingSuggestionTimeDecoder._resolvePreciseDate$p=function(sentDate, precise)
  10577. {
  10578. var year=precise._year$i$1;
  10579. var month=!precise._month$i$1 ? sentDate["getMonth"]() : precise._month$i$1 - 1;
  10580. var day=precise._day$i$1;
  10581. if(!day)
  10582. return sentDate;
  10583. var candidate;
  10584. if($h.MeetingSuggestionTimeDecoder._isNullOrUndefined$i(year))
  10585. {
  10586. candidate=new Date(sentDate["getFullYear"](),month,day);
  10587. if(candidate["getTime"]() < sentDate["getTime"]())
  10588. candidate=new Date(sentDate["getFullYear"]()+1,month,day)
  10589. }
  10590. else
  10591. candidate=new Date(year < 50 ? 2e3+year : 1900+year,month,day);
  10592. if(candidate["getMonth"]() !==month)
  10593. return sentDate;
  10594. return candidate
  10595. };
  10596. $h.MeetingSuggestionTimeDecoder._resolveRelativeDate$p=function(sentDate, relative)
  10597. {
  10598. var date;
  10599. switch(relative._unit$i$1)
  10600. {
  10601. case 0:
  10602. date=new Date(sentDate["getFullYear"](),sentDate["getMonth"](),sentDate["getDate"]());
  10603. date["setDate"](date["getDate"]()+relative._offset$i$1);
  10604. return date;
  10605. case 5:
  10606. return $h.MeetingSuggestionTimeDecoder._findBestDateForWeekDate$p(sentDate,relative._offset$i$1,relative._tag$i$1);
  10607. case 2:
  10608. var days=1;
  10609. switch(relative._modifier$i$1)
  10610. {
  10611. case 1:
  10612. break;
  10613. case 2:
  10614. days=16;
  10615. break;
  10616. default:
  10617. if(!relative._offset$i$1)
  10618. days=sentDate["getDate"]();
  10619. break
  10620. }
  10621. date=new Date(sentDate["getFullYear"](),sentDate["getMonth"](),days);
  10622. date["setMonth"](date["getMonth"]()+relative._offset$i$1);
  10623. if(date["getTime"]() < sentDate["getTime"]())
  10624. date["setDate"](date["getDate"]()+sentDate["getDate"]() - 1);
  10625. return date;
  10626. case 1:
  10627. date=new Date(sentDate["getFullYear"](),sentDate["getMonth"](),sentDate["getDate"]());
  10628. date["setDate"](sentDate["getDate"]()+7 * relative._offset$i$1);
  10629. if(relative._modifier$i$1===1 || !relative._modifier$i$1)
  10630. {
  10631. date["setDate"](date["getDate"]()+1 - date["getDay"]());
  10632. if(date["getTime"]() < sentDate["getTime"]())
  10633. return sentDate;
  10634. return date
  10635. }
  10636. else if(relative._modifier$i$1===2)
  10637. {
  10638. date["setDate"](date["getDate"]()+5 - date["getDay"]());
  10639. return date
  10640. }
  10641. break;
  10642. case 4:
  10643. return $h.MeetingSuggestionTimeDecoder._findBestDateForWeekOfMonthDate$p(sentDate,relative);
  10644. case 3:
  10645. if(relative._offset$i$1 > 0)
  10646. return new Date(sentDate["getFullYear"]()+relative._offset$i$1,0,1);
  10647. break;
  10648. default:
  10649. break
  10650. }
  10651. return sentDate
  10652. };
  10653. $h.MeetingSuggestionTimeDecoder._findBestDateForWeekDate$p=function(sentDate, offset, tag)
  10654. {
  10655. if(offset > -5 && offset < 5)
  10656. {
  10657. var dayOfWeek=(tag+6) % 7+1;
  10658. var days=7 * offset+(dayOfWeek - sentDate["getDay"]());
  10659. sentDate["setDate"](sentDate["getDate"]()+days);
  10660. return sentDate
  10661. }
  10662. else
  10663. {
  10664. var days=(tag - sentDate["getDay"]()) % 7;
  10665. if(days < 0)
  10666. days+=7;
  10667. sentDate["setDate"](sentDate["getDate"]()+days);
  10668. return sentDate
  10669. }
  10670. };
  10671. $h.MeetingSuggestionTimeDecoder._findBestDateForWeekOfMonthDate$p=function(sentDate, relative)
  10672. {
  10673. var date;
  10674. var firstDay;
  10675. var newDate;
  10676. date=sentDate;
  10677. if(relative._tag$i$1 <=0 || relative._tag$i$1 > 12 || relative._offset$i$1 <=0 || relative._offset$i$1 > 5)
  10678. return sentDate;
  10679. var monthOffset=(12+relative._tag$i$1 - date["getMonth"]() - 1) % 12;
  10680. firstDay=new Date(date["getFullYear"](),date["getMonth"]()+monthOffset,1);
  10681. if(relative._modifier$i$1===1)
  10682. if(relative._offset$i$1===1 && firstDay["getDay"]() !==6 && firstDay["getDay"]())
  10683. return firstDay;
  10684. else
  10685. {
  10686. newDate=new Date(firstDay["getFullYear"](),firstDay["getMonth"](),firstDay["getDate"]());
  10687. newDate["setDate"](newDate["getDate"]()+(7+(1 - firstDay["getDay"]())) % 7);
  10688. if(firstDay["getDay"]() !==6 && firstDay["getDay"]() && firstDay["getDay"]() !==1)
  10689. newDate["setDate"](newDate["getDate"]() - 7);
  10690. newDate["setDate"](newDate["getDate"]()+7 * (relative._offset$i$1 - 1));
  10691. if(newDate["getMonth"]()+1 !==relative._tag$i$1)
  10692. return sentDate;
  10693. return newDate
  10694. }
  10695. else
  10696. {
  10697. newDate=new Date(firstDay["getFullYear"](),firstDay["getMonth"](),$h.MeetingSuggestionTimeDecoder._daysInMonth$p(firstDay["getMonth"](),firstDay["getFullYear"]()));
  10698. var offset=1 - newDate["getDay"]();
  10699. if(offset > 0)
  10700. offset=offset - 7;
  10701. newDate["setDate"](newDate["getDate"]()+offset);
  10702. newDate["setDate"](newDate["getDate"]()+7 * (1 - relative._offset$i$1));
  10703. if(newDate["getMonth"]()+1 !==relative._tag$i$1)
  10704. if(firstDay["getDay"]() !==6 && firstDay["getDay"]())
  10705. return firstDay;
  10706. else
  10707. return sentDate;
  10708. else
  10709. return newDate
  10710. }
  10711. };
  10712. $h.MeetingSuggestionTimeDecoder._decode$p=function(inDate, date, time)
  10713. {
  10714. var DateValueMask=32767;
  10715. date["val"]=null;
  10716. time["val"]=0;
  10717. if(!inDate)
  10718. return false;
  10719. time["val"]=$h.MeetingSuggestionTimeDecoder._getTimeOfDayInMillisecondsUTC$p(inDate);
  10720. var inDateAtMidnight=inDate["getTime"]() - time["val"];
  10721. var value=(inDateAtMidnight - $h.MeetingSuggestionTimeDecoder._baseDate$p["getTime"]()) / 864e5;
  10722. if(value < 0)
  10723. return false;
  10724. else if(value >=262144)
  10725. return false;
  10726. else
  10727. {
  10728. var type=value >> 15;
  10729. value=value & DateValueMask;
  10730. switch(type)
  10731. {
  10732. case 0:
  10733. return $h.MeetingSuggestionTimeDecoder._decodePreciseDate$p(value,date);
  10734. case 1:
  10735. return $h.MeetingSuggestionTimeDecoder._decodeRelativeDate$p(value,date);
  10736. default:
  10737. return false
  10738. }
  10739. }
  10740. };
  10741. $h.MeetingSuggestionTimeDecoder._decodePreciseDate$p=function(value, date)
  10742. {
  10743. var c_SubTypeMask=7;
  10744. var c_MonthMask=15;
  10745. var c_DayMask=31;
  10746. var c_YearMask=127;
  10747. var year=null;
  10748. var month=0;
  10749. var day=0;
  10750. date["val"]=null;
  10751. var subType=value >> 12 & c_SubTypeMask;
  10752. if((subType & 4)===4)
  10753. {
  10754. year=value >> 5 & c_YearMask;
  10755. if((subType & 2)===2)
  10756. {
  10757. if((subType & 1)===1)
  10758. return false;
  10759. month=value >> 1 & c_MonthMask
  10760. }
  10761. }
  10762. else
  10763. {
  10764. if((subType & 2)===2)
  10765. month=value >> 8 & c_MonthMask;
  10766. if((subType & 1)===1)
  10767. day=value >> 3 & c_DayMask
  10768. }
  10769. date["val"]=new $h._preciseDate(day,month,year);
  10770. return true
  10771. };
  10772. $h.MeetingSuggestionTimeDecoder._decodeRelativeDate$p=function(value, date)
  10773. {
  10774. var TagMask=15;
  10775. var OffsetMask=63;
  10776. var UnitMask=7;
  10777. var ModifierMask=3;
  10778. var tag=value & TagMask;
  10779. value >>=4;
  10780. var offset=$h.MeetingSuggestionTimeDecoder._fromComplement$p(value & OffsetMask,6);
  10781. value >>=6;
  10782. var unit=value & UnitMask;
  10783. value >>=3;
  10784. var modifier=value & ModifierMask;
  10785. try
  10786. {
  10787. date["val"]=new $h._relativeDate(modifier,offset,unit,tag);
  10788. return true
  10789. }
  10790. catch($$e_A)
  10791. {
  10792. date["val"]=null;
  10793. return false
  10794. }
  10795. };
  10796. $h.MeetingSuggestionTimeDecoder._fromComplement$p=function(value, n)
  10797. {
  10798. var signed=1 << n - 1;
  10799. var mask=(1 << n) - 1;
  10800. if((value & signed)===signed)
  10801. return-((value ^ mask)+1);
  10802. else
  10803. return value
  10804. };
  10805. $h.MeetingSuggestionTimeDecoder._daysInMonth$p=function(month, year)
  10806. {
  10807. return 32 - new Date(year,month,32)["getDate"]()
  10808. };
  10809. $h.MeetingSuggestionTimeDecoder._getTimeOfDayInMillisecondsUTC$p=function(inputTime)
  10810. {
  10811. var timeOfDay=0;
  10812. timeOfDay+=inputTime["getUTCHours"]() * 3600;
  10813. timeOfDay+=inputTime["getUTCMinutes"]() * 60;
  10814. timeOfDay+=inputTime["getUTCSeconds"]();
  10815. timeOfDay *=1e3;
  10816. timeOfDay+=inputTime["getUTCMilliseconds"]();
  10817. return timeOfDay
  10818. };
  10819. $h._extractedDate=function(){};
  10820. $h._preciseDate=function(day, month, year)
  10821. {
  10822. $h._preciseDate["initializeBase"](this);
  10823. if(day < 0 || day > 31)
  10824. throw Error.argumentOutOfRange("day");
  10825. if(month < 0 || month > 12)
  10826. throw Error.argumentOutOfRange("month");
  10827. this._day$i$1=day;
  10828. this._month$i$1=month;
  10829. if(!$h.MeetingSuggestionTimeDecoder._isNullOrUndefined$i(year))
  10830. {
  10831. if(!month && day)
  10832. throw Error.argument("Invalid arguments");
  10833. if(year < 0 || year > 2099)
  10834. throw Error.argumentOutOfRange("year");
  10835. this._year$i$1=year % 100
  10836. }
  10837. else if(!this._month$i$1 && !this._day$i$1)
  10838. throw Error.argument("Invalid datetime");
  10839. };
  10840. $h._preciseDate.prototype={
  10841. _day$i$1: 0,
  10842. _month$i$1: 0,
  10843. _year$i$1: null
  10844. };
  10845. $h._relativeDate=function(modifier, offset, unit, tag)
  10846. {
  10847. $h._relativeDate["initializeBase"](this);
  10848. if(offset < -32 || offset > 31)
  10849. throw Error.argumentOutOfRange("offset");
  10850. if(tag < 0 || tag > 15)
  10851. throw Error.argumentOutOfRange("tag");
  10852. if(!unit && offset < 0)
  10853. throw Error.argument("unit & offset do not form a valid date");
  10854. this._modifier$i$1=modifier;
  10855. this._offset$i$1=offset;
  10856. this._unit$i$1=unit;
  10857. this._tag$i$1=tag
  10858. };
  10859. $h._relativeDate.prototype={
  10860. _modifier$i$1: 0,
  10861. _offset$i$1: 0,
  10862. _unit$i$1: 0,
  10863. _tag$i$1: 0
  10864. };
  10865. $h.Message=function(dataDictionary)
  10866. {
  10867. this.$$d__getConversationId$p$2=Function.createDelegate(this,this._getConversationId$p$2);
  10868. this.$$d__getInternetMessageId$p$2=Function.createDelegate(this,this._getInternetMessageId$p$2);
  10869. this.$$d__getCc$p$2=Function.createDelegate(this,this._getCc$p$2);
  10870. this.$$d__getTo$p$2=Function.createDelegate(this,this._getTo$p$2);
  10871. this.$$d__getFrom$p$2=Function.createDelegate(this,this._getFrom$p$2);
  10872. this.$$d__getSender$p$2=Function.createDelegate(this,this._getSender$p$2);
  10873. this.$$d__getNormalizedSubject$p$2=Function.createDelegate(this,this._getNormalizedSubject$p$2);
  10874. this.$$d__getSubject$p$2=Function.createDelegate(this,this._getSubject$p$2);
  10875. $h.Message["initializeBase"](this,[dataDictionary]);
  10876. $h.InitialData._defineReadOnlyProperty$i(this,"subject",this.$$d__getSubject$p$2);
  10877. $h.InitialData._defineReadOnlyProperty$i(this,"normalizedSubject",this.$$d__getNormalizedSubject$p$2);
  10878. $h.InitialData._defineReadOnlyProperty$i(this,"sender",this.$$d__getSender$p$2);
  10879. $h.InitialData._defineReadOnlyProperty$i(this,"from",this.$$d__getFrom$p$2);
  10880. $h.InitialData._defineReadOnlyProperty$i(this,"to",this.$$d__getTo$p$2);
  10881. $h.InitialData._defineReadOnlyProperty$i(this,"cc",this.$$d__getCc$p$2);
  10882. $h.InitialData._defineReadOnlyProperty$i(this,"internetMessageId",this.$$d__getInternetMessageId$p$2);
  10883. $h.InitialData._defineReadOnlyProperty$i(this,"conversationId",this.$$d__getConversationId$p$2)
  10884. };
  10885. $h.Message.prototype={
  10886. getItemType: function()
  10887. {
  10888. return window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ItemType"]["Message"]
  10889. },
  10890. _getSubject$p$2: function()
  10891. {
  10892. return this._data$p$0.get__subject$i$0()
  10893. },
  10894. _getNormalizedSubject$p$2: function()
  10895. {
  10896. return this._data$p$0.get__normalizedSubject$i$0()
  10897. },
  10898. _getSender$p$2: function()
  10899. {
  10900. return this._data$p$0.get__sender$i$0()
  10901. },
  10902. _getFrom$p$2: function()
  10903. {
  10904. return this._data$p$0.get__from$i$0()
  10905. },
  10906. _getTo$p$2: function()
  10907. {
  10908. return this._data$p$0.get__to$i$0()
  10909. },
  10910. _getCc$p$2: function()
  10911. {
  10912. return this._data$p$0.get__cc$i$0()
  10913. },
  10914. _getInternetMessageId$p$2: function()
  10915. {
  10916. return this._data$p$0.get__internetMessageId$i$0()
  10917. },
  10918. _getConversationId$p$2: function()
  10919. {
  10920. return this._data$p$0.get__conversationId$i$0()
  10921. }
  10922. };
  10923. $h.Message.prototype.getEntities=function()
  10924. {
  10925. return this._data$p$0._getEntities$i$0()
  10926. };
  10927. $h.Message.prototype.getEntitiesByType=function(entityType)
  10928. {
  10929. return this._data$p$0._getEntitiesByType$i$0(entityType)
  10930. };
  10931. $h.Message.prototype.getFilteredEntitiesByName=function(name)
  10932. {
  10933. return this._data$p$0._getFilteredEntitiesByName$i$0(name)
  10934. };
  10935. $h.Message.prototype.getSelectedEntities=function()
  10936. {
  10937. return this._data$p$0._getSelectedEntities$i$0()
  10938. };
  10939. $h.Message.prototype.getRegExMatches=function()
  10940. {
  10941. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"getRegExMatches");
  10942. return this._data$p$0._getRegExMatches$i$0()
  10943. };
  10944. $h.Message.prototype.getRegExMatchesByName=function(name)
  10945. {
  10946. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"getRegExMatchesByName");
  10947. return this._data$p$0._getRegExMatchesByName$i$0(name)
  10948. };
  10949. $h.Message.prototype.getSelectedRegExMatches=function()
  10950. {
  10951. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(1,"getSelectedRegExMatches");
  10952. return this._data$p$0._getSelectedRegExMatches$i$0()
  10953. };
  10954. $h.Message.prototype.displayReplyForm=function(obj)
  10955. {
  10956. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._displayReplyForm$i$0(obj)
  10957. };
  10958. $h.Message.prototype.displayReplyAllForm=function(obj)
  10959. {
  10960. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._displayReplyAllForm$i$0(obj)
  10961. };
  10962. $h.MessageCompose=function(data)
  10963. {
  10964. this.$$d__getConversationId$p$2=Function.createDelegate(this,this._getConversationId$p$2);
  10965. this.$$d__getBcc$p$2=Function.createDelegate(this,this._getBcc$p$2);
  10966. this.$$d__getCc$p$2=Function.createDelegate(this,this._getCc$p$2);
  10967. this.$$d__getTo$p$2=Function.createDelegate(this,this._getTo$p$2);
  10968. $h.MessageCompose["initializeBase"](this,[data]);
  10969. $h.InitialData._defineReadOnlyProperty$i(this,"to",this.$$d__getTo$p$2);
  10970. $h.InitialData._defineReadOnlyProperty$i(this,"cc",this.$$d__getCc$p$2);
  10971. $h.InitialData._defineReadOnlyProperty$i(this,"bcc",this.$$d__getBcc$p$2);
  10972. $h.InitialData._defineReadOnlyProperty$i(this,"conversationId",this.$$d__getConversationId$p$2)
  10973. };
  10974. $h.MessageCompose.prototype={
  10975. _to$p$2: null,
  10976. _cc$p$2: null,
  10977. _bcc$p$2: null,
  10978. getItemType: function()
  10979. {
  10980. return window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ItemType"]["Message"]
  10981. },
  10982. _getTo$p$2: function()
  10983. {
  10984. this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
  10985. if(!this._to$p$2)
  10986. this._to$p$2=new $h.ComposeRecipient(0,"to");
  10987. return this._to$p$2
  10988. },
  10989. _getCc$p$2: function()
  10990. {
  10991. this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
  10992. if(!this._cc$p$2)
  10993. this._cc$p$2=new $h.ComposeRecipient(1,"cc");
  10994. return this._cc$p$2
  10995. },
  10996. _getBcc$p$2: function()
  10997. {
  10998. this._data$p$0._throwOnRestrictedPermissionLevel$i$0();
  10999. if(!this._bcc$p$2)
  11000. this._bcc$p$2=new $h.ComposeRecipient(2,"bcc");
  11001. return this._bcc$p$2
  11002. },
  11003. _getConversationId$p$2: function()
  11004. {
  11005. return this._data$p$0.get__conversationId$i$0()
  11006. }
  11007. };
  11008. $h.NotificationMessages=function(){};
  11009. $h.NotificationMessages._mapToHostItemNotificationMessageType$p=function(dataToHost)
  11010. {
  11011. var notificationType;
  11012. var hostItemNotificationMessageType;
  11013. notificationType=dataToHost["type"];
  11014. if(notificationType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ItemNotificationMessageType"]["ProgressIndicator"])
  11015. hostItemNotificationMessageType=1;
  11016. else if(notificationType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ItemNotificationMessageType"]["InformationalMessage"])
  11017. hostItemNotificationMessageType=0;
  11018. else if(notificationType===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ItemNotificationMessageType"]["ErrorMessage"])
  11019. hostItemNotificationMessageType=2;
  11020. else
  11021. throw Error.argument("type");
  11022. dataToHost["type"]=hostItemNotificationMessageType
  11023. };
  11024. $h.NotificationMessages._validateKey$p=function(key)
  11025. {
  11026. if(!$h.ScriptHelpers.isNonEmptyString(key))
  11027. throw Error.argument("key");
  11028. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(key.length,0,32,"key")
  11029. };
  11030. $h.NotificationMessages._validateDictionary$p=function(dictionary)
  11031. {
  11032. if(!$h.ScriptHelpers.isNonEmptyString(dictionary["type"]))
  11033. throw Error.argument("type");
  11034. if(dictionary["type"]===window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ItemNotificationMessageType"]["InformationalMessage"])
  11035. {
  11036. if(!$h.ScriptHelpers.isNonEmptyString(dictionary["icon"]))
  11037. throw Error.argument("icon");
  11038. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(dictionary["icon"].length,0,32,"icon");
  11039. if($h.ScriptHelpers.isUndefined(dictionary["persistent"]))
  11040. throw Error.argument("persistent");
  11041. if(!Boolean["isInstanceOfType"](dictionary["persistent"]))
  11042. throw Error.argumentType("persistent",Object["getType"](dictionary["persistent"]),Boolean);
  11043. }
  11044. else
  11045. {
  11046. if(!$h.ScriptHelpers.isUndefined(dictionary["icon"]))
  11047. throw Error.argument("icon");
  11048. if(!$h.ScriptHelpers.isUndefined(dictionary["persistent"]))
  11049. throw Error.argument("persistent");
  11050. }
  11051. if(!$h.ScriptHelpers.isNonEmptyString(dictionary["message"]))
  11052. throw Error.argument("message");
  11053. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnOutOfRange$i(dictionary["message"].length,0,150,"message")
  11054. };
  11055. $h.NotificationMessages.prototype.addAsync=function(key, dictionary)
  11056. {
  11057. var args=[];
  11058. for(var $$pai_5=2; $$pai_5 < arguments["length"];++$$pai_5)
  11059. args[$$pai_5 - 2]=arguments[$$pai_5];
  11060. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(0,"NotificationMessages.addAsync");
  11061. var commonParameters=$h.CommonParameters.parse(args,false);
  11062. $h.NotificationMessages._validateKey$p(key);
  11063. $h.NotificationMessages._validateDictionary$p(dictionary);
  11064. var dataToHost={};
  11065. dataToHost=$h.ScriptHelpers.deepClone(dictionary);
  11066. dataToHost["key"]=key;
  11067. $h.NotificationMessages._mapToHostItemNotificationMessageType$p(dataToHost);
  11068. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(33,dataToHost,null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
  11069. };
  11070. $h.NotificationMessages.prototype.getAllAsync=function()
  11071. {
  11072. var args=[];
  11073. for(var $$pai_2=0; $$pai_2 < arguments["length"];++$$pai_2)
  11074. args[$$pai_2]=arguments[$$pai_2];
  11075. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(0,"NotificationMessages.getAllAsync");
  11076. var commonParameters=$h.CommonParameters.parse(args,true);
  11077. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(34,null,null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
  11078. };
  11079. $h.NotificationMessages.prototype.replaceAsync=function(key, dictionary)
  11080. {
  11081. var args=[];
  11082. for(var $$pai_5=2; $$pai_5 < arguments["length"];++$$pai_5)
  11083. args[$$pai_5 - 2]=arguments[$$pai_5];
  11084. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(0,"NotificationMessages.replaceAsync");
  11085. var commonParameters=$h.CommonParameters.parse(args,false);
  11086. $h.NotificationMessages._validateKey$p(key);
  11087. $h.NotificationMessages._validateDictionary$p(dictionary);
  11088. var dataToHost={};
  11089. dataToHost=$h.ScriptHelpers.deepClone(dictionary);
  11090. dataToHost["key"]=key;
  11091. $h.NotificationMessages._mapToHostItemNotificationMessageType$p(dataToHost);
  11092. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(35,dataToHost,null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
  11093. };
  11094. $h.NotificationMessages.prototype.removeAsync=function(key)
  11095. {
  11096. var args=[];
  11097. for(var $$pai_4=1; $$pai_4 < arguments["length"];++$$pai_4)
  11098. args[$$pai_4 - 1]=arguments[$$pai_4];
  11099. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._throwOnMethodCallForInsufficientPermission$i$0(0,"NotificationMessages.removeAsync");
  11100. var commonParameters=$h.CommonParameters.parse(args,false);
  11101. $h.NotificationMessages._validateKey$p(key);
  11102. var dataToHost={key: key};
  11103. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p._standardInvokeHostMethod$i$0(36,dataToHost,null,commonParameters._asyncContext$p$0,commonParameters._callback$p$0)
  11104. };
  11105. $h.OutlookErrorManager=function(){};
  11106. $h.OutlookErrorManager.getErrorArgs=function(errorCode)
  11107. {
  11108. if(!$h.OutlookErrorManager._isInitialized$p)
  11109. $h.OutlookErrorManager._initialize$p();
  11110. return OSF.DDA.ErrorCodeManager["getErrorArgs"](errorCode)
  11111. };
  11112. $h.OutlookErrorManager._initialize$p=function()
  11113. {
  11114. $h.OutlookErrorManager._addErrorMessage$p(9e3,"AttachmentSizeExceeded",window["_u"]["ExtensibilityStrings"]["l_AttachmentExceededSize_Text"]);
  11115. $h.OutlookErrorManager._addErrorMessage$p(9001,"NumberOfAttachmentsExceeded",window["_u"]["ExtensibilityStrings"]["l_ExceededMaxNumberOfAttachments_Text"]);
  11116. $h.OutlookErrorManager._addErrorMessage$p(9002,"InternalFormatError",window["_u"]["ExtensibilityStrings"]["l_InternalFormatError_Text"]);
  11117. $h.OutlookErrorManager._addErrorMessage$p(9003,"InvalidAttachmentId",window["_u"]["ExtensibilityStrings"]["l_InvalidAttachmentId_Text"]);
  11118. $h.OutlookErrorManager._addErrorMessage$p(9004,"InvalidAttachmentPath",window["_u"]["ExtensibilityStrings"]["l_InvalidAttachmentPath_Text"]);
  11119. $h.OutlookErrorManager._addErrorMessage$p(9005,"CannotAddAttachmentBeforeUpgrade",window["_u"]["ExtensibilityStrings"]["l_CannotAddAttachmentBeforeUpgrade_Text"]);
  11120. $h.OutlookErrorManager._addErrorMessage$p(9006,"AttachmentDeletedBeforeUploadCompletes",window["_u"]["ExtensibilityStrings"]["l_AttachmentDeletedBeforeUploadCompletes_Text"]);
  11121. $h.OutlookErrorManager._addErrorMessage$p(9007,"AttachmentUploadGeneralFailure",window["_u"]["ExtensibilityStrings"]["l_AttachmentUploadGeneralFailure_Text"]);
  11122. $h.OutlookErrorManager._addErrorMessage$p(9008,"AttachmentToDeleteDoesNotExist",window["_u"]["ExtensibilityStrings"]["l_DeleteAttachmentDoesNotExist_Text"]);
  11123. $h.OutlookErrorManager._addErrorMessage$p(9009,"AttachmentDeleteGeneralFailure",window["_u"]["ExtensibilityStrings"]["l_AttachmentDeleteGeneralFailure_Text"]);
  11124. $h.OutlookErrorManager._addErrorMessage$p(9010,"InvalidEndTime",window["_u"]["ExtensibilityStrings"]["l_InvalidEndTime_Text"]);
  11125. $h.OutlookErrorManager._addErrorMessage$p(9011,"HtmlSanitizationFailure",window["_u"]["ExtensibilityStrings"]["l_HtmlSanitizationFailure_Text"]);
  11126. $h.OutlookErrorManager._addErrorMessage$p(9012,"NumberOfRecipientsExceeded",String.format(window["_u"]["ExtensibilityStrings"]["l_NumberOfRecipientsExceeded_Text"],500));
  11127. $h.OutlookErrorManager._addErrorMessage$p(9013,"NoValidRecipientsProvided",window["_u"]["ExtensibilityStrings"]["l_NoValidRecipientsProvided_Text"]);
  11128. $h.OutlookErrorManager._addErrorMessage$p(9014,"CursorPositionChanged",window["_u"]["ExtensibilityStrings"]["l_CursorPositionChanged_Text"]);
  11129. $h.OutlookErrorManager._addErrorMessage$p(9016,"InvalidSelection",window["_u"]["ExtensibilityStrings"]["l_InvalidSelection_Text"]);
  11130. $h.OutlookErrorManager._addErrorMessage$p(9017,"AccessRestricted","");
  11131. $h.OutlookErrorManager._addErrorMessage$p(9018,"GenericTokenError","");
  11132. $h.OutlookErrorManager._addErrorMessage$p(9019,"GenericSettingsError","");
  11133. $h.OutlookErrorManager._addErrorMessage$p(9020,"GenericResponseError","");
  11134. $h.OutlookErrorManager._addErrorMessage$p(9021,"SaveError",window["_u"]["ExtensibilityStrings"]["l_SaveError_Text"]);
  11135. $h.OutlookErrorManager._addErrorMessage$p(9022,"MessageInDifferentStoreError",window["_u"]["ExtensibilityStrings"]["l_MessageInDifferentStoreError_Text"]);
  11136. $h.OutlookErrorManager._addErrorMessage$p(9023,"DuplicateNotificationKey",window["_u"]["ExtensibilityStrings"]["l_DuplicateNotificationKey_Text"]);
  11137. $h.OutlookErrorManager._addErrorMessage$p(9024,"NotificationKeyNotFound",window["_u"]["ExtensibilityStrings"]["l_NotificationKeyNotFound_Text"]);
  11138. $h.OutlookErrorManager._addErrorMessage$p(9025,"NumberOfNotificationsExceeded",window["_u"]["ExtensibilityStrings"]["l_NumberOfNotificationsExceeded_Text"]);
  11139. $h.OutlookErrorManager._addErrorMessage$p(9026,"PersistedNotificationArrayReadError",window["_u"]["ExtensibilityStrings"]["l_PersistedNotificationArrayReadError_Text"]);
  11140. $h.OutlookErrorManager._addErrorMessage$p(9027,"PersistedNotificationArraySaveError",window["_u"]["ExtensibilityStrings"]["l_PersistedNotificationArraySaveError_Text"]);
  11141. $h.OutlookErrorManager._addErrorMessage$p(9028,"CannotPersistPropertyInUnsavedDraftError",window["_u"]["ExtensibilityStrings"]["l_CannotPersistPropertyInUnsavedDraftError_Text"]);
  11142. $h.OutlookErrorManager._addErrorMessage$p(9029,"CanOnlyGetTokenForSavedItem",window["_u"]["ExtensibilityStrings"]["l_CallSaveAsyncBeforeToken_Text"]);
  11143. $h.OutlookErrorManager._isInitialized$p=true
  11144. };
  11145. $h.OutlookErrorManager._addErrorMessage$p=function(errorCode, errorName, errorMessage)
  11146. {
  11147. OSF.DDA.ErrorCodeManager["addErrorMessage"](errorCode,{
  11148. name: errorName,
  11149. message: errorMessage
  11150. })
  11151. };
  11152. $h.OutlookErrorManager.OutlookErrorCodes=function(){};
  11153. $h.OutlookErrorManager.OsfDdaErrorCodes=function(){};
  11154. $h.PhoneNumber=function(data)
  11155. {
  11156. this.$$d__getPhoneType$p$0=Function.createDelegate(this,this._getPhoneType$p$0);
  11157. this.$$d__getOriginalPhoneString$p$0=Function.createDelegate(this,this._getOriginalPhoneString$p$0);
  11158. this.$$d__getPhoneString$p$0=Function.createDelegate(this,this._getPhoneString$p$0);
  11159. this._data$p$0=data;
  11160. $h.InitialData._defineReadOnlyProperty$i(this,"phoneString",this.$$d__getPhoneString$p$0);
  11161. $h.InitialData._defineReadOnlyProperty$i(this,"originalPhoneString",this.$$d__getOriginalPhoneString$p$0);
  11162. $h.InitialData._defineReadOnlyProperty$i(this,"type",this.$$d__getPhoneType$p$0)
  11163. };
  11164. $h.PhoneNumber.prototype={
  11165. _data$p$0: null,
  11166. _getPhoneString$p$0: function()
  11167. {
  11168. return this._data$p$0["PhoneString"]
  11169. },
  11170. _getOriginalPhoneString$p$0: function()
  11171. {
  11172. return this._data$p$0["OriginalPhoneString"]
  11173. },
  11174. _getPhoneType$p$0: function()
  11175. {
  11176. return this._data$p$0["Type"]
  11177. }
  11178. };
  11179. $h.TaskSuggestion=function(data)
  11180. {
  11181. this.$$d__getAssignees$p$0=Function.createDelegate(this,this._getAssignees$p$0);
  11182. this.$$d__getTaskString$p$0=Function.createDelegate(this,this._getTaskString$p$0);
  11183. this._data$p$0=data;
  11184. $h.InitialData._defineReadOnlyProperty$i(this,"taskString",this.$$d__getTaskString$p$0);
  11185. $h.InitialData._defineReadOnlyProperty$i(this,"assignees",this.$$d__getAssignees$p$0)
  11186. };
  11187. $h.TaskSuggestion.prototype={
  11188. _data$p$0: null,
  11189. _assignees$p$0: null,
  11190. _getTaskString$p$0: function()
  11191. {
  11192. return this._data$p$0["TaskString"]
  11193. },
  11194. _getAssignees$p$0: function()
  11195. {
  11196. if(!this._assignees$p$0)
  11197. {
  11198. var $$t_1=this;
  11199. this._assignees$p$0=$h.Entities._getExtractedObjects$i($h.EmailAddressDetails,this._data$p$0,"Assignees",function(data)
  11200. {
  11201. return $h.EmailAddressDetails._createFromEmailUserDictionary$i(data)
  11202. })
  11203. }
  11204. return this._assignees$p$0
  11205. }
  11206. };
  11207. $h.UserProfile=function(data)
  11208. {
  11209. this.$$d__getUserProfileType$p$0=Function.createDelegate(this,this._getUserProfileType$p$0);
  11210. this.$$d__getTimeZone$p$0=Function.createDelegate(this,this._getTimeZone$p$0);
  11211. this.$$d__getEmailAddress$p$0=Function.createDelegate(this,this._getEmailAddress$p$0);
  11212. this.$$d__getDisplayName$p$0=Function.createDelegate(this,this._getDisplayName$p$0);
  11213. this._data$p$0=data;
  11214. $h.InitialData._defineReadOnlyProperty$i(this,"displayName",this.$$d__getDisplayName$p$0);
  11215. $h.InitialData._defineReadOnlyProperty$i(this,"emailAddress",this.$$d__getEmailAddress$p$0);
  11216. $h.InitialData._defineReadOnlyProperty$i(this,"timeZone",this.$$d__getTimeZone$p$0);
  11217. $h.InitialData._defineReadOnlyProperty$i(this,"type",this.$$d__getUserProfileType$p$0)
  11218. };
  11219. $h.UserProfile.prototype={
  11220. _data$p$0: null,
  11221. _getUserProfileType$p$0: function()
  11222. {
  11223. return this._data$p$0.get__userProfileType$i$0()
  11224. },
  11225. _getDisplayName$p$0: function()
  11226. {
  11227. return this._data$p$0.get__userDisplayName$i$0()
  11228. },
  11229. _getEmailAddress$p$0: function()
  11230. {
  11231. return this._data$p$0.get__userEmailAddress$i$0()
  11232. },
  11233. _getTimeZone$p$0: function()
  11234. {
  11235. return this._data$p$0.get__userTimeZone$i$0()
  11236. }
  11237. };
  11238. $h.OutlookDispid=function(){};
  11239. $h.OutlookDispid.prototype={
  11240. owaOnlyMethod: 0,
  11241. getInitialData: 1,
  11242. getUserIdentityToken: 2,
  11243. loadCustomProperties: 3,
  11244. saveCustomProperties: 4,
  11245. ewsRequest: 5,
  11246. displayNewAppointmentForm: 7,
  11247. displayMessageForm: 8,
  11248. displayAppointmentForm: 9,
  11249. displayReplyForm: 10,
  11250. displayReplyAllForm: 11,
  11251. getCallbackToken: 12,
  11252. bodySetSelectedDataAsync: 13,
  11253. getBodyTypeAsync: 14,
  11254. getRecipientsAsync: 15,
  11255. addFileAttachmentAsync: 16,
  11256. setSubjectAsync: 17,
  11257. getSubjectAsync: 18,
  11258. addItemAttachmentAsync: 19,
  11259. removeAttachmentAsync: 20,
  11260. setRecipientsAsync: 21,
  11261. addRecipientsAsync: 22,
  11262. bodyPrependAsync: 23,
  11263. getTimeAsync: 24,
  11264. setTimeAsync: 25,
  11265. getLocationAsync: 26,
  11266. setLocationAsync: 27,
  11267. getSelectedDataAsync: 28,
  11268. setSelectedDataAsync: 29,
  11269. displayReplyFormWithAttachments: 30,
  11270. displayReplyAllFormWithAttachments: 31,
  11271. saveAsync: 32,
  11272. addNotficationMessageAsync: 33,
  11273. getAllNotficationMessagesAsync: 34,
  11274. replaceNotficationMessageAsync: 35,
  11275. removeNotficationMessageAsync: 36,
  11276. getBodyAsync: 37,
  11277. setBodyAsync: 38,
  11278. appCommands1: 39,
  11279. registerConsentAsync: 40,
  11280. close: 41,
  11281. closeApp: 42,
  11282. displayPersonaCardAsync: 43,
  11283. displayNewMessageForm: 44,
  11284. navigateToModuleAsync: 45,
  11285. eventCompleted: 94,
  11286. closeContainer: 97,
  11287. messageParent: 144,
  11288. trackCtq: 400,
  11289. recordTrace: 401,
  11290. recordDataPoint: 402,
  11291. windowOpenOverrideHandler: 403,
  11292. saveSettingsRequest: 404
  11293. };
  11294. $h.OutlookDispid["registerEnum"]("$h.2",false);
  11295. $h.RequestState=function(){};
  11296. $h.RequestState.prototype={
  11297. unsent: 0,
  11298. opened: 1,
  11299. headersReceived: 2,
  11300. loading: 3,
  11301. done: 4
  11302. };
  11303. $h.RequestState["registerEnum"]("$h.3",false);
  11304. $h.CommonParameters=function(options, callback, asyncContext)
  11305. {
  11306. this._options$p$0=options;
  11307. this._callback$p$0=callback;
  11308. this._asyncContext$p$0=asyncContext
  11309. };
  11310. $h.CommonParameters.parse=function(args, isCallbackRequired, tryLegacy)
  11311. {
  11312. var legacyParameters;
  11313. var $$t_8,
  11314. $$t_9;
  11315. if(tryLegacy && ($$t_9=$h.CommonParameters._tryParseLegacy$p(args,$$t_8={val: legacyParameters}),legacyParameters=$$t_8["val"],$$t_9))
  11316. return legacyParameters;
  11317. var argsLength=args["length"];
  11318. var options=null;
  11319. var callback=null;
  11320. var asyncContext=null;
  11321. if(argsLength===1)
  11322. if(Function["isInstanceOfType"](args[0]))
  11323. callback=args[0];
  11324. else if(Object["isInstanceOfType"](args[0]))
  11325. options=args[0];
  11326. else
  11327. throw Error.argumentType();
  11328. else if(argsLength===2)
  11329. {
  11330. if(!Object["isInstanceOfType"](args[0]))
  11331. throw Error.argument("options");
  11332. if(!Function["isInstanceOfType"](args[1]))
  11333. throw Error.argument("callback");
  11334. options=args[0];
  11335. callback=args[1]
  11336. }
  11337. else if(argsLength)
  11338. throw Error.parameterCount(window["_u"]["ExtensibilityStrings"]["l_ParametersNotAsExpected_Text"]);
  11339. if(isCallbackRequired && !callback)
  11340. throw Error.argumentNull("callback");
  11341. if(options && !$h.ScriptHelpers.isNullOrUndefined(options["asyncContext"]))
  11342. asyncContext=options["asyncContext"];
  11343. return new $h.CommonParameters(options,callback,asyncContext)
  11344. };
  11345. $h.CommonParameters._tryParseLegacy$p=function(args, commonParameters)
  11346. {
  11347. commonParameters["val"]=null;
  11348. var argsLength=args["length"];
  11349. var callback=null;
  11350. var userContext=null;
  11351. if(!argsLength || argsLength > 2)
  11352. return false;
  11353. if(!Function["isInstanceOfType"](args[0]))
  11354. return false;
  11355. callback=args[0];
  11356. if(argsLength > 1)
  11357. userContext=args[1];
  11358. commonParameters["val"]=new $h.CommonParameters(null,callback,userContext);
  11359. return true
  11360. };
  11361. $h.CommonParameters.prototype={
  11362. _options$p$0: null,
  11363. _callback$p$0: null,
  11364. _asyncContext$p$0: null,
  11365. get_options: function()
  11366. {
  11367. return this._options$p$0
  11368. },
  11369. get_callback: function()
  11370. {
  11371. return this._callback$p$0
  11372. },
  11373. get_asyncContext: function()
  11374. {
  11375. return this._asyncContext$p$0
  11376. }
  11377. };
  11378. $h.EwsRequest=function(userContext)
  11379. {
  11380. $h.EwsRequest["initializeBase"](this,[userContext])
  11381. };
  11382. $h.EwsRequest.prototype={
  11383. readyState: 1,
  11384. status: 0,
  11385. statusText: null,
  11386. onreadystatechange: null,
  11387. responseText: null,
  11388. get__statusCode$i$1: function()
  11389. {
  11390. return this.status
  11391. },
  11392. set__statusCode$i$1: function(value)
  11393. {
  11394. this.status=value;
  11395. return value
  11396. },
  11397. get__statusDescription$i$1: function()
  11398. {
  11399. return this.statusText
  11400. },
  11401. set__statusDescription$i$1: function(value)
  11402. {
  11403. this.statusText=value;
  11404. return value
  11405. },
  11406. get__requestState$i$1: function()
  11407. {
  11408. return this.readyState
  11409. },
  11410. set__requestState$i$1: function(value)
  11411. {
  11412. this.readyState=value;
  11413. return value
  11414. },
  11415. get_hasOnReadyStateChangeCallback: function()
  11416. {
  11417. return!$h.ScriptHelpers.isNullOrUndefined(this.onreadystatechange)
  11418. },
  11419. get__response$i$1: function()
  11420. {
  11421. return this.responseText
  11422. },
  11423. set__response$i$1: function(value)
  11424. {
  11425. this.responseText=value;
  11426. return value
  11427. },
  11428. send: function(data)
  11429. {
  11430. this._checkSendConditions$i$1();
  11431. if($h.ScriptHelpers.isNullOrUndefined(data))
  11432. this._throwInvalidStateException$i$1();
  11433. this._sendRequest$i$0(5,"EwsRequest",{body: data})
  11434. },
  11435. _callOnReadyStateChangeCallback$i$1: function()
  11436. {
  11437. if(!$h.ScriptHelpers.isNullOrUndefined(this.onreadystatechange))
  11438. this.onreadystatechange()
  11439. },
  11440. _parseExtraResponseData$i$1: function(response){},
  11441. executeExtraFailedResponseSteps: function(){}
  11442. };
  11443. $h.InitialData=function(data)
  11444. {
  11445. this._data$p$0=data;
  11446. this._permissionLevel$p$0=this._calculatePermissionLevel$p$0()
  11447. };
  11448. $h.InitialData._defineReadOnlyProperty$i=function(o, methodName, getter)
  11449. {
  11450. var propertyDescriptor={
  11451. get: getter,
  11452. configurable: false
  11453. };
  11454. window["Object"]["defineProperty"](o,methodName,propertyDescriptor)
  11455. };
  11456. $h.InitialData.prototype={
  11457. _toRecipients$p$0: null,
  11458. _ccRecipients$p$0: null,
  11459. _attachments$p$0: null,
  11460. _resources$p$0: null,
  11461. _entities$p$0: null,
  11462. _selectedEntities$p$0: null,
  11463. _data$p$0: null,
  11464. _permissionLevel$p$0: 0,
  11465. get__isRestIdSupported$i$0: function()
  11466. {
  11467. return this._data$p$0["isRestIdSupported"]
  11468. },
  11469. get__itemId$i$0: function()
  11470. {
  11471. return this._data$p$0["id"]
  11472. },
  11473. get__itemClass$i$0: function()
  11474. {
  11475. return this._data$p$0["itemClass"]
  11476. },
  11477. get__dateTimeCreated$i$0: function()
  11478. {
  11479. return new Date(this._data$p$0["dateTimeCreated"])
  11480. },
  11481. get__dateTimeModified$i$0: function()
  11482. {
  11483. return new Date(this._data$p$0["dateTimeModified"])
  11484. },
  11485. get__dateTimeSent$i$0: function()
  11486. {
  11487. return new Date(this._data$p$0["dateTimeSent"])
  11488. },
  11489. get__subject$i$0: function()
  11490. {
  11491. this._throwOnRestrictedPermissionLevel$i$0();
  11492. return this._data$p$0["subject"]
  11493. },
  11494. get__normalizedSubject$i$0: function()
  11495. {
  11496. this._throwOnRestrictedPermissionLevel$i$0();
  11497. return this._data$p$0["normalizedSubject"]
  11498. },
  11499. get__internetMessageId$i$0: function()
  11500. {
  11501. return this._data$p$0["internetMessageId"]
  11502. },
  11503. get__conversationId$i$0: function()
  11504. {
  11505. return this._data$p$0["conversationId"]
  11506. },
  11507. get__sender$i$0: function()
  11508. {
  11509. this._throwOnRestrictedPermissionLevel$i$0();
  11510. var sender=this._data$p$0["sender"];
  11511. return $h.ScriptHelpers.isNullOrUndefined(sender) ? null : new $h.EmailAddressDetails(sender)
  11512. },
  11513. get__from$i$0: function()
  11514. {
  11515. this._throwOnRestrictedPermissionLevel$i$0();
  11516. var from=this._data$p$0["from"];
  11517. return $h.ScriptHelpers.isNullOrUndefined(from) ? null : new $h.EmailAddressDetails(from)
  11518. },
  11519. get__to$i$0: function()
  11520. {
  11521. this._throwOnRestrictedPermissionLevel$i$0();
  11522. if(null===this._toRecipients$p$0)
  11523. this._toRecipients$p$0=this._createEmailAddressDetails$p$0("to");
  11524. return this._toRecipients$p$0
  11525. },
  11526. get__cc$i$0: function()
  11527. {
  11528. this._throwOnRestrictedPermissionLevel$i$0();
  11529. if(null===this._ccRecipients$p$0)
  11530. this._ccRecipients$p$0=this._createEmailAddressDetails$p$0("cc");
  11531. return this._ccRecipients$p$0
  11532. },
  11533. get__attachments$i$0: function()
  11534. {
  11535. this._throwOnRestrictedPermissionLevel$i$0();
  11536. if(null===this._attachments$p$0)
  11537. this._attachments$p$0=this._createAttachmentDetails$p$0();
  11538. return this._attachments$p$0
  11539. },
  11540. get__ewsUrl$i$0: function()
  11541. {
  11542. return this._data$p$0["ewsUrl"]
  11543. },
  11544. get__restUrl$i$0: function()
  11545. {
  11546. return this._data$p$0["restUrl"]
  11547. },
  11548. get__marketplaceAssetId$i$0: function()
  11549. {
  11550. return this._data$p$0["marketplaceAssetId"]
  11551. },
  11552. get__extensionId$i$0: function()
  11553. {
  11554. return this._data$p$0["extensionId"]
  11555. },
  11556. get__marketplaceContentMarket$i$0: function()
  11557. {
  11558. return this._data$p$0["marketplaceContentMarket"]
  11559. },
  11560. get__consentMetadata$i$0: function()
  11561. {
  11562. return this._data$p$0["consentMetadata"]
  11563. },
  11564. get__isRead$i$0: function()
  11565. {
  11566. return this._data$p$0["isRead"]
  11567. },
  11568. get__endNodeUrl$i$0: function()
  11569. {
  11570. return this._data$p$0["endNodeUrl"]
  11571. },
  11572. get__entryPointUrl$i$0: function()
  11573. {
  11574. return this._data$p$0["entryPointUrl"]
  11575. },
  11576. get__start$i$0: function()
  11577. {
  11578. return new Date(this._data$p$0["start"])
  11579. },
  11580. get__end$i$0: function()
  11581. {
  11582. return new Date(this._data$p$0["end"])
  11583. },
  11584. get__location$i$0: function()
  11585. {
  11586. return this._data$p$0["location"]
  11587. },
  11588. get__userProfileType$i$0: function()
  11589. {
  11590. return this._data$p$0["userProfileType"]
  11591. },
  11592. get__resources$i$0: function()
  11593. {
  11594. this._throwOnRestrictedPermissionLevel$i$0();
  11595. if(null===this._resources$p$0)
  11596. this._resources$p$0=this._createEmailAddressDetails$p$0("resources");
  11597. return this._resources$p$0
  11598. },
  11599. get__organizer$i$0: function()
  11600. {
  11601. this._throwOnRestrictedPermissionLevel$i$0();
  11602. var organizer=this._data$p$0["organizer"];
  11603. return $h.ScriptHelpers.isNullOrUndefined(organizer) ? null : new $h.EmailAddressDetails(organizer)
  11604. },
  11605. get__userDisplayName$i$0: function()
  11606. {
  11607. return this._data$p$0["userDisplayName"]
  11608. },
  11609. get__userEmailAddress$i$0: function()
  11610. {
  11611. return this._data$p$0["userEmailAddress"]
  11612. },
  11613. get__userTimeZone$i$0: function()
  11614. {
  11615. return this._data$p$0["userTimeZone"]
  11616. },
  11617. get__timeZoneOffsets$i$0: function()
  11618. {
  11619. return this._data$p$0["timeZoneOffsets"]
  11620. },
  11621. get__hostVersion$i$0: function()
  11622. {
  11623. return this._data$p$0["hostVersion"]
  11624. },
  11625. get__owaView$i$0: function()
  11626. {
  11627. return this._data$p$0["owaView"]
  11628. },
  11629. get__overrideWindowOpen$i$0: function()
  11630. {
  11631. return this._data$p$0["overrideWindowOpen"]
  11632. },
  11633. _getEntities$i$0: function()
  11634. {
  11635. if(!this._entities$p$0)
  11636. this._entities$p$0=new $h.Entities(this._data$p$0["entities"],this._data$p$0["filteredEntities"],this.get__dateTimeSent$i$0(),this._permissionLevel$p$0);
  11637. return this._entities$p$0
  11638. },
  11639. _getSelectedEntities$i$0: function()
  11640. {
  11641. if(!this._selectedEntities$p$0)
  11642. this._selectedEntities$p$0=new $h.Entities(this._data$p$0["selectedEntities"],null,this.get__dateTimeSent$i$0(),this._permissionLevel$p$0);
  11643. return this._selectedEntities$p$0
  11644. },
  11645. _getEntitiesByType$i$0: function(entityType)
  11646. {
  11647. var entites=this._getEntities$i$0();
  11648. return entites._getByType$i$0(entityType)
  11649. },
  11650. _getFilteredEntitiesByName$i$0: function(name)
  11651. {
  11652. var entities=this._getEntities$i$0();
  11653. return entities._getFilteredEntitiesByName$i$0(name)
  11654. },
  11655. _getRegExMatches$i$0: function()
  11656. {
  11657. if(!this._data$p$0["regExMatches"])
  11658. return null;
  11659. return this._data$p$0["regExMatches"]
  11660. },
  11661. _getSelectedRegExMatches$i$0: function()
  11662. {
  11663. if(!this._data$p$0["selectedRegExMatches"])
  11664. return null;
  11665. return this._data$p$0["selectedRegExMatches"]
  11666. },
  11667. _getRegExMatchesByName$i$0: function(regexName)
  11668. {
  11669. var regexMatches=this._getRegExMatches$i$0();
  11670. if(!regexMatches || !regexMatches[regexName])
  11671. return null;
  11672. return regexMatches[regexName]
  11673. },
  11674. _throwOnRestrictedPermissionLevel$i$0: function()
  11675. {
  11676. window["OSF"]["DDA"]["OutlookAppOm"]._throwOnPropertyAccessForRestrictedPermission$i(this._permissionLevel$p$0)
  11677. },
  11678. _createEmailAddressDetails$p$0: function(key)
  11679. {
  11680. var to=this._data$p$0[key];
  11681. if($h.ScriptHelpers.isNullOrUndefined(to))
  11682. return[];
  11683. var recipients=[];
  11684. for(var i=0; i < to["length"]; i++)
  11685. if(!$h.ScriptHelpers.isNullOrUndefined(to[i]))
  11686. recipients[i]=new $h.EmailAddressDetails(to[i]);
  11687. return recipients
  11688. },
  11689. _createAttachmentDetails$p$0: function()
  11690. {
  11691. var attachments=this._data$p$0["attachments"];
  11692. if($h.ScriptHelpers.isNullOrUndefined(attachments))
  11693. return[];
  11694. var attachmentDetails=[];
  11695. for(var i=0; i < attachments["length"]; i++)
  11696. if(!$h.ScriptHelpers.isNullOrUndefined(attachments[i]))
  11697. attachmentDetails[i]=new $h.AttachmentDetails(attachments[i]);
  11698. return attachmentDetails
  11699. },
  11700. _calculatePermissionLevel$p$0: function()
  11701. {
  11702. var HostReadItem=1;
  11703. var HostReadWriteMailbox=2;
  11704. var HostReadWriteItem=3;
  11705. var permissionLevelFromHost=this._data$p$0["permissionLevel"];
  11706. if($h.ScriptHelpers.isUndefined(this._permissionLevel$p$0))
  11707. return 0;
  11708. switch(permissionLevelFromHost)
  11709. {
  11710. case HostReadItem:
  11711. return 1;
  11712. case HostReadWriteItem:
  11713. return 2;
  11714. case HostReadWriteMailbox:
  11715. return 3;
  11716. default:
  11717. return 0
  11718. }
  11719. }
  11720. };
  11721. $h._loadDictionaryRequest=function(createResultObject, dictionaryName, callback, userContext)
  11722. {
  11723. $h._loadDictionaryRequest["initializeBase"](this,[userContext]);
  11724. this._createResultObject$p$1=createResultObject;
  11725. this._dictionaryName$p$1=dictionaryName;
  11726. this._callback$p$1=callback
  11727. };
  11728. $h._loadDictionaryRequest.prototype={
  11729. _dictionaryName$p$1: null,
  11730. _createResultObject$p$1: null,
  11731. _callback$p$1: null,
  11732. handleResponse: function(response)
  11733. {
  11734. if(response["wasSuccessful"])
  11735. {
  11736. var value=response[this._dictionaryName$p$1];
  11737. var responseData=window["JSON"]["parse"](value);
  11738. this.createAsyncResult(this._createResultObject$p$1(responseData),0,0,null)
  11739. }
  11740. else
  11741. this.createAsyncResult(null,1,9020,response["errorMessage"]);
  11742. this._callback$p$1(this._asyncResult$p$0)
  11743. }
  11744. };
  11745. $h.ProxyRequestBase=function(userContext)
  11746. {
  11747. $h.ProxyRequestBase["initializeBase"](this,[userContext])
  11748. };
  11749. $h.ProxyRequestBase.prototype={
  11750. handleResponse: function(response)
  11751. {
  11752. if(!response["wasProxySuccessful"])
  11753. {
  11754. this.set__statusCode$i$1(500);
  11755. this.set__statusDescription$i$1("Error");
  11756. var errorMessage=response["errorMessage"];
  11757. this.set__response$i$1(errorMessage);
  11758. this.createAsyncResult(null,1,9020,errorMessage)
  11759. }
  11760. else
  11761. {
  11762. this.set__statusCode$i$1(response["statusCode"]);
  11763. this.set__statusDescription$i$1(response["statusDescription"]);
  11764. this.set__response$i$1(response["body"]);
  11765. this.createAsyncResult(this.get__response$i$1(),0,0,null)
  11766. }
  11767. this._parseExtraResponseData$i$1(response);
  11768. this._cycleReadyStateFromHeadersReceivedToLoadingToDone$i$1()
  11769. },
  11770. _throwInvalidStateException$i$1: function()
  11771. {
  11772. throw Error.create("DOMException",{
  11773. code: 11,
  11774. message: "INVALID_STATE_ERR"
  11775. });
  11776. },
  11777. _cycleReadyStateFromHeadersReceivedToLoadingToDone$i$1: function()
  11778. {
  11779. var $$t_0=this;
  11780. this._changeReadyState$i$1(2,function()
  11781. {
  11782. $$t_0._changeReadyState$i$1(3,function()
  11783. {
  11784. $$t_0._changeReadyState$i$1(4,null)
  11785. })
  11786. })
  11787. },
  11788. _changeReadyState$i$1: function(state, nextStep)
  11789. {
  11790. this.set__requestState$i$1(state);
  11791. var $$t_2=this;
  11792. window.setTimeout(function()
  11793. {
  11794. try
  11795. {
  11796. $$t_2._callOnReadyStateChangeCallback$i$1()
  11797. }
  11798. finally
  11799. {
  11800. if(!$h.ScriptHelpers.isNullOrUndefined(nextStep))
  11801. nextStep()
  11802. }
  11803. },0)
  11804. },
  11805. _checkSendConditions$i$1: function()
  11806. {
  11807. if(this.get__requestState$i$1() !==1)
  11808. this._throwInvalidStateException$i$1();
  11809. if(this._isSent$p$0)
  11810. this._throwInvalidStateException$i$1()
  11811. }
  11812. };
  11813. $h.RequestBase=function(userContext)
  11814. {
  11815. this._userContext$p$0=userContext
  11816. };
  11817. $h.RequestBase.prototype={
  11818. _isSent$p$0: false,
  11819. _asyncResult$p$0: null,
  11820. _userContext$p$0: null,
  11821. get_asyncResult: function()
  11822. {
  11823. return this._asyncResult$p$0
  11824. },
  11825. _sendRequest$i$0: function(dispid, methodName, dataToSend)
  11826. {
  11827. this._isSent$p$0=true;
  11828. var $$t_5=this;
  11829. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.invokeHostMethod(dispid,dataToSend,function(resultCode, response)
  11830. {
  11831. if(resultCode)
  11832. $$t_5.createAsyncResult(null,1,9017,String.format(window["_u"]["ExtensibilityStrings"]["l_InternalProtocolError_Text"],resultCode));
  11833. else
  11834. $$t_5.handleResponse(response)
  11835. })
  11836. },
  11837. createAsyncResult: function(value, errorCode, detailedErrorCode, errorDescription)
  11838. {
  11839. this._asyncResult$p$0=window["OSF"]["DDA"]["OutlookAppOm"]._instance$p.createAsyncResult(value,errorCode,detailedErrorCode,this._userContext$p$0,errorDescription)
  11840. }
  11841. };
  11842. $h.SaveDictionaryRequest=function(callback, userContext)
  11843. {
  11844. $h.SaveDictionaryRequest["initializeBase"](this,[userContext]);
  11845. if(!$h.ScriptHelpers.isNullOrUndefined(callback))
  11846. this._callback$p$1=callback
  11847. };
  11848. $h.SaveDictionaryRequest.prototype={
  11849. _callback$p$1: null,
  11850. handleResponse: function(response)
  11851. {
  11852. if(response["wasSuccessful"])
  11853. this.createAsyncResult(null,0,0,null);
  11854. else
  11855. this.createAsyncResult(null,1,9020,response["errorMessage"]);
  11856. if(!$h.ScriptHelpers.isNullOrUndefined(this._callback$p$1))
  11857. this._callback$p$1(this._asyncResult$p$0)
  11858. }
  11859. };
  11860. $h.ScriptHelpers=function(){};
  11861. $h.ScriptHelpers.isNull=function(value)
  11862. {
  11863. return null===value
  11864. };
  11865. $h.ScriptHelpers.isNullOrUndefined=function(value)
  11866. {
  11867. return $h.ScriptHelpers.isNull(value) || $h.ScriptHelpers.isUndefined(value)
  11868. };
  11869. $h.ScriptHelpers.isUndefined=function(value)
  11870. {
  11871. return value===undefined
  11872. };
  11873. $h.ScriptHelpers.dictionaryContainsKey=function(obj, keyName)
  11874. {
  11875. return Object["isInstanceOfType"](obj) ? keyName in obj : false
  11876. };
  11877. $h.ScriptHelpers.isNonEmptyString=function(value)
  11878. {
  11879. if(!value)
  11880. return false;
  11881. return String["isInstanceOfType"](value)
  11882. };
  11883. $h.ScriptHelpers.deepClone=function(obj)
  11884. {
  11885. return window["JSON"]["parse"](window["JSON"]["stringify"](obj))
  11886. };
  11887. $h.ScriptHelpers.isValueTrue=function(value)
  11888. {
  11889. if(!$h.ScriptHelpers.isNullOrUndefined(value))
  11890. return value["toString"]().toLowerCase()==="true";
  11891. return false
  11892. };
  11893. window["OSF"]["DDA"]["OutlookAppOm"]["registerClass"]("OSF.DDA.OutlookAppOm");
  11894. window["OSF"]["DDA"]["Settings"]["registerClass"]("OSF.DDA.Settings");
  11895. $h.ItemBase["registerClass"]("$h.4");
  11896. $h.Item["registerClass"]("$h.5",$h.ItemBase);
  11897. $h.Appointment["registerClass"]("$h.6",$h.Item);
  11898. $h.ComposeItem["registerClass"]("$h.7",$h.ItemBase);
  11899. $h.AppointmentCompose["registerClass"]("$h.8",$h.ComposeItem);
  11900. $h.AttachmentDetails["registerClass"]("$h.9");
  11901. $h.Body["registerClass"]("$h.A");
  11902. $h.ComposeBody["registerClass"]("$h.B",$h.Body);
  11903. $h.ComposeRecipient["registerClass"]("$h.C");
  11904. $h.ComposeLocation["registerClass"]("$h.D");
  11905. $h.ComposeSubject["registerClass"]("$h.E");
  11906. $h.ComposeTime["registerClass"]("$h.F");
  11907. $h.Contact["registerClass"]("$h.G");
  11908. $h.CustomProperties["registerClass"]("$h.H");
  11909. $h.Diagnostics["registerClass"]("$h.I");
  11910. $h.EmailAddressDetails["registerClass"]("$h.J");
  11911. $h.Entities["registerClass"]("$h.K");
  11912. $h.Message["registerClass"]("$h.L",$h.Item);
  11913. $h.MeetingRequest["registerClass"]("$h.M",$h.Message);
  11914. $h.MeetingSuggestion["registerClass"]("$h.N");
  11915. $h._extractedDate["registerClass"]("$h.O");
  11916. $h._preciseDate["registerClass"]("$h.P",$h._extractedDate);
  11917. $h._relativeDate["registerClass"]("$h.Q",$h._extractedDate);
  11918. $h.MessageCompose["registerClass"]("$h.R",$h.ComposeItem);
  11919. $h.NotificationMessages["registerClass"]("$h.S");
  11920. $h.PhoneNumber["registerClass"]("$h.T");
  11921. $h.TaskSuggestion["registerClass"]("$h.U");
  11922. $h.UserProfile["registerClass"]("$h.V");
  11923. $h.CommonParameters["registerClass"]("$h.W");
  11924. $h.RequestBase["registerClass"]("$h.X");
  11925. $h.ProxyRequestBase["registerClass"]("$h.Y",$h.RequestBase);
  11926. $h.EwsRequest["registerClass"]("$h.Z",$h.ProxyRequestBase);
  11927. $h.InitialData["registerClass"]("$h.a");
  11928. $h._loadDictionaryRequest["registerClass"]("$h.b",$h.RequestBase);
  11929. $h.SaveDictionaryRequest["registerClass"]("$h.c",$h.RequestBase);
  11930. window["OSF"]["DDA"]["OutlookAppOm"].asyncMethodTimeoutKeyName="__timeout__";
  11931. window["OSF"]["DDA"]["OutlookAppOm"].ewsIdOrEmailParamName="ewsIdOrEmail";
  11932. window["OSF"]["DDA"]["OutlookAppOm"].moduleParamName="module";
  11933. window["OSF"]["DDA"]["OutlookAppOm"].queryStringParamName="queryString";
  11934. window["OSF"]["DDA"]["OutlookAppOm"]._maxRecipients$p=100;
  11935. window["OSF"]["DDA"]["OutlookAppOm"]._maxSubjectLength$p=255;
  11936. window["OSF"]["DDA"]["OutlookAppOm"].maxBodyLength=32768;
  11937. window["OSF"]["DDA"]["OutlookAppOm"]._maxLocationLength$p=255;
  11938. window["OSF"]["DDA"]["OutlookAppOm"]._maxEwsRequestSize$p=1e6;
  11939. window["OSF"]["DDA"]["OutlookAppOm"].executeMethodName="ExecuteMethod";
  11940. window["OSF"]["DDA"]["OutlookAppOm"].getInitialDataMethodName="GetInitialData";
  11941. window["OSF"]["DDA"]["OutlookAppOm"].itemIdParameterName="itemId";
  11942. window["OSF"]["DDA"]["OutlookAppOm"].restVersionParameterName="restVersion";
  11943. window["OSF"]["DDA"]["OutlookAppOm"]._instance$p=null;
  11944. window["OSF"]["DDA"]["OutlookAppOm"].itemNumberKey="itemNumber";
  11945. $h.AttachmentConstants.maxAttachmentNameLength=255;
  11946. $h.AttachmentConstants.maxUrlLength=2048;
  11947. $h.AttachmentConstants.maxItemIdLength=200;
  11948. $h.AttachmentConstants.maxRemoveIdLength=200;
  11949. $h.AttachmentConstants.attachmentParameterName="attachments";
  11950. $h.AttachmentConstants.attachmentTypeParameterName="type";
  11951. $h.AttachmentConstants.attachmentUrlParameterName="url";
  11952. $h.AttachmentConstants.attachmentItemIdParameterName="itemId";
  11953. $h.AttachmentConstants.attachmentNameParameterName="name";
  11954. $h.AttachmentConstants.attachmentIsInlineParameterName="isInline";
  11955. $h.AttachmentConstants.attachmentTypeFileName="file";
  11956. $h.AttachmentConstants.attachmentTypeItemName="item";
  11957. $h.AttachmentDetails._attachmentTypeMap$p=[window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["AttachmentType"]["File"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["AttachmentType"]["Item"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["AttachmentType"]["Cloud"]];
  11958. $h.Body.coercionTypeParameterName="coercionType";
  11959. $h.ComposeRecipient.displayNameLengthLimit=255;
  11960. $h.ComposeRecipient.maxSmtpLength=571;
  11961. $h.ComposeRecipient.recipientsLimit=100;
  11962. $h.ComposeRecipient.totalRecipientsLimit=500;
  11963. $h.ComposeRecipient.addressParameterName="address";
  11964. $h.ComposeRecipient.nameParameterName="name";
  11965. $h.ComposeLocation.locationKey="location";
  11966. $h.ComposeLocation.maximumLocationLength=255;
  11967. $h.ComposeSubject.maximumSubjectLength=255;
  11968. $h.ComposeTime.timeTypeName="TimeProperty";
  11969. $h.ComposeTime.timeDataName="time";
  11970. $h.Diagnostics.outlookAppName="Outlook";
  11971. $h.Diagnostics.outlookWebAppName="OutlookWebApp";
  11972. $h.Diagnostics.outlookIOSAppName="OutlookIOS";
  11973. $h.Diagnostics.outlookAndroidAppName="OutlookAndroid";
  11974. $h.EmailAddressDetails._emptyString$p="";
  11975. $h.EmailAddressDetails._responseTypeMap$p=[window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ResponseType"]["None"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ResponseType"]["Organizer"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ResponseType"]["Tentative"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ResponseType"]["Accepted"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["ResponseType"]["Declined"]];
  11976. $h.EmailAddressDetails._recipientTypeMap$p=[window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RecipientType"]["Other"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RecipientType"]["DistributionList"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RecipientType"]["User"],window["Microsoft"]["Office"]["WebExtension"]["MailboxEnums"]["RecipientType"]["ExternalUser"]];
  11977. $h.Entities._allEntityKeys$p=["Addresses","EmailAddresses","Urls","PhoneNumbers","TaskSuggestions","MeetingSuggestions","Contacts","FlightReservations","ParcelDeliveries"];
  11978. $h.ReplyConstants.htmlBodyKeyName="htmlBody";
  11979. $h.AsyncConstants.optionsKeyName="options";
  11980. $h.AsyncConstants.callbackKeyName="callback";
  11981. $h.AsyncConstants.asyncResultKeyName="asyncResult";
  11982. $h.MeetingSuggestionTimeDecoder._baseDate$p=new Date("0001-01-01T00:00:00Z");
  11983. $h.NotificationMessages.maximumKeyLength=32;
  11984. $h.NotificationMessages.maximumIconLength=32;
  11985. $h.NotificationMessages.maximumMessageLength=150;
  11986. $h.NotificationMessages.notificationsKeyParameterName="key";
  11987. $h.NotificationMessages.notificationsTypeParameterName="type";
  11988. $h.NotificationMessages.notificationsIconParameterName="icon";
  11989. $h.NotificationMessages.notificationsMessageParameterName="message";
  11990. $h.NotificationMessages.notificationsPersistentParameterName="persistent";
  11991. $h.OutlookErrorManager.errorNameKey="name";
  11992. $h.OutlookErrorManager.errorMessageKey="message";
  11993. $h.OutlookErrorManager._isInitialized$p=false;
  11994. $h.OutlookErrorManager.OutlookErrorCodes.attachmentSizeExceeded=9e3;
  11995. $h.OutlookErrorManager.OutlookErrorCodes.numberOfAttachmentsExceeded=9001;
  11996. $h.OutlookErrorManager.OutlookErrorCodes.internalFormatError=9002;
  11997. $h.OutlookErrorManager.OutlookErrorCodes.invalidAttachmentId=9003;
  11998. $h.OutlookErrorManager.OutlookErrorCodes.invalidAttachmentPath=9004;
  11999. $h.OutlookErrorManager.OutlookErrorCodes.cannotAddAttachmentBeforeUpgrade=9005;
  12000. $h.OutlookErrorManager.OutlookErrorCodes.attachmentDeletedBeforeUploadCompletes=9006;
  12001. $h.OutlookErrorManager.OutlookErrorCodes.attachmentUploadGeneralFailure=9007;
  12002. $h.OutlookErrorManager.OutlookErrorCodes.attachmentToDeleteDoesNotExist=9008;
  12003. $h.OutlookErrorManager.OutlookErrorCodes.attachmentDeleteGeneralFailure=9009;
  12004. $h.OutlookErrorManager.OutlookErrorCodes.invalidEndTime=9010;
  12005. $h.OutlookErrorManager.OutlookErrorCodes.htmlSanitizationFailure=9011;
  12006. $h.OutlookErrorManager.OutlookErrorCodes.numberOfRecipientsExceeded=9012;
  12007. $h.OutlookErrorManager.OutlookErrorCodes.noValidRecipientsProvided=9013;
  12008. $h.OutlookErrorManager.OutlookErrorCodes.cursorPositionChanged=9014;
  12009. $h.OutlookErrorManager.OutlookErrorCodes.invalidSelection=9016;
  12010. $h.OutlookErrorManager.OutlookErrorCodes.accessRestricted=9017;
  12011. $h.OutlookErrorManager.OutlookErrorCodes.genericTokenError=9018;
  12012. $h.OutlookErrorManager.OutlookErrorCodes.genericSettingsError=9019;
  12013. $h.OutlookErrorManager.OutlookErrorCodes.genericResponseError=9020;
  12014. $h.OutlookErrorManager.OutlookErrorCodes.saveError=9021;
  12015. $h.OutlookErrorManager.OutlookErrorCodes.messageInDifferentStoreError=9022;
  12016. $h.OutlookErrorManager.OutlookErrorCodes.duplicateNotificationKey=9023;
  12017. $h.OutlookErrorManager.OutlookErrorCodes.notificationKeyNotFound=9024;
  12018. $h.OutlookErrorManager.OutlookErrorCodes.numberOfNotificationsExceeded=9025;
  12019. $h.OutlookErrorManager.OutlookErrorCodes.persistedNotificationArrayReadError=9026;
  12020. $h.OutlookErrorManager.OutlookErrorCodes.persistedNotificationArraySaveError=9027;
  12021. $h.OutlookErrorManager.OutlookErrorCodes.cannotPersistPropertyInUnsavedDraftError=9028;
  12022. $h.OutlookErrorManager.OutlookErrorCodes.callSaveAsyncBeforeToken=9029;
  12023. $h.OutlookErrorManager.OutlookErrorCodes.ooeInvalidDataFormat=2006;
  12024. $h.OutlookErrorManager.OsfDdaErrorCodes.ooeCoercionTypeNotSupported=1e3;
  12025. $h.CommonParameters.asyncContextKeyName="asyncContext";
  12026. $h.InitialData.userProfileTypeKey="userProfileType";
  12027. $h.ScriptHelpers.emptyString="";
  12028. OSF.DDA.ErrorCodeManager.initializeErrorMessages(Strings.OfficeOM);
  12029. if(appContext.get_appName()==OSF.AppName.OutlookWebApp || appContext.get_appName()==OSF.AppName.OutlookIOS || appContext.get_appName()==OSF.AppName.OutlookAndroid)
  12030. this._settings=this._initializeSettings(appContext,false);
  12031. else
  12032. this._settings=this._initializeSettings(false);
  12033. appContext.appOM=new OSF.DDA.OutlookAppOm(appContext,this._webAppState.wnd,appReady);
  12034. if(appContext.get_appName()==OSF.AppName.Outlook || appContext.get_appName()==OSF.AppName.OutlookWebApp)
  12035. OSF.DDA.DispIdHost.addEventSupport(appContext.appOM,new OSF.EventDispatch([Microsoft.Office.WebExtension.EventType.OlkItemSelectedChanged]))
  12036. }