{"version":3,"sources":["AppContainer.js","AppInspector.js"],"names":["$","$container","manifestUrl","attr","appName","appParams","appId","appLoadingIcon","_token","F2","AppHandlers","getToken","appsConfig","on","Constants","APP_RENDER_BEFORE","appConfig","UI","showMask","instanceId","root","APP_RENDER_AFTER","hideMask","appInspector","init","handleAppDataExceptions","APP_CREATE_ROOT","get","APP_RENDER","appHtml","append","Mask","loadingIcon","backgroundColor","opacity","name","context","appContextParams","JSON","parse","extend","registerApps","noChartCaseSpecifier","dataErrorCaseSpecifier","$appContainer","$appContent","appType","data","result","noChart","postMessageToParent"],"mappings":"AAAAA,EAAA,WACA,IAAAC,EAAAD,EAAA,cACAE,EAAAD,EAAAE,KAAA,gBACAC,EAAAH,EAAAE,KAAA,iBACAE,EAAAJ,EAAAE,KAAA,mBACAG,EAAAL,EAAAE,KAAA,MACAI,EAAAN,EAAAE,KAAA,yBAGAK,EAAAC,GAAAC,YAAAC,WAgDAC,GA3CAH,GAAAC,YAAAG,GAAAL,EACAC,GAAAK,UAAAJ,YAAAK,kBACA,SAAAC,GACAP,GAAAQ,GAAAC,SAAAF,EAAAG,WAAAH,EAAAI,QAIAX,GAAAC,YAAAG,GAAAL,EACAC,GAAAK,UAAAJ,YAAAW,iBACA,SAAAL,GACAP,GAAAQ,GAAAK,SAAAN,EAAAG,WAAAH,EAAAI,MACAG,eACAA,aAAAC,OACAD,aAAAE,6BAKAhB,GAAAC,YAAAG,GAAAL,EACAC,GAAAK,UAAAJ,YAAAgB,gBACA,SAAAV,GACAA,EAAAI,KAAApB,EAAA,OAAAgB,EAAAV,OAAAqB,IAAA,KAIAlB,GAAAC,YAAAG,GAAAL,EACAC,GAAAK,UAAAJ,YAAAkB,WACA,SAAAZ,EAAAa,GACA7B,EAAAgB,EAAAI,MACAU,OAAAD,KAIApB,GAAAe,KAAA,CACAP,GAAA,CACAc,KAAA,CACAC,YAAAzB,EACA0B,gBAAA,OACAC,QAAA,OAKA,CACA,CACA5B,MAAAA,EACAJ,YAAAA,EACAiC,KAAA/B,EACAgC,QAAA,CAAA9B,MAAAA,MAIA+B,EAAAC,KAAAC,MAAAlC,GACAO,EAAA,GAAAwB,QAAApC,EAAAwC,OAAA5B,EAAA,GAAAwB,QAAAC,GAEA5B,GAAAgC,aAAA7B,KCrEA,IAAAW,aAAA,WAEA,IAGAmB,EAAA,WACAC,EAAA,aAMAC,EAAA,KACAC,EAAA,KACAC,EAAA,KA+CA,MAJA,CACAtB,KA1CA,WACAoB,EAAA5C,EAfA,WAgBA6C,EAAA7C,EAfA,YAeA4C,GACAE,EAAAF,EAAAG,KAAA,aAwCAtB,wBAnBA,WAjBAuB,GAAA,EAkBA,IATAA,EASAC,EAfAD,IAFAH,EAAAE,KAAAL,IAIAM,EAIAA,GAAA,EAGAA,IAFAH,EAAAE,KAAAJ,IAIAK,EAFAA,EASAE,oBAAAJ,EAnCA,cAqCAG,EACAC,oBAAAJ,EAvCA,YA4CAI,oBAAAJ,EA1CA,aAVA","file":"appcontainer.min.js","sourcesContent":["$(function () {\n\tvar $container = $('div.f2-app');\n\tvar manifestUrl = $container.attr('data-app-url');\n\tvar appName = $container.attr('data-app-name');\n\tvar appParams = $container.attr('data-app-params');\n\tvar appId = $container.attr('id');\n\tvar appLoadingIcon = $container.attr('data-app-loading-icon');\n\n\t//get Events token\n\tvar _token = F2.AppHandlers.getToken();\n\n\t//setup AppHandlers\n\n\t//show loading spinner before Apps are loaded\n\tF2.AppHandlers.on(_token,\n\t\tF2.Constants.AppHandlers.APP_RENDER_BEFORE,\n\t\tfunction (appConfig) {\n\t\t\tF2.UI.showMask(appConfig.instanceId, appConfig.root);\n\t\t});\n\n\t//hide loading icon after Apps are loaded\n\tF2.AppHandlers.on(_token,\n\t\tF2.Constants.AppHandlers.APP_RENDER_AFTER,\n\t\tfunction (appConfig) {\n\t\t\tF2.UI.hideMask(appConfig.instanceId, appConfig.root);\n\t\t\tif (appInspector) {\n\t\t\t\tappInspector.init();\n\t\t\t\tappInspector.handleAppDataExceptions();\n\t\t\t}\n\t\t});\n\n\t//assign App root element\n\tF2.AppHandlers.on(_token,\n\t\tF2.Constants.AppHandlers.APP_CREATE_ROOT,\n\t\tfunction (appConfig) {\n\t\t\tappConfig.root = $('div#' + appConfig.appId).get(0);\n\t\t});\n\n\t//render the App\n\tF2.AppHandlers.on(_token,\n\t\tF2.Constants.AppHandlers.APP_RENDER,\n\t\tfunction (appConfig, appHtml) {\n\t\t\tvar $root = $(appConfig.root);\n\t\t\t$root.append(appHtml);\n\t\t});\n\n\t//init F2 with UI Mask (loading spinner)\n\tF2.init({\n\t\tUI: {\n\t\t\tMask: {\n\t\t\t\tloadingIcon: appLoadingIcon,\n\t\t\t\tbackgroundColor: '#fff',\n\t\t\t\topacity: 0.7\n\t\t\t}\n\t\t}\n\t});\n\n\tvar appsConfig = [\n\t\t {\n\t\t \tappId: appId,\n\t\t \tmanifestUrl: manifestUrl,\n\t\t \tname: appName,\n\t\t \tcontext: { \"appId\": appId }\n\t\t }\n\t];\n\n\tvar appContextParams = JSON.parse(appParams);\n\tappsConfig[0].context = $.extend(appsConfig[0].context, appContextParams);\n\n\tF2.registerApps(appsConfig);\n});\n","var appInspector = function () {\n\n\tvar appContainerRootClass = '.f2-app';\n\tvar appContentRootClass = \".app-root\";\n\n\tvar noChartCaseSpecifier = 'no-chart';\n\tvar dataErrorCaseSpecifier = 'data-error';\n\n\tvar noChartCaseMessage = 'no-chart';\n\tvar dataErrorCaseMessage = 'data-error';\n\tvar successMessage = 'success';\n\n\tvar $appContainer = null;\n\tvar $appContent = null;\n\tvar appType = null;\n\n\tvar init = function () {\n\t\t$appContainer = $(appContainerRootClass);\n\t\t$appContent = $(appContentRootClass, $appContainer);\n\t\tappType = $appContainer.data('app-type');\n\t}\n\n\tvar inspectNoChartCase = function () {\n\t\tvar result = false;\n\t\tvar errorFlag = $appContent.data(noChartCaseSpecifier);\n\t\tif (errorFlag) {\n\t\t\tresult = true;\n\t\t}\n\t\treturn result;\n\t};\n\n\tvar inspectErrorCase = function () {\n\t\tvar result = false;\n\t\tvar errorFlag = $appContent.data(dataErrorCaseSpecifier);\n\t\tif (errorFlag) {\n\t\t\tresult = true;\n\t\t}\n\t\treturn result;\n\t};\n\n\tvar handleDataExceptions = function () {\n\t\tvar noChart = inspectNoChartCase();\n\t\tvar dataError = inspectErrorCase();\n\t\tif (dataError) {\n\t\t\tpostMessageToParent(appType, dataErrorCaseMessage);\n\t\t}\n\t\telse if (noChart) {\n\t\t\tpostMessageToParent(appType, noChartCaseMessage);\n\t\t}\n\t\telse {\n\t\t\t//if there is no Error and Chart is available, notify parent with success message.\n\t\t\t//This will include case if API is not failing but not returning data for data points.\n\t\t\tpostMessageToParent(appType, successMessage);\n\t\t}\n\t\t\n\t}\n\n\tvar module = {\n\t\tinit: init,\n\t\thandleAppDataExceptions: handleDataExceptions\n\t};\n\treturn module;\n}();"]}