diff --git a/config/current.ver b/config/current.ver index b621ce2..830fe90 100644 --- a/config/current.ver +++ b/config/current.ver @@ -1 +1 @@ -1.2.87 +1.2.88 diff --git a/public/assets/js/bridge/table-builder.js b/public/assets/js/bridge/table-builder.js index 18deb9d..b0bb11b 100644 --- a/public/assets/js/bridge/table-builder.js +++ b/public/assets/js/bridge/table-builder.js @@ -112,6 +112,22 @@ return [tbody]; }; + const normalizeTableComponent = (component) => { + if (!isBridgeTableComponent(component)) return false; + const attrs = (component.get && component.get('attributes')) || {}; + const rows = Number(attrs['data-bridge-rows'] || 3) || 3; + const cols = Number(attrs['data-bridge-cols'] || 2) || 2; + const existing = collectTableCells(component); + const components = buildTableComponents(rows, cols, existing); + component.addAttributes && component.addAttributes({ + 'data-bridge-rows': String(rows), + 'data-bridge-cols': String(cols), + }); + component.components && component.components(components); + component.view && component.view.render && component.view.render(); + return true; + }; + const openTableModal = (component) => { if (!component) return; const modal = editor.Modal; @@ -352,6 +368,14 @@ } }); + editor.on('component:add', (model) => { + try { + if (isBridgeTableComponent(model)) { + setTimeout(() => normalizeTableComponent(model), 0); + } + } catch {} + }); + editor.on('component:dblclick', (model) => { if (isBridgeTableComponent(model)) { openTableModal(model);