mirror of
https://github.com/flarum/framework.git
synced 2024-11-28 20:16:08 +08:00
c75db75efe
* Bump dependencies and add missing typing libraries * Fix expose-loader breaking changes * Expose jQuery using its own typings instead of ours * Extend jQuery typings with our own custom $.fn helpers * Use jQuery typings for Component's `this.$` attribute * Format webpack config file * Use Spin.js 3.1.0
45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
// Mithril
|
|
import Mithril from 'mithril';
|
|
|
|
// Other third-party libs
|
|
import * as _dayjs from 'dayjs';
|
|
import * as _$ from 'jquery';
|
|
|
|
// Globals from flarum/core
|
|
import Application from './src/common/Application';
|
|
|
|
/**
|
|
* flarum/core exposes several extensions globally:
|
|
*
|
|
* - jQuery for convenient DOM manipulation
|
|
* - Mithril for VDOM and components
|
|
* - dayjs for date/time operations
|
|
*
|
|
* Since these are already part of the global namespace, extensions won't need
|
|
* to (and should not) bundle these themselves.
|
|
*/
|
|
declare global {
|
|
// $ is already defined by `@types/jquery`
|
|
const m: Mithril.Static;
|
|
const dayjs: typeof _dayjs;
|
|
|
|
// Extend JQuery with our custom functions, defined with $.fn
|
|
interface JQuery {
|
|
/**
|
|
* Creates a tooltip on a jQuery element reference.
|
|
*
|
|
* Optionally accepts placement and delay options.
|
|
*
|
|
* Returns the same reference to allow for method chaining.
|
|
*/
|
|
tooltip: (tooltipOptions?: { placement?: 'top' | 'bottom' | 'left' | 'right'; delay?: number }) => JQuery;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* All global variables owned by flarum/core.
|
|
*/
|
|
declare global {
|
|
const app: Application;
|
|
}
|