{"version":3,"sources":["ng:/ng-lazyload-image/src/lazyload-image.ts","ng:/ng-lazyload-image/src/util/css.util.ts","ng:/ng-lazyload-image/src/util/util.ts","ng:/ng-lazyload-image/src/types.ts","ng:/ng-lazyload-image/src/lazyload-image.directive.ts","ng:/ng-lazyload-image/src/shared-hooks/hooks.ts","ng:/ng-lazyload-image/src/intersection-observer-hooks/hooks.ts","ng:/ng-lazyload-image/src/lazyload-image.module.ts","ng:/ng-lazyload-image/src/scroll-hooks/rect.ts","ng:/ng-lazyload-image/src/scroll-hooks/hooks.ts","ng:/ng-lazyload-image/index.ts","ng:/ng-lazyload-image/ng-lazyload-image.ts","./src/app/landing/component.html","./src/app/landing/component.scss","./src/app/landing/component.ts","./src/app/landing/module.ts"],"names":[],"mappings":"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","file":"8.67f068bf74d7a7610907.js","sourcesContent":["import { Observable, of } from 'rxjs';\nimport { catchError, filter, map, mergeMap, take, tap } from 'rxjs/operators';\nimport { Attributes, Hooks } from './types';\n\nexport function lazyLoadImage(hooks: Hooks, attributes: Attributes) {\n return (evntObservable: Observable): Observable => {\n return evntObservable.pipe(\n tap((data) => attributes.onStateChange.emit({ reason: 'observer-emit', data })),\n filter((event) => hooks.isVisible(event, attributes)),\n take(1),\n tap(() => attributes.onStateChange.emit({ reason: 'start-loading' })),\n mergeMap(() => hooks.loadImage(attributes)),\n tap(() => attributes.onStateChange.emit({ reason: 'mount-image' })),\n tap((imagePath) => hooks.setLoadedImage(imagePath, attributes)),\n tap(() => attributes.onStateChange.emit({ reason: 'loading-succeeded' })),\n map(() => true),\n catchError((error) => {\n attributes.onStateChange.emit({ reason: 'loading-failed', data: error });\n hooks.setErrorImage(error, attributes);\n return of(false);\n }),\n tap(() => {\n attributes.onStateChange.emit({ reason: 'finally' });\n hooks.finally(attributes);\n })\n ) as Observable;\n };\n}\n","export const cssClassNames = {\n loaded: 'ng-lazyloaded',\n loading: 'ng-lazyloading',\n failed: 'ng-failed-lazyloaded',\n};\n\nexport function removeCssClassName(element: HTMLImageElement | HTMLDivElement, cssClassName: string) {\n element.className = element.className.replace(cssClassName, '');\n}\n\nexport function addCssClassName(element: HTMLImageElement | HTMLDivElement, cssClassName: string) {\n if (!element.className.includes(cssClassName)) {\n element.className += ` ${cssClassName}`;\n }\n}\n\nexport function hasCssClassName(element: HTMLImageElement | HTMLDivElement, cssClassName: string) {\n return element.className && element.className.includes(cssClassName);\n}\n","export function getNavigator(): Navigator | undefined {\n return typeof window !== 'undefined' ? window.navigator : undefined;\n}\n\nexport function isChildOfPicture(element: HTMLImageElement | HTMLDivElement): boolean {\n return Boolean(element.parentElement && element.parentElement.nodeName.toLowerCase() === 'picture');\n}\n\nexport function isImageElement(element: HTMLImageElement | HTMLDivElement): element is HTMLImageElement {\n return element.nodeName.toLowerCase() === 'img';\n}\n\nexport function setImage(element: HTMLImageElement | HTMLDivElement, imagePath: string, useSrcset?: boolean) {\n if (isImageElement(element)) {\n if (useSrcset && 'srcset' in element) {\n element.srcset = imagePath;\n } else {\n element.src = imagePath;\n }\n } else {\n element.style.backgroundImage = `url('${imagePath}')`;\n }\n return element;\n}\n\nfunction setSources(attrName: string) {\n return (image: HTMLImageElement) => {\n const sources = image.parentElement!.getElementsByTagName('source');\n for (let i = 0; i < sources.length; i++) {\n const attrValue = sources[i].getAttribute(attrName);\n if (attrValue) {\n // Check if `srcset` is supported by the current browser\n if ('srcset' in sources[i]) {\n sources[i].srcset = attrValue;\n } else {\n sources[i].src = attrValue;\n }\n }\n }\n };\n}\n\nconst setSourcesToDefault = setSources('defaultImage');\nexport const setSourcesToLazy = setSources('lazyLoad');\nconst setSourcesToError = setSources('errorImage');\n\nfunction setImageAndSources(setSourcesFn: (image: HTMLImageElement) => void) {\n return (element: HTMLImageElement | HTMLDivElement, imagePath?: string, useSrcset?: boolean) => {\n if (isImageElement(element) && isChildOfPicture(element)) {\n setSourcesFn(element);\n }\n if (imagePath) {\n setImage(element, imagePath, useSrcset);\n }\n };\n}\n\nexport const setImageAndSourcesToDefault = setImageAndSources(setSourcesToDefault);\nexport const setImageAndSourcesToLazy = setImageAndSources(setSourcesToLazy);\nexport const setImageAndSourcesToError = setImageAndSources(setSourcesToError);\n","import { EventEmitter } from '@angular/core';\nimport { Observable, ObservableInput } from 'rxjs';\nimport { getNavigator } from './util';\n\nexport type StateChange = {\n reason: 'setup' | 'observer-emit' | 'start-loading' | 'mount-image' | 'loading-failed' | 'loading-succeeded' | 'finally';\n data?: unknown;\n};\n\nexport type Attributes = {\n /**\n * A reference to the element\n */\n element: HTMLImageElement | HTMLDivElement;\n /**\n * A URI path to the image to be lazyloaded\n */\n imagePath: string;\n /**\n * A URI path to the default image\n */\n defaultImagePath?: string;\n /**\n * A URI path to the error image\n */\n errorImagePath?: string;\n /**\n * If true, use a `srcset` for the image\n */\n useSrcset?: boolean;\n /**\n * Number of pixels to use as offset in all directions\n */\n offset: number;\n /**\n * A reference to the scroll container, if not window\n */\n scrollContainer?: HTMLElement;\n /**\n * A custom customObservable.\n */\n customObservable?: Observable;\n /**\n * If true, try to decode the image before put it to the DOM\n */\n decode?: boolean;\n /**\n * If true, try to decode the image before put it to the DOM\n */\n onStateChange: EventEmitter;\n /**\n * A uniq id for the image\n */\n id: string;\n};\n\nexport abstract class Hooks {\n navigator?: Navigator = getNavigator();\n protected platformId!: Object;\n\n setPlatformId(platformId: Object) {\n this.platformId = platformId;\n }\n\n abstract getObservable(attributes: Attributes): Observable;\n abstract isVisible(event: E, attributes: Attributes): boolean;\n abstract loadImage(attributes: Attributes): ObservableInput;\n abstract setLoadedImage(imagePath: string, attributes: Attributes): void;\n abstract setErrorImage(error: Error, attributes: Attributes): void;\n abstract setup(attributes: Attributes): void;\n abstract finally(attributes: Attributes): void;\n abstract isBot(attributes: Attributes): boolean;\n abstract isDisabled(): boolean;\n abstract skipLazyLoading(attributes: Attributes): boolean;\n onDestroy(attributes: Attributes): void {}\n onAttributeChange(newAttributes: Attributes): void {}\n}\n","import { AfterContentInit, Directive, ElementRef, EventEmitter, Inject, Input, NgZone, OnChanges, OnDestroy, Output, PLATFORM_ID } from '@angular/core';\nimport { never, Observable, ReplaySubject, Subscription } from 'rxjs';\nimport { switchMap, take, tap } from 'rxjs/operators';\nimport { lazyLoadImage } from './lazyload-image';\nimport { Attributes, Hooks, StateChange } from './types';\n\n@Directive({\n selector: '[lazyLoad]',\n})\nexport class LazyLoadImageDirective implements OnChanges, AfterContentInit, OnDestroy {\n @Input('lazyLoad') lazyImage!: string; // The image to be lazy loaded\n @Input() defaultImage?: string; // The image to be displayed before lazyImage is loaded\n @Input() errorImage?: string; // The image to be displayed if lazyImage load fails\n @Input() scrollTarget?: any; // Scroll container that contains the image and emits scoll events\n @Input() customObservable?: Observable; // Pass your own event emitter\n @Input() offset?: number; // The number of px a image should be loaded before it is in view port\n @Input() useSrcset?: boolean; // Whether srcset attribute should be used instead of src\n @Input() decode?: boolean; // Decode the image before appending to the DOM\n @Input() debug?: boolean; // Will print some debug info when `true`\n @Output() onStateChange: EventEmitter = new EventEmitter(); // Emits an event on every state change\n private propertyChanges$: ReplaySubject;\n private elementRef: ElementRef;\n private ngZone: NgZone;\n private loadSubscription?: Subscription;\n private debugSubscription?: Subscription;\n private hooks: Hooks;\n private uid: string;\n\n constructor(el: ElementRef, ngZone: NgZone, @Inject(PLATFORM_ID) platformId: Object, @Inject('LazyLoadImageHooks') hooks: Hooks) {\n this.elementRef = el;\n this.ngZone = ngZone;\n this.propertyChanges$ = new ReplaySubject();\n this.hooks = hooks;\n hooks.setPlatformId(platformId);\n this.uid = Math.random().toString(36).substr(2, 9);\n }\n\n ngOnChanges() {\n if (this.debug === true && !this.debugSubscription) {\n this.debugSubscription = this.onStateChange.subscribe((e: StateChange) => console.log(e));\n }\n\n this.propertyChanges$.next({\n element: this.elementRef.nativeElement,\n imagePath: this.lazyImage,\n defaultImagePath: this.defaultImage,\n errorImagePath: this.errorImage,\n useSrcset: this.useSrcset,\n offset: this.offset ? this.offset | 0 : 0,\n scrollContainer: this.scrollTarget,\n customObservable: this.customObservable,\n decode: this.decode,\n onStateChange: this.onStateChange,\n id: this.uid,\n });\n }\n\n ngAfterContentInit() {\n if (this.hooks.isDisabled()) {\n return null;\n }\n\n this.ngZone.runOutsideAngular(() => {\n this.loadSubscription = this.propertyChanges$\n .pipe(\n tap((attributes) => this.hooks.onAttributeChange(attributes)),\n tap((attributes) => attributes.onStateChange.emit({ reason: 'setup' })),\n tap((attributes) => this.hooks.setup(attributes)),\n switchMap((attributes) => {\n if (!attributes.imagePath) {\n return never();\n }\n return this.hooks.getObservable(attributes).pipe(lazyLoadImage(this.hooks, attributes));\n })\n )\n .subscribe({\n next: () => null,\n });\n });\n }\n\n ngOnDestroy() {\n this.propertyChanges$\n .pipe(take(1))\n .subscribe({ next: (attributes) => this.hooks.onDestroy(attributes) })\n .unsubscribe();\n this.loadSubscription?.unsubscribe();\n this.debugSubscription?.unsubscribe();\n }\n}\n","import { Hooks, Attributes } from '../types';\nimport {\n addCssClassName,\n cssClassNames,\n hasCssClassName,\n isChildOfPicture,\n isImageElement,\n removeCssClassName,\n setImage,\n setImageAndSourcesToDefault,\n setImageAndSourcesToError,\n setImageAndSourcesToLazy,\n setSourcesToLazy,\n} from '../util';\nimport { isPlatformServer } from '@angular/common';\nimport { ObservableInput } from 'rxjs';\n\nexport abstract class SharedHooks extends Hooks {\n setup(attributes: Attributes): void {\n setImageAndSourcesToDefault(attributes.element, attributes.defaultImagePath, attributes.useSrcset);\n addCssClassName(attributes.element, cssClassNames.loading);\n\n if (hasCssClassName(attributes.element, cssClassNames.loaded)) {\n removeCssClassName(attributes.element, cssClassNames.loaded);\n }\n }\n\n finally(attributes: Attributes): void {\n addCssClassName(attributes.element, cssClassNames.loaded);\n removeCssClassName(attributes.element, cssClassNames.loading);\n }\n\n loadImage(attributes: Attributes): ObservableInput {\n if (this.skipLazyLoading()) {\n // Set the image right away for bots for better SEO\n return [attributes.imagePath];\n }\n const { element, useSrcset, imagePath, decode } = attributes;\n let img: HTMLImageElement;\n if (isImageElement(element) && isChildOfPicture(element)) {\n const parentClone = element.parentNode!.cloneNode(true) as HTMLPictureElement;\n img = parentClone.getElementsByTagName('img')[0];\n setSourcesToLazy(img);\n setImage(img, imagePath, useSrcset);\n } else {\n img = new Image();\n if (isImageElement(element) && element.referrerPolicy) {\n img.referrerPolicy = element.referrerPolicy;\n }\n if (isImageElement(element) && element.sizes) {\n img.sizes = element.sizes;\n }\n if (useSrcset && 'srcset' in img) {\n img.srcset = imagePath;\n } else {\n img.src = imagePath;\n }\n }\n\n if (decode && img.decode) {\n return img.decode().then(() => imagePath);\n }\n\n return new Promise((resolve, reject) => {\n img.onload = () => resolve(imagePath);\n img.onerror = () => reject(null);\n });\n }\n\n setErrorImage(error: Error, attributes: Attributes): void {\n const { element, useSrcset, errorImagePath } = attributes;\n setImageAndSourcesToError(element, errorImagePath, useSrcset);\n addCssClassName(element, cssClassNames.failed);\n }\n\n setLoadedImage(imagePath: string, attributes: Attributes): void {\n const { element, useSrcset } = attributes;\n setImageAndSourcesToLazy(element, imagePath, useSrcset);\n }\n\n isDisabled(): boolean {\n // Disable if SSR and the user isn't a bot\n return isPlatformServer(this.platformId) && !this.isBot();\n }\n\n skipLazyLoading(): boolean {\n return this.isBot();\n }\n\n isBot(): boolean {\n if (this.navigator?.userAgent) {\n return /googlebot|bingbot|yandex|baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\\ link\\ preview|showyoubot|outbrain|pinterest\\/0\\.|pinterestbot|slackbot|vkShare|W3C_Validator|whatsapp|duckduckbot/i.test(\n this.navigator.userAgent\n );\n }\n return false;\n }\n}\n","import { Observable, of, Subject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { SharedHooks } from '../shared-hooks/hooks';\nimport { Attributes } from '../types';\n\nexport class IntersectionObserverHooks extends SharedHooks<{ isIntersecting: boolean }> {\n private readonly observers = new WeakMap();\n private readonly intersectionSubject = new Subject();\n private readonly uniqKey = {};\n\n getObservable(attributes: Attributes<{ isIntersecting: boolean }>): Observable<{ isIntersecting: boolean }> {\n if (this.skipLazyLoading()) {\n return of({ isIntersecting: true });\n }\n if (attributes.customObservable) {\n return attributes.customObservable;\n }\n const scrollContainerKey = attributes.scrollContainer || this.uniqKey;\n const options: ObserverOptions = {\n root: attributes.scrollContainer || null,\n };\n if (attributes.offset) {\n options.rootMargin = `${attributes.offset}px`;\n }\n\n let observer = this.observers.get(scrollContainerKey);\n\n if (!observer) {\n observer = new IntersectionObserver((entrys) => this.loadingCallback(entrys), options);\n this.observers.set(scrollContainerKey, observer);\n }\n\n observer.observe(attributes.element);\n\n return Observable.create((obs: Subject) => {\n const subscription = this.intersectionSubject.pipe(filter((entry) => entry.target === attributes.element)).subscribe(obs);\n return () => {\n subscription.unsubscribe();\n observer!.unobserve(attributes.element);\n };\n });\n }\n\n isVisible(event: { isIntersecting: boolean }): boolean {\n return event.isIntersecting;\n }\n\n private loadingCallback(entrys: IntersectionObserverEntry[]) {\n entrys.forEach((entry) => this.intersectionSubject.next(entry));\n }\n}\n\ninterface ObserverOptions {\n root: Element | null;\n rootMargin?: string;\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { LazyLoadImageDirective } from './lazyload-image.directive';\nimport { Hooks } from './types';\nimport { IntersectionObserverHooks } from './intersection-observer-hooks';\n\n// @dynamic\n@NgModule({\n declarations: [LazyLoadImageDirective],\n exports: [LazyLoadImageDirective],\n providers: [{ provide: 'LazyLoadImageHooks', useClass: IntersectionObserverHooks }],\n})\nexport class LazyLoadImageModule {\n static forRoot, Deps extends any[]>(): ModuleWithProviders;\n static forRoot, Deps extends any[]>(Hook: new () => T): ModuleWithProviders;\n static forRoot, Deps extends any[]>(Hook: new (...deps: Deps) => T, deps: { [P in keyof Deps]: new (...args: any[]) => Deps[P] }): ModuleWithProviders;\n static forRoot, Deps extends any[]>(Hook?: new (...deps: Deps) => T, deps?: { [P in keyof Deps]: new (...args: any[]) => Deps[P] }): ModuleWithProviders {\n return {\n ngModule: LazyLoadImageModule,\n providers: [\n {\n provide: 'LazyLoadImageHooks',\n useFactory: (...deps: Deps) => {\n if (Hook) {\n return new Hook(...deps);\n } else {\n return new IntersectionObserverHooks();\n }\n },\n deps,\n },\n ],\n };\n }\n}\n","export class Rect {\n static empty: Rect = new Rect(0, 0, 0, 0);\n\n left: number;\n top: number;\n right: number;\n bottom: number;\n\n constructor(left: number, top: number, right: number, bottom: number) {\n this.left = left;\n this.top = top;\n this.right = right;\n this.bottom = bottom;\n }\n\n static fromElement(element: HTMLElement): Rect {\n const { left, top, right, bottom } = element.getBoundingClientRect();\n\n if (left === 0 && top === 0 && right === 0 && bottom === 0) {\n return Rect.empty;\n } else {\n return new Rect(left, top, right, bottom);\n }\n }\n\n static fromWindow(_window: Window): Rect {\n return new Rect(0, 0, _window.innerWidth, _window.innerHeight);\n }\n\n inflate(inflateBy: number) {\n this.left -= inflateBy;\n this.top -= inflateBy;\n this.right += inflateBy;\n this.bottom += inflateBy;\n }\n\n intersectsWith(rect: Rect): boolean {\n return rect.left < this.right && this.left < rect.right && rect.top < this.bottom && this.top < rect.bottom;\n }\n\n getIntersectionWith(rect: Rect): Rect {\n const left = Math.max(this.left, rect.left);\n const top = Math.max(this.top, rect.top);\n const right = Math.min(this.right, rect.right);\n const bottom = Math.min(this.bottom, rect.bottom);\n\n if (right >= left && bottom >= top) {\n return new Rect(left, top, right, bottom);\n } else {\n return Rect.empty;\n }\n }\n}\n","import { of, Observable, empty, Subject } from 'rxjs';\nimport { startWith, sampleTime, share } from 'rxjs/operators';\nimport { SharedHooks } from '../shared-hooks/hooks';\nimport { Attributes } from '../types';\nimport { Rect } from './rect';\n\nexport class ScrollHooks extends SharedHooks {\n private readonly getWindow: () => Window;\n private readonly scrollListeners = new WeakMap>();\n\n constructor(getWindow = () => window) {\n super();\n this.getWindow = getWindow;\n }\n\n getObservable(attributes: Attributes): Observable {\n if (this.skipLazyLoading()) {\n return of('load');\n } else if (attributes.customObservable) {\n return attributes.customObservable.pipe(startWith(''));\n } else if (attributes.scrollContainer) {\n return this.getScrollListener(attributes.scrollContainer);\n }\n return this.getScrollListener(this.getWindow());\n }\n\n isVisible(event: Event | string, attributes: Attributes): boolean {\n const elementBounds = Rect.fromElement(attributes.element);\n if (elementBounds === Rect.empty) {\n return false;\n }\n const windowBounds = Rect.fromWindow(this.getWindow());\n elementBounds.inflate(attributes.offset);\n\n if (attributes.scrollContainer) {\n const scrollContainerBounds = Rect.fromElement(attributes.scrollContainer);\n const intersection = scrollContainerBounds.getIntersectionWith(windowBounds);\n return elementBounds.intersectsWith(intersection);\n } else {\n return elementBounds.intersectsWith(windowBounds);\n }\n }\n\n sampleObservable(obs: Observable, scheduler?: any): Observable {\n return obs.pipe(sampleTime(100, scheduler), share(), startWith(''));\n }\n\n // Only create one scroll listener per target and share the observable.\n // Typical, there will only be one observable per application\n getScrollListener = (scrollTarget?: HTMLElement | Window): Observable => {\n if (!scrollTarget || typeof scrollTarget.addEventListener !== 'function') {\n console.warn('`addEventListener` on ' + scrollTarget + ' (scrollTarget) is not a function. Skipping this target');\n return empty();\n }\n const scrollListener = this.scrollListeners.get(scrollTarget);\n if (scrollListener) {\n return scrollListener;\n }\n\n const srollEvent: Observable = Observable.create((observer: Subject) => {\n const eventName = 'scroll';\n const handler = (event: Event) => observer.next(event);\n const options = { passive: true, capture: false };\n scrollTarget.addEventListener(eventName, handler, options);\n return () => scrollTarget.removeEventListener(eventName, handler, options);\n });\n\n const listener = this.sampleObservable(srollEvent);\n this.scrollListeners.set(scrollTarget, listener);\n return listener;\n };\n}\n","import { LazyLoadImageModule } from './src/lazyload-image.module';\nimport { IntersectionObserverHooks } from './src/intersection-observer-hooks';\nimport { ScrollHooks } from './src/scroll-hooks';\nimport { SharedHooks } from './src/shared-hooks/hooks';\nimport { Attributes, StateChange, Hooks } from './src/types';\n\nexport { LazyLoadImageModule, StateChange, IntersectionObserverHooks, ScrollHooks, Attributes, Hooks, SharedHooks };\nexport default LazyLoadImageModule;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {LazyLoadImageDirective as ɵa} from './src/lazyload-image.directive';","export default \"
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n

\\n Turn Facebook interests into customers\\n

\\n
\\n
\\n
\\n
\\n

\\n AdInterestPro reveals 1000s of Facebook interests hidden away by Facebook.\\n
\\n With just a few clicks, you have access to a treasure trove of audiences\\n
\\n that can be used to refine and target your Facebook marketing.\\n

\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n
\\n \\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
\\n
\\n

\\n Trusted by marketers around the world\\n

\\n\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

New Competitive Advantage

\\n

\\n Facebook only displays 25 interests per search, but we dig deeper to help you discover the 100's of\\n interests that typically get locked away.\\n While your competitors maneuver through the murky waters of limited stats, we enable you to jump\\n into an ocean of clear and organized data.\\n

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

Lightning Fast Research

\\n

\\n Our Suggested Keywords feature puts the expertise of a savvy marketing veteran right at your\\n fingertips. And it's all packaged neatly in a user-friendly interface anyone can navigate.\\n Suggested Keywords highlight the most relevant and targeted interests for your Facebook campaigns.\\n

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

Instant Ad Optimization

\\n

\\n Find new interests or analyze your past results on your PC or Mobile device within the tap of a\\n button.\\n Your Facebook interests list can be downloaded and copied directly into your Facebook Ad campaign\\n for optimization in just a few seconds.\\n

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

Create Ad Copy Like Copywriting Experts

\\n

\\n Start increasing your conversion rate with optimized ad copies.\\n The Ad Copy Generator provides templates based on different psychology principles and tested winning formats.\\n Easily implement winning ad copy with your ads in seconds.\\n

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

Increase Your Sales Today

\\n

\\n Why wait? Get started right now and use targeted Facebook interest lists to connect with the right\\n audience using our Facebook keyword search tool.\\n Unlock premium features to maximize the full potential of your ad campaign.\\n
\\n
\\n GET STARTED NOW\\n

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n\";","export default \"div {\\n position: relative;\\n}\\n\\n.animated {\\n visibility: visible !important;\\n}\\n\\n.hide-on-init {\\n visibility: hidden;\\n}\\n\\n.pull-up {\\n margin-top: -8rem;\\n}\\n\\n.title {\\n margin-top: 20px;\\n margin-bottom: 15px;\\n}\\n\\n.description {\\n margin-top: 15px;\\n margin-bottom: 20px;\\n}\\n\\na {\\n z-index: 101;\\n}\\n\\n.card-body {\\n z-index: 10;\\n}\\n\\n.ft-img {\\n background-size: 100% 100%;\\n min-width: 25rem;\\n min-height: 25rem;\\n width: 100%;\\n height: 100%;\\n margin: 0 auto;\\n margin-top: -7%;\\n display: block;\\n background-position-y: center;\\n background-position-x: center;\\n background-repeat: no-repeat;\\n pointer-events: none;\\n z-index: 50;\\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n@media screen and (max-width: 992px) {\\n .f1 {\\n text-align: center !important;\\n padding-top: 1.1rem;\\n }\\n .f1 .section {\\n padding-top: 1.2rem !important;\\n }\\n .f1 .title {\\n margin-top: 0.5rem !important;\\n font-size: 1.7rem !important;\\n }\\n .f1 .title h2 {\\n line-height: 0;\\n font-size: 1.1rem !important;\\n }\\n .f1 .ft-img {\\n min-width: 10rem !important;\\n min-height: 10rem !important;\\n width: 10rem !important;\\n height: 10rem !important;\\n }\\n .f2 {\\n margin-top: 2rem !important;\\n }\\n .f3 {\\n margin-top: 0 !important;\\n }\\n .f4 {\\n margin-top: 0 !important;\\n }\\n .f45 {\\n margin-top: 0 !important;\\n }\\n .f5 {\\n margin-top: -6rem !important;\\n padding-bottom: 4rem !important;\\n }\\n .f5 .white-to-bg {\\n margin-bottom: -24rem !important;\\n }\\n}\\n\\n.f1 {\\n background: linear-gradient(180deg, #0091ff, #0066b3);\\n padding-top: 3.5rem;\\n padding-bottom: 0;\\n}\\n\\n.f1 .title {\\n font-size: 2.8rem;\\n color: #eee !important;\\n text-transform: uppercase;\\n overflow: hidden;\\n}\\n\\n.f1 .description {\\n color: #eee !important;\\n}\\n\\n.f1 .ft-img {\\n background-image: url(\\\"/assets/img/fb-ads-magnet.png\\\");\\n}\\n\\n.f1 .ft-img-anim {\\n background-size: contain;\\n min-width: 36rem;\\n min-height: 36rem;\\n width: 100%;\\n height: 100%;\\n margin: 0 auto;\\n display: block;\\n background-position-y: center;\\n background-position-x: center;\\n background-repeat: no-repeat;\\n pointer-events: none;\\n z-index: 99;\\n}\\n\\n.f1 .ft-landing-stats {\\n background-color: #3d4199;\\n}\\n\\n.f1 .ft-landing-stats-title {\\n margin: 0.4em 0 0 0;\\n}\\n\\n.f1 .ft-landing-stats-content {\\n margin-left: -1.7rem;\\n}\\n\\n.f2 {\\n margin-top: 8rem;\\n z-index: 10;\\n}\\n\\n.f2 .ft-img {\\n background-image: url(\\\"/assets/img/landing_ft_1.png\\\");\\n}\\n\\n.f3 {\\n margin-top: 10rem;\\n z-index: 10;\\n}\\n\\n.f3 .ft-img {\\n background-image: url(\\\"/assets/img/landing_ft_2.png\\\");\\n}\\n\\n.f4 {\\n margin-top: 10rem;\\n z-index: 10;\\n}\\n\\n.f4 .ft-img {\\n background-image: url(\\\"/assets/img/landing_ft_3.png\\\");\\n}\\n\\n.f45 {\\n margin-top: 10rem;\\n z-index: 10;\\n}\\n\\n.f45 .ft-img {\\n background-image: url(\\\"/assets/img/landing_ft_45.png\\\");\\n}\\n\\n.f5 {\\n margin-top: -10rem;\\n padding-bottom: 0;\\n background: linear-gradient(180deg, #0091ff, #0066b3);\\n}\\n\\n.f5 .white-to-bg {\\n width: 100%;\\n background-color: transparent;\\n background-image: linear-gradient(170deg, #fefefe 45%, transparent 45%);\\n min-height: 30rem;\\n margin-bottom: -20rem;\\n}\\n\\n.f6 {\\n background: #3d4199;\\n}\\n\\n.f6:before {\\n content: \\\"\\\";\\n display: block;\\n position: absolute;\\n bottom: 10%;\\n left: 0;\\n width: 99%;\\n height: 82%;\\n opacity: 0.71;\\n background-image: url(\\\"/assets/img/winning-rot.png\\\");\\n background-size: contain;\\n background-position-y: bottom;\\n background-position-x: right;\\n background-repeat: no-repeat;\\n pointer-events: none;\\n}\\n\\n.invitation-email-input {\\n margin: 0 auto;\\n padding: 1.6rem 1.6rem;\\n color: #4e4e4e;\\n background-color: white;\\n font-size: 1.2rem;\\n border-radius: 0.1rem;\\n}\\n\\n.invitation-email-input::placeholder {\\n height: inherit;\\n line-height: inherit;\\n font-size: 1.2rem;\\n}\\n\\n.invitation-email-input::-moz-placeholder {\\n line-height: 0 !important;\\n font-size: 1.2rem;\\n}\\n\\n.invitation-email-btn {\\n width: 100%;\\n margin: 0 auto;\\n padding: 0.8rem 1.6rem;\\n font-size: 1.1rem;\\n border-radius: 0.1rem;\\n text-transform: uppercase;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbGFuZGluZy9jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLDhCQUE4QjtBQUNoQzs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsMEJBQTBCO0VBQzFCLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsV0FBVztFQUNYLFlBQVk7RUFDWixjQUFjO0VBQ2QsZUFBZTtFQUNmLGNBQWM7RUFDZCw2QkFBNkI7RUFDN0IsNkJBQTZCO0VBQzdCLDRCQUE0QjtFQUM1QixvQkFBb0I7RUFDcEIsV0FBVztFQUNYLCtHQUErRztBQUNqSDs7QUFFQTtFQUNFO0lBS0UsNkJBQTZCO0lBQzdCLG1CQUFtQjtFQUhyQjtFQUhBO0lBRUksOEJBQThCO0VBSWxDO0VBTkE7SUFTSSw2QkFBNkI7SUFDN0IsNEJBQTRCO0VBQWhDO0VBVkE7SUFhTSxjQUFjO0lBQ2QsNEJBQTRCO0VBQWxDO0VBZEE7SUFtQkksMkJBQTJCO0lBQzNCLDRCQUE0QjtJQUM1Qix1QkFBdUI7SUFDdkIsd0JBQXdCO0VBRjVCO0VBTUE7SUFDRSwyQkFBMkI7RUFKN0I7RUFPQTtJQUNFLHdCQUF3QjtFQUwxQjtFQVFBO0lBQ0Usd0JBQXdCO0VBTjFCO0VBU0E7SUFDRSx3QkFBd0I7RUFQMUI7RUFVQTtJQUNFLDRCQUE0QjtJQUM1QiwrQkFBK0I7RUFSakM7RUFNQTtJQUtJLGdDQUFnQztFQVJwQztBQUNGOztBQVlBO0VBQ0UscURBQXFEO0VBQ3JELG1CQUFtQjtFQUNuQixpQkFBaUI7QUFUbkI7O0FBTUE7RUFNSSxpQkFBaUI7RUFDakIsc0JBQXNCO0VBQ3RCLHlCQUF5QjtFQUN6QixnQkFBZ0I7QUFScEI7O0FBREE7RUFhSSxzQkFBc0I7QUFSMUI7O0FBTEE7RUFpQkksc0RBQXNEO0FBUjFEOztBQVRBO0VBc0JJLHdCQUF3QjtFQUN4QixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxZQUFZO0VBQ1osY0FBYztFQUNkLGNBQWM7RUFDZCw2QkFBNkI7RUFDN0IsNkJBQTZCO0VBQzdCLDRCQUE0QjtFQUM1QixvQkFBb0I7RUFDcEIsV0FBVztBQVRmOztBQXhCQTtFQXFDSSx5QkFBeUI7QUFUN0I7O0FBNUJBO0VBd0NNLG1CQUFtQjtBQVJ6Qjs7QUFoQ0E7RUE0Q00sb0JBQW9CO0FBUjFCOztBQWFBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7QUFWYjs7QUFRQTtFQUtJLHFEQUFxRDtBQVR6RDs7QUFhQTtFQUNFLGlCQUFpQjtFQUNqQixXQUFXO0FBVmI7O0FBUUE7RUFLSSxxREFBcUQ7QUFUekQ7O0FBYUE7RUFDRSxpQkFBaUI7RUFDakIsV0FBVztBQVZiOztBQVFBO0VBS0kscURBQXFEO0FBVHpEOztBQWFBO0VBQ0UsaUJBQWlCO0VBQ2pCLFdBQVc7QUFWYjs7QUFRQTtFQUtJLHNEQUFzRDtBQVQxRDs7QUFhQTtFQUNFLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIscURBQXFEO0FBVnZEOztBQU9BO0VBTUksV0FBVztFQUNYLDZCQUE2QjtFQUM3Qix1RUFBdUU7RUFDdkUsaUJBQWlCO0VBQ2pCLHFCQUFxQjtBQVR6Qjs7QUFhQTtFQUNFLG1CQUFtQjtBQVZyQjs7QUFhQTtFQUNFLFdBQVc7RUFDWCxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxPQUFPO0VBQ1AsVUFBVTtFQUNWLFdBQVc7RUFDWCxhQUFhO0VBQ2Isb0RBQW9EO0VBQ3BELHdCQUF3QjtFQUN4Qiw2QkFBNkI7RUFDN0IsNEJBQTRCO0VBQzVCLDRCQUE0QjtFQUM1QixvQkFBb0I7QUFWdEI7O0FBb0JBO0VBQ0UsY0FOOEI7RUFPOUIsc0JBTitCO0VBTy9CLGNBQXNCO0VBQ3RCLHVCQUFvQztFQUNwQyxpQkFaaUM7RUFhakMscUJBUnFDO0FBVHZDOztBQVdBO0VBU0ksZUFBZTtFQUNmLG9CQUFvQjtFQUNwQixpQkFsQitCO0FBRW5DOztBQUtBO0VBZUkseUJBQXlCO0VBQ3pCLGlCQXZCK0I7QUFPbkM7O0FBb0JBO0VBQ0UsV0FBVztFQUNYLGNBM0I4QjtFQTRCOUIsc0JBM0IrQjtFQTRCL0IsaUJBOUJrQztFQStCbEMscUJBM0JxQztFQTRCckMseUJBQXlCO0FBakIzQiIsImZpbGUiOiJzcmMvYXBwL2xhbmRpbmcvY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJkaXYge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmFuaW1hdGVkIHtcclxuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5oaWRlLW9uLWluaXQge1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcclxufVxyXG5cclxuLnB1bGwtdXAge1xyXG4gIG1hcmdpbi10b3A6IC04cmVtO1xyXG59XHJcblxyXG4udGl0bGUge1xyXG4gIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxufVxyXG5cclxuLmRlc2NyaXB0aW9uIHtcclxuICBtYXJnaW4tdG9wOiAxNXB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbmEge1xyXG4gIHotaW5kZXg6IDEwMTtcclxufVxyXG5cclxuLmNhcmQtYm9keSB7XHJcbiAgei1pbmRleDogMTA7XHJcbn1cclxuXHJcbi5mdC1pbWcge1xyXG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xyXG4gIG1pbi13aWR0aDogMjVyZW07XHJcbiAgbWluLWhlaWdodDogMjVyZW07XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIG1hcmdpbi10b3A6IC03JTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIHotaW5kZXg6IDUwO1xyXG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcclxufVxyXG5cclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcclxuICAuZjEge1xyXG4gICAgLnNlY3Rpb24ge1xyXG4gICAgICBwYWRkaW5nLXRvcDogMS4ycmVtICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nLXRvcDogMS4xcmVtO1xyXG5cclxuICAgIC50aXRsZSB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xyXG4gICAgICBmb250LXNpemU6IDEuN3JlbSAhaW1wb3J0YW50O1xyXG5cclxuICAgICAgaDIge1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtICFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZnQtaW1nIHtcclxuICAgICAgbWluLXdpZHRoOiAxMHJlbSAhaW1wb3J0YW50O1xyXG4gICAgICBtaW4taGVpZ2h0OiAxMHJlbSAhaW1wb3J0YW50O1xyXG4gICAgICB3aWR0aDogMTByZW0gIWltcG9ydGFudDtcclxuICAgICAgaGVpZ2h0OiAxMHJlbSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmYyIHtcclxuICAgIG1hcmdpbi10b3A6IDJyZW0gIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mMyB7XHJcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZjQge1xyXG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmY0NSB7XHJcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZjUge1xyXG4gICAgbWFyZ2luLXRvcDogLTZyZW0gIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctYm90dG9tOiA0cmVtICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgLndoaXRlLXRvLWJnIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogLTI0cmVtICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZjEge1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMwMDkxZmYsICMwMDY2YjMpO1xyXG4gIHBhZGRpbmctdG9wOiAzLjVyZW07XHJcbiAgcGFkZGluZy1ib3R0b206IDA7XHJcblxyXG4gIC50aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDIuOHJlbTtcclxuICAgIGNvbG9yOiAjZWVlICFpbXBvcnRhbnQ7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB9XHJcblxyXG4gIC5kZXNjcmlwdGlvbiB7XHJcbiAgICBjb2xvcjogI2VlZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZ0LWltZyB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvYXNzZXRzL2ltZy9mYi1hZHMtbWFnbmV0LnBuZ1wiKTtcclxuICB9XHJcblxyXG4gIC5mdC1pbWctYW5pbSB7XHJcbiAgICAvLyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvYXNzZXRzL2ltZy9sYW5kaW5nX2ludHJvX2NsaXAuZ2lmXCIpO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gICAgbWluLXdpZHRoOiAzNnJlbTtcclxuICAgIG1pbi1oZWlnaHQ6IDM2cmVtO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIHotaW5kZXg6IDk5O1xyXG4gIH1cclxuXHJcbiAgLmZ0LWxhbmRpbmctc3RhdHMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNkNDE5OTtcclxuXHJcbiAgICAmLXRpdGxlIHtcclxuICAgICAgbWFyZ2luOiAwLjRlbSAwIDAgMDtcclxuICAgIH1cclxuXHJcbiAgICAmLWNvbnRlbnQge1xyXG4gICAgICBtYXJnaW4tbGVmdDogLTEuN3JlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5mMiB7XHJcbiAgbWFyZ2luLXRvcDogOHJlbTtcclxuICB6LWluZGV4OiAxMDtcclxuXHJcbiAgLmZ0LWltZyB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvYXNzZXRzL2ltZy9sYW5kaW5nX2Z0XzEucG5nXCIpO1xyXG4gIH1cclxufVxyXG5cclxuLmYzIHtcclxuICBtYXJnaW4tdG9wOiAxMHJlbTtcclxuICB6LWluZGV4OiAxMDtcclxuXHJcbiAgLmZ0LWltZyB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvYXNzZXRzL2ltZy9sYW5kaW5nX2Z0XzIucG5nXCIpO1xyXG4gIH1cclxufVxyXG5cclxuLmY0IHtcclxuICBtYXJnaW4tdG9wOiAxMHJlbTtcclxuICB6LWluZGV4OiAxMDtcclxuXHJcbiAgLmZ0LWltZyB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvYXNzZXRzL2ltZy9sYW5kaW5nX2Z0XzMucG5nXCIpO1xyXG4gIH1cclxufVxyXG5cclxuLmY0NSB7XHJcbiAgbWFyZ2luLXRvcDogMTByZW07XHJcbiAgei1pbmRleDogMTA7XHJcblxyXG4gIC5mdC1pbWcge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2Fzc2V0cy9pbWcvbGFuZGluZ19mdF80NS5wbmdcIik7XHJcbiAgfVxyXG59XHJcblxyXG4uZjUge1xyXG4gIG1hcmdpbi10b3A6IC0xMHJlbTtcclxuICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMDA5MWZmLCAjMDA2NmIzKTtcclxuXHJcbiAgLndoaXRlLXRvLWJnIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMTcwZGVnLCAjZmVmZWZlIDQ1JSwgdHJhbnNwYXJlbnQgNDUlKTtcclxuICAgIG1pbi1oZWlnaHQ6IDMwcmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLTIwcmVtO1xyXG4gIH1cclxufVxyXG5cclxuLmY2IHtcclxuICBiYWNrZ3JvdW5kOiAjM2Q0MTk5O1xyXG59XHJcblxyXG4uZjY6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlwiO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IDEwJTtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiA5OSU7XHJcbiAgaGVpZ2h0OiA4MiU7XHJcbiAgb3BhY2l0eTogMC43MTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvYXNzZXRzL2ltZy93aW5uaW5nLXJvdC5wbmdcIik7XHJcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb24teTogYm90dG9tO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb24teDogcmlnaHQ7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxufVxyXG5cclxuJGludml0YXRpb24tZW1haWwtZm9udC1zaXplOiAxLjJyZW07XHJcbiRpbnZpdGF0aW9uLWVtYWlsLWZvbnQtc2l6ZTI6IDEuMXJlbTtcclxuJGludml0YXRpb24tZW1haWwtbWFyZ2luOiAwIGF1dG87XHJcbiRpbnZpdGF0aW9uLWVtYWlsLXBhZGRpbmc6IDEuNnJlbTtcclxuJGludml0YXRpb24tZW1haWwtcGFkZGluZzI6IDAuOHJlbTtcclxuJGludml0YXRpb24tZW1haWwtYm9yZGVyLXJhZGl1czogMC4xcmVtO1xyXG5cclxuLmludml0YXRpb24tZW1haWwtaW5wdXQge1xyXG4gIG1hcmdpbjogJGludml0YXRpb24tZW1haWwtbWFyZ2luO1xyXG4gIHBhZGRpbmc6ICRpbnZpdGF0aW9uLWVtYWlsLXBhZGRpbmcgJGludml0YXRpb24tZW1haWwtcGFkZGluZztcclxuICBjb2xvcjogcmdiKDc4LCA3OCwgNzgpO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtcclxuICBmb250LXNpemU6ICRpbnZpdGF0aW9uLWVtYWlsLWZvbnQtc2l6ZTtcclxuICBib3JkZXItcmFkaXVzOiAkaW52aXRhdGlvbi1lbWFpbC1ib3JkZXItcmFkaXVzO1xyXG5cclxuICAmOjpwbGFjZWhvbGRlciB7XHJcbiAgICBoZWlnaHQ6IGluaGVyaXQ7XHJcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICAgIGZvbnQtc2l6ZTogJGludml0YXRpb24tZW1haWwtZm9udC1zaXplO1xyXG4gIH1cclxuXHJcbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XHJcbiAgICBsaW5lLWhlaWdodDogMCAhaW1wb3J0YW50O1xyXG4gICAgZm9udC1zaXplOiAkaW52aXRhdGlvbi1lbWFpbC1mb250LXNpemU7XHJcbiAgfVxyXG59XHJcblxyXG4uaW52aXRhdGlvbi1lbWFpbC1idG4ge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbjogJGludml0YXRpb24tZW1haWwtbWFyZ2luO1xyXG4gIHBhZGRpbmc6ICRpbnZpdGF0aW9uLWVtYWlsLXBhZGRpbmcyICRpbnZpdGF0aW9uLWVtYWlsLXBhZGRpbmc7XHJcbiAgZm9udC1zaXplOiAkaW52aXRhdGlvbi1lbWFpbC1mb250LXNpemUyO1xyXG4gIGJvcmRlci1yYWRpdXM6ICRpbnZpdGF0aW9uLWVtYWlsLWJvcmRlci1yYWRpdXM7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG4iXX0= */\";","import { Component, OnInit, Inject, Optional } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { WINDOW } from '@ng-toolkit/universal';\n\nimport { faThumbsUp } from '@fortawesome/free-regular-svg-icons';\n\nimport { AppService } from '../shared/services/app.service';\nimport { ExService } from '../shared/services/ex.service';\n\n@Component({\n selector: 'app-landing',\n templateUrl: './component.html',\n styleUrls: ['./component.scss']\n})\nexport class LandingComponent implements OnInit {\n\n faIcons = { faThumbsUp };\n\n focus: any;\n focus1: any;\n\n invitationInProgress = false;\n invitationSuccess = false;\n invitationFailed = false;\n\n constructor(\n @Optional() @Inject(WINDOW) public window: Window,\n public appService: AppService,\n public exService: ExService) { }\n\n ngOnInit() {\n this.exService.injectHeatmap();\n }\n\n scrollScreen() {\n this.window.scrollTo(0, 480);\n return false;\n }\n\n processInvitationForm(form: NgForm) {\n const email = form.controls['email'].value;\n if (email && email.length) {\n this.invitationInProgress = true;\n this.appService.invite(email).subscribe(res => {\n if (res.data && res.data.email) {\n form.controls['email'].setValue('You will receive your invitation shortly. ✔');\n\n this.invitationInProgress = false;\n this.invitationSuccess = true;\n this.invitationFailed = false;\n } else {\n this.invitationInProgress = false;\n this.invitationSuccess = false;\n this.invitationFailed = true;\n }\n }, err => {\n this.invitationInProgress = false;\n this.invitationSuccess = false;\n this.invitationFailed = true;\n });\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { FormsModule } from '@angular/forms';\n\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { LazyLoadImageModule } from 'ng-lazyload-image';\nimport { AnimateOnScrollModule } from '../utils/animate-on-scroll';\n\nimport { HomeSharedModule } from '../home-shared/module';\n\nimport { LandingComponent } from './component';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule.forChild([\n {\n path: '',\n component: LandingComponent\n }\n ]),\n\n FormsModule,\n\n FontAwesomeModule,\n LazyLoadImageModule,\n AnimateOnScrollModule,\n\n HomeSharedModule,\n ],\n declarations: [\n LandingComponent,\n ]\n})\nexport class LandingModule { }\n"],"sourceRoot":"webpack:///"}