UNPKG

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.

110 lines 7.05 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Inject, Injectable, Optional, PLATFORM_ID } from '@angular/core'; import { DOCUMENT } from '@angular/common'; import { isPlatformBrowser } from '@angular/common'; var JsonLdService = /** @class */ (function () { function JsonLdService(platformId, doc) { this.platformId = platformId; this.doc = doc; this.jsonLd = {}; } /** * @param {?} type * @param {?} rawData * @return {?} */ JsonLdService.prototype.setData = /** * @param {?} type * @param {?} rawData * @return {?} */ function (type, rawData) { this.jsonLd = this.getObject(type, rawData); this.injectBrowser(); }; /** * @param {?} type * @param {?=} rawData * @return {?} */ JsonLdService.prototype.getObject = /** * @param {?} type * @param {?=} rawData * @return {?} */ function (type, rawData) { /** @type {?} */ var object = { '@context': 'http://schema.org', '@type': type, }; if (rawData) { object = tslib_1.__assign({}, object, rawData); } return object; }; /** * @return {?} */ JsonLdService.prototype.toJson = /** * @return {?} */ function () { return JSON.stringify(this.jsonLd); }; /** * @private * @return {?} */ JsonLdService.prototype.injectBrowser = /** * @private * @return {?} */ function () { if (this.platformId && isPlatformBrowser(this.platformId)) { /** @type {?} */ var ldJsonScriptTag = this.doc.head.querySelector("script[type='application/ld+json']"); if (ldJsonScriptTag) { ldJsonScriptTag.textContent = this.toJson(); } else { ldJsonScriptTag = this.doc.createElement('script'); ldJsonScriptTag.setAttribute('type', 'application/ld+json'); ldJsonScriptTag.textContent = this.toJson(); this.doc.head.appendChild(ldJsonScriptTag); } } }; JsonLdService.decorators = [ { type: Injectable } ]; /** @nocollapse */ JsonLdService.ctorParameters = function () { return [ { type: Object, decorators: [{ type: Optional }, { type: Inject, args: [PLATFORM_ID,] }] }, { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] } ]; }; return JsonLdService; }()); export { JsonLdService }; if (false) { /** * @type {?} * @private */ JsonLdService.prototype.jsonLd; /** * @type {?} * @private */ JsonLdService.prototype.platformId; /** * @type {?} * @private */ JsonLdService.prototype.doc; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1sZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXNlby8iLCJzb3VyY2VzIjpbImxpYi9qc29uLWxkL2pzb24tbGQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBEO0lBS0UsdUJBQ29ELFVBQWtCLEVBQ3JCLEdBQVE7UUFETCxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ3JCLFFBQUcsR0FBSCxHQUFHLENBQUs7UUFKakQsV0FBTSxHQUFRLEVBQUUsQ0FBQztJQU16QixDQUFDOzs7Ozs7SUFFRCwrQkFBTzs7Ozs7SUFBUCxVQUFRLElBQUksRUFBRSxPQUFZO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Ozs7OztJQUVELGlDQUFTOzs7OztJQUFULFVBQVUsSUFBSSxFQUFFLE9BQWE7O1lBQ3ZCLE1BQU0sR0FBRztZQUNYLFVBQVUsRUFBRSxtQkFBbUI7WUFDL0IsT0FBTyxFQUFFLElBQUk7U0FDZDtRQUNELElBQUksT0FBTyxFQUFFO1lBQ1gsTUFBTSx3QkFDRCxNQUFNLEVBQ04sT0FBTyxDQUNYLENBQUM7U0FDSDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Ozs7SUFFRCw4QkFBTTs7O0lBQU47UUFDRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Ozs7O0lBRU8scUNBQWE7Ozs7SUFBckI7UUFDRSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFOztnQkFDckQsZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQ0FBb0MsQ0FBQztZQUN2RixJQUFJLGVBQWUsRUFBRTtnQkFDbkIsZUFBZSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDN0M7aUJBQU07Z0JBQ0wsZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNuRCxlQUFlLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO2dCQUM1RCxlQUFlLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQzVDO1NBQ0Y7SUFDSCxDQUFDOztnQkE5Q0YsVUFBVTs7OztnQkFNdUQsTUFBTSx1QkFBbkUsUUFBUSxZQUFJLE1BQU0sU0FBQyxXQUFXO2dEQUM5QixRQUFRLFlBQUksTUFBTSxTQUFDLFFBQVE7O0lBeUNoQyxvQkFBQztDQUFBLEFBaERELElBZ0RDO1NBL0NZLGFBQWE7Ozs7OztJQUV4QiwrQkFBeUI7Ozs7O0lBR3ZCLG1DQUFvRTs7Ozs7SUFDcEUsNEJBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEpzb25MZFNlcnZpY2Uge1xuXG4gIHByaXZhdGUganNvbkxkOiBhbnkgPSB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQ6IE9iamVjdCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvYzogYW55LFxuICApIHtcbiAgfVxuXG4gIHNldERhdGEodHlwZSwgcmF3RGF0YTogYW55KSB7XG4gICAgdGhpcy5qc29uTGQgPSB0aGlzLmdldE9iamVjdCh0eXBlLCByYXdEYXRhKTtcbiAgICB0aGlzLmluamVjdEJyb3dzZXIoKTtcbiAgfVxuXG4gIGdldE9iamVjdCh0eXBlLCByYXdEYXRhPzogYW55KSB7XG4gICAgbGV0IG9iamVjdCA9IHtcbiAgICAgICdAY29udGV4dCc6ICdodHRwOi8vc2NoZW1hLm9yZycsXG4gICAgICAnQHR5cGUnOiB0eXBlLFxuICAgIH07XG4gICAgaWYgKHJhd0RhdGEpIHtcbiAgICAgIG9iamVjdCA9IHtcbiAgICAgICAgLi4ub2JqZWN0LFxuICAgICAgICAuLi5yYXdEYXRhLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfVxuXG4gIHRvSnNvbigpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5qc29uTGQpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbmplY3RCcm93c2VyKCkge1xuICAgIGlmICh0aGlzLnBsYXRmb3JtSWQgJiYgaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgbGV0IGxkSnNvblNjcmlwdFRhZyA9IHRoaXMuZG9jLmhlYWQucXVlcnlTZWxlY3Rvcihgc2NyaXB0W3R5cGU9J2FwcGxpY2F0aW9uL2xkK2pzb24nXWApO1xuICAgICAgaWYgKGxkSnNvblNjcmlwdFRhZykge1xuICAgICAgICBsZEpzb25TY3JpcHRUYWcudGV4dENvbnRlbnQgPSB0aGlzLnRvSnNvbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGRKc29uU2NyaXB0VGFnID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgIGxkSnNvblNjcmlwdFRhZy5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnYXBwbGljYXRpb24vbGQranNvbicpO1xuICAgICAgICBsZEpzb25TY3JpcHRUYWcudGV4dENvbnRlbnQgPSB0aGlzLnRvSnNvbigpO1xuICAgICAgICB0aGlzLmRvYy5oZWFkLmFwcGVuZENoaWxkKGxkSnNvblNjcmlwdFRhZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==