API Docs for: v2.7.0
Show:

File: addon/components/models-table/columns-dropdown.js

import Component from '@ember/component';
import { get } from '@ember/object';
import layout from '../../templates/components/models-table/columns-dropdown';

/**
 * Dropdown with list of table's columns used within [models-table](Components.ModelsTable.html).
 *
 * It allows to toggle visibility for column sets or single column.
 *
 * Columns that should not be hidden must have property `canBeHidden` set to `false`.
 *
 * Usage example:
 *
 * ```hbs
 * {{#models-table data=data columns=columns as |mt|}}
 *   {{mt.columns-dropdown}}
 *   {{! .... }}
 * {{/models-table}}
 *
 * @namespace Components
 * @class ModelsTableColumnsDropdown
 * @extends Ember.Component
 */
export default Component.extend({
  layout,

  /**
   * Bound from {{#crossLink "Components.ModelsTable/processedColumns:property"}}ModelsTable.processedColumns{{/crossLink}}
   *
   * @property processedColumns
   * @type object[]
   * @default null
   */
  processedColumns: null,

  /**
   * Bound from {{#crossLink "Components.ModelsTable/columnDropdownOptions:property"}}ModelsTable.columnDropdownOptions{{/crossLink}}
   *
   * @property columnDropdownOptions
   * @type object[]
   * @default null
   */
  columnDropdownOptions: null,

  /**
   * Bound from {{#crossLink "Components.ModelsTable/themeInstance:property"}}ModelsTable.themeInstance{{/crossLink}}
   *
   * @property themeInstance
   * @type object
   * @default null
   */
  themeInstance: null,

  /**
   * Closure action {{#crossLink "Components.ModelsTable/actions.showAllColumns:method"}}ModelsTable.actions.showAllColumns{{/crossLink}}
   *
   * @event showAllColumns
   */
  showAllColumns: null,

  /**
   * Closure action {{#crossLink "Components.ModelsTable/actions.hideAllColumns:method"}}ModelsTable.actions.hideAllColumns{{/crossLink}}
   *
   * @event hideAllColumns
   */
  hideAllColumns: null,

  /**
   * Closure action {{#crossLink "Components.ModelsTable/actions.restoreDefaultVisibility:method"}}ModelsTable.actions.restoreDefaultVisibility{{/crossLink}}
   *
   * @event restoreDefaultVisibility
   */
  restoreDefaultVisibility: null,

  /**
   * Closure action {{#crossLink "Components.ModelsTable/actions.toggleColumnSet:method"}}ModelsTable.actions.toggleColumnSet{{/crossLink}}
   *
   * @event toggleColumnSet
   */
  toggleColumnSet: null,

  /**
   * Closure action {{#crossLink "Components.ModelsTable/actions.toggleHidden:method"}}ModelsTable.actions.toggleHidden{{/crossLink}}
   *
   * @event toggleHidden
   */
  toggleHidden: null,

  /**
   * Closure action {{#crossLink "Components.ModelsTable/actions.sendAction:method"}}ModelsTable.actions.sendAction{{/crossLink}}
   *
   * @event sendAction
   */
  sendAction: null,

  actions: {
    showAllColumns() {
      get(this, 'showAllColumns')();
    },
    hideAllColumns() {
      get(this, 'hideAllColumns')();
    },
    restoreDefaultVisibility() {
      get(this, 'restoreDefaultVisibility')();
    },
    toggleColumnSet(columnSet) {
      get(this, 'toggleColumnSet')(columnSet);
    },
    toggleHidden(column) {
      get(this, 'toggleHidden')(column);
    }
  }
});