b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / dev2.destoffenstraat.com / lib / web / mage / backend /
Filename/home/dev2.destoffenstraat.com/lib/web/mage/backend/floating-header.js
Size3.29 kb
Permissionrw-r--r--
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified28-Jan-2025 06:45
Last accessed22-Aug-2025 06:06
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

define([
'jquery',
'jquery/ui'
], function ($) {
'use strict';

$.widget('mage.floatingHeader', {
options: {
placeholderAttrs: {
'class': 'page-actions-placeholder'
},
fixedClass: '_fixed',
hiddenClass: '_hidden',
title: '.page-title-wrapper .page-title',
pageMainActions: '.page-main-actions',
contains: '[data-role=modal]'
},

/**
* Widget initialization
* @private
*/
_create: function () {
var title = $(this.options.title).text(),
wrapped = this.element.find('.page-actions-buttons').children();

if (this.element.parents(this.options.contains).length) {
return this;
}

this._setVars();
this._bind();
this.element.find('script').remove();

if (wrapped.length) {
wrapped
.unwrap() // .page-actions-buttons
.unwrap(); // .page-actions-inner
}
this.element.wrapInner($('<div/>', {
'class': 'page-actions-buttons'
}));
this.element.wrapInner($('<div/>', {
'class': 'page-actions-inner', 'data-title': title
}));
this.element.removeClass('floating-header');
},

/**
* Set privat variables on load, for performance purposes
* @private
*/
_setVars: function () {
this._placeholder = this.element.before($('<div/>', this.options.placeholderAttrs)).prev();
this._offsetTop = this._placeholder.offset().top;
this._height = this.element
.parents(this.options.pageMainActions)
.outerHeight();
},

/**
* Event binding, will monitor scroll and resize events (resize events left for backward compat)
* @private
*/
_bind: function () {
this._on(window, {
scroll: this._handlePageScroll,
resize: this._handlePageScroll
});
},

/**
* Event handler for setting fixed positioning
* @private
*/
_handlePageScroll: function () {
var isActive = $(window).scrollTop() > this._offsetTop;

if (isActive) {
this.element
.addClass(this.options.fixedClass)
.parents(this.options.pageMainActions)
.addClass(this.options.hiddenClass);
} else {
this.element
.removeClass(this.options.fixedClass)
.parents(this.options.pageMainActions)
.removeClass(this.options.hiddenClass);
}

this._placeholder.height(isActive ? this._height : '');
},

/**
* Widget destroy functionality
* @private
*/
_destroy: function () {
if (this._placeholder) {
this._placeholder.remove();
}
this._off($(window));
}
});

return $.mage.floatingHeader;
});