{{ hiddenInput(field.getHtmlName(), '') }} {% fieldtag 'fieldTable' %} {% fieldtag 'fieldTableHeader' %} {% fieldtag 'fieldTableHeaderRow' %} {% for colId, col in field.columns %} {{ fieldtag('fieldTableHeaderColumn', { text: col.heading | t('formie') | md(inlineOnly=true) | nl2br, }) }} {% endfor %} {% endfieldtag %} {% endfieldtag %} {% fieldtag 'fieldTableBody' %} {% if value %} {% for rowId, row in value %} {% fieldtag 'fieldTableBodyRow' %} {{ formieInclude('fields/table/_row', { index: rowId, row: row, }) }} {% endfieldtag %} {% endfor %} {% elseif field.defaults %} {% for default in field.defaults %} {% fieldtag 'fieldTableBodyRow' %} {{ formieInclude('fields/table/_row', { index: loop.index0, row: default, }) }} {% endfieldtag %} {% endfor %} {% elseif field.minRows > 0 %} {% for i in 1..field.minRows %} {% fieldtag 'fieldTableBodyRow' %} {{ formieInclude('fields/table/_row', { index: loop.index0, row: [], }) }} {% endfieldtag %} {% endfor %} {% endif %} {% endfieldtag %} {% endfieldtag %} {{ fieldtag('fieldAddButton') }} {% set includeScriptsInline = renderOptions.includeScriptsInline ?? false %} {% if includeScriptsInline %} {# For GraphQL requests we need to render this inline #} {% else %} {# Have to use the `script` tag here to place the script outside of a Vue3 wrapper #} {# as Vue3 will strip out inline `script` tags (all other scenarios would be fine) #} {% script with { type: 'text/x-template', 'data-table-template': field.handle } %}{% apply spaceless %} {{ formieInclude('fields/table/_row', { index: '__ROW__', row: [], }) }} {% endapply %}{% endscript %} {% endif %}