{
  "version": 3,
  "sources": ["src/app/pages/blog/components/blog-article/article-card.component.ts", "src/app/pages/blog/components/blog-article/article-card.component.html", "src/app/pages/blog/components/newsletter/newsletter.component.ts", "src/app/pages/blog/components/newsletter/newsletter.component.html", "src/app/pages/blog/components/project-cta/project-cta.component.ts", "src/app/pages/blog/components/project-cta/project-cta.component.html"],
  "sourcesContent": ["import {Component, inject, Input, OnInit} from '@angular/core';\r\nimport {LucideCalendar, LucideClock4} from \"@lucide/angular\";\r\nimport {RouterLink} from \"@angular/router\";\r\nimport {DatePipe} from '@angular/common';\r\nimport {BlogService} from '../../services/blog.service';\r\n\r\n@Component({\r\n  selector: 'app-article-card',\r\n  imports: [\r\n    LucideCalendar,\r\n    LucideClock4,\r\n    RouterLink,\r\n    DatePipe\r\n  ],\r\n  templateUrl: './article-card.component.html',\r\n  styleUrl: './article-card.component.sass'\r\n})\r\nexport class ArticleCardComponent implements OnInit{\r\n  @Input() article: any;\r\n  articleCategorieLabel : string | undefined;\r\n  private blogService = inject(BlogService);\r\n\r\n  ngOnInit() {\r\n    this.articleCategorieLabel  = this.blogService.getArticleCategoryLabel(this.article);\r\n  }\r\n\r\n}\r\n", "<article class=\"article-card flex-grow-1\">\r\n  <a\r\n    class=\"article-link-overlay\"\r\n    [routerLink]=\"['/blog', article.slug]\"\r\n    aria-label=\"Lire l'article\">\r\n  </a>\r\n  <div class=\"article-image\">\r\n    <img\r\n      src=\"assets/img/blog/thumb/{{article.coverImage}}\"\r\n      alt=\"{{article.title}}\"\r\n      loading=\"lazy\">\r\n    <span class=\"category-label\">{{ articleCategorieLabel }}</span>\r\n  </div>\r\n  <div class=\"article-content\">\r\n    <h4 class=\"article-title\">\r\n\r\n      {{ article.title }}\r\n\r\n    </h4>\r\n\r\n    <p class=\"article-short-description\">\r\n      {{ article.excerpt }}\r\n    </p>\r\n\r\n  </div>\r\n  <div class=\"footer mt-auto\">\r\n\r\n    <hr class=\"article-separator\">\r\n    <div class=\"article-meta\">\r\n                    <span class=\"article-reading-time\">\r\n                  <svg lucideClock4 class=\"icon\"></svg>\r\n                      {{article.readingTime}} min de lecture\r\n              </span>\r\n\r\n      <time datetime=\"2025-01-12\" class=\"article-date\">\r\n        <svg lucideCalendar class=\"icon\"></svg>\r\n        {{article.publishedAt | date: 'dd MMMM yyyy'}}\r\n      </time>\r\n    </div>\r\n  </div>\r\n\r\n</article>\r\n", "import {Component, inject} from '@angular/core';\r\nimport {FormControl, FormsModule, ReactiveFormsModule, Validators} from \"@angular/forms\";\r\nimport {LucideMail} from \"@lucide/angular\";\r\nimport {ToolsService} from '../../../../core/services/tools.service';\r\n\r\n@Component({\r\n  selector: 'app-newsletter',\r\n  imports: [\r\n    FormsModule,\r\n    LucideMail,\r\n    ReactiveFormsModule\r\n  ],\r\n  templateUrl: './newsletter.component.html',\r\n  styleUrl: './newsletter.component.sass'\r\n})\r\nexport class NewsletterComponent {\r\n\r\n  email: FormControl = new FormControl('', [Validators.required, Validators.email]);\r\n  suscribed : boolean = false;\r\n\r\n  private tools = inject(ToolsService);\r\n\r\n  subscribeToNewsletter() {\r\n    if (this.email.valid) {\r\n      this.tools.openSnackBar(\"Merci pour votre abonnement !\",true);\r\n      console.log('this.email.value', this.email.value)\r\n      this.suscribed = true;\r\n    } else {\r\n      this.email.markAsTouched();\r\n      return;\r\n    }\r\n  }\r\n\r\n}\r\n", "<section class=\"newsletter-section\">\r\n  <div class=\"newsletter-container\">\r\n    <div class=\"newsletter-icon\">\r\n      <svg lucideMail class=\"icon\"></svg>\r\n    </div>\r\n    <h3 class=\"newsletter-title\">\r\n      Ne manquez aucun conseil\r\n    </h3>\r\n    <p class=\"newsletter-description\">Recevez un email lorsqu'un nouvel article ou une nouvelle ressource est publiée. Pas de spam, uniquement du\r\n      contenu utile pour développer votre présence en ligne.</p>\r\n    <div class=\"newsletter-form\">\r\n      @if (!suscribed) {\r\n        <div class=\"newsletter-form\">\r\n\r\n          <input\r\n            type=\"email\"\r\n            [formControl]=\"email\"\r\n            placeholder=\"Votre adresse email\">\r\n          @if (email.invalid && email.touched) {\r\n            <span class=\"error-message\">Veuillez saisir une adresse email valide.</span>\r\n          }\r\n          <button\r\n            class=\"newsletter-btn\"\r\n            (click)=\"subscribeToNewsletter()\">\r\n            S'abonner\r\n          </button>\r\n\r\n        </div>\r\n\r\n\r\n\r\n\r\n      }\r\n    </div>\r\n    <p class=\"anti-spam-message\">Un simple email lorsqu'un nouvel article est publié. Désinscription en un clic.</p>\r\n  </div>\r\n</section>\r\n", "import { Component } from '@angular/core';\r\nimport {LucideArrowRight} from '@lucide/angular';\r\nimport {RouterLink} from '@angular/router';\r\n\r\n@Component({\r\n  selector: 'app-project-cta',\r\n  imports: [\r\n    LucideArrowRight,\r\n    RouterLink\r\n  ],\r\n  templateUrl: './project-cta.component.html',\r\n  styleUrl: './project-cta.component.sass'\r\n})\r\nexport class ProjectCtaComponent {\r\n\r\n}\r\n", "<section class=\"cta-section\">\r\n<div class=\"cta-container\">\r\n  <h3 class=\"cta-titre\">Un projet en tête ?</h3>\r\n  <p class=\"cta-texte\">Besoin d'un site web, d'une application ou d'une refonte ? Échangeons sur vos besoins et trouvons ensemble la solution adaptée à votre activité.</p>\r\n  <a class=\"cta-btn\" [routerLink]=\"'/'\" [fragment]=\"'contact'\">Demander un devis <svg lucideArrowRight></svg></a>\r\n</div>\r\n</section>\r\n"],
  "mappings": "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",
  "names": ["ArticleCardComponent", "article", "articleCategorieLabel", "blogService", "inject", "BlogService", "ngOnInit", "getArticleCategoryLabel", "selectors", "inputs", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275pureFunction1", "_c0", "slug", "\u0275\u0275interpolate1", "coverImage", "\u0275\u0275sanitizeUrl", "\u0275\u0275interpolate", "title", "\u0275\u0275textInterpolate", "\u0275\u0275textInterpolate1", "excerpt", "readingTime", "\u0275\u0275pipeBind2", "publishedAt", "LucideCalendar", "LucideClock4", "RouterLink", "DatePipe", "styles", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275element", "\u0275\u0275conditionalCreate", "NewsletterComponent_Conditional_9_Conditional_2_Template", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "subscribeToNewsletter", "\u0275\u0275advance", "\u0275\u0275property", "email", "\u0275\u0275conditional", "invalid", "touched", "NewsletterComponent", "FormControl", "Validators", "required", "suscribed", "tools", "inject", "ToolsService", "valid", "openSnackBar", "console", "log", "value", "markAsTouched", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "NewsletterComponent_Conditional_9_Template", "FormsModule", "DefaultValueAccessor", "NgControlStatus", "LucideMail", "ReactiveFormsModule", "FormControlDirective", "styles", "ProjectCtaComponent", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275element", "\u0275\u0275advance", "\u0275\u0275property", "LucideArrowRight", "RouterLink", "styles"]
}
