47 lines
1.4 KiB
JavaScript
47 lines
1.4 KiB
JavaScript
import AwEItemSheet from "./base-item-sheet.mjs"
|
|
|
|
export default class AwEFieldSheet extends AwEItemSheet {
|
|
/** @override */
|
|
static DEFAULT_OPTIONS = {
|
|
classes: ["field"],
|
|
position: { width: 620 },
|
|
window: { contentClasses: ["field-content"] },
|
|
actions: {
|
|
addSpecialization: AwEFieldSheet.#onAddSpecialization,
|
|
removeSpecialization: AwEFieldSheet.#onRemoveSpecialization
|
|
}
|
|
}
|
|
|
|
/** @override */
|
|
static PARTS = {
|
|
main: {
|
|
template: "systems/fvtt-adventures-with-emmy/templates/field.hbs"
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Handle adding a specialization.
|
|
* @param {PointerEvent} event - The initiating event.
|
|
* @param {HTMLElement} target - The input element.
|
|
*/
|
|
static async #onAddSpecialization(event, target) {
|
|
const value = target.value.trim()
|
|
if (!value) return
|
|
const current = this.document.system.specializations ?? []
|
|
await this.document.update({ "system.specializations": [...current, value] })
|
|
target.value = ""
|
|
}
|
|
|
|
/**
|
|
* Handle removing a specialization.
|
|
* @param {PointerEvent} event - The initiating click event.
|
|
* @param {HTMLElement} target - The remove button.
|
|
*/
|
|
static async #onRemoveSpecialization(event, target) {
|
|
const index = Number(target.dataset.index)
|
|
const current = [...(this.document.system.specializations ?? [])]
|
|
current.splice(index, 1)
|
|
await this.document.update({ "system.specializations": current })
|
|
}
|
|
}
|