alfresco-ng2-components/lib/core/data-column/data-column.component.ts
Bartosz Sekuła 48c3fac018
[AAE-7819] Change column order - enable drag and drop for datatable - [1/3] (#7567)
* [AAE-7819] Enable drag and drop for datatable [1/3]

* [AAE-7819] Change column order - load and save columns order preferences for PROCESSES - [2/3] (#7568)

* [AAE-7819] Load and save column order preferences for processes

* [AAE-7819] Load and save column order preferences for tasks [3/3] (#7569)

* fix css

* fix icon module import

* Fix unit tests

* Fix test

* Fix e2e

* Fix C279927
2022-04-11 08:01:02 +02:00

101 lines
2.8 KiB
TypeScript

/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* eslint-disable @angular-eslint/component-selector, @angular-eslint/no-input-rename */
import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';
@Component({
selector: 'data-column',
template: ''
})
export class DataColumnComponent implements OnInit {
@Input()
id: string = '';
/** Data source key. Can be either a column/property key like `title`
* or a property path like `createdBy.name`.
*/
@Input()
key: string;
/** Value type for the column. Possible settings are 'text', 'image',
* 'date', 'fileSize', 'location', and 'json'.
*/
@Input()
type: string = 'text';
/** Value format (if supported by the parent component), for example format of the date. */
@Input()
format: string;
/** Toggles ability to sort by this column, for example by clicking the column header. */
@Input()
sortable: boolean = true;
/* Enable drag and drop for header column */
@Input()
draggable: boolean = false;
/** Display title of the column, typically used for column headers. You can use the
* i18n resource key to get it translated automatically.
*/
@Input()
title: string = '';
@ContentChild(TemplateRef)
template: any;
/** Custom tooltip formatter function. */
@Input()
formatTooltip: (...args) => string;
/** Title to be used for screen readers. */
@Input('sr-title')
srTitle: string;
/** Additional CSS class to be applied to column (header and cells). */
@Input('class')
cssClass: string;
/** Enables/disables a Clipboard directive to allow copying of cell contents. */
@Input()
copyContent: boolean;
/** Toggles the editing support of the column data. */
@Input()
editable: boolean = false;
/** Enable or disable cell focus */
@Input()
focus: boolean = true;
/** When using server side sorting the column used by the api call where the sorting will be performed */
@Input()
sortingKey: string;
/** Data column header template */
header?: TemplateRef<any>;
ngOnInit() {
if (!this.srTitle && this.key === '$thumbnail') {
this.srTitle = 'Thumbnail';
}
}
}