@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! 🚀
196 lines (181 loc) • 8.14 kB
JavaScript
import { withNameAttribute, _composedMetadataName, _provideNgxMetaModuleManager, withOptions, _withModuleManagerNameAttribute, _withModuleManagerSetterFactory, withContentAttribute, _GLOBAL_DESCRIPTION, _withModuleManagerSameGlobalKey, _maybeTooLongDevMessage, _GLOBAL_IMAGE, withManagerObjectMerging, _maybeNonHttpUrlDevMessage, _GLOBAL_TITLE, withManagerDeps, NgxMetaElementsService, _titleFormatter } from '@davidlj95/ngx-meta/core';
import * as i0 from '@angular/core';
import { NgModule } from '@angular/core';
const withTwitterCardNameAttribute = (...nameParts) => withNameAttribute(_composedMetadataName('twitter', ...nameParts));
const provideTwitterCardManager = (key, ...options) => _provideNgxMetaModuleManager(key, ['twitterCard'], withOptions(_withModuleManagerNameAttribute(withTwitterCardNameAttribute(key)), ...options));
/**
* Manages the {@link TwitterCard.card} metadata
* @public
*/
const provideTwitterCardCard = () => provideTwitterCardManager('card');
/**
* {@inheritDoc provideTwitterCardCard}
* @deprecated Use {@link provideTwitterCardCard} instead
* @public
*/
const TWITTER_CARD_CARD_METADATA_PROVIDER =
/* @__PURE__ */
provideTwitterCardCard();
/**
* See {@link TwitterCardType}
* @public
*/
const TWITTER_CARD_TYPE_SUMMARY = 'summary';
/**
* See {@link TwitterCardType}
* @public
*/
const TWITTER_CARD_TYPE_SUMMARY_LARGE_IMAGE = 'summary_large_image';
/**
* See {@link TwitterCardType}
* @public
*/
const TWITTER_CARD_TYPE_APP = 'app';
/**
* See {@link TwitterCardType}
* @public
*/
const TWITTER_CARD_TYPE_PLAYER = 'player';
const KEY$1 = 'creator';
/**
* Manages the {@link TwitterCard.creator} metadata
* @public
*/
const provideTwitterCardCreator = () => provideTwitterCardManager(KEY$1, _withModuleManagerSetterFactory((metaElementsService) => (creator) => {
metaElementsService.set(withTwitterCardNameAttribute(KEY$1), withContentAttribute(creator
?.username));
metaElementsService.set(withTwitterCardNameAttribute(KEY$1, 'id'), withContentAttribute(creator?.id));
}));
/**
* {@inheritDoc provideTwitterCardCreator}
* @deprecated Use {@link provideTwitterCardCreator} instead
* @public
*/
const TWITTER_CARD_CREATOR_METADATA_PROVIDER =
/* @__PURE__ */
provideTwitterCardCreator();
const MODULE_NAME = 'twitter-card';
/**
* Manages the {@link TwitterCard.description} metadata
* @public
*/
const provideTwitterCardDescription = () => provideTwitterCardManager(_GLOBAL_DESCRIPTION, _withModuleManagerSameGlobalKey(), _withModuleManagerSetterFactory((metaElementsService) => (description) => {
/* istanbul ignore next https://github.com/istanbuljs/istanbuljs/issues/719 */
if (ngDevMode) {
_maybeTooLongDevMessage(description, 200, {
module: MODULE_NAME,
property: _GLOBAL_DESCRIPTION,
value: description,
link: 'https://developer.x.com/en/docs/twitter-for-websites/cards/overview/markup#:~:text=n/a-,twitter%3Adescription,-Description%20of%20content',
});
}
metaElementsService.set(withTwitterCardNameAttribute(_GLOBAL_DESCRIPTION), withContentAttribute(description));
}));
/**
* {@inheritDoc provideTwitterCardDescription}
* @deprecated Use {@link provideTwitterCardDescription} instead
* @public
*/
const TWITTER_CARD_DESCRIPTION_METADATA_PROVIDER =
/* @__PURE__ */
provideTwitterCardDescription();
/**
* Manages the {@link TwitterCard.image} metadata
* @public
*/
const provideTwitterCardImage = () => provideTwitterCardManager(_GLOBAL_IMAGE, _withModuleManagerSameGlobalKey(), withManagerObjectMerging(), _withModuleManagerSetterFactory((metaElementsService) => (image) => {
/* istanbul ignore next https://github.com/istanbuljs/istanbuljs/issues/719 */
if (ngDevMode) {
_maybeNonHttpUrlDevMessage(image?.url, {
module: MODULE_NAME,
property: 'image',
value: image?.url.toString(),
link: 'https://devcommunity.x.com/t/card-error-unable-to-render-or-no-image-read-this-first/62736',
});
}
metaElementsService.set(withTwitterCardNameAttribute(_GLOBAL_IMAGE), withContentAttribute(image?.url?.toString()));
metaElementsService.set(withTwitterCardNameAttribute(_GLOBAL_IMAGE, 'alt'), withContentAttribute(image?.alt));
}));
/**
* {@inheritDoc provideTwitterCardImage}
* @deprecated Use {@link provideTwitterCardImage} instead
* @public
*/
const TWITTER_CARD_IMAGE_METADATA_PROVIDER =
/* @__PURE__ */
provideTwitterCardImage();
const KEY = 'site';
/**
* Manages the {@link TwitterCard.site} metadata
* @public
*/
const provideTwitterCardSite = () => provideTwitterCardManager(KEY, _withModuleManagerSetterFactory((metaElementsService) => (site) => {
metaElementsService.set(withTwitterCardNameAttribute(KEY), withContentAttribute(site?.username));
metaElementsService.set(withTwitterCardNameAttribute(KEY, 'id'), withContentAttribute(site?.id));
}));
/**
* {@inheritDoc provideTwitterCardSite}
* @deprecated Use {@link provideTwitterCardSite} instead
* @public
*/
const TWITTER_CARD_SITE_METADATA_PROVIDER =
/* @__PURE__ */
provideTwitterCardSite();
/**
* Manages the {@link TwitterCard.title} metadata
* @public
*/
const provideTwitterCardTitle = () => provideTwitterCardManager(_GLOBAL_TITLE, _withModuleManagerSameGlobalKey(), withManagerDeps(NgxMetaElementsService, _titleFormatter()), _withModuleManagerSetterFactory((metaElementsService, titleFormatter) => (title) => {
metaElementsService.set(withTwitterCardNameAttribute(_GLOBAL_TITLE), withContentAttribute(title ? titleFormatter(title) : title));
}));
/**
* {@inheritDoc provideTwitterCardTitle}
* @deprecated Use {@link provideTwitterCardTitle} instead
* @public
*/
const TWITTER_CARD_TITLE_METADATA_PROVIDER =
/* @__PURE__ */
provideTwitterCardTitle();
/**
* Provides {@link https://ngx-meta.dev/built-in-modules/twitter-cards/ | Twitter Cards module}
* metadata managers.
*
* @remarks
*
* This is the standalone, recommended API. Using this API is preferred.
* However, you may also use {@link NgxMetaTwitterCardModule} as the Angular module-based equivalent API.
*
* @public
*/
const provideNgxMetaTwitterCard = () => [
provideTwitterCardCard(),
provideTwitterCardSite(),
provideTwitterCardCreator(),
provideTwitterCardDescription(),
provideTwitterCardTitle(),
provideTwitterCardImage(),
];
/**
* Provides {@link https://ngx-meta.dev/built-in-modules/twitter-cards/ | Twitter Cards module}
* metadata managers.
*
* Check out {@link provideNgxMetaTwitterCard} for the standalone, recommended API.
*
* @public
*/
class NgxMetaTwitterCardModule {
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxMetaTwitterCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NgxMetaTwitterCardModule }); }
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxMetaTwitterCardModule, providers: [provideNgxMetaTwitterCard()] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxMetaTwitterCardModule, decorators: [{
type: NgModule,
args: [{
providers: [provideNgxMetaTwitterCard()],
}]
}] });
/**
* Generated bundle index. Do not edit.
*/
export { NgxMetaTwitterCardModule, TWITTER_CARD_CARD_METADATA_PROVIDER, TWITTER_CARD_CREATOR_METADATA_PROVIDER, TWITTER_CARD_DESCRIPTION_METADATA_PROVIDER, TWITTER_CARD_IMAGE_METADATA_PROVIDER, TWITTER_CARD_SITE_METADATA_PROVIDER, TWITTER_CARD_TITLE_METADATA_PROVIDER, TWITTER_CARD_TYPE_APP, TWITTER_CARD_TYPE_PLAYER, TWITTER_CARD_TYPE_SUMMARY, TWITTER_CARD_TYPE_SUMMARY_LARGE_IMAGE, provideNgxMetaTwitterCard, provideTwitterCardCard, provideTwitterCardCreator, provideTwitterCardDescription, provideTwitterCardImage, provideTwitterCardSite, provideTwitterCardTitle };
//# sourceMappingURL=davidlj95-ngx-meta-twitter-card.mjs.map