UNPKG

@kitten-science/kitten-scientists

Version:

Add-on for the wonderful incremental browser game: https://kittensgame.com/web/

50 lines 2.45 kB
import { isNil } from "@oliversalzburg/js-utils/data/nil.js"; import { Icons } from "../images/Icons.js"; import { Container } from "./components/Container.js"; import stylesDelimiter from "./components/Delimiter.module.css"; import { IconSettingsPanel } from "./components/IconSettingsPanel.js"; import stylesLabelListItem from "./components/LabelListItem.module.css"; import { SettingListItem } from "./components/SettingListItem.js"; import { SettingsList } from "./components/SettingsList.js"; export class ResetUpgradesSettingsUi extends IconSettingsPanel { constructor(parent, settings, locale) { const label = parent.host.engine.i18n("ui.upgrades"); super(parent, label, settings, { icon: Icons.Workshop, }); this.addChildrenHead([new Container(parent, { classes: [stylesLabelListItem.fillSpace] })]); const upgrades = this.host.game.workshop.upgrades.filter(upgrade => !isNil(this.setting.upgrades[upgrade.name])); const items = []; let lastLabel = upgrades[0].label; let lastElement; for (const upgrade of upgrades.sort((a, b) => a.label.localeCompare(b.label, locale.selected))) { const option = this.setting.upgrades[upgrade.name]; const element = this._getResetOption(this, option, upgrade.label); if (this.host.engine.localeSupportsFirstLetterSplits(locale.selected)) { if (lastLabel[0] !== upgrade.label[0]) { if (!isNil(lastElement)) { lastElement.element.addClass(stylesDelimiter.delimiter); } element.element.addClass(stylesLabelListItem.splitter); } } lastElement = element; items.push(element); lastLabel = upgrade.label; } this.addChildContent(new SettingsList(this).addChildren(items)); } _getResetOption(parent, option, label, delimiter = false, upgradeIndicator = false) { return new SettingListItem(parent, option, label, { delimiter, onCheck: () => { parent.host.engine.imessage("status.reset.check.enable", [label]); }, onUnCheck: () => { parent.host.engine.imessage("status.reset.check.disable", [label]); }, upgradeIndicator, }); } } //# sourceMappingURL=ResetUpgradesSettingsUi.js.map