|
| 1 | +declare namespace htmx { |
| 2 | + const onLoad: (callback: (elt: Node) => void) => EventListener; |
| 3 | + const process: (elt: string | Element) => void; |
| 4 | + const on: (arg1: string | EventTarget, arg2: string | EventListener, arg3?: EventListener) => EventListener; |
| 5 | + const off: (arg1: string | EventTarget, arg2: string | EventListener, arg3?: EventListener) => EventListener; |
| 6 | + const trigger: (elt: string | EventTarget, eventName: string, detail?: any) => boolean; |
| 7 | + const ajax: (verb: HttpVerb, path: string, context: string | Element | HtmxAjaxHelperContext) => Promise<void>; |
| 8 | + const find: (eltOrSelector: string | ParentNode, selector?: string) => Element; |
| 9 | + const findAll: (eltOrSelector: string | ParentNode, selector?: string) => NodeListOf<Element>; |
| 10 | + const closest: (elt: string | Element, selector: string) => Element; |
| 11 | + function values(elt: Element, type: HttpVerb): any; |
| 12 | + const remove: (elt: Node, delay?: number) => void; |
| 13 | + const addClass: (elt: string | Element, clazz: string, delay?: number) => void; |
| 14 | + const removeClass: (node: string | Node, clazz: string, delay?: number) => void; |
| 15 | + const toggleClass: (elt: string | Element, clazz: string) => void; |
| 16 | + const takeClass: (elt: string | Node, clazz: string) => void; |
| 17 | + const swap: (target: string | Element, content: string, swapSpec: HtmxSwapSpecification, swapOptions?: SwapOptions) => void; |
| 18 | + const defineExtension: (name: string, extension: any) => void; |
| 19 | + const removeExtension: (name: string) => void; |
| 20 | + const logAll: () => void; |
| 21 | + const logNone: () => void; |
| 22 | + const logger: any; |
| 23 | + namespace config { |
| 24 | + const historyEnabled: boolean; |
| 25 | + const historyCacheSize: number; |
| 26 | + const refreshOnHistoryMiss: boolean; |
| 27 | + const defaultSwapStyle: HtmxSwapStyle; |
| 28 | + const defaultSwapDelay: number; |
| 29 | + const defaultSettleDelay: number; |
| 30 | + const includeIndicatorStyles: boolean; |
| 31 | + const indicatorClass: string; |
| 32 | + const requestClass: string; |
| 33 | + const addedClass: string; |
| 34 | + const settlingClass: string; |
| 35 | + const swappingClass: string; |
| 36 | + const allowEval: boolean; |
| 37 | + const allowScriptTags: boolean; |
| 38 | + const inlineScriptNonce: string; |
| 39 | + const inlineStyleNonce: string; |
| 40 | + const attributesToSettle: string[]; |
| 41 | + const withCredentials: boolean; |
| 42 | + const timeout: number; |
| 43 | + const wsReconnectDelay: "full-jitter" | ((retryCount: number) => number); |
| 44 | + const wsBinaryType: BinaryType; |
| 45 | + const disableSelector: string; |
| 46 | + const scrollBehavior: 'auto' | 'instant' | 'smooth'; |
| 47 | + const defaultFocusScroll: boolean; |
| 48 | + const getCacheBusterParam: boolean; |
| 49 | + const globalViewTransitions: boolean; |
| 50 | + const methodsThatUseUrlParams: (HttpVerb)[]; |
| 51 | + const selfRequestsOnly: boolean; |
| 52 | + const ignoreTitle: boolean; |
| 53 | + const scrollIntoViewOnBoost: boolean; |
| 54 | + const triggerSpecsCache: any | null; |
| 55 | + const disableInheritance: boolean; |
| 56 | + const responseHandling: HtmxResponseHandlingConfig[]; |
| 57 | + const allowNestedOobSwaps: boolean; |
| 58 | + } |
| 59 | + const parseInterval: (str: string) => number; |
| 60 | + const _: (str: string) => any; |
| 61 | + const version: string; |
| 62 | +} |
| 63 | +type HttpVerb = 'get' | 'head' | 'post' | 'put' | 'delete' | 'connect' | 'options' | 'trace' | 'patch'; |
| 64 | +type SwapOptions = { |
| 65 | + select?: string; |
| 66 | + selectOOB?: string; |
| 67 | + eventInfo?: any; |
| 68 | + anchor?: string; |
| 69 | + contextElement?: Element; |
| 70 | + afterSwapCallback?: swapCallback; |
| 71 | + afterSettleCallback?: swapCallback; |
| 72 | +}; |
| 73 | +type swapCallback = () => any; |
| 74 | +type HtmxSwapStyle = 'innerHTML' | 'outerHTML' | 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend' | 'delete' | 'none' | string; |
| 75 | +type HtmxSwapSpecification = { |
| 76 | + swapStyle: HtmxSwapStyle; |
| 77 | + swapDelay: number; |
| 78 | + settleDelay: number; |
| 79 | + transition?: boolean; |
| 80 | + ignoreTitle?: boolean; |
| 81 | + head?: string; |
| 82 | + scroll?: 'top' | 'bottom'; |
| 83 | + scrollTarget?: string; |
| 84 | + show?: string; |
| 85 | + showTarget?: string; |
| 86 | + focusScroll?: boolean; |
| 87 | +}; |
| 88 | +type ConditionalFunction = ((this: Node, evt: Event) => boolean) & { |
| 89 | + source: string; |
| 90 | +}; |
| 91 | +type HtmxTriggerSpecification = { |
| 92 | + trigger: string; |
| 93 | + pollInterval?: number; |
| 94 | + eventFilter?: ConditionalFunction; |
| 95 | + changed?: boolean; |
| 96 | + once?: boolean; |
| 97 | + consume?: boolean; |
| 98 | + delay?: number; |
| 99 | + from?: string; |
| 100 | + target?: string; |
| 101 | + throttle?: number; |
| 102 | + queue?: string; |
| 103 | + root?: string; |
| 104 | + threshold?: string; |
| 105 | +}; |
| 106 | +type HtmxElementValidationError = { |
| 107 | + elt: Element; |
| 108 | + message: string; |
| 109 | + validity: ValidityState; |
| 110 | +}; |
| 111 | +type HtmxHeaderSpecification = Record<string, string>; |
| 112 | +type HtmxAjaxHelperContext = { |
| 113 | + source?: Element | string; |
| 114 | + event?: Event; |
| 115 | + handler?: HtmxAjaxHandler; |
| 116 | + target: Element | string; |
| 117 | + swap?: HtmxSwapStyle; |
| 118 | + values?: any | FormData; |
| 119 | + headers?: Record<string, string>; |
| 120 | + select?: string; |
| 121 | +}; |
| 122 | +type HtmxRequestConfig = { |
| 123 | + boosted: boolean; |
| 124 | + useUrlParams: boolean; |
| 125 | + formData: FormData; |
| 126 | + /** |
| 127 | + * formData proxy |
| 128 | + */ |
| 129 | + parameters: any; |
| 130 | + unfilteredFormData: FormData; |
| 131 | + /** |
| 132 | + * unfilteredFormData proxy |
| 133 | + */ |
| 134 | + unfilteredParameters: any; |
| 135 | + headers: HtmxHeaderSpecification; |
| 136 | + target: Element; |
| 137 | + verb: HttpVerb; |
| 138 | + errors: HtmxElementValidationError[]; |
| 139 | + withCredentials: boolean; |
| 140 | + timeout: number; |
| 141 | + path: string; |
| 142 | + triggeringEvent: Event; |
| 143 | +}; |
| 144 | +type HtmxResponseInfo = { |
| 145 | + xhr: XMLHttpRequest; |
| 146 | + target: Element; |
| 147 | + requestConfig: HtmxRequestConfig; |
| 148 | + etc: HtmxAjaxEtc; |
| 149 | + boosted: boolean; |
| 150 | + select: string; |
| 151 | + pathInfo: { |
| 152 | + requestPath: string; |
| 153 | + finalRequestPath: string; |
| 154 | + responsePath: string | null; |
| 155 | + anchor: string; |
| 156 | + }; |
| 157 | + failed?: boolean; |
| 158 | + successful?: boolean; |
| 159 | +}; |
| 160 | +type HtmxAjaxEtc = { |
| 161 | + returnPromise?: boolean; |
| 162 | + handler?: HtmxAjaxHandler; |
| 163 | + select?: string; |
| 164 | + targetOverride?: Element; |
| 165 | + swapOverride?: HtmxSwapStyle; |
| 166 | + headers?: Record<string, string>; |
| 167 | + values?: any | FormData; |
| 168 | + credentials?: boolean; |
| 169 | + timeout?: number; |
| 170 | +}; |
| 171 | +type HtmxResponseHandlingConfig = { |
| 172 | + code?: string; |
| 173 | + swap: boolean; |
| 174 | + error?: boolean; |
| 175 | + ignoreTitle?: boolean; |
| 176 | + select?: string; |
| 177 | + target?: string; |
| 178 | + swapOverride?: string; |
| 179 | + event?: string; |
| 180 | +}; |
| 181 | +type HtmxBeforeSwapDetails = HtmxResponseInfo & { |
| 182 | + shouldSwap: boolean; |
| 183 | + serverResponse: any; |
| 184 | + isError: boolean; |
| 185 | + ignoreTitle: boolean; |
| 186 | + selectOverride: string; |
| 187 | +}; |
| 188 | +type HtmxAjaxHandler = (elt: Element, responseInfo: HtmxResponseInfo) => any; |
| 189 | +type HtmxSettleTask = (() => void); |
| 190 | +type HtmxSettleInfo = { |
| 191 | + tasks: HtmxSettleTask[]; |
| 192 | + elts: Element[]; |
| 193 | + title?: string; |
| 194 | +}; |
| 195 | +type HtmxExtension = any; |
0 commit comments