Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/js/landing/widget/src/
Upload File :
Current File : /var/www/homesaver/www/bitrix/js/landing/widget/src/widget.js

import { Dom, Event } from 'main.core';

export class Widget
{
	constructor(widgetElement, options)
	{
		this.element = widgetElement;
		this.isShowExtendButton = options.isShowExtendButton ?? false;
		this.mainContainer = options.mainContainer ?? null;
		this.sidebarContainer = options.sidebarContainer ?? null;
		this.extendButton = options.extendButton ?? null;
		this.viewAllButton = options.viewAllButton ?? null;
		this.grid = options.grid ?? null;
		this.gridExtendedClass = options.gridExtendedClass ?? '';
		this.buttonHideClass = options.buttonHideClass ?? '';
	}

	deleteContextDependentContainer()
	{
		const sidebarElements = document.querySelectorAll('.landing-sidebar');
		let isInsideSidebar = false;
		sidebarElements.forEach((sidebarElement) => {
			if (sidebarElement.contains(this.element))
			{
				isInsideSidebar = true;
			}
		});

		if (isInsideSidebar && this.mainContainer)
		{
			this.mainContainer.remove();
		}

		if (!isInsideSidebar && this.sidebarContainer)
		{
			this.sidebarContainer.remove();
		}
	}

	toggleExtendViewButtonBehavior()
	{
		if (this.extendButton && this.viewAllButton)
		{
			if (this.isShowExtendButton)
			{
				Event.bind(this.extendButton, 'click', () => {
					if (this.grid)
					{
						Dom.addClass(this.grid, this.gridExtendedClass);
						setTimeout(() => {
							Dom.addClass(this.extendButton, this.buttonHideClass);
							Dom.removeClass(this.viewAllButton, this.buttonHideClass);
						}, 300);
					}
				});
			}
			else
			{
				Dom.addClass(this.extendButton, this.buttonHideClass);
				Dom.removeClass(this.viewAllButton, this.buttonHideClass);
			}
		}
	}
}