ngx-seo
Version:
`ngx-seo` is a library to help generate and inject proper JSON-LD objects and Meta tags that allow for social sharing into server-side generated Angular applications using Universal.
2 lines • 6.35 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/platform-server"),require("@angular/core"),require("@angular/platform-browser")):"function"==typeof define&&define.amd?define("ngx-seo",["exports","@angular/common","@angular/platform-server","@angular/core","@angular/platform-browser"],t):t(e["ngx-seo"]={},e.ng.common,e.ng["platform-server"],e.ng.core,e.ng.platformBrowser)}(this,function(e,t,r,i,o){"use strict";var a=function(){return(a=Object.assign||function(e){for(var t,r=1,i=arguments.length;r<i;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},n=function(){function e(e,t){this.platformId=e,this.doc=t,this.jsonLd={}}return e.prototype.setData=function(e,t){this.jsonLd=this.getObject(e,t),this.injectBrowser()},e.prototype.getObject=function(e,t){var r={"@context":"http://schema.org","@type":e};return t&&(r=a({},r,t)),r},e.prototype.toJson=function(){return JSON.stringify(this.jsonLd)},e.prototype.injectBrowser=function(){if(this.platformId&&t.isPlatformBrowser(this.platformId)){var e=this.doc.head.querySelector("script[type='application/ld+json']");e?e.textContent=this.toJson():((e=this.doc.createElement("script")).setAttribute("type","application/ld+json"),e.textContent=this.toJson(),this.doc.head.appendChild(e))}},e.decorators=[{type:i.Injectable}],e.ctorParameters=function(){return[{type:Object,decorators:[{type:i.Optional},{type:i.Inject,args:[i.PLATFORM_ID]}]},{type:undefined,decorators:[{type:i.Optional},{type:i.Inject,args:[t.DOCUMENT]}]}]},e}(),c=function(){function e(){}return e.decorators=[{type:i.NgModule,args:[{providers:[n]}]}],e}();function s(t,r){return function(){var e=t.createElement("script");e.setAttribute("type","application/ld+json"),e.textContent=r.toJson(),t.head.appendChild(e)}}var p=function(){function e(){}return e.decorators=[{type:i.NgModule,args:[{providers:[n,{provide:r.BEFORE_APP_SERIALIZED,useFactory:s,deps:[t.DOCUMENT,n],multi:!0}]}]}],e}(),m=function(){function e(e,t){this.metaService=e,this.titleService=t}return e.prototype.setData=function(e){this.setTitle(e.title),this.setMetaDescription(e.description),this.setUrl(e.url),this.setImage(e.image),this.setPublished(e.published),this.setModified(e.modified),this.setAuthor(e.author),this.setSection(e.section),this.setType(e.type)},e.prototype.setSection=function(e){e&&e.length?this.metaService.updateTag({name:"article:section",content:e}):this.metaService.removeTag("name='article:section'")},e.prototype.setTwitterSiteCreator=function(e){e&&e.length?(this.metaService.updateTag({name:"twitter:site",content:e}),this.metaService.updateTag({name:"twitter:creator",content:e})):(this.metaService.removeTag("name='twitter:site'"),this.metaService.removeTag("name='twitter:creator'"))},e.prototype.setTwitterCard=function(e){e&&e.length?this.metaService.updateTag({name:"twitter:card",content:e}):this.metaService.removeTag("name='twitter:card'")},e.prototype.setFbAppId=function(e){e&&e.length?this.metaService.updateTag({property:"fb:app_id",content:e}):this.metaService.removeTag("property='fb:app_id'")},e.prototype.setTitle=function(e){void 0===e&&(e=""),this.titleService.setTitle(e),e&&e.length?(this.metaService.updateTag({name:"twitter:title",content:e}),this.metaService.updateTag({name:"twitter:image:alt",content:e}),this.metaService.updateTag({property:"og:image:alt",content:e}),this.metaService.updateTag({property:"og:title",content:e}),this.metaService.updateTag({name:"title",content:e})):(this.metaService.removeTag("name='twitter:title'"),this.metaService.removeTag("name='twitter:image:alt'"),this.metaService.removeTag("property='og:image:alt'"),this.metaService.removeTag("property='og:title'"),this.metaService.removeTag("name='title'"))},e.prototype.setType=function(e){e&&e.length?this.metaService.updateTag({property:"og:type",content:e}):this.metaService.removeTag("property='og:type'")},e.prototype.setMetaDescription=function(e){e&&e.length?(this.metaService.updateTag({name:"twitter:description",content:e}),this.metaService.updateTag({property:"og:description",content:e}),this.metaService.updateTag({name:"description",content:e})):(this.metaService.removeTag("name='twitter:description'"),this.metaService.removeTag("property='og:description'"),this.metaService.removeTag("name='description'"))},e.prototype.setImage=function(e){e&&e.length?(this.metaService.updateTag({name:"twitter:image",content:e}),this.metaService.updateTag({property:"og:image",content:e}),this.metaService.updateTag({property:"og:image:height",content:"630"})):(this.metaService.removeTag("name='twitter:image'"),this.metaService.removeTag("property='og:image'"),this.metaService.removeTag("property='og:image:height'"))},e.prototype.setUrl=function(e){e&&e.length?this.metaService.updateTag({property:"og:url",content:e}):this.metaService.removeTag("property='og:url'")},e.prototype.setPublished=function(e){if(e){var t=new Date(e);this.metaService.updateTag({name:"article:published_time",content:t.toISOString()}),this.metaService.updateTag({name:"published_date",content:t.toISOString()})}else this.metaService.removeTag("name='article:published_time'"),this.metaService.removeTag("name='publication_date'")},e.prototype.setModified=function(e){if(e){var t=new Date(e);this.metaService.updateTag({name:"article:modified_time",content:t.toISOString()}),this.metaService.updateTag({name:"og:updated_time",content:t.toISOString()})}else this.metaService.removeTag("name='article:modified_time'"),this.metaService.removeTag("name='og:updated_time'")},e.prototype.setAuthor=function(e){e&&e.length?(this.metaService.updateTag({name:"article:author",content:e}),this.metaService.updateTag({name:"author",content:e})):(this.metaService.removeTag("name='article:author'"),this.metaService.removeTag("name='author'"))},e.decorators=[{type:i.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:o.Meta},{type:o.Title}]},e.ngInjectableDef=i.defineInjectable({factory:function(){return new e(i.inject(o.Meta),i.inject(o.Title))},token:e,providedIn:"root"}),e}();e.JsonLdService=n,e.ServerJsonLdModule=p,e.BrowserJsonLdModule=c,e.SeoSocialShareService=m,e.ɵa=s,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=ngx-seo.umd.min.js.map