1.0.32 • Published 9 months ago

@brandup/ui v1.0.32

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
9 months ago

brandup-ui

Build Status

Installation

Install NPM package @brandup/ui.

npm i @brandup/ui@latest

UIElement

UIElement - wrapper для HTMLElement, который позволяет привязать к нему свою бизнес логику.

Возможности:

  • Обработка комманд вызванных внутри HTMLElement, который связан с UIElement.
  • Обработка событий элемента HTMLElement, который связан с UIElement.
abstract class UIElement {
    abstract typeName: string;
    readonly element: HTMLElement | undefined;

    protected setElement(elem: HTMLElement): void;

    protected defineEvent(eventName: string, eventOptions?: EventInit): void;
    protected raiseEvent(eventName: string, eventArgs?: any): boolean;

    addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
    removeEventListener(type: string, listener?: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    dispatchEvent(event: Event): boolean;

    registerCommand(name: string, execute: CommandDelegate, canExecute?: CommandCanExecuteDelegate): void;
    hasCommand(name: string): boolean;
    
    protected _onRenderElement(_elem: HTMLElement);
    protected _onCanExecCommand(_name: string, _elem: HTMLElement): boolean;

	onDestroy(callback: VoidFunction | UIElement | Element);
    destroy(): void;
}

UI commands

Класс UIElement позволяет регистрировать обработчики комманд, которые определяются в разметке HTML элемента.

<button data-command="send">Send</button>

this.registerCommand("send", (context: CommandContext) => { context.target.innerHTML = "ok"; });

Так же можно регистрировать асинхронные обработчики комманд:

this.registerCommand("command1-async", (context: CommandContext) => {
	return Promise<void>(resolve => {
		context.target.innerHTML = "Loading...";
		const t = window.setTimeout(() => {
			context.target.innerHTML = "Ok";
			resolve();
		}, 2000);
	});
});

Команды срабатывают по событию click.

Во время выполнения команды, у элемента добавляется стиль executing.

UI Events

UIElement extends class of EveentEmmiter.

1.0.32

9 months ago

1.0.31

10 months ago

1.0.30

1 year ago

1.0.29

1 year ago

1.0.28

1 year ago

1.0.26

1 year ago

1.0.27

1 year ago

1.0.25

1 year ago

1.0.24

1 year ago

1.0.23

1 year ago

1.0.22

1 year ago

1.0.21

1 year ago

1.0.20

1 year ago

1.0.19

1 year ago

1.0.18

1 year ago

1.0.17

1 year ago

1.0.16

1 year ago

1.0.14

1 year ago

1.0.13

1 year ago

1.0.12

1 year ago

1.0.11

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago