PageSourceSearch

https://www.checkpoint.com/wp-content/themes/checkpoint-theme-v2/lib/flickity/bg-lazyload.js?ver=6.8.9

js checkpoint.com collected 2026-10-01 06:43:00 UTC 2,979 bytes, 119 lines download raw bytes

1/**
2 * Flickity background lazyload v1.0.0
3 * lazyload background cell images
4 */
5
6/*jshint browser: true, unused: true, undef: true */
7
8( function( window, factory ) {
9  // universal module definition
10  /*globals define, module, require */
11  if ( typeof define == 'function' && define.amd ) {
12    // AMD
13    define( [
14      'flickity/js/index',
15      'fizzy-ui-utils/utils'
16    ], factory );
17  } else if ( typeof module == 'object' && module.exports ) {
18    // CommonJS
19    module.exports = factory(
20      require('flickity'),
21      require('fizzy-ui-utils')
22    );
23  } else {
24    // browser global
25    factory(
26      window.Flickity,
27      window.fizzyUIUtils
28    );
29  }
30
31}( window, function factory( Flickity, utils ) {
32/*jshint strict: true */
33'use strict';
34
35Flickity.createMethods.push('_createBgLazyLoad');
36
37var proto = Flickity.prototype;
38
39proto._createBgLazyLoad = function() {
40  this.on( 'select', this.bgLazyLoad );
41};
42
43proto.bgLazyLoad = function() {
44  var lazyLoad = this.options.bgLazyLoad;
45  if ( !lazyLoad ) {
46    return;
47  }
48
49  // get adjacent cells, use lazyLoad option for adjacent count
50  var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;
51  var cellElems = this.getAdjacentCellElements( adjCount );
52
53  for ( var i=0; i < cellElems.length; i++ ) {
54    var cellElem = cellElems[i];
55    this.bgLazyLoadElem( cellElem );
56    // select lazy elems in cell
57    var children = cellElem.querySelectorAll('[data-flickity-bg-lazyload]');
58    for ( var j=0; j < children.length; j++ ) {
59      this.bgLazyLoadElem( children[j] );
60    }
61  }
62};
63
64proto.bgLazyLoadElem = function( elem ) {
65  var attr = elem.getAttribute('data-flickity-bg-lazyload');
66  if ( attr ) {
67    new BgLazyLoader( elem, attr, this );
68  }
69};
70
71// -------------------------- LazyBGLoader -------------------------- //
72
73/**
74 * class to handle loading images
75 */
76function BgLazyLoader( elem, url, flickity ) {
77  this.element = elem;
78  this.url = url;
79  this.img = new Image();
80  this.flickity = flickity;
81  this.load();
82}
83
84BgLazyLoader.prototype.handleEvent = utils.handleEvent;
85
86BgLazyLoader.prototype.load = function() {
87  this.img.addEventListener( 'load', this );
88  this.img.addEventListener( 'error', this );
89  // load image
90  this.img.src = this.url;
91  // remove attr
92  this.element.removeAttribute('data-flickity-bg-lazyload');
93};
94
95BgLazyLoader.prototype.onload = function( event ) {
96  this.element.style.backgroundImage = 'url(' + this.url + ')';
97  this.complete( event, 'flickity-bg-lazyloaded' );
98};
99
100BgLazyLoader.prototype.onerror = function( event ) {
101  this.complete( event, 'flickity-bg-lazyerror' );
102};
103
104BgLazyLoader.prototype.complete = function( event, className ) {
105  // unbind events
106  this.img.removeEventListener( 'load', this );
107  this.img.removeEventListener( 'error', this );
108
109  this.element.classList.add( className );
110  this.flickity.dispatchEvent( 'bgLazyLoad', event, this.element );
111};
112
113// -----  ----- //
114
115Flickity.BgLazyLoader = BgLazyLoader;
116
117return Flickity;
118
119}));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.