@ribajs/bs4
Version:
Bootstrap 4 module for Riba.js
58 lines (57 loc) • 2.21 kB
TypeScript
import { Component, HttpMethod, HttpDataType, ScopeBase } from "@ribajs/core";
export interface ValidationObject {
fields: {
[]: string | boolean | string[];
} | FormData;
valid: boolean;
error?: string;
}
export interface SubmitSettings {
action: string;
method: HttpMethod;
target?: string;
type: HttpDataType;
}
export interface Scope extends ScopeBase {
id: string;
form: ValidationObject;
onSubmit: Bs4FormComponent["onSubmit"];
disableSubmitUntilChange: boolean;
submitDisabled: boolean;
useAjax: boolean;
ajaxRequestType: HttpDataType;
autoSetFormData: boolean;
stripHtml: boolean;
scrollToInvalidElement: true;
animateInvalidElement: true;
}
export declare class Bs4FormComponent extends Component {
static tagName: string;
_debug: boolean;
protected autobind: boolean;
static get observedAttributes(): string[];
protected formEl: HTMLFormElement | null;
protected getDefaultScope(): Scope;
scope: Scope;
constructor();
protected connectedCallback(): void;
protected addEventListeners(): void;
protected removeEventListeners(): void;
private enableSubmit;
protected requiredAttributes(): string[];
protected beforeBind(): Promise<void>;
protected afterBind(): Promise<void>;
protected stripHtml(): void;
onSubmit(event: Event, el: HTMLButtonElement): boolean | undefined;
protected ajaxSubmit(event?: Event, el?: HTMLButtonElement): Promise<void>;
protected getSubmitSettings(event?: Event): SubmitSettings | null;
protected onInvalidForm(event: Event): void;
protected scrollToElement(invalidElement: HTMLElement): void;
protected animateInvalidElement(invalidElement: HTMLElement, endsOn?: number): void;
protected onErrorSubmit(status: string, message: string, response: any): void;
protected onSuccessSubmit(status: string, message: string, response: any): void;
protected validate(form: HTMLFormElement, validationScope: ValidationObject, errorEventName?: string): void;
protected getFormValues(): FormData | null;
protected initForm(): void;
protected template(): Promise<string | null>;
}