1.0.29 • Published 9 months ago

@brandup/ui v1.0.29

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.29

9 months ago

1.0.28

9 months ago

1.0.26

9 months ago

1.0.27

9 months ago

1.0.25

9 months ago

1.0.24

10 months ago

1.0.23

10 months ago

1.0.22

12 months ago

1.0.21

12 months ago

1.0.20

12 months ago

1.0.19

12 months ago

1.0.18

12 months ago

1.0.17

12 months ago

1.0.16

12 months ago

1.0.14

12 months ago

1.0.13

12 months ago

1.0.12

12 months ago

1.0.11

12 months ago

1.0.9

12 months ago

1.0.8

12 months ago

1.0.7

12 months ago

1.0.6

12 months ago

1.0.5

12 months ago

1.0.4

12 months ago

1.0.3

12 months ago

1.0.2

12 months ago

1.0.1

12 months ago