blazy-8.x-2.x-dev/js/src/components/grid/blazy.flexbox.js
js/src/components/grid/blazy.flexbox.js
/** * @file * Provides CSS3 flex based on Flexbox layout. * * @see https://developer.mozilla.org/en-US/docs/Web/CSS/flex */ (function ($, Drupal) { 'use strict'; $.dyGrid = $.dyGrid || {}; var NICK = 'flexbox'; var ID_ONCE = 'b-' + NICK; var DATA_ID = 'data-b-' + NICK; var S_ELEMENT = '[' + DATA_ID + ']'; var VALID = false; var UNLOAD; /** * Attaches Blazy behavior to HTML element identified by .b-flexbox. * * @type {Drupal~behavior} */ Drupal.behaviors.blazyFlexbox = { attach: function (context) { $.wwoBigPipe(function () { var roots = $.once(ID_ONCE, S_ELEMENT, context); if (roots.length) { VALID = true; var opts = { nick: NICK, cName: ID_ONCE, dataId: DATA_ID, md: '--bfb-md', lg: '--bfb-lg', selector: S_ELEMENT, unload: UNLOAD }; $.dyGrid.init(roots, opts); } }); }, detach: function (context, setting, trigger) { if (VALID && trigger === 'unload') { // Prevents from BigPipe problematic multiple invocations. $.wwoBigPipe(function () { $.once.removeSafely(ID_ONCE, S_ELEMENT, context); UNLOAD = $.once.unload; }); } } }; }(dBlazy, Drupal));