<table class="object-list-view ui unstackable celled {{if readonly 'readonly'}} {{tableClass}} table">
  <thead>
    <tr>
      {{#if showHelperColumn}}
        <th class="object-list-view-operations collapsing" data-olv-header-property-name="OlvRowToolbar">
          {{#if showCheckBoxInRow }}
            {{#if allSelect}}
              <button
                type="button"
                class="ui check-all-at-page-button {{buttonClass}} disabled button"
                title={{t "components.olv-toolbar.check-all-at-page-button-text"}}
                disabled="disabled"
                {{action "checkAllAtPage"}}>
                  <i class="check-square-o icon"></i>
              </button>
            {{else}}
              <button
                type="button"
                class="ui check-all-at-page-button {{buttonClass}} button"
                title={{t "components.olv-toolbar.check-all-at-page-button-text"}}
                {{action "checkAllAtPage"}}>
                  <i class="check-square-o icon"></i>
              </button>
            {{/if}}
            {{#if (not-eq class "groupedit-container") }}
              <button
                type="button"
                class="ui check-all-button {{buttonClass}} {{if allSelect "activated"}} button"
                title={{t "components.olv-toolbar.check-all-button-text"}}
                {{action "checkAll"}}>
                  <i class="check-all-square-o icon"></i>
              </button>
            {{/if}}
            {{#if (and defaultSortingButton (not orderedProperty))}}
              <button
                type="button"
                class="ui clear-sorting-button {{buttonClass}} button"
                title={{t "components.olv-toolbar.clear-sorting-button-text"}}
                {{action "clearSorting"}}>
                  <i class="sort icon"></i>
              </button>
            {{/if}}
          {{/if}}
        </th>
      {{/if}}
      {{#each columns as |column|}}
        <th class="dt-head-left me class" onclick={{action "headerCellClick" column }} width={{column.width}}>
          <div data-olv-header-property-name={{column.propName}} title={{sortTitleCompute}}>
            <span>
            {{#if column.keyLocale}}
              {{t column.keyLocale}}
            {{else}}
              {{column.header}}
            {{/if}}
            </span>
            {{#if column.sorted}}
              <div class="object-list-view-order-icon" style="float:right;">
                {{#if column.sortAscending}}
                  <div title="{{t 'components.object-list-view.sort-ascending'}}">
                  ▲{{column.sortNumber}}
                  </div>
                {{else}}
                  <div title="{{t 'components.object-list-view.sort-descending'}}">
                  ▼{{column.sortNumber}}
                  </div>
                {{/if}}
              </div>
            {{/if}}
          </div>
        </th>
      {{/each}}
      {{#if showMenuColumn}}
        <th class="object-list-view-menu collapsing" data-olv-header-property-name="OlvRowMenu"></th>
      {{/if}}
    </tr>
  </thead>
  <tbody>
    {{#if (and (not showFiltersInModal) showFilters)}}
      <tr class="object-list-view-filters">
        {{#if showHelperColumn}}
          <td rowspan="1"></td>
        {{/if}}
        {{#each columns as |column|}}
          <td style={{defaultPaddingStyle}} class="overflowed-cell">
            {{#if column.filter.conditions}}
              {{flexberry-dropdown
                value=column.filter.condition
                items=column.filter.conditions
                displayCaptions=(not (is-array column.filter.conditions))
                class="compact fluid"
                placeholder=(t "components.object-list-view.filter-condition")
                needChecksOnValue=false
                onChange=(action "filterConditionChanged" column.filter)
              }}
            {{/if}}
          </td>
        {{/each}}
        {{#if showMenuColumn}}
          <td rowspan="1"></td>
        {{/if}}
      </tr>
      <tr class="object-list-view-filters" onkeydown={{action "applyFiltersByEnter"}}>
        {{#if showHelperColumn}}
          <td rowspan="1"></td>
        {{/if}}
        {{#each columns as |column|}}
          <td style={{defaultPaddingStyle}} class="{{if (array-contains overflowedComponents column.filter.component.name) "overflowed-cell"}}">
            {{#if column.filter.component.name}}
                <div class="{{unless (and (eq column.filter.condition "between") (eq column.filter.type "date")) "fluid action input ui"}}">
                  {{component column.filter.component.name
                    value=column.filter.pattern
                    readonly=(or
                      (eq column.filter.condition "empty")
                      (eq column.filter.condition "nempty")
                    )
                    dynamicProperties=column.filter.component.properties
                  }}
                  {{#unless (and (eq column.filter.condition "between") (eq column.filter.type "date"))}}
                    <button
                      type="button"
                      class="ui clear-filter button"
                      title={{t "components.object-list-view.clear-filter-in-column"}}
                      {{action "clearFilterForColumn" column.filter}}
                    >
                      <i class="remove icon"></i>
                    </button>
                  {{/unless}}
                </div>
            {{/if}}
          </td>
        {{/each}}
        {{#if showMenuColumn}}
          <td rowspan="1"></td>
        {{/if}}
      </tr>
    {{/if}}
    {{#unless content}}
      <tr>
        <td colspan="{{colspan}}" style="text-align:center;">
            {{placeholder}}
        </td>
      </tr>
    {{else}}
      {{#each contentWithKeys key="key" as |record|}}
        {{object-list-view-row
          record=record
          columns=columns
          readonly=readonly
          required=required
          showMenuColumn=showMenuColumn
          sendMenuItemAction=sendMenuItemAction
          menuInRowAdditionalItems=menuInRowAdditionalItems
          showHelperColumn=showHelperColumn
          defaultRowConfig=defaultRowConfig
          showValidationMessages=showValidationMessagesInRow
          showAsteriskInRow=showAsteriskInRow
          showCheckBoxInRow=showCheckBoxInRow
          showEditButtonInRow=showEditButtonInRow
          showPrototypeButtonInRow=showPrototypeButtonInRow
          showDeleteButtonInRow=showDeleteButtonInRow
          showEditMenuItemInRow=showEditMenuItemInRow
          showPrototypeMenuItemInRow=showPrototypeMenuItemInRow
          showDeleteMenuItemInRow=showDeleteMenuItemInRow
          isParentRecordPropertyName=isParentRecordPropertyName
          hierarchicalIndent=hierarchicalIndent
          inHierarchicalMode=inHierarchicalMode
          inExpandMode=(unbound inExpandMode)
          loadRecords=loadRecords
          doRenderData=record.doRenderData
          rowClick=(action "rowClick")
          selectRow=(action "selectRow")
          createNewByPrototype=createNewByPrototype
          deleteRow=(action "deleteRow")
          customButtonsInRow=customButtonsInRow
          customButtonInRowAction='customButtonInRowAction'
          defaultLeftPadding=defaultLeftPadding
          overflowedComponents=overflowedComponents
          folvComponentName=componentName
          hierarchyPaging=hierarchyPaging
          configurateRow=configurateRow
          allSelect=allSelect
        }}
      {{/each}}
      {{#if rowByRowLoadingProgress}}
        <tr>
          <td colspan="{{colspan}}" style="text-align:center;">
            <div class="ui active centered inline loader"></div>
            {{t "components.object-list-view.loading-text"}}
          </td>
        </tr>
      {{/if}}
    {{/unless}}
  </tbody>
</table>
