import * as vue from 'vue'; import { ComponentObjectPropsOptions, Directive, DirectiveBinding, AllowedComponentProps, VNodeProps, AppConfig, Reactive, ObjectPlugin, Ref, Slots, VNodeArrayChildren, VNode, TransitionProps, ComponentInternalInstance, DefineComponent, ComputedOptions, MethodOptions, ComponentOptionsMixin, PublicProps, SlotsType, ComponentProvideOptions, ExtractDefaultPropTypes, ComputedRef, ComponentPublicInstance, RendererNode, ShallowReactive, Component, App } from 'vue'; import { RouteLocationAsRelativeGeneric, RouteLocationRaw, RouteLocationNormalizedLoaded, RouterLinkProps } from 'vue-router'; import { AxiosInstance, AxiosRequestConfig, AxiosResponse, AxiosError, RawAxiosRequestConfig, AxiosPromise } from 'axios'; declare type TSideDrawerPosition = 'left' | 'right'; declare type TSideDrawerProps = { miniWidth: number; width: number; mini: boolean; open: boolean; }; declare type TSideDrawer = { [K in TSideDrawerPosition]: TSideDrawerProps; }; declare type TSideDrawerOptionProps = { /** * Sets the component color. * * @deprecated * Use global CSS variables instead. */ color?: string; /** * Cut off the top edge of the component. */ clipped?: boolean; /** * Sets the component position fixed on the left or right side even when scrolling the page. */ fixedLayout?: boolean; /** * The component minimize state. */ mini?: boolean; /** * The component width in pixel when on minimize state. */ miniWidth?: Numberish; /** * The component width in pixel when display as modal on small screen. */ modalWidth?: Numberish; /** * The component state, show or hide. Monitored by `v-model`. */ open?: boolean; /** * The backdrop overlay color when the component is displayed as modal. * The value must be in hexadecimal color format. */ overlayColor?: string; /** * The component position location. Valid values are: `left`, `right`. */ position?: TSideDrawerPosition; /** * Add shadow effect to the component. */ shadow?: boolean; /** * Html tag used to render the component. */ tag?: HtmlTagName | string; /** * The component width in pixel. */ width?: Numberish; }; declare type TBsSideDrawer = ComponentObjectPropsOptions; declare type TNotificationPosition = 'top-right' | 'top-left' | 'top-center' | 'top-full-width' | 'bottom-right' | 'bottom-left' | 'bottom-center' | 'bottom-full-width'; declare type TNotificationVariant = 'default' | 'info' | 'success' | 'error' | 'warning' | 'custom'; declare type TNotificationOption = { message: string; oid?: string; title?: string; timeout?: number; variant?: TNotificationVariant; position?: TNotificationPosition; clickClose?: boolean; closeButton?: boolean; iconOff?: boolean; preventDuplicates?: boolean; progressBar?: boolean; }; declare type TNotificationItemOptionProps = { variant: TNotificationVariant | string; message: string; title?: string; timeout?: number; clickClose?: boolean; closeButton?: boolean; iconOff?: boolean; progressBar?: boolean; }; declare type TNotificationBarOptionProps = { timeout?: number; pause?: boolean; }; declare type TBsNotificationItem = ComponentObjectPropsOptions; declare type TBsNotificationBar = ComponentObjectPropsOptions; declare interface INotificationProvider { /** * Get the notification data store. */ get collection(): Map; /** * Create and display new Notification. * * @param data The notification to be added. */ add(data: string | TNotificationOption): TNotificationOption | null; /** * Close all notification and remove from the DOM. */ clearAll(): void; /** * Alias for {@link remove} method. * * @param item The notification to be removed. */ close(item: TNotificationOption): void; /** * Close and remove a notification from the DOM. * * @param item The notification to be removed. */ remove(item: TNotificationOption): void; /** * Close and remove notification by its variant. * * @param variant The notification variant to be removed. */ removeByType(variant: TNotificationVariant): void; /** * Shortcut method to create and display Error Notification. * * @param data The notification configuration or message. * @param title The notification title. */ error(data: string | TNotificationOption, title?: string): TNotificationOption | null; /** * Shortcut method to create and display Info Notification. * * @param data The notification configuration or message. * @param title The notification title. */ info(data: string | TNotificationOption, title?: string): TNotificationOption | null; /** * Shortcut method to create and display Success Notification. * * @param data The notification configuration or message. * @param title The notification title. */ success(data: string | TNotificationOption, title?: string): TNotificationOption | null; /** * Shortcut method to create and display Warning Notification. * * @param data The notification configuration or message. * @param title The notification title. */ warning(data: string | TNotificationOption, title?: string): TNotificationOption | null; } declare class NotificationProvider implements INotificationProvider { private readonly _collection; constructor(); get collection(): Map; add(data: string | TNotificationOption): TNotificationOption | null; clearAll(): void; close(item: TNotificationOption): void; private _deleteIfEmpty; remove(item: TNotificationOption): void; removeByType(variant: TNotificationVariant): void; error(data: string | TNotificationOption, title?: string): TNotificationOption | null; info(data: string | TNotificationOption, title?: string): TNotificationOption | null; success(data: string | TNotificationOption, title?: string): TNotificationOption | null; warning(data: string | TNotificationOption, title?: string): TNotificationOption | null; private _doAdd; private _createOption; } declare const ClickOutside: Directive; interface ResizeDirectiveBinding extends Omit { value: EventListenerTarget | TDirectiveBinding; modifiers?: { active?: boolean; quiet?: boolean; }; } declare const Resize: Directive; interface ScrollDirectiveBinding extends Omit { value: EventListenerTarget | TDirectiveBinding; modifiers?: { passive?: boolean; self?: boolean; }; } declare const Scroll: Directive; declare interface TouchDirectiveEvent { touchstartX: number; touchstartY: number; touchendX: number; touchendY: number; touchmoveX: number; touchmoveY: number; deltaX: number; deltaY: number; left?: (evt: TouchDirectiveEvent) => void; right?: (evt: TouchDirectiveEvent) => void; up?: (evt: TouchDirectiveEvent) => void; down?: (evt: TouchDirectiveEvent) => void; start?: (evt: TouchDirectiveEvent) => void; move?: (evt: TouchDirectiveEvent) => void; end?: (evt: TouchDirectiveEvent) => void; } declare interface TouchEventListener { touchstart(e: TouchEvent): void; touchend(e: TouchEvent): void; touchmove(e: TouchEvent): void; } declare interface TouchValueBinding { left?: (evt: TouchDirectiveEvent) => void; right?: (evt: TouchDirectiveEvent) => void; up?: (evt: TouchDirectiveEvent) => void; down?: (evt: TouchDirectiveEvent) => void; start?: (evt: TouchDirectiveEvent) => void; move?: (evt: TouchDirectiveEvent) => void; end?: (evt: TouchDirectiveEvent) => void; } declare interface TouchDirectiveBinding extends Omit { value: TouchValueBinding; modifiers?: { parent?: boolean; passive?: boolean; }; } declare const Touch: Directive; declare type TBreakpoint = 'sm' | 'md' | 'lg' | 'xl' | 'xs'; declare type TContextColor = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info' | 'default'; declare type TExtendedContextColor = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info' | 'light' | 'default'; declare type HtmlTagName = 'div' | 'nav' | 'main' | 'header' | 'aside' | 'article' | 'section' | 'span' | 'h5' | 'h4' | 'h3' | 'h2' | 'h1' | 'p' | 'a'; declare type Numberish = number | string; declare type MaybeNumberish = number | string | null | undefined; declare type MaybeNumber = number | null | undefined; declare type MaybeString = string | null | undefined; declare type TRecord = Record; declare type TBooleanRecord = Record; declare type TClassList = string | string[] | TRecord; declare interface TDirectiveBinding { handler: VoidFunction | EventListener | EventListenerTarget; debounce?: number; target?: string | Element | Document | Window; } declare type TRouterLinkProps = AllowedComponentProps & VNodeProps & { /** * Element ID */ id?: string; /** * Absolute or relative URL. */ href?: string; /** * Route Location the link should navigate to when clicked on. */ to?: RouteLocationRaw; /** * Calls `router.replace` instead of `router.push`. */ replace?: boolean; /** * Class to apply when the link is active */ activeClass?: string; /** * Class to apply when the link is exact active */ exactActiveClass?: string; onClick?: (evt: Event) => void; }; declare type TRouterOptionProps = { /** * CSS class when element is active. */ activeClass?: string; /** * Create `to` property for the `` component, * if [vue-router](https://router.vuejs.org/) exist. */ location?: RouteLocationAsRelativeGeneric; /** * Shortcut to create `to` property for the `` component with only the given **path**, * if [vue-router](https://router.vuejs.org/) exist. */ path?: string; /** * Shortcut to create `to` property for the `` component with only the given * **path-name**, if [vue-router](https://router.vuejs.org/) exist. */ pathName?: string; /** * Absolute or relative url when [vue-router](https://router.vuejs.org/) doesn't exist. */ url?: string; }; declare type TAppBar = { height: number; stickyTop: boolean; fixedTop: boolean; }; declare type TVueMdbProps = { left: number; right: number; top: number; bottom: number; height: number; width: number; appbar: TAppBar; sideDrawer: TSideDrawer; }; declare type TVueMdb = { app: Record; notification: INotificationProvider; }; declare interface PromiseVoidFunction { (): Promise; } declare interface EventListenerBinding { handler: EventListenerOrEventListenerObject; options?: AddEventListenerOptions; target?: Element | Window | null; } declare interface IEventListenerResult { remove(): void; } declare interface EventListenerTarget { (target: Element | Window | undefined | null, event: Event | undefined | null): void; } declare interface IMouseEvents { mouseEnter: IEventListenerResult; mouseLeave: IEventListenerResult; focus: IEventListenerResult; blur: IEventListenerResult; } declare interface IBindingElement extends Element { __clickOutsideListener?: EventListenerBinding; __scrollListener?: EventListenerBinding; __resizeListener?: EventListenerOrEventListenerObject | CallableFunction; __resizeListeners?: Array; __mouseEvents?: IMouseEvents; __touchEvents?: TouchEventListener | TRecord; __observer?: ResizeObserver; } declare interface IHTMLElement extends HTMLElement { attachEvent(type: string, callback: EventListenerOrEventListenerObject): void; detachEvent(type: string, callback: EventListenerOrEventListenerObject): void; } declare type FilterLogic = 'AND' | 'OR'; declare type FilterOperator = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'contains' | 'fts' | 'tsquery' | 'startsWith' | 'startswith' | 'startWith' | 'startwith' | 'endsWith' | 'endswith' | 'endWith' | 'endwith' | 'notin' | 'in'; declare type FilterOptions = { /** * Field name attribute for filter operation. */ property: string; /** * Filter value. */ value: string | number | boolean; /** * Filter operator, default: `eq`. */ operator: FilterOperator; /** * ORM custom data type, ex: 'ulid'. */ type?: string; /** * Optional logic operator to be used when combined with another filters. * If it is not defined, global filter logic will be used. */ logic?: FilterLogic; /** * Optional, indicate the `value` is an expression or field expression. */ expression?: boolean; }; declare type SortDirection = 'asc' | 'desc'; declare type SortOption = { /** * Field name attribute for sorting operation. */ property: string; /** * @deprecated * Use `property` instead. */ field?: string; /** * Sort direction, valid values: `asc`, `desc`. */ direction: SortDirection; }; declare type HttpMethod = 'get' | 'GET' | 'delete' | 'DELETE' | 'head' | 'HEAD' | 'options' | 'OPTIONS' | 'post' | 'POST' | 'put' | 'PUT' | 'patch' | 'PATCH' | 'purge' | 'PURGE'; declare type UrlMethod = { url: string; method: HttpMethod; }; declare type RestMethodOptions = { browse: HttpMethod; fetch: HttpMethod; save: HttpMethod; update: HttpMethod; delete: HttpMethod; }; declare type RestPropConfig = { [P in keyof RestMethodOptions]?: UrlMethod | string; }; declare type RestKey = Record; declare type RestConfig = Record; declare type CSRFConfig = { url?: string; tokenName?: string; dataField?: string; /** * @deprecated * Backward compatibility. */ responseField?: string; suffix?: boolean; }; declare type QueryParameter = { page?: number; limit?: number; filters?: FilterOptions[]; sorts?: SortOption[]; logic: FilterLogic; }; declare interface ObjectBase { /** * Cleaning up resources and dispose each property before destroying this object. */ destroy(): void; } declare interface IRestAdapter { get adapterInstance(): AxiosInstance; /** * Perform REST request to the remote server. * * @param config Request configuration * @param onRequest Promise function called before the request is made. * @param onSuccess Promise function called when the request is successful. * @param onFailure Promise function called when the request is failed. */ request(config: AxiosRequestConfig, onRequest: () => boolean, onSuccess: (response: AxiosResponse) => void, onFailure: (error: AxiosError) => void): Promise; /** * Get REST request methods options. */ requestMethods(): RestMethodOptions; } /** * Class RestProxyAdapter which is used to load data from the remote server. * * @author Ahmad Fajar * @since 20/07/2018 modified: 30/04/2026 17:39 */ declare class RestProxyAdapter implements IRestAdapter { private readonly _adapter; private readonly _httpMethods; /** * Check if axios plugin already installed and defined not. * * @param appConfig AppConfig or Axios adapter instance * @throws Error If axios doesn't exist */ static checkAxios(appConfig: AppConfig | AxiosInstance): void; /** * Check if Rest URL already defined or not. * * @param restUrl The Rest URL to check * @throws URIError If Rest Url is not defined */ static checkRestUrl(restUrl: TRecord): void; /** * Log error response to the console. * * @param error The axios error object. */ static warnResponseError(error: AxiosError): void; /** * Default REST request method options. Do not override this property. * * @returns REST method options */ static get defaultHttpMethods(): RestMethodOptions; /** * Class constructor. * * @param adapter Axios adapter instance * @param httpMethods Custom HTTP methods to override the default methods */ constructor(adapter?: AxiosInstance | null, httpMethods?: RestKey); get adapterInstance(): AxiosInstance; /** * Perform REST request to the server. * * @param config Request configuration * @param onRequest Promise function called before the request is made. * @param onSuccess Promise function called when the request was successful. * @param onFailure Promise function called when the request was failed. * @returns Promise interface instance */ request(config: AxiosRequestConfig, onRequest: () => boolean, onSuccess: (response: AxiosResponse) => void, onFailure: (error: AxiosError) => void): Promise; /** * Get REST request methods options. * * @returns REST request method options */ requestMethods(): RestMethodOptions & RestKey; } declare type ModelConfig = { schema: TRecord; proxy: RestPropConfig; csrfConfig?: CSRFConfig; }; declare type ModelState = { loading: boolean; updating: boolean; deleting: boolean; hasError: boolean; }; declare type PlainModel = { [P in keyof T]: T[P]; } & { [key: string]: unknown; }; declare interface DataModel extends ObjectBase { [key: string]: unknown; /** * Returns the reactive state of the DataModel. */ readonly state: Readonly; /** * Get/Override CSRF configuration in the form `{key: value}`, where the keys are: * `url`, `tokenName`, `dataField`, `suffix`. * * For backward compatibility you can override this function * as needed on the inheritance class or put it on the constructor * of the inheritance class or when instantiate the model. * * @example * return { * 'url' : '/api/token/{name}', * 'tokenName' : 'token_name', * 'dataField' : 'token', * 'suffix' : false * } */ readonly csrfConfig: Readonly | undefined; /** * Get REST proxy adapter which is used to work with remote service. */ readonly proxy: IRestAdapter; /** * Get/Set REST URL configuration in the form `{key: url}`, * where the keys are: `save`, `fetch`, `delete`, `update`. * * For backward compatibility you can override this function * as needed on the inheritance class or put it on the constructor * of the inheritance class or when instantiate the model. * * @example * return { * 'save' : '/api/user/create', * 'fetch' : '/api/user/{id}', * 'update': '/api/user/{id}/save', * 'delete': '/api/user/{id}/delete' * } */ get restUrl(): RestConfig; set restUrl(option: RestConfig); /** * Readonly data Model state, whether it is still loading data or not. */ readonly loading: boolean; /** * Readonly data Model state, whether it is still in the process of * saving/updating data to the remote server or not. */ readonly updating: boolean; /** * Readonly data Model state, whether it is still in the process of deleting * data from the remote server or not. */ readonly deleting: boolean; /** * Readonly data Model state, whether there was an error when * loading/saving/deleting data or not. */ readonly hasError: boolean; /** * Assign new value to an existing field name. * * @param field The field name * @param newValue The new value */ assignValue(field: string, newValue: unknown): void; /** * Assign new values to some existing fields. * * This method checked the schema definition when constructing the object, * and only fields that exists on the schema will get assign new value. * * @param sources Object with format key-value pairs */ assignValues(sources: TRecord): void; /** * Perform delete record that already exists on the remote service via REST API. */ delete(): Promise; /** * Perform fetch or read record from remote service via REST API. * * @param id The item ID */ fetch(id?: Numberish): Promise; /** * Freeze this data model instance, makes it Readonly and prevents any modification. */ freeze(): Readonly>; /** * Get a field value. * * @param key The field name. */ get(key: keyof T): unknown; get(key: string): unknown; /** * Define or sets a field with new value. * If the field doesn't exist, then it will be appended. * * @param key The field name. * @param value The field value. * @throws Error If this data model is frozen. */ set(key: keyof T, value: unknown): void; set(key: string, value: unknown): void; /** * Get all the field names. */ getFields(): IterableIterator; /** * Returns the ID field name for this data model. */ readonly idProperty: string; /** * Get ID field name for this data model. (for backward compatibility) * * @deprecated */ getIdProperty(): string; /** * Perform custom HTTP request to the remote service via REST API. * * @param restKey The key from restUrl property * @param method Any valid HTTP method, likes: `get`, `post`, `delete`, `put`, `patch`. * The default is `get`. * @param params Parameters to append when invoke rest request * @param data Data to append when invoke rest request * @param successCb Promise function to be called when the request is successful * @param errorCb Promise function to be called when the request is failed */ request(restKey: keyof RestMethodOptions, method?: HttpMethod | null, params?: TRecord | null, data?: TRecord | null, successCb?: ResponseCallbackFn, errorCb?: ResponseErrorCallbackFn): Promise; /** * Reset all fields value to their default. */ reset(): void; /** * Reset this model state back to their initial states, such as `loading`, etc. */ resetState(): void; /** * Persist new record to the remote service via REST API. */ save(): Promise; /** * Seal this data model instance, preventing new properties from being added to it * and marking all existing properties as non-configurable. * * Values of present properties can still be changed as long as they are writable. */ seal(): DataModel; /** * Convert field attributes that exists in the schema definition into a JavaScript plain object. * * The result of this method is used on REST method like: {@link save } and {@link update }. * * This method can be overridden on inherited classes to produce the desired DTO. */ toObject(): TRecord; /** * Update and persist record that already exists on the remote service via REST API. */ update(): Promise; /** * Event triggered after data was fetched from the remote server. * This method can be overridden on inherited classes. * * @param data The response data */ onAfterFetch?(data: TRecord): void; } declare type TBsModel = DataModel & { [P in keyof T]: T[P]; }; /** * Data Model class for working with entity object and remote API. * * @example * const model1 = new BsModel({ * uid: null, * username: null, * displayName: null, * email: null, * phoneNumber: null, * enabled: true, * password: null * }, adapter, 'uid'); * * const model2 = new BsModel({ * schema: { * uid: null, * username: null, * displayName: null, * email: null, * phoneNumber: null, * enabled: true, * password: null * }, * proxy: { * save: {url: './api/users', method: 'post'}, * update: {url: './api/users', method: 'patch'}, * delete: {url: './api/users', method: 'delete'}, * fetch: './api/users/{id}', * }, * csrfConfig: { * url: '/api/token/{name}', * tokenName: 'token_name', * dataField: 'value', * suffix: false, * }, * }, adapter, 'uid'); * * @author Ahmad Fajar * @since 09/07/2018 modified: 01/05/2026 14:38 */ declare class BsModel implements DataModel { private readonly _idProperty; private readonly _dataProperty; private readonly _csrfConfig; private readonly _data; private readonly _proxy; private _restUrl; private _schema; protected _state: Reactive; state: Readonly; [key: string]: unknown; /** * Construct new {@link BsModel} object instance. * * @param schema The data model schema * @param adapter Axios adapter instance * @param idProperty Data model ID field name * @param dataProperty REST response data property * * @example * const model1 = new BsModel({ * uid: null, * username: null, * displayName: null, * email: null, * phoneNumber: null, * enabled: true, * password: null * }, adapter, 'uid'); * * const model2 = new BsModel({ * schema: { * uid: null, * username: null, * displayName: null, * email: null, * phoneNumber: null, * enabled: true, * password: null * }, * proxy: { * save: {url: './api/users', method: 'post'}, * update: {url: './api/users', method: 'patch'}, * delete: {url: './api/users', method: 'delete'}, * fetch: './api/users/{id}', * }, * csrfConfig: { * url: '/api/token/{name}', * tokenName: 'token_name', * dataField: 'value', * suffix: false, * }, * }, adapter, 'uid'); */ constructor(schema: ModelConfig | TRecord, adapter?: AxiosInstance | null, idProperty?: string, dataProperty?: string); onAfterFetch?(_data: TRecord): void; private _initSchema; /** * Get the class name of this instance. */ get $_class(): string; /** * Get/Override CSRF configuration in the form `{key: value}`, where the keys are: * `url`, `tokenName`, `dataField`, `suffix`. * * @example * return { * 'url' : '/api/token/{name}', * 'tokenName' : 'token_name', * 'dataField' : 'token', * 'suffix' : false * } */ get csrfConfig(): Readonly | undefined; get proxy(): IRestAdapter; /** * Get/Set REST URL configuration in the form `{key: url}`, * where the keys are: `save`, `fetch`, `delete`, `update`. * * For backward compatibility you can override this function * as needed on the inheritance class or put it on the constructor * of the inheritance class or when instantiate the model. * * @example * return { * 'save' : '/api/user/create', * 'fetch' : '/api/user/{id}', * 'update': '/api/user/{id}/save', * 'delete': '/api/user/{id}/delete' * } */ get restUrl(): RestConfig; set restUrl(option: RestConfig); get loading(): boolean; get updating(): boolean; get deleting(): boolean; get hasError(): boolean; destroy(): void; assignValue(field: string, newValue: unknown): void; assignValues(sources: TRecord): void; delete(): Promise; fetch(id?: string | number): Promise; get(key: keyof T | string): unknown; set(key: keyof T | string, value: unknown): void; getFields(): IterableIterator; get idProperty(): string; /** * @deprecated */ getIdProperty(): string; request(restKey: keyof RestMethodOptions, method?: HttpMethod | null, params?: TRecord | null, data?: TRecord | null, successCb?: ResponseCallbackFn, errorCb?: ResponseErrorCallbackFn): Promise; reset(): void; resetState(): void; freeze(): Readonly>; seal(): DataModel; private _prepareSaveOrUpdate; save(): Promise; update(): Promise; toObject(): TRecord; /** * Assign data from the remote source to this model. * * @param response A response object */ protected _assignFromResponse(response: AxiosResponse): void; /** * @returns TRUE if this data model is not in delete state. */ protected _checkBeforeDelete(): boolean; /** * @returns TRUE if this data model is not in loading state. */ protected _checkBeforeLoading(): boolean; /** * @returns TRUE if this data model is not in the process of * saving its data to the remote source */ protected _checkBeforeSave(): boolean; /** * A callback when delete request is failed. * * @param error The error object */ protected _onDeleteFailure(error: AxiosError): void; /** * A callback when delete request is successful. */ protected _onDeleteSuccess(): void; /** * A callback when remote data is failed to load. * * @param error The error object */ protected _onLoadingFailure(error: AxiosError): void; /** * A callback when remote data is successfully loaded. * * @param response A response object */ protected _onLoadingSuccess(response: AxiosResponse): void; /** * A callback when saving data to the remote source is failed. * * @param error The error object */ protected _onSaveFailure(error: AxiosError): void; /** * A callback when data is successfully saved to the remote source. * * @param response A response object */ protected _onSaveSuccess(response: AxiosResponse): void; /** * Make http request and inject CSRF Token to the headers. * * @param config Request configuration * @param onRequest Callback function before the request is made * @param onSuccess Callback function when the request was successful * @param onFailure Callback when the request failed * @param suffix Suffix to be appended to the token-name * @returns Promise interface */ protected _requestWithToken(config: AxiosRequestConfig, onRequest: () => boolean, onSuccess: (response: AxiosResponse) => void, onFailure: (error: AxiosError) => void, suffix?: string): Promise; /** * Update request configuration. * * @param config Request configuration to be updated * @param identifier The value to be included in the configuration * @param url API URL * @param method Request method: delete, fetch, save, update */ private _updateRequestConfig; } declare type DataStoreConfig = TRecord & { idProperty?: string; dataProperty?: string; totalProperty?: string; pageSize?: number; remoteFilter?: boolean; remotePaging?: boolean; remoteSort?: boolean; restProxy?: RestPropConfig; csrfConfig?: CSRFConfig; filterLogic?: FilterLogic; filters?: FilterOptions[]; sortOptions?: SortOption[]; }; declare type DataStoreState = ModelState & { length: number; totalCount: number; currentPage: number; }; declare type ListenerFn = (arg: T) => void; declare type LoadedCallbackFn = (data: TBsModel[]) => void; declare type ResponseCallbackFn = (response: AxiosResponse) => void; declare type ResponseErrorCallbackFn = (error: AxiosError) => void; declare type ResponseLike = (TBsModel | PlainModel)[] | AxiosResponse; /** * Class AbstractStore is superclass of {@link BsArrayStore}, and {@link BsStore}. * It's never used directly, but offers a set of methods used by those subclasses. * * @author Ahmad Fajar * @since 15/03/2019 modified: 30/04/2026 09:19 */ declare abstract class AbstractStore implements ObjectBase { private _eventMap; protected _config: DataStoreConfig; protected _filters: FilterOptions[]; protected _filteredItems: (TBsModel | PlainModel)[]; protected _items: (TBsModel | PlainModel)[]; protected _proxy: IRestAdapter | undefined; protected _state: Reactive; /** * Returns the reactive state of the DataStore. */ storeState: Readonly>; /** * Check if the given item is a data model or not. * * @param item The item to check * @returns TRUE if the given item is a data model otherwise FALSE */ static isModel

(item: unknown): item is DataModel

; static isCandidateForFilterOption(item: TRecord): item is FilterOptions; static isCandidateForSortOption(item: TRecord): item is SortOption; /** * Construct new {@link AbstractStore} object instance. * * @param config The configuration properties */ protected constructor(config?: DataStoreConfig); /** * Get the class name of this instance. */ get $_class(): string; destroy(): void; /** * Clear all data items in the local storage and reset data store state. */ clear(): void; /** * @deprecated * Use `clear` instead. */ clearData(): void; /** * Readonly data Model state, whether it is still loading data or not. */ get loading(): boolean; /** * Readonly data Model state, whether it is still in the process of * saving/updating data to the remote server or not. */ get updating(): boolean; /** * Readonly data Model state, whether it is still in the process of deleting * data from the remote server or not. */ get deleting(): boolean; /** * Readonly data Model state, whether there was an error when * loading/saving/deleting data or not. */ get hasError(): boolean; /** * Returns the axios plugin adapter. */ get adapterInstance(): AxiosInstance | undefined; /** * Get REST proxy adapter which is used to work with remote service. */ get proxy(): IRestAdapter | undefined; /** * Get REST URL configuration in the form `{key: url}`, * where the keys are: `save`, `fetch`, `delete`, `update`. * * For backward compatibility you can override this function * as needed on the inheritance class or put it on the constructor * of the inheritance class or when instantiate the model. * * @example * return { * 'save' : '/api/user/create', * 'fetch' : '/api/user/{id}', * 'update': '/api/user/{id}/save', * 'delete': '/api/user/{id}/delete' * }; * * // This is an example of the returns data */ get restUrl(): RestConfig | undefined; set restUrl(option: RestConfig); /** * Returns active page number (base-1 index). */ get currentPage(): number; /** * Get/Set the number of items within a page. */ get pageSize(): number; set pageSize(value: number); /** * Returns the number of items on the active page. */ get length(): number; /** * Returns total number of items in the Store's dataset. (readonly) */ get totalCount(): number; /** * Returns total number of pages. */ get totalPages(): number; /** * Get/Set the default filters. */ get defaultFilters(): FilterOptions[]; set defaultFilters(values: FilterOptions[] | FilterOptions); /** * Get/Set the collection of filters to be used. */ get filters(): FilterOptions[]; set filters(newFilters: FilterOptions[] | FilterOptions); /** * Register event listener. * * @param event The event name, valid values are: `error`, and `loaded`. * @param fn The event callback function. */ addListener(event: string, fn: ListenerFn): void; /** * Shortcut function to register `error` event listener. * * @param fn Callback function when error occurred. */ onError(fn: ResponseErrorCallbackFn): void; /** * Shortcut function to register `loaded` event listener. * * @param fn Callback function when data is successfully loaded to this store dataset. */ onLoaded(fn: LoadedCallbackFn): void; /** * Add a filter to the Store. * * @param field The field name to which the filter will be applied. * @param value The filter value * @param operator Filter operator to be used, valid values: `eq`, `neq`, `gt`, `gte`, * `lt`, `lte`, `in`, `notin`, `startwith`, `endwith`, `contains`, `fts` * @param type Optional, ORM custom data type * @param logic Optional, logic to be used when mixing two or more filters. */ addFilter(field: string, value: string | number | boolean, operator?: FilterOperator, type?: string, logic?: FilterLogic): this; /** * Replace old filters and apply new filters to the Store dataset. * * @param newFilters The filters to apply * @param includeDefault Include default filters or not */ setFilters(newFilters: FilterOptions[] | FilterOptions, includeDefault?: boolean): this; /** * Define the filter logic to be used when filtering the Store’s dataset. * * @param logic The filter logic, valid values: 'AND', 'OR' */ setFilterLogic(logic: FilterLogic): this; /** * Get/Set the sorter's object collection to be used * when sorting the Store's dataset. */ get sorters(): SortOption[]; set sorters(sortOptions: SortOption[] | SortOption); /** * Reset this data store state back to its initial states, like `loading`, etc. */ resetState(): void; /** * Finds the first matching item in the local dataset by a specific field value. * * @param property The field name to test * @param value The value to match * @param startIndex The index to start searching at */ find(property: string, value: unknown, startIndex?: number): TBsModel | PlainModel | undefined; /** * Finds the first matching item in the local dataset by function's predicate. * If the predicate returns `true`, it is considered a match. * * @param predicate Function to execute on each value in the array * @returns The item of the first element in the array that satisfies * the provided testing function. Otherwise, `undefined` is returned. */ findBy(predicate: (value: TBsModel | PlainModel, index: number) => boolean): TBsModel | PlainModel | undefined; /** * Finds the index of the first matching Item in the local dataset by a specific field value. * * @param property The field name to test * @param value The value to match * @param startIndex The index to start searching at * @returns The index of first match element, otherwise -1 */ findIndex(property: string, value: unknown, startIndex?: number): number; /** * Filter the dataset locally and returns new array with * all elements that pass the test. */ localFilter(): (TBsModel | PlainModel)[]; /** * Sorts the dataset locally and returns new sorted dataset. */ localSort(): (TBsModel | PlainModel)[]; /** * Check if the data in the local dataset is empty or not. */ isEmpty(): boolean; /** * Sets the current active page. * * @param value The new page number, based-1 index. */ page(value: number): AbstractStore; /** * Marks data Store to load the previous page. */ previousPage(): AbstractStore; /** * Marks data Store to load the next page. */ nextPage(): AbstractStore; /** * Check if the given item is a DataModel or not. * * @param item The item to be checked */ isCandidateForModel(item: TRecord): item is TBsModel | PlainModel; /** * Removes the specified item(s) from the internal dataset. * * @param items Model instance or array of model instances to be removed */ remove

| PlainModel>(items: P | P[]): void; /** * Removes the model instance(s) at the given index from the internal dataset. * * @param index Starting index position * @param count Number of items to delete */ removeAt(index: number, count?: number): void; /** * Set the number of items within a page. * * @param value Number of items within a page */ setPageSize(value: number): this; /** * Set sorter's criteria collection. * * @param sortOptions One or more sorting method criteria(s). */ setSorters(sortOptions: SortOption[] | SortOption): this; /** * Create an array of FilterOption criteria. * * @param values An array of filter options configuration. */ createFilters(values: FilterOptions | FilterOptions[]): FilterOptions[]; /** * Create an array of SortOption criteria. * * @param property The field name to sort or sort method criteria. * @param direction The sort direction. * @param replace Replace existing sort criteria or not. */ createSorters(property: string | string[] | SortOption | SortOption[], direction?: SortDirection, replace?: boolean): SortOption[]; /** * Create new DataModel from the given object. * * @param item The data to convert */ createModel

>(item: P): TBsModel; /** * Get current query parameter's configuration. */ queryParams(): QueryParameter; /** * Load data from the remote server or from the given record(s) and * replace internal dataset with the new dataset. * * @param data The record(s) to be assigned */ abstract load(data?: unknown): Promise>; /** * Returns dataset from the active page. * * If a filter or sorter has been applied before, * then the returned dataset will also be affected by it. */ abstract get dataItems(): (TBsModel | PlainModel)[]; /** * Append an item to the local dataset. * * @param item The Data to append to the dataset * @param force Force adds even if the data supplied * is not suitable for the Data Model * @param silent Append data silently and doesn't trigger length counting */ protected _append

>(item: P, force?: boolean, silent?: boolean): void; /** * Assign data to the local dataset and replace the old dataset. * * @param source A record or collection of records to be assigned * @param silent Append data silently and doesn't trigger data conversion */ protected _assignData(source: unknown, silent?: boolean): void; /** * @returns TRUE if this data store is not in loading state. */ protected _checkBeforeLoading(): boolean; /** * Callback function when error loading the dataset from the remote service. * * @param error The error object */ protected _onLoadingFailure(error: AxiosError): void; /** * Callback function when success loading the dataset from the remote service. */ protected _onLoadingSuccess(): void; protected _fireEvent(event: string, arg: T): void; } declare interface IArrayStore extends AbstractStore { /** * Returns dataset from the active page. * * If a filter or sorter has been applied before, * then the returned dataset will also be affected by it. */ get dataItems(): TBsModel[]; /** * Calculate means or average value based on the given field. * * @param field The field name of the dataset to calculate */ aggregateAvg(field: string): number; /** * Count number of items in the internal dataset specified by the given criteria. * * @param field The grouping field name criteria * @param value The grouping value criteria */ aggregateCountBy(field: string, value: unknown): number; /** * Calculate the SUM or total value based on the given field. * * @param field The field name to be used when calculating value */ aggregateSum(field: string): number; /** * Append an item to the internal dataset and sorted if needed. * * @param item Data to append to the Store * @param sorted Sort dataset after appended */ append

>(item: P, sorted?: boolean): void; /** * Replace the dataset with new data. * * @param data The new data to be assigned * @param silent Append the data silently and don't trigger data transformer */ assignData(data: unknown, silent?: boolean): void; /** * Load and replace internal dataset with the given data. * * @param data The new data to replace the internal dataset. */ load(data?: unknown): Promise[]>; /** * Sorts the internal dataset with the given criteria and returns * the reference of the internal dataset. * * @param options The field for sorting or `TSortOption` objects * @param direction The sort direction * @returns The sorted dataset. * * @example * // sort by a single field * const results = await myStore.sort('myField', 'asc'); * * // sorting by multiple fields * const results = await myStore.sort([ * {property: 'age', direction: 'desc'}, * {property: 'name', direction: 'asc'} * ]); */ sort(options: string | string[] | SortOption | SortOption[], direction?: SortDirection): Promise[]>; } /** * Data store class to work with collection of entity objects locally. * * @example * const myStore = new BsArrayStore( * [ * {id: 1, name: 'Sandra Adams'}, * {id: 2, name: 'Ali Connors'}, * {id: 3, name: 'Trevor Hansen'}, * {id: 4, name: 'Tucker Smith'}, * {id: 5, name: 'Britta Holt'}, * {id: 6, name: 'Jane Smith'}, * {id: 7, name: 'John Smith'}, * {id: 8, name: 'Sandra Williams'} * ], { * idProperty: 'id' * } * ); * * @author Ahmad Fajar * @since 13/03/2019 modified: 30/04/2026 09:29 */ declare class BsArrayStore extends AbstractStore implements IArrayStore { /** * Construct new {@link BsArrayStore} object instance. * * @param data Collection of records to be assigned * @param config The configuration properties * * @example * const myStore = new BsArrayStore( * [ * {id: 1, name: 'Sandra Adams'}, * {id: 2, name: 'Ali Connors'}, * {id: 3, name: 'Trevor Hansen'}, * {id: 4, name: 'Tucker Smith'}, * {id: 5, name: 'Britta Holt'}, * {id: 6, name: 'Jane Smith'}, * {id: 7, name: 'John Smith'}, * {id: 8, name: 'Sandra Williams'} * ], { * idProperty: 'id' * } * ); */ constructor(data: unknown[], config?: DataStoreConfig); get dataItems(): TBsModel[]; aggregateAvg(field: string): number; aggregateCountBy(field: string, value: unknown): number; aggregateSum(field: string): number; append

>(item: P, sorted?: boolean): void; assignData(data: unknown, silent?: boolean): void; load(data?: unknown): Promise[]>; sort(options: string | string[] | SortOption | SortOption[], direction?: SortDirection): Promise[]>; } declare type MessageResponse = { success: boolean; message: string; }; declare interface IBsStore extends AbstractStore { /** * Returns dataset from the active page. * * If a filter or sorter has been applied before, * then the returned dataset will also be affected by it. */ readonly dataItems: TBsModel[]; /** * Check if the data Store is using server filtering or local filtering. */ get remoteFilter(): boolean; /** * Enable or disable data Store server filtering. * * @param {boolean} value If TRUE then using local filtering and FALSE otherwise */ set remoteFilter(value: boolean); /** * Check if the data Store is using server paging or local paging. */ get remotePaging(): boolean; /** * Enable or disable data Store server paging. * * @param value If TRUE then using server paging and FALSE otherwise */ set remotePaging(value: boolean); /** * Check if the Store is using server sorting or local sorting. */ get remoteSort(): boolean; /** * Enable or disable data Store server sorting. * * @param value If TRUE then using server sorting and FALSE otherwise */ set remoteSort(value: boolean); /** * Calculate means or average value based on the given field. * * @param field The field name of the dataset to calculate. */ aggregateAvg(field: string): number; /** * Count number of items in the internal dataset specified by the given criteria. * * @param field The grouping field name criteria. * @param value The grouping value criteria. */ aggregateCountBy(field: string, value: unknown): number; /** * Calculate the SUM or total value based on the given field. * * @param field The field name to be used when calculating value. */ aggregateSum(field: string): number; /** * Append an item to the internal dataset and also save the item as a new record to the * remote server whenever possible. The item can be saved to the remote server, * if `restUrl` property contains a `save` key. * * @param item Data to append to the internal dataset * @see {@link restUrl} property */ append(item: TRecord): void; /** * Replace internal dataset with new data. The proses only affected the internal dataset * and nothing is sent to the remote service. * * @param data The new data to be assigned. * @param silent Append the data silently and don't trigger data transformer. */ assignData(data: unknown, silent?: boolean): void; /** * Delete specific item from internal dataset as well as from remote service whenever possible. * The item can be deleted from the remote service, if `restUrl` property contains a `delete` key. * * @param item Data Model instance to be removed * @see {@link restUrl} property */ delete

>(item: P): Promise; /** * Delete specific items from internal dataset as well as from remote * service whenever possible. The items can be deleted from the remote * service, if `restUrl` property contains a `delete` key. * * @param items Collection of data Model instances to be removed * @see {@link restUrl} property */ deletes

>(items: P[]): Promise; /** * Fetch single item from the remote service via REST API and * replace internal dataset with the one comes from the remote service. * * @param id The item ID to fetch */ fetch(id: string | number): Promise; /** * Load data from the remote server or assign new data directly. * The internal dataset will be replaced by the loaded data. * * @param data The new data to replace the internal dataset */ load(data?: unknown): Promise[] | AxiosResponse>; /** * Load data from the remote server and assign query parameters and configuration. * * @deprecated * Use `load` instead. */ query(): Promise[] | AxiosResponse>; /** * Sorts the internal dataset with the given criteria and returns the reference * of the internal dataset. This method depends on `remoteSort` property. * * @example * // sort by a single field * const results = await myStore.sort('myField', 'asc'); * * // sorting by multiple fields * const results = await myStore.sort([ * {property: 'age', direction: 'desc'}, * {property: 'name', direction: 'asc'} * ]); * * @param options The field name to sort or sort method criteria. * @param direction The sort direction. */ sort(options: string | string[] | SortOption | SortOption[], direction?: SortDirection): Promise[]>; } /** * Data Store class to work with collection of entity objects and remote API. * * @example * const dsStore = new BsStore({ * idProperty: 'id', * dataProperty: 'data', * totalProperty: 'total', * pageSize: 15, * restProxy: { * browse: '/api/users', * delete: {url: './api/users', method: 'delete'}, * save: {url: './api/users', method: 'post'}, * update: {url: './api/users', method: 'patch'} * }, * csrfConfig: { * url: '/api/token/{name}', * tokenName: 'token_name', * dataField: 'value', * suffix: false, * }, * }); * * @author Ahmad Fajar * @since 20/07/2018 modified: 30/04/2026 17:17 */ declare class BsStore extends AbstractStore implements IBsStore { /** * Construct new {@link BsStore} object instance. * * @param config The configuration properties * @param adapter Axios adapter instance * * @example * const dsStore = new BsStore({ * idProperty: 'id', * dataProperty: 'data', * totalProperty: 'total', * pageSize: 15, * restProxy: { * browse: '/api/users', * delete: {url: './api/users', method: 'delete'}, * save: {url: './api/users', method: 'post'}, * update: {url: './api/users', method: 'patch'} * }, * csrfConfig: { * url: '/api/token/{name}', * tokenName: 'token_name', * dataField: 'value', * suffix: false, * }, * }); */ constructor(config: DataStoreConfig, adapter?: AxiosInstance | null); get dataItems(): TBsModel[]; get remoteFilter(): boolean; set remoteFilter(value: boolean); get remotePaging(): boolean; set remotePaging(value: boolean); get remoteSort(): boolean; set remoteSort(value: boolean); aggregateAvg(field: string): number; aggregateCountBy(field: string, value: unknown): number; aggregateSum(field: string): number; /** * Append an item to the internal dataset and also save the item as a new record to the * remote server whenever possible. The item can be saved to the remote server, * if `restUrl` property contains a `save` key. * * @param item Data to append to the internal dataset * @see {@link restUrl} property */ append(item: TRecord): void; assignData(data: unknown, silent?: boolean): void; /** * Delete specific item from internal dataset as well as from remote service whenever possible. * The item can be deleted from the remote service, if `restUrl` property contains a `delete` key. * * @param item Data Model instance to be removed * @see {@link restUrl} property */ delete

>(item: P): Promise; /** * Delete specific items from internal dataset as well as from remote * service whenever possible. The items can be deleted from the remote * service, if `restUrl` property contains a `delete` key. * * @param items Collection of data Model instances to be removed * @see {@link restUrl} property */ deletes

>(items: P[]): Promise; fetch(id: string | number): Promise; load(data?: unknown): Promise[] | AxiosResponse>; query(): Promise[] | AxiosResponse>; sort(options: string | string[] | SortOption | SortOption[], direction?: SortDirection): Promise[]>; /** * Assign values from REST response's object. * * @param response Response object */ private _assignFromResponse; } declare interface IHttpService { /** * Send HTTP GET to the remote server. * * @param url API url * @param data The data to be sent * @param options Additional options * @returns Promise instance */ get(url: string, data?: TRecord, options?: RawAxiosRequestConfig): AxiosPromise; /** * Send HTTP PATCH to the remote server. * * @param url API url * @param data The data to be sent * @param options Additional options * @returns Promise instance */ patch(url: string, data: TRecord | FormData, options?: RawAxiosRequestConfig): AxiosPromise; /** * Send HTTP POST to the remote server. * * @param url API url * @param data The data to be sent * @param options Additional options * @returns Promise instance */ post(url: string, data: TRecord | FormData, options?: RawAxiosRequestConfig): AxiosPromise; /** * Send HTTP PUT to the remote server. * * @param url API url * @param data The data to be sent * @param options Additional options * @returns Promise instance */ put(url: string, data: TRecord | FormData, options?: RawAxiosRequestConfig): AxiosPromise; /** * Send HTTP DELETE to the remote server. * * @param url API url * @param data The data to be sent * @param options Additional options * @returns Promise instance */ delete(url: string, data?: TRecord, options?: RawAxiosRequestConfig): AxiosPromise; } declare const AxiosPlugin: ObjectPlugin; /** * Generate component's ID. * * @returns The generated ID */ declare function useGenerateId(): string; /** * Check whether it is using a mobile browser or not. * * @returns `true` if mobile browser is used otherwise `false`. */ declare function useMobileDevice(): boolean; /** * Simple function to render a VNode with custom slot. * If the custom slot doesn't exist or `undefined` * then the default `children` will be rendered. * * @param slots The slot instance * @param name The slot name * @param props VNode property, include slot identifier * @param children The default VNode children to replace the slot * @param slotArgs The argument for the given slot * @returns The rendered VNode. */ declare function useRenderSlot(slots: Slots, name: string, props?: Readonly, children?: VNodeArrayChildren | VNode, slotArgs?: TRecord): VNode; /** * Simple function to render a VNode with custom slot and wrap it with the given * `wrapperTag` and properties. If the custom slot doesn't exist or `undefined` then * the default `children` will be rendered inside the `wrapperTag`. * * @param slots The slot instance * @param name The slot name * @param key Fragment key identifier * @param wrapperProps The VNode wrapper properties * @param children The default VNode children to replace the slot * @param wrapperTag Valid HTML tag name, default is `div` * @param slotArgs The argument for the given slot * @returns The rendered VNode. */ declare function useWrapSlot(slots: Slots, name: string, key: string, wrapperProps?: Readonly, children?: VNodeArrayChildren | VNode, wrapperTag?: string, slotArgs?: TRecord): VNode; /** * Simple function to render an HTML tag as VNode or render default slot and wrap * an HTML tag around it. * * @param tag Valid HTML tag name * @param slots The slot instance * @param classes Custom CSS classes to apply * @param styles Custom inline stylesheet to apply * @returns The rendered VNode. */ declare function useWrapSlotDefault(tag: string, slots?: Slots, classes?: TClassList, styles?: TRecord): VNode; /** * Simple function to render a VNode with custom slot and wrap it with the given * `wrapTag` and properties. The VNode will be rendered if the given `condition` is matched. * * @param slots The slot instance * @param name The slot name * @param condition The given condition * @param wrapProps The VNode wrapper properties * @param wrapTag Valid HTML tag name, default is `div` * @param slotArgs The argument for the given slot * @returns The rendered VNode. */ declare function useWrapSlotWithCondition(slots: Slots, name: string, condition: boolean, wrapProps?: Readonly, wrapTag?: string, slotArgs?: TRecord): VNode | undefined; /** * Simple function to render a Transition VNode. * * @param props The transition properties * @param children The child nodes * @param asBlock Render the Transition as block VNode. * @returns The rendered VNode. */ declare function useRenderTransition(props: Readonly | undefined, children: VNodeArrayChildren | VNode, asBlock?: boolean): VNode; /** * Get current active route if exists. * * @returns The current route location. */ declare function useCurrentRoute(): Ref | undefined; /** * Simple function to detect whether a device's screen is within allowable * maximum screen resolution. Returns `true` when the screen resolution is within * allowable resolution otherwise `false`. Available breakpoints are: * `xs`, `sm`, `md`, `lg`, and `xl`. * * @param breakpoint Allowable maximum screen resolution. * @returns TRUE when the screen resolution is within allowable resolution. */ declare function useBreakpointMax(breakpoint: TBreakpoint | number): boolean; /** * Simple function to detect whether a device's screen is within allowable * minimum screen resolution. Returns `true` when the screen resolution is within * allowable resolution otherwise `false`. Available breakpoints are: * `xs`, `sm`, `md`, `lg`, and `xl`. * * @param breakpoint Allowable minimum screen resolution. * @returns TRUE when the screen resolution is within allowable resolution. */ declare function useBreakpointMin(breakpoint: TBreakpoint | number): boolean; /** * Merge one or more CSS classes and prevents duplicate. * * @param args The CSS classes to be merged. */ declare function useMergeClass(...args: unknown[]): string[]; /** * Retrieve axios plugin instance. Must be called within component and after * it instantiate. For example, called within `onMounted` event. * * @returns Axios instance when the component instance is resolved. */ declare function useAxiosPlugin(): AxiosInstance | undefined; /** * Retrieve HTTP service plugin instance. Must be called within component and after * it instantiate. For example, called within `onMounted` event. * * @returns Axios instance when the component instance is resolved. */ declare function useHttpService(): IHttpService | undefined; /** * Shortcut to retrieve the VueMdb plugin instance. * * @returns The VueMdb plugin instance. */ declare function useVueMdbService(): TVueMdb | undefined; /** * Shortcut to retrieve NotificationProvider instance. * * @returns The notification provider instance. */ declare function useVueMdbNotification(): INotificationProvider | undefined; /** * Register event 'resizeListener' and utilize the ResizeObserver to monitor the event. * * @param target The target element. * @param fn The callback function. */ declare function useAddResizeListener(target: IBindingElement, fn: CallableFunction): void; /** * Un-register event 'resizeListener' and disconnect it from ResizeObserver. * * @param target The target element. * @param fn The callback function. */ declare function useRemoveResizeListener(target: IBindingElement, fn?: CallableFunction): void; declare type TFontAwesomeVariant = 'regular' | 'solid' | 'brands' | string; declare type TIconFlip = 'horizontal' | 'vertical' | 'both'; declare type TIconRotation = '90' | '180' | '270'; declare type TIconData = { name: string; icon: string; theme: string; variant?: string; data?: string; }; declare type TSizeProps = { /** * This component's height. */ height?: Numberish; /** * This component's width. */ width?: Numberish; }; declare type TSizeOptionProps = TSizeProps & { /** * Shortcut to create this component with equal height and width. */ size?: Numberish | TSizeProps; }; declare type TIconBaseProps = { /** * Android icon name with or without suffix. Valid suffixes are: `_outlined` , * `_rounded`, `_sharp`, `_filled`, `_outlined_filled`, `_rounded_filled`, * or `_sharp_filled`. If no suffix is given, then default (`outlined`) icon * variant will be used. * * Suffix `_filled` and `_outlined_filled` will result the same icon style variant. * And you can either use `*_filled` or sets property `filled` to `true` to * create an icon with fill style. * * @see [Google Material Symbol](https://fonts.google.com/icons?icon.set=Material+Symbols) for details. */ icon: string; /** * Use [Google Material Symbol](https://fonts.google.com/icons?icon.set=Material+Symbols) with fill style. */ filled?: boolean; /** * Apply **pulse** animation to the icon. */ pulse?: boolean; /** * Apply **spin** animation to the icon. */ spin?: boolean; /** * Flip the icon, valid values are: `horizontal`, `vertical`, `both`. */ flip?: TIconFlip; /** * Rotate the icon, valid values are: `90`, `180`, `270`. */ rotate?: TIconRotation; }; declare type TIconOptionProps = TSizeOptionProps & TIconBaseProps & { /** * Apply additional CSS class to the SVG. */ svgClass?: TClassList; }; declare type TSvgIconOptionProps = TSizeOptionProps & TIconBaseProps; declare type TFontawesomeIconOptionProps = TSizeOptionProps & { /** * Any valid font awesome icon name. * * @see [Font Awesome](https://fontawesome.com/search?ic=free-collection) for details. */ icon: string; /** * Font Awesome style variant, valid values are: `regular`, `solid`, `brands`. * Default is `solid`. */ variant?: TFontAwesomeVariant; /** * Font Awesome vendor version. Default is `7.2.0`. */ version?: string; /** * Apply **pulse** animation to the icon. */ pulse?: boolean; /** * Apply **spin** animation to the icon. */ spin?: boolean; /** * Flip the icon, valid values are: `horizontal`, `vertical`, `both`. */ flip?: TIconFlip; /** * Rotate the icon, valid values are: `90`, `180`, `270`. */ rotate?: TIconRotation; /** * Apply additional CSS class to the SVG. */ svgClass?: TClassList; }; declare type TSpinnerIconOptionProps = { /** * Sets the Icon color. * * Built-in colors are: `primary`, `secondary`, `success`, `warning`, `danger`, `info`, `default`. */ color?: TContextColor | string; /** * Sets the icon’s size in pixel. */ size?: Numberish; /** * Apply **pulse** animation to the icon. */ pulse?: boolean; /** * Apply **spin** animation to the icon. */ spin?: boolean; }; declare type TToggleIconOptionProps = { /** * The icon to display when `modelValue` property is `false` or `undefined`. * * Use android icon name with or without suffix. Valid suffixes are: `_outlined`, * `_rounded`, `_sharp`, `_filled`, `_outlined_filled`, `_rounded_filled`, or * `_sharp_filled`. If no suffix is given, then default (`outlined`) icon * variant will be used. * * Suffix `_filled` or `_outlined_filled` will result the same icon style variant. * And you can either use `*_filled` or sets the `filled` property to `true` to * create an icon with fill style. * * @see [Google Material Symbol](https://fonts.google.com/icons?icon.set=Material+Symbols) for details. */ icon: string; /** * The icon to display when `modelValue` property is `true`. * * Use android icon name with or without suffix. Valid suffixes are: `_outlined`, * `_rounded`, `_sharp`, `_filled`, `_outlined_filled`, `_rounded_filled`, or * `_sharp_filled`. If no suffix is given, then default (`outlined`) icon * variant will be used. * * Suffix `_filled` or `_outlined_filled` will result the same icon style variant. * And you can either use `*_filled` or sets the `filled` property to `true` to * create an icon with fill style. * * @see [Google Material Symbol](https://fonts.google.com/icons?icon.set=Material+Symbols) for details. */ toggleIcon: string; /** * Use [Google Material Symbol](https://fonts.google.com/icons?icon.set=Material+Symbols) with fill style. */ filled?: boolean; /** * Value monitored by `v-model` to maintain this component state. */ modelValue?: boolean; /** * The icon size in pixels. */ size?: Numberish; }; declare type TBsIcon = ComponentObjectPropsOptions; declare type TBsSvgIcon = ComponentObjectPropsOptions; declare type TBsSpinnerIcon = ComponentObjectPropsOptions; declare type TBsFontawesomeIcon = ComponentObjectPropsOptions; declare type TBsToggleIcon = ComponentObjectPropsOptions; declare const spinnerSvgData = "M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"; /** * Function to draw inline SVG XML directly. * * @param data The SVG XML string * @param width The desired {@link Element} width * @param height The desired {@link Element} height * @param clazz Optional CSS class name */ declare function useRenderSVG(data: string, width: Numberish, height: Numberish, clazz: unknown): VNode; declare class EventListener$1 { /** * Listen to DOM events during the bubble phase. * * @param target DOM element to register listener on. * @param eventName Event type, e.g. 'click' or 'mouseover'. * @param callback Callback function. * @param options Listener options. * @returns Object with a `remove` method. */ static listen(target: IHTMLElement, eventName: string, callback: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): IEventListenerResult | undefined; } declare type TPopoverPosition = 'top' | 'top-left' | 'top-right' | 'bottom' | 'bottom-left' | 'bottom-right' | 'left' | 'left-top' | 'left-bottom' | 'right' | 'right-top' | 'right-bottom'; declare type TPopupOptions = { /** * This Popover state: show or hide. */ open?: boolean; /** * Close the Popover when ESC key is pressed. */ escClose?: boolean; /** * Show backdrop overlay or not. */ overlay?: boolean; /** * Close the Popover when the backdrop overlay is clicked. */ overlayClickClose?: boolean; /** * The backdrop overlay color. * Must be a valid CSS color formatted string. */ overlayColor?: string; /** * The backdrop overlay opacity. */ overlayOpacity?: Numberish; }; declare type TPopoverOptionProps = TPopupOptions & { /** * Display Popover at a position that covers the activator element. */ cover?: boolean; /** * This Popover background color. * * @deprecated * Use unified global CSS variable instead. */ color?: string; /** * Popover display placement. */ placement?: TPopoverPosition; /** * Number of pixel to shift the Popover display position from the activator element. */ space?: Numberish; /** * Transition animation when displaying the Popover. This animation is effected by `placement` property. */ transition?: string; /** * HTML element or element ID which is used to activate and calculate this Popover display position. */ trigger?: Element | string | null; }; declare type TBsPopover = ComponentObjectPropsOptions; declare type TPopupItem = { target: ComponentInternalInstance; props: Readonly; active: Ref; }; declare const PopupManager: { items: TPopupItem[]; locked: boolean; allowScrolling(): void; preventScrolling(): void; findItem(instance: ComponentInternalInstance): number; add(instance: ComponentInternalInstance, props: Readonly, active: Ref): void; remove(instance: ComponentInternalInstance): void; closePopover(instance: ComponentInternalInstance | null, isActive: Ref, message: string): void; }; declare type TCacheInternal = { value: unknown; expiry: number; hits: number; }; declare type TRawCacheItem = { key: string; value: unknown; expiry: number; }; declare interface ICacheItem { /** * Returns this cache item key. */ getKey(): string; /** * Returns this cache item value. */ getValue(): unknown; /** * Update this cache item value. If the value is changed, * it needs to be saved to the cache manager. * * @param value The value to store */ setValue(value: unknown): void; /** * Returns this cache item hits counter. */ getHits(): number; /** * Check whether this cache item is expired or not. */ isExpired(): boolean; /** * Change this cache item expiry. * * @param value The timestamp since epoch */ setExpiry(value: number): void; /** * Returns this cache item expiry timestamp. */ expiredAt(): number; } declare class StorageProxy { private readonly _storage; constructor(); private hasSessionStorage; clear(): void; getItem(key: string): TCacheInternal | undefined; setItem(key: string, value: TCacheInternal): void; removeItem(key: string): void; get size(): number; } declare interface ICacheManager { /** * Remove all items in the cache storage. */ clear(): void; /** * Remove an item from the cache storage if exists. * * @param key The key to delete */ deleteItem(key: string): void; /** * Remove multiple items from the cache storage. * * @param keys The keys to delete */ deleteItems(keys: string[]): void; /** * Returns the cached item that represents the specified key. * * @param key The key to be used to return the corresponding cached item */ getItem(key: string): ICacheItem | undefined; /** * Get multiple items from the cache storage and each of them is representing a cached item. * * @param keys An indexed array of keys to be used to return the corresponding cached items */ getItems(keys: string[]): ICacheItem[]; /** * Confirms if the cache storage contains the specified cached item. * * @param key The key for which to check its existence. */ hasItem(key: string): boolean; /** * Persists an item to the cache storage immediately. * * @param item A data object to be cached */ save(item: TRawCacheItem | ICacheItem): void; /** * Returns the number of items stored in the cache. */ readonly size: number; } declare const CacheManager: { /** * Register cache internal storage. * @internal */ _cacheStorage: StorageProxy; /** * Create cache item. * @internal */ _createItem(key: string, value: unknown, expireAt?: Date | number, hits?: number): ICacheItem; /** * Remove all items in the cache storage. */ clear(): void; /** * Remove an item from the cache storage if exists. * * @param key The key to delete */ deleteItem(key: string): void; /** * Remove multiple items from the cache storage. * * @param keys The keys to delete */ deleteItems(keys: string[]): void; /** * Returns the cached item that represents the specified key. * * @param key The key to be used to return the corresponding cached item */ getItem(key: string): ICacheItem | undefined; /** * Get multiple items from the cache storage and each of them is representing a cached item. * * @param keys An indexed array of keys to be used to return the corresponding cached items */ getItems(keys: string[]): ICacheItem[]; /** * Confirms if the cache storage contains the specified cached item. * * @param key The key for which to check its existence. */ hasItem(key: string): boolean; /** * Persists an item to the cache storage immediately. * * @param item A data object to be cached */ save(item: TRawCacheItem | ICacheItem): void; /** * Returns the number of items stored in the cache. */ readonly size: number; }; /** * Hue, Saturation, Value and Alpha color values. */ declare type HSVA = { h: number; s: number; v: number; a: number; }; /** * Hue, Saturation, Lightness and Alpha color values. */ declare type HSLA = { h: number; s: number; l: number; a: number; }; /** * Lightness, Chroma, Hue and Alpha color values. */ declare type LCHA = { l: number; c: number; h: number; a: number; }; /** * Red, Green, Blue and Alpha color values. */ declare type RGBA = { r: number; g: number; b: number; a: number; }; /** * Convert HSL color space to HSV color space. * * @param color The HSLA color value. * @return The HSVA color value. */ declare function hslaToHsva(color: HSLA): HSVA; /** * Convert HSL color space to RGB color space. * * @param color The HSLA color value. * @return The RGBA color value. `Red`, `Green`, and `Blue` as number in range [0..255], * and `Alpha` as number in range [0..1]. */ declare function hslaToRgba(color: HSLA): RGBA; /** * Convert HSV color space to HSL color space. * * @param color The HSV color value. * @return The HSL color value. `Hue` as degrees [0..360], `Saturation` and `Lightness` as number in range [0..100]. */ declare function hsvaToHsla(color: HSVA): HSLA; /** * Convert HSV color space to RGB color space. * * @param color The HSVA color value. * @return The RGBA color value. * `Red`, `Green`, and `Blue` as number in range [0..255], * and `Alpha` as number in range [0..1]. */ declare function hsvaToRgba(color: HSVA): RGBA; /** * Convert CSS HEX color format to RGB color space. * * @param color The CSS HEX color value. * @return The RGBA color value. * `Red`, `Green`, and `Blue` as number in range [0..255], * and `Alpha` as number in range [0..1]. */ declare function hexToRgba(color: string): RGBA; /** * Convert RGB color space to HSL color space. * * @param color The RGBA color value * @return The HSL color value. * `Hue` as degrees [0..360], `Saturation` and `Lightness` as range [0..100]. */ declare function rgbaToHsla(color: RGBA): HSLA; /** * Convert RGB color space to HSV color space. * * @param color The RGBA color value. * @return The HSVA color value. */ declare function rgbaToHsva(color: RGBA): HSVA; /** * Convert OKLCH color space to RGB color space. * * @param color The OKLCH color value. * @return The RGBA color value. * `Red`, `Green`, and `Blue` as number in range [0..255], * and `Alpha` as number in range [0..1]. */ declare function oklchToRgba(color: LCHA): RGBA; /** * Convert RGB color space to OKLCH color space. * * @param color The RGBA color value. * @return The OKLCH color value. * `Lightness` and `Chroma` as number in range [0..1], `Hue` as degrees [0..360]. */ declare function rgbaToOklch(color: RGBA): LCHA; /** * Parse a string to RGBA color value. * * @param canvasCtx The canvas rendering context * @param source String representing a color. * @return The RGBA color value. * `Red`, `Green`, and `Blue` as number in range [0..255], * and `Alpha` as number in range [0..1]. */ declare function rgbaFromString(canvasCtx: CanvasRenderingContext2D, source: string): RGBA; /** * Convert RGB/RGBA color to CSS HEX color format. * * @param color The RGBA value. `Red`, `Green`, `Blue` as number in range [0..255], * and `Alpha` as number in range [0..1]. * @return CSS Hex color. */ declare function rgbaToHex(color: RGBA): string; /** * Convert RGB/RGBA color to string. * * @param color The RGBA value. `Red`, `Green`, `Blue` as number in range [0..255], * and `Alpha` as number in range [0..1]. * @return CSS color string. */ declare function rgbaToString(color: RGBA): string; /** * Convert HSL/HSLA color to string. * * @param color The HSLA value. `Hue` as degrees [0..360], `Saturation` * and `Lightness` as number in range [0..1]. * @return CSS color string. */ declare function hslaToString(color: HSLA): string; /** * Convert OKLCH color to string. * * @param color The OKLCH value. `Lightness`, `Chroma` as number in range [0..1] * and `Hue` as degrees [0..360]. * @return CSS color string. */ declare function oklchToString(color: LCHA): string; /** * Parse a string that represent `oklch` color formatted string. * * @param source The `oklch` color formatted string. * @return The OKLCH color value * `Lightness`, `Chroma` as number in range [0..1] and `Hue` as degrees [0..360]. */ declare function oklchFromString(source: string): LCHA; /** * Get Lightness level from `RGBA`, `HSLA` or `OKLCH` color object. * * @param color The `RGBA`, `HSLA` or `OKLCH` color value. * @return The Lightness level in range [1..100]. */ declare function lightnessLevel(color: RGBA | HSLA | LCHA): number; /** * Get brightness level from RGBA color. * * @param color The RGBA color value or HEX color formatted string. * @return The brightness level in range [1..255]. */ declare function brightnessLevel(color: string | RGBA): number; /** * Darken or lighten the input color. * * Use negative `lightness` value to darken the input color or otherwise * to lighten the input color. * * @param color The color to darken/lighten. * @param lightness The lightness level. * @return The color result in CSS HEX color format. */ declare function shadeColor(color: string | RGBA, lightness: number): string; type ColorUtils_HSLA = HSLA; type ColorUtils_HSVA = HSVA; type ColorUtils_LCHA = LCHA; type ColorUtils_RGBA = RGBA; declare const ColorUtils_brightnessLevel: typeof brightnessLevel; declare const ColorUtils_hexToRgba: typeof hexToRgba; declare const ColorUtils_hslaToHsva: typeof hslaToHsva; declare const ColorUtils_hslaToRgba: typeof hslaToRgba; declare const ColorUtils_hslaToString: typeof hslaToString; declare const ColorUtils_hsvaToHsla: typeof hsvaToHsla; declare const ColorUtils_hsvaToRgba: typeof hsvaToRgba; declare const ColorUtils_lightnessLevel: typeof lightnessLevel; declare const ColorUtils_oklchFromString: typeof oklchFromString; declare const ColorUtils_oklchToRgba: typeof oklchToRgba; declare const ColorUtils_oklchToString: typeof oklchToString; declare const ColorUtils_rgbaFromString: typeof rgbaFromString; declare const ColorUtils_rgbaToHex: typeof rgbaToHex; declare const ColorUtils_rgbaToHsla: typeof rgbaToHsla; declare const ColorUtils_rgbaToHsva: typeof rgbaToHsva; declare const ColorUtils_rgbaToOklch: typeof rgbaToOklch; declare const ColorUtils_rgbaToString: typeof rgbaToString; declare const ColorUtils_shadeColor: typeof shadeColor; declare namespace ColorUtils { export { ColorUtils_brightnessLevel as brightnessLevel, ColorUtils_hexToRgba as hexToRgba, ColorUtils_hslaToHsva as hslaToHsva, ColorUtils_hslaToRgba as hslaToRgba, ColorUtils_hslaToString as hslaToString, ColorUtils_hsvaToHsla as hsvaToHsla, ColorUtils_hsvaToRgba as hsvaToRgba, ColorUtils_lightnessLevel as lightnessLevel, ColorUtils_oklchFromString as oklchFromString, ColorUtils_oklchToRgba as oklchToRgba, ColorUtils_oklchToString as oklchToString, ColorUtils_rgbaFromString as rgbaFromString, ColorUtils_rgbaToHex as rgbaToHex, ColorUtils_rgbaToHsla as rgbaToHsla, ColorUtils_rgbaToHsva as rgbaToHsva, ColorUtils_rgbaToOklch as rgbaToOklch, ColorUtils_rgbaToString as rgbaToString, ColorUtils_shadeColor as shadeColor }; export type { ColorUtils_HSLA as HSLA, ColorUtils_HSVA as HSVA, ColorUtils_LCHA as LCHA, ColorUtils_RGBA as RGBA }; } /** * Class Helper with static functions. * * @author Ahmad Fajar * @since 05/07/2018, modified: 21/09/2025 18:30 */ declare class Helper { /** * Creates range of number. * * @param length Range length * @returns Array of numbers */ static createRange(length: number): number[]; /** * Defer or delay execution of a function. * * @param callback The function to execute * @param delay Number of delay in ms * @param args Optional arguments which are passed through the `callback` * @returns {number} The returned **timeoutID** is a positive integer value * which identifies the timer created by the call to **setTimeout()**. * This value can be passed to [clearTimeout]{@link https://developer.mozilla.org/en-US/docs/Web/API/clearTimeout} * to cancel the timeout. */ static defer(callback: CallableFunction, delay: number, ...args: unknown[]): number; /** * Get a value from an Object property. * * @param obj The object to check * @param path Array of field name * @param fallbackFn The fallback function * @returns The object property value */ static getNestedValue(obj: unknown, path: string[], fallbackFn?: CallableFunction): CallableFunction | never | unknown; /** * Get a value from an Object property. * * @param obj The object to evaluate * @param path The property name * @param fallbackFn The fallback function * @returns The object property value */ static getObjectValueByPath(obj: unknown, path: string, fallbackFn?: CallableFunction): unknown; /** * Check a value is empty or not. * * @param value The value to check * @param allowEmptyString Allow empty string or not * @returns TRUE if value is empty otherwise False */ static isEmpty(value: unknown, allowEmptyString?: boolean): value is null | undefined | [] | ''; /** * Check a value is an empty object or not. * * @param value The value to check * @returns TRUE if value is empty otherwise False */ static isEmptyObject(value: unknown): value is null | undefined; /** * Check the type of value is Array or not. NULL value is considered as not an Array. * * @param value The value to check * @returns TRUE if the given value is an Array otherwise FALSE */ static isArray(value: unknown): value is unknown[]; /** * Check the type of value is Function or not. NULL or UNDEFINED is considered as not a Function. * * @param value The value to check * @returns TRUE if the given value is a Function otherwise FALSE */ static isFunction(value: unknown): value is CallableFunction; /** * Check the type of value, whether it is a number or not. * * @param value The value to check * @returns TRUE if the given value is a Number otherwise FALSE */ static isNumber(value: unknown): value is number; /** * Check the type of value is Object or not. NULL value is considered as not an object. * * @param value The value to check * @returns TRUE if the given value is an object otherwise FALSE */ static isObject(value: unknown): value is object; /** * Check the type of value, whether it is primitive type or not. * * @param value The value to check * @returns TRUE if the data type is primitive otherwise False */ static isPrimitive(value: unknown): value is string | number | boolean | symbol; /** * Check the type of value, whether it is a string or not. * * @param value The value to check * @returns TRUE if the given value is a String otherwise FALSE */ static isString(value: unknown): value is string; /** * Round floating point value to the nearest decimal. * * @param value The floating point value to be rounded * @param fractionDigit Maximum fraction/decimal digit * @returns The rounded value */ static roundNumber(value: number, fractionDigit: number): number; static parseFloatLoose(value: string): number | undefined; static parseIntLoose(value: string): number | undefined; /** * Convert Number or String to any valid CSS unit size. * * @param value The value to convert * @param unit The dimension to add * @returns CSS inline dimension */ static cssUnit(value: string | number | undefined | null, unit?: string | null): string | undefined; /** * Sort an array of object. * * @param items Array of object * @param key Field name or key to sort * @param isDescending Sort desc or asc * @returns The sorted array */ static sortArrayObj(items: Array, key: string, isDescending?: boolean): object[]; /** * Generate simple/random UID or standard UUID v4. * * @param standard If `true` then generate standard UUID v4 otherwise generate random UID * @returns UUID v4 or random UID */ static uuid(standard?: boolean): string; } /** * Pads the input string with a given string (possibly repeated) so that the resulting string * reaches a given length. The padding is applied from the start (left) of the input string. * * @param str The string to Pad. * @param maxLength The length of the resulting string once the current string has * been padded. If this parameter is smaller than the current * string's length, the current string will be returned as it is. * @param fillString The string to pad the current string with. * If this string is too long, it will be truncated and the left-most * part will be applied. The default value for this parameter is " " (U+0020). * @returns New String that has been padded on the left side. */ declare function padLeft(str: string | number, maxLength?: number, fillString?: string): string; /** * Pads the input string with a given string (possibly repeated) so that the resulting string * reaches a given length. The padding is applied from the end (right) of the input string. * * @param str The string to Pad. * @param maxLength The length of the resulting string once the current string has * been padded. If this parameter is smaller than the current * string's length, the current string will be returned as it is. * @param fillString The string to pad the current string with. * If this string is too long, it will be truncated and the left-most * part will be applied. The default value for this parameter is " " (U+0020). * @returns New String that has been padded on the right side. */ declare function padRight(str: string | number, maxLength?: number, fillString?: string): string; /** * Simple function to transform the input string into "Title Case". * * @param text The input string to transform. * @returns New string that has been transform to "Title Case". */ declare function titleCase(text?: string): string; /** * Create an array of chunked strings. * * @param source The input string. * @param size The number of characters within a chunk. * @returns Array of chunked strings. */ declare function chunk(source: string, size?: number): string[]; /** * Replace special characters from the given `source` with encoded chars. * * Double quote will always be encoded to HTML entity unless `excludeDblQuote` is set to `true`. * * @param source The input string to encode. * @param excludeDblQuote Optional, don't convert double quote to HTML entity. * @param chars Optional, special characters to encode. * @param replaces Optional, the encoded characters or replacement characters for the given `chars`. */ declare function encodeSpecialChars(source: string, excludeDblQuote?: boolean, chars?: string[], replaces?: string[]): string; /** * Simple function to convert the input string into * [camel Case](https://en.wikipedia.org/wiki/Camel_case). * * @param text The input string to convert. * @returns New string that has been transform to "camelCase". */ declare function camelCase(text: string): string; /** * Simple function to convert the input string into * [kebab-case](https://en.wikipedia.org/wiki/Letter_case#Use_within_programming_languages). * * @param text The input string to convert. * @returns New string that has been transform to "kebab-case". */ declare function kebabCase(text: string): string; /** * Determines whether an input string starts with any of the specified string, * returning true or false as appropriate. The test is performed in * case-sensitive manner. * * @param source The input string. * @param searches Collection of string to search at the start of input string. * @returns If any of the given string in the collection is found at the start of * the input string then `true` is returned, otherwise `false`. */ declare function isStartWith(source?: string, searches?: string[]): boolean; /** * Determines whether an input string ends with any of the specified string, * returning true or false as appropriate. The test is performed in * case-sensitive manner. * * @param source The input string. * @param searches Collection of string to search at the end of input string. * @returns If any of the given string in the collection is found at the end of * the input string then `true` is returned, otherwise `false`. */ declare function isEndWith(source?: string, searches?: string[]): boolean; /** * Determines whether an input string contains any of the specified string, * returning true or false as appropriate. The test is performed in * case-sensitive manner. * * @param source The input string. * @param searches Collection of string to be searched. * @returns If any of the given string in the collection is found at any position * of the input string then `true` is returned, otherwise `false`. */ declare function isContains(source?: string, searches?: string[]): boolean; declare const StringHelper_camelCase: typeof camelCase; declare const StringHelper_chunk: typeof chunk; declare const StringHelper_encodeSpecialChars: typeof encodeSpecialChars; declare const StringHelper_isContains: typeof isContains; declare const StringHelper_isEndWith: typeof isEndWith; declare const StringHelper_isStartWith: typeof isStartWith; declare const StringHelper_kebabCase: typeof kebabCase; declare const StringHelper_padLeft: typeof padLeft; declare const StringHelper_padRight: typeof padRight; declare const StringHelper_titleCase: typeof titleCase; declare namespace StringHelper { export { StringHelper_camelCase as camelCase, StringHelper_chunk as chunk, StringHelper_encodeSpecialChars as encodeSpecialChars, StringHelper_isContains as isContains, StringHelper_isEndWith as isEndWith, StringHelper_isStartWith as isStartWith, StringHelper_kebabCase as kebabCase, StringHelper_padLeft as padLeft, StringHelper_padRight as padRight, StringHelper_titleCase as titleCase, }; } declare type ClosableEventProps = { /** * Fired when this component is closed or dismissed (hide). */ close?: (msg: string) => void; }; declare interface ClosableEventPublic { /** * Fired when this component is closed or dismissed (hide). */ onClose?: (msg: string) => void; /** * Fired when this component is closed or dismissed (hide). */ '@close'?: (msg: string) => void; } declare type ClosableVoidEventProps = { /** * Fired when this component is closed or dismissed (hide). */ close?: VoidFunction; }; declare interface ClosableVoidEventPublic { /** * Fired when this component is closed or dismissed (hide). */ onClose?: VoidFunction; /** * Fired when this component is closed or dismissed (hide). */ '@close'?: VoidFunction; } declare type UpdateOpenEventProps = { /** * Fired when the component's state is updated. */ 'update:open'?: (state: boolean) => void; }; declare interface UpdateOpenEventPublic { /** * Fired when the component's state is updated. */ 'onUpdate:open'?: (state: boolean) => void; /** * Fired when the component's state is updated. */ '@update:open'?: (state: boolean) => void; } declare type UpdateModelValueEventProps = { /** * Fired when this component's `modelValue` is updated. */ 'update:model-value'?: (value: T) => void; }; declare interface UpdateModelValueEventPublic { /** * Fired when this component's `modelValue` is updated. */ 'onUpdate:modelValue'?: (value: T) => void; /** * Fired when this component's `modelValue` is updated. */ '@update:model-value'?: (value: T) => void; } declare interface VoidDefaultSlots { /** * The default slot used to place main content of the Component. */ default?: () => VNode[] | VNode; } declare const _default$17: DefineComponent<{}, () => VNode, {}, ComputedOptions, MethodOptions, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}>, {}, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare type TRippleOptionProps = { /** * Ripple animation state. */ active?: boolean | Event; /** * Start animation from center or from mouse click position. * If true then animation always start from center, otherwise animation * will start from mouse click position. */ centered?: boolean; /** * Enable or disable ripple animation. */ disabled?: boolean; /** * HTML tag used to render this component, default is `div`. */ tag?: HtmlTagName | string; }; declare type TOverlayOptionProps = { /** * Overlay base color. Must be a valid CSS color formatted string. */ color?: string; /** * Sets the css-style `position` value. If `true` then css-style `position` is set to `fixed`. */ fixed?: boolean; /** * Overlay state, show or hide. */ show?: boolean; /** * Overlay opacity. */ opacity?: Numberish; /** * Overlay inline-css `z-index`. */ zIndex?: Numberish; }; declare type TBsOverlay = ComponentObjectPropsOptions; declare type TBsRipple = ComponentObjectPropsOptions; declare const _default$16: DefineComponent & Readonly, ExtractDefaultPropTypes, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare type OverlayEventProps = { /** * Fired when the Overlay component is clicked. */ click?: (event: Event) => void; }; declare interface OverlayEventPublic { /** * Fired when the Overlay component is clicked. */ onClick?: (event: Event) => void; /** * Fired when the Overlay component is clicked. */ '@click'?: (event: Event) => void; } declare const _default$15: DefineComponent & Readonly, ExtractDefaultPropTypes, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare type RippleEventProps = { /** * Fired when the ripple effect is updated. */ 'update:active'?: (value: boolean) => void; }; declare interface RippleEventPublic { /** * Fired when the ripple effect is updated. */ 'onUpdate:active'?: (value: boolean) => void; /** * Fired when the ripple effect is updated. */ '@update:active'?: (value: boolean) => void; } declare const BsAnimationPlugin: ObjectPlugin; declare const _default$14: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, {}, {}, {}, string, ComponentProvideOptions, false, never>; declare const _default$13: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, {}, {}, {}, string, ComponentProvideOptions, false, never>; declare const _default$12: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, {}, {}, {}, string, ComponentProvideOptions, false, never>; declare const _default$11: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, {}, {}, {}, string, ComponentProvideOptions, false, never>; declare const _default$10: DefineComponent, string, PublicProps, Readonly & Readonly>, ExtractDefaultPropTypes, {}, {}, {}, string, ComponentProvideOptions, false, never>; declare const BsIconPlugin: ObjectPlugin; declare type TDividerOptionProps = { /** * Set to `TRUE` when divider is placed inside element that has dark background color. */ dark?: boolean; /** * Indentation from left side. */ leftIndent?: Numberish; /** * Indentation from right side. */ rightIndent?: Numberish; /** * Divider thickness. */ thickness?: Numberish; }; declare type TImageHolderOptionProps = TSizeOptionProps & { /** * Create this component with circle shape. */ circle?: boolean; /** * Create this component with rounded shape. */ rounded?: boolean; /** * This component's background color, must be in hex color format. */ bgColor?: string; /** * This component's text color, must be in hex color format. */ textColor?: string; /** * Short text as placeholder. */ placeholderText?: string; /** * Text placeholder X position. */ xPos?: Numberish; /** * Text placeholder Y position. */ yPos?: Numberish; }; declare type TSpacerOptionProps = { /** * Sets this component to fill the available space or not. */ fill?: boolean; /** * Sets this component width. */ width?: Numberish; }; declare type TSubheaderOptionProps = { /** * Define explicitly when placed inside element that has dark background color. */ dark?: boolean; }; declare type TBsDivider = ComponentObjectPropsOptions; declare type TBsImageHolder = ComponentObjectPropsOptions; declare type TBsSpacer = ComponentObjectPropsOptions; declare type TBsSubheader = ComponentObjectPropsOptions; declare const _default$$: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, {}, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare const _default$_: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, {}, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare const _default$Z: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, {}, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare const _default$Y: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare const BsBasicCmpPlugin: ObjectPlugin; declare type TAppContainerOptionProps = { /** * Sets the element `ID` attribute. This property value is auto generate. */ id?: string; /** * Use document viewport height or not. */ viewportHeight?: boolean; }; declare type TContainerOptionProps = { /** * Mount this component as part of application container or just ordinary container. * If mount as part of application container, then it will adapt to `SideDrawer` and `Appbar` size. */ app?: boolean; /** * Html tag used to render this component. */ tag?: HtmlTagName | string; }; declare type TBsAppContainer = ComponentObjectPropsOptions; declare type TBsContainer = ComponentObjectPropsOptions; declare type TBsContent = ComponentObjectPropsOptions; declare const _default$X: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare const _default$W: DefineComponent & Readonly, ExtractDefaultPropTypes, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare type ContainerEventProps = { /** * Fired when this component size is changed. */ resize?: (target: HTMLElement) => void; }; declare interface ContainerEventPublic { /** * Fired when this component size is changed. */ onResize?: (target: HTMLElement) => void; /** * Fired when this component size is changed. */ '@resize'?: (target: HTMLElement) => void; } declare const _default$V: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare const BsContainerPlugin: ObjectPlugin; declare type TAppbarOptionProps = { /** * Cut off the left side of the component. */ clippedLeft?: boolean; /** * Cut off the right side of the component. */ clippedRight?: boolean; /** * Placed `Appbar` fixed at the top of the page. * See [Bootstrap Position](https://getbootstrap.com/docs/5.3/helpers/position/) documentation. */ fixedTop?: boolean; /** * Always stick `Appbar` at top of the page. * See [Bootstrap Position](https://getbootstrap.com/docs/5.3/helpers/position/) documentation. */ stickyTop?: boolean; /** * Add shadow effect to this component. */ shadow?: boolean; /** * Html tag used to render this component. */ tag?: HtmlTagName | string; }; declare type TAppbarTitleOptionProps = { /** * The text to display. */ title?: string; }; declare type TBsAppbar = ComponentObjectPropsOptions; declare type TBsAppbarTitle = ComponentObjectPropsOptions; declare const _default$U: DefineComponent & Readonly, ExtractDefaultPropTypes, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare type AppbarEventProps = { /** * Fired when the Appbar is resized. */ resize?: (target: HTMLElement) => void; }; declare interface AppbarEventPublic { /** * Fired when the Appbar is resized. */ onResize?: (target: HTMLElement) => void; /** * Fired when the Appbar is resized. */ '@resize'?: (target: HTMLElement) => void; } declare const _default$T: DefineComponent<{}, () => VNode, {}, ComputedOptions, MethodOptions, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}>, {}, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare const _default$S: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare const BsAppbarPlugin: ObjectPlugin; declare const _default$R: DefineComponent & Readonly, ExtractDefaultPropTypes, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare type SideDrawerEventProps = UpdateOpenEventProps & { /** * Fired when this SideDrawer size is resized. */ resize?: (target: HTMLElement) => void; }; declare interface SideDrawerEventPublic extends UpdateOpenEventPublic { /** * Fired when this SideDrawer size is resized. */ onResize?: (target: HTMLElement) => void; /** * Fired when this SideDrawer size is resized. */ '@resize'?: (target: HTMLElement) => void; } declare const BsDrawerPlugin: ObjectPlugin; declare type TCardContentType = 'title' | 'subtitle' | 'text'; declare type TTagProp = { /** * Html tag used to render this component. */ tag?: HtmlTagName | string; }; declare type TCardOptionProps = TTagProp & { /** * Set to `true` to remove the side border of the Card component. */ borderOff?: boolean; /** * Set to `true` to remove the rounded border on the side of the Card component. */ roundedOff?: boolean; /** * Apply shadow effect to the component. */ shadow?: boolean; /** * The image URL for image placed at the top of the card. */ imgTopSrc?: string; /** * Text for the image `alt` attribute. */ imgTopAlt?: string; /** * The image URL for image placed at the bottom of the card. */ imgBottomSrc?: string; /** * Text for the image `alt` attribute. */ imgBottomAlt?: string; }; declare type TCardContentOptionProps = TTagProp & { /** * Card content variations, valid values are: `title`, `subtitle`, `text`. */ type?: TCardContentType; }; declare type TCardMediaOptionProps = { /** * Text for media title. */ title: string; /** * Text for media subtitle. */ subtitle?: string; /** * Placed text overlay at the top side. */ overlayTop?: boolean; }; declare type TBsCard = ComponentObjectPropsOptions; declare type TBsCardBody = ComponentObjectPropsOptions; declare type TBsCardContent = ComponentObjectPropsOptions; declare type TBsCardFooter = ComponentObjectPropsOptions; declare type TBsCardHeader = ComponentObjectPropsOptions; declare type TBsCardMedia = ComponentObjectPropsOptions; declare const _default$Q: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare const _default$P: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare const _default$O: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare const _default$N: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare const _default$M: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare const _default$L: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare interface CardMediaSlots extends VoidDefaultSlots { /** * The default slot used to place the CardMedia's title. */ title?: () => VNode[] | VNode; /** * Additional slot used to place the CardMedia's subtitle. */ subtitle?: () => VNode[] | VNode; } declare const BsCardPlugin: ObjectPlugin; declare type TIconVariant = 'outlined' | 'rounded' | 'sharp' | 'filled' | 'outlined_filled' | 'rounded_filled' | 'sharp_filled'; declare type TAllowedImageProps = { /** * Create this component with circle shape. */ circle?: boolean; /** * Create this component with rounded shape. */ rounded?: boolean; /** * The image location to place inside this component. */ imgSrc?: string; /** * Shortcut to create this component with equal height and width. */ size?: Numberish | TSizeProps; }; declare type TAllowedIconProps = { /** * A shortcut to insert component `BsIcon` inside this component. * * Use android icon name with or without suffix. Valid suffixes are: * `_outlined`, `_rounded`, `_sharp`, `_filled`, `_outlined_filled`, * `_rounded_filled`, or `_sharp_filled`. Suffix `_filled` and `_outlined_filled` * will result the same icon style variant. Suffix will take priority over * `icon-variant` property. * * @see [Google Material Symbol](https://fonts.google.com/icons?icon.set=Material+Symbols) for details. */ icon?: string; /** * Use predefined icon style variant, valid values are: `outlined`, `rounded`, * `sharp`, `filled`, `outlined_filled`, `rounded_filled`, and `sharp_filled`. * Default is `outlined`. * * Variant `filled` and `outlined_filled` will result the same icon style variant. * * @see [Google Material Symbol](https://fonts.google.com/icons?icon.set=Material+Symbols) for details. */ iconVariant?: TIconVariant; /** * Apply **spin** animation to the icon. */ iconSpin?: boolean; /** * Apply **pulse** animation to the icon. */ iconPulse?: boolean; /** * Flip the icon, valid values are: `horizontal`, `vertical`, `both`. */ iconFlip?: TIconFlip; /** * Rotate the icon, valid values are: `90`, `180`, `270`. */ iconRotation?: TIconRotation; }; declare type TAvatarImageOptionProps = TSizeOptionProps & { /** * Create this component with circle shape. */ circle?: boolean; /** * Create this component with rounded shape. */ rounded?: boolean; /** * The image location to place inside this component. */ imgSrc?: string; /** * Apply border width to this component. */ border?: Numberish; /** * Apply border color to this component. * * Built-in colors are: `primary`, `secondary`, `success`, `warning`, `danger`, `info`, `default`. */ borderColor?: TContextColor | string; }; declare type TAvatarOptionProps = TAvatarImageOptionProps & TAllowedIconProps & { /** * Create avatar from a text. The text must be less than 4 characters. */ text?: string; }; declare type TBsAvatar = ComponentObjectPropsOptions; declare const _default$K: DefineComponent & Readonly<{}>, ExtractDefaultPropTypes, SlotsType, {}, {}, string, ComponentProvideOptions, false, TRecord, never>; declare const BsAvatarPlugin: ObjectPlugin; declare type TFieldComponent = 'chip-field' | 'combobox-field' | 'datetime-field' | 'numeric-field' | 'search-field' | 'textarea-field' | 'text-field' | 'toggle-field'; declare type TFieldType = 'text' | 'email' | 'password' | 'tel' | 'url'; declare type TActionButtonPlacement = 'left' | 'right' | 'both'; declare type TActionButtonType = 'up-down' | 'plus-minus'; declare type TBoolRecord = Record; declare type TStringRecord = Record; declare type TValidator = { validators: TBoolRecord; messages: TStringRecord; hasError: boolean; dirty: boolean; }; declare interface TComputedValidationResult { hasError: ComputedRef; hasValidated: ComputedRef; showValidationError: ComputedRef; showHelpText: ComputedRef; errorItems: ComputedRef; } declare type TValidationProps = { /** * The help text to display below the field component. */ helpText?: string; /** * Hide persistent help text, this property takes precedence over `persistentHelpText`. */ persistentHelpOff?: boolean; /** * Show persistent help text or not. */ persistentHelpText?: boolean; /** * The external validator plugin to be used to validate this field value. */ validator?: TValidator; }; declare type TInputBaseProps = { /** * Sets the `` element `ID` attribute. This property value is auto generates. */ id?: string; /** * Sets the `` element `name` attribute. */ name?: Numberish; /** * This input field state: enabled or disabled. */ disabled?: boolean; /** * Sets this input field into readonly state. */ readonly?: boolean; /** * Whether this input field is required or not. */ required?: boolean; }; declare type TInputFieldProps = TInputBaseProps & TValidationProps & { /** * Sets the action icon style variant. * * Valid predefined icon variants are: `outlined`, `rounded`, `sharp`, * `filled`, `outlined_filled`, `rounded_filled`, and `sharp_filled`. * Default is `outlined`. * * Variant `filled` and `outlined_filled` will result the same icon style variant. * * @see [Google Material Symbols](https://fonts.google.com/icons?icon.set=Material+Symbols) for details. */ actionIconVariant?: TIconVariant; /** * Sets auto show the clear button. */ clearButton?: boolean; /** * Create this component with **filled** appearance. * * @see [Google Material Design](https://m3.material.io/components/text-fields/overview) for details. */ filled?: boolean; /** * Create this component with floating field label. * * @see [Google Material Design](https://m3.material.io/components/text-fields/overview) for details. */ floatingLabel?: boolean; /** * Create this component with **outlined** appearance. * * @see [Google Material Design](https://m3.material.io/components/text-fields/overview) for details. */ outlined?: boolean; /** * Display validation icon or not, when this field has been validated. */ validationIcon?: boolean; /** * Sets icon to display on inner right side. This is a shortcut to insert * component `BsIcon` inside this component. * * Use android icon name with or without suffix. Valid suffixes are: * `_outlined`, `_rounded`, `_sharp`, `_filled`, `_outlined_filled`, * `_rounded_filled`, or `_sharp_filled`. If no suffix is given, then * default (`outlined`) icon variant will be used. Suffix `_filled` * and `_outlined_filled` will result the same icon style variant. * * @see [Google Material Symbols](https://fonts.google.com/icons?icon.set=Material+Symbols) for details. */ appendIcon?: string; /** * Sets icon to display on outer right side. This is a shortcut to insert * component `BsIcon` inside this component. * * Use android icon name with or without suffix. Valid suffixes are: * `_outlined`, `_rounded`, `_sharp`, `_filled`, `_outlined_filled`, * `_rounded_filled`, or `_sharp_filled`. If no suffix is given, then * default (`outlined`) icon variant will be used. Suffix `_filled` * and `_outlined_filled` will result the same icon style variant. * * @see [Google Material Symbols](https://fonts.google.com/icons?icon.set=Material+Symbols) for details. */ appendIconOuter?: string; /** * Sets icon to display on inner left side. This is a shortcut to insert * component `BsIcon` inside this component. * * Use android icon name with or without suffix. Valid suffixes are: * `_outlined`, `_rounded`, `_sharp`, `_filled`, `_outlined_filled`, * `_rounded_filled`, or `_sharp_filled`. If no suffix is given, then * default (`outlined`) icon variant will be used. Suffix `_filled` * and `_outlined_filled` will result the same icon style variant. * * @see [Google Material Symbols](https://fonts.google.com/icons?icon.set=Material+Symbols) for details. */ prependIcon?: string; /** * Sets icon to display on outer left side. This is a shortcut to insert * component `BsIcon` inside this component. * * Use android icon name with or without suffix. Valid suffixes are: * `_outlined`, `_rounded`, `_sharp`, `_filled`, `_outlined_filled`, * `_rounded_filled`, or `_sharp_filled`. If no suffix is given, then * default (`outlined`) icon variant will be used. Suffix `_filled` * and `_outlined_filled` will result the same icon style variant. * * @see [Google Material Symbols](https://fonts.google.com/icons?icon.set=Material+Symbols) for details. */ prependIconOuter?: string; }; declare type TInputTextProps = TInputFieldProps & { /** * Sets browsers `autocomplete` predictions on/off. */ autocomplete?: string | boolean; /** * Autofocus field when this component is mounted. */ autofocus?: boolean; /** * Sets the field placeholder. */ placeholder?: string; }; declare type TTextFieldOptionProps = TInputTextProps & { /** * The value monitored by `v-model` to maintain this field value. */ modelValue?: MaybeNumberish; /** * Sets element type attribute. Valid values are: `text`, `password`, `email`, `url`, `tel`. */ type?: TFieldType; /** * Sets target `` element ID. */ datalist?: string; /** * Enable toggle password field. */ passwordToggle?: boolean; /** * Sets `` element maximum characters allowed. */ maxlength?: Numberish; /** * Sets `` element minimum characters allowed. */ minlength?: Numberish; /** * Create this component with **rounded-pill** appearance. */ rounded?: boolean; /** * Prepend inline non-modifiable text before the input field. */ prefix?: string; /** * Append inline non-modifiable text after the input field. */ suffix?: string; }; declare type TTextAreaOptionProps = TInputTextProps & { /** * Sets browsers `autocomplete` predictions on/off. */ autoGrow?: boolean | string; /** * Disable resizing the `