/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */ (function (module) { 'use strict'; var $ = require('../External/jquery.js'), _ = require('../External/underscore.js'), ko = require('../External/ko.js'), window = require('../External/window.js'), $html = require('../External/$html.js'), $window = require('../External/$window.js'), $doc = require('../External/$doc.js'), AppData = require('../External/AppData.js'), Globals = require('../Common/Globals.js'), Utils = require('../Common/Utils.js'), Plugins = require('../Common/Plugins.js'), LinkBuilder = require('../Common/LinkBuilder.js'), Remote = require('../Remote.js'), kn = require('../Knoin/Knoin.js'), KnoinAbstractBoot = require('../Knoin/KnoinAbstractBoot.js') ; /** * @constructor * @extends KnoinAbstractBoot */ function AbstractApp() { KnoinAbstractBoot.call(this); this.oSettings = null; this.oPlugins = null; this.oLocal = null; this.oLink = null; this.oSubs = {}; this.isLocalAutocomplete = true; this.popupVisibilityNames = ko.observableArray([]); this.popupVisibility = ko.computed(function () { return 0 < this.popupVisibilityNames().length; }, this); this.iframe = $('