72 lines
1.6 KiB
JavaScript
72 lines
1.6 KiB
JavaScript
import { __ID__, filePath } from "../consts.mjs";
|
|
|
|
const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api;
|
|
const { getDocumentClass } = foundry.utils;
|
|
|
|
export class SidebarTabRearranger extends HandlebarsApplicationMixin(ApplicationV2) {
|
|
// #region Options
|
|
static DEFAULT_OPTIONS = {
|
|
tag: `form`,
|
|
classes: [
|
|
__ID__,
|
|
`SidebarTabRearranger`,
|
|
],
|
|
window: {
|
|
title: `OFT.apps.SidebarTabRearranger.title`,
|
|
},
|
|
position: {},
|
|
form: {
|
|
handler: this.#onSubmit,
|
|
closeOnSubmit: true,
|
|
submitOnChange: false,
|
|
},
|
|
actions: {},
|
|
};
|
|
|
|
static PARTS = {
|
|
list: { template: filePath(`templates/SidebarTabRearranger/list.hbs`) },
|
|
footer: { template: filePath(`templates/SidebarTabRearranger/footer.hbs`) },
|
|
};
|
|
// #endregion Options
|
|
|
|
// #region Instance Data
|
|
// #endregion Instance Data
|
|
|
|
// #region Lifecycle
|
|
/** @this {SidebarTabRearranger} */
|
|
static async #onSubmit() {};
|
|
// #endregion Lifecycle
|
|
|
|
// #region Data Prep
|
|
async _prepareContext() {
|
|
const ctx = {
|
|
meta: {
|
|
idp: this.id,
|
|
},
|
|
};
|
|
|
|
const tabs = ui.sidebar.constructor.TABS;
|
|
ctx.tabs = [];
|
|
for (const [id, tab] of Object.entries(tabs)) {
|
|
let { documentName, gmOnly, tooltip, icon } = tab;
|
|
if (gmOnly && !game.user.isGM) { continue };
|
|
|
|
if (documentName) {
|
|
tooltip ??= getDocumentClass(documentName).metadata.labelPlural;
|
|
icon ??= CONFIG[documentName]?.sidebarIcon;
|
|
};
|
|
|
|
ctx.tabs.push({
|
|
id,
|
|
name: game.i18n.localize(tooltip),
|
|
icon,
|
|
});
|
|
};
|
|
|
|
return ctx;
|
|
};
|
|
// #endregion Data Prep
|
|
|
|
// #region Actions
|
|
// #endregion Actions
|
|
};
|