Repository URL to install this package:
|
Version:
1.0.0-next.10 ▾
|
/**
* @license
* FOURBURNER CONFIDENTIAL
* Unpublished Copyright (C) 2021 FourBurner Technologies, Inc. All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains the property of FOURBURNER TECHNOLOGIES,
* INC. The intellectual and technical concepts contained herein are proprietary to FOURBURNER
* TECHNOLOGIES, INC. and may be covered by U.S. and Foreign Patents, patents in process, and are
* protected by trade secret or copyright law. Dissemination of this information or reproduction of
* this material is strictly forbidden unless prior written permission is obtained from FOURBURNER
* TECHNOLOGIES, INC. Access to the source code contained herein is hereby forbidden to anyone
* except current FOURBURNER TECHNOLOGIES, INC. employees, managers or contractors who have executed
* Confidentiality and Non-disclosure agreements explicitly covering such access.
*
* The copyright notice above does not evidence any actual or intended publication or disclosure of
* this source code, which includes information that is confidential and/or proprietary, and is a
* trade secret, of FOURBURNER TECHNOLOGIES, INC. ANY REPRODUCTION, MODIFICATION, DISTRIBUTION,
* PUBLIC PERFORMANCE, OR PUBLIC DISPLAY OF OR THROUGH USE OF THIS SOURCE CODE WITHOUT THE EXPRESS
* WRITTEN CONSENT OF FOURBURNER TECHNOLOGIES, INC. IS STRICTLY PROHIBITED, AND IN VIOLATION OF
* APPLICABLE LAWS AND INTERNATIONAL TREATIES. THE RECEIPT OR POSSESSION OF THIS SOURCE CODE AND/OR
* RELATED INFORMATION DOES NOT CONVEY OR IMPLY ANY RIGHTS TO REPRODUCE, DISCLOSE OR DISTRIBUTE ITS
* CONTENTS, OR TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN PART.
*/
import {
CDK_TABLE_TEMPLATE,
CdkTable,
CDK_TABLE,
_CoalescedStyleScheduler,
_COALESCED_STYLE_SCHEDULER,
STICKY_POSITIONING_LISTENER,
} from '@angular/cdk/table';
import {ChangeDetectionStrategy, Component, Directive, ViewEncapsulation} from '@angular/core';
import {
_DisposeViewRepeaterStrategy,
_RecycleViewRepeaterStrategy,
_VIEW_REPEATER_STRATEGY,
} from '@angular/cdk/collections';
/**
* Enables the recycle view repeater strategy, which reduces rendering latency. Not compatible with
* tables that animate rows.
*/
@Directive({
selector : 'twnd-table[recycleRows], table[twnd-table][recycleRows]',
providers : [ {provide : _VIEW_REPEATER_STRATEGY, useClass : _RecycleViewRepeaterStrategy} ],
})
export class TWNDRecycleRows
{}
/**
* Wrapper for the CdkTable with TWND design styles.
*/
@Component({
selector : 'twnd-table, table[twnd-table]',
exportAs : 'twndTable',
template : CDK_TABLE_TEMPLATE,
host : {
'class' : 'twnd-table',
'[class.twnd-table-fixed-layout]' : 'fixedLayout',
},
providers : [
// TODO(michaeljamesparsons) Abstract the view repeater strategy to a directive API so this code
// is only included in the build if used.
{provide : _VIEW_REPEATER_STRATEGY, useClass : _DisposeViewRepeaterStrategy},
{provide : CdkTable, useExisting : TWNDTable},
{provide : CDK_TABLE, useExisting : TWNDTable},
{provide : _COALESCED_STYLE_SCHEDULER, useClass : _CoalescedStyleScheduler},
// Prevent nested tables from seeing this table's StickyPositioningListener.
{provide : STICKY_POSITIONING_LISTENER, useValue : null},
],
encapsulation : ViewEncapsulation.None,
// See note on CdkTable for explanation on why this uses the default change detection strategy.
// tslint:disable-next-line:validate-decorators
changeDetection : ChangeDetectionStrategy.Default,
})
export class TWNDTable<T> extends CdkTable<T>
{
/** Overrides the sticky CSS class set by the `CdkTable`. */
protected override stickyCssClass = 'twnd-table-sticky';
/** Overrides the need to add position: sticky on every sticky cell element in `CdkTable`. */
protected override needsPositionStickyOnElement = false;
}