import {InitiativeTrackerConditionUtil} from "./dmscreen-initiativetracker-condition.js"; class _RenderableCollectionConditionsCustomEdit extends RenderableCollectionGenericRows { constructor ( { comp, $wrpRows, }, ) { super(comp, "conditionsCustom", $wrpRows); } /* -------------------------------------------- */ _populateRow ({comp, $wrpRow, entity}) { const $iptName = ComponentUiUtil.$getIptStr(comp, "name"); const $iptColor = ComponentUiUtil.$getIptColor(comp, "color") .addClass("w-100"); const $iptTurns = ComponentUiUtil.$getIptInt(comp, "turns", null, {isAllowNull: true, fallbackOnNaN: null}) .addClass("mr-2") .placeholder("Unlimited"); const $btnDelete = this._utils.$getBtnDelete({entity}); $$($wrpRow)`
${$iptName}
${$iptColor}
${$iptTurns}
${$btnDelete}
`; } } export class InitiativeTrackerConditionCustomEdit extends BaseComponent { static _RenderState = class { constructor () { this.cbDoClose = null; } }; constructor ({conditionsCustom}) { super(); this._state.conditionsCustom = conditionsCustom; } getConditionsCustom () { return MiscUtil.copyFast(this._state.conditionsCustom); } async pGetShowModalResults () { const rdState = new this.constructor._RenderState(); const {$modalInner, $modalFooter, doClose, pGetResolved} = UiUtil.getShowModal({ title: "Manage Custom Conditions", isHeaderBorder: true, hasFooter: true, }); rdState.cbDoClose = doClose; const $btnAdd = $(``) .on("click", () => { this._state.conditionsCustom = [...this._state.conditionsCustom, InitiativeTrackerConditionUtil.getNewRowState()]; }); const $wrpRows = $(`
`); const compRows = new _RenderableCollectionConditionsCustomEdit({comp: this, $wrpRows}); this._addHookBase("conditionsCustom", () => compRows.render())(); $$($modalInner)`
Name
Color
Turns
${$btnAdd}
${$wrpRows}
`; $$($modalFooter)` ${this._render_$getFooter({rdState})} `; return pGetResolved(); } _render_$getFooter ({rdState}) { const $btnSave = $(``) .click(() => rdState.cbDoClose(true)); return $$`
${$btnSave}
`; } _getDefaultState () { return { conditionsCustom: [], }; } }