0.2.17 • Published 9 months ago

@nationalarchives/frontend-cookie-banner v0.2.17

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

TNA Frontend Cookie Banner

Latest release NPM version Licence

Use the cookie banner from TNA Frontend in your service.

HTML

<section class="tna-cookie-banner" data-module="tna-cookie-banner" data-policies="" data-preferenceskey="" data-policieskey="" data-domain="myservice.nationalarchives.gov.uk" data-path="/" data-insecure="false" aria-label="Cookies on my service" hidden>
  <div class="tna-container">
    <div class="tna-column tna-column--full tna-cookie-banner__message tna-cookie-banner__message--prompt">
      <h2 class="tna-heading-m">This website uses cookies</h2>
      
      <p>We use some essential cookies to make this service work.</p>
      <p>We'd also like to use analytics cookies so we can understand how you use the service and make improvements.</p>
      
      <div class="tna-button-group">
        <button class="tna-button" type="button" value="accept">
          Accept cookies
          </button>
        
        <button class="tna-button" type="button" value="reject">
          Reject cookies
          </button>
        
        <a href="/cookies" class="tna-button tna-button--plain">
          Set cookie preferences
          </a>
        
      </div>
    </div>
    <div class="tna-column tna-column--full tna-cookie-banner__message tna-cookie-banner__message--accepted" tabindex="0" hidden>
      
      <p>You have accepted optional cookies. You can change your cookie settings on the <a href="/cookies">cookies page</a>.</p>
      
      <div class="tna-button-group">
        <button class="tna-button" type="button" value="close">
          Hide cookies message
          </button>
        
      </div>
    </div>
    <div class="tna-column tna-column--full tna-cookie-banner__message tna-cookie-banner__message--rejected" tabindex="0" hidden>
      
      <p>You have rejected optional cookies. You can change your cookie settings on the <a href="/cookies">cookies page</a>.</p>
      
      <div class="tna-button-group">
        <button class="tna-button" type="button" value="close">
          Hide cookies message
          </button>
        
      </div>
    </div>
  </div>
</section>

Attributes

AttributePurposeDefault
data-policiesExtra cookie policies in addition to "essential", "settings" and "usage"none
data-preferenceskeyThe cookie name to state that the user preferences have already been setcookie_preferences_set
data-policieskeyThe cookie name for the policy preferencescookies_policy
data-domainThe domain to save cookies forThe current domain
data-pathThe path that cookies are available within/
data-insecureAllow cookies to be sent in HTTP environments (designed for testing only)false

JavaScript

Initialise the component

Include the JavaScript in your service. This should add a TNAFrontend object to your window. You can then initialise the component:

const $cookieBanner = document.querySelector(
  '[data-module="tna-cookie-banner"]',
);

if ($cookieBanner) {
  new TNAFrontend.CookieBanner($cookieBanner);
}

Work with cookies using the Cookies class

import Cookies from "@nationalarchives/frontend/nationalarchives/lib/cookies.mjs";

const cookies = new Cookies();

if (cookies.isPolicyAccepted("usage")) {
  // Add tracking code
}

Use cookie events

import Cookies from "@nationalarchives/frontend/nationalarchives/lib/cookies.mjs";

const cookies = new Cookies();

cookies.on("acceptPolicy", function(policy) {
  if (policy === "usage") {
    console.log("Usage cookies are permitted");
    // Add tracking code
  }
});

cookies.on("rejectPolicy", function(policy) {
  if (policy === "usage") {
    console.log("Usage cookies have been rejected");
    // Remove tracking code
  }
});
EventTrigger
setCookieAny time a cookie is changed in the browser using the Cookie class
deleteCookieWhen any cookie is deleted using delete()
deleteAllCookiesWhen all cookies are deleted using deleteAll()
acceptPolicyWhen any policy is accepted using acceptPolicy()
acceptAllPoliciesWhen all policies are accepted using acceptAllPolicies()
rejectPolicyWhen any policy is rejected using rejectPolicy()
rejectAllPoliciesWhen all policies are rejected using rejectAllPolicies()
changePolicyWhen any policy is changed using either acceptPolicy(), rejectPolicy() or setPolicy()
0.2.17

9 months ago

0.2.16

9 months ago

0.2.15

9 months ago

0.2.14

10 months ago

0.2.13

10 months ago

0.2.12

10 months ago

0.2.11

11 months ago

0.2.10

11 months ago

0.1.55

1 year ago

0.1.56

1 year ago

0.1.57

1 year ago

0.1.58

1 year ago

0.1.59

1 year ago

0.1.63

1 year ago

0.1.64

1 year ago

0.1.65

1 year ago

0.1.60

1 year ago

0.1.61

1 year ago

0.1.62

1 year ago

0.2.1

12 months ago

0.2.0

12 months ago

0.2.7

11 months ago

0.2.6

12 months ago

0.2.9

11 months ago

0.2.8

11 months ago

0.2.3

12 months ago

0.2.2

12 months ago

0.2.5

12 months ago

0.2.4

12 months ago

0.1.53

1 year ago

0.1.54

1 year ago

0.1.52

1 year ago

0.1.51

1 year ago

0.1.50

1 year ago

0.1.49

1 year ago

0.1.48

1 year ago

0.1.45

1 year ago

0.1.47

1 year ago

0.1.42

1 year ago

0.1.43

1 year ago

0.1.41

1 year ago

0.1.40

1 year ago

0.1.39

1 year ago

0.1.38

1 year ago

0.1.37

1 year ago

0.1.36

1 year ago

0.1.35

1 year ago

0.1.34

2 years ago

0.1.33

2 years ago

0.1.32

2 years ago

0.1.30

2 years ago