{"version":3,"sources":["master.js","InFlight.xamarin.js","getApps.js","tableFilter.js"],"names":["clearPopupMessage","$","text","$errorInputs","length","setTimeout","first","focus","commonCleanUp","errorInputs","document","querySelectorAll","errorText","html","i","addClass","getDoPortalUrl","scriptText","url","pattern","match","InFlight","xamarin","appAvailable","pollingInterval","pollingTimeout","awaitingLoginResponse","permissions","CAMERA","STORAGE_WRITE","STORAGE_READ","LOCATION_WHEN_IN_USE","LOCATION_ALWAYS","isXamarinReady","Promise","resolve","reject","timeSpent","interval","setInterval","window","xamarinAllCallbacksReady","clearInterval","login","user","pass","xamarinLogin","JSON","stringify","awaitLoginSuccess","loginSuccess","status","xamarinLoginSuccess","loginReady","xamarinLoginReady","showInViewer","path","xamarinFileViewer","openExternal","application","xamarinOpenExternal","hasBioAuth","xamarinHasBioAuth","resetBioAuth","xamarinResetBioAuth","sendAppLink","title","description","xid","xamarinAppLink","payload","location","href","isAppAvailable","undefined","requestPermission","requestType","xamarinRequestPermission","types","isAndroid","userAgent","navigator","vendor","opera","test","jQuery","_getAppsOnSrcPage","uri","src","content","fn","myconfig","targetUrl","NLX","Cfg","Customer","psBaseUrl","targetVerb","followProposedTemplate","showLoading","manualRequestObj","Lbl","Src","Data","Children","callback","data","CaptureResults","menuItems","keys","each","element","push","Properties","key","InFlightDC","init","_getAppsOnSrcPages","srcPages","srcPageRequestsCompleted","enabledAppsOnSrcPages","srcPage","merge","_isItemEnabledOnSrcPage","item","appsEnabledOnSrcPage","indexOf","_getAppsThatAreEnabled","apps","app","items","grep","deferred","getApps","_callback","sessionStorageKey","result","tmp","sessionStorage","isLoggedIn","removeItem","cachedResult","getItem","parsedResult","parse","getJSON","getAppsJson","done","_resultHelper","setItem","appsEnabledOnSrcPages","fail","NLXFramed","checkDocumentHeight","newHeight","timer","lastHeight","outerHeight","run","support","cors","ajaxSetup","cache","before","IFT","aside","page","pathname","accordion","exclusive","on","sidebar","scrollLock","closable","transition","dimPage","onHidden","removeClass","onVisible","self","top","attr","css","sendSizeMsg","setDefaults","getNLXDefaults","extend","filterTable","this","e","remove","$this","search","val","toLowerCase","target","$target","$rows","find","show","hide","size","col_count","no_results","append","tooltip"],"mappings":"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","file":"app.min.js","sourcesContent":["var NLXFramed = false;\r\n\r\n\r\n$(function () {\r\n $.support.cors = true;\r\n $.ajaxSetup({ cache: true });\r\n\r\n InFlight.NLX.Cfg.Customer.getApps(function (data) {\r\n //$(\"#header\").html(IFT.navbar(data));\r\n $(\"#loading\").before(IFT.aside(data));\r\n\r\n setTimeout(function () {\r\n var page = window.location.pathname;\r\n $('aside .menu .item[href=\"' + page + '\"]').addClass('active');\r\n }, 800);\r\n $('aside .ui.accordion').accordion({\r\n exclusive: true\r\n });\r\n });\r\n\r\n $(document).on('click', '#launch', function () {\r\n $('.ui.sidebar').sidebar({\r\n scrollLock: true,\r\n closable: true,\r\n transition: 'overlay',\r\n dimPage: false,\r\n onHidden: function () {\r\n $('#hamburgerToggle').removeClass(\"is-active\");\r\n },\r\n onVisible: function () {\r\n $('#hamburgerToggle').addClass(\"is-active\");\r\n }\r\n })\r\n .sidebar('toggle');\r\n });\r\n\r\n //added to autodetect if in a frame or not.\r\n if (window.self !== window.top) {\r\n $(\"hostType\").attr(\"data-if-framed\", \"true\")\r\n NLXFramed = true;\r\n }\r\n\r\n if ($(\"#hostType\").attr(\"data-if-framed\") == \"true\") {\r\n $(\".frameswitch\").css(\"display\", \"none\");\r\n checkDocumentHeight(sendSizeMsg);\r\n }\r\n\r\n function checkDocumentHeight(callback) {\r\n var lastHeight = $(\"body\").outerHeight(), newHeight, timer;\r\n (function run() {\r\n newHeight = $(\"body\").outerHeight();\r\n if (lastHeight != newHeight)\r\n callback(newHeight);\r\n lastHeight = newHeight;\r\n timer = setTimeout(run, 100);\r\n })();\r\n }\r\n\r\n InFlight.NLX.Cfg.setDefaults(InFlight.NLX.Cfg.Customer.getNLXDefaults());\r\n});\r\n\r\nfunction clearPopupMessage() {\r\n $(\"#popupMessageTitle,#popupMessageContent\").text('');\r\n\r\n // set the focus to the first erroneous input, if applicable\r\n var $errorInputs = $(\".PSERROR\");\r\n if ($errorInputs.length) {\r\n setTimeout(function () { $errorInputs.first().focus() }, 50);\r\n }\r\n}\r\n\r\nfunction commonCleanUp() {\r\n //add error className to inputs to outline them in red\r\n var errorInputs = document.querySelectorAll(\"[tmpclass=PSERROR]\");\r\n var errorText = $(\"#error_items\").html();\r\n var isError = (errorText && errorText.length > 0);\r\n for (var i = 0; i < errorInputs.length; i++) {\r\n $(errorInputs[i]).addClass(\"PSERROR\");\r\n }\r\n}\r\n\r\nfunction getDoPortalUrl(scriptText) {\r\n var url;\r\n if (scriptText) {\r\n var pattern = /DoPortalUrl\\((?:'([^']+?)'|\"([^\"]+?)\")\\)/i;\r\n var match = scriptText.match(pattern);\r\n if (match && match.length > 1) { \r\n url = match[1];\t\t\t\t\r\n }\t\t\t\r\n }\r\n\r\n return url;\r\n} ","var InFlight = InFlight || {};\n\nInFlight.xamarin = (function () {\n // Polling settings (in milliseconds) for when verifying if the xamarin app exists in isXamarinAvailable\n var pollingInterval = 100;\n var pollingTimeout = 4500;\n\n var appAvailable;\n var awaitingLoginResponse = false;\n\n var permissions = {\n CAMERA: \"camera\",\n STORAGE_WRITE: \"storageWrite\",\n STORAGE_READ: \"storageRead\",\n LOCATION_WHEN_IN_USE: \"locationWhenInUse\",\n LOCATION_ALWAYS: \"locationAlways\"\n };\n\n var isXamarinReady = function () {\n return new Promise(function (resolve, reject) {\n var timeSpent = 0;\n var interval = setInterval(function() {\n timeSpent += pollingInterval;\n if (typeof window.xamarinAllCallbacksReady === \"function\") {\n appAvailable = true;\n clearInterval(interval);\n resolve();\n }\n else if (timeSpent >= pollingTimeout) {\n appAvailable = false;\n clearInterval(interval);\n reject();\n }\n }, pollingInterval);\n }); \n }\n\n var login = function(user, pass) {\n if (typeof window.xamarinLogin === \"function\") {\n window.xamarinLogin(JSON.stringify({\n user: user,\n pass: pass\n }));\n awaitingLoginResponse = true;\n }\n } \n\n var awaitLoginSuccess = function() {\n if (awaitingLoginResponse) {\n loginSuccess(true, '', '');\n awaitingLoginResponse = false;\n }\n }\n\n var loginSuccess = function(status, user, pass) {\n if (typeof window.xamarinLoginSuccess === \"function\") {\n window.xamarinLoginSuccess(JSON.stringify({\n user: user,\n pass: pass,\n status: status\n }));\n }\n } \n\n var loginReady = function() {\n if (typeof window.xamarinLoginReady === \"function\") {\n window.xamarinLoginReady('true');\n }\n }\n\n var showInViewer = function(path) {\n if (typeof window.xamarinFileViewer === \"function\" && path) {\n window.xamarinFileViewer(path);\n }\n }\n\n var openExternal = function(url, application) {\n if (typeof window.xamarinOpenExternal === \"function\" && url) {\n if (!application) {\n application = 'browser';\n }\n window.xamarinOpenExternal(JSON.stringify({\n url: url,\n application: application\n }));\n } \n } \n \n var hasBioAuth = function() {\n if (typeof window.xamarinHasBioAuth === \"function\") {\n return true;\n } else {\n return false;\n }\n }\n\n var resetBioAuth = function() {\n if (typeof window.xamarinResetBioAuth === \"function\") {\n window.xamarinResetBioAuth(\"true\");\n }\n } \n\n var sendAppLink = function(title, description, xid) {\n if (typeof window.xamarinAppLink === \"function\") {\n var payload = {\n title: title,\n description: description,\n xid: xid,\n url: window.location.href\n };\n window.xamarinAppLink(JSON.stringify(payload));\n }\n } \n\n var isAppAvailable = function() {\n if (appAvailable !== undefined) {\n return appAvailable;\n } else {\n return (typeof window.xamarinAllCallbacksReady === \"function\");\n }\n }\n\n var requestPermission = function (requestType) {\n if (typeof window.xamarinRequestPermission === \"function\") {\n if (typeof requestType === \"string\") {\n requestType = [requestType];\n }\n var payload = {\n types: requestType\n };\n window.xamarinRequestPermission(JSON.stringify(payload));\n }\n }\n\n var isAndroid = function () {\n var userAgent = navigator.userAgent || navigator.vendor || window.opera;\n if (/android/i.test(userAgent)) {\n return true;\n }\n return false; \n }\n\n return {\n isXamarinReady: isXamarinReady,\n login: login,\n loginSuccess: loginSuccess,\n awaitLoginSuccess: awaitLoginSuccess,\n loginReady: loginReady,\n showInViewer: showInViewer,\n openExternal: openExternal,\n hasBioAuth: hasBioAuth,\n resetBioAuth: resetBioAuth,\n sendAppLink: sendAppLink,\n requestPermission: requestPermission,\n isAppAvailable: isAppAvailable,\n isAndroid: isAndroid,\n permissions: permissions\n };\n})();\n","(function (jQuery) {\r\n \"use strict\";\r\n\r\n var $ = jQuery;\r\n\r\n var _getAppsOnSrcPage = function (uri, src, content, fn) { \r\n var myconfig = {\r\n targetUrl: InFlight.NLX.Cfg.Customer.psBaseUrl() + uri,\r\n targetVerb: \"GET\",\r\n followProposedTemplate: false,\r\n showLoading: false,\r\n manualRequestObj: [\r\n { \"Lbl\": \"menuItems\", \"Src\": src, \"Data\": content, \"Children\": [] }\r\n ],\r\n callback: function (data) { \r\n if (!data || !data.CaptureResults || !data.CaptureResults.menuItems || !data.CaptureResults.menuItems.length) {\r\n fn([]);\r\n } else {\r\n var keys = [];\r\n $.each(data.CaptureResults.menuItems, function (i, element) {\r\n keys.push(element.Properties.key);\r\n });\r\n fn(keys);\r\n }\r\n }\r\n };\r\n\r\n InFlightDC.init(myconfig);\r\n };\r\n\r\n var _getAppsOnSrcPages = function (srcPages, fn) {\r\n var srcPageRequestsCompleted = 0;\r\n var enabledAppsOnSrcPages = [];\r\n $.each(srcPages, function (i, srcPage) {\r\n _getAppsOnSrcPage(srcPage.uri, srcPage.src, srcPage.content, function (keys) {\r\n srcPageRequestsCompleted++;\r\n //flatten the list for easier searching later\r\n $.merge(enabledAppsOnSrcPages, keys);\r\n\r\n if (srcPageRequestsCompleted === srcPages.length) {\r\n fn(enabledAppsOnSrcPages);\r\n }\r\n });\r\n });\r\n };\r\n\r\n var _isItemEnabledOnSrcPage = function (item, appsEnabledOnSrcPage) {\r\n for (var i = 0; i < appsEnabledOnSrcPage.length; i++) {\r\n if (appsEnabledOnSrcPage[i].indexOf(item.key) > -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n var _getAppsThatAreEnabled = function (apps, appsEnabledOnSrcPage) {\r\n $.each(apps, function (i, app) {\r\n app.items = $.grep(app.items, function (item, i) {\r\n return _isItemEnabledOnSrcPage(item, appsEnabledOnSrcPage);\r\n });\r\n });\r\n\r\n apps = $.grep(apps, function (app, i) {\r\n return app.items && app.items.length > 0;\r\n });\r\n\r\n return apps;\r\n };\r\n\r\n var deferred = [];\r\n\r\n InFlight.NLX.Cfg.Customer.getApps = function (_callback) {\r\n var sessionStorageKey = \"__getAppsResult__\";\r\n\r\n var callback = function (result) {\r\n var tmp = deferred;\r\n deferred = [];\r\n $.each(tmp, function (i, fn) {\r\n fn(result);\r\n });\r\n };\r\n\r\n deferred.push(_callback);\r\n if (deferred.length > 1) {\r\n return;\r\n }\r\n\r\n if (!sessionStorage.isLoggedIn) {\r\n void 0;\r\n sessionStorage.removeItem(sessionStorageKey);\r\n callback(null);\r\n return;\r\n }\r\n\r\n var cachedResult = sessionStorage.getItem(sessionStorageKey);\r\n\r\n if (cachedResult) {\r\n var parsedResult = JSON.parse(cachedResult);\r\n if (parsedResult !== null) {\r\n void 0;\r\n callback(parsedResult);\r\n return;\r\n }\r\n }\r\n\r\n $.getJSON(InFlight.NLX.Cfg.Customer.getAppsJson())\r\n .done(function (data) {\r\n var _resultHelper = function (result) {\r\n sessionStorage.setItem(sessionStorageKey, JSON.stringify(result));\r\n callback(result);\r\n };\r\n\r\n if (!data.srcPages || !data.srcPages.length) {\r\n void 0;\r\n _resultHelper(data);\r\n return;\r\n }\r\n\r\n _getAppsOnSrcPages(data.srcPages, function (appsEnabledOnSrcPages) {\r\n var result = { \"apps\": _getAppsThatAreEnabled(data.apps, appsEnabledOnSrcPages) };\r\n void 0;\r\n _resultHelper(result);\r\n });\r\n })\r\n .fail(function (data) {\r\n void 0;\r\n sessionStorage.removeItem(sessionStorageKey);\r\n callback(null);\r\n });\r\n };\r\n})(jQuery);\r\n","/**\r\n* I don't recommend using this plugin on large tables, I just wrote it to make the demo useable. It will work fine for smaller tables \r\n* but will likely encounter performance issues on larger tables.\r\n*\r\n*\t\t\r\n*\t\t$(input-element).filterTable()\r\n*\t\t\r\n*\tThe important attributes are 'data-action=\"filter\"' and 'data-filters=\"#table-selector\"'\r\n*/\r\n(function(){\r\n 'use strict';\r\n\tvar $ = jQuery;\r\n\t$.fn.extend({\r\n\t\tfilterTable: function(){\r\n\t\t\treturn this.each(function(){\r\n\t\t\t\t$(this).on('keyup', function(e){\r\n\t\t\t\t\t$('.filterTable_no_results').remove();\r\n\t\t\t\t\tvar $this = $(this), search = $this.val().toLowerCase(), target = $this.attr('data-filters'), $target = $(target), $rows = $target.find('tbody tr');\r\n\t\t\t\t\tif(search == '') {\r\n\t\t\t\t\t\t$rows.show();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$rows.each(function(){\r\n\t\t\t\t\t\t\tvar $this = $(this);\r\n\t\t\t\t\t\t\t$this.text().toLowerCase().indexOf(search) === -1 ? $this.hide() : $this.show();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\tif($target.find('tbody tr:visible').size() === 0) {\r\n\t\t\t\t\t\t\tvar col_count = $target.find('tr').first().find('td').size();\r\n\t\t\t\t\t\t\tvar no_results = $('