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! 🚀

196 lines (181 loc) 8.14 kB
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