1
0
mirror of https://github.com/flarum/core.git synced 2025-10-26 21:21:28 +01:00
Files
php-flarum/js/dist-typings/forum/components/NotificationGrid.d.ts
flarum-bot 3d62a6af27 Bundled output for commit d268894e61
Includes transpiled JS/TS, and Typescript declaration files (typings).

[skip ci]
2021-12-27 19:02:33 +00:00

101 lines
3.1 KiB
TypeScript

/**
* The `NotificationGrid` component displays a table of notification types and
* methods, allowing the user to toggle each combination.
*
* ### Attrs
*
* - `user`
*/
export default class NotificationGrid extends Component<import("../../common/Component").ComponentAttrs, undefined> {
constructor();
/**
* Information about the available notification methods.
*
* @type {({ name: string, icon: string, label: import('mithril').Children })[]}
*/
methods: {
name: string;
icon: string;
label: import('mithril').Children;
}[] | undefined;
/**
* A map of which notification checkboxes are loading.
*
* @type {Record<string, boolean>}
*/
loading: Record<string, boolean> | undefined;
/**
* Information about the available notification types.
*
* @type {({ name: string, icon: string, label: import('mithril').Children })[]}
*/
types: {
name: string;
icon: string;
label: import('mithril').Children;
}[] | undefined;
/**
* Toggle the state of the given preferences, based on the value of the first
* one.
*
* @param {string[]} keys
*/
toggle(keys: string[]): void;
/**
* Toggle all notification types for the given method.
*
* @param {string} method
*/
toggleMethod(method: string): void;
/**
* Toggle all notification methods for the given type.
*
* @param {string} type
*/
toggleType(type: string): void;
/**
* Get the name of the preference key for the given notification type-method
* combination.
*
* @param {string} type
* @param {string} method
* @return {string}
*/
preferenceKey(type: string, method: string): string;
/**
* Build an item list for the notification methods to display in the grid.
*
* Each notification method is an object which has the following properties:
*
* - `name` The name of the notification method.
* - `icon` The icon to display in the column header.
* - `label` The label to display in the column header.
*
* @return {ItemList<{ name: string, icon: string, label: import('mithril').Children }>}
*/
notificationMethods(): ItemList<{
name: string;
icon: string;
label: import('mithril').Children;
}>;
/**
* Build an item list for the notification types to display in the grid.
*
* Each notification type is an object which has the following properties:
*
* - `name` The name of the notification type.
* - `icon` The icon to display in the notification grid row.
* - `label` The label to display in the notification grid row.
*
* @return {ItemList<{ name: string, icon: string, label: import('mithril').Children}>}
*/
notificationTypes(): ItemList<{
name: string;
icon: string;
label: import('mithril').Children;
}>;
}
import Component from "../../common/Component";
import ItemList from "../../common/utils/ItemList";
import icon from "../../common/helpers/icon";