UNPKG

@davidlj95/ngx-meta

Version:

Set your Angular site's metadata: standard meta tags, Open Graph, Twitter Cards, JSON-LD structured data and more. Supports SSR (and Angular Universal). Use a service. Use routes' data. Set it up in a flash! 🚀

25 lines • 4.16 kB
import { DOCUMENT } from '@angular/common'; import { _headElementUpsertOrRemove, _isDefined, provideNgxMetaManager, withManagerDeps, withOptions, } from '@davidlj95/ngx-meta/core'; const SCRIPT_TYPE = 'application/ld+json'; /** * Manages the {@link JsonLdMetadata.jsonLd} metadata by placing it into the page's `<head>` * @public */ export const provideJsonLdInHead = () => provideNgxMetaManager('jsonLd', (headElementUpsertOrRemove, doc) => (jsonLd) => { let scriptElement; if (_isDefined(jsonLd)) { scriptElement = doc.createElement('script'); scriptElement.setAttribute('type', SCRIPT_TYPE); scriptElement.innerHTML = JSON.stringify(jsonLd); } headElementUpsertOrRemove(`script[type='${SCRIPT_TYPE}']`, scriptElement); }, withOptions(withManagerDeps(_headElementUpsertOrRemove(), DOCUMENT))); /** * {@inheritDoc provideNgxMetaJsonLd} * @deprecated Use {@link provideNgxMetaJsonLd} instead * @public */ export const JSON_LD_METADATA_PROVIDER = /* @__PURE__ */ provideJsonLdInHead(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1qc29uLWxkLWluLWhlYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvanNvbi1sZC9zcmMvbWFuYWdlcnMvcHJvdmlkZS1qc29uLWxkLWluLWhlYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzFDLE9BQU8sRUFDTCwwQkFBMEIsRUFFMUIsVUFBVSxFQUNWLHFCQUFxQixFQUNyQixlQUFlLEVBQ2YsV0FBVyxHQUNaLE1BQU0sMEJBQTBCLENBQUE7QUFHakMsTUFBTSxXQUFXLEdBQUcscUJBQXFCLENBQUE7QUFFekM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxFQUFFLENBQ3RDLHFCQUFxQixDQUNuQixRQUF1QyxFQUN2QyxDQUFDLHlCQUFxRCxFQUFFLEdBQWEsRUFBRSxFQUFFLENBQ3ZFLENBQUMsTUFBTSxFQUFFLEVBQUU7SUFDVCxJQUFJLGFBQTRDLENBQUE7SUFDaEQsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN2QixhQUFhLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUMzQyxhQUFhLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQTtRQUMvQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUNELHlCQUF5QixDQUN2QixnQkFBZ0IsV0FBVyxJQUFJLEVBQy9CLGFBQWEsQ0FDZCxDQUFBO0FBQ0gsQ0FBQyxFQUNILFdBQVcsQ0FBQyxlQUFlLENBQUMsMEJBQTBCLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUNyRSxDQUFBO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHlCQUF5QjtBQUNwQyxlQUFlO0FBQ2YsbUJBQW1CLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgX2hlYWRFbGVtZW50VXBzZXJ0T3JSZW1vdmUsXG4gIF9IZWFkRWxlbWVudFVwc2VydE9yUmVtb3ZlLFxuICBfaXNEZWZpbmVkLFxuICBwcm92aWRlTmd4TWV0YU1hbmFnZXIsXG4gIHdpdGhNYW5hZ2VyRGVwcyxcbiAgd2l0aE9wdGlvbnMsXG59IGZyb20gJ0BkYXZpZGxqOTUvbmd4LW1ldGEvY29yZSdcbmltcG9ydCB7IEpzb25MZE1ldGFkYXRhIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmNvbnN0IFNDUklQVF9UWVBFID0gJ2FwcGxpY2F0aW9uL2xkK2pzb24nXG5cbi8qKlxuICogTWFuYWdlcyB0aGUge0BsaW5rIEpzb25MZE1ldGFkYXRhLmpzb25MZH0gbWV0YWRhdGEgYnkgcGxhY2luZyBpdCBpbnRvIHRoZSBwYWdlJ3MgYDxoZWFkPmBcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHByb3ZpZGVKc29uTGRJbkhlYWQgPSAoKSA9PlxuICBwcm92aWRlTmd4TWV0YU1hbmFnZXI8SnNvbkxkTWV0YWRhdGFbJ2pzb25MZCddPihcbiAgICAnanNvbkxkJyBzYXRpc2ZpZXMga2V5b2YgSnNvbkxkTWV0YWRhdGEsXG4gICAgKGhlYWRFbGVtZW50VXBzZXJ0T3JSZW1vdmU6IF9IZWFkRWxlbWVudFVwc2VydE9yUmVtb3ZlLCBkb2M6IERvY3VtZW50KSA9PlxuICAgICAgKGpzb25MZCkgPT4ge1xuICAgICAgICBsZXQgc2NyaXB0RWxlbWVudDogSFRNTFNjcmlwdEVsZW1lbnQgfCB1bmRlZmluZWRcbiAgICAgICAgaWYgKF9pc0RlZmluZWQoanNvbkxkKSkge1xuICAgICAgICAgIHNjcmlwdEVsZW1lbnQgPSBkb2MuY3JlYXRlRWxlbWVudCgnc2NyaXB0JylcbiAgICAgICAgICBzY3JpcHRFbGVtZW50LnNldEF0dHJpYnV0ZSgndHlwZScsIFNDUklQVF9UWVBFKVxuICAgICAgICAgIHNjcmlwdEVsZW1lbnQuaW5uZXJIVE1MID0gSlNPTi5zdHJpbmdpZnkoanNvbkxkKVxuICAgICAgICB9XG4gICAgICAgIGhlYWRFbGVtZW50VXBzZXJ0T3JSZW1vdmUoXG4gICAgICAgICAgYHNjcmlwdFt0eXBlPScke1NDUklQVF9UWVBFfSddYCxcbiAgICAgICAgICBzY3JpcHRFbGVtZW50LFxuICAgICAgICApXG4gICAgICB9LFxuICAgIHdpdGhPcHRpb25zKHdpdGhNYW5hZ2VyRGVwcyhfaGVhZEVsZW1lbnRVcHNlcnRPclJlbW92ZSgpLCBET0NVTUVOVCkpLFxuICApXG5cbi8qKlxuICoge0Bpbmhlcml0RG9jIHByb3ZpZGVOZ3hNZXRhSnNvbkxkfVxuICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBwcm92aWRlTmd4TWV0YUpzb25MZH0gaW5zdGVhZFxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgSlNPTl9MRF9NRVRBREFUQV9QUk9WSURFUiA9XG4gIC8qIEBfX1BVUkVfXyAqL1xuICBwcm92aWRlSnNvbkxkSW5IZWFkKClcbiJdfQ==