ngx-seo
Version:
This library was generated with [Nx](https://nx.dev).
48 lines • 5.25 kB
JavaScript
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