'use strict'; var CSSLoaderPlugin; (function (CSSLoaderPlugin){ var BrowserCSSLoader = (function (){ function BrowserCSSLoader(){ this._pendingLoads = 0; } BrowserCSSLoader.prototype.attachListeners = function (name, linkNode, callback, errorback){ var unbind = function (){ linkNode.removeEventListener('load', loadEventListener); linkNode.removeEventListener('error', errorEventListener); } ; var loadEventListener = function (e){ unbind(); callback(); } ; var errorEventListener = function (e){ unbind(); errorback(e); } ; linkNode.addEventListener('load', loadEventListener); linkNode.addEventListener('error', errorEventListener); } ; BrowserCSSLoader.prototype._onLoad = function (name, callback){ this._pendingLoads-- ; callback(); } ; BrowserCSSLoader.prototype._onLoadError = function (name, errorback, err){ this._pendingLoads-- ; errorback(err); } ; BrowserCSSLoader.prototype._insertLinkNode = function (linkNode){ this._pendingLoads++ ; var head = document.head || _AN_Call_getelementsbytagname('getElementsByTagName', document, 'head')[0]; var other = _AN_Call_getelementsbytagname('getElementsByTagName', head, 'link') || _AN_Call_getelementsbytagname('getElementsByTagName', head, 'script'); if (_AN_Read_length('length', other) > 0) { head.insertBefore(linkNode, other[_AN_Read_length('length', other) - 1]); } else { _AN_Call_appendchild('appendChild', head, linkNode); } } ; BrowserCSSLoader.prototype.createLinkTag = function (name, cssUrl, externalCallback, externalErrorback){ var _this = this; var linkNode = _AN_Call_createelement('createElement', document, 'link'); _AN_Call_setattribute('setAttribute', linkNode, 'rel', 'stylesheet'); _AN_Call_setattribute('setAttribute', linkNode, 'type', 'text/css'); _AN_Call_setattribute('setAttribute', linkNode, 'data-name', name); var callback = function (){ return _this._onLoad(name, externalCallback); } ; var errorback = function (err){ return _this._onLoadError(name, externalErrorback, err); } ; this.attachListeners(name, linkNode, callback, errorback); _AN_Call_setattribute('setAttribute', linkNode, 'href', cssUrl); return linkNode; } ; BrowserCSSLoader.prototype._linkTagExists = function (name, cssUrl){ var i, len, nameAttr, hrefAttr, links = _AN_Call_getelementsbytagname('getElementsByTagName', document, 'link'); for (i = 0, len = _AN_Read_length('length', links); i < len; i++ ){ nameAttr = _AN_Call_getattribute('getAttribute', links[i], 'data-name'); hrefAttr = _AN_Call_getattribute('getAttribute', links[i], 'href'); if (nameAttr === name || hrefAttr === cssUrl) { return true ; } } return false ; } ; BrowserCSSLoader.prototype.load = function (name, cssUrl, externalCallback, externalErrorback){ if (this._linkTagExists(name, cssUrl)) { externalCallback(); return ; } var linkNode = this.createLinkTag(name, cssUrl, externalCallback, externalErrorback); this._insertLinkNode(linkNode); } ; return BrowserCSSLoader; } ()); var CSSPlugin = (function (){ function CSSPlugin(){ this._cssLoader = new BrowserCSSLoader(); } CSSPlugin.prototype.load = function (name, req, load, config){ config = config || { } ; var cssConfig = config["vs/css"] || { } ; if (cssConfig.disabled) { load({ } ); return ; } var cssUrl = req.toUrl(name + '.css'); _AN_Call_load('load', this._cssLoader, name, cssUrl, function (contents){ load({ } ); } , function (err){ if (typeof load.error === 'function') { load.error('Could not find ' + cssUrl + ' or it was empty'); } } ); } ; return CSSPlugin; } ()); CSSLoaderPlugin.CSSPlugin = CSSPlugin; define('vs/css', new CSSPlugin()); } )(CSSLoaderPlugin || (CSSLoaderPlugin = { } ));