{ "version": 3, "sources": ["src/@omnial/_pipes/sanitize.pipe.ts", "src/@omnial/_pipes/pipes.module.ts", "src/@omnial/_animations/fade-in-up.animation.ts", "src/@omnial/_services/catalog/topic.service.ts", "src/@omnial/shared/topic-content/topic-content.component.ts", "src/app/shared/topic-content/topic-content.component.html", "src/@omnial/shared/topic-content/topic-content.module.ts", "src/@omnial/_models/credit-cards/luhn.helper.ts", "src/@omnial/_utils/app-validators.ts"], "sourcesContent": ["import { DomSanitizer } from '@angular/platform-browser'\r\nimport { PipeTransform, Pipe } from \"@angular/core\";\r\n\r\n@Pipe({\n name: 'safeHtml',\n standalone: false\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(private sanitized: DomSanitizer) {}\r\n transform(value: string) {\r\n if (value === null) {\r\n return '';\r\n }\r\n return this.sanitized.bypassSecurityTrustHtml(value);\r\n }\r\n}\r\n", "import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { FilterByIdPipe } from './filter-by-id.pipe';\r\nimport { SafePipe } from './safe.pipes';\r\nimport { SafeHtmlPipe } from './sanitize.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n FilterByIdPipe,\r\n SafePipe,\r\n SafeHtmlPipe\r\n ],\r\n exports: [\r\n FilterByIdPipe,\r\n SafePipe,\r\n SafeHtmlPipe\r\n ]\r\n})\r\nexport class PipesModule { }\r\n", "import { animate, style, transition, trigger } from '@angular/animations';\r\n\r\nexport const fadeInUpAnimation = trigger('fadeInUp', [\r\n transition(':enter', [\r\n style({\r\n transform: 'translateY(6vh)',\r\n opacity: 0\r\n }),\r\n animate('1000ms cubic-bezier(0.35, 0, 0.25, 1)', style({\r\n transform: 'translateY(0)',\r\n opacity: 1\r\n }))\r\n ])\r\n]);\r\n", "import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { RepositoryService } from '../repository.service';\r\nimport { RepositoryStaticService } from '../repository-static.service';\r\nimport { Customer } from 'src/@omnial/_models/customer/customer.model';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Topic } from 'src/@omnial/_models/catalog/topic.model';\r\n\r\n@Injectable()\r\nexport class TopicService implements OnDestroy {\r\n public customer: Customer = null;\r\n public categoryPageIndex = 0;\r\n public currentCategory: string;\r\n public manufacturerPageIndex = 0;\r\n public currentManufacturer: string;\r\n private subscriptions: Subscription[] = [];\r\n private useCache = environment.useCache;\r\n\r\n constructor(\r\n public staticService: RepositoryStaticService,\r\n public repoService: RepositoryService) { }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscriptions && this.subscriptions.length > 0) {\r\n this.subscriptions.forEach((sub) => { sub.unsubscribe() });\r\n }\r\n }\r\n\r\n public getTopicById(id: number, bypassCache?: boolean): Observable {\r\n return new Observable((observer) => {\r\n if (this.useCache && !bypassCache) {\r\n this.subscriptions.push(this.staticService.getBySeName(\"Topic\", id.toString()).subscribe({\r\n next: (staticRes) => {\r\n const topic = staticRes as Topic;\r\n if (topic) {\r\n observer.next(topic);\r\n observer.complete();\r\n } else {\r\n this.subscriptions.push(this.repoService.getData(`Topic/Id/${id}`).subscribe({\r\n next: (apiRes) => {\r\n observer.next(apiRes as Topic);\r\n observer.complete();\r\n }\r\n }));\r\n }\r\n },\r\n error: (e) => {\r\n this.subscriptions.push(this.repoService.getData(`Topic/Id/${id}`).subscribe({\r\n next: (apiRes) => {\r\n observer.next(apiRes as Topic);\r\n observer.complete();\r\n }\r\n }));\r\n }\r\n }));\r\n } else {\r\n this.subscriptions.push(this.repoService.getData(`Topic/Id/${id}`).subscribe({\r\n next: (res) => {\r\n observer.next(res as Topic);\r\n observer.complete();\r\n },\r\n error: (e) => {\r\n observer.error(e);\r\n observer.complete();\r\n }\r\n }));\r\n }\r\n });\r\n }\r\n\r\n public getTopicBySlug(slug: string, bypassCache?: boolean): Observable {\r\n return new Observable((observer) => {\r\n if (this.useCache && !bypassCache) {\r\n this.subscriptions.push(this.staticService.getBySeName(\"Topic\", slug).subscribe({\r\n next: (staticRes) => {\r\n const topic = staticRes as Topic;\r\n if (topic) {\r\n observer.next(topic);\r\n observer.complete();\r\n } else {\r\n this.subscriptions.push(this.repoService.getData(`Topic/${slug}`).subscribe({\r\n next: (apiRes) => {\r\n observer.next(apiRes as Topic);\r\n observer.complete();\r\n }\r\n }));\r\n }\r\n },\r\n error: () => {\r\n this.subscriptions.push(this.repoService.getData(`Topic/${slug}`).subscribe({\r\n next: (apiRes) => {\r\n observer.next(apiRes as Topic);\r\n observer.complete();\r\n }\r\n }));\r\n }\r\n }));\r\n } else {\r\n this.subscriptions.push(this.repoService.getData(`Topic/${slug}`).subscribe({\r\n next: (res) => {\r\n observer.next(res as Topic);\r\n observer.complete();\r\n },\r\n error: (e) => {\r\n observer.error(e);\r\n observer.complete();\r\n }\r\n }));\r\n }\r\n });\r\n }\r\n}\r\n", "import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { fadeInUpAnimation } from 'src/@omnial/_animations/fade-in-up.animation';\r\nimport { Topic } from 'src/@omnial/_models/catalog/topic.model';\r\nimport { TopicService } from 'src/@omnial/_services/catalog/topic.service';\r\n\r\n@Component({\n selector: 'app-topic-content',\n templateUrl: './../../../app/shared/topic-content/topic-content.component.html',\n styleUrls: ['./../../../app/shared/topic-content/topic-content.component.scss'],\n animations: [fadeInUpAnimation],\n standalone: false\n})\r\nexport class TopicContentComponent implements OnInit {\r\n @Input() topicSlug: string;\r\n @Input() marginTop: boolean = false;\r\n @Input() marginBottom: boolean = false;\r\n @Input() marginLeft: boolean = false;\r\n @Input() marginRight: boolean = false;\r\n public topic: Topic;\r\n public topicClass: string;\r\n\r\n constructor(\r\n public topicService: TopicService,\r\n public router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.topicService.getTopicBySlug(this.topicSlug).subscribe(\r\n res => {\r\n if (res) {\r\n this.topic = res as Topic;\r\n }\r\n });\r\n this.topicClass = \"topic-content nop-content\";\r\n if (this.marginTop) {\r\n this.topicClass += \" mt-1\";\r\n }\r\n if (this.marginBottom) {\r\n this.topicClass += \" mb-1\";\r\n }\r\n if (this.marginLeft) {\r\n this.topicClass += \" ml-1\";\r\n }\r\n if (this.marginRight) {\r\n this.topicClass += \" mr-1\";\r\n }\r\n }\r\n}\r\n", "
\r\n", "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MaterialBaseModule } from 'src/@omnial/material.base.module';\nimport { PipesModule } from '../../_pipes/pipes.module';\nimport { TopicContentComponent } from './topic-content.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MaterialBaseModule,\n PipesModule\n ],\n declarations: [TopicContentComponent],\n exports: [TopicContentComponent]\n})\nexport class TopicContentModule { }\n", "export const luhnCheck = (cardNumber: string): boolean => {\r\n if (!cardNumber.length) {\r\n return;\r\n }\r\n\r\n // Remove all whitespaces from card number.\r\n cardNumber = cardNumber.replace(/\\s/g, '');\r\n\r\n // 1. Remove last digit;\r\n const lastDigit = Number(cardNumber[cardNumber.length - 1]);\r\n\r\n // 2. Reverse card number\r\n const reverseCardNumber = cardNumber.slice(0, cardNumber.length - 1).split('').reverse().map(x => Number(x));\r\n let sum = 0;\r\n\r\n // 3. + 4. Multiply by 2 every digit on odd position. Subtract 9 if digit > 9\r\n for (let i = 0; i <= reverseCardNumber.length - 1; i += 2) {\r\n reverseCardNumber[i] = reverseCardNumber[i] * 2;\r\n if (reverseCardNumber[i] > 9) {\r\n reverseCardNumber[i] = reverseCardNumber[i] - 9;\r\n }\r\n }\r\n\r\n // 5. Make the sum of obtained values from step 4.\r\n sum = reverseCardNumber.reduce((acc, currValue) => (acc + currValue), 0);\r\n\r\n // 6. Calculate modulo 10 of the sum from step 5. and the last digit. If it's 0, you have a valid card number :)\r\n return ((sum + lastDigit) % 10 === 0);\r\n};\r\n", "import { FormGroup, FormControl, ValidatorFn, AbstractControl } from '@angular/forms';\r\nimport { luhnCheck } from 'src/@omnial/_models/credit-cards/luhn.helper';\r\n\r\nexport function EmailRegEx(control: FormControl): { [key: string]: any } {\r\n const emailRegexp = /[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$/;\r\n if (control.value && !emailRegexp.test(control.value)) {\r\n return { invalidEmail: true };\r\n }\r\n}\r\n\r\nexport function MatchValidator(control: AbstractControl) {\r\n const password: string = control.get(\"password\").value;\r\n const confirmPassword: string = control.get(\"confirmPassword\").value;\r\n if (password !== confirmPassword) {\r\n control.get(\"confirmPassword\").setErrors({ mismatch: true });\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nexport function CardNumberValidator(control: FormControl): { [key: string]: any } {\r\n if (control.value && !luhnCheck(control.value)) {\r\n return { CardNumberValidator: true };\r\n }\r\n}\r\n\r\nexport function CardExpiryValidator(control: FormControl): { [key: string]: any } {\r\n if (control.value < 6) {\r\n return { CardExpiryValidator: true };\r\n }\r\n const month = parseInt(control.value.substr(0, 2), 10);\r\n const year = parseInt(control.value.substr(3, 4), 10);\r\n const today = new Date();\r\n if (year < today.getFullYear()) {\r\n return { CardExpiryValidator: true };\r\n }\r\n if (year === today.getFullYear() && month <= today.getMonth()) {\r\n return { CardExpiryValidator: true };\r\n }\r\n return null;\r\n}\r\n\r\nexport function CardCvvValidator(control: FormControl): { [key: string]: any } {\r\n if (control.value.length > 4 || control.value.length < 3) {\r\n return { CardCvvValidator: true };\r\n }\r\n if (isNaN(control.value)) {\r\n return { CardCvvValidator: true };\r\n }\r\n return null;\r\n}\r\n"], "mappings": "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", "names": ["SafeHtmlPipe", "constructor", "sanitized", "transform", "value", "bypassSecurityTrustHtml", "\u0275\u0275directiveInject", "DomSanitizer", "pure", "standalone", "PipesModule", "CommonModule", "fadeInUpAnimation", "trigger", "transition", "style", "transform", "opacity", "animate", "TopicService", "constructor", "staticService", "repoService", "customer", "categoryPageIndex", "manufacturerPageIndex", "subscriptions", "useCache", "environment", "ngOnDestroy", "length", "forEach", "sub", "unsubscribe", "getTopicById", "id", "bypassCache", "Observable", "observer", "push", "getBySeName", "toString", "subscribe", "next", "staticRes", "topic", "complete", "getData", "apiRes", "error", "e", "res", "getTopicBySlug", "slug", "\u0275\u0275inject", "RepositoryStaticService", "RepositoryService", "factory", "\u0275fac", "\u0275\u0275element", "\u0275\u0275classMap", "ctx_r0", "topicClass", "\u0275\u0275property", "\u0275\u0275pipeBind1", "topic", "body", "\u0275\u0275sanitizeHtml", "TopicContentComponent", "constructor", "topicService", "router", "marginTop", "marginBottom", "marginLeft", "marginRight", "ngOnInit", "getTopicBySlug", "topicSlug", "subscribe", "res", "\u0275\u0275directiveInject", "TopicService", "Router", "selectors", "inputs", "standalone", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "TopicContentComponent_div_0_Template", "fadeInUpAnimation", "TopicContentModule", "CommonModule", "MaterialBaseModule", "PipesModule", "luhnCheck", "cardNumber", "length", "replace", "lastDigit", "Number", "reverseCardNumber", "slice", "split", "reverse", "map", "x", "sum", "i", "reduce", "acc", "currValue", "EmailRegEx", "control", "emailRegexp", "value", "test", "invalidEmail", "MatchValidator", "password", "get", "confirmPassword", "setErrors", "mismatch", "CardNumberValidator", "luhnCheck", "CardExpiryValidator", "month", "parseInt", "substr", "year", "today", "Date", "getFullYear", "getMonth", "CardCvvValidator", "length", "isNaN"] }