{"version":3,"file":"angular2-cookie-law-banner.mjs","sources":["../../../projects/angular2-cookie-law-banner/src/lib/angular2-cookie-law-banner.service.ts","../../../projects/angular2-cookie-law-banner/src/lib/icons.ts","../../../projects/angular2-cookie-law-banner/src/lib/animations.ts","../../../projects/angular2-cookie-law-banner/src/lib/angular2-cookie-law-banner.component.ts","../../../projects/angular2-cookie-law-banner/src/lib/angular2-cookie-law-banner.component.html","../../../projects/angular2-cookie-law-banner/src/lib/angular2-cookie-law-banner-container.component.ts","../../../projects/angular2-cookie-law-banner/src/lib/angular2-cookie-law-banner.module.ts","../../../projects/angular2-cookie-law-banner/src/public_api.ts","../../../projects/angular2-cookie-law-banner/src/angular2-cookie-law-banner.ts"],"sourcesContent":["/**\n * angular2-cookie-law-banner\n *\n * Copyright 2016-2018, @jwala-anirudh, All rights reserved.\n *\n * @author: @jwala-anirudh <anirudhjwala@gmail.com>\n */\n\nimport { Inject, Injectable, PLATFORM_ID } from \"@angular/core\";\nimport { DOCUMENT, isPlatformBrowser } from \"@angular/common\";\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class Angular2CookieLawBannerService {\n  constructor(\n    @Inject(DOCUMENT) private doc: any,\n    @Inject(PLATFORM_ID) private platform: Object\n  ) {}\n\n  public seen(cookieName: string = \"cookieLawSeen\"): boolean {\n    let cookies: Array<string> = [];\n\n    if (isPlatformBrowser(this.platform)) {\n      cookies = this.doc.cookie.split(\";\");\n\n      return this.cookieExisits(cookieName, cookies);\n    }\n\n    return true;\n  }\n\n  public storeCookie(cookieName: string, expiration?: number): void {\n    return this.setCookie(cookieName, expiration);\n  }\n\n  private cookieExisits(name: string, cookies: Array<string>): boolean {\n    const cookieName = `${name}=`;\n\n    return cookies.reduce(\n      (prev, curr) => prev || curr.trim().search(cookieName) > -1,\n      false\n    );\n  }\n\n  private setCookie(name: string, expiration?: number): void {\n    const now: Date = new Date();\n    const exp: Date = new Date(now.getTime() + expiration * 86400000);\n\n    const cookieString =\n      encodeURIComponent(name) + `=true;path=/;expires=${exp.toUTCString()};`;\n\n    if (isPlatformBrowser(this.platform)) {\n      this.doc.cookie = cookieString;\n    }\n  }\n}\n","/**\n * angular2-cookie-law-banner\n *\n * Copyright 2016-2018, @jwala-anirudh, All rights reserved.\n *\n * @author: @jwala-anirudh <anirudhjwala@gmail.com>\n */\n\nexport const closeIcon = `\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n    <path d=\"M377.047 184.198q0 8.26-6.037 14.297L313.505 256l57.505 57.505q6.037 6.037 6.037 14.297 0 8.578-6.037\n      14.615l-28.593 28.593q-6.037 6.037-14.615 6.037-8.26 0-14.297-6.037L256 313.505l-57.505 57.505q-6.037\n      6.037-14.297 6.037-8.578 0-14.615-6.037l-28.593-28.593q-6.037-6.037-6.037-14.615 0-8.26 6.037-14.297L198.495\n      256l-57.505-57.505q-6.037-6.037-6.037-14.297 0-8.578 6.037-14.615l28.593-28.593q6.037-6.037 14.615-6.037 8.26 0\n      14.297 6.037L256 198.495l57.505-57.505q6.037-6.037 14.297-6.037 8.578 0 14.615 6.037l28.593 28.593q6.037 6.037\n      6.037 14.615zM500 256q0-66.401-32.724-122.477-32.724-56.075-88.799-88.799Q322.401 12 256 12q-66.401 0-122.477\n      32.724-56.075 32.724-88.799 88.799Q12 189.599 12 256q0 66.401 32.724 122.477 32.724 56.075 88.799 88.799Q189.599\n      500 256 500q66.401 0 122.477-32.724 56.075-32.724 88.799-88.799Q500 322.401 500 256z\"></path>\n  </svg>`;\n","/**\n * angular2-cookie-law-banner\n *\n * Copyright 2016-2018, @jwala-anirudh, All rights reserved.\n *\n * @author: @jwala-anirudh <anirudhjwala@gmail.com>\n */\n\nimport {\n  trigger,\n  state,\n  style,\n  animate,\n  transition,\n  AnimationTriggerMetadata,\n} from \"@angular/animations\";\n\nexport const translateInOut: AnimationTriggerMetadata = trigger(\"transition\", [\n  state(\"*\", style({ transform: \"translateY(0)\" })),\n  state(\"void\", style({ transform: \"translateY(0)\" })),\n\n  state(\"bottomOut\", style({ transform: \"translateY(100%)\" })),\n  state(\"topOut\", style({ transform: \"translateY(-100%)\" })),\n\n  transition(\"void => topIn\", [\n    style({ transform: \"translateY(-100%)\" }),\n    animate(\"1000ms ease-in-out\"),\n  ]),\n\n  transition(\"void => bottomIn\", [\n    style({ transform: \"translateY(100%)\" }),\n    animate(\"1000ms ease-in-out\"),\n  ]),\n\n  transition(\"* => *\", animate(\"1000ms ease-out\")),\n]);\n","/**\n * angular2-cookie-law-banner\n *\n * Copyright 2016-2018, @jwala-anirudh, All rights reserved.\n *\n * @author: @jwala-anirudh <anirudhjwala@gmail.com>\n */\n\nimport {\n  Component,\n  OnInit,\n  HostBinding,\n  ViewEncapsulation,\n  Input,\n  Output,\n  EventEmitter,\n} from \"@angular/core\";\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\nimport { AnimationEvent } from \"@angular/animations\";\nimport { closeIcon } from \"./icons\";\nimport { translateInOut } from \"./animations\";\nimport {\n  CookieBannerAnimation,\n  CookieBannerTarget,\n  CookieBannerPosition,\n} from \"./definitions\";\n\n@Component({\n  selector: \"cookie-banner-component\",\n  templateUrl: \"./angular2-cookie-law-banner.component.html\",\n  styleUrls: [\"./angular2-cookie-law-banner.component.css\"],\n  animations: [translateInOut],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class CookieBannerComponent implements OnInit {\n  public closeSvg: SafeHtml;\n  public currentStyles: any;\n  public transition: CookieBannerAnimation;\n\n  @HostBinding(\"class.cookie-banner\")\n  public cookieLawClass: boolean;\n\n  @Input()\n  get learnMore() {\n    return this._learnMore;\n  }\n  set learnMore(value: string) {\n    this._learnMore = value !== null && `${value}` !== \"false\" ? value : null;\n  }\n\n  @Input()\n  get awsomeCloseIcon() {\n    return this._awsomeCloseIcon;\n  }\n  set awsomeCloseIcon(value: string) {\n    this._awsomeCloseIcon =\n      value !== null && `${value}` !== \"false\" ? value : null;\n  }\n\n  @Input()\n  get target() {\n    return this._target;\n  }\n  set target(value: CookieBannerTarget) {\n    this._target =\n      value !== null &&\n      `${value}` !== \"false\" &&\n      (`${value}` === \"_blank\" || `${value}` === \"_self\")\n        ? value\n        : \"_blank\";\n  }\n\n  @Input()\n  get position() {\n    return this._position;\n  }\n  set position(value: CookieBannerPosition) {\n    this._position =\n      value !== null &&\n      `${value}` !== \"false\" &&\n      (`${value}` === \"top\" || `${value}` === \"bottom\")\n        ? value\n        : \"bottom\";\n  }\n\n  @Output()\n  public isSeen = new EventEmitter<boolean>();\n\n  public noopener: boolean;\n\n  private _learnMore: string;\n  private _awsomeCloseIcon: string;\n  private _target: CookieBannerTarget;\n  private _position: CookieBannerPosition;\n\n  constructor(private domSanitizer: DomSanitizer) {\n    this.transition = \"bottomIn\";\n    this._position = \"bottom\";\n    this.cookieLawClass = true;\n  }\n\n  public ngOnInit(): void {\n    this.noopener = this._target === \"_blank\";\n    this.transition = this.position === \"bottom\" ? \"bottomIn\" : \"topIn\";\n\n    if (this._awsomeCloseIcon) {\n      this.closeSvg = this.domSanitizer.bypassSecurityTrustHtml(\n        `<i class=\"fab ${this._awsomeCloseIcon}\"></i>`\n      );\n    } else {\n      this.closeSvg = this.domSanitizer.bypassSecurityTrustHtml(closeIcon);\n    }\n\n    this.currentStyles = {\n      top: this.position === \"top\" ? \"0\" : null,\n      bottom: this.position === \"top\" ? \"initial\" : null,\n    };\n  }\n\n  public afterDismissAnimation(evt: AnimationEvent): void {\n    if (evt.toState === \"topOut\" || evt.toState === \"bottomOut\") {\n      this.isSeen.emit(true);\n    }\n  }\n\n  public dismiss(evt?: MouseEvent): void {\n    if (evt) {\n      evt.preventDefault();\n    }\n\n    this.transition = this.position === \"top\" ? \"topOut\" : \"bottomOut\";\n  }\n}\n","<div\n  class=\"cookie-banner-wrapper\"\n  [ngStyle]=\"currentStyles\"\n  [@transition]=\"transition\"\n  (@transition.done)=\"afterDismissAnimation($event)\"\n>\n  <div class=\"copy\">\n    <span #ref><ng-content></ng-content></span>\n\n    <span *ngIf=\"ref.childNodes.length == 0\">\n      By continuing to browse the site, you're agreeing to our use of cookies.\n      <span *ngIf=\"learnMore\">\n        Learn more in our\n        <a\n          [href]=\"learnMore\"\n          [target]=\"target\"\n          [rel]=\"noopener ? 'noopener noreferrer' : null\"\n          >privacy policy</a\n        >.\n      </span>\n    </span>\n\n    <a\n      href=\"#\"\n      role=\"button\"\n      class=\"dismiss\"\n      [innerHTML]=\"closeSvg\"\n      (click)=\"dismiss($event)\"\n      [attr.aria-label]=\"closeSvg\"\n    ></a>\n  </div>\n</div>\n","/**\n * angular2-cookie-law-banner\n *\n * Copyright 2016-2018, @jwala-anirudh, All rights reserved.\n *\n * @author: @jwala-anirudh <anirudhjwala@gmail.com>\n */\n\nimport {\n  Component,\n  OnInit,\n  ViewChild,\n  HostBinding,\n  Input,\n  Output,\n  EventEmitter,\n} from \"@angular/core\";\n\nimport { Angular2CookieLawBannerService } from \"./angular2-cookie-law-banner.service\";\nimport { CookieBannerComponent } from \"./angular2-cookie-law-banner.component\";\nimport { CookieBannerTarget, CookieBannerPosition } from \"./definitions\";\n\n@Component({\n  selector: \"cookie-banner\",\n  template: `\n    <cookie-banner-component\n      *ngIf=\"!seen\"\n      [awsomeCloseIcon]=\"awsomeCloseIcon\"\n      [learnMore]=\"learnMore\"\n      [target]=\"target\"\n      [position]=\"position\"\n      (isSeen)=\"hasBeenDismissed()\"\n    >\n      <ng-content></ng-content>\n    </cookie-banner-component>\n  `,\n})\nexport class CookieBannerContainerComponent implements OnInit {\n  @HostBinding(\"attr.seen\")\n  public seen: boolean;\n\n  @ViewChild(CookieBannerComponent)\n  public cookieLawComponent: CookieBannerComponent;\n\n  @Input()\n  public name: string;\n\n  @Input()\n  public learnMore: string;\n\n  @Input()\n  public target: CookieBannerTarget;\n\n  @Input()\n  public position: CookieBannerPosition;\n\n  @Input()\n  public expiration: number;\n\n  @Input()\n  public awsomeCloseIcon: string;\n\n  @Output()\n  public isSeen = new EventEmitter<boolean>();\n\n  public get cookieLawSeen(): boolean {\n    return this.cookieLawService.seen(this.name);\n  }\n\n  constructor(private cookieLawService: Angular2CookieLawBannerService) {\n    this.name = \"cookieLawSeen\"; // set a default cookie name if not provided\n    this.seen = true;\n  }\n\n  public ngOnInit() {\n    this.seen = this.cookieLawService.seen(this.name);\n  }\n\n  public hasBeenDismissed(): void {\n    this.cookieLawService.storeCookie(this.name, this.expiration);\n    this.seen = true;\n    this.isSeen.emit(true);\n  }\n\n  public dismiss(): void {\n    this.cookieLawComponent.dismiss();\n  }\n}\n","/**\n * angular2-cookie-law-banner\n *\n * Copyright 2016-2018, @jwala-anirudh, All rights reserved.\n *\n * @author: @jwala-anirudh <anirudhjwala@gmail.com>\n */\n\nimport {\n  NgModule,\n  Optional,\n  SkipSelf,\n  ModuleWithProviders,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { CookieBannerComponent } from \"./angular2-cookie-law-banner.component\";\nimport { CookieBannerContainerComponent } from \"./angular2-cookie-law-banner-container.component\";\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [CookieBannerComponent, CookieBannerContainerComponent],\n  exports: [CookieBannerContainerComponent],\n})\nexport class CookieBannerModule {\n  constructor(@Optional() @SkipSelf() parentModule: CookieBannerModule) {\n    if (parentModule) {\n      throw new Error(\n        \"CookieBannerModule is already loaded. Import it in the AppModule only\"\n      );\n    }\n  }\n}\n","/*\n * angular2-cookie-law-banner\n * Public API Surface of angular2-cookie-law-banner\n *\n * Copyright 2016-2018, @jwala-anirudh, All rights reserved.\n *\n * @author: @jwala-anirudh <anirudhjwala@gmail.com>\n */\n\nexport * from \"./lib/angular2-cookie-law-banner.service\";\nexport * from \"./lib/angular2-cookie-law-banner-container.component\";\nexport * from \"./lib/angular2-cookie-law-banner.component\";\nexport * from \"./lib/angular2-cookie-law-banner.module\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.Angular2CookieLawBannerService","i3.CookieBannerComponent"],"mappings":"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"}