{
  "version": 3,
  "sources": ["src/app/core/data/blog-categories.ts", "src/app/pages/blog/services/blog.service.ts"],
  "sourcesContent": ["\r\n\r\nexport const blogCategories = [\r\n  {id:1, slug: 'all', label: 'Tous les articles'  , filter:'all'},\r\n  {id:2, slug: 'site-web', label: 'Création de site web' , filter:'creation-site-web' },\r\n  {id:3, slug: 'seo', label: 'Référencement SEO' , filter:'seo' },\r\n  {id:4, slug: 'gbp', label: 'Google Business Profile' , filter:'google-business-profile' },\r\n  {id:5, slug: 'conversion', label: 'Conversion' , filter:'conversion' },\r\n  {id:6, slug: 'freelance', label: 'Conseils pour indépendants' , filter:'conseils-independants' }\r\n];\r\n", "import {inject, Injectable} from '@angular/core';\r\nimport {BlogArticle} from '../../../core/interfaces/blogArticle.interface';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {Observable} from 'rxjs';\r\nimport {environment} from '../../../../environment/environment';\r\nimport {BlogArticleDetailResponse} from '../../../core/interfaces/BlogArticleDetailResponse';\r\nimport {blogCategories} from '../../../core/data/blog-categories';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class BlogService {\r\n\r\n  private schemaScript?: HTMLScriptElement;\r\n  private http = inject(HttpClient);\r\n  private blogCategories = blogCategories;\r\n\r\n\r\n  getAllArticles(): Observable<BlogArticle[]> {\r\n\r\n    return this.http.get<BlogArticle[]>(environment.apiURL + '/api/blog');\r\n  }\r\n\r\n  getArticleBySlug(slug: string): Observable<BlogArticleDetailResponse> {\r\n    return this.http.get<BlogArticleDetailResponse>(environment.apiURL + `/api/blog/${slug}`);\r\n  }\r\n\r\n  getRelatedArticles(articleId: number): Observable<BlogArticle[]> {\r\n    return this.http.get<BlogArticle[]>(environment.apiURL + `/api/blog/related/${articleId}`)\r\n  }\r\n\r\n\r\n  generateHeadingId(text: string): string {\r\n    return text\r\n      .toLowerCase()\r\n      .normalize('NFD')\r\n      .replace(/[\\u0300-\\u036f]/g, '')\r\n      .replace(/[^a-z0-9]+/g, '-')\r\n      .replace(/^-|-$/g, '');\r\n  }\r\n\r\n  generateSummary(content: string) {\r\n\r\n    const regex = /^##\\s+(.+)$/gm;\r\n\r\n    const summary = [];\r\n\r\n    let match;\r\n\r\n    while ((match = regex.exec(content)) !== null) {\r\n\r\n      summary.push({\r\n        id: this.generateHeadingId(match[1]),\r\n        title: match[1]\r\n      });\r\n\r\n    }\r\n\r\n    return summary;\r\n  }\r\n\r\n  getArticleCategoryLabel(article: BlogArticle): string {\r\n    return blogCategories.find(category => category.filter === article.category)?.label ?? 'all'\r\n  }\r\n\r\n}\r\n"],
  "mappings": ";;6HAEO,IAAMA,EAAiB,CAC5B,CAACC,GAAG,EAAGC,KAAM,MAAOC,MAAO,oBAAuBC,OAAO,KAAK,EAC9D,CAACH,GAAG,EAAGC,KAAM,WAAYC,MAAO,0BAAyBC,OAAO,mBAAmB,EACnF,CAACH,GAAG,EAAGC,KAAM,MAAOC,MAAO,0BAAsBC,OAAO,KAAK,EAC7D,CAACH,GAAG,EAAGC,KAAM,MAAOC,MAAO,0BAA4BC,OAAO,yBAAyB,EACvF,CAACH,GAAG,EAAGC,KAAM,aAAcC,MAAO,aAAeC,OAAO,YAAY,EACpE,CAACH,GAAG,EAAGC,KAAM,YAAaC,MAAO,gCAA+BC,OAAO,uBAAuB,CAAE,ECGlG,IAAaC,GAAW,IAAA,CAAlB,MAAOA,CAAW,CAEdC,aACAC,KAAOC,EAAOC,CAAU,EACxBC,eAAiBA,EAGzBC,gBAAc,CAEZ,OAAO,KAAKJ,KAAKK,IAAmBC,EAAYC,OAAS,WAAW,CACtE,CAEAC,iBAAiBC,EAAY,CAC3B,OAAO,KAAKT,KAAKK,IAA+BC,EAAYC,OAAS,aAAaE,CAAI,EAAE,CAC1F,CAEAC,mBAAmBC,EAAiB,CAClC,OAAO,KAAKX,KAAKK,IAAmBC,EAAYC,OAAS,qBAAqBI,CAAS,EAAE,CAC3F,CAGAC,kBAAkBC,EAAY,CAC5B,OAAOA,EACJC,YAAW,EACXC,UAAU,KAAK,EACfC,QAAQ,mBAAoB,EAAE,EAC9BA,QAAQ,cAAe,GAAG,EAC1BA,QAAQ,SAAU,EAAE,CACzB,CAEAC,gBAAgBC,EAAe,CAE7B,IAAMC,EAAQ,gBAERC,EAAU,CAAA,EAEZC,EAEJ,MAAQA,EAAQF,EAAMG,KAAKJ,CAAO,KAAO,MAEvCE,EAAQG,KAAK,CACXC,GAAI,KAAKZ,kBAAkBS,EAAM,CAAC,CAAC,EACnCI,MAAOJ,EAAM,CAAC,EACf,EAIH,OAAOD,CACT,CAEAM,wBAAwBC,EAAoB,CAC1C,OAAOxB,EAAeyB,KAAKC,GAAYA,EAASC,SAAWH,EAAQE,QAAQ,GAAGE,OAAS,KACzF,4CApDWjC,EAAW,6BAAXA,EAAWkC,QAAXlC,EAAWmC,UAAAC,WAFV,MAAM,CAAA,SAEPpC,CAAW,GAAA",
  "names": ["blogCategories", "id", "slug", "label", "filter", "BlogService", "schemaScript", "http", "inject", "HttpClient", "blogCategories", "getAllArticles", "get", "environment", "apiURL", "getArticleBySlug", "slug", "getRelatedArticles", "articleId", "generateHeadingId", "text", "toLowerCase", "normalize", "replace", "generateSummary", "content", "regex", "summary", "match", "exec", "push", "id", "title", "getArticleCategoryLabel", "article", "find", "category", "filter", "label", "factory", "\u0275fac", "providedIn"]
}
