UNPKG

angular2-cookie-law-banner

Version:

Angular2+ component that provides a banner to inform users about cookie banner

54 lines 6.59 kB
/** * angular2-cookie-law-banner * * Copyright 2016-2018, @jwala-anirudh, All rights reserved. * * @author: @jwala-anirudh <anirudhjwala@gmail.com> */ import { Inject, Injectable, PLATFORM_ID } from "@angular/core"; import { DOCUMENT, isPlatformBrowser } from "@angular/common"; import * as i0 from "@angular/core"; export class Angular2CookieLawBannerService { constructor(doc, platform) { this.doc = doc; this.platform = platform; } seen(cookieName = "cookieLawSeen") { let cookies = []; if (isPlatformBrowser(this.platform)) { cookies = this.doc.cookie.split(";"); return this.cookieExisits(cookieName, cookies); } return true; } storeCookie(cookieName, expiration) { return this.setCookie(cookieName, expiration); } cookieExisits(name, cookies) { const cookieName = `${name}=`; return cookies.reduce((prev, curr) => prev || curr.trim().search(cookieName) > -1, false); } setCookie(name, expiration) { const now = new Date(); const exp = new Date(now.getTime() + expiration * 86400000); const cookieString = encodeURIComponent(name) + `=true;path=/;expires=${exp.toUTCString()};`; if (isPlatformBrowser(this.platform)) { this.doc.cookie = cookieString; } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Angular2CookieLawBannerService, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Angular2CookieLawBannerService, providedIn: "root" }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Angular2CookieLawBannerService, decorators: [{ type: Injectable, args: [{ providedIn: "root", }] }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT] }] }, { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhcjItY29va2llLWxhdy1iYW5uZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIyLWNvb2tpZS1sYXctYmFubmVyL3NyYy9saWIvYW5ndWxhcjItY29va2llLWxhdy1iYW5uZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUs5RCxNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLFlBQzRCLEdBQVEsRUFDTCxRQUFnQjtRQURuQixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBQ0wsYUFBUSxHQUFSLFFBQVEsQ0FBUTtJQUM1QyxDQUFDO0lBRUcsSUFBSSxDQUFDLGFBQXFCLGVBQWU7UUFDOUMsSUFBSSxPQUFPLEdBQWtCLEVBQUUsQ0FBQztRQUVoQyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFckMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sV0FBVyxDQUFDLFVBQWtCLEVBQUUsVUFBbUI7UUFDeEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU8sYUFBYSxDQUFDLElBQVksRUFBRSxPQUFzQjtRQUN4RCxNQUFNLFVBQVUsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDO1FBRTlCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDbkIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDM0QsS0FBSyxDQUNOLENBQUM7SUFDSixDQUFDO0lBRU8sU0FBUyxDQUFDLElBQVksRUFBRSxVQUFtQjtRQUNqRCxNQUFNLEdBQUcsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzdCLE1BQU0sR0FBRyxHQUFTLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxVQUFVLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFFbEUsTUFBTSxZQUFZLEdBQ2hCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLHdCQUF3QixHQUFHLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQztRQUUxRSxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQzs4R0F6Q1UsOEJBQThCLGtCQUUvQixRQUFRLGFBQ1IsV0FBVztrSEFIViw4QkFBOEIsY0FGN0IsTUFBTTs7MkZBRVAsOEJBQThCO2tCQUgxQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxRQUFROzswQkFDZixNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGFuZ3VsYXIyLWNvb2tpZS1sYXctYmFubmVyXG4gKlxuICogQ29weXJpZ2h0IDIwMTYtMjAxOCwgQGp3YWxhLWFuaXJ1ZGgsIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQGF1dGhvcjogQGp3YWxhLWFuaXJ1ZGggPGFuaXJ1ZGhqd2FsYUBnbWFpbC5jb20+XG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXG59KVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXIyQ29va2llTGF3QmFubmVyU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jOiBhbnksXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybTogT2JqZWN0XG4gICkge31cblxuICBwdWJsaWMgc2Vlbihjb29raWVOYW1lOiBzdHJpbmcgPSBcImNvb2tpZUxhd1NlZW5cIik6IGJvb2xlYW4ge1xuICAgIGxldCBjb29raWVzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybSkpIHtcbiAgICAgIGNvb2tpZXMgPSB0aGlzLmRvYy5jb29raWUuc3BsaXQoXCI7XCIpO1xuXG4gICAgICByZXR1cm4gdGhpcy5jb29raWVFeGlzaXRzKGNvb2tpZU5hbWUsIGNvb2tpZXMpO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIHN0b3JlQ29va2llKGNvb2tpZU5hbWU6IHN0cmluZywgZXhwaXJhdGlvbj86IG51bWJlcik6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLnNldENvb2tpZShjb29raWVOYW1lLCBleHBpcmF0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgY29va2llRXhpc2l0cyhuYW1lOiBzdHJpbmcsIGNvb2tpZXM6IEFycmF5PHN0cmluZz4pOiBib29sZWFuIHtcbiAgICBjb25zdCBjb29raWVOYW1lID0gYCR7bmFtZX09YDtcblxuICAgIHJldHVybiBjb29raWVzLnJlZHVjZShcbiAgICAgIChwcmV2LCBjdXJyKSA9PiBwcmV2IHx8IGN1cnIudHJpbSgpLnNlYXJjaChjb29raWVOYW1lKSA+IC0xLFxuICAgICAgZmFsc2VcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb29raWUobmFtZTogc3RyaW5nLCBleHBpcmF0aW9uPzogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3Qgbm93OiBEYXRlID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBleHA6IERhdGUgPSBuZXcgRGF0ZShub3cuZ2V0VGltZSgpICsgZXhwaXJhdGlvbiAqIDg2NDAwMDAwKTtcblxuICAgIGNvbnN0IGNvb2tpZVN0cmluZyA9XG4gICAgICBlbmNvZGVVUklDb21wb25lbnQobmFtZSkgKyBgPXRydWU7cGF0aD0vO2V4cGlyZXM9JHtleHAudG9VVENTdHJpbmcoKX07YDtcblxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtKSkge1xuICAgICAgdGhpcy5kb2MuY29va2llID0gY29va2llU3RyaW5nO1xuICAgIH1cbiAgfVxufVxuIl19