Sha256: 5a61b8cf4fe865c06f848c278d5f24337ac1df6cefff7d2b489f59b706f10608

Contents?: true

Size: 1.44 KB

Versions: 14

Compression:

Stored size: 1.44 KB

Contents

// https://github.com/18F/private-eye
(function() {
  'use strict';

  var PrivateEye = function(opts) {
    var styles = document.createElement('style');
    styles.innerHTML = 'a.private-link::after { content: "\\1F512"; font-size: 0.75em; vertical-align: top; }';
    document.body.appendChild(styles);

    var defaultMessage;

    if ( opts.defaultMessage && 'string' === typeof opts.defaultMessage ) {

      defaultMessage = opts.defaultMessage;

    } else {

      defaultMessage = "This is a link to a private site, which may or may not be accessible to you.";
    }

    opts.ignoreUrls.forEach(function(url) {

      var hrefValue;
      var titleValue;

      // If the `url` is an Object, then parse the properties `message` & `url`
      //
      if ( url === Object( url ) ) {

        titleValue = url.message;
        hrefValue = url.url;

      } else {

        hrefValue = url;
        titleValue = defaultMessage;

      }

      var anchors = document.querySelectorAll('a[href*="' + hrefValue + '"]');
      Array.prototype.forEach.call(anchors, function(anchor) {
        anchor.className += ' private-link';

        // Only replace the anchor's title if it is empty
        //
        if ( ! anchor.title ) {

          anchor.title = titleValue;

        }

      });
    });
  };

  if (typeof module === 'object' && typeof module.exports === 'object') {
    module.exports = PrivateEye;
  } else {
    window.PrivateEye = PrivateEye;
  }
})();

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
guides_style_18f-1.0.6 assets/js/vendor/private-eye-1.1.0.js
guides_style_18f-2.0.1 assets/js/vendor/private-eye-1.1.0.js
guides_style_18f-2.0.0 assets/js/vendor/private-eye-1.1.0.js
guides_style_18f-1.0.4 assets/js/vendor/private-eye-1.1.0.js
guides_style_18f-1.0.3 assets/js/vendor/private-eye-1.1.0.js
guides_style_18f-1.0.2 assets/js/vendor/private-eye-1.1.0.js
guides_style_18f-1.0.1 assets/js/vendor/private-eye-1.1.0.js
guides_style_18f-1.0.0 assets/js/vendor/private-eye-1.1.0.js
guides_style_18f-0.4.9 assets/js/vendor/private-eye-1.1.0.js
guides_style_18f-0.4.8 assets/js/vendor/private-eye-1.1.0.js
guides_style_18f-0.4.7 assets/js/vendor/private-eye-1.1.0.js
guides_style_18f-0.4.6 assets/js/vendor/private-eye-1.1.0.js
guides_style_18f-0.4.5 assets/js/vendor/private-eye-1.1.0.js
guides_style_18f-0.4.4 assets/js/vendor/private-eye-1.1.0.js