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/cvetdv.ru/bitrix/js/landing/ui/card/messagecard/src/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/landing/ui/card/messagecard/src/messagecard.js
import 'ui.design-tokens';
import 'ui.fonts.opensans';

import {Cache, Dom, Tag, Text, Type} from 'main.core';
import {BaseCard} from 'landing.ui.card.basecard';
import {Loc} from 'landing.loc';
import './css/style.css';

const CONTEXT_WARNING = 'warning';

export class MessageCard extends BaseCard
{
	static cache = new Cache.MemoryCache();

	constructor(
		options: {
			id?: string,
			header?: string,
			description?: string,
			context?: string,
			icon?: string,
			angle?: boolean,
			closeable?: boolean,
			hideActions?: boolean,
			restoreState?: boolean,
			more?: string | () => {},
		},
	)
	{
		super(options);
		this.setEventNamespace('BX.Landing.UI.Card.MessageCard');
		Dom.addClass(this.getLayout(), 'landing-ui-card-message');

		this.onCloseClick = this.onCloseClick.bind(this);

		if (Type.isStringFilled(this.options.context))
		{
			switch (this.options.context)
			{
				case CONTEXT_WARNING:
					Dom.addClass(this.getLayout(), 'landing-ui-card-message-context-warning');
					break;
			}
		}

		if (this.options.angle === false)
		{
			Dom.addClass(this.getLayout(), 'landing-ui-card-message-without-angle');
		}

		if (Type.isStringFilled(this.options.icon))
		{
			Dom.append(this.getIcon(), this.getHeader());
		}

		Dom.append(this.getTitle(), this.getHeader());
		Dom.append(this.getDescription(), this.getBody());

		if (this.options.closeable !== false)
		{
			Dom.append(this.getCloseButton(), this.getLayout());
		}

		if (this.options.hideActions !== true || this.options.more)
		{
			Dom.append(this.getActionsContainer(), this.getLayout());
		}

		if (this.isAllowRestoreState())
		{
			const state = MessageCard.cache.get(this.options.id, {shown: true});
			if (state.shown)
			{
				this.show();
			}
			else
			{
				this.hide();
			}
		}
	}

	isAllowRestoreState(): boolean
	{
		return this.options.restoreState && this.options.id;
	}

	getIcon(): HTMLDivElement
	{
		return this.cache.remember('icon', () => {
			return Tag.render`
				<div class="landing-ui-card-message-icon" style="background-image: url(${this.options.icon})"></div>
			`;
		});
	}

	getTitle(): HTMLDivElement
	{
		return this.cache.remember('title', () => {
			return Tag.render`
				<div class="landing-ui-card-message-title">${this.options.header}</div>
			`;
		});
	}

	getDescription(): HTMLDivElement
	{
		return this.cache.remember('description', () => {
			return Tag.render`
				<div class="landing-ui-card-message-description">${this.options.description}</div>
			`;
		});
	}

	getCloseButton(): HTMLDivElement
	{
		return this.cache.remember('closeButton', () => {
			return Tag.render`
				<div 
					class="landing-ui-card-message-close-button" 
					onclick="${this.onCloseClick}"
					title="${Loc.getMessage('LANDING_MESSAGE_CARD_HIDE_MSGVER_1')}"
				></div>
			`;
		});
	}

	onCloseClick(event: MouseEvent)
	{
		event.preventDefault();
		this.hide();
		this.emit('onClose');
		MessageCard.cache.set(this.options.id, {shown: false});
	}

	getActionsContainer(): HTMLDivElement
	{
		return this.cache.remember('actionsContainer', () => {
			return Tag.render`
				<div class="landing-ui-card-message-actions">
					${this.options.closeable !== false ? this.getCloseLink() : ''}
					${this.options.more ? this.getReedMoreLink() : ''}
				</div>
			`;
		});
	}

	getCloseLink(): HTMLSpanElement
	{
		return this.cache.remember('closeLink', () => {
			return Tag.render`
				<span class="ui-link ui-link-secondary ui-link-dashed landing-ui-card-message-close-link" onclick="${this.onCloseClick}">
					${Loc.getMessage('LANDING_MESSAGE_CARD_HIDE_MSGVER_1')}
				</span>
			`;
		});
	}

	getReedMoreLink(): HTMLSpanElement
	{
		return this.cache.remember('readMoreButton', () => {
			if (Type.isStringFilled(this.options.more))
			{
				return Tag.render`
					<a href="${Text.encode(this.options.more)}" target="_blank" class="ui-link ui-link-secondary ui-link-dashed landing-ui-card-read-more-link">
						${Loc.getMessage('LANDING_MESSAGE_CARD_READ_MORE')}
					</a>
				`;
			}

			return Tag.render`
				<span class="ui-link ui-link-secondary ui-link-dashed landing-ui-card-read-more-link" onclick="${this.options.more}">
					${Loc.getMessage('LANDING_MESSAGE_CARD_READ_MORE')}
				</span>
			`;
		});
	}

	onClick()
	{
		this.onClickHandler(this);
		this.emit('onClick');
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit