UNPKG

ngx-seo

Version:

This library was generated with [Nx](https://nx.dev).

48 lines 5.25 kB
import { inject, Injectable } from '@angular/core'; import { DOCUMENT } from '@angular/common'; import * as i0 from "@angular/core"; export class JsonLdService { constructor() { this.document = inject(DOCUMENT); } setData(data) { this.jsonLd = data; this.inject(); } getObject(type, rawData, context = 'http://schema.org') { let object = { '@type': type, }; if (context) { object = { '@context': context, ...object, }; } if (rawData) { object = { ...object, ...rawData, }; } return object; } inject() { let ldJsonScriptTag = this.document.head.querySelector(`script[type='application/ld+json']`); if (ldJsonScriptTag) { ldJsonScriptTag.textContent = JSON.stringify(this.jsonLd); } else { ldJsonScriptTag = this.document.createElement('script'); ldJsonScriptTag.setAttribute('type', 'application/ld+json'); ldJsonScriptTag.textContent = JSON.stringify(this.jsonLd); this.document.head.appendChild(ldJsonScriptTag); } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: JsonLdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: JsonLdService }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: JsonLdService, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1sZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3gtc2VvL3NyYy9saWIvanNvbi1sZC9qc29uLWxkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQU8zQyxNQUFNLE9BQU8sYUFBYTtJQUQxQjtRQUdtQixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBd0M5QztJQXBDUSxPQUFPLENBQUMsSUFBdUI7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxTQUFTLENBQUMsSUFBWSxFQUFFLE9BQWdCLEVBQUUsT0FBTyxHQUFHLG1CQUFtQjtRQUM1RSxJQUFJLE1BQU0sR0FBVztZQUNuQixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUM7UUFDRixJQUFJLE9BQU8sRUFBRTtZQUNYLE1BQU0sR0FBRztnQkFDUCxVQUFVLEVBQUUsT0FBTztnQkFDbkIsR0FBRyxNQUFNO2FBQ1YsQ0FBQztTQUNIO1FBQ0QsSUFBSSxPQUFPLEVBQUU7WUFDWCxNQUFNLEdBQUc7Z0JBQ1AsR0FBRyxNQUFNO2dCQUNULEdBQUcsT0FBTzthQUNYLENBQUM7U0FDSDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxNQUFNO1FBQ1osSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDN0YsSUFBSSxlQUFlLEVBQUU7WUFDbkIsZUFBZSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMzRDthQUFNO1lBQ0wsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hELGVBQWUsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLENBQUM7WUFDNUQsZUFBZSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDakQ7SUFDSCxDQUFDOzhHQXhDVSxhQUFhO2tIQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBKc29uTGQge1xuICBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBKc29uTGQgfCB1bmRlZmluZWQ7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBKc29uTGRTZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSBqc29uTGQ/OiBKc29uTGQgfCBKc29uTGRbXTtcblxuXG4gIHB1YmxpYyBzZXREYXRhKGRhdGE6IEpzb25MZCB8IEpzb25MZFtdKTogdm9pZCB7XG4gICAgdGhpcy5qc29uTGQgPSBkYXRhO1xuICAgIHRoaXMuaW5qZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0T2JqZWN0KHR5cGU6IHN0cmluZywgcmF3RGF0YT86IEpzb25MZCwgY29udGV4dCA9ICdodHRwOi8vc2NoZW1hLm9yZycpOiBKc29uTGQge1xuICAgIGxldCBvYmplY3Q6IEpzb25MZCA9IHtcbiAgICAgICdAdHlwZSc6IHR5cGUsXG4gICAgfTtcbiAgICBpZiAoY29udGV4dCkge1xuICAgICAgb2JqZWN0ID0ge1xuICAgICAgICAnQGNvbnRleHQnOiBjb250ZXh0LFxuICAgICAgICAuLi5vYmplY3QsXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAocmF3RGF0YSkge1xuICAgICAgb2JqZWN0ID0ge1xuICAgICAgICAuLi5vYmplY3QsXG4gICAgICAgIC4uLnJhd0RhdGEsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gb2JqZWN0O1xuICB9XG5cbiAgcHJpdmF0ZSBpbmplY3QoKTogdm9pZCB7XG4gICAgbGV0IGxkSnNvblNjcmlwdFRhZyA9IHRoaXMuZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yKGBzY3JpcHRbdHlwZT0nYXBwbGljYXRpb24vbGQranNvbiddYCk7XG4gICAgaWYgKGxkSnNvblNjcmlwdFRhZykge1xuICAgICAgbGRKc29uU2NyaXB0VGFnLnRleHRDb250ZW50ID0gSlNPTi5zdHJpbmdpZnkodGhpcy5qc29uTGQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZEpzb25TY3JpcHRUYWcgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgbGRKc29uU2NyaXB0VGFnLnNldEF0dHJpYnV0ZSgndHlwZScsICdhcHBsaWNhdGlvbi9sZCtqc29uJyk7XG4gICAgICBsZEpzb25TY3JpcHRUYWcudGV4dENvbnRlbnQgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmpzb25MZCk7XG4gICAgICB0aGlzLmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobGRKc29uU2NyaXB0VGFnKTtcbiAgICB9XG4gIH1cblxufVxuIl19