// @ts-ignore /// /// /// import { App, Component, ComponentPublicInstance, Directive, VNode } from "vue"; import { ComponentConstructor, GlobalComponentConstructor } from "./ts-helpers"; export interface AddressbarColor { /** * Sets addressbar color (for browsers that support it) * @param hexColor Color in hex format */ set: (hexColor: string) => void; } export interface AppFullscreen { /** * Does browser support it? */ isCapable: boolean; /** * Is Fullscreen active? */ isActive: boolean; /** * The DOM element used as root for fullscreen, otherwise 'null' */ activeEl: Element | null; /** * Request going into Fullscreen (with optional target) * @param target Optional Element of target to request Fullscreen on * @returns A Promise which is resolved when transitioned to fullscreen mode. It gets rejected with 'Not capable' if the browser is not capable, and with an Error object if something else went wrong. */ request: (target?: Element) => Promise; /** * Request exiting out of Fullscreen mode * @returns A Promise which is resolved when exited out of fullscreen mode. It gets rejected with 'Not capable' if the browser is not capable, and with an Error object if something else went wrong. */ exit: () => Promise; /** * Request toggling Fullscreen mode (with optional target if requesting going into Fullscreen only) * @param target Optional Element of target to request Fullscreen on * @returns A Promise which is resolved when transitioned to / exited out of fullscreen mode. It gets rejected with 'Not capable' if the browser is not capable, and with an Error object if something else went wrong. */ toggle: (target?: Element) => Promise; } export interface AppVisibility { /** * Does the app have user focus? Or the app runs in the background / another tab has the user's attention */ appVisible: boolean; } export interface BottomSheet { /** * Creates an ad-hoc Bottom Sheet; Same as calling $q.bottomSheet(...) * @param opts Bottom Sheet options * @returns Chainable Object */ create: (opts: { /** * CSS Class name to apply to the Dialog's QCard */ class?: VueClassProp; /** * CSS style to apply to the Dialog's QCard */ style?: VueStyleProp; /** * Title */ title?: string; /** * Message */ message?: string; /** * Array of Objects, each Object defining an action */ actions?: { /** * CSS classes for this action */ classes?: VueClassProp; /** * Style definitions to be attributed to this action element */ style?: VueStyleProp; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ icon?: string; /** * Path to an image for this action */ img?: string; /** * Path to an avatar image for this action */ avatar?: string; /** * Action label */ label?: string | number; /** * Any other custom props */ [key: string]: any | undefined; }[]; /** * Display actions as a grid instead of as a list */ grid?: boolean; /** * Apply dark mode * Default value: null */ dark?: boolean | null; /** * Put Bottom Sheet into seamless mode; Does not use a backdrop so user is able to interact with the rest of the page too */ seamless?: boolean; /** * User cannot dismiss Bottom Sheet if clicking outside of it or hitting ESC key; Also, an app route change won't dismiss it */ persistent?: boolean; }) => DialogChainObject; } export interface Cookies { /** * Get cookie * @param name Cookie name * @returns Cookie value; Returns null if cookie not found */ get: CookiesGetMethodType; /** * Get all cookies * @returns Object with cookie names (as keys) and their values */ getAll: () => any; /** * Set cookie * @param name Cookie name * @param value Cookie value * @param options Cookie options */ set: ( name: string, value: string, options?: { /** * Cookie expires detail; If specified as Number, then the unit is days; If specified as String, it can either be raw stringified date or in Xd Xh Xm Xs format (see examples) */ expires?: number | string | Date; /** * Cookie path */ path?: string; /** * Cookie domain */ domain?: string; /** * SameSite cookie option */ sameSite?: "Lax" | "Strict" | "None"; /** * Is cookie Http Only? */ httpOnly?: boolean; /** * Is cookie secure? (https only) */ secure?: boolean; /** * Raw string for other cookie options; To be used as a last resort for possible newer props that are currently not yet implemented in Quasar */ other?: string; }, ) => void; /** * Check if cookie exists * @param name Cookie name * @returns Does cookie exists or not? */ has: (name: string) => boolean; /** * Remove a cookie * @param name Cookie name * @param options Cookie options */ remove: ( name: string, options?: { /** * Cookie path */ path?: string; /** * Cookie domain */ domain?: string; }, ) => void; /** * For SSR usage only, and only on the global import (not on $q.cookies) * @param ssrContext SSR Context Object * @returns Cookie object (like $q.cookies) for SSR usage purposes */ parseSSR: (ssrContext: any) => Cookies; } export interface Dark { /** * Is Dark mode active? */ isActive: boolean; /** * Dark mode configuration (not status) */ mode: boolean | "auto"; /** * Set dark mode status * @param status Dark mode status */ set: (status: boolean | "auto") => void; /** * Toggle dark mode status */ toggle: () => void; } export interface Dialog { /** * Creates an ad-hoc Dialog; Same as calling $q.dialog(...) * @param opts Dialog options * @returns Chainable Object */ create: (opts: QDialogOptions) => DialogChainObject; } export interface IconSet { /** * Contents (icons) of the Quasar icon set */ props: { /** * Name of the Quasar icon set */ name: string; /** * Generic types */ type: { /** * Icon name following Quasar convention */ positive: string; /** * Icon name following Quasar convention */ negative: string; /** * Icon name following Quasar convention */ info: string; /** * Icon name following Quasar convention */ warning: string; }; /** * Arrow types */ arrow: { /** * Icon name following Quasar convention */ up: string; /** * Icon name following Quasar convention */ right: string; /** * Icon name following Quasar convention */ down: string; /** * Icon name following Quasar convention */ left: string; /** * Icon name following Quasar convention */ dropdown: string; }; /** * Chevron types */ chevron: { /** * Icon name following Quasar convention */ left: string; /** * Icon name following Quasar convention */ right: string; }; /** * Used by QColorPicker */ colorPicker: { /** * Icon name following Quasar convention */ spectrum: string; /** * Icon name following Quasar convention */ tune: string; /** * Icon name following Quasar convention */ palette: string; }; /** * Used by QPullToRefresh */ pullToRefresh: { /** * Icon name following Quasar convention */ icon: string; }; /** * Used by QCarousel */ carousel: { /** * Icon name following Quasar convention */ left: string; /** * Icon name following Quasar convention */ right: string; /** * Icon name following Quasar convention */ up: string; /** * Icon name following Quasar convention */ down: string; /** * Icon name following Quasar convention */ navigationIcon: string; }; /** * Used by QChip */ chip: { /** * Icon name following Quasar convention */ remove: string; /** * Icon name following Quasar convention */ selected: string; }; /** * Used by QDate/QTime */ datetime: { /** * Icon name following Quasar convention */ arrowLeft: string; /** * Icon name following Quasar convention */ arrowRight: string; /** * Icon name following Quasar convention */ now: string; /** * Icon name following Quasar convention */ today: string; }; /** * Used by QEditor */ editor: { /** * Icon name following Quasar convention */ bold: string; /** * Icon name following Quasar convention */ italic: string; /** * Icon name following Quasar convention */ strikethrough: string; /** * Icon name following Quasar convention */ underline: string; /** * Icon name following Quasar convention */ unorderedList: string; /** * Icon name following Quasar convention */ orderedList: string; /** * Icon name following Quasar convention */ subscript: string; /** * Icon name following Quasar convention */ superscript: string; /** * Icon name following Quasar convention */ hyperlink: string; /** * Icon name following Quasar convention */ toggleFullscreen: string; /** * Icon name following Quasar convention */ quote: string; /** * Icon name following Quasar convention */ left: string; /** * Icon name following Quasar convention */ center: string; /** * Icon name following Quasar convention */ right: string; /** * Icon name following Quasar convention */ justify: string; /** * Icon name following Quasar convention */ print: string; /** * Icon name following Quasar convention */ outdent: string; /** * Icon name following Quasar convention */ indent: string; /** * Icon name following Quasar convention */ removeFormat: string; /** * Icon name following Quasar convention */ formatting: string; /** * Icon name following Quasar convention */ fontSize: string; /** * Icon name following Quasar convention */ align: string; /** * Icon name following Quasar convention */ hr: string; /** * Icon name following Quasar convention */ undo: string; /** * Icon name following Quasar convention */ redo: string; /** * Used only when headingX is missing; Icon name following Quasar convention */ heading: string; /** * (Can be omitted; defaults to 'heading' instead) Icon name following Quasar convention */ heading1: string; /** * (Can be omitted; defaults to 'heading' instead) Icon name following Quasar convention */ heading2: string; /** * (Can be omitted; defaults to 'heading' instead) Icon name following Quasar convention */ heading3: string; /** * (Can be omitted; defaults to 'heading' instead) Icon name following Quasar convention */ heading4: string; /** * (Can be omitted; defaults to 'heading' instead) Icon name following Quasar convention */ heading5: string; /** * (Can be omitted; defaults to 'heading' instead) Icon name following Quasar convention */ heading6: string; /** * Icon name following Quasar convention */ code: string; /** * Used only when sizeX is missing; Icon name following Quasar convention */ size: string; /** * (Can be omitted; defaults to 'size' instead) Icon name following Quasar convention */ size1: string; /** * (Can be omitted; defaults to 'size' instead) Icon name following Quasar convention */ size2: string; /** * (Can be omitted; defaults to 'size' instead) Icon name following Quasar convention */ size3: string; /** * (Can be omitted; defaults to 'size' instead) Icon name following Quasar convention */ size4: string; /** * (Can be omitted; defaults to 'size' instead) Icon name following Quasar convention */ size5: string; /** * (Can be omitted; defaults to 'size' instead) Icon name following Quasar convention */ size6: string; /** * (Can be omitted; defaults to 'size' instead) Icon name following Quasar convention */ size7: string; /** * Icon name following Quasar convention */ font: string; /** * Icon name following Quasar convention */ viewSource: string; }; /** * Used by QExpansionItem */ expansionItem: { /** * Icon name following Quasar convention */ icon: string; /** * Icon name following Quasar convention */ denseIcon: string; }; /** * Used by QFab */ fab: { /** * Icon name following Quasar convention */ icon: string; /** * Icon name following Quasar convention */ activeIcon: string; }; /** * Used by QField/QInput/QSelect/... */ field: { /** * Icon name following Quasar convention */ clear: string; /** * Icon name following Quasar convention */ error: string; }; /** * Used by QPagination */ pagination: { /** * Icon name following Quasar convention */ first: string; /** * Icon name following Quasar convention */ prev: string; /** * Icon name following Quasar convention */ next: string; /** * Icon name following Quasar convention */ last: string; }; /** * Used by QRating */ rating: { /** * Icon name following Quasar convention */ icon: string; }; /** * Used by QStepper */ stepper: { /** * Icon name following Quasar convention */ done: string; /** * Icon name following Quasar convention */ active: string; /** * Icon name following Quasar convention */ error: string; }; /** * Used by QTabs */ tabs: { /** * Icon name following Quasar convention */ left: string; /** * Icon name following Quasar convention */ right: string; /** * Icon name following Quasar convention */ up: string; /** * Icon name following Quasar convention */ down: string; }; /** * Used by QTable */ table: { /** * Icon name following Quasar convention */ arrowUp: string; /** * Icon name following Quasar convention */ warning: string; /** * Icon name following Quasar convention */ firstPage: string; /** * Icon name following Quasar convention */ prevPage: string; /** * Icon name following Quasar convention */ nextPage: string; /** * Icon name following Quasar convention */ lastPage: string; }; /** * Used by QTree */ tree: { /** * Icon name following Quasar convention */ icon: string; }; /** * Used by QUploader */ uploader: { /** * Icon name following Quasar convention */ done: string; /** * Icon name following Quasar convention */ clear: string; /** * Icon name following Quasar convention */ add: string; /** * Icon name following Quasar convention */ upload: string; /** * Icon name following Quasar convention */ removeQueue: string; /** * Icon name following Quasar convention */ removeUploaded: string; }; }; /** * Function to map icon names to other icon names; It is designed to be used internally by Quasar only; Only assign a function to it, but do not call it yourself * @param iconName Icon name to test * @returns The icon following Quasar convention */ iconMapFn: | ((iconName: string) => | { /** * The mapped icon string, which will be handled by Quasar as if the original icon name was this value; ; Either use only 'icon' or 'cls' + 'content' */ icon?: string; /** * CSS classes to apply to the created DOM element; Either use 'cls' + 'content' or only 'icon' */ cls?: string; /** * Optional, in case you are using a ligature font and you need it as content of the created DOM element; Either use 'cls' + 'content' or only 'icon' */ content?: string; } | undefined) | null; /** * Set another Quasar Icon Set * @param iconSet Usually you will import such an object directly from quasar (eg: import qIconSet from 'quasar/icon-set/') * @param ssrContent Required for SSR only */ set: ( iconSet: { /** * Name of the Quasar icon set */ name: string; /** * Generic types */ type: { /** * Icon name following Quasar convention */ positive: string; /** * Icon name following Quasar convention */ negative: string; /** * Icon name following Quasar convention */ info: string; /** * Icon name following Quasar convention */ warning: string; }; /** * Arrow types */ arrow: { /** * Icon name following Quasar convention */ up: string; /** * Icon name following Quasar convention */ right: string; /** * Icon name following Quasar convention */ down: string; /** * Icon name following Quasar convention */ left: string; /** * Icon name following Quasar convention */ dropdown: string; }; /** * Chevron types */ chevron: { /** * Icon name following Quasar convention */ left: string; /** * Icon name following Quasar convention */ right: string; }; /** * Used by QColorPicker */ colorPicker?: { /** * Icon name following Quasar convention */ spectrum: string; /** * Icon name following Quasar convention */ tune: string; /** * Icon name following Quasar convention */ palette: string; }; /** * Used by QPullToRefresh */ pullToRefresh: { /** * Icon name following Quasar convention */ icon: string; }; /** * Used by QCarousel */ carousel: { /** * Icon name following Quasar convention */ left: string; /** * Icon name following Quasar convention */ right: string; /** * Icon name following Quasar convention */ up: string; /** * Icon name following Quasar convention */ down: string; /** * Icon name following Quasar convention */ navigationIcon: string; }; /** * Used by QChip */ chip: { /** * Icon name following Quasar convention */ remove: string; /** * Icon name following Quasar convention */ selected: string; }; /** * Used by QDate/QTime */ datetime: { /** * Icon name following Quasar convention */ arrowLeft: string; /** * Icon name following Quasar convention */ arrowRight: string; /** * Icon name following Quasar convention */ now: string; /** * Icon name following Quasar convention */ today: string; }; /** * Used by QEditor */ editor: { /** * Icon name following Quasar convention */ bold: string; /** * Icon name following Quasar convention */ italic: string; /** * Icon name following Quasar convention */ strikethrough: string; /** * Icon name following Quasar convention */ underline: string; /** * Icon name following Quasar convention */ unorderedList: string; /** * Icon name following Quasar convention */ orderedList: string; /** * Icon name following Quasar convention */ subscript: string; /** * Icon name following Quasar convention */ superscript: string; /** * Icon name following Quasar convention */ hyperlink: string; /** * Icon name following Quasar convention */ toggleFullscreen: string; /** * Icon name following Quasar convention */ quote: string; /** * Icon name following Quasar convention */ left: string; /** * Icon name following Quasar convention */ center: string; /** * Icon name following Quasar convention */ right: string; /** * Icon name following Quasar convention */ justify: string; /** * Icon name following Quasar convention */ print: string; /** * Icon name following Quasar convention */ outdent: string; /** * Icon name following Quasar convention */ indent: string; /** * Icon name following Quasar convention */ removeFormat: string; /** * Icon name following Quasar convention */ formatting: string; /** * Icon name following Quasar convention */ fontSize: string; /** * Icon name following Quasar convention */ align: string; /** * Icon name following Quasar convention */ hr: string; /** * Icon name following Quasar convention */ undo: string; /** * Icon name following Quasar convention */ redo: string; /** * Used only when headingX is missing; Icon name following Quasar convention */ heading: string; /** * (Can be omitted; defaults to 'heading' instead) Icon name following Quasar convention */ heading1?: string; /** * (Can be omitted; defaults to 'heading' instead) Icon name following Quasar convention */ heading2?: string; /** * (Can be omitted; defaults to 'heading' instead) Icon name following Quasar convention */ heading3?: string; /** * (Can be omitted; defaults to 'heading' instead) Icon name following Quasar convention */ heading4?: string; /** * (Can be omitted; defaults to 'heading' instead) Icon name following Quasar convention */ heading5?: string; /** * (Can be omitted; defaults to 'heading' instead) Icon name following Quasar convention */ heading6?: string; /** * Icon name following Quasar convention */ code: string; /** * Used only when sizeX is missing; Icon name following Quasar convention */ size: string; /** * (Can be omitted; defaults to 'size' instead) Icon name following Quasar convention */ size1?: string; /** * (Can be omitted; defaults to 'size' instead) Icon name following Quasar convention */ size2?: string; /** * (Can be omitted; defaults to 'size' instead) Icon name following Quasar convention */ size3?: string; /** * (Can be omitted; defaults to 'size' instead) Icon name following Quasar convention */ size4?: string; /** * (Can be omitted; defaults to 'size' instead) Icon name following Quasar convention */ size5?: string; /** * (Can be omitted; defaults to 'size' instead) Icon name following Quasar convention */ size6?: string; /** * (Can be omitted; defaults to 'size' instead) Icon name following Quasar convention */ size7?: string; /** * Icon name following Quasar convention */ font: string; /** * Icon name following Quasar convention */ viewSource: string; }; /** * Used by QExpansionItem */ expansionItem: { /** * Icon name following Quasar convention */ icon: string; /** * Icon name following Quasar convention */ denseIcon: string; }; /** * Used by QFab */ fab: { /** * Icon name following Quasar convention */ icon: string; /** * Icon name following Quasar convention */ activeIcon: string; }; /** * Used by QField/QInput/QSelect/... */ field: { /** * Icon name following Quasar convention */ clear: string; /** * Icon name following Quasar convention */ error: string; }; /** * Used by QPagination */ pagination: { /** * Icon name following Quasar convention */ first: string; /** * Icon name following Quasar convention */ prev: string; /** * Icon name following Quasar convention */ next: string; /** * Icon name following Quasar convention */ last: string; }; /** * Used by QRating */ rating: { /** * Icon name following Quasar convention */ icon: string; }; /** * Used by QStepper */ stepper: { /** * Icon name following Quasar convention */ done: string; /** * Icon name following Quasar convention */ active: string; /** * Icon name following Quasar convention */ error: string; }; /** * Used by QTabs */ tabs: { /** * Icon name following Quasar convention */ left: string; /** * Icon name following Quasar convention */ right: string; /** * Icon name following Quasar convention */ up: string; /** * Icon name following Quasar convention */ down: string; }; /** * Used by QTable */ table: { /** * Icon name following Quasar convention */ arrowUp: string; /** * Icon name following Quasar convention */ warning: string; /** * Icon name following Quasar convention */ firstPage: string; /** * Icon name following Quasar convention */ prevPage: string; /** * Icon name following Quasar convention */ nextPage: string; /** * Icon name following Quasar convention */ lastPage: string; }; /** * Used by QTree */ tree: { /** * Icon name following Quasar convention */ icon: string; }; /** * Used by QUploader */ uploader: { /** * Icon name following Quasar convention */ done: string; /** * Icon name following Quasar convention */ clear: string; /** * Icon name following Quasar convention */ add: string; /** * Icon name following Quasar convention */ upload: string; /** * Icon name following Quasar convention */ removeQueue: string; /** * Icon name following Quasar convention */ removeUploaded: string; }; }, ssrContent?: any, ) => void; } export interface Lang { /** * Quasar language pack */ props: { /** * The ISO name of the Quasar language pack */ isoName: string; /** * The native name of the Quasar language pack */ nativeName: string; /** * Whether the language is RTL (right-to-left) */ rtl: boolean; /** * Generic labels */ label: { /** * Label */ clear: string; /** * Label */ ok: string; /** * Label */ cancel: string; /** * Label */ close: string; /** * Label */ set: string; /** * Label */ select: string; /** * Label */ reset: string; /** * Label */ remove: string; /** * Label */ update: string; /** * Label */ create: string; /** * Label */ search: string; /** * Label */ filter: string; /** * Label */ refresh: string; /** * Label function * @param label Item to expand * @returns Label */ expand: (label?: string) => string; /** * Label function * @param label Item to collapse * @returns Label */ collapse: (label?: string) => string; }; /** * QDate labels */ date: { /** * Label */ days: readonly any[]; /** * Label */ daysShort: readonly any[]; /** * Label */ months: readonly any[]; /** * Label */ monthsShort: readonly any[]; /** * 0-6, 0 - Sunday, 1 Monday, ... */ firstDayOfWeek: number; /** * Uses 24-hour format */ format24h: boolean; /** * Label */ pluralDay: string; }; /** * QTable labels */ table: { /** * Label */ noData: string; /** * Label */ noResults: string; /** * Label */ loading: string; /** * Label function * @param rows Number of selected rows * @returns Label */ selectedRecords: (rows: number) => string; /** * Label */ recordsPerPage: string; /** * Label */ allRows: string; /** * Label function * @param start Page start index * @param end Page end index * @param total Total number of rows * @returns Label */ pagination: (start: number, end: number, total: number) => string; /** * Label */ columns: string; }; /** * QEditor labels */ editor: { /** * Label */ url: string; /** * Label */ bold: string; /** * Label */ italic: string; /** * Label */ strikethrough: string; /** * Label */ underline: string; /** * Label */ unorderedList: string; /** * Label */ orderedList: string; /** * Label */ subscript: string; /** * Label */ superscript: string; /** * Label */ hyperlink: string; /** * Label */ toggleFullscreen: string; /** * Label */ quote: string; /** * Label */ left: string; /** * Label */ center: string; /** * Label */ right: string; /** * Label */ justify: string; /** * Label */ print: string; /** * Label */ outdent: string; /** * Label */ indent: string; /** * Label */ removeFormat: string; /** * Label */ formatting: string; /** * Label */ fontSize: string; /** * Label */ align: string; /** * Label */ hr: string; /** * Label */ undo: string; /** * Label */ redo: string; /** * Label */ heading1: string; /** * Label */ heading2: string; /** * Label */ heading3: string; /** * Label */ heading4: string; /** * Label */ heading5: string; /** * Label */ heading6: string; /** * Label */ paragraph: string; /** * Label */ code: string; /** * Label */ size1: string; /** * Label */ size2: string; /** * Label */ size3: string; /** * Label */ size4: string; /** * Label */ size5: string; /** * Label */ size6: string; /** * Label */ size7: string; /** * Label */ defaultFont: string; /** * Label */ viewSource: string; }; /** * QTree labels */ tree: { /** * Label */ noNodes: string; /** * Label */ noResults: string; }; }; /** * Set another Quasar Language Pack * @param quasarLanguagePack Usually you will import such an object directly from quasar (eg: import qIconSet from 'quasar/lang/') * @param ssrContent Required for SSR only */ set: ( quasarLanguagePack: { /** * The ISO name of the Quasar language pack */ isoName: string; /** * The native name of the Quasar language pack */ nativeName: string; /** * Whether the language is RTL (right-to-left) * Default value: true */ rtl?: boolean; /** * Generic labels */ label: { /** * Label */ clear: string; /** * Label */ ok: string; /** * Label */ cancel: string; /** * Label */ close: string; /** * Label */ set: string; /** * Label */ select: string; /** * Label */ reset: string; /** * Label */ remove: string; /** * Label */ update: string; /** * Label */ create: string; /** * Label */ search: string; /** * Label */ filter: string; /** * Label */ refresh: string; /** * Label function * @param label Item to expand * @returns Label */ expand: (label?: string) => string; /** * Label function * @param label Item to collapse * @returns Label */ collapse: (label?: string) => string; }; /** * QDate labels */ date: { /** * Label */ days: readonly any[]; /** * Label */ daysShort: readonly any[]; /** * Label */ months: readonly any[]; /** * Label */ monthsShort: readonly any[]; /** * 0-6, 0 - Sunday, 1 Monday, ... */ firstDayOfWeek: number; /** * Uses 24-hour format */ format24h: boolean; /** * Label */ pluralDay: string; }; /** * QTable labels */ table: { /** * Label */ noData: string; /** * Label */ noResults: string; /** * Label */ loading: string; /** * Label function * @param rows Number of selected rows * @returns Label */ selectedRecords: (rows: number) => string; /** * Label */ recordsPerPage: string; /** * Label */ allRows: string; /** * Label function * @param start Page start index * @param end Page end index * @param total Total number of rows * @returns Label */ pagination: (start: number, end: number, total: number) => string; /** * Label */ columns: string; }; /** * QEditor labels */ editor: { /** * Label */ url: string; /** * Label */ bold: string; /** * Label */ italic: string; /** * Label */ strikethrough: string; /** * Label */ underline: string; /** * Label */ unorderedList: string; /** * Label */ orderedList: string; /** * Label */ subscript: string; /** * Label */ superscript: string; /** * Label */ hyperlink: string; /** * Label */ toggleFullscreen: string; /** * Label */ quote: string; /** * Label */ left: string; /** * Label */ center: string; /** * Label */ right: string; /** * Label */ justify: string; /** * Label */ print: string; /** * Label */ outdent: string; /** * Label */ indent: string; /** * Label */ removeFormat: string; /** * Label */ formatting: string; /** * Label */ fontSize: string; /** * Label */ align: string; /** * Label */ hr: string; /** * Label */ undo: string; /** * Label */ redo: string; /** * Label */ heading1: string; /** * Label */ heading2: string; /** * Label */ heading3: string; /** * Label */ heading4: string; /** * Label */ heading5: string; /** * Label */ heading6: string; /** * Label */ paragraph: string; /** * Label */ code: string; /** * Label */ size1: string; /** * Label */ size2: string; /** * Label */ size3: string; /** * Label */ size4: string; /** * Label */ size5: string; /** * Label */ size6: string; /** * Label */ size7: string; /** * Label */ defaultFont: string; /** * Label */ viewSource: string; }; /** * QTree labels */ tree: { /** * Label */ noNodes: string; /** * Label */ noResults: string; }; }, ssrContent?: any, ) => void; /** * Get the browser locale ISO name; Returns undefined when it cannot determine current browser locale or when running on server in SSR mode * @returns Browser locale ISO name */ getLocale: () => string | undefined; } export interface Loading { /** * Is Loading active? */ isActive: boolean; /** * Activate and show * @param opts All props are optional * @returns Calling this function with no parameters hides the group; When called with one Object parameter then it updates the Loading group (specified properties are shallow merged with the group ones; note that group cannot be changed while updating and it is ignored) */ show: (opts?: QLoadingShowOptions) => (props?: QLoadingUpdateOptions) => void; /** * Hide it * @param group Optional Loading group name to hide instead of hiding all groups */ hide: (group?: string) => void; /** * Merge options into the default ones * @param opts Pick the subprop you want to define */ setDefaults: (opts: { /** * Wait a number of millisecond before showing; Not worth showing for 100ms for example then hiding it, so wait until you're sure it's a process that will take some considerable amount of time */ delay?: number; /** * Message to display */ message?: string; /** * Default Loading group name * Default value: '__default_quasar_group__' */ group?: string; /** * Spinner size (in pixels) */ spinnerSize?: number; /** * Color name for spinner from the Quasar Color Palette */ spinnerColor?: NamedColor; /** * Color name for text from the Quasar Color Palette */ messageColor?: NamedColor; /** * Color name for background from the Quasar Color Palette */ backgroundColor?: NamedColor; /** * One of the QSpinners */ spinner?: Component; /** * Add a CSS class to easily customize the component */ customClass?: string; }) => void; } export interface LoadingBar { /** * Is LoadingBar active? */ isActive: boolean; /** * Notify bar you've started a background activity * @param speed Delay (in milliseconds) between bar progress increments */ start: (speed?: number) => void; /** * Notify bar one background activity has finalized */ stop: () => void; /** * Manually trigger a bar progress increment * @param amount Amount (0.0 < x < 1.0) to increment with */ increment: (amount?: number) => void; /** * Set the inner QAjaxBar's props * @param props QAjaxBar component props */ setDefaults: (props: QLoadingBarOptions) => void; } export interface Meta {} export interface Notify { /** * Creates a notification; Same as calling $q.notify(...) * @param opts Notification options * @returns Calling this function with no parameters hides the notification; When called with one Object parameter (the original notification must NOT be grouped), it updates the notification (specified properties are shallow merged with previous ones; note that group and position cannot be changed while updating and so they are ignored) */ create: (opts: QNotifyCreateOptions | string) => (props?: QNotifyUpdateOptions) => void; /** * Merge options into the default ones * @param opts Notification options except 'ignoreDefaults' (See 'opts' param of 'create()' for object properties) */ setDefaults: (opts: QNotifyOptions) => void; /** * Register a new type of notification (or override an existing one) * @param typeName Name of the type (to be used as 'type' prop later on) * @param typeOpts Notification options except 'ignoreDefaults' (See 'opts' param of 'create()' for object properties) */ registerType: (typeName: string, typeOpts: QNotifyOptions) => void; } export interface Platform { /** * Client browser User Agent */ userAgent: string; /** * Client browser details (property names depend on browser) */ is: { /** * Browser name */ name: string; /** * Platform name */ platform: string; /** * Detailed browser version */ version?: string; /** * Major browser version as a number */ versionNumber?: number; /** * Whether the platform is mobile */ mobile: boolean; /** * Whether the platform is desktop */ desktop: boolean; /** * Whether the platform is Cordova */ cordova: boolean; /** * Whether the platform is Capacitor */ capacitor: boolean; /** * Whether the platform is a native mobile wrapper */ nativeMobile: boolean; /** * Type of the native mobile wrapper */ nativeMobileWrapper?: "cordova" | "capacitor"; /** * Whether the platform is Electron */ electron: boolean; /** * Whether the platform is BEX(Browser Extension) */ bex: boolean; /** * Whether the operating system is Linux */ linux: boolean; /** * Whether the operating system is Mac OS */ mac: boolean; /** * Whether the operating system is Windows */ win: boolean; /** * Whether the operating system is Chrome OS */ cros: boolean; /** * Whether the browser is Google Chrome */ chrome: boolean; /** * Whether the browser is Firefox */ firefox: boolean; /** * Whether the browser is Opera */ opera: boolean; /** * Whether the browser is Safari */ safari: boolean; /** * Whether the browser is Vivaldi */ vivaldi: boolean; /** * Whether the browser is Microsoft Edge Legacy */ edge: boolean; /** * Whether the browser is Microsoft Edge (Chromium) */ edgeChromium: boolean; /** * Whether the browser is Internet Explorer */ ie: boolean; /** * Whether the browser is a Webkit or Webkit-based one */ webkit: boolean; /** * Whether the operating system is Android */ android: boolean; /** * Whether the operating system is iOS */ ios: boolean; /** * Whether the device is an iPad */ ipad: boolean; /** * Whether the device is an iPhone */ iphone: boolean; /** * Whether the device is an iPod */ ipod: boolean; /** * Whether the device is a Kindle */ kindle: boolean; /** * Whether the operating system is Windows Phone */ winphone: boolean; /** * Whether the device is a Blackberry */ blackberry: boolean; /** * Whether the device is a Blackberry Playbook */ playbook: boolean; /** * Whether the browser is Amazon Silk */ silk: boolean; }; /** * Client browser detectable properties */ has: { /** * Client browser runs on device with touch support */ touch: boolean; /** * Client browser has Web Storage support */ webStorage: boolean; }; /** * Client browser environment */ within: { /** * Does the app run under an iframe? */ iframe: boolean; }; /** * For SSR usage only, and only on the global import (not on $q.platform) * @param ssrContext SSR Context Object * @returns Platform object (like $q.platform) for SSR usage purposes */ parseSSR: (ssrContext: any) => Platform; } export interface Screen { /** * Screen width (in pixels) */ width: number; /** * Screen height (in pixels) */ height: number; /** * Tells current window breakpoint */ name: "xs" | "sm" | "md" | "lg" | "xl"; /** * Breakpoints (in pixels) */ sizes: { /** * Breakpoint width size (minimum size) */ sm: number; /** * Breakpoint width size (minimum size) */ md: number; /** * Breakpoint width size (minimum size) */ lg: number; /** * Breakpoint width size (minimum size) */ xl: number; }; /** * Tells if current screen width is lower than breakpoint-name */ lt: { /** * Is current screen width lower than this breakpoint's lowest limit? */ sm: boolean; /** * Is current screen width lower than this breakpoint's lowest limit? */ md: boolean; /** * Is current screen width lower than this breakpoint's lowest limit? */ lg: boolean; /** * Is current screen width lower than this breakpoint's lowest limit? */ xl: boolean; }; /** * Tells if current screen width is greater than breakpoint-name */ gt: { /** * Is current screen width greater than this breakpoint's max limit? */ xs: boolean; /** * Is current screen width greater than this breakpoint's max limit? */ sm: boolean; /** * Is current screen width greater than this breakpoint's max limit? */ md: boolean; /** * Is current screen width greater than this breakpoint's max limit? */ lg: boolean; }; /** * Current screen width fits exactly 'xs' breakpoint */ xs: boolean; /** * Current screen width fits exactly 'sm' breakpoint */ sm: boolean; /** * Current screen width fits exactly 'md' breakpoint */ md: boolean; /** * Current screen width fits exactly 'lg' breakpoint */ lg: boolean; /** * Current screen width fits exactly 'xl' breakpoint */ xl: boolean; /** * Override default breakpoint sizes * @param breakpoints Pick what you want to override */ setSizes: (breakpoints: { /** * Breakpoint width size (minimum size) */ sm?: number; /** * Breakpoint width size (minimum size) */ md?: number; /** * Breakpoint width size (minimum size) */ lg?: number; /** * Breakpoint width size (minimum size) */ xl?: number; }) => void; /** * Debounce update of all props when screen width/height changes * @param amount Amount in milliseconds */ setDebounce: (amount: number) => void; } export interface LocalStorage { /** * Check if storage item exists * @param key Entry key * @returns Does the item exists or not? */ hasItem: (key: string) => boolean; /** * Get storage number of entries * @returns Number of entries */ getLength: () => number; /** * Get a storage item value * @param key Entry key * @returns Storage item value */ getItem: WebStorageGetItemMethodType; /** * Get the storage item value at specific index * @param index Entry index * @returns Storage item index */ getIndex: WebStorageGetIndexMethodType; /** * Get the storage key at specific index * @param index Entry index * @returns Storage key */ getKey: WebStorageGetKeyMethodType; /** * Retrieve all items in storage * @returns Object syntax: item name as Object key and its value */ getAll: () => any; /** * Retrieve all keys in storage * @returns Storage keys (Array of Strings) */ getAllKeys: WebStorageGetAllKeysMethodType; /** * Set item in storage * @param key Entry key * @param value Entry value */ setItem: ( key: string, value: | number | boolean | Date | RegExp | ((...params: readonly any[]) => any) | any | readonly any[] | string | null, ) => void; /** * Remove a storage item * @param key Storage key */ removeItem: (key: string) => void; /** * Remove everything from the storage */ clear: () => void; /** * Determine if storage has any items * @returns Tells if storage is empty or not */ isEmpty: () => boolean; /** * (Alias of "hasItem") Check if storage item exists * @param key Entry key * @returns Does the item exists or not? */ has: (key: string) => boolean; /** * (Alias of "setItem") Set item in storage * @param key Entry key * @param value Entry value */ set: ( key: string, value: | number | boolean | Date | RegExp | ((...params: readonly any[]) => any) | any | readonly any[] | string | null, ) => void; /** * (Alias of "removeItem") Remove a storage item * @param key Storage key */ remove: (key: string) => void; } export interface SessionStorage { /** * Check if storage item exists * @param key Entry key * @returns Does the item exists or not? */ hasItem: (key: string) => boolean; /** * Get storage number of entries * @returns Number of entries */ getLength: () => number; /** * Get a storage item value * @param key Entry key * @returns Storage item value */ getItem: WebStorageGetItemMethodType; /** * Get the storage item value at specific index * @param index Entry index * @returns Storage item index */ getIndex: WebStorageGetIndexMethodType; /** * Get the storage key at specific index * @param index Entry index * @returns Storage key */ getKey: WebStorageGetKeyMethodType; /** * Retrieve all items in storage * @returns Object syntax: item name as Object key and its value */ getAll: () => any; /** * Retrieve all keys in storage * @returns Storage keys (Array of Strings) */ getAllKeys: WebStorageGetAllKeysMethodType; /** * Set item in storage * @param key Entry key * @param value Entry value */ setItem: ( key: string, value: | number | boolean | Date | RegExp | ((...params: readonly any[]) => any) | any | readonly any[] | string | null, ) => void; /** * Remove a storage item * @param key Storage key */ removeItem: (key: string) => void; /** * Remove everything from the storage */ clear: () => void; /** * Determine if storage has any items * @returns Tells if storage is empty or not */ isEmpty: () => boolean; /** * (Alias of "hasItem") Check if storage item exists * @param key Entry key * @returns Does the item exists or not? */ has: (key: string) => boolean; /** * (Alias of "setItem") Set item in storage * @param key Entry key * @param value Entry value */ set: ( key: string, value: | number | boolean | Date | RegExp | ((...params: readonly any[]) => any) | any | readonly any[] | string | null, ) => void; /** * (Alias of "removeItem") Remove a storage item * @param key Storage key */ remove: (key: string) => void; } /** * If value is 0 or 'false' then directive is disabled; if value is < 0 then it closes all popups in the chain; if value is 1 or 'true' or undefined then it closes only the parent popup; if value is > 1 it closes the specified number of parent popups in the chain (note that chained QMenus are considered 1 popup only & QPopupProxy separates chained menus) * * @see https://v2.quasar.dev/vue-directives/close-popup */ export type ClosePopupValue = boolean | number | string; /** * If value is 0 or 'false' then directive is disabled; if value is < 0 then it closes all popups in the chain; if value is 1 or 'true' or undefined then it closes only the parent popup; if value is > 1 it closes the specified number of parent popups in the chain (note that chained QMenus are considered 1 popup only & QPopupProxy separates chained menus) * * @see https://v2.quasar.dev/vue-directives/close-popup */ export type ClosePopup = Directive; /** * Function to call when scrolling occurs (identical to description of 'handler' prop of the Object form); If using the Object form, it is HIGHLY recommended to reference it from your vue component scope, otherwise the directive update cycle will continuously recreate the observer which hits performance hard * * @see https://v2.quasar.dev/vue-directives/intersection */ export type IntersectionValue = | { /** * The handler function to be called * @param entry The IntersectionObserverEntry object * @returns If you return Boolean false from the handler, the observer stops */ handler?: (entry?: IntersectionObserverEntry) => boolean; /** * Intersection observer options (can be omitted and all its props are optional) */ cfg?: { /** * Lets you define an alternative to the viewport as your root (through its DOM element); It is important to keep in mind that root needs to be an ancestor of the observed element */ root?: Element; /** * Allows you to specify the margins for the root, effectively allowing you to either grow or shrink the area used for intersections */ rootMargin?: string; /** * Threshold(s) at which to trigger callback, specified as a ratio, or list of ratios, of (visible area / total area) of the observed element */ threshold?: readonly any[]; }; } | ((entry: IntersectionObserverEntry) => boolean); /** * Function to call when scrolling occurs (identical to description of 'handler' prop of the Object form); If using the Object form, it is HIGHLY recommended to reference it from your vue component scope, otherwise the directive update cycle will continuously recreate the observer which hits performance hard * * Modifiers: * - once: * - type: boolean * - description: Call handler only once, when the conditions are first met * - examples: * - # v-intersection.once * * @see https://v2.quasar.dev/vue-directives/intersection */ export type Intersection = Directive; /** * Configuration object or trigger value * * @see https://v2.quasar.dev/vue-directives/morph */ export type MorphValue = | { /** * Name of the morph group the element belongs to */ group?: string; /** * Name of the morph inside the group that the element belongs to */ name?: string; /** * Current value of the group model; when it becomes the same as the 'name' it triggers the morphing */ model?: string; /** * Duration of the animation (in milliseconds) * Default value: 300 */ duration?: number; /** * Delay for the animation (in milliseconds) * Default value: 0 */ delay?: number; /** * Timing function for the animation (CSS easing format) * Default value: 'ease-in-out' */ easing?: string; /** * Fill mode for the animation * Default value: 'none' */ fill?: string; /** * Class names to be added to the destination element during the animation */ classes?: string; /** * Styles to be added to the destination element during the animation */ style?: string | any; /** * Use resize instead of scaling during animation */ resize?: boolean; /** * Use CSS animations instead of the Animation API */ useCSS?: boolean; /** * Hide the spacer for the initial element during animation; Use it if the initial element is not removed or resizing of the space occupied by the initial element is not desired */ hideFromClone?: boolean; /** * Keep a clone of the final element visible during animation */ keepToClone?: boolean; /** * Use an opacity tween between the initial and final elements */ tween?: boolean; /** * If using tween it is the initial opacity of the initial element (will be animated to 0) - the initial element is placed on top of the final element * Default value: 0.6 */ tweenFromOpacity?: number; /** * If using tween it is the initial opacity of the final element (will be animated to 1) * Default value: 0.5 */ tweenToOpacity?: number; /** * Delay animation start for that number of milliseconds, or until a 'transitionend' event is emitted by the destination element, or until the promise is resolved (if the promise is rejected the morphing will abort, but the 'toggle function' was already called) * Default value: 0 */ waitFor?: number | string | Promise; /** * A function that will be called once the morphing is finished; Not called if morphing is aborted * @param direction 'to' if the morphing was finished in the final state or 'from' if it was finished in the initial state * @param aborted Was the morphing aborted? */ onEnd?: (direction?: "to" | "from", aborted?: boolean) => void; } | any; /** * Configuration object or trigger value * * Directive argument: * - type: string * - description: x:x2:y:z, where x is the morph element name, x2 is the morph group, y is the animation duration (in milliseconds) and z is the amount of time to wait (in milliseconds) or the 'transitionend' string * - examples: * - # v-morph:name="options" * - # v-morph:name:groupName="options" * - # v-morph:name:groupName:400="options" * - # v-morph:name:groupName:400:100="options" * - # v-morph:name:groupName:400:transitionend="options" * * Modifiers: * - resize: * - type: boolean * - description: Use resize instead of scale transform for morph (forceResize option of the morph function) * - useCSS: * - type: boolean * - description: Use CSS animations for morph (forceCssAnimation option of the morph function) * - hideFromClone: * - type: boolean * - description: Hide the spacer for the initial element (hideFromClone option of the morph function) * - keepToClone: * - type: boolean * - description: Keep the final element visible while morphing (keepToClone option of the morph function) * - tween: * - type: boolean * - description: Use opacity tween morphing between initial and final elements (tween option of the morph function) * * @see https://v2.quasar.dev/vue-directives/morph */ export type Morph = Directive; /** * Function to call when mutation occurs; It is HIGHLY recommended to reference it from your vue component scope, otherwise the directive update cycle will continuously recreate the observer which hits performance hard * * @see https://v2.quasar.dev/vue-directives/mutation */ export type MutationValue = ( mutationList: { /** * Type of mutation */ type?: "childList" | "attributes" | "characterData"; /** * The DOM element that the mutation affected, depending on the mutation type */ target?: Element; /** * The NodeList of the nodes that have been added */ addedNodes?: readonly any[]; /** * The NodeList of the nodes that have been removed */ removedNodes?: readonly any[]; /** * The previous sibling of the added or removed nodes, or null */ previousSibling?: any; /** * The next sibling of the added or removed nodes, or null */ nextSibling?: any; /** * The local name of the changed attribute, or null */ attributeName?: string; /** * The namespace of the changed attribute, or null */ attributeNamespace?: string; /** * Value depends on the mutation type; For attributes, it is the value of the changed attribute before the change; For characterData it is data of the changed node before the change; For childList it is null; Note that for this to work as expected, attributeOldValue or characterDataOldValue must be set */ oldValue?: string; }[], ) => boolean; /** * Function to call when mutation occurs; It is HIGHLY recommended to reference it from your vue component scope, otherwise the directive update cycle will continuously recreate the observer which hits performance hard * * Modifiers: * - once: * - type: boolean * - description: Call handler only once, when the first mutation was triggered, then stop monitoring * - examples: * - # v-mutation.once * - childList: * - type: boolean * - description: Monitor the target node (and, if 'subtree' is also set, its descendants) for the addition of new child nodes or removal of existing child nodes * - examples: * - # v-mutation.childList * - subtree: * - type: boolean * - description: Extend monitoring to the entire subtree of nodes rooted at target * - examples: * - # v-mutation.subtree * - attributes: * - type: boolean * - description: Watch for changes to the value of attributes on the node or nodes being monitored * - examples: * - # v-mutation.attributes * - characterData: * - type: boolean * - description: Monitor the specified target node or subtree for changes to the character data contained within the node or nodes * - examples: * - # v-mutation.characterData * - attributeOldValue: * - type: boolean * - description: Record the previous value of any attribute that changes when monitoring the node or nodes for attribute changes * - examples: * - # v-mutation.attributeOldValue * - characterDataOldValue: * - type: boolean * - description: Record the previous value of a node's text whenever the text changes on nodes being monitored * - examples: * - # v-mutation.characterDataOldValue * * @see https://v2.quasar.dev/vue-directives/mutation */ export type Mutation = Directive; /** * Boolean (if just wanting to enable/disable) or Object for configuring more options * * @see https://v2.quasar.dev/vue-directives/material-ripple */ export type RippleValue = | boolean | { /** * Trigger early/immediately on user interaction */ early?: boolean; /** * Stop click/touch event propagation */ stop?: boolean; /** * Ripple starts from the absolute center */ center?: boolean; /** * Color name from Quasar Color Palette; Overrides default dynamic color */ color?: string; /** * List of keyCode that should trigger the ripple */ keyCodes?: readonly any[] | number; }; /** * Boolean (if just wanting to enable/disable) or Object for configuring more options * * Directive argument: * - type: string * - description: Color name from Quasar Color Palette; Overrides default dynamic color * - examples: * - # v-ripple:orange-5 * * Modifiers: * - early: * - type: boolean * - description: Trigger early/immediately on user interaction * - stop: * - type: boolean * - description: Stop click/touch event propagation * - examples: * - # v-ripple.stop * - center: * - type: boolean * - description: Ripple starts from the absolute center * - examples: * - # v-ripple.center * * @see https://v2.quasar.dev/vue-directives/material-ripple */ export type Ripple = Directive; /** * Function to call when scrolling occurs (use undefined to disable) * * @see https://v2.quasar.dev/vue-directives/scroll */ export type ScrollValue = | ((verticalScrollPosition: number, horizontalScrollPosition: number) => void) | undefined; /** * Function to call when scrolling occurs (use undefined to disable) * * @see https://v2.quasar.dev/vue-directives/scroll */ export type Scroll = Directive; /** * Function to call when scrolling and element comes into the viewport (use undefined to disable) * * @see https://v2.quasar.dev/vue-directives/scroll-fire */ export type ScrollFireValue = ((el: Element) => void) | undefined; /** * Function to call when scrolling and element comes into the viewport (use undefined to disable) * * @see https://v2.quasar.dev/vue-directives/scroll-fire */ export type ScrollFire = Directive; /** * Function to call after user has hold touch/click for the specified amount of time (use undefined to disable) * * @see https://v2.quasar.dev/vue-directives/touch-hold */ export type TouchHoldValue = | ((details: { /** * Original JS event Object */ evt?: Event; /** * Triggered by a touch event */ touch?: boolean; /** * Triggered by a mouse event */ mouse?: boolean; /** * Event Position Object */ position?: { /** * Vertical offset from top of window */ top?: number; /** * Horizontal offset from left of window */ left?: number; }; /** * How long it took to trigger the event (in milliseconds) */ duration?: number; }) => void) | undefined; /** * Function to call after user has hold touch/click for the specified amount of time (use undefined to disable) * * Directive argument: * - type: string * - default: '600:5:7' * - description: x:y:z, where x is the amount of time to wait (in milliseconds), y is the touch event sensitivity (in pixels) and z is the mouse event sensitivity (in pixels) * - examples: * - # v-touch-hold:400="fnToCall" * - # v-touch-hold:400:15="fnToCall" * - # v-touch-hold:400:10:10="fnToCall" * * Modifiers: * - capture: * - type: boolean * - description: Use capture for touchstart event * - mouse: * - type: boolean * - description: Listen for mouse events too * - mouseCapture: * - type: boolean * - description: Use capture for mousedown event * * @see https://v2.quasar.dev/vue-directives/touch-hold */ export type TouchHold = Directive; /** * Handler for panning (use undefined to disable) * * @see https://v2.quasar.dev/vue-directives/touch-pan */ export type TouchPanValue = | ((details: { /** * Original JS event Object */ evt?: Event; /** * Triggered by a touch event */ touch?: boolean; /** * Triggered by a mouse event */ mouse?: boolean; /** * Event Position Object */ position?: { /** * Vertical offset from top of window */ top?: number; /** * Horizontal offset from left of window */ left?: number; }; /** * Direction of movement */ direction?: "up" | "right" | "down" | "left"; /** * Is first time the handler is called since movement started */ isFirst?: boolean; /** * Is last time the handler is called since movement ended */ isFinal?: boolean; /** * How long it took to trigger the event (in milliseconds) */ duration?: number; /** * Absolute distance (in pixels) since movement started from initial point */ distance?: { /** * Absolute distance horizontally */ x?: number; /** * Absolute distance vertically */ y?: number; }; /** * Distance (in pixels) since movement started from initial point */ offset?: { /** * Distance horizontally */ x?: number; /** * Distance vertically */ y?: number; }; /** * Delta of distance (in pixels) since handler was called last time */ delta?: { /** * Distance horizontally */ x?: number; /** * Distance vertically */ y?: number; }; }) => void) | undefined; /** * Handler for panning (use undefined to disable) * * Modifiers: * - stop: * - type: boolean * - description: Stop event propagation for touch events * - prevent: * - type: boolean * - description: Calls event.preventDefault() for touch events * - capture: * - type: boolean * - description: Use capture for touchstart event * - mouse: * - type: boolean * - description: Listen for mouse events too * - mouseCapture: * - type: boolean * - description: Use capture for mousedown event * - mouseAllDir: * - type: boolean * - description: Ignore initial mouse move direction (do not abort if the first mouse move is in an unaccepted direction) * - preserveCursor: * - type: boolean * - description: Prevent the mouse cursor from automatically displaying as grabbing when panning * - horizontal: * - type: boolean * - description: Catch horizontal (left/right) movement * - vertical: * - type: boolean * - description: Catch vertical (up/down) movement * - up: * - type: boolean * - description: Catch panning to up * - right: * - type: boolean * - description: Catch panning to right * - down: * - type: boolean * - description: Catch panning to down * - left: * - type: boolean * - description: Catch panning to left * * @see https://v2.quasar.dev/vue-directives/touch-pan */ export type TouchPan = Directive; /** * Handler for touch-repeat (use undefined to disable) * * @see https://v2.quasar.dev/vue-directives/touch-repeat */ export type TouchRepeatValue = | ((details: { /** * Original JS event Object */ evt?: Event; /** * Triggered by a touch event */ touch?: boolean; /** * Triggered by a mouse event */ mouse?: boolean; /** * Triggered by a keyboard event */ keyboard?: boolean; /** * Event Position Object; Supplied ONLY if it's a touch or mouse event */ position?: { /** * Vertical offset from top of window */ top?: number; /** * Horizontal offset from left of window */ left?: number; }; /** * Keycode; Supplied ONLY if it's a keyboard event */ keyCode?: number; /** * How long it took to trigger the event (in milliseconds) */ duration?: number; /** * Handler called for nth time */ repeatCount?: number; /** * Unix timestamp of the moment when event started; Equivalent to Date.now() */ startTime?: number; }) => void) | undefined; /** * Handler for touch-repeat (use undefined to disable) * * Directive argument: * - type: string * - default: '0:600:300' * - description: String of numbers (at least one number) separated by ':' which defines the amount of time to wait for 1st handler call, 2nd, 3rd and so on; All subsequent calls will use last value as time to wait until triggering * - examples: * - # v-touch-repeat:0:400="fnToCall" * * Modifiers: * - capture: * - type: boolean * - description: Use capture for touchstart event * - mouse: * - type: boolean * - description: Listen for mouse events too * - mouseCapture: * - type: boolean * - description: Use capture for mousedown event * - keyCapture: * - type: boolean * - description: Use capture for keydown event * - esc: * - type: boolean * - description: Catch ESC key * - tab: * - type: boolean * - description: Catch TAB key * - enter: * - type: boolean * - description: Catch ENTER key * - space: * - type: boolean * - description: Catch SPACE key * - up: * - type: boolean * - description: Catch UP arrow key * - left: * - type: boolean * - description: Catch LEFT arrow key * - right: * - type: boolean * - description: Catch RIGHT arrow key * - down: * - type: boolean * - description: Catch DOWN key * - delete: * - type: boolean * - description: Catch DELETE key * - [keycode]: * - type: number * - description: Key code to catch * - examples: * - # v-touch-repeat.68="fnToCall" * * @see https://v2.quasar.dev/vue-directives/touch-repeat */ export type TouchRepeat = Directive; /** * Handler for swipe (use undefined to disable) * * @see https://v2.quasar.dev/vue-directives/touch-swipe */ export type TouchSwipeValue = | ((details: { /** * Original JS event Object */ evt?: Event; /** * Triggered by a touch event */ touch?: boolean; /** * Triggered by a mouse event */ mouse?: boolean; /** * Direction of movement */ direction?: "up" | "right" | "down" | "left"; /** * How long it took to trigger the event (in milliseconds) */ duration?: number; /** * Absolute distance (in pixels) since movement started from initial point */ distance?: { /** * Absolute distance horizontally */ x?: number; /** * Absolute distance vertically */ y?: number; }; }) => void) | undefined; /** * Handler for swipe (use undefined to disable) * * Directive argument: * - type: string * - default: '6e-2:6:50' * - description: x:y:z, where x is minimum velocity (dist/time; please use float without a dot, example: 6e-2 which is equivalent to 6 * 10^-2 = 0.06), y is minimum distance on first move on mobile, z is minimum distance on desktop until deciding if it's a swipe indeed * - examples: * - # v-touch-swipe:7e-2:10:100="fnToCall" * * Modifiers: * - capture: * - type: boolean * - description: Use capture for touchstart event * - mouse: * - type: boolean * - description: Listen for mouse events too * - mouseCapture: * - type: boolean * - description: Use capture for mousedown event * - horizontal: * - type: boolean * - description: Catch horizontal (left/right) movement * - vertical: * - type: boolean * - description: Catch vertical (up/down) movement * - up: * - type: boolean * - description: Catch swipe to up * - right: * - type: boolean * - description: Catch swipe to right * - down: * - type: boolean * - description: Catch swipe to down * - left: * - type: boolean * - description: Catch swipe to left * * @see https://v2.quasar.dev/vue-directives/touch-swipe */ export type TouchSwipe = Directive; export interface QAjaxBarProps { /** * Position within window of where QAjaxBar should be displayed * Default value: 'top' */ position?: "top" | "right" | "bottom" | "left" | undefined; /** * Size in CSS units, including unit name * Default value: '2px' */ size?: string | undefined; /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Reverse direction of progress */ reverse?: boolean | undefined; /** * Skip Ajax hijacking (not a reactive prop) */ skipHijack?: boolean | undefined; /** * Filter which URL should trigger start() + stop() * @param url The URL being triggered * @returns Should the URL received as param trigger start() + stop()? */ hijackFilter?: ((url: string) => boolean) | undefined; /** * Emitted when bar is triggered to appear */ onStart?: () => void; /** * Emitted when bar has finished its job */ onStop?: () => void; } export interface QAjaxBarSlots {} export interface QAjaxBar extends ComponentPublicInstance { /** * Notify bar you are waiting for a new process to finish * @param speed Delay (in milliseconds) between progress auto-increments; If delay is 0 then it disables auto-incrementing * @returns Number of active simultaneous sessions */ start: (speed?: number) => number; /** * Manually trigger a bar progress increment * @param amount Amount (0 < x <= 100) to increment with * @returns Number of active simultaneous sessions */ increment: (amount?: number) => number; /** * Notify bar that one process you were waiting has finished * @returns Number of active simultaneous sessions */ stop: () => number; } export interface QAvatarProps { /** * Size in CSS units, including unit name or standard size name (xs|sm|md|lg|xl) */ size?: string | undefined; /** * The size in CSS units, including unit name, of the content (icon, text) */ fontSize?: string | undefined; /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Overrides text color (if needed); Color name from the Quasar Color Palette */ textColor?: NamedColor | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ icon?: string | undefined; /** * Removes border-radius so borders are squared */ square?: boolean | undefined; /** * Applies a small standard border-radius for a squared shape of the component */ rounded?: boolean | undefined; } export interface QAvatarSlots { /** * Optional; Suggestions: one character string, tag */ default: () => VNode[]; } export interface QAvatar extends ComponentPublicInstance {} export interface QBadgeProps { /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Overrides text color (if needed); Color name from the Quasar Color Palette */ textColor?: NamedColor | undefined; /** * Tell QBadge if it should float to the top right side of the relative positioned parent element or not */ floating?: boolean | undefined; /** * Applies a 0.8 opacity; Useful especially for floating QBadge */ transparent?: boolean | undefined; /** * Content can wrap to multiple lines */ multiLine?: boolean | undefined; /** * Badge's content as string; overrides default slot if specified */ label?: string | number | undefined; /** * Sets vertical-align CSS prop */ align?: "top" | "middle" | "bottom" | undefined; /** * Use 'outline' design (colored text and borders only) */ outline?: boolean | undefined; /** * Makes a rounded shaped badge */ rounded?: boolean | undefined; } export interface QBadgeSlots { /** * This is where QBadge content goes, if not using 'label' property */ default: () => VNode[]; } export interface QBadge extends ComponentPublicInstance {} export interface QBannerProps { /** * Display actions on same row as content */ inlineActions?: boolean | undefined; /** * Dense mode; occupies less space */ dense?: boolean | undefined; /** * Applies a small standard border-radius for a squared shape of the component */ rounded?: boolean | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; } export interface QBannerSlots { /** * This is where Banner content goes */ default: () => VNode[]; /** * Slot for displaying an avatar (suggestions: QIcon, QAvatar) */ avatar: () => VNode[]; /** * Slot for Banner action (suggestions: QBtn) */ action: () => VNode[]; } export interface QBanner extends ComponentPublicInstance {} export interface QBarProps { /** * Dense mode; occupies less space */ dense?: boolean | undefined; /** * The component background color lights up the parent's background (as opposed to default behavior which is to darken it); Works unless you specify a CSS background color for it * Default value: null */ dark?: boolean | null | undefined; } export interface QBarSlots { /** * Default slot in the devland unslotted content of the component */ default: () => VNode[]; } export interface QBar extends ComponentPublicInstance {} export interface QBreadcrumbsProps { /** * The string used to separate the breadcrumbs * Default value: '/' */ separator?: string | undefined; /** * The color of the active breadcrumb, which can be any color from the Quasar Color Palette * Default value: 'primary' */ activeColor?: NamedColor | undefined; /** * The gutter value allows you control over the space between the breadcrumb elements. * Default value: 'sm' */ gutter?: "none" | "xs" | "sm" | "md" | "lg" | "xl" | undefined; /** * The color used to color the separator, which can be any color from the Quasar Color Palette */ separatorColor?: NamedColor | undefined; /** * Specify how to align the breadcrumbs horizontally * Default value: 'left' */ align?: "left" | "center" | "right" | "between" | "around" | "evenly" | undefined; } export interface QBreadcrumbsSlots { /** * Default slot in the devland unslotted content of the component */ default: () => VNode[]; /** * HTML or component you can slot in to separate the breadcrumbs */ separator: () => VNode[]; } export interface QBreadcrumbs extends ComponentPublicInstance {} export interface QBreadcrumbsElProps { /** * Equivalent to Vue Router 'to' property; Superseded by 'href' prop if used */ to?: string | any | undefined; /** * Equivalent to Vue Router 'exact' property; Superseded by 'href' prop if used */ exact?: boolean | undefined; /** * Equivalent to Vue Router 'replace' property; Superseded by 'href' prop if used */ replace?: boolean | undefined; /** * Equivalent to Vue Router 'active-class' property; Superseded by 'href' prop if used * Default value: 'q-router-link--active' */ activeClass?: string | undefined; /** * Equivalent to Vue Router 'active-class' property; Superseded by 'href' prop if used * Default value: 'q-router-link--exact-active' */ exactActiveClass?: string | undefined; /** * Native link href attribute; Has priority over the 'to'/'exact'/'replace'/'active-class'/'exact-active-class' props */ href?: string | undefined; /** * Native link target attribute; Use it only along with 'href' prop; Has priority over the 'to'/'exact'/'replace'/'active-class'/'exact-active-class' props */ target?: string | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * The label text for the breadcrumb */ label?: string | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ icon?: string | undefined; /** * HTML tag to use * Default value: 'span' */ tag?: string | undefined; /** * Emitted when the component is clicked * @param evt JS event object; If you are using route navigation ('to'/'replace' props) and you want to cancel navigation then call evt.preventDefault() synchronously in your event handler * @param go Available ONLY if you are using route navigation ('to'/'replace' props); When you need to control the time at which the component should trigger the route navigation then call evt.preventDefault() synchronously and then call this function at your convenience; Useful if you have async work to be done before the actual route navigation or if you want to redirect somewhere else */ onClick?: ( evt: Event, go?: (opts?: { /** * Equivalent to Vue Router 'to' property; Specify it explicitly otherwise it will be set with same value as component's 'to' prop */ to?: string | any; /** * Equivalent to Vue Router 'replace' property; Specify it explicitly otherwise it will be set with same value as component's 'replace' prop */ replace?: boolean; /** * Return the router error, if any; Otherwise the returned Promise will always fulfill */ returnRouterError?: boolean; }) => Promise, ) => void; } export interface QBreadcrumbsElSlots { /** * This is where custom content goes, unless 'icon' and 'label' props are not enough */ default: () => VNode[]; } export interface QBreadcrumbsEl extends ComponentPublicInstance {} export interface QBtnProps { /** * Size in CSS units, including unit name or standard size name (xs|sm|md|lg|xl) */ size?: string | undefined; /** * 1) Define the button native type attribute (submit, reset, button) or 2) render component with tag so you can access events even if disable or 3) Use 'href' prop and specify 'type' as a media tag * Default value: 'button' */ type?: string | undefined; /** * Equivalent to Vue Router 'to' property; Superseded by 'href' prop if used */ to?: string | any | undefined; /** * Equivalent to Vue Router 'replace' property; Superseded by 'href' prop if used */ replace?: boolean | undefined; /** * Native link href attribute; Has priority over the 'to' and 'replace' props */ href?: string | undefined; /** * Native link target attribute; Use it only with 'to' or 'href' props */ target?: string | undefined; /** * The text that will be shown on the button */ label?: string | number | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ icon?: string | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ iconRight?: string | undefined; /** * Use 'outline' design */ outline?: boolean | undefined; /** * Use 'flat' design */ flat?: boolean | undefined; /** * Remove shadow */ unelevated?: boolean | undefined; /** * Applies a more prominent border-radius for a squared shape button */ rounded?: boolean | undefined; /** * Use 'push' design */ push?: boolean | undefined; /** * Removes border-radius so borders are squared */ square?: boolean | undefined; /** * Applies a glossy effect */ glossy?: boolean | undefined; /** * Makes button size and shape to fit a Floating Action Button */ fab?: boolean | undefined; /** * Makes button size and shape to fit a small Floating Action Button */ fabMini?: boolean | undefined; /** * Apply custom padding (vertical [horizontal]); Size in CSS units, including unit name or standard size name (none|xs|sm|md|lg|xl); Also removes the min width and height when set */ padding?: string | undefined; /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Overrides text color (if needed); Color name from the Quasar Color Palette */ textColor?: NamedColor | undefined; /** * Avoid turning label text into caps (which happens by default) */ noCaps?: boolean | undefined; /** * Avoid label text wrapping */ noWrap?: boolean | undefined; /** * Dense mode; occupies less space */ dense?: boolean | undefined; /** * Configure material ripple (disable it by setting it to 'false' or supply a config object) * Default value: true */ ripple?: boolean | any | undefined; /** * Tabindex HTML attribute value */ tabindex?: number | string | undefined; /** * Label or content alignment * Default value: 'center' */ align?: "left" | "right" | "center" | "around" | "between" | "evenly" | undefined; /** * Stack icon and label vertically instead of on same line (like it is by default) */ stack?: boolean | undefined; /** * When used on flexbox parent, button will stretch to parent's height */ stretch?: boolean | undefined; /** * Put button into loading state (displays a QSpinner -- can be overridden by using a 'loading' slot) * Default value: null */ loading?: boolean | null | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Makes a circle shaped button */ round?: boolean | undefined; /** * Percentage (0.0 < x < 100.0); To be used along 'loading' prop; Display a progress bar on the background */ percentage?: number | undefined; /** * Progress bar on the background should have dark color; To be used along with 'percentage' and 'loading' props */ darkPercentage?: boolean | undefined; /** * Emitted when the component is clicked * @param evt JS event object; If you are using route navigation ('to'/'replace' props) and you want to cancel navigation then call evt.preventDefault() synchronously in your event handler * @param go Available ONLY if you are using route navigation ('to'/'replace' props); When you need to control the time at which the component should trigger the route navigation then call evt.preventDefault() synchronously and then call this function at your convenience; Useful if you have async work to be done before the actual route navigation or if you want to redirect somewhere else */ onClick?: ( evt: Event, go?: (opts?: { /** * Equivalent to Vue Router 'to' property; Specify it explicitly otherwise it will be set with same value as component's 'to' prop */ to?: string | any; /** * Equivalent to Vue Router 'replace' property; Specify it explicitly otherwise it will be set with same value as component's 'replace' prop */ replace?: boolean; /** * Return the router error, if any; Otherwise the returned Promise will always fulfill */ returnRouterError?: boolean; }) => Promise, ) => void; } export interface QBtnSlots { /** * Use for custom content, instead of relying on 'icon' and 'label' props */ default: () => VNode[]; /** * Override the default QSpinner when in 'loading' state */ loading: () => VNode[]; } export interface QBtn extends ComponentPublicInstance { /** * Emulate click on QBtn * @param evt JS event object */ click: (evt?: Event) => void; } export interface QBtnDropdownProps { /** * One of Quasar's embedded transitions * Default value: 'fade' */ transitionShow?: string | undefined; /** * One of Quasar's embedded transitions * Default value: 'fade' */ transitionHide?: string | undefined; /** * Transition duration (in milliseconds, without unit) * Default value: 300 */ transitionDuration?: string | number | undefined; /** * Model of the component defining shown/hidden state; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive */ modelValue?: boolean; /** * Size in CSS units, including unit name or standard size name (xs|sm|md|lg|xl) */ size?: string | undefined; /** * 1) Define the button native type attribute (submit, reset, button) or 2) render component with tag so you can access events even if disable or 3) Use 'href' prop and specify 'type' as a media tag * Default value: 'button' */ type?: string | undefined; /** * Equivalent to Vue Router 'to' property; Superseded by 'href' prop if used */ to?: string | any | undefined; /** * Equivalent to Vue Router 'replace' property; Superseded by 'href' prop if used */ replace?: boolean | undefined; /** * Native link href attribute; Has priority over the 'to' and 'replace' props */ href?: string | undefined; /** * Native link target attribute; Use it only with 'to' or 'href' props */ target?: string | undefined; /** * The text that will be shown on the button */ label?: string | number | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ icon?: string | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ iconRight?: string | undefined; /** * Use 'outline' design */ outline?: boolean | undefined; /** * Use 'flat' design */ flat?: boolean | undefined; /** * Remove shadow */ unelevated?: boolean | undefined; /** * Applies a more prominent border-radius for a squared shape button */ rounded?: boolean | undefined; /** * Use 'push' design */ push?: boolean | undefined; /** * Removes border-radius so borders are squared */ square?: boolean | undefined; /** * Applies a glossy effect */ glossy?: boolean | undefined; /** * Makes button size and shape to fit a Floating Action Button */ fab?: boolean | undefined; /** * Makes button size and shape to fit a small Floating Action Button */ fabMini?: boolean | undefined; /** * Apply custom padding (vertical [horizontal]); Size in CSS units, including unit name or standard size name (none|xs|sm|md|lg|xl); Also removes the min width and height when set */ padding?: string | undefined; /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Overrides text color (if needed); Color name from the Quasar Color Palette */ textColor?: NamedColor | undefined; /** * Avoid turning label text into caps (which happens by default) */ noCaps?: boolean | undefined; /** * Avoid label text wrapping */ noWrap?: boolean | undefined; /** * Dense mode; occupies less space */ dense?: boolean | undefined; /** * Configure material ripple (disable it by setting it to 'false' or supply a config object) * Default value: true */ ripple?: boolean | any | undefined; /** * Tabindex HTML attribute value */ tabindex?: number | string | undefined; /** * Label or content alignment * Default value: 'center' */ align?: "left" | "right" | "center" | "around" | "between" | "evenly" | undefined; /** * Stack icon and label vertically instead of on same line (like it is by default) */ stack?: boolean | undefined; /** * When used on flexbox parent, button will stretch to parent's height */ stretch?: boolean | undefined; /** * Put button into loading state (displays a QSpinner -- can be overridden by using a 'loading' slot) * Default value: null */ loading?: boolean | null | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Split dropdown icon into its own button */ split?: boolean | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ dropdownIcon?: string | undefined; /** * Disable main button (useful along with 'split' prop) */ disableMainBtn?: boolean | undefined; /** * Disables dropdown (dropdown button if using along 'split' prop) */ disableDropdown?: boolean | undefined; /** * Disables the rotation of the dropdown icon when state is toggled */ noIconAnimation?: boolean | undefined; /** * Style definitions to be attributed to the menu */ contentStyle?: VueStyleProp | undefined; /** * Class definitions to be attributed to the menu */ contentClass?: VueClassProp | undefined; /** * Allows the menu to cover the button. When used, the 'menu-self' prop is no longer effective */ cover?: boolean | undefined; /** * Allows the menu to not be dismissed by a click/tap outside of the menu or by hitting the ESC key; Also, an app route change won't dismiss it */ persistent?: boolean | undefined; /** * User cannot dismiss the popup by hitting ESC key; No need to set it if 'persistent' prop is also set */ noEscDismiss?: boolean | undefined; /** * Changing route app won't dismiss the popup; No need to set it if 'persistent' prop is also set */ noRouteDismiss?: boolean | undefined; /** * Allows any click/tap in the menu to close it; Useful instead of attaching events to each menu item that should close the menu on click/tap */ autoClose?: boolean | undefined; /** * (Accessibility) When the dropdown gets hidden, do not refocus on the DOM element that previously had focus */ noRefocus?: boolean | undefined; /** * (Accessibility) When the dropdown gets shown, do not switch focus on it */ noFocus?: boolean | undefined; /** * Two values setting the starting position or anchor point of the menu relative to its target * Default value: 'bottom end' */ menuAnchor?: | "top left" | "top middle" | "top right" | "top start" | "top end" | "center left" | "center middle" | "center right" | "center start" | "center end" | "bottom left" | "bottom middle" | "bottom right" | "bottom start" | "bottom end" | undefined; /** * Two values setting the menu's own position relative to its target * Default value: 'top end' */ menuSelf?: | "top left" | "top middle" | "top right" | "top start" | "top end" | "center left" | "center middle" | "center right" | "center start" | "center end" | "bottom left" | "bottom middle" | "bottom right" | "bottom start" | "bottom end" | undefined; /** * An array of two numbers to offset the menu horizontally and vertically in pixels */ menuOffset?: readonly any[] | undefined; /** * aria-label to be used on the dropdown toggle element */ toggleAriaLabel?: string | undefined; /** * Emitted when showing/hidden state changes; Is also used by v-model * @param value New state (showing/hidden) */ "onUpdate:modelValue"?: (value: boolean) => void; /** * Emitted after component has triggered show() * @param evt JS event object */ onShow?: (evt: Event) => void; /** * Emitted when component triggers show() but before it finishes doing it * @param evt JS event object */ onBeforeShow?: (evt: Event) => void; /** * Emitted after component has triggered hide() * @param evt JS event object */ onHide?: (evt: Event) => void; /** * Emitted when component triggers hide() but before it finishes doing it * @param evt JS event object */ onBeforeHide?: (evt: Event) => void; /** * Emitted when user clicks/taps on the main button (not the icon one, if using 'split') * @param evt JS event object */ onClick?: (evt: Event) => void; } export interface QBtnDropdownSlots { /** * Default slot in the devland unslotted content of the component */ default: () => VNode[]; /** * Customize main button's content through this slot, unless you're using the 'icon' and 'label' props */ label: () => VNode[]; /** * Override the default QSpinner when in 'loading' state */ loading: () => VNode[]; } export interface QBtnDropdown extends ComponentPublicInstance { /** * Triggers component to show * @param evt JS event object */ show: (evt?: Event) => void; /** * Triggers component to hide * @param evt JS event object */ hide: (evt?: Event) => void; /** * Triggers component to toggle between show/hide * @param evt JS event object */ toggle: (evt?: Event) => void; } export interface QBtnGroupProps { /** * Spread horizontally to all available space */ spread?: boolean | undefined; /** * Use 'outline' design for buttons */ outline?: boolean | undefined; /** * Use 'flat' design for buttons */ flat?: boolean | undefined; /** * Remove shadow on buttons */ unelevated?: boolean | undefined; /** * Applies a more prominent border-radius for squared shape buttons */ rounded?: boolean | undefined; /** * Removes border-radius so borders are squared */ square?: boolean | undefined; /** * Use 'push' design for buttons */ push?: boolean | undefined; /** * When used on flexbox parent, buttons will stretch to parent's height */ stretch?: boolean | undefined; /** * Applies a glossy effect */ glossy?: boolean | undefined; } export interface QBtnGroupSlots { /** * Suggestion: QBtn */ default: () => VNode[]; } export interface QBtnGroup extends ComponentPublicInstance {} export interface QBtnToggleProps { /** * Used to specify the name of the control; Useful if dealing with forms submitted directly to a URL */ name?: string | undefined; /** * Model of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive */ modelValue: any; /** * Array of Objects defining each option */ options: { /** * Key-value for attributes to be set on the button */ attrs?: any; /** * Label of option button; Use this prop and/or 'icon', but at least one is required */ label?: string; /** * Icon of option button; Use this prop and/or 'label', but at least one is required */ icon?: string; /** * Value of the option that will be used by component model */ value: any; /** * Slot name to use for this button content; Useful for customizing content or even add tooltips */ slot?: string; /** * Any other QBtn props (including class and style) */ [props: string]: any | undefined; }[]; /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Overrides text color (if needed); Color name from the Quasar Color Palette */ textColor?: NamedColor | undefined; /** * Color name for component from the Quasar Color Palette * Default value: 'primary' */ toggleColor?: NamedColor | undefined; /** * Overrides text color (if needed); Color name from the Quasar Color Palette */ toggleTextColor?: NamedColor | undefined; /** * Spread horizontally to all available space */ spread?: boolean | undefined; /** * Use 'outline' design */ outline?: boolean | undefined; /** * Use 'flat' design */ flat?: boolean | undefined; /** * Remove shadow */ unelevated?: boolean | undefined; /** * Applies a more prominent border-radius for a squared shape button */ rounded?: boolean | undefined; /** * Use 'push' design */ push?: boolean | undefined; /** * Applies a glossy effect */ glossy?: boolean | undefined; /** * Button size name or a CSS unit including unit name */ size?: string | undefined; /** * Apply custom padding (vertical [horizontal]); Size in CSS units, including unit name or standard size name (none|xs|sm|md|lg|xl); Also removes the min width and height when set */ padding?: string | undefined; /** * Avoid turning label text into caps (which happens by default) */ noCaps?: boolean | undefined; /** * Avoid label text wrapping */ noWrap?: boolean | undefined; /** * Configure material ripple (disable it by setting it to 'false' or supply a config object) * Default value: true */ ripple?: boolean | any | undefined; /** * Dense mode; occupies less space */ dense?: boolean | undefined; /** * Put component in readonly mode */ readonly?: boolean | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Stack icon and label vertically instead of on same line (like it is by default) */ stack?: boolean | undefined; /** * When used on flexbox parent, button will stretch to parent's height */ stretch?: boolean | undefined; /** * Clears model on click of the already selected button */ clearable?: boolean | undefined; /** * Emitted when the component needs to change the model; Is also used by v-model * @param value New model value */ "onUpdate:modelValue"?: (value: any) => void; /** * When using the 'clearable' property, this event is emitted when the already selected button is clicked */ onClear?: () => void; } export interface QBtnToggleSlots { /** * Suggestions: QTooltip, QBadge */ default: () => VNode[]; /** * Any other dynamic slots to be used with 'slot' property of the 'options' prop */ [key: string]: () => VNode[]; } export interface QBtnToggle extends ComponentPublicInstance {} export interface QCardProps { /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Removes border-radius so borders are squared */ square?: boolean | undefined; /** * Applies a 'flat' design (no default shadow) */ flat?: boolean | undefined; /** * Applies a default border to the component */ bordered?: boolean | undefined; /** * HTML tag to use * Default value: 'div' */ tag?: string | undefined; } export interface QCardSlots { /** * Default slot in the devland unslotted content of the component */ default: () => VNode[]; } export interface QCard extends ComponentPublicInstance {} export interface QCardActionsProps { /** * Specify how to align the actions; For horizontal mode, the default is 'left', while for vertical mode, the default is 'stretch' * Default value: # 'left'/'stretch' */ align?: "left" | "center" | "right" | "between" | "around" | "evenly" | "stretch" | undefined; /** * Display actions one below the other */ vertical?: boolean | undefined; } export interface QCardActionsSlots { /** * Suggestions: QBtn */ default: () => VNode[]; } export interface QCardActions extends ComponentPublicInstance {} export interface QCardSectionProps { /** * Display a horizontal section (will have no padding and can contain other QCardSection) */ horizontal?: boolean | undefined; /** * HTML tag to use * Default value: 'div' */ tag?: string | undefined; } export interface QCardSectionSlots { /** * Default slot in the devland unslotted content of the component */ default: () => VNode[]; } export interface QCardSection extends ComponentPublicInstance {} export interface QCarouselProps { /** * Fullscreen mode */ fullscreen?: boolean | undefined; /** * Changing route app won't exit fullscreen */ noRouteFullscreenExit?: boolean | undefined; /** * Model of the component defining the current panel's name; If a Number is used, it does not define the panel's index, but rather the panel's name which can also be an Integer; Either use this property (along with a listener for 'update:model-value' event) OR use the v-model directive. */ modelValue: any; /** * Equivalent to using Vue's native component on the content */ keepAlive?: boolean | undefined; /** * Equivalent to using Vue's native include prop for ; Values must be valid Vue component names */ keepAliveInclude?: string | readonly any[] | RegExp | undefined; /** * Equivalent to using Vue's native exclude prop for ; Values must be valid Vue component names */ keepAliveExclude?: string | readonly any[] | RegExp | undefined; /** * Equivalent to using Vue's native max prop for */ keepAliveMax?: number | undefined; /** * Enable transitions between panel (also see 'transition-prev' and 'transition-next' props) */ animated?: boolean | undefined; /** * Makes component appear as infinite (when reaching last panel, next one will become the first one) */ infinite?: boolean | undefined; /** * Enable swipe events (may interfere with content's touch/mouse events) */ swipeable?: boolean | undefined; /** * Default transitions and swipe actions will be on the vertical axis */ vertical?: boolean | undefined; /** * One of Quasar's embedded transitions (has effect only if 'animated' prop is set) * Default value: 'fade' */ transitionPrev?: string | undefined; /** * One of Quasar's embedded transitions (has effect only if 'animated' prop is set) * Default value: 'fade' */ transitionNext?: string | undefined; /** * Transition duration (in milliseconds, without unit) * Default value: 300 */ transitionDuration?: string | number | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Height of Carousel in CSS units, including unit name */ height?: string | undefined; /** * Applies a default padding to each slide, according to the usage of 'arrows' and 'navigation' props */ padding?: boolean | undefined; /** * Color name for QCarousel button controls (arrows, navigation) from the Quasar Color Palette */ controlColor?: NamedColor | undefined; /** * Color name for text color of QCarousel button controls (arrows, navigation) from the Quasar Color Palette */ controlTextColor?: NamedColor | undefined; /** * Type of button to use for controls (arrows, navigation) * Default value: 'flat' */ controlType?: "regular" | "flat" | "outline" | "push" | "unelevated" | undefined; /** * Jump to next slide (if 'true' or val > 0) or previous slide (if val < 0) at fixed time intervals (in milliseconds); 'false' disables autoplay, 'true' enables it for 5000ms intervals */ autoplay?: number | boolean | undefined; /** * Show navigation arrow buttons */ arrows?: boolean | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ prevIcon?: string | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ nextIcon?: string | undefined; /** * Show navigation dots */ navigation?: boolean | undefined; /** * Side to stick navigation to * Default value: # 'bottom'/'right' */ navigationPosition?: "top" | "right" | "bottom" | "left" | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ navigationIcon?: string | undefined; /** * Icon name following Quasar convention for the active (current slide) navigation icon; Make sure you have the icon library installed unless you are using 'img:' prefix */ navigationActiveIcon?: string | undefined; /** * Show thumbnails */ thumbnails?: boolean | undefined; /** * Emitted when fullscreen state changes * @param value Fullscreen state (showing/hidden) */ onFullscreen?: (value: boolean) => void; /** * Used by Vue on 'v-model:fullscreen' prop for updating its value * @param value Fullscreen state (showing/hidden) */ "onUpdate:fullscreen"?: (value: boolean) => void; /** * Emitted when the component changes the model; This event _isn't_ fired if the model is changed externally; Is also used by v-model * @param value New current panel name */ "onUpdate:modelValue"?: (value: string | number) => void; /** * Emitted before transitioning to a new panel * @param newVal Panel name towards transition is going * @param oldVal Panel name from which transition is happening */ onBeforeTransition?: (newVal: string | number, oldVal: string | number) => void; /** * Emitted after component transitioned to a new panel * @param newVal Panel name towards transition has occurred * @param oldVal Panel name from which transition has happened */ onTransition?: (newVal: string | number, oldVal: string | number) => void; } export interface QCarouselSlots { /** * Suggestion: QCarouselSlide */ default: () => VNode[]; /** * Slot specific for QCarouselControl */ control: () => VNode[]; /** * Slot for navigation icon/btn; Suggestion: QBtn * @param scope */ "navigation-icon": (scope: { /** * The 0-based index of corresponding slide */ index: number; /** * The available number of slides */ maxIndex: number; /** * The name of the corresponding slide */ name: any; /** * Is this the current slide? */ active: boolean; /** * Default QBtn props that can be binded to your own QBtn */ btnProps: any; /** * Default trigger when clicked/tapped on * @param evt JS event object */ onClick: (evt: Event) => void; }) => VNode[]; } export interface QCarousel extends ComponentPublicInstance { /** * Toggle the view to be fullscreen or not fullscreen */ toggleFullscreen: () => void; /** * Enter the fullscreen view */ setFullscreen: () => void; /** * Leave the fullscreen view */ exitFullscreen: () => void; /** * Go to next panel */ next: () => void; /** * Go to previous panel */ previous: () => void; /** * Go to specific panel * @param panelName Panel's name, which may be a String or Number; Number does not refers to panel index, but to its name, which may be an Integer */ goTo: (panelName: string | number) => void; } export interface QCarouselControlProps { /** * Side/corner to stick to * Default value: 'bottom-right' */ position?: | "top-right" | "top-left" | "bottom-right" | "bottom-left" | "top" | "right" | "bottom" | "left" | undefined; /** * An array of two numbers to offset the component horizontally and vertically (in pixels) * Default value: [18, 18] */ offset?: readonly any[] | undefined; } export interface QCarouselControlSlots { /** * Default slot in the devland unslotted content of the component */ default: () => VNode[]; } export interface QCarouselControl extends ComponentPublicInstance {} export interface QCarouselSlideProps { /** * Slide name */ name: any; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * URL pointing to a slide background image (use public folder) */ imgSrc?: string | undefined; } export interface QCarouselSlideSlots { /** * Default slot in the devland unslotted content of the component */ default: () => VNode[]; } export interface QCarouselSlide extends ComponentPublicInstance {} export interface QChatMessageProps { /** * Render as a sent message (so from current user) */ sent?: boolean | undefined; /** * Renders a label header/section only */ label?: string | undefined; /** * Color name (from the Quasar Color Palette) for chat bubble background */ bgColor?: NamedColor | undefined; /** * Color name (from the Quasar Color Palette) for chat bubble text */ textColor?: NamedColor | undefined; /** * Author's name */ name?: string | undefined; /** * URL to the avatar image of the author */ avatar?: string | undefined; /** * Array of strings that are the message body. Strings are not sanitized (see details in docs) */ text?: readonly any[] | undefined; /** * Creation timestamp */ stamp?: string | undefined; /** * 1-12 out of 12 (same as col-*) */ size?: string | undefined; /** * Render the label as HTML; This can lead to XSS attacks so make sure that you sanitize the message first */ labelHtml?: boolean | undefined; /** * Render the name as HTML; This can lead to XSS attacks so make sure that you sanitize the message first */ nameHtml?: boolean | undefined; /** * Render the text as HTML; This can lead to XSS attacks so make sure that you sanitize the message first */ textHtml?: boolean | undefined; /** * Render the stamp as HTML; This can lead to XSS attacks so make sure that you sanitize the message first */ stampHtml?: boolean | undefined; } export interface QChatMessageSlots { /** * You can use this slot to define a custom message (overrides props) */ default: () => VNode[]; /** * Slot for avatar; Suggestion: QAvatar, img */ avatar: () => VNode[]; /** * Slot for name; Overrides the 'name' prop */ name: () => VNode[]; /** * Slot for stamp; Overrides the 'stamp' prop */ stamp: () => VNode[]; /** * Slot for label; Overrides the 'label' prop */ label: () => VNode[]; } export interface QChatMessage extends ComponentPublicInstance {} export interface QCheckboxProps { /** * Used to specify the name of the control; Useful if dealing with forms submitted directly to a URL */ name?: string | undefined; /** * Size in CSS units, including unit name or standard size name (xs|sm|md|lg|xl) */ size?: string | undefined; /** * Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive * Default value: null */ modelValue: any | any[]; /** * Works when model ('value') is Array. It tells the component which value should add/remove when ticked/unticked */ val?: any | undefined; /** * What model value should be considered as checked/ticked/on? * Default value: true */ trueValue?: any | undefined; /** * What model value should be considered as unchecked/unticked/off? * Default value: false */ falseValue?: any | undefined; /** * What model value should be considered as 'indeterminate'? * Default value: null */ indeterminateValue?: any | undefined; /** * Determines toggle order of the two states ('t' stands for state of true, 'f' for state of false); If 'toggle-indeterminate' is true, then the order is: indet -> first state -> second state -> indet (and repeat), otherwise: indet -> first state -> second state -> first state -> second state -> ... */ toggleOrder?: "tf" | "ft" | undefined; /** * When user clicks/taps on the component, should we toggle through the indeterminate state too? */ toggleIndeterminate?: boolean | undefined; /** * Label to display along the component (or use the default slot instead of this prop) */ label?: string | undefined; /** * Label (if any specified) should be displayed on the left side of the component */ leftLabel?: boolean | undefined; /** * The icon to be used when the model is truthy (instead of the default design) */ checkedIcon?: string | undefined; /** * The icon to be used when the toggle is falsy (instead of the default design) */ uncheckedIcon?: string | undefined; /** * The icon to be used when the model is indeterminate (instead of the default design) */ indeterminateIcon?: string | undefined; /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Should the color (if specified any) be kept when the component is unticked/ off? */ keepColor?: boolean | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Dense mode; occupies less space */ dense?: boolean | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Tabindex HTML attribute value */ tabindex?: number | string | undefined; /** * Emitted when the component needs to change the model; Is also used by v-model * @param value New model value * @param evt JS event object */ "onUpdate:modelValue"?: (value: any, evt: Event) => void; } export interface QCheckboxSlots { /** * Default slot can be used as label, unless 'label' prop is specified; Suggestion: string */ default: () => VNode[]; } export interface QCheckbox extends ComponentPublicInstance { /** * Toggle the state (of the model) */ toggle: () => void; } export interface QChipProps { /** * Dense mode; occupies less space */ dense?: boolean | undefined; /** * QChip size name or a CSS unit including unit name */ size?: string | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ icon?: string | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ iconRight?: string | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ iconRemove?: string | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ iconSelected?: string | undefined; /** * Chip's content as string; overrides default slot if specified */ label?: string | number | undefined; /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Overrides text color (if needed); Color name from the Quasar Color Palette */ textColor?: NamedColor | undefined; /** * Model of the component determining if QChip should be rendered or not * Default value: true */ modelValue?: boolean; /** * Model for QChip if it's selected or not * Default value: null */ selected?: boolean | null | undefined; /** * Sets a low value for border-radius instead of the default one, making it close to a square */ square?: boolean | undefined; /** * Display using the 'outline' design */ outline?: boolean | undefined; /** * Is QChip clickable? If it's the case, then it will add hover effects and emit 'click' events */ clickable?: boolean | undefined; /** * If set, then it displays a 'remove' icon that when clicked the QChip emits 'remove' event */ removable?: boolean | undefined; /** * Configure material ripple (disable it by setting it to 'false' or supply a config object) * Default value: true */ ripple?: boolean | any | undefined; /** * aria-label to be used on the remove icon */ removeAriaLabel?: string | undefined; /** * Tabindex HTML attribute value */ tabindex?: number | string | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Emitted on QChip click if 'clickable' property is set * @param evt JS event object */ onClick?: (evt: Event) => void; /** * Emitted when the component needs to change the model; Is also used by v-model * @param value New model value */ "onUpdate:modelValue"?: (value: any) => void; /** * Used by Vue on 'v-model:selected' for updating its value * @param state Selected state */ "onUpdate:selected"?: (state: boolean) => void; /** * Works along with 'value' and 'removable' prop. Emitted when toggling rendering state of the QChip * @param state Render state (render or not) */ onRemove?: (state: boolean) => void; } export interface QChipSlots { /** * This is where QChip content goes, if not using 'label' property */ default: () => VNode[]; } export interface QChip extends ComponentPublicInstance {} export interface QCircularProgressProps { /** * Size in CSS units, including unit name or standard size name (xs|sm|md|lg|xl) */ size?: string | undefined; /** * Current progress (must be between min/max) * Default value: 0 */ value?: number | undefined; /** * Minimum value defining 'no progress' (must be lower than 'max') * Default value: 0 */ min?: number | undefined; /** * Maximum value defining 100% progress made (must be higher than 'min') * Default value: 100 */ max?: number | undefined; /** * Color name for the arc progress from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Color name for the center part of the component from the Quasar Color Palette */ centerColor?: NamedColor | undefined; /** * Color name for the track of the component from the Quasar Color Palette */ trackColor?: NamedColor | undefined; /** * Size of text in CSS units, including unit name. Suggestion: use 'em' units to sync with component size */ fontSize?: string | undefined; /** * Rounding the arc of progress */ rounded?: boolean | undefined; /** * Thickness of progress arc as a ratio (0.0 < x < 1.0) of component size * Default value: 0.2 */ thickness?: number | undefined; /** * Angle to rotate progress arc by * Default value: 0 */ angle?: number | undefined; /** * Put component into 'indeterminate' state; Ignores 'value' prop */ indeterminate?: boolean | undefined; /** * Enables the default slot and uses it (if available), otherwise it displays the 'value' prop as text; Make sure the text has enough space to be displayed inside the component */ showValue?: boolean | undefined; /** * Reverses the direction of progress; Only for determined state */ reverse?: boolean | undefined; /** * No animation when model changes */ instantFeedback?: boolean | undefined; /** * Animation speed (in milliseconds, without unit) * Default value: 600 */ animationSpeed?: string | number | undefined; } export interface QCircularProgressSlots { /** * Used for component content only if 'show-value' prop is set; Make sure the content has enough space to be displayed inside the component */ default: () => VNode[]; } export interface QCircularProgress extends ComponentPublicInstance {} export interface QColorProps { /** * Used to specify the name of the control; Useful if dealing with forms submitted directly to a URL */ name?: string | undefined; /** * Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive */ modelValue: string | null | undefined; /** * The default value to show when the model doesn't have one */ defaultValue?: string | undefined; /** * The default view of the picker * Default value: 'spectrum' */ defaultView?: "spectrum" | "tune" | "palette" | undefined; /** * Forces a certain model format upon the model * Default value: 'auto' */ formatModel?: "auto" | "hex" | "rgb" | "hexa" | "rgba" | undefined; /** * Use a custom palette of colors for the palette tab * Default value: # hard-coded palette */ palette?: readonly any[] | undefined; /** * Removes border-radius so borders are squared */ square?: boolean | undefined; /** * Applies a 'flat' design (no default shadow) */ flat?: boolean | undefined; /** * Applies a default border to the component */ bordered?: boolean | undefined; /** * Do not render header */ noHeader?: boolean | undefined; /** * Do not render header tabs (only the input) */ noHeaderTabs?: boolean | undefined; /** * Do not render footer; Useful when you want a specific view ('default-view' prop) and don't want the user to be able to switch it */ noFooter?: boolean | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Put component in readonly mode */ readonly?: boolean | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Emitted when the component needs to change the model; Is also used by v-model * @param value New model value */ "onUpdate:modelValue"?: (value: string | null) => void; /** * Emitted on lazy model value change (after user finishes selecting a color) * @param value New model value */ onChange?: (value: any) => void; } export interface QColorSlots {} export interface QColor extends ComponentPublicInstance {} export interface QDateProps { /** * Used to specify the name of the control; Useful if dealing with forms submitted directly to a URL */ name?: string | undefined; /** * Display the component in landscape mode */ landscape?: boolean | undefined; /** * Mask (formatting string) used for parsing and formatting value * Default value: 'YYYY/MM/DD' */ mask?: string | undefined; /** * Locale formatting options */ locale?: | { /** * List of full day names (DDDD), starting with Sunday */ days?: readonly any[]; /** * List of short day names (DDD), starting with Sunday */ daysShort?: readonly any[]; /** * List of full month names (MMMM), starting with January */ months?: readonly any[]; /** * List of short month names (MMM), starting with January */ monthsShort?: readonly any[]; } | undefined; /** * Specify calendar type * Default value: 'gregorian' */ calendar?: "gregorian" | "persian" | undefined; /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Overrides text color (if needed); Color name from the Quasar Color Palette */ textColor?: NamedColor | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Removes border-radius so borders are squared */ square?: boolean | undefined; /** * Applies a 'flat' design (no default shadow) */ flat?: boolean | undefined; /** * Applies a default border to the component */ bordered?: boolean | undefined; /** * Put component in readonly mode */ readonly?: boolean | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Date(s) of the component; Must be Array if using 'multiple' prop; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive */ modelValue: string | any[] | any | null | undefined; /** * When specified, it overrides the default header title; Makes sense when not in 'minimal' mode */ title?: string | undefined; /** * When specified, it overrides the default header subtitle; Makes sense when not in 'minimal' mode */ subtitle?: string | undefined; /** * The default year and month to display (in YYYY/MM format) when model is unfilled (undefined or null); Please ensure it is within the navigation min/max year-month (if using them) */ defaultYearMonth?: string | undefined; /** * The view which will be displayed by default * Default value: 'Calendar' */ defaultView?: "Calendar" | "Months" | "Years" | undefined; /** * Show the years selector in months view */ yearsInMonthView?: boolean | undefined; /** * A list of events to highlight on the calendar; If using a function, it receives the date as a String and must return a Boolean (matches or not); If using a function then for best performance, reference it from your scope and do not define it inline * @param date The current date being processed. * @returns If true, the current date will be highlighted */ events?: readonly any[] | ((date: string) => boolean) | undefined; /** * Color name (from the Quasar Color Palette); If using a function, it receives the date as a String and must return a String (color for the received date); If using a function then for best performance, reference it from your scope and do not define it inline * @param date The current date being processed. * @returns Color for the current date. */ eventColor?: string | ((date: string) => string) | undefined; /** * Optionally configure the days that are selectable; If using a function, it receives the date as a String and must return a Boolean (is date acceptable or not); If using a function then for best performance, reference it from your scope and do not define it inline; Incompatible with 'range' prop * @param date The current date being processed. * @returns If true, the current date will be made available for selection */ options?: readonly any[] | ((date: string) => boolean) | undefined; /** * Lock user from navigating below a specific year+month (in YYYY/MM format); This prop is not used to correct the model; You might want to also use 'default-year-month' prop */ navigationMinYearMonth?: string | undefined; /** * Lock user from navigating above a specific year+month (in YYYY/MM format); This prop is not used to correct the model; You might want to also use 'default-year-month' prop */ navigationMaxYearMonth?: string | undefined; /** * Remove ability to unselect a date; It does not apply to selecting a range over already selected dates */ noUnset?: boolean | undefined; /** * Sets the day of the week that is considered the first day (0 - Sunday, 1 - Monday, ...); This day will show in the left-most column of the calendar * Default value: # based on configured Quasar lang language */ firstDayOfWeek?: string | number | undefined; /** * Display a button that selects the current day */ todayBtn?: boolean | undefined; /** * Don’t display the header */ minimal?: boolean | undefined; /** * Allow multiple selection; Model must be Array */ multiple?: boolean | undefined; /** * Allow range selection; Partial compatibility with 'options' prop: selected ranges might also include 'unselectable' days */ range?: boolean | undefined; /** * Emit model when user browses month and year too; ONLY for single selection (non-multiple, non-range) */ emitImmediately?: boolean | undefined; /** * Emitted when the component needs to change the model; Is also used by v-model * @param value New model value * @param reason Reason of the user interaction (what was picked) * @param details Object of properties on the new model */ "onUpdate:modelValue"?: ( value: string | readonly any[] | any | null, reason: | "add-day" | "remove-day" | "add-range" | "remove-range" | "mask" | "locale" | "year" | "month", details: { /** * The year of the date that the user has clicked/tapped on */ year: number; /** * The month of the date that the user has clicked/tapped on */ month: number; /** * The day of the month that the user has clicked/tapped on */ day: number; /** * Object of properties of the range starting point (only if range) */ from?: { /** * The year */ year: number; /** * The month */ month: number; /** * The day of month */ day: number; }; /** * Object of properties of the range ending point (only if range) */ to?: { /** * The year */ year: number; /** * The month */ month: number; /** * The day of month */ day: number; }; }, ) => void; /** * Emitted when user navigates to a different month or year (and even when the model changes from an outside source) * @param view Definition of the current view (year, month) */ onNavigation?: (view: { /** * The year */ year: number; /** * The month */ month: number; }) => void; /** * User has started a range selection * @param from Definition of date from where the range begins */ onRangeStart?: (from: { /** * The year */ year: number; /** * The month */ month: number; /** * The day of month */ day: number; }) => void; /** * User has ended a range selection * @param range Definition of the range */ onRangeEnd?: (range: { /** * Definition of date from where the range begins */ from: { /** * The year */ year: number; /** * The month */ month: number; /** * The day of month */ day: number; }; /** * Definition of date to where the range ends */ to: { /** * The year */ year: number; /** * The month */ month: number; /** * The day of month */ day: number; }; }) => void; } export interface QDateSlots { /** * This is where additional buttons can go */ default: () => VNode[]; } export interface QDate extends ComponentPublicInstance { /** * Change model to today */ setToday: () => void; /** * Change current view * @param view QDate view name */ setView: (view: "Calendar" | "Months" | "Years") => void; /** * Increment or decrement calendar view's month or year * @param type What to increment/decrement * @param descending Decrement? */ offsetCalendar: (type: "month" | "year", descending?: boolean) => void; /** * Change current year and month of the Calendar view; It gets corrected if using navigation-min/max-year-month and sets the current view to Calendar * @param year The year * @param month The month */ setCalendarTo: (year?: number, month?: number) => void; /** * Configure the current editing range * @param from Definition of date from where the range begins * @param to Definition of date to where the range ends */ setEditingRange: ( from?: { /** * The year */ year?: number; /** * The month */ month?: number; /** * The day of month */ day?: number; }, to?: { /** * The year */ year?: number; /** * The month */ month?: number; /** * The day of month */ day?: number; }, ) => void; } export interface QDialogProps { /** * One of Quasar's embedded transitions * Default value: 'fade' */ transitionShow?: string | undefined; /** * One of Quasar's embedded transitions * Default value: 'fade' */ transitionHide?: string | undefined; /** * Transition duration (in milliseconds, without unit) * Default value: 300 */ transitionDuration?: string | number | undefined; /** * Model of the component defining shown/hidden state; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive * Default value: null */ modelValue?: boolean | null; /** * User cannot dismiss Dialog if clicking outside of it or hitting ESC key; Also, an app route change won't dismiss it */ persistent?: boolean | undefined; /** * User cannot dismiss Dialog by hitting ESC key; No need to set it if 'persistent' prop is also set */ noEscDismiss?: boolean | undefined; /** * User cannot dismiss Dialog by clicking outside of it; No need to set it if 'persistent' prop is also set */ noBackdropDismiss?: boolean | undefined; /** * Changing route app won't dismiss Dialog; No need to set it if 'persistent' prop is also set */ noRouteDismiss?: boolean | undefined; /** * Any click/tap inside of the dialog will close it */ autoClose?: boolean | undefined; /** * Put Dialog into seamless mode; Does not use a backdrop so user is able to interact with the rest of the page too */ seamless?: boolean | undefined; /** * Apply a backdrop filter; The value needs to be the same as in the CSS specs for backdrop-filter; The examples are not an exhaustive list */ backdropFilter?: string | undefined; /** * Put Dialog into maximized mode */ maximized?: boolean | undefined; /** * Dialog will try to render with same width as the window */ fullWidth?: boolean | undefined; /** * Dialog will try to render with same height as the window */ fullHeight?: boolean | undefined; /** * Stick dialog to one of the sides (top, right, bottom or left) * Default value: 'standard' */ position?: "standard" | "top" | "right" | "bottom" | "left" | undefined; /** * Forces content to have squared borders */ square?: boolean | undefined; /** * (Accessibility) When Dialog gets hidden, do not refocus on the DOM element that previously had focus */ noRefocus?: boolean | undefined; /** * (Accessibility) When Dialog gets shown, do not switch focus on it */ noFocus?: boolean | undefined; /** * Do not shake up the Dialog to catch user's attention */ noShake?: boolean | undefined; /** * Allow elements outside of the Dialog to be focusable; By default, for accessibility reasons, QDialog does not allow outer focus */ allowFocusOutside?: boolean | undefined; /** * Emitted when showing/hidden state changes; Is also used by v-model * @param value New state (showing/hidden) */ "onUpdate:modelValue"?: (value: boolean) => void; /** * Emitted after component has triggered show() * @param evt JS event object */ onShow?: (evt: Event) => void; /** * Emitted when component triggers show() but before it finishes doing it * @param evt JS event object */ onBeforeShow?: (evt: Event) => void; /** * Emitted after component has triggered hide() * @param evt JS event object */ onHide?: (evt: Event) => void; /** * Emitted when component triggers hide() but before it finishes doing it * @param evt JS event object */ onBeforeHide?: (evt: Event) => void; /** * Emitted when the Dialog shakes in order to catch user's attention, unless the 'no-shake' property is set */ onShake?: () => void; /** * Emitted when ESC key is pressed; Does not get emitted if Dialog is 'persistent' or it has 'no-esc-dismiss' set */ onEscapeKey?: () => void; } export interface QDialogSlots { /** * Default slot in the devland unslotted content of the component */ default: () => VNode[]; } export interface QDialog extends ComponentPublicInstance { /** * Triggers component to show * @param evt JS event object */ show: (evt?: Event) => void; /** * Triggers component to hide * @param evt JS event object */ hide: (evt?: Event) => void; /** * Triggers component to toggle between show/hide * @param evt JS event object */ toggle: (evt?: Event) => void; /** * Focus dialog; if you have content with autofocus attribute, it will directly focus it * @param selector Optional CSS selector to override default focusable element */ focus: (selector?: string) => void; /** * Shakes dialog * @param focusTarget Optional DOM Element to be focused after shake */ shake: (focusTarget?: Element) => void; /** * The DOM Element of the rendered content */ readonly contentEl: Element; } export interface QDrawerProps { /** * Model of the component defining shown/hidden state; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive * Default value: null */ modelValue?: boolean | null; /** * Side to attach to * Default value: 'left' */ side?: "left" | "right" | undefined; /** * Puts drawer into overlay mode (does not occupy space on screen, narrowing the page) */ overlay?: boolean | undefined; /** * Width of drawer (in pixels) * Default value: 300 */ width?: number | undefined; /** * Puts drawer into mini mode */ mini?: boolean | undefined; /** * Width of drawer (in pixels) when in mini mode * Default value: 57 */ miniWidth?: number | undefined; /** * Mini mode will expand as an overlay */ miniToOverlay?: boolean | undefined; /** * Disables animation of the drawer when toggling mini mode */ noMiniAnimation?: boolean | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Breakpoint (in pixels) of layout width up to which mobile mode is used * Default value: 1023 */ breakpoint?: number | undefined; /** * Overrides the default dynamic mode into which the drawer is put on * Default value: 'default' */ behavior?: "default" | "desktop" | "mobile" | undefined; /** * Applies a default border to the component */ bordered?: boolean | undefined; /** * Adds a default shadow to the header */ elevated?: boolean | undefined; /** * Prevents drawer from auto-closing when app's route changes; Also, an app route change won't hide it */ persistent?: boolean | undefined; /** * Forces drawer to be shown on screen on initial render if the layout width is above breakpoint, regardless of v-model; This is the default behavior when SSR is taken over by client on initial render */ showIfAbove?: boolean | undefined; /** * Disables the default behavior where drawer can be swiped into view; Useful for iOS platforms where it might interfere with Safari's 'swipe to go to previous/next page' feature */ noSwipeOpen?: boolean | undefined; /** * Disables the default behavior where drawer can be swiped out of view (applies to drawer content only); Useful for iOS platforms where it might interfere with Safari's 'swipe to go to previous/next page' feature */ noSwipeClose?: boolean | undefined; /** * Disables the default behavior where drawer backdrop can be swiped */ noSwipeBackdrop?: boolean | undefined; /** * Emitted when showing/hidden state changes; Is also used by v-model * @param value New state (showing/hidden) */ "onUpdate:modelValue"?: (value: boolean) => void; /** * Emitted after component has triggered show() * @param evt JS event object */ onShow?: (evt: Event) => void; /** * Emitted when component triggers show() but before it finishes doing it * @param evt JS event object */ onBeforeShow?: (evt: Event) => void; /** * Emitted after component has triggered hide() * @param evt JS event object */ onHide?: (evt: Event) => void; /** * Emitted when component triggers hide() but before it finishes doing it * @param evt JS event object */ onBeforeHide?: (evt: Event) => void; /** * Emitted when drawer toggles between occupying space on page or not * @param state New state */ onOnLayout?: (state: boolean) => void; /** * Emitted when user clicks/taps on the component; Useful for when taking a decision to toggle mini mode * @param evt JS event object */ onClick?: (evt: Event) => void; /** * Emitted when user moves mouse cursor over the component; Useful for when taking a decision to toggle mini mode * @param evt JS event object */ onMouseover?: (evt: Event) => void; /** * Emitted when user moves mouse cursor out of the component; Useful for when taking a decision to toggle mini mode * @param evt JS event object */ onMouseout?: (evt: Event) => void; /** * Emitted when drawer changes the mini-mode state (sometimes it is forced to do so) * @param state New state */ onMiniState?: (state: boolean) => void; } export interface QDrawerSlots { /** * Default slot in the devland unslotted content of the component (overridden by 'mini' slot if used and drawer is in mini mode) */ default: () => VNode[]; /** * Content to show when in mini mode (overrides 'default' slot) */ mini: () => VNode[]; } export interface QDrawer extends ComponentPublicInstance { /** * Triggers component to show * @param evt JS event object */ show: (evt?: Event) => void; /** * Triggers component to hide * @param evt JS event object */ hide: (evt?: Event) => void; /** * Triggers component to toggle between show/hide * @param evt JS event object */ toggle: (evt?: Event) => void; } export interface QEditorProps { /** * Fullscreen mode */ fullscreen?: boolean | undefined; /** * Changing route app won't exit fullscreen */ noRouteFullscreenExit?: boolean | undefined; /** * Model of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive */ modelValue: string; /** * Put component in readonly mode */ readonly?: boolean | undefined; /** * Removes border-radius so borders are squared */ square?: boolean | undefined; /** * Applies a 'flat' design (no borders) */ flat?: boolean | undefined; /** * Dense mode; toolbar buttons are shown on one-line only */ dense?: boolean | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * CSS unit for the minimum height of the editable area * Default value: '10rem' */ minHeight?: string | undefined; /** * CSS unit for maximum height of the input area */ maxHeight?: string | undefined; /** * CSS value to set the height of the editable area */ height?: string | undefined; /** * Definition of commands and their buttons to be included in the 'toolbar' prop */ definitions?: { /** * Command definition */ [commandName: string]: QEditorCommand | undefined; }; /** * Object with definitions of fonts */ fonts?: any | undefined; /** * An array of arrays of Objects/Strings that you use to define the construction of the elements and commands available in the toolbar * Default value: [['left', 'center', 'right', 'justify'], ['bold', 'italic', 'underline', 'strike'], ['undo', 'redo']] */ toolbar?: readonly any[] | undefined; /** * Font color (from the Quasar Palette) of buttons and text in the toolbar */ toolbarColor?: NamedColor | undefined; /** * Text color (from the Quasar Palette) of toolbar commands */ toolbarTextColor?: NamedColor | undefined; /** * Choose the active color (from the Quasar Palette) of toolbar commands button * Default value: 'primary' */ toolbarToggleColor?: string | undefined; /** * Toolbar background color (from Quasar Palette) * Default value: 'grey-3' */ toolbarBg?: string | undefined; /** * Toolbar buttons are rendered "outlined" */ toolbarOutline?: boolean | undefined; /** * Toolbar buttons are rendered as a "push-button" type */ toolbarPush?: boolean | undefined; /** * Toolbar buttons are rendered "rounded" */ toolbarRounded?: boolean | undefined; /** * Paragraph tag to be used * Default value: 'div' */ paragraphTag?: "div" | "p" | undefined; /** * Object with CSS properties and values for styling the container of QEditor */ contentStyle?: VueStyleObjectProp | undefined; /** * CSS classes for the input area */ contentClass?: VueClassProp | undefined; /** * Text to display as placeholder */ placeholder?: string | undefined; /** * Emitted when fullscreen state changes * @param value Fullscreen state (showing/hidden) */ onFullscreen?: (value: boolean) => void; /** * Used by Vue on 'v-model:fullscreen' prop for updating its value * @param value Fullscreen state (showing/hidden) */ "onUpdate:fullscreen"?: (value: boolean) => void; /** * Emitted when the component needs to change the model; Is also used by v-model * @param value The pure HTML of the content */ "onUpdate:modelValue"?: (value: string) => void; /** * Emitted after a dropdown in the toolbar has triggered show() * @param evt JS event object */ onDropdownShow?: (evt: Event) => void; /** * Emitted when a dropdown in the toolbar triggers show() but before it finishes doing it * @param evt JS event object */ onDropdownBeforeShow?: (evt: Event) => void; /** * Emitted after a dropdown in the toolbar has triggered hide() * @param evt JS event object */ onDropdownHide?: (evt: Event) => void; /** * Emitted when a dropdown in the toolbar triggers hide() but before it finishes doing it * @param evt JS event object */ onDropdownBeforeHide?: (evt: Event) => void; /** * Emitted when the toolbar for editing a link is shown */ onLinkShow?: () => void; /** * Emitted when the toolbar for editing a link is hidden */ onLinkHide?: () => void; } export interface QEditorSlots { /** * Content for the given command in the toolbar */ [key: `${string}`]: () => VNode[]; } export interface QEditor extends ComponentPublicInstance { /** * Toggle the view to be fullscreen or not fullscreen */ toggleFullscreen: () => void; /** * Enter the fullscreen view */ setFullscreen: () => void; /** * Leave the fullscreen view */ exitFullscreen: () => void; /** * Run contentEditable command at caret position and range * @param cmd Must be a valid execCommand method according to the designMode API * @param param The argument to pass to the command * @param update Refresh the toolbar */ runCmd: (cmd: string, param?: string, update?: boolean) => void; /** * Hide the link editor if visible and force the instance to re-render */ refreshToolbar: () => void; /** * Focus on the contentEditable at saved cursor position */ focus: () => void; /** * Retrieve the content of the Editor * @returns Provides the pure HTML within the editable area */ getContentEl: () => Element; /** * The current caret state */ readonly caret: QEditorCaret; } export interface QExpansionItemProps { /** * Equivalent to Vue Router 'to' property; Superseded by 'href' prop if used */ to?: string | any | undefined; /** * Equivalent to Vue Router 'exact' property; Superseded by 'href' prop if used */ exact?: boolean | undefined; /** * Equivalent to Vue Router 'replace' property; Superseded by 'href' prop if used */ replace?: boolean | undefined; /** * Equivalent to Vue Router 'active-class' property; Superseded by 'href' prop if used * Default value: 'q-router-link--active' */ activeClass?: string | undefined; /** * Equivalent to Vue Router 'active-class' property; Superseded by 'href' prop if used * Default value: 'q-router-link--exact-active' */ exactActiveClass?: string | undefined; /** * Native link href attribute; Has priority over the 'to'/'exact'/'replace'/'active-class'/'exact-active-class' props */ href?: string | undefined; /** * Native link target attribute; Use it only along with 'href' prop; Has priority over the 'to'/'exact'/'replace'/'active-class'/'exact-active-class' props */ target?: string | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Model of the component defining shown/hidden state; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive * Default value: null */ modelValue?: boolean | null; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ icon?: string | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ expandIcon?: string | undefined; /** * Expand icon name (following Quasar convention) for when QExpansionItem is expanded; When used, it also disables the rotation animation of the expand icon; Make sure you have the icon library installed unless you are using 'img:' prefix */ expandedIcon?: string | undefined; /** * Apply custom class(es) to the expand icon item section */ expandIconClass?: VueClassProp | undefined; /** * aria-label to be used on the expansion toggle element */ toggleAriaLabel?: string | undefined; /** * Header label (unless using 'header' slot) */ label?: string | undefined; /** * Apply ellipsis when there's not enough space to render on the specified number of lines; If more than one line specified, then it will only work on webkit browsers because it uses the '-webkit-line-clamp' CSS property! */ labelLines?: number | string | undefined; /** * Header sub-label (unless using 'header' slot) */ caption?: string | undefined; /** * Apply ellipsis when there's not enough space to render on the specified number of lines; If more than one line specified, then it will only work on webkit browsers because it uses the '-webkit-line-clamp' CSS property! */ captionLines?: number | string | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Dense mode; occupies less space */ dense?: boolean | undefined; /** * Animation duration (in milliseconds) * Default value: 300 */ duration?: number | undefined; /** * Apply an inset to header (unless using 'header' slot); Useful when header avatar/left side is missing but you want to align content with other items that do have a left side, or when you're building a menu */ headerInsetLevel?: number | undefined; /** * Apply an inset to content (changes content padding) */ contentInsetLevel?: number | undefined; /** * Apply a top and bottom separator when expansion item is opened */ expandSeparator?: boolean | undefined; /** * Puts expansion item into open state on initial render; Overridden by v-model if used */ defaultOpened?: boolean | undefined; /** * Do not show the expand icon */ hideExpandIcon?: boolean | undefined; /** * Applies the expansion events to the expand icon only and not to the whole header */ expandIconToggle?: boolean | undefined; /** * Switch expand icon side (from default 'right' to 'left') */ switchToggleSide?: boolean | undefined; /** * Use dense mode for expand icon */ denseToggle?: boolean | undefined; /** * Register expansion item into a group (unique name that must be applied to all expansion items in that group) for coordinated open/close state within the group a.k.a. 'accordion mode' */ group?: string | undefined; /** * Put expansion list into 'popup' mode */ popup?: boolean | undefined; /** * Apply custom style to the header */ headerStyle?: VueStyleProp | undefined; /** * Apply custom class(es) to the header */ headerClass?: VueClassProp | undefined; /** * Emitted when showing/hidden state changes; Is also used by v-model * @param value New state (showing/hidden) */ "onUpdate:modelValue"?: (value: boolean) => void; /** * Emitted after component has triggered show() * @param evt JS event object */ onShow?: (evt: Event) => void; /** * Emitted when component triggers show() but before it finishes doing it * @param evt JS event object */ onBeforeShow?: (evt: Event) => void; /** * Emitted after component has triggered hide() * @param evt JS event object */ onHide?: (evt: Event) => void; /** * Emitted when component triggers hide() but before it finishes doing it * @param evt JS event object */ onBeforeHide?: (evt: Event) => void; /** * Emitted when component show animation is finished */ onAfterShow?: () => void; /** * Emitted when component hide animation is finished */ onAfterHide?: () => void; } export interface QExpansionItemSlots { /** * Slot used for expansion item's content */ default: () => VNode[]; /** * Slot used for overriding default header * @param scope */ header: (scope: { /** * QExpansionItem expanded status */ expanded: boolean; /** * QExpansionItem details panel id (for use in aria-controls) */ detailsId: string; /** * Triggers component to show * @param evt JS event object */ show: (evt?: any) => void; /** * Triggers component to hide * @param evt JS event object */ hide: (evt?: any) => void; /** * Triggers component to toggle between show/hide * @param evt JS event object */ toggle: (evt?: any) => void; }) => VNode[]; } export interface QExpansionItem extends ComponentPublicInstance { /** * Triggers component to show * @param evt JS event object */ show: (evt?: Event) => void; /** * Triggers component to hide * @param evt JS event object */ hide: (evt?: Event) => void; /** * Triggers component to toggle between show/hide * @param evt JS event object */ toggle: (evt?: Event) => void; } export interface QFabProps { /** * Define the button HTML DOM type * Default value: 'a' */ type?: "a" | "submit" | "button" | "reset" | undefined; /** * Use 'outline' design for Fab button */ outline?: boolean | undefined; /** * Use 'push' design for Fab button */ push?: boolean | undefined; /** * Use 'flat' design for Fab button */ flat?: boolean | undefined; /** * Remove shadow */ unelevated?: boolean | undefined; /** * Apply custom padding (vertical [horizontal]); Size in CSS units, including unit name or standard size name (none|xs|sm|md|lg|xl); Also removes the min width and height when set */ padding?: string | undefined; /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Overrides text color (if needed); Color name from the Quasar Color Palette */ textColor?: NamedColor | undefined; /** * Apply the glossy effect over the button */ glossy?: boolean | undefined; /** * Display label besides the FABs, as external content */ externalLabel?: boolean | undefined; /** * The label that will be shown when Fab is extended * Default value: '' */ label?: string | number | undefined; /** * Position of the label around the icon * Default value: 'right' */ labelPosition?: "top" | "right" | "bottom" | "left" | undefined; /** * Hide the label; Useful for animation purposes where you toggle the visibility of the label * Default value: null */ hideLabel?: boolean | null | undefined; /** * Class definitions to be attributed to the label container */ labelClass?: VueClassProp | undefined; /** * Style definitions to be attributed to the label container */ labelStyle?: VueStyleProp | undefined; /** * Apply a rectangle aspect to the FAB */ square?: boolean | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Tabindex HTML attribute value */ tabindex?: number | string | undefined; /** * Controls state of fab actions (showing/hidden); Works best with v-model directive, otherwise use along listening to 'update:modelValue' event * Default value: null */ modelValue?: boolean | null; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ icon?: string | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ activeIcon?: string | undefined; /** * Hide the icon (don't use any) */ hideIcon?: boolean | undefined; /** * Direction to expand Fab Actions to * Default value: 'right' */ direction?: "up" | "right" | "down" | "left" | undefined; /** * The side of the Fab where Fab Actions will expand (only when direction is 'up' or 'down') * Default value: 'center' */ verticalActionsAlign?: "left" | "center" | "right" | undefined; /** * By default, Fab Actions are hidden when user navigates to another route and this prop disables this behavior */ persistent?: boolean | undefined; /** * Emitted when fab actions are shown/hidden; Captured by v-model directive * @param value New state (showing/hidden) */ "onUpdate:modelValue"?: (value: boolean) => void; /** * Emitted after component has triggered show() * @param evt JS event object */ onShow?: (evt: Event) => void; /** * Emitted when component triggers show() but before it finishes doing it * @param evt JS event object */ onBeforeShow?: (evt: Event) => void; /** * Emitted after component has triggered hide() * @param evt JS event object */ onHide?: (evt: Event) => void; /** * Emitted when component triggers hide() but before it finishes doing it * @param evt JS event object */ onBeforeHide?: (evt: Event) => void; } export interface QFabSlots { /** * This is where QFabActions may go into */ default: () => VNode[]; /** * Slot specifically designed for a QTooltip */ tooltip: () => VNode[]; /** * Slot for icon shown when FAB is closed; Suggestion: QIcon * @param scope */ icon: (scope: { /** * FAB is opened */ opened: boolean; }) => VNode[]; /** * Slot for icon shown when FAB is opened; Suggestion: QIcon * @param scope */ "active-icon": (scope: { /** * FAB is opened */ opened: boolean; }) => VNode[]; /** * Slot for label * @param scope */ label: (scope: { /** * FAB is opened */ opened: boolean; }) => VNode[]; } export interface QFab extends ComponentPublicInstance { /** * Expands fab actions list * @param evt JS event object */ show: (evt?: Event) => void; /** * Collapses fab actions list * @param evt JS event object */ hide: (evt?: Event) => void; /** * Triggers component to toggle between show/hide * @param evt JS event object */ toggle: (evt?: Event) => void; } export interface QFabActionProps { /** * Define the button HTML DOM type * Default value: 'a' */ type?: "a" | "submit" | "button" | "reset" | undefined; /** * Use 'outline' design for Fab button */ outline?: boolean | undefined; /** * Use 'push' design for Fab button */ push?: boolean | undefined; /** * Use 'flat' design for Fab button */ flat?: boolean | undefined; /** * Remove shadow */ unelevated?: boolean | undefined; /** * Apply custom padding (vertical [horizontal]); Size in CSS units, including unit name or standard size name (none|xs|sm|md|lg|xl); Also removes the min width and height when set */ padding?: string | undefined; /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Overrides text color (if needed); Color name from the Quasar Color Palette */ textColor?: NamedColor | undefined; /** * Apply the glossy effect over the button */ glossy?: boolean | undefined; /** * Display label besides the FABs, as external content */ externalLabel?: boolean | undefined; /** * The label that will be shown when Fab is extended * Default value: '' */ label?: string | number | undefined; /** * Position of the label around the icon * Default value: 'right' */ labelPosition?: "top" | "right" | "bottom" | "left" | undefined; /** * Hide the label; Useful for animation purposes where you toggle the visibility of the label */ hideLabel?: boolean | null | undefined; /** * Class definitions to be attributed to the label container */ labelClass?: VueClassProp | undefined; /** * Style definitions to be attributed to the label container */ labelStyle?: VueStyleProp | undefined; /** * Apply a rectangle aspect to the FAB */ square?: boolean | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Tabindex HTML attribute value */ tabindex?: number | string | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) * Default value: '' */ icon?: string | undefined; /** * How to align the Fab Action relative to Fab expand side; By default it uses the align specified in QFab */ anchor?: "start" | "center" | "end" | undefined; /** * Equivalent to Vue Router 'to' property */ to?: string | any | undefined; /** * Equivalent to Vue Router 'replace' property */ replace?: boolean | undefined; /** * Emitted when user clicks/taps on the component * @param evt JS event object */ onClick?: (evt: Event) => void; } export interface QFabActionSlots { /** * Suggestion for this slot: QTooltip */ default: () => VNode[]; /** * Slot for icon; Suggestion: QIcon */ icon: () => VNode[]; /** * Slot for label */ label: () => VNode[]; } export interface QFabAction extends ComponentPublicInstance { /** * Emulate click on QFabAction * @param evt JS event object */ click: (evt?: Event) => void; } export interface QFieldProps { /** * Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive */ modelValue?: any; /** * Does field have validation errors? * Default value: null */ error?: boolean | null | undefined; /** * Validation error message (gets displayed only if 'error' is set to 'true') */ errorMessage?: string | undefined; /** * Hide error icon when there is an error */ noErrorIcon?: boolean | undefined; /** * Array of Functions/Strings; If String, then it must be a name of one of the embedded validation rules */ rules?: ValidationRule[] | undefined; /** * By default a change in the rules does not trigger a new validation until the model changes; If set to true then a change in the rules will trigger a validation; Has a performance penalty, so use it only when you really need it */ reactiveRules?: boolean | undefined; /** * If set to boolean true then it checks validation status against the 'rules' only after field loses focus for first time; If set to 'ondemand' then it will trigger only when component's validate() method is manually called or when the wrapper QForm submits itself * Default value: false */ lazyRules?: boolean | "ondemand" | undefined; /** * A text label that will “float” up above the input field, once the field gets focus */ label?: string | undefined; /** * Label will be always shown above the field regardless of field content (if any) */ stackLabel?: boolean | undefined; /** * Helper (hint) text which gets placed below your wrapped form component */ hint?: string | undefined; /** * Hide the helper (hint) text when field doesn't have focus */ hideHint?: boolean | undefined; /** * Prefix */ prefix?: string | undefined; /** * Suffix */ suffix?: string | undefined; /** * Color name for the label from the Quasar Color Palette; Overrides the 'color' prop; The difference from 'color' prop is that the label will always have this color, even when field is not focused */ labelColor?: NamedColor | undefined; /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Color name for component from the Quasar Color Palette */ bgColor?: NamedColor | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Signals the user a process is in progress by displaying a spinner; Spinner can be customized by using the 'loading' slot. */ loading?: boolean | undefined; /** * Appends clearable icon when a value (not undefined or null) is set; When clicked, model becomes null */ clearable?: boolean | undefined; /** * Custom icon to use for the clear button when using along with 'clearable' prop */ clearIcon?: string | undefined; /** * Use 'filled' design for the field */ filled?: boolean | undefined; /** * Use 'outlined' design for the field */ outlined?: boolean | undefined; /** * Use 'borderless' design for the field */ borderless?: boolean | undefined; /** * Use 'standout' design for the field; Specifies classes to be applied when focused (overriding default ones) */ standout?: boolean | string | undefined; /** * Enables label slot; You need to set it to force use of the 'label' slot if the 'label' prop is not set */ labelSlot?: boolean | undefined; /** * Enables bottom slots ('error', 'hint', 'counter') */ bottomSlots?: boolean | undefined; /** * Do not reserve space for hint/error/counter anymore when these are not used; As a result, it also disables the animation for those; It also allows the hint/error area to stretch vertically based on its content */ hideBottomSpace?: boolean | undefined; /** * Show an automatic counter on bottom right */ counter?: boolean | undefined; /** * Applies a small standard border-radius for a squared shape of the component */ rounded?: boolean | undefined; /** * Remove border-radius so borders are squared; Overrides 'rounded' prop */ square?: boolean | undefined; /** * Dense mode; occupies less space */ dense?: boolean | undefined; /** * Match inner content alignment to that of QItem */ itemAligned?: boolean | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Put component in readonly mode */ readonly?: boolean | undefined; /** * Focus field on initial component render */ autofocus?: boolean | undefined; /** * Used to specify the 'id' of the control and also the 'for' attribute of the label that wraps it; If no 'name' prop is specified, then it is used for this attribute as well */ for?: string | undefined; /** * Specify a max length of model */ maxlength?: string | number | undefined; /** * HTML tag to use * Default value: 'label' */ tag?: string | undefined; /** * Emitted when the model changes, only when used with 'clearable' or the 'control' scoped slot. * @param value New model value */ "onUpdate:modelValue"?: (value: any) => void; /** * Emitted when component gets focused * @param evt JS event object */ onFocus?: (evt: Event) => void; /** * Emitted when component loses focus * @param evt JS event object */ onBlur?: (evt: Event) => void; /** * When using the 'clearable' property, this event is emitted when the clear icon is clicked * @param value The previous value before clearing it */ onClear?: (value: any) => void; } export interface QFieldSlots { /** * Field main content */ default: () => VNode[]; /** * Prepend inner field; Suggestions: QIcon, QBtn */ prepend: () => VNode[]; /** * Append to inner field; Suggestions: QIcon, QBtn */ append: () => VNode[]; /** * Prepend outer field; Suggestions: QIcon, QBtn */ before: () => VNode[]; /** * Append outer field; Suggestions: QIcon, QBtn */ after: () => VNode[]; /** * Slot for label; Used only if 'label-slot' prop is set or the 'label' prop is set; When it is used the text in the 'label' prop is ignored */ label: () => VNode[]; /** * Slot for errors; Enabled only if 'bottom-slots' prop is used; Suggestion:
*/ error: () => VNode[]; /** * Slot for hint text; Enabled only if 'bottom-slots' prop is used; Suggestion:
*/ hint: () => VNode[]; /** * Slot for counter text; Enabled only if 'bottom-slots' prop is used; Suggestion:
*/ counter: () => VNode[]; /** * Override default spinner when component is in loading mode; Use in conjunction with 'loading' prop */ loading: () => VNode[]; /** * Slot for controls; Suggestion QSlider, QRange, QKnob, ... * @param scope */ control: (scope: { /** * Element id used in the 'for' attribute of the field label. Can be used to link the control to the label */ id: string; /** * DOM element of the field */ field: Element; /** * Field is editable */ editable: boolean; /** * Field has focus */ focused: boolean; /** * Field's label is floating */ floatingLabel: boolean; /** * Field's value */ modelValue: any; /** * Function that emits an @input event in the context of the field * @param value Value to be emitted */ emitValue: (value: any) => void; }) => VNode[]; } export interface QField extends ComponentPublicInstance { /** * Reset validation status */ resetValidation: () => void; /** * Trigger a validation * @param value Optional value to validate against * @returns True/false if no async rules, otherwise a Promise with the outcome (true -> validation was a success, false -> invalid models detected) */ validate: (value?: any) => boolean | Promise; /** * Focus component */ focus: () => void; /** * Blur component (lose focus) */ blur: () => void; /** * Whether the component is in error state */ readonly hasError: boolean; } export interface QFileProps { /** * Used to specify the name of the control; Useful if dealing with forms; If not specified, it takes the value of 'for' prop, if it exists */ name?: string | undefined; /** * Allow multiple file uploads */ multiple?: boolean | undefined; /** * Comma separated list of unique file type specifiers. Maps to 'accept' attribute of native input type=file element */ accept?: string | undefined; /** * Optionally, specify that a new file should be captured, and which device should be used to capture that new media of a type defined by the 'accept' prop. Maps to 'capture' attribute of native input type=file element */ capture?: "user" | "environment" | undefined; /** * Maximum size of individual file in bytes */ maxFileSize?: number | string | undefined; /** * Maximum size of all files combined in bytes */ maxTotalSize?: number | string | undefined; /** * Maximum number of files to contain */ maxFiles?: number | string | undefined; /** * Custom filter for added files; Only files that pass this filter will be added to the queue and uploaded; For best performance, reference it from your scope and do not define it inline * @param files Candidate files to be added to queue * @returns Filtered files to be added to queue */ filter?: ((files: File[]) => File[]) | undefined; /** * Model of the component; Must be FileList or Array if using 'multiple' prop; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive */ modelValue: File | FileList | any[] | null | undefined; /** * Does field have validation errors? * Default value: null */ error?: boolean | null | undefined; /** * Validation error message (gets displayed only if 'error' is set to 'true') */ errorMessage?: string | undefined; /** * Hide error icon when there is an error */ noErrorIcon?: boolean | undefined; /** * Array of Functions/Strings; If String, then it must be a name of one of the embedded validation rules */ rules?: ValidationRule[] | undefined; /** * By default a change in the rules does not trigger a new validation until the model changes; If set to true then a change in the rules will trigger a validation; Has a performance penalty, so use it only when you really need it */ reactiveRules?: boolean | undefined; /** * If set to boolean true then it checks validation status against the 'rules' only after field loses focus for first time; If set to 'ondemand' then it will trigger only when component's validate() method is manually called or when the wrapper QForm submits itself * Default value: false */ lazyRules?: boolean | "ondemand" | undefined; /** * A text label that will “float” up above the input field, once the field gets focus */ label?: string | undefined; /** * Label will be always shown above the field regardless of field content (if any) */ stackLabel?: boolean | undefined; /** * Helper (hint) text which gets placed below your wrapped form component */ hint?: string | undefined; /** * Hide the helper (hint) text when field doesn't have focus */ hideHint?: boolean | undefined; /** * Prefix */ prefix?: string | undefined; /** * Suffix */ suffix?: string | undefined; /** * Color name for the label from the Quasar Color Palette; Overrides the 'color' prop; The difference from 'color' prop is that the label will always have this color, even when field is not focused */ labelColor?: NamedColor | undefined; /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Color name for component from the Quasar Color Palette */ bgColor?: NamedColor | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Signals the user a process is in progress by displaying a spinner; Spinner can be customized by using the 'loading' slot. */ loading?: boolean | undefined; /** * Appends clearable icon when a value (not undefined or null) is set; When clicked, model becomes null */ clearable?: boolean | undefined; /** * Custom icon to use for the clear button when using along with 'clearable' prop */ clearIcon?: string | undefined; /** * Use 'filled' design for the field */ filled?: boolean | undefined; /** * Use 'outlined' design for the field */ outlined?: boolean | undefined; /** * Use 'borderless' design for the field */ borderless?: boolean | undefined; /** * Use 'standout' design for the field; Specifies classes to be applied when focused (overriding default ones) */ standout?: boolean | string | undefined; /** * Enables label slot; You need to set it to force use of the 'label' slot if the 'label' prop is not set */ labelSlot?: boolean | undefined; /** * Enables bottom slots ('error', 'hint', 'counter') */ bottomSlots?: boolean | undefined; /** * Do not reserve space for hint/error/counter anymore when these are not used; As a result, it also disables the animation for those; It also allows the hint/error area to stretch vertically based on its content */ hideBottomSpace?: boolean | undefined; /** * Show an automatic counter on bottom right */ counter?: boolean | undefined; /** * Applies a small standard border-radius for a squared shape of the component */ rounded?: boolean | undefined; /** * Remove border-radius so borders are squared; Overrides 'rounded' prop */ square?: boolean | undefined; /** * Dense mode; occupies less space */ dense?: boolean | undefined; /** * Match inner content alignment to that of QItem */ itemAligned?: boolean | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Put component in readonly mode */ readonly?: boolean | undefined; /** * Focus field on initial component render */ autofocus?: boolean | undefined; /** * Used to specify the 'id' of the control and also the 'for' attribute of the label that wraps it; If no 'name' prop is specified, then it is used for this attribute as well */ for?: string | undefined; /** * Append file(s) to current model rather than replacing them; Has effect only when using 'multiple' mode */ append?: boolean | undefined; /** * Override default selection string, if not using 'file' or 'selected' scoped slots and if not using 'use-chips' prop */ displayValue?: number | string | undefined; /** * Use QChip to show picked files */ useChips?: boolean | undefined; /** * Label for the counter; The 'counter' prop is necessary to enable this one * @param props Object containing counter label information * @returns String to display for the counter label */ counterLabel?: | ((props: { /** * The total size of files in human readable format */ totalSize: string; /** * Number of picked files */ filesNumber: number; /** * Maximum number of files (same as 'max-files' prop, if specified); When 'max-files' is not specified, this has 'void 0' as value */ maxFiles: number | string; }) => string) | undefined; /** * Tabindex HTML attribute value * Default value: 0 */ tabindex?: number | string | undefined; /** * Class definitions to be attributed to the underlying selection container */ inputClass?: VueClassProp | undefined; /** * Style definitions to be attributed to the underlying selection container */ inputStyle?: VueStyleProp | undefined; /** * Emitted after files are picked and some do not pass the validation props (accept, max-file-size, max-total-size, filter, etc) * @param rejectedEntries Array of { failedPropValidation: string, file: File } Objects for files that do not pass the validation */ onRejected?: (rejectedEntries: QRejectedEntry[]) => void; /** * Emitted when the component needs to change the model; Is also used by v-model * @param value New model value */ "onUpdate:modelValue"?: (value: any) => void; /** * Emitted when component gets focused * @param evt JS event object */ onFocus?: (evt: Event) => void; /** * Emitted when component loses focus * @param evt JS event object */ onBlur?: (evt: Event) => void; /** * When using the 'clearable' property, this event is emitted when the clear icon is clicked * @param value The previous value before clearing it */ onClear?: (value: any) => void; } export interface QFileSlots { /** * Field main content */ default: () => VNode[]; /** * Prepend inner field; Suggestions: QIcon, QBtn */ prepend: () => VNode[]; /** * Append to inner field; Suggestions: QIcon, QBtn */ append: () => VNode[]; /** * Prepend outer field; Suggestions: QIcon, QBtn */ before: () => VNode[]; /** * Append outer field; Suggestions: QIcon, QBtn */ after: () => VNode[]; /** * Slot for label; Used only if 'label-slot' prop is set or the 'label' prop is set; When it is used the text in the 'label' prop is ignored */ label: () => VNode[]; /** * Slot for errors; Enabled only if 'bottom-slots' prop is used; Suggestion:
*/ error: () => VNode[]; /** * Slot for hint text; Enabled only if 'bottom-slots' prop is used; Suggestion:
*/ hint: () => VNode[]; /** * Slot for counter text; Enabled only if 'bottom-slots' prop is used; Suggestion:
*/ counter: () => VNode[]; /** * Override default spinner when component is in loading mode; Use in conjunction with 'loading' prop */ loading: () => VNode[]; /** * Override default node to render a file from the user picked list * @param scope */ file: (scope: { /** * Selection index */ index: number; /** * File object */ file: File; /** * Reference to the QFile component */ ref: QFile; }) => VNode[]; /** * Override default selection slot; Suggestion: QChip * @param scope */ selected: (scope: { /** * Array of File objects */ files: File[]; /** * Reference to the QFile component */ ref: QFile; }) => VNode[]; } export interface QFile extends ComponentPublicInstance { /** * Trigger file pick; Must be called as a direct consequence of user interaction (eg. in a click handler), due to browsers security policy * @param evt JS event object */ pickFiles: (evt?: Event) => void; /** * Add files programmatically * @param files Array of files (instances of File) or FileList */ addFiles: (files: QUseFileAddInput) => void; /** * Reset validation status */ resetValidation: () => void; /** * Trigger a validation * @param value Optional value to validate against * @returns True/false if no async rules, otherwise a Promise with the outcome (true -> validation was a success, false -> invalid models detected) */ validate: (value?: any) => boolean | Promise; /** * Focus component */ focus: () => void; /** * Blur component (lose focus) */ blur: () => void; /** * Remove file located at specific index in the model * @param index Index at which to remove selection */ removeAtIndex: (index: number) => void; /** * Remove specified file from the model * @param file File to remove (instance of File) */ removeFile: (file: File) => void; /** * DEPRECATED; Access 'nativeEl' directly; Gets the native input DOM Element * @returns The underlying native input DOM Element */ getNativeElement: () => QFileNativeElement; /** * Whether the component is in error state */ readonly hasError: boolean; /** * The native input DOM Element */ readonly nativeEl: QFileNativeElement; } export interface QFooterProps { /** * Model of the component defining if it is shown or hidden to the user; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive * Default value: true */ modelValue?: boolean; /** * Enable 'reveal' mode; Takes into account user scroll to temporarily show/hide footer */ reveal?: boolean | undefined; /** * Applies a default border to the component */ bordered?: boolean | undefined; /** * Adds a default shadow to the footer */ elevated?: boolean | undefined; /** * When using SSR, you can optionally hint of the height (in pixels) of the QFooter * Default value: 50 */ heightHint?: number | string | undefined; /** * Emitted when 'reveal' state gets changed * @param value New 'reveal' state */ onReveal?: (value: boolean) => void; } export interface QFooterSlots { /** * Default slot in the devland unslotted content of the component; Suggestion: QToolbar */ default: () => VNode[]; } export interface QFooter extends ComponentPublicInstance {} export interface QFormProps { /** * Focus first focusable element on initial component render */ autofocus?: boolean | undefined; /** * Do not try to focus on first component that has a validation error when submitting form */ noErrorFocus?: boolean | undefined; /** * Do not try to focus on first component when resetting form */ noResetFocus?: boolean | undefined; /** * Validate all fields in form (by default it stops after finding the first invalid field with synchronous validation) */ greedy?: boolean | undefined; /** * Emitted when all validations have passed when tethered to a submit button * @param evt Form submission event object */ onSubmit?: (evt: Event | SubmitEvent) => void; /** * Emitted when all validations have been reset when tethered to a reset button; It is recommended to manually reset the wrapped components models in this handler */ onReset?: () => void; /** * Emitted after a validation was triggered and all inner Quasar components models are valid */ onValidationSuccess?: () => void; /** * Emitted after a validation was triggered and at least one of the inner Quasar components models are NOT valid * @param ref Vue reference to the first component that triggered the validation error */ onValidationError?: (ref: Component) => void; } export interface QFormSlots { /** * Default slot in the devland unslotted content of the component */ default: () => VNode[]; } export interface QForm extends ComponentPublicInstance { /** * Focus on first focusable element/component in the form */ focus: () => void; /** * Triggers a validation on all applicable inner Quasar components * @param shouldFocus Tell if it should focus or not on component with error on submitting form; Overrides 'no-focus-error' prop if specified * @returns Promise is always fulfilled and receives the outcome (true -> validation was a success, false -> invalid models detected) */ validate: (shouldFocus?: boolean) => Promise; /** * Resets the validation on all applicable inner Quasar components */ resetValidation: () => void; /** * Manually trigger form validation and submit * @param evt JS event object */ submit: (evt?: Event) => void; /** * Manually trigger form reset * @param evt JS event object */ reset: (evt?: Event) => void; /** * Get an array of children Vue component instances that support Quasar validation API (derived from QField, or using useFormChild()/QFormChildMixin) * @returns Quasar validation API-compatible Vue component instances */ getValidationComponents: () => QFormChildComponent[]; } export interface QFormChildMixinProps {} export interface QFormChildMixinSlots {} export interface QFormChildMixin extends ComponentPublicInstance { /** * Needs to be overwritten when getting extended/mixed in * @returns Promise is always fulfilled and receives the outcome (true -> validation was a success, false -> invalid models detected) */ validate: () => boolean | Promise; /** * Needs to be overwritten when getting extended/mixed in */ resetValidation: () => void; } export interface QHeaderProps { /** * Model of the component defining if it is shown or hidden to the user; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive * Default value: true */ modelValue?: boolean; /** * Enable 'reveal' mode; Takes into account user scroll to temporarily show/hide header */ reveal?: boolean | undefined; /** * Amount of scroll (in pixels) that should trigger a 'reveal' state change * Default value: 250 */ revealOffset?: number | undefined; /** * Applies a default border to the component */ bordered?: boolean | undefined; /** * Adds a default shadow to the header */ elevated?: boolean | undefined; /** * When using SSR, you can optionally hint of the height (in pixels) of the QHeader * Default value: 50 */ heightHint?: number | string | undefined; /** * Emitted when 'reveal' state gets changed * @param value New 'reveal' state */ onReveal?: (value: boolean) => void; } export interface QHeaderSlots { /** * Default slot in the devland unslotted content of the component; Suggestion: QToolbar */ default: () => VNode[]; } export interface QHeader extends ComponentPublicInstance {} export interface QIconProps { /** * Size in CSS units, including unit name or standard size name (xs|sm|md|lg|xl) */ size?: string | undefined; /** * HTML tag to render, unless no icon is supplied or it's an svg icon * Default value: 'i' */ tag?: string | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ name?: string | undefined; /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Useful if icon is on the left side of something: applies a standard margin on the right side of Icon */ left?: boolean | undefined; /** * Useful if icon is on the right side of something: applies a standard margin on the left side of Icon */ right?: boolean | undefined; } export interface QIconSlots { /** * Suggestions: QTooltip or QMenu */ default: () => VNode[]; } export interface QIcon extends ComponentPublicInstance {} export interface QImgProps { /** * Force the component to maintain an aspect ratio */ ratio?: string | number | undefined; /** * Path to image */ src?: string | undefined; /** * Same syntax as srcset attribute */ srcset?: string | undefined; /** * Same syntax as sizes attribute */ sizes?: string | undefined; /** * While waiting for your image to load, you can use a placeholder image */ placeholderSrc?: string | undefined; /** * In case your image fails to load, you can use an error image */ errorSrc?: string | undefined; /** * Use it when not specifying 'ratio' but still wanting an initial aspect ratio * Default value: 1.7778 */ initialRatio?: string | number | undefined; /** * Forces image width; Must also include the unit (px or %) */ width?: string | undefined; /** * Forces image height; Must also include the unit (px or %) */ height?: string | undefined; /** * Lazy or immediate load; Same syntax as loading attribute * Default value: 'lazy' */ loading?: "lazy" | "eager" | undefined; /** * Delay showing the spinner when image changes; Gives time for the browser to load the image from cache to prevent flashing the spinner unnecessarily; Value should represent milliseconds * Default value: 0 */ loadingShowDelay?: number | string | undefined; /** * Same syntax as crossorigin attribute */ crossorigin?: "anonymous" | "use-credentials" | undefined; /** * Same syntax as decoding attribute */ decoding?: "sync" | "async" | "auto" | undefined; /** * Same syntax as referrerpolicy attribute */ referrerpolicy?: | "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined; /** * Provides a hint of the relative priority to use when fetching the image * Default value: 'auto' */ fetchpriority?: "high" | "low" | "auto" | undefined; /** * How the image will fit into the container; Equivalent of the object-fit prop; Can be coordinated with 'position' prop * Default value: 'cover' */ fit?: "cover" | "fill" | "contain" | "none" | "scale-down" | undefined; /** * The alignment of the image into the container; Equivalent of the object-position CSS prop * Default value: '50% 50%' */ position?: string | undefined; /** * Specifies an alternate text for the image, if the image cannot be displayed */ alt?: string | undefined; /** * Adds the native 'draggable' attribute */ draggable?: boolean | undefined; /** * CSS classes to be attributed to the native img element */ imgClass?: string | undefined; /** * Apply CSS to the native img element */ imgStyle?: VueStyleObjectProp | undefined; /** * Color name for default Spinner (unless using a 'loading' slot) */ spinnerColor?: NamedColor | undefined; /** * Size in CSS units, including unit name, for default Spinner (unless using a 'loading' slot) */ spinnerSize?: string | undefined; /** * Do not display the default spinner while waiting for the image to be loaded; It is overriden by the 'loading' slot when one is present */ noSpinner?: boolean | undefined; /** * Disables the native context menu for the image */ noNativeMenu?: boolean | undefined; /** * Disable default transition when switching between old and new image */ noTransition?: boolean | undefined; /** * Emitted when image has been loaded by the browser * @param src URL of image that has been loaded; useful when using 'srcset' and/or 'sizes' */ onLoad?: (src: string) => void; /** * Emitted when browser could not load the image * @param evt JS Event object (same as the browser's native 'error' event) */ onError?: (evt: Event) => void; } export interface QImgSlots { /** * Default slot can be used for captions. See examples */ default: () => VNode[]; /** * While image is loading, this slot is being displayed on top of the component; Suggestions: a spinner or text */ loading: () => VNode[]; /** * Optional slot to be used when image could not be loaded; make sure you assign a min-height and min-width to the component through CSS */ error: () => VNode[]; } export interface QImg extends ComponentPublicInstance {} export interface QInfiniteScrollProps { /** * Offset (pixels) to bottom of Infinite Scroll container from which the component should start loading more content in advance * Default value: 500 */ offset?: number | undefined; /** * Debounce amount (in milliseconds) * Default value: 100 */ debounce?: string | number | undefined; /** * Initialize the pagination index (used for the @load event) * Default value: 0 */ initialIndex?: number | undefined; /** * CSS selector or DOM element to be used as a custom scroll container instead of the auto detected one */ scrollTarget?: Element | string | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Scroll area should behave like a messenger - starting scrolled to bottom and loading when reaching the top */ reverse?: boolean | undefined; /** * Emitted when Infinite Scroll needs to load more data * @param index The index parameter can be used to make some sort of pagination on the content you load. It takes numeric values starting with 1 and incrementing with each call * @param done Function to call when you made all necessary updates. DO NOT forget to call it otherwise your loading message will continue to be displayed */ onLoad?: (index: number, done: (stop?: boolean) => void) => void; } export interface QInfiniteScrollSlots { /** * Default slot in the devland unslotted content of the component */ default: () => VNode[]; /** * Slot displaying something while loading content; Example: QSpinner */ loading: () => VNode[]; } export interface QInfiniteScroll extends ComponentPublicInstance { /** * Checks scroll position and loads more content if necessary */ poll: () => void; /** * Tells Infinite Scroll to load more content, regardless of the scroll position */ trigger: () => void; /** * Resets calling index to 0 */ reset: () => void; /** * Stops working, regardless of scroll position */ stop: () => void; /** * Starts working. Checks scroll position upon call and if trigger is hit, it loads more content */ resume: () => void; /** * Overwrite the current pagination index * @param newIndex New pagination index */ setIndex: (newIndex: number) => void; /** * Updates the scroll target; Useful when the parent elements change so that the scrolling target also changes */ updateScrollTarget: () => void; } export interface QInnerLoadingProps { /** * One of Quasar's embedded transitions * Default value: 'fade' */ transitionShow?: string | undefined; /** * One of Quasar's embedded transitions * Default value: 'fade' */ transitionHide?: string | undefined; /** * Transition duration (in milliseconds, without unit) * Default value: 300 */ transitionDuration?: string | number | undefined; /** * Size in CSS units, including unit name, or standard size name (xs|sm|md|lg|xl), for the inner Spinner (unless using the default slot) * Default value: '42px' */ size?: string | number | undefined; /** * State - loading or not */ showing?: boolean | undefined; /** * Color name for component from the Quasar Color Palette for the inner Spinner (unless using the default slot) */ color?: NamedColor | undefined; /** * Add a label; Gets overriden when using the default slot */ label?: string | undefined; /** * Add CSS class(es) to the label; Works along the 'label' prop only */ labelClass?: string | undefined; /** * Apply custom style to the label; Works along the 'label' prop only */ labelStyle?: VueStyleProp | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; } export interface QInnerLoadingSlots { /** * Default slot is used for replacing default Spinner; Suggestions: a spinner or text */ default: () => VNode[]; } export interface QInnerLoading extends ComponentPublicInstance {} export interface QInputProps { /** * Used to specify the name of the control; Useful if dealing with forms; If not specified, it takes the value of 'for' prop, if it exists */ name?: string | undefined; /** * Custom mask or one of the predefined mask names */ mask?: string | undefined; /** * Fills string with specified characters (or underscore if value is not string) to fill mask's length */ fillMask?: boolean | string | undefined; /** * Fills string from the right side of the mask */ reverseFillMask?: boolean | undefined; /** * Model will be unmasked (won't contain tokens/separation characters) */ unmaskedValue?: boolean | undefined; /** * Object of custom mask tokens to be added on top of the default ones; Can also override any of the default ones */ maskTokens?: | { /** * The definition for the current custom mask token */ [tokenCharacter: string]: { /** * A string representing a regular expression to match against a single character */ pattern: string; /** * A string representing a regular expression to NOT match against a single character */ negate: string; /** * A function that takes the character as argument and returns the transformed character * @param char The character being transformed * @returns The transformed character */ transform?: (char: string) => string; }; } | undefined; /** * Model of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive */ modelValue: string | number | FileList | null | undefined; /** * Does field have validation errors? * Default value: null */ error?: boolean | null | undefined; /** * Validation error message (gets displayed only if 'error' is set to 'true') */ errorMessage?: string | undefined; /** * Hide error icon when there is an error */ noErrorIcon?: boolean | undefined; /** * Array of Functions/Strings; If String, then it must be a name of one of the embedded validation rules */ rules?: ValidationRule[] | undefined; /** * By default a change in the rules does not trigger a new validation until the model changes; If set to true then a change in the rules will trigger a validation; Has a performance penalty, so use it only when you really need it */ reactiveRules?: boolean | undefined; /** * If set to boolean true then it checks validation status against the 'rules' only after field loses focus for first time; If set to 'ondemand' then it will trigger only when component's validate() method is manually called or when the wrapper QForm submits itself * Default value: false */ lazyRules?: boolean | "ondemand" | undefined; /** * A text label that will “float” up above the input field, once the field gets focus */ label?: string | undefined; /** * Label will be always shown above the field regardless of field content (if any) */ stackLabel?: boolean | undefined; /** * Helper (hint) text which gets placed below your wrapped form component */ hint?: string | undefined; /** * Hide the helper (hint) text when field doesn't have focus */ hideHint?: boolean | undefined; /** * Prefix */ prefix?: string | undefined; /** * Suffix */ suffix?: string | undefined; /** * Color name for the label from the Quasar Color Palette; Overrides the 'color' prop; The difference from 'color' prop is that the label will always have this color, even when field is not focused */ labelColor?: NamedColor | undefined; /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Color name for component from the Quasar Color Palette */ bgColor?: NamedColor | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Signals the user a process is in progress by displaying a spinner; Spinner can be customized by using the 'loading' slot. */ loading?: boolean | undefined; /** * Appends clearable icon when a value (not undefined or null) is set; When clicked, model becomes null */ clearable?: boolean | undefined; /** * Custom icon to use for the clear button when using along with 'clearable' prop */ clearIcon?: string | undefined; /** * Use 'filled' design for the field */ filled?: boolean | undefined; /** * Use 'outlined' design for the field */ outlined?: boolean | undefined; /** * Use 'borderless' design for the field */ borderless?: boolean | undefined; /** * Use 'standout' design for the field; Specifies classes to be applied when focused (overriding default ones) */ standout?: boolean | string | undefined; /** * Enables label slot; You need to set it to force use of the 'label' slot if the 'label' prop is not set */ labelSlot?: boolean | undefined; /** * Enables bottom slots ('error', 'hint', 'counter') */ bottomSlots?: boolean | undefined; /** * Do not reserve space for hint/error/counter anymore when these are not used; As a result, it also disables the animation for those; It also allows the hint/error area to stretch vertically based on its content */ hideBottomSpace?: boolean | undefined; /** * Show an automatic counter on bottom right */ counter?: boolean | undefined; /** * Applies a small standard border-radius for a squared shape of the component */ rounded?: boolean | undefined; /** * Remove border-radius so borders are squared; Overrides 'rounded' prop */ square?: boolean | undefined; /** * Dense mode; occupies less space */ dense?: boolean | undefined; /** * Match inner content alignment to that of QItem */ itemAligned?: boolean | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Put component in readonly mode */ readonly?: boolean | undefined; /** * Focus field on initial component render */ autofocus?: boolean | undefined; /** * Used to specify the 'id' of the control and also the 'for' attribute of the label that wraps it; If no 'name' prop is specified, then it is used for this attribute as well */ for?: string | undefined; /** * Text to be displayed as shadow at the end of the text in the control; Does NOT applies to type=file */ shadowText?: string | undefined; /** * Input type * Default value: 'text' */ type?: | "text" | "password" | "textarea" | "email" | "search" | "tel" | "file" | "number" | "url" | "time" | "date" | "datetime-local" | undefined; /** * Debounce amount (in milliseconds) when updating model */ debounce?: string | number | undefined; /** * Specify a max length of model */ maxlength?: string | number | undefined; /** * Make field autogrow along with its content (uses a textarea) */ autogrow?: boolean | undefined; /** * Class definitions to be attributed to the underlying input tag */ inputClass?: VueClassProp | undefined; /** * Style definitions to be attributed to the underlying input tag */ inputStyle?: VueStyleProp | undefined; /** * Emitted when the component needs to change the model; Is also used by v-model * @param value New model value */ "onUpdate:modelValue"?: (value: string | number | null) => void; /** * Emitted when component gets focused * @param evt JS event object */ onFocus?: (evt: Event) => void; /** * Emitted when component loses focus * @param evt JS event object */ onBlur?: (evt: Event) => void; /** * When using the 'clearable' property, this event is emitted when the clear icon is clicked * @param value The previous value before clearing it */ onClear?: (value: any) => void; } export interface QInputSlots { /** * Field main content */ default: () => VNode[]; /** * Prepend inner field; Suggestions: QIcon, QBtn */ prepend: () => VNode[]; /** * Append to inner field; Suggestions: QIcon, QBtn */ append: () => VNode[]; /** * Prepend outer field; Suggestions: QIcon, QBtn */ before: () => VNode[]; /** * Append outer field; Suggestions: QIcon, QBtn */ after: () => VNode[]; /** * Slot for label; Used only if 'label-slot' prop is set or the 'label' prop is set; When it is used the text in the 'label' prop is ignored */ label: () => VNode[]; /** * Slot for errors; Enabled only if 'bottom-slots' prop is used; Suggestion:
*/ error: () => VNode[]; /** * Slot for hint text; Enabled only if 'bottom-slots' prop is used; Suggestion:
*/ hint: () => VNode[]; /** * Slot for counter text; Enabled only if 'bottom-slots' prop is used; Suggestion:
*/ counter: () => VNode[]; /** * Override default spinner when component is in loading mode; Use in conjunction with 'loading' prop */ loading: () => VNode[]; } export interface QInput extends ComponentPublicInstance { /** * Reset validation status */ resetValidation: () => void; /** * Trigger a validation * @param value Optional value to validate against * @returns True/false if no async rules, otherwise a Promise with the outcome (true -> validation was a success, false -> invalid models detected) */ validate: (value?: any) => boolean | Promise; /** * Focus underlying input tag */ focus: () => void; /** * Lose focus on underlying input tag */ blur: () => void; /** * Select input text */ select: () => void; /** * DEPRECATED; Access 'nativeEl' directly instead; Get the native input/textarea DOM Element * @returns The underlying native input/textarea DOM Element */ getNativeElement: () => QInputNativeElement; /** * Whether the component is in error state */ readonly hasError: boolean; /** * The native input/textarea DOM Element */ readonly nativeEl: QInputNativeElement; } export interface QIntersectionProps { /** * HTML tag to use * Default value: 'div' */ tag?: string | undefined; /** * Get triggered only once */ once?: boolean | undefined; /** * Pre-render content on server side if using SSR (use it to pre-render above the fold content) */ ssrPrerender?: boolean | undefined; /** * [Intersection API root prop] Lets you define an alternative to the viewport as your root (through its DOM element); It is important to keep in mind that root needs to be an ancestor of the observed element * Default value: null */ root?: Element | null | undefined; /** * [Intersection API rootMargin prop] Allows you to specify the margins for the root, effectively allowing you to either grow or shrink the area used for intersections */ margin?: string | undefined; /** * [Intersection API threshold prop] Threshold(s) at which to trigger, specified as a ratio, or list of ratios, of (visible area / total area) of the observed element */ threshold?: readonly any[] | number | undefined; /** * One of Quasar's embedded transitions */ transition?: string | undefined; /** * Transition duration (in milliseconds, without unit) * Default value: 300 */ transitionDuration?: string | number | undefined; /** * Disable visibility observable (content will remain as it was, visible or hidden) */ disable?: boolean | undefined; /** * Fires when visibility changes * @param isVisible Visibility status (true/false) */ onVisibility?: (isVisible: boolean) => void; } export interface QIntersectionSlots { /** * Default slot in the devland unslotted content of the component */ default: () => VNode[]; /** * Slot for content to render when component is not on screen; Example: a text that the user can search for with the browser's search function */ hidden: () => VNode[]; } export interface QIntersection extends ComponentPublicInstance {} export interface QItemProps { /** * Equivalent to Vue Router 'to' property; Superseded by 'href' prop if used */ to?: string | any | undefined; /** * Equivalent to Vue Router 'exact' property; Superseded by 'href' prop if used */ exact?: boolean | undefined; /** * Equivalent to Vue Router 'replace' property; Superseded by 'href' prop if used */ replace?: boolean | undefined; /** * Equivalent to Vue Router 'active-class' property; Superseded by 'href' prop if used * Default value: 'q-router-link--active' */ activeClass?: string | undefined; /** * Equivalent to Vue Router 'active-class' property; Superseded by 'href' prop if used * Default value: 'q-router-link--exact-active' */ exactActiveClass?: string | undefined; /** * Native link href attribute; Has priority over the 'to'/'exact'/'replace'/'active-class'/'exact-active-class' props */ href?: string | undefined; /** * Native link target attribute; Use it only along with 'href' prop; Has priority over the 'to'/'exact'/'replace'/'active-class'/'exact-active-class' props */ target?: string | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Put item into 'active' state * Default value: null */ active?: boolean | null | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Is QItem clickable? If it's the case, then it will add hover effects and emit 'click' events */ clickable?: boolean | undefined; /** * Dense mode; occupies less space */ dense?: boolean | undefined; /** * Apply an inset; Useful when avatar/left side is missing but you want to align content with other items that do have a left side, or when you're building a menu */ insetLevel?: number | undefined; /** * Tabindex HTML attribute value */ tabindex?: number | string | undefined; /** * HTML tag to render; Suggestion: use 'label' when encapsulating a QCheckbox/QRadio/QToggle so that when user clicks/taps on the whole item it will trigger a model change for the mentioned components * Default value: 'div' */ tag?: string | undefined; /** * Put item into a manual focus state; Enables 'focused' prop which will determine if item is focused or not, rather than relying on native hover/focus states */ manualFocus?: boolean | undefined; /** * Determines focus state, ONLY if 'manual-focus' is enabled / set to true */ focused?: boolean | undefined; /** * Emitted when the component is clicked * @param evt JS event object; If you are using route navigation ('to'/'replace' props) and you want to cancel navigation then call evt.preventDefault() synchronously in your event handler * @param go Available ONLY if you are using route navigation ('to'/'replace' props); When you need to control the time at which the component should trigger the route navigation then call evt.preventDefault() synchronously and then call this function at your convenience; Useful if you have async work to be done before the actual route navigation or if you want to redirect somewhere else */ onClick?: ( evt: Event, go?: (opts?: { /** * Equivalent to Vue Router 'to' property; Specify it explicitly otherwise it will be set with same value as component's 'to' prop */ to?: string | any; /** * Equivalent to Vue Router 'replace' property; Specify it explicitly otherwise it will be set with same value as component's 'replace' prop */ replace?: boolean; /** * Return the router error, if any; Otherwise the returned Promise will always fulfill */ returnRouterError?: boolean; }) => Promise, ) => void; } export interface QItemSlots { /** * This is where QItem's content goes */ default: () => VNode[]; } export interface QItem extends ComponentPublicInstance {} export interface QItemLabelProps { /** * Renders an overline label */ overline?: boolean | undefined; /** * Renders a caption label */ caption?: boolean | undefined; /** * Renders a header label */ header?: boolean | undefined; /** * Apply ellipsis when there's not enough space to render on the specified number of lines; */ lines?: number | string | undefined; } export interface QItemLabelSlots { /** * The content of the label; Suggestion: text */ default: () => VNode[]; } export interface QItemLabel extends ComponentPublicInstance {} export interface QItemSectionProps { /** * Render an avatar item side (does not needs 'side' prop to be set) */ avatar?: boolean | undefined; /** * Render a thumbnail item side (does not needs 'side' prop to be set) */ thumbnail?: boolean | undefined; /** * Renders as a side of the item */ side?: boolean | undefined; /** * Align content to top (useful for multi-line items) */ top?: boolean | undefined; /** * Do not wrap text (useful for item's main content) */ noWrap?: boolean | undefined; } export interface QItemSectionSlots { /** * Section's actual content */ default: () => VNode[]; } export interface QItemSection extends ComponentPublicInstance {} export interface QListProps { /** * Applies a default border to the component */ bordered?: boolean | undefined; /** * Dense mode; occupies less space */ dense?: boolean | undefined; /** * Applies a separator between contained items */ separator?: boolean | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Applies a material design-like padding on top and bottom */ padding?: boolean | undefined; /** * HTML tag to use * Default value: 'div' */ tag?: string | undefined; } export interface QListSlots { /** * This is where the content goes; Suggestion: QItem, QExpansionItem, ... */ default: () => VNode[]; } export interface QList extends ComponentPublicInstance {} export interface QKnobProps { /** * Used to specify the name of the control; Useful if dealing with forms submitted directly to a URL */ name?: string | undefined; /** * Size in CSS units, including unit name or standard size name (xs|sm|md|lg|xl) */ size?: string | undefined; /** * Any number to indicate the given value of the knob. Either use this property (along with a listener for 'update:modelValue' event) OR use the v-model directive */ modelValue: number; /** * The minimum value that the model (the knob value) should start at * Default value: 0 */ min?: number | undefined; /** * The maximum value that the model (the knob value) should go to * Default value: 100 */ max?: number | undefined; /** * Inner minimum value of the model; Use in case you need the model value to be inside of the track's min-max values; Needs to be higher or equal to 'min' prop; Defaults to 'min' prop */ innerMin?: number | undefined; /** * Inner maximum value of the model; Use in case you need the model value to be inside of the track's min-max values; Needs to be lower or equal to 'max' prop; Defaults to 'max' prop */ innerMax?: number | undefined; /** * A number representing steps in the value of the model, while adjusting the knob * Default value: 1 */ step?: number | undefined; /** * Reverses the direction of progress */ reverse?: boolean | undefined; /** * No animation when model changes */ instantFeedback?: boolean | undefined; /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Color name for the center part of the component from the Quasar Color Palette */ centerColor?: NamedColor | undefined; /** * Color name for the track of the component from the Quasar Color Palette */ trackColor?: NamedColor | undefined; /** * Size of text in CSS units, including unit name. Suggestion: use 'em' units to sync with component size */ fontSize?: string | undefined; /** * Rounding the arc of progress */ rounded?: boolean | undefined; /** * Thickness of progress arc as a ratio (0.0 < x < 1.0) of component size * Default value: 0.2 */ thickness?: number | undefined; /** * Angle to rotate progress arc by * Default value: 0 */ angle?: number | undefined; /** * Enables the default slot and uses it (if available), otherwise it displays the 'value' prop as text; Make sure the text has enough space to be displayed inside the component */ showValue?: boolean | undefined; /** * Tabindex HTML attribute value * Default value: 0 */ tabindex?: number | string | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Put component in readonly mode */ readonly?: boolean | undefined; /** * Emitted when the component needs to change the model; Is also used by v-model * @param value New model value */ "onUpdate:modelValue"?: (value: number) => void; /** * Fires at the end of a knob's adjustment and offers the value of the model * @param value New model value */ onChange?: (value: number) => void; /** * The value of the model while dragging is still in progress * @param value New model value */ onDragValue?: (value: number) => void; } export interface QKnobSlots { /** * Default slot in the devland unslotted content of the component */ default: () => VNode[]; } export interface QKnob extends ComponentPublicInstance {} export interface QLayoutProps { /** * Defines how your layout components (header/footer/drawer) should be placed on screen; See docs examples * Default value: 'hhh lpr fff' */ view?: string | undefined; /** * Containerize the layout which means it changes the default behavior of expanding to the whole window; Useful (but not limited to) for when using on a QDialog */ container?: boolean | undefined; /** * Emitted when layout size (height, width) changes * @param size New size */ onResize?: (size: { /** * Layout height */ height: number; /** * Layout width */ width: number; }) => void; /** * Emitted when user scrolls within layout * @param details Scroll details */ onScroll?: (details: { /** * Scroll offset from top (vertical) */ position: number; /** * Direction of scroll */ direction: "up" | "down"; /** * Has scroll direction changed since event was last emitted? */ directionChanged: boolean; /** * Vertical delta distance since event was last emitted */ delta: number; /** * Scroll offset from top (vertical) */ inflectionPoint: number; }) => void; /** * Emitted when the scroll size of layout changes * @param height New scroll height of layout */ onScrollHeight?: (height: number) => void; } export interface QLayoutSlots { /** * Suggestion: QHeader, QFooter, QDrawer, QPageContainer */ default: () => VNode[]; } export interface QLayout extends ComponentPublicInstance {} export interface QLinearProgressProps { /** * Size in CSS units, including unit name or standard size name (xs|sm|md|lg|xl) */ size?: string | undefined; /** * Progress value (0.0 < x < 1.0) * Default value: 0 */ value?: number | undefined; /** * Optional buffer value (0.0 < x < 1.0) */ buffer?: number | undefined; /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Color name for component's track from the Quasar Color Palette */ trackColor?: NamedColor | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Reverse direction of progress */ reverse?: boolean | undefined; /** * Draw stripes; For determinate state only (for performance reasons) */ stripe?: boolean | undefined; /** * Put component into indeterminate mode */ indeterminate?: boolean | undefined; /** * Put component into query mode */ query?: boolean | undefined; /** * Applies a small standard border-radius for a squared shape of the component */ rounded?: boolean | undefined; /** * No transition when model changes */ instantFeedback?: boolean | undefined; /** * Animation speed (in milliseconds, without unit) * Default value: 2100 */ animationSpeed?: string | number | undefined; } export interface QLinearProgressSlots { /** * Suggestion: QTooltip */ default: () => VNode[]; } export interface QLinearProgress extends ComponentPublicInstance {} export interface QMarkupTableProps { /** * Dense mode; occupies less space */ dense?: boolean | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Applies a 'flat' design (no default shadow) */ flat?: boolean | undefined; /** * Applies a default border to the component */ bordered?: boolean | undefined; /** * Removes border-radius so borders are squared */ square?: boolean | undefined; /** * Use a separator/border between rows, columns or all cells * Default value: 'horizontal' */ separator?: "horizontal" | "vertical" | "cell" | "none" | undefined; /** * Wrap text within table cells */ wrapCells?: boolean | undefined; } export interface QMarkupTableSlots { /** * Default slot in the devland unslotted content of the component */ default: () => VNode[]; } export interface QMarkupTable extends ComponentPublicInstance {} export interface QMenuProps { /** * One of Quasar's embedded transitions * Default value: 'fade' */ transitionShow?: string | undefined; /** * One of Quasar's embedded transitions * Default value: 'fade' */ transitionHide?: string | undefined; /** * Transition duration (in milliseconds, without unit) * Default value: 300 */ transitionDuration?: string | number | undefined; /** * Configure a target element to trigger component toggle; 'true' means it enables the parent DOM element, 'false' means it disables attaching events to any DOM elements; By using a String (CSS selector) or a DOM element it attaches the events to the specified DOM element (if it exists) * Default value: true */ target?: boolean | string | Element | undefined; /** * Skips attaching events to the target DOM element (that trigger the element to get shown) */ noParentEvent?: boolean | undefined; /** * Allows the component to behave like a context menu, which opens with a right mouse click (or long tap on mobile) */ contextMenu?: boolean | undefined; /** * Model of the component defining shown/hidden state; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive * Default value: null */ modelValue?: boolean | null; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Allows the menu to match at least the full width of its target */ fit?: boolean | undefined; /** * Allows the menu to cover its target. When used, the 'self' and 'fit' props are no longer effective */ cover?: boolean | undefined; /** * Two values setting the starting position or anchor point of the menu relative to its target */ anchor?: | "top left" | "top middle" | "top right" | "top start" | "top end" | "center left" | "center middle" | "center right" | "center start" | "center end" | "bottom left" | "bottom middle" | "bottom right" | "bottom start" | "bottom end" | undefined; /** * Two values setting the menu's own position relative to its target */ self?: | "top left" | "top middle" | "top right" | "top start" | "top end" | "center left" | "center middle" | "center right" | "center start" | "center end" | "bottom left" | "bottom middle" | "bottom right" | "bottom start" | "bottom end" | undefined; /** * An array of two numbers to offset the menu horizontally and vertically in pixels */ offset?: readonly any[] | undefined; /** * CSS selector or DOM element to be used as a custom scroll container instead of the auto detected one */ scrollTarget?: Element | string | undefined; /** * Allows for the target position to be set by the mouse position, when the target of the menu is either clicked or touched */ touchPosition?: boolean | undefined; /** * Allows the menu to not be dismissed by a click/tap outside of the menu or by hitting the ESC key; Also, an app route change won't dismiss it */ persistent?: boolean | undefined; /** * User cannot dismiss the popup by hitting ESC key; No need to set it if 'persistent' prop is also set */ noEscDismiss?: boolean | undefined; /** * Changing route app won't dismiss the popup; No need to set it if 'persistent' prop is also set */ noRouteDismiss?: boolean | undefined; /** * Allows any click/tap in the menu to close it; Useful instead of attaching events to each menu item that should close the menu on click/tap */ autoClose?: boolean | undefined; /** * Separate from parent menu, marking it as a separate closing point for v-close-popup (without this, chained menus close all together) */ separateClosePopup?: boolean | undefined; /** * Forces content to have squared borders */ square?: boolean | undefined; /** * (Accessibility) When Menu gets hidden, do not refocus on the DOM element that previously had focus */ noRefocus?: boolean | undefined; /** * (Accessibility) When Menu gets shown, do not switch focus on it */ noFocus?: boolean | undefined; /** * The maximum height of the menu; Size in CSS units, including unit name * Default value: null */ maxHeight?: string | null | undefined; /** * The maximum width of the menu; Size in CSS units, including unit name * Default value: null */ maxWidth?: string | null | undefined; /** * Emitted when showing/hidden state changes; Is also used by v-model * @param value New state (showing/hidden) */ "onUpdate:modelValue"?: (value: boolean) => void; /** * Emitted after component has triggered show() * @param evt JS event object */ onShow?: (evt: Event) => void; /** * Emitted when component triggers show() but before it finishes doing it * @param evt JS event object */ onBeforeShow?: (evt: Event) => void; /** * Emitted after component has triggered hide() * @param evt JS event object */ onHide?: (evt: Event) => void; /** * Emitted when component triggers hide() but before it finishes doing it * @param evt JS event object */ onBeforeHide?: (evt: Event) => void; /** * Emitted when ESC key is pressed; Does not get emitted if Menu is 'persistent' or it has 'no-esc-dismiss' set */ onEscapeKey?: () => void; } export interface QMenuSlots { /** * Default slot in the devland unslotted content of the component */ default: () => VNode[]; } export interface QMenu extends ComponentPublicInstance { /** * Triggers component to show * @param evt JS event object */ show: (evt?: Event) => void; /** * Triggers component to hide * @param evt JS event object */ hide: (evt?: Event) => void; /** * Triggers component to toggle between show/hide * @param evt JS event object */ toggle: (evt?: Event) => void; /** * There are some custom scenarios for which Quasar cannot automatically reposition the menu without significant performance drawbacks so the optimal solution is for you to call this method when you need it */ updatePosition: () => void; /** * Focus menu; if you have content with autofocus attribute, it will directly focus it */ focus: () => void; /** * The DOM Element of the rendered content */ readonly contentEl: Element; } export interface QNoSsrProps { /** * HTML tag to use * Default value: 'div' */ tag?: string | undefined; /** * Text to display on server-side render (unless using 'placeholder' slot) */ placeholder?: string | undefined; } export interface QNoSsrSlots { /** * Default slot is used to render content on client-side */ default: () => VNode[]; /** * Slot used as placeholder on server-side render, which gets replaced by the default slot on client-side; overrides 'placeholder' prop */ placeholder: () => VNode[]; } export interface QNoSsr extends ComponentPublicInstance {} export interface QOptionGroupProps { /** * Size in CSS units, including unit name or standard size name (xs|sm|md|lg|xl) */ size?: string | undefined; /** * Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive */ modelValue: any; /** * Array of objects that the binary components will be created from. For best performance reference a variable in your scope. Canonical form of each object is with 'label' (String), 'value' (Any) and optional 'disable' (Boolean) props (can be customized with options-value/option-label/option-disable props) along with any other props from QToggle, QCheckbox, or QRadio. * Default value: [] */ options?: { /** * Any other props from QToggle, QCheckbox, or QRadio */ [props: string]: any | undefined; }[]; /** * Property of option which holds the 'value'; If using a function then for best performance, reference it from your scope and do not define it inline * Default value: 'value' * @param option The current option being processed * @returns Value of the current option */ optionValue?: ((option: string | any) => any) | string | undefined; /** * Property of option which holds the 'label'; If using a function then for best performance, reference it from your scope and do not define it inline * Default value: 'label' * @param option The current option being processed * @returns Label of the current option */ optionLabel?: ((option: string | any) => string) | string | undefined; /** * Property of option which tells it's disabled; The value of the property must be a Boolean; If using a function then for best performance, reference it from your scope and do not define it inline * Default value: 'disable' * @param option The current option being processed * @returns If true, the current option will be disabled */ optionDisable?: ((option: string | any) => boolean) | string | undefined; /** * Used to specify the name of the controls; Useful if dealing with forms submitted directly to a URL */ name?: string | undefined; /** * The type of input component to be used * Default value: 'radio' */ type?: "radio" | "checkbox" | "toggle" | undefined; /** * Color name for component from the Quasar Color Palette */ color?: NamedColor | undefined; /** * Should the color (if specified any) be kept when input components are unticked? */ keepColor?: boolean | undefined; /** * Notify the component that the background is a dark color * Default value: null */ dark?: boolean | null | undefined; /** * Dense mode; occupies less space */ dense?: boolean | undefined; /** * Label (if any specified) should be displayed on the left side of the input components */ leftLabel?: boolean | undefined; /** * Show input components as inline-block rather than each having their own row */ inline?: boolean | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Emitted when the component needs to change the model; Is also used by v-model * @param value New model value */ "onUpdate:modelValue"?: (value: any) => void; } export interface QOptionGroupSlots { /** * Generic slot for all labels * @param scope The corresponding option entry from the 'options' prop */ label: (scope: { /** * Label to display along the component */ label: string; /** * Value of the option that will be used by the component model */ value: any; /** * If true, the option will be disabled */ disable?: boolean; /** * Any other props from QToggle, QCheckbox, or QRadio */ [props: string]: any | undefined; }) => VNode[]; /** * Slot to define the specific label for the option at '[name]' where name is a 0-based index; Overrides the generic 'label' slot if used * @param scope The corresponding option entry from the 'options' prop */ [key: `label-${string}`]: (scope: { /** * Label to display along the component */ label: string; /** * Value of the option that will be used by the component model */ value: any; /** * If true, the option will be disabled */ disable?: boolean; /** * Any other props from QToggle, QCheckbox, or QRadio */ [props: string]: any | undefined; }) => VNode[]; } export interface QOptionGroup extends ComponentPublicInstance {} export interface QPageProps { /** * Applies a default responsive page padding */ padding?: boolean | undefined; /** * Override default CSS style applied to the component (sets minHeight); Function(offset: Number) => CSS props/value: Object; For best performance, reference it from your scope and do not define it inline * @param offset Header + Footer height (in pixels) * @param height Value in pixels of container height (if containerized) or window height otherwise * @returns Object with CSS properties to apply to Page DOM element */ styleFn?: ((offset: number, height: number) => any) | undefined; } export interface QPageSlots { /** * Default slot in the devland unslotted content of the component */ default: () => VNode[]; } export interface QPage extends ComponentPublicInstance {} export interface QPageContainerProps {} export interface QPageContainerSlots { /** * Encapsulates a QPage (either directly or through ) */ default: () => VNode[]; } export interface QPageContainer extends ComponentPublicInstance {} export interface QPageScrollerProps { /** * Page side/corner to stick to * Default value: 'bottom-right' */ position?: | "top-right" | "top-left" | "bottom-right" | "bottom-left" | "top" | "right" | "bottom" | "left" | undefined; /** * An array of two numbers to offset the component horizontally and vertically in pixels * Default value: [18, 18] */ offset?: readonly any[] | undefined; /** * By default the component shrinks to content's size; By using this prop you make the component fully expand horizontally or vertically, based on 'position' prop */ expand?: boolean | undefined; /** * Scroll offset (in pixels) from which point the component is shown on page; Measured from the top of the page (or from the bottom if in 'reverse' mode) * Default value: 1000 */ scrollOffset?: number | undefined; /** * Work in reverse (shows when scrolling to the top of the page and scrolls to bottom when triggered) */ reverse?: boolean | undefined; /** * Duration (in milliseconds) of the scrolling until it reaches its target * Default value: 300 */ duration?: number | undefined; } export interface QPageScrollerSlots { /** * Default slot in the devland unslotted content of the component */ default: () => VNode[]; } export interface QPageScroller extends ComponentPublicInstance {} export interface QPageStickyProps { /** * Page side/corner to stick to * Default value: 'bottom-right' */ position?: | "top-right" | "top-left" | "bottom-right" | "bottom-left" | "top" | "right" | "bottom" | "left" | undefined; /** * An array of two numbers to offset the component horizontally and vertically in pixels */ offset?: readonly any[] | undefined; /** * By default the component shrinks to content's size; By using this prop you make the component fully expand horizontally or vertically, based on 'position' prop */ expand?: boolean | undefined; } export interface QPageStickySlots { /** * Default slot in the devland unslotted content of the component */ default: () => VNode[]; } export interface QPageSticky extends ComponentPublicInstance {} export interface QPaginationProps { /** * Current page (must be between min/max) */ modelValue: number; /** * Minimum page (must be lower than 'max') * Default value: 1 */ min?: number | string | undefined; /** * Number of last page (must be higher than 'min') */ max: number | string; /** * Notify the component that the background is a dark color (useful when you are using it along with the 'input' prop) * Default value: null */ dark?: boolean | null | undefined; /** * Button size in CSS units, including unit name */ size?: string | undefined; /** * Put component in disabled mode */ disable?: boolean | undefined; /** * Use an input instead of buttons */ input?: boolean | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ iconPrev?: string | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ iconNext?: string | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ iconFirst?: string | undefined; /** * Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it) */ iconLast?: string | undefined; /** * Generate link for page buttons; For best performance, reference it from your scope and do not define it inline * @param page Page number to navigate to * @returns Object or String that can be passed to a as 'to' parameter */ toFn?: ((page: number) => any | string) | undefined; /** * Show boundary button links * Default value: null */ boundaryLinks?: boolean | null | undefined; /** * Always show first and last page buttons (if not using 'input') * Default value: null */ boundaryNumbers?: boolean | null | undefined; /** * Show direction buttons * Default value: null */ directionLinks?: boolean | null | undefined; /** * Show ellipses (...) when pages are available * Default value: null */ ellipses?: boolean | null | undefined; /** * Maximum number of page links to display at a time; 0 means Infinite * Default value: 0 */ maxPages?: number | string | undefined; /** * Use 'flat' design for non-active buttons (it's the default option) */ flat?: boolean | undefined; /** * Use 'outline' design for non-active buttons */ outline?: boolean | undefined; /** * Remove shadow for non-active buttons */ unelevated?: boolean | undefined; /** * Use 'push' design for non-active buttons */ push?: boolean | undefined; /** * Color name from the Quasar Color Palette for the non-active buttons * Default value: 'primary' */ color?: NamedColor | undefined; /** * Text color name from the Quasar Color Palette for the ACTIVE buttons */ textColor?: NamedColor | undefined; /** * The design of the ACTIVE button, similar to the flat/outline/push/unelevated props (but those are used for non-active buttons) * Default value: '' */ activeDesign?: "flat" | "outline" | "push" | "unelevated" | "" | undefined; /** * Color name from the Quasar Color Palette for the ACTIVE button * Default value: 'primary' */ activeColor?: NamedColor | undefined; /** * Text color name from the Quasar Color Palette for the ACTIVE button */ activeTextColor?: NamedColor | undefined; /** * Makes a circle shaped button for all buttons */ round?: boolean | undefined; /** * Applies a more prominent border-radius for a squared shape button for all buttons */ rounded?: boolean | undefined; /** * Applies a glossy effect for all buttons */ glossy?: boolean | undefined; /** * Apply custom gutter; Size in CSS units, including unit name or standard size name (none|xs|sm|md|lg|xl) * Default value: '2px' */ gutter?: string | undefined; /** * Apply custom padding (vertical [horizontal]); Size in CSS units, including unit name or standard size name (none|xs|sm|md|lg|xl); Also removes the min width and height when set * Default value: '3px 2px' */ padding?: string | undefined; /** * Style definitions to be attributed to the input (if using one) */ inputStyle?: VueStyleProp | undefined; /** * Class definitions to be attributed to the input (if using one) */ inputClass?: VueClassProp | undefined; /** * Configure buttons material ripple (disable it by setting it to 'false' or supply a config object); Does not applies to boundary and ellipsis buttons * Default value: true */ ripple?: boolean | any | null | undefined; /** * Emitted when the component needs to change the model; Is also used by v-model * @param value New model value */ "onUpdate:modelValue"?: (value: number) => void; } export interface QPaginationSlots {} export interface QPagination extends ComponentPublicInstance { /** * Go directly to the specified page * @param pageNumber Page number to go to */ set: (pageNumber?: number) => void; /** * Increment/Decrement current page by offset * @param offset Offset page, can be negative or positive */ setByOffset: (offset?: number) => void; } export interface QParallaxProps { /** * Path to image (unless a 'media' slot is used) */ src?: string | undefined; /** * Height of component (in pixels) * Default value: 500 */ height?: number | undefined; /** * Speed of parallax effect (0.0 < x < 1.0) * Default value: 1 */ speed?: number | undefined; /** * CSS selector or DOM element to be used as a custom scroll container instead of the auto detected one */ scrollTarget?: Element | string | undefined; /** * Emitted when scrolling occurs * @param percentage Number between 0.0 and 1.0 defining the scrolled percentage of the component */ onScroll?: (percentage: number) => void; } export interface QParallaxSlots { /** * Default slot can be used for content that gets displayed on top of the component */ default: () => VNode[]; /** * Slot for describing or