UNPKG

hswidget

Version:
74 lines 6.99 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.EditList = void 0; const mithril_1 = __importDefault(require("mithril")); const hsutil_1 = require("hsutil"); const log = new hsutil_1.Log('EditList'); const EditLabel_1 = require("./EditLabel"); const Collapsible_1 = require("./Collapsible"); const Widget_1 = require("./Widget"); const defIsEmpty = (row) => (!row || !row.length || row === '') ? true : false; const defaultRender = (rows) => { return (row, rowNum) => { if (row.map) { return row.map((e, i) => mithril_1.default(EditLabel_1.EditLabel, { placeholder: 'add...', update: (newValue) => row[i] = newValue }, e)); } else if (typeof row === 'object') { return Object.keys(row).map((e) => mithril_1.default(EditLabel_1.EditLabel, { placeholder: 'add...', update: (newValue) => row[e] = newValue }, row[e])); } else { return mithril_1.default(EditLabel_1.EditLabel, { placeholder: 'add...', update: (newValue) => rows[rowNum] = newValue }, row); } }; }; function expand(rows, def, isEmpty) { if (rows) { const lastRowIndex = rows.length - 1; if (lastRowIndex < 0 || rows[lastRowIndex] === undefined || !isEmpty(rows[lastRowIndex])) { rows.push(def); } } } class EditList extends Widget_1.Widget { view(node) { const sort = node.attrs.sort || (() => 0); const rows = node.attrs.rows ?? node?.children; const isEmpty = node.attrs.isEmpty || defIsEmpty; const isExpanded = node.attrs.isExpanded || false; const render = node.attrs.rowRender || defaultRender(rows); const def = node.attrs.defaultRow === undefined ? '' : node.attrs.defaultRow; const expandRows = node.attrs.expand || expand; const collapsible = node.attrs.collapsible === undefined ? true : node.attrs.collapsible; if (!rows) { log.warn(`EditList rows array is missing`); } if (!rows || !rows.map) { log.warn(`EditList rows must be an array`); } expandRows(rows, def, isEmpty); const content = rows.sort(sort).map((row, i) => render(row, i)); if (node.attrs.header) { content.unshift(mithril_1.default('.header', node.attrs.header)); } return collapsible ? mithril_1.default(Collapsible_1.Collapsible, this.attrs(node.attrs, { class: `hs_edit_list`, isExpanded: isExpanded, }), content) : mithril_1.default(`.hs_edit_list`, this.attrs(node.attrs, {}), content); } } exports.EditList = EditList; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWRpdExpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRWRpdExpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBbUNBLHNEQUF3QjtBQUN4QixtQ0FBc0M7QUFBRSxNQUFNLEdBQUcsR0FBRyxJQUFJLFlBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN4RSwyQ0FBMkM7QUFDM0MsK0NBQTZDO0FBQzdDLHFDQUF3QztBQWV4QyxNQUFNLFVBQVUsR0FBVSxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxLQUFHLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQU8zRixNQUFNLGFBQWEsR0FBRyxDQUFDLElBQWMsRUFBWSxFQUFFO0lBQy9DLE9BQU8sQ0FBQyxHQUFXLEVBQUUsTUFBYSxFQUFhLEVBQUU7UUFDN0MsSUFBbUIsR0FBSSxDQUFDLEdBQUcsRUFBRTtZQUN6QixPQUFzQixHQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBUSxFQUFFLENBQVEsRUFBRSxFQUFFLENBQUMsaUJBQUMsQ0FBQyxxQkFBUyxFQUFFO2dCQUNoRSxXQUFXLEVBQUUsUUFBUTtnQkFDckIsTUFBTSxFQUFFLENBQUMsUUFBZSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUTthQUNqRCxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDVjthQUFNLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO1lBQ2hDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFRLEVBQUUsRUFBRSxDQUFDLGlCQUFDLENBQUMscUJBQVMsRUFBRTtnQkFDbkQsV0FBVyxFQUFFLFFBQVE7Z0JBQ3JCLE1BQU0sRUFBRSxDQUFD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