{"version":3,"file":"code-name-jack-ngx-linkifyjs.mjs","sources":["../../../projects/ngx-linkifyjs-v2/src/lib/enum/linktype.enum.ts","../../../projects/ngx-linkifyjs-v2/src/lib/pipes/ngx-linkifyjs.pipe.ts","../../../projects/ngx-linkifyjs-v2/src/lib/service/ngx-linkifyjs.service.ts","../../../projects/ngx-linkifyjs-v2/src/lib/constants/ngx-linkifyjs.constants.ts","../../../projects/ngx-linkifyjs-v2/src/lib/providers/ngx-linkifyjs.provider.ts","../../../projects/ngx-linkifyjs-v2/src/public-api.ts","../../../projects/ngx-linkifyjs-v2/src/code-name-jack-ngx-linkifyjs.ts"],"sourcesContent":["export enum LinkType {\n  URL = 'url',\n  HASHTAG = 'hashtag',\n  MENTION = 'mention',\n  EMAIL = 'email',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { NgxLinkifyOptions } from '../interfaces/ngx-linkifyjs.interface';\nimport linkifyStr from 'linkify-string';\n\n@Pipe({\n  name: 'linkify',\n  standalone: true\n})\nexport class NgxLinkifyjsPipe implements PipeTransform {\n  transform(value: string | null | undefined, options?: NgxLinkifyOptions): string {\n    if (!value) {\n      return '';\n    }\n    return linkifyStr(value, options);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport * as linkify from 'linkifyjs';\nimport linkifyStr from 'linkify-string';\nimport { Link, NgxLinkifyOptions } from '../interfaces/ngx-linkifyjs.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxLinkifyjsService {\n  /**\n   * Convert the passed text as a string to an appropriate url\n   *\n   * @param text - the string to convert\n   * @param options - options to pass it to the linkifyjs library\n   * @returns HTML string with linkified URLs, emails, hashtags, and mentions\n   */\n  linkify(text: string, options?: NgxLinkifyOptions): string {\n    if (!text) {\n      return '';\n    }\n    return linkifyStr(text, options);\n  }\n\n  /**\n   * Find any links in a given text as a string\n   *\n   * @param text - the string to find some links\n   * @returns Array of Link objects found in the text\n   */\n  find(text: string): Link[] {\n    if (!text) {\n      return [];\n    }\n    return linkify.find(text);\n  }\n\n  /**\n   * Test if a given value is a link or an array of all links\n   *\n   * @param value - the value to test (string or array of strings)\n   * @returns true if all values are valid links, false otherwise\n   */\n  test(value: string | readonly string[]): boolean {\n    if (typeof value === 'string') {\n      return linkify.test(value);\n    }\n    return value.every(v => linkify.test(v));\n  }\n}\n","import { InjectionToken } from '@angular/core';\nimport { NgxLinkifyjsConfig } from '../interfaces/ngx-linkifyjs.interface';\n\n/**\n * Injection token for NgxLinkifyjs configuration\n */\nexport const NgxLinkifyjsConfigToken = new InjectionToken<NgxLinkifyjsConfig>('NgxLinkifyjsConfig');\n\n/**\n * Default configuration for NgxLinkifyjs\n */\nexport const DEFAULT_CONFIG: NgxLinkifyjsConfig = { enableHash: true, enableMention: true };\n\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { NgxLinkifyjsService } from '../service/ngx-linkifyjs.service';\nimport { NgxLinkifyjsConfig } from '../interfaces/ngx-linkifyjs.interface';\nimport { NgxLinkifyjsConfigToken, DEFAULT_CONFIG } from '../constants/ngx-linkifyjs.constants';\n\n// Conditionally import plugins based on configuration\nlet pluginsLoaded = false;\n\nfunction loadPlugins(config: NgxLinkifyjsConfig): void {\n  if (pluginsLoaded) {\n    return;\n  }\n  \n  const pluginPromises: Promise<unknown>[] = [];\n\n  if (config?.enableHash) {\n    pluginPromises.push(\n      import('linkify-plugin-hashtag').catch(err => {\n        console.error('Failed to load hashtag plugin:', err);\n        return null;\n      })\n    );\n  }\n\n  if (config?.enableMention) {\n    pluginPromises.push(\n      import('linkify-plugin-mention').catch(err => {\n        console.error('Failed to load mention plugin:', err);\n        return null;\n      })\n    );\n  }\n\n  if (pluginPromises.length > 0) {\n    Promise.all(pluginPromises).finally(() => {\n      pluginsLoaded = true;\n    });\n  } else {\n    pluginsLoaded = true;\n  }\n}\n\n/**\n * Provides NgxLinkifyjs services and configuration.\n * Works with both standalone and NgModule-based applications.\n * \n * @param config - Configuration options for enabling hashtag and mention plugins\n * @returns EnvironmentProviders array that can be used in app.config.ts\n * \n * @example\n * ```typescript\n * import { provideNgxLinkifyjs } from 'ngx-linkifyjs';\n * \n * export const appConfig: ApplicationConfig = {\n *   providers: [\n *     provideNgxLinkifyjs({\n *       enableHash: true,\n *       enableMention: true\n *     })\n *   ]\n * };\n * ```\n */\nexport function provideNgxLinkifyjs(\n  config: NgxLinkifyjsConfig = DEFAULT_CONFIG\n): EnvironmentProviders {\n  loadPlugins(config);\n  \n  return makeEnvironmentProviders([\n    NgxLinkifyjsService,\n    {\n      provide: NgxLinkifyjsConfigToken,\n      useValue: { ...DEFAULT_CONFIG, ...config }\n    }\n  ]);\n}\n\n","/*\n * Public API Surface of ngx-linkifyjs\n */\n\nexport * from './lib/enum/linktype.enum';\nexport * from './lib/interfaces/ngx-linkifyjs.interface';\nexport * from './lib/pipes/ngx-linkifyjs.pipe';\nexport * from './lib/service/ngx-linkifyjs.service';\nexport * from './lib/providers/ngx-linkifyjs.provider';\nexport * from './lib/constants/ngx-linkifyjs.constants';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}