text: /* eslint-disable class-methods-use-this */
  
  import TableRow from './table_row';
  
  const CENTER_ALIGN = 'center';
  
  // Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
  export default class TableHeaderRow extends TableRow {
    get name() {
      return 'table_header_row';
    }
  
    get schema() {
      return {
        content: 'table_cell+',
        parseDOM: [
          {
            tag: 'thead tr',
            priority: 51,
          },
        ],
        toDOM: () => ['tr', 0],
      };
    }
  
    toMarkdown(state, node) {
      const cellWidths = super.toMarkdown(state, node);
  
      state.flushClose(1);
  
      state.write('|');
      node.forEach((cell, _, i) => {
        if (i) state.write('|');
  
        state.write(cell.attrs.align === CENTER_ALIGN ? ':' : '-');
        state.write(state.repeat('-', cellWidths[i]));
        state.write(cell.attrs.align === CENTER_ALIGN || cell.attrs.align === 'right' ? ':' : '-');
      });
      state.write('|');
  
      state.closeBlock(node);
    }
  }
  