@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! 🚀
20 lines • 3.08 kB
JavaScript
import { inject } from '@angular/core';
import { DOCUMENT } from '@angular/common';
import { _isDefined, _makeInjectionToken } from '../utils';
/**
* @internal
*/
export const _headElementUpsertOrRemove = () => _makeInjectionToken(ngDevMode ? 'Head element upsert or remove util' : 'HEUOR', () => {
const head = inject(DOCUMENT).head;
return (selector, element) => {
const existingScriptElement = head.querySelector(selector);
if (existingScriptElement) {
head.removeChild(existingScriptElement);
}
if (!_isDefined(element)) {
return;
}
head.appendChild(element);
};
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1lbGVtZW50LXVwc2VydC1vci1yZW1vdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29yZS9zcmMvaGVhZC1lbGVtZW50cy9oZWFkLWVsZW1lbnQtdXBzZXJ0LW9yLXJlbW92ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUF1QixtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUUvRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUVuQyxHQUFHLEVBQUUsQ0FDUCxtQkFBbUIsQ0FDakIsU0FBUyxDQUFDLENBQUMsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUMxRCxHQUFHLEVBQUU7SUFDSCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQ2xDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDM0IsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzFELElBQUkscUJBQXFCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLENBQUE7UUFDekMsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN6QixPQUFNO1FBQ1IsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDM0IsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyxDQUNGLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBfaXNEZWZpbmVkLCBfTGF6eUluamVjdGlvblRva2VuLCBfbWFrZUluamVjdGlvblRva2VuIH0gZnJvbSAnLi4vdXRpbHMnXG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBfaGVhZEVsZW1lbnRVcHNlcnRPclJlbW92ZTogX0xhenlJbmplY3Rpb25Ub2tlbjxcbiAgX0hlYWRFbGVtZW50VXBzZXJ0T3JSZW1vdmVcbj4gPSAoKSA9PlxuICBfbWFrZUluamVjdGlvblRva2VuKFxuICAgIG5nRGV2TW9kZSA/ICdIZWFkIGVsZW1lbnQgdXBzZXJ0IG9yIHJlbW92ZSB1dGlsJyA6ICdIRVVPUicsXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgaGVhZCA9IGluamVjdChET0NVTUVOVCkuaGVhZFxuICAgICAgcmV0dXJuIChzZWxlY3RvciwgZWxlbWVudCkgPT4ge1xuICAgICAgICBjb25zdCBleGlzdGluZ1NjcmlwdEVsZW1lbnQgPSBoZWFkLnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpXG4gICAgICAgIGlmIChleGlzdGluZ1NjcmlwdEVsZW1lbnQpIHtcbiAgICAgICAgICBoZWFkLnJlbW92ZUNoaWxkKGV4aXN0aW5nU2NyaXB0RWxlbWVudClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghX2lzRGVmaW5lZChlbGVtZW50KSkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGhlYWQuYXBwZW5kQ2hpbGQoZWxlbWVudClcbiAgICAgIH1cbiAgICB9LFxuICApXG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCB0eXBlIF9IZWFkRWxlbWVudFVwc2VydE9yUmVtb3ZlID0gKFxuICBzZWxlY3Rvcjogc3RyaW5nLFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQsXG4pID0+IHZvaWRcbiJdfQ==