MD.OFFICE
FAL

2026-03-31

  • Hardened cURL Axios Configuration Extraction:
    • Identified a failure in executeCurl where nested objects in params or headers were truncated by non-greedy regex matching.
    • Replaced regex-based extraction with a robust brace-counting algorithm in third-party-service.service.ts to correctly identify the full scope of nested Javascript objects in cURL commands.
    • Refactored extraction logic into a reusable extractConfigObject() helper.
    • Switched to a closure-based parsing approach (new Function('return { ... }')) for safer and more consistent evaluation of extracted configuration strings.
  • Audit and Synchronization of Daily Logs:
    • Audited the md-office central daily logs for March 26-31.
    • Recovered implementation details and synchronized logs with docs/dynaforms-history.md for consistency.
    • Created missing logs and updated incomplete files to maintain a reliable historical record.
  • Matrix Widget: Row Count Configuration Summary:
    • Introduced a dedicated automated row count at the bottom of the matrix widget to display the total number of rows.
    • Updated the Matrix configuration schema with includeRowCount (boolean) and rowCountLabel (string) properties, defaulting to "Count".
    • Integrated property panel controls (right-panel-static.component.ts) and real-time builder feedback in center-panel.component.html to allow designers to customize and preview the count summary.
    • Synchronized technical registration in dynaform.service.ts to ensure consistent property initialization for all new Matrix fields.
  • Matrix Widget: Row Count for Iterative Tables:
    • Extended the newly added Row Count feature to support Iterative (dynamic) Matrix tables, which were previously excluded.
    • Simplified the conditional logic in right-panel-static to allow the toggle to render for iterative tables without removing count properties.
    • Updated center-panel.component.html to visualize the row count summary directly above the column mathematical aggregate row in Iterative mode.
    • Removed redundant layout cells from the Column Summation row in iterative mode to integrate closely with the new layout structure involving the Row Count row.
  • Matrix Widget: Refinement of Iterative Table Labels and Initialization:
    • Hidden Redundant Configuration Settings: Iterative tables do not render leading label cells for their summary rows. As a result, the Right Panel UI text inputs for rowCountLabel and columnAggregateLabel are now explicitly hidden (&& !selectedItem.iterativeTable) when in iterative mode to avoid confusing the designer.
    • Garbage Collection of Configuration State: Enhanced safety in the property panel (right-panel-static.component.ts) by actively clearing both label values to undefined whenever the table is switched into Iterative mode.
    • Streamlined Service Defaults: Cleaned up dynaform.service.ts by removing the aggressive initialization of includeRowCount: false and rowCountLabel: 'Count' from the base createTableElement object structure, keeping the JSON payload lean.
    • Matrix Widget: Row Count UI Layout Fix for Row Aggregates:
    • Addressed a visual layout bug occurring when a user enabled both "Row Count" and mathematical "Row Aggregates" on the same matrix.
    • Updated center-panel.component.html to inject a trailing logical spacer <td *ngIf="item.includeRowAggregate" class="bg-gray-100"></td> at the end of the Row Count row to align perfectly with the extra right-side calculation column.
    • Applied the correction across both static and dynamic/iterative modes, encompassing nested useColumnGroups columns and flat simpleColumns.