UNPKG

angular-favicon

Version:

Angular service to set the favicon of a site, and an alternative one for dark mode

2 lines 2.35 kB
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@angular/core"),require("@angular/common"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("angular-favicon",["exports","@angular/core","@angular/common","rxjs","rxjs/operators"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self)["angular-favicon"]={},e.ng.core,e.ng.common,e.rxjs,e.rxjs.operators)}(this,(function(e,r,t,n,o){"use strict";function i(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=i(r),a=i(t),s=function(){function e(e,r){var t=this;this._doc=e,this.rendererFactory=r,this.darkScheme="(prefers-color-scheme:dark)",this.prefersColorScheme$=n.fromEventPattern((function(e){return window.matchMedia(t.darkScheme).addListener(e)})).pipe(o.pluck("matches")),this.renderer=r.createRenderer(null,null)}return e.prototype.getFavicon=function(){return this._doc.querySelector("link[rel*='icon']")},e.prototype.setFavicon=function(e,r){var t=this.getFavicon()||this.renderer.createElement("link"),n=e;r&&(this.subscribeToChangesInTheme(t,e,r),window.matchMedia(this.darkScheme).matches&&(n=r)),this.appendLinkTag(t,n)},e.prototype.subscribeToChangesInTheme=function(e,r,t){var n=this;this.subscriptionToColorScheme=this.prefersColorScheme$.subscribe((function(o){o?n.appendLinkTag(e,t):n.appendLinkTag(e,r)}))},e.prototype.appendLinkTag=function(e,r){e.type="image/x-icon",e.rel="shortcut icon",e.href=r;var t=this._doc.getElementsByTagName("head")[0];this.renderer.appendChild(t,e)},e.prototype.ngOnDestroy=function(){this.subscriptionToColorScheme&&this.subscriptionToColorScheme.unsubscribe()},e}();s.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],s.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:[t.DOCUMENT]}]},{type:r.RendererFactory2}]},s.ɵprov=c.ɵɵdefineInjectable({factory:function(){return new s(c.ɵɵinject(a.DOCUMENT),c.ɵɵinject(c.RendererFactory2))},token:s,providedIn:"root"}),e.AngularFaviconService=s,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=angular-favicon.umd.min.js.map