@covalent/core
Version:
Core Teradata UI Platform for layouts, icons, custom components and themes. This should be added as a dependency for any project that wants to use layouts, icons and themes for Angular Material.
1,683 lines (1,668 loc) • 73 kB
JavaScript
import * as i0 from '@angular/core';
import { Directive, Optional, Host, HostListener, Inject, Pipe, LOCALE_ID, Injectable, NgModule } from '@angular/core';
import { DOCUMENT, DecimalPipe, CommonModule } from '@angular/common';
import * as i1 from '@angular/forms';
import { FormsModule, Validators } from '@angular/forms';
import { MAT_ICON_DEFAULT_OPTIONS } from '@angular/material/icon';
import { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
import * as i1$1 from '@angular/router';
import { RoutesRecognized } from '@angular/router';
import { filter, pairwise } from 'rxjs/operators';
import { trigger, state, style, transition, group, query, animateChild, animate, AUTO_STYLE, keyframes } from '@angular/animations';
import { Subject } from 'rxjs';
import { coerceBooleanProperty } from '@angular/cdk/coercion';
class TdAutoTrimDirective {
_model;
constructor(_model) {
this._model = _model;
}
/**
* Listens to host's (blur) event and trims value.
*/
onBlur(event) {
if (this._model &&
this._model.value &&
typeof this._model.value === 'string') {
this._model.update.emit(this._model.value.trim());
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdAutoTrimDirective, deps: [{ token: i1.NgModel, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TdAutoTrimDirective, selector: "[tdAutoTrim]", host: { listeners: { "blur": "onBlur($event)" } }, ngImport: i0 });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdAutoTrimDirective, decorators: [{
type: Directive,
args: [{
selector: '[tdAutoTrim]',
}]
}], ctorParameters: () => [{ type: i1.NgModel, decorators: [{
type: Optional
}, {
type: Host
}] }], propDecorators: { onBlur: [{
type: HostListener,
args: ['blur', ['$event']]
}] } });
class TdFullscreenDirective {
_document;
_el;
fullScreenIsActive = false;
constructor(_document, _el) {
this._document = _document;
this._el = _el;
}
fsChangeHandler(event) {
this.fullScreenIsActive = event.srcElement === this._getFullScreenElement();
}
toggleFullScreen() {
this._getFullScreenElement() === this._el.nativeElement
? this.exitFullScreen()
: this.enterFullScreen();
}
enterFullScreen() {
const { _el: { nativeElement }, } = this;
const enterFullScreenMap = {
requestFullscreen: () => nativeElement.requestFullscreen(), // Chrome
webkitRequestFullscreen: () => nativeElement.webkitRequestFullscreen(), // Safari
mozRequestFullScreen: () => nativeElement.mozRequestFullScreen(), // Firefox
msRequestFullscreen: () => nativeElement.msRequestFullscreen(), // IE
};
for (const handler of Object.keys(enterFullScreenMap)) {
if (nativeElement[handler]) {
enterFullScreenMap[handler]();
}
}
}
exitFullScreen() {
const exitFullScreenMap = {
exitFullscreen: () => this._document.exitFullscreen(), // Chrome
webkitExitFullscreen: () => this._document.webkitExitFullscreen(), // Safari
mozCancelFullScreen: () => this._document.mozCancelFullScreen(), // Firefox
msExitFullscreen: () => this._document.msExitFullscreen(), // IE
};
for (const handler of Object.keys(exitFullScreenMap)) {
if (exitFullScreenMap[handler] &&
this._getFullScreenElement() === this._el.nativeElement) {
exitFullScreenMap[handler]();
}
}
}
_getFullScreenElement() {
const tdFullScreenElementMap = {
fullscreenElement: () => this._document.fullscreenElement, // Chrome, Opera
webkitFullscreenElement: () => this._document.webkitFullscreenElement, // Safari
mozFullscreenElement: () => this._document.mozFullscreenElement, // Firefox
msFullscreenElement: () => this._document.msFullscreenElement, // IE, Edge
};
for (const props of Object.keys(tdFullScreenElementMap)) {
if (tdFullScreenElementMap[props]) {
return tdFullScreenElementMap[props]();
}
}
return undefined;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdFullscreenDirective, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TdFullscreenDirective, selector: "[tdFullScreen]", host: { listeners: { "document:fullscreenchange": "fsChangeHandler($event)", "document:webkitfullscreenchange": "fsChangeHandler($event)", "document:mozfullscreenchange": "fsChangeHandler($event)", "document:msfullscreenchange": "fsChangeHandler($event)" } }, exportAs: ["tdFullScreen"], ngImport: i0 });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdFullscreenDirective, decorators: [{
type: Directive,
args: [{
selector: '[tdFullScreen]',
exportAs: 'tdFullScreen',
}]
}], ctorParameters: () => [{ type: undefined, decorators: [{
type: Inject,
args: [DOCUMENT]
}] }, { type: i0.ElementRef }], propDecorators: { fsChangeHandler: [{
type: HostListener,
args: ['document:fullscreenchange', ['$event']]
}, {
type: HostListener,
args: ['document:webkitfullscreenchange', ['$event']]
}, {
type: HostListener,
args: ['document:mozfullscreenchange', ['$event']]
}, {
type: HostListener,
args: ['document:msfullscreenchange', ['$event']]
}] } });
class TdTimeAgoPipe {
transform(time, reference) {
// Convert time to date object if not already
time = new Date(time);
const ref = new Date(reference);
// If not a valid timestamp, return 'Invalid Date'
if (!time.getTime()) {
return 'Invalid Date';
}
// For unit testing, we need to be able to declare a static start time
// for calculations, or else speed of tests can bork.
const startTime = isNaN(ref.getTime()) ? Date.now() : ref.getTime();
let diff = Math.floor((startTime - time.getTime()) / 1000);
if (diff < 2) {
return '1 second ago';
}
if (diff < 60) {
return Math.floor(diff) + ' seconds ago';
}
// Minutes
diff = diff / 60;
if (diff < 2) {
return '1 minute ago';
}
if (diff < 60) {
return Math.floor(diff) + ' minutes ago';
}
// Hours
diff = diff / 60;
if (diff < 2) {
return '1 hour ago';
}
if (diff < 24) {
return Math.floor(diff) + ' hours ago';
}
// Days
diff = diff / 24;
if (diff < 2) {
return '1 day ago';
}
if (diff < 30) {
return Math.floor(diff) + ' days ago';
}
// Months
diff = diff / 30;
if (diff < 2) {
return '1 month ago';
}
if (diff < 12) {
return Math.floor(diff) + ' months ago';
}
// Years
diff = diff / 12;
if (diff < 2) {
return '1 year ago';
}
else {
return Math.floor(diff) + ' years ago';
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdTimeAgoPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: TdTimeAgoPipe, name: "timeAgo" });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdTimeAgoPipe, decorators: [{
type: Pipe,
args: [{
name: 'timeAgo',
}]
}] });
class TdTimeDifferencePipe {
transform(start, end) {
const startTime = new Date(start);
let endTime;
if (end !== undefined) {
endTime = new Date(end);
}
else {
endTime = new Date();
}
if (!startTime.getTime() || !endTime.getTime()) {
return 'Invalid Date';
}
let diff = Math.floor((endTime.getTime() - startTime.getTime()) / 1000);
const days = Math.floor(diff / (60 * 60 * 24));
diff = diff - days * (60 * 60 * 24);
const hours = Math.floor(diff / (60 * 60));
diff = diff - hours * (60 * 60);
const minutes = Math.floor(diff / 60);
diff -= minutes * 60;
const seconds = diff;
const pad = '00';
let daysFormatted = '';
if (days > 0 && days < 2) {
daysFormatted = ' day - ';
}
else if (days > 1) {
daysFormatted = ' days - ';
}
return ((days > 0 ? days + daysFormatted : daysFormatted) +
pad.substring(0, pad.length - (hours + '').length) +
hours +
':' +
pad.substring(0, pad.length - (minutes + '').length) +
minutes +
':' +
pad.substring(0, pad.length - (seconds + '').length) +
seconds);
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdTimeDifferencePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: TdTimeDifferencePipe, name: "timeDifference" });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdTimeDifferencePipe, decorators: [{
type: Pipe,
args: [{
name: 'timeDifference',
}]
}] });
class TdTimeUntilPipe {
transform(time, reference) {
// Convert time to date object if not already
time = new Date(time);
const ref = new Date(reference);
// If not a valid timestamp, return 'Invalid Date'
if (!time.getTime()) {
return 'Invalid Date';
}
// For unit testing, we need to be able to declare a static start time
// for calculations, or else speed of tests can bork.
const startTime = isNaN(ref.getTime()) ? Date.now() : ref.getTime();
let diff = Math.floor((time.getTime() - startTime) / 1000);
if (diff < 2) {
return 'in 1 second';
}
if (diff < 60) {
return 'in ' + Math.floor(diff) + ' seconds';
}
// Minutes
diff = diff / 60;
if (diff < 2) {
return 'in 1 minute';
}
if (diff < 60) {
return 'in ' + Math.floor(diff) + ' minutes';
}
// Hours
diff = diff / 60;
if (diff < 2) {
return 'in 1 hour';
}
if (diff < 24) {
return 'in ' + Math.floor(diff) + ' hours';
}
// Days
diff = diff / 24;
if (diff < 2) {
return 'in 1 day';
}
if (diff < 30) {
return 'in ' + Math.floor(diff) + ' days';
}
// Months
diff = diff / 30;
if (diff < 2) {
return 'in 1 month';
}
if (diff < 12) {
return 'in ' + Math.floor(diff) + ' months';
}
// Years
diff = diff / 12;
if (diff < 2) {
return 'in 1 year';
}
else {
return 'in ' + Math.floor(diff) + ' years';
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdTimeUntilPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: TdTimeUntilPipe, name: "timeUntil" });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdTimeUntilPipe, decorators: [{
type: Pipe,
args: [{
name: 'timeUntil',
}]
}] });
class TdBytesPipe {
/* `bytes` needs to be `any` or TypeScript complains
Tried both `number` and `number | string` */
transform(bytes, precision = 2) {
if (bytes === 0) {
return '0 B';
}
else if (isNaN(parseInt(bytes, 10))) {
/* If not a valid number, return 'Invalid Number' */
return 'Invalid Number';
}
const k = 1024;
const sizes = [
'B',
'KiB',
'MiB',
'GiB',
'TiB',
'PiB',
'EiB',
'ZiB',
'YiB',
];
const i = Math.floor(Math.log(bytes) / Math.log(k));
// if less than 1
if (i < 0) {
return 'Invalid Number';
}
return (parseFloat((bytes / Math.pow(k, i)).toFixed(precision)) + ' ' + sizes[i]);
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: TdBytesPipe, name: "bytes" });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdBytesPipe, decorators: [{
type: Pipe,
args: [{
name: 'bytes',
}]
}] });
class TdDecimalBytesPipe {
/* `bytes` needs to be `any` or TypeScript complains
Tried both `number` and `number | string` */
transform(bytes, precision = 2) {
if (bytes === 0) {
return '0 B';
}
else if (isNaN(parseInt(bytes, 10))) {
/* If not a valid number, return 'Invalid Number' */
return 'Invalid Number';
}
const k = 1000;
const sizes = [
'B',
'KB',
'MB',
'GB',
'TB',
'PB',
'EB',
'ZB',
'YB',
];
const i = Math.floor(Math.log(bytes) / Math.log(k));
// if less than 1
if (i < 0) {
return 'Invalid Number';
}
return (parseFloat((bytes / Math.pow(k, i)).toFixed(precision)) + ' ' + sizes[i]);
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdDecimalBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: TdDecimalBytesPipe, name: "decimalBytes" });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdDecimalBytesPipe, decorators: [{
type: Pipe,
args: [{
name: 'decimalBytes',
}]
}] });
class TdDigitsPipe {
_locale;
_decimalPipe;
constructor(_locale = 'en') {
this._locale = _locale;
this._decimalPipe = new DecimalPipe(this._locale);
}
/* `digits` needs to be type `digits: any` or TypeScript complains */
transform(digits, precision = 1) {
if (digits === 0) {
return '0';
}
else if (isNaN(parseInt(digits, 10))) {
/* If not a valid number, return the value */
return digits;
}
else if (digits < 1) {
return this._decimalPipe.transform(digits.toFixed(precision)) ?? '';
}
const k = 1000;
const sizes = ['', 'K', 'M', 'B', 'T', 'Q'];
const i = Math.floor(Math.log(digits) / Math.log(k));
const size = sizes[i];
return (this._decimalPipe.transform(parseFloat((digits / Math.pow(k, i)).toFixed(precision))) + (size ? ' ' + size : ''));
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdDigitsPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: TdDigitsPipe, name: "digits" });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdDigitsPipe, decorators: [{
type: Pipe,
args: [{
name: 'digits',
}]
}], ctorParameters: () => [{ type: undefined, decorators: [{
type: Inject,
args: [LOCALE_ID]
}] }] });
class TdTruncatePipe {
transform(text, length = 54) {
if (typeof text !== 'string') {
return '';
}
// Truncate
let truncated = text.substring(0, length);
if (text.length > length) {
if (truncated.lastIndexOf(' ') > 0) {
truncated = truncated.trim();
}
truncated += '…';
}
return truncated;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdTruncatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: TdTruncatePipe, name: "truncate" });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TdTruncatePipe, decorators: [{
type: Pipe,
args: [{
name: 'truncate',
}]
}] });
class RouterPathService {
_router;
static _previousRoute = '/';
constructor(_router) {
this._router = _router;
this._router.events
.pipe(filter((e) => e instanceof RoutesRecognized), pairwise())
.subscribe((e) => {
RouterPathService._previousRoute = e[0].urlAfterRedirects;
});
}
/*
* Utility function to get the route the user previously went to
* good for use in a "back button"
*/
getPreviousRoute() {
return RouterPathService._previousRoute;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: RouterPathService, deps: [{ token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: RouterPathService });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: RouterPathService, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i1$1.Router }] });
/*
* Copyright (C) 2016-2017 by Teradata Corporation. All rights reserved.
* TERADATA CORPORATION CONFIDENTIAL AND TRADE SECRET
*/
class IconService {
// To update, run this little script on https://material.io/resources/icons/?style=baseline
// JSON.stringify(
// Array.from(document.querySelectorAll('icons-library .material-icons.icon-image-preview')).map(
// ({textContent}) => textContent
// )
// );
_icons = [
'3d_rotation',
'accessibility',
'accessibility_new',
'accessible',
'accessible_forward',
'account_balance',
'account_balance_wallet',
'account_box',
'account_circle',
'add_shopping_cart',
'alarm',
'alarm_add',
'alarm_off',
'alarm_on',
'all_inbox',
'all_out',
'android',
'announcement',
'arrow_right_alt',
'aspect_ratio',
'assessment',
'assignment',
'assignment_ind',
'assignment_late',
'assignment_return',
'assignment_returned',
'assignment_turned_in',
'autorenew',
'backup',
'book',
'bookmark',
'bookmark_border',
'bookmarks',
'bug_report',
'build',
'cached',
'calendar_today',
'calendar_view_day',
'camera_enhance',
'cancel_schedule_send',
'card_giftcard',
'card_membership',
'card_travel',
'change_history',
'check_circle',
'check_circle_outline',
'chrome_reader_mode',
'class',
'code',
'commute',
'compare_arrows',
'contact_support',
'contactless',
'copyright',
'credit_card',
'dashboard',
'date_range',
'delete',
'delete_forever',
'delete_outline',
'description',
'dns',
'done',
'done_all',
'done_outline',
'donut_large',
'donut_small',
'drag_indicator',
'eco',
'eject',
'euro_symbol',
'event',
'event_seat',
'exit_to_app',
'explore',
'explore_off',
'extension',
'face',
'favorite',
'favorite_border',
'feedback',
'find_in_page',
'find_replace',
'fingerprint',
'flight_land',
'flight_takeoff',
'flip_to_back',
'flip_to_front',
'g_translate',
'gavel',
'get_app',
'gif',
'grade',
'group_work',
'help',
'help_outline',
'highlight_off',
'history',
'home',
'horizontal_split',
'hourglass_empty',
'hourglass_full',
'http',
'https',
'important_devices',
'info',
'input',
'invert_colors',
'label',
'label_important',
'label_off',
'language',
'launch',
'line_style',
'line_weight',
'list',
'lock',
'lock_open',
'loyalty',
'markunread_mailbox',
'maximize',
'minimize',
'motorcycle',
'note_add',
'offline_bolt',
'offline_pin',
'opacity',
'open_in_browser',
'open_in_new',
'open_with',
'pageview',
'pan_tool',
'payment',
'perm_camera_mic',
'perm_contact_calendar',
'perm_data_setting',
'perm_device_information',
'perm_identity',
'perm_media',
'perm_phone_msg',
'perm_scan_wifi',
'pets',
'picture_in_picture',
'picture_in_picture_alt',
'play_for_work',
'polymer',
'power_settings_new',
'pregnant_woman',
'print',
'query_builder',
'question_answer',
'receipt',
'record_voice_over',
'redeem',
'remove_shopping_cart',
'reorder',
'report_problem',
'restore',
'restore_from_trash',
'restore_page',
'room',
'rounded_corner',
'rowing',
'schedule',
'search',
'settings_applications',
'settings_backup_restore',
'settings_bluetooth',
'settings_brightness',
'settings_cell',
'settings_ethernet',
'settings_input_antenna',
'settings_input_component',
'settings_input_composite',
'settings_input_hdmi',
'settings_input_svideo',
'settings_overscan',
'settings_phone',
'settings_power',
'settings_remote',
'settings_voice',
'shop',
'shop_two',
'shopping_basket',
'shopping_cart',
'speaker_notes',
'speaker_notes_off',
'spellcheck',
'stars',
'store',
'subject',
'supervised_user_circle',
'supervisor_account',
'swap_horiz',
'swap_horizontal_circle',
'swap_vert',
'swap_vertical_circle',
'sync_alt',
'system_update_alt',
'tab',
'tab_unselected',
'text_rotate_up',
'text_rotate_vertical',
'text_rotation_angledown',
'text_rotation_angleup',
'text_rotation_down',
'text_rotation_none',
'theaters',
'thumb_down',
'thumb_up',
'thumbs_up_down',
'timeline',
'toc',
'today',
'toll',
'touch_app',
'track_changes',
'translate',
'trending_down',
'trending_flat',
'trending_up',
'turned_in',
'turned_in_not',
'update',
'verified_user',
'vertical_split',
'view_agenda',
'view_array',
'view_carousel',
'view_column',
'view_day',
'view_headline',
'view_list',
'view_module',
'view_quilt',
'view_stream',
'view_week',
'visibility',
'visibility_off',
'voice_over_off',
'watch_later',
'work',
'work_off',
'work_outline',
'youtube_searched_for',
'zoom_in',
'zoom_out',
'add_alert',
'error',
'error_outline',
'notification_important',
'warning',
'4k',
'add_to_queue',
'airplay',
'album',
'art_track',
'av_timer',
'branding_watermark',
'call_to_action',
'closed_caption',
'control_camera',
'equalizer',
'explicit',
'fast_forward',
'fast_rewind',
'featured_play_list',
'featured_video',
'fiber_dvr',
'fiber_manual_record',
'fiber_new',
'fiber_pin',
'fiber_smart_record',
'forward_10',
'forward_30',
'forward_5',
'games',
'hd',
'hearing',
'high_quality',
'library_add',
'library_books',
'library_music',
'loop',
'mic',
'mic_none',
'mic_off',
'missed_video_call',
'movie',
'music_video',
'new_releases',
'not_interested',
'note',
'pause',
'pause_circle_filled',
'pause_circle_outline',
'play_arrow',
'play_circle_filled',
'play_circle_outline',
'playlist_add',
'playlist_add_check',
'playlist_play',
'queue',
'queue_music',
'queue_play_next',
'radio',
'recent_actors',
'remove_from_queue',
'repeat',
'repeat_one',
'replay',
'replay_10',
'replay_30',
'replay_5',
'shuffle',
'skip_next',
'skip_previous',
'slow_motion_video',
'snooze',
'sort_by_alpha',
'speed',
'stop',
'subscriptions',
'subtitles',
'surround_sound',
'video_call',
'video_label',
'video_library',
'videocam',
'videocam_off',
'volume_down',
'volume_mute',
'volume_off',
'volume_up',
'web',
'web_asset',
'business',
'call',
'call_end',
'call_made',
'call_merge',
'call_missed',
'call_missed_outgoing',
'call_received',
'call_split',
'cancel_presentation',
'chat',
'chat_bubble',
'chat_bubble_outline',
'clear_all',
'comment',
'contact_mail',
'contact_phone',
'contacts',
'desktop_access_disabled',
'dialer_sip',
'dialpad',
'domain_disabled',
'duo',
'email',
'forum',
'import_contacts',
'import_export',
'invert_colors_off',
'list_alt',
'live_help',
'mail_outline',
'message',
'mobile_screen_share',
'no_sim',
'pause_presentation',
'person_add_disabled',
'phone',
'phone_disabled',
'phone_enabled',
'phonelink_erase',
'phonelink_lock',
'phonelink_ring',
'phonelink_setup',
'portable_wifi_off',
'present_to_all',
'print_disabled',
'ring_volume',
'rss_feed',
'screen_share',
'sentiment_satisfied_alt',
'speaker_phone',
'stay_current_landscape',
'stay_current_portrait',
'stay_primary_landscape',
'stay_primary_portrait',
'stop_screen_share',
'swap_calls',
'textsms',
'unsubscribe',
'voicemail',
'vpn_key',
'add',
'add_box',
'add_circle',
'add_circle_outline',
'amp_stories',
'archive',
'backspace',
'ballot',
'block',
'clear',
'create',
'delete_sweep',
'drafts',
'dynamic_feed',
'file_copy',
'filter_list',
'flag',
'font_download',
'forward',
'gesture',
'how_to_reg',
'how_to_vote',
'inbox',
'link',
'link_off',
'low_priority',
'mail',
'markunread',
'move_to_inbox',
'next_week',
'outlined_flag',
'policy',
'redo',
'remove',
'remove_circle',
'remove_circle_outline',
'reply',
'reply_all',
'report',
'report_off',
'save',
'save_alt',
'select_all',
'send',
'sort',
'square_foot',
'text_format',
'unarchive',
'undo',
'waves',
'where_to_vote',
'access_alarm',
'access_alarms',
'access_time',
'add_alarm',
'add_to_home_screen',
'airplanemode_active',
'airplanemode_inactive',
'battery_alert',
'battery_charging_full',
'battery_full',
'battery_std',
'battery_unknown',
'bluetooth',
'bluetooth_connected',
'bluetooth_disabled',
'bluetooth_searching',
'brightness_auto',
'brightness_high',
'brightness_low',
'brightness_medium',
'data_usage',
'developer_mode',
'devices',
'dvr',
'gps_fixed',
'gps_not_fixed',
'gps_off',
'graphic_eq',
'location_disabled',
'location_searching',
'mobile_friendly',
'mobile_off',
'nfc',
'screen_lock_landscape',
'screen_lock_portrait',
'screen_lock_rotation',
'screen_rotation',
'sd_storage',
'settings_system_daydream',
'signal_cellular_4_bar',
'signal_cellular_alt',
'signal_cellular_connected_no_internet_4_bar',
'signal_cellular_no_sim',
'signal_cellular_null',
'signal_cellular_off',
'signal_wifi_4_bar',
'signal_wifi_4_bar_lock',
'signal_wifi_off',
'storage',
'usb',
'wallpaper',
'widgets',
'wifi_lock',
'wifi_tethering',
'add_comment',
'attach_file',
'attach_money',
'bar_chart',
'border_all',
'border_bottom',
'border_clear',
'border_horizontal',
'border_inner',
'border_left',
'border_outer',
'border_right',
'border_style',
'border_top',
'border_vertical',
'bubble_chart',
'drag_handle',
'format_align_center',
'format_align_justify',
'format_align_left',
'format_align_right',
'format_bold',
'format_clear',
'format_color_reset',
'format_indent_decrease',
'format_indent_increase',
'format_italic',
'format_line_spacing',
'format_list_bulleted',
'format_list_numbered',
'format_list_numbered_rtl',
'format_paint',
'format_quote',
'format_shapes',
'format_size',
'format_strikethrough',
'format_textdirection_l_to_r',
'format_textdirection_r_to_l',
'format_underlined',
'functions',
'height',
'highlight',
'insert_chart',
'insert_chart_outlined',
'insert_comment',
'insert_drive_file',
'insert_emoticon',
'insert_invitation',
'insert_link',
'insert_photo',
'linear_scale',
'merge_type',
'mode_comment',
'monetization_on',
'money_off',
'multiline_chart',
'notes',
'pie_chart',
'post_add',
'publish',
'scatter_plot',
'score',
'short_text',
'show_chart',
'space_bar',
'strikethrough_s',
'table_chart',
'text_fields',
'title',
'vertical_align_bottom',
'vertical_align_center',
'vertical_align_top',
'wrap_text',
'attachment',
'cloud',
'cloud_circle',
'cloud_done',
'cloud_download',
'cloud_off',
'cloud_queue',
'cloud_upload',
'create_new_folder',
'folder',
'folder_open',
'folder_shared',
'cast',
'cast_connected',
'computer',
'desktop_mac',
'desktop_windows',
'developer_board',
'device_hub',
'device_unknown',
'devices_other',
'dock',
'gamepad',
'headset',
'headset_mic',
'keyboard',
'keyboard_arrow_down',
'keyboard_arrow_left',
'keyboard_arrow_right',
'keyboard_arrow_up',
'keyboard_backspace',
'keyboard_capslock',
'keyboard_hide',
'keyboard_return',
'keyboard_tab',
'keyboard_voice',
'laptop',
'laptop_chromebook',
'laptop_mac',
'laptop_windows',
'memory',
'mouse',
'phone_android',
'phone_iphone',
'phonelink',
'phonelink_off',
'power_input',
'router',
'scanner',
'security',
'sim_card',
'smartphone',
'speaker',
'speaker_group',
'tablet',
'tablet_android',
'tablet_mac',
'toys',
'tv',
'videogame_asset',
'watch',
'add_a_photo',
'add_photo_alternate',
'add_to_photos',
'adjust',
'assistant',
'assistant_photo',
'audiotrack',
'blur_circular',
'blur_linear',
'blur_off',
'blur_on',
'brightness_1',
'brightness_2',
'brightness_3',
'brightness_4',
'brightness_5',
'brightness_6',
'brightness_7',
'broken_image',
'brush',
'burst_mode',
'camera',
'camera_alt',
'camera_front',
'camera_rear',
'camera_roll',
'center_focus_strong',
'center_focus_weak',
'collections',
'collections_bookmark',
'color_lens',
'colorize',
'compare',
'control_point',
'control_point_duplicate',
'crop',
'crop_16_9',
'crop_3_2',
'crop_5_4',
'crop_7_5',
'crop_din',
'crop_free',
'crop_landscape',
'crop_original',
'crop_portrait',
'crop_rotate',
'crop_square',
'dehaze',
'details',
'edit',
'euro',
'exposure',
'exposure_neg_1',
'exposure_neg_2',
'exposure_plus_1',
'exposure_plus_2',
'exposure_zero',
'filter',
'filter_1',
'filter_2',
'filter_3',
'filter_4',
'filter_5',
'filter_6',
'filter_7',
'filter_8',
'filter_9',
'filter_9_plus',
'filter_b_and_w',
'filter_center_focus',
'filter_drama',
'filter_frames',
'filter_hdr',
'filter_none',
'filter_tilt_shift',
'filter_vintage',
'flare',
'flash_auto',
'flash_off',
'flash_on',
'flip',
'flip_camera_android',
'flip_camera_ios',
'gradient',
'grain',
'grid_off',
'grid_on',
'hdr_off',
'hdr_on',
'hdr_strong',
'hdr_weak',
'healing',
'image',
'image_aspect_ratio',
'image_search',
'iso',
'landscape',
'leak_add',
'leak_remove',
'lens',
'linked_camera',
'looks',
'looks_3',
'looks_4',
'looks_5',
'looks_6',
'looks_one',
'looks_two',
'loupe',
'monochrome_photos',
'movie_creation',
'movie_filter',
'music_note',
'music_off',
'nature',
'nature_people',
'navigate_before',
'navigate_next',
'palette',
'panorama',
'panorama_fish_eye',
'panorama_horizontal',
'panorama_vertical',
'panorama_wide_angle',
'photo',
'photo_album',
'photo_camera',
'photo_filter',
'photo_library',
'photo_size_select_actual',
'photo_size_select_large',
'photo_size_select_small',
'picture_as_pdf',
'portrait',
'remove_red_eye',
'rotate_90_degrees_ccw',
'rotate_left',
'rotate_right',
'shutter_speed',
'slideshow',
'straighten',
'style',
'switch_camera',
'switch_video',
'tag_faces',
'texture',
'timelapse',
'timer',
'timer_10',
'timer_3',
'timer_off',
'tonality',
'transform',
'tune',
'view_comfy',
'view_compact',
'vignette',
'wb_auto',
'wb_cloudy',
'wb_incandescent',
'wb_iridescent',
'wb_sunny',
'360',
'atm',
'beenhere',
'category',
'compass_calibration',
'departure_board',
'directions',
'directions_bike',
'directions_boat',
'directions_bus',
'directions_car',
'directions_railway',
'directions_run',
'directions_subway',
'directions_transit',
'directions_walk',
'edit_attributes',
'ev_station',
'fastfood',
'flight',
'hotel',
'layers',
'layers_clear',
'local_activity',
'local_airport',
'local_atm',
'local_bar',
'local_cafe',
'local_car_wash',
'local_convenience_store',
'local_dining',
'local_drink',
'local_florist',
'local_gas_station',
'local_grocery_store',
'local_hospital',
'local_hotel',
'local_laundry_service',
'local_library',
'local_mall',
'local_movies',
'local_offer',
'local_parking',
'local_pharmacy',
'local_phone',
'local_pizza',
'local_play',
'local_post_office',
'local_printshop',
'local_see',
'local_shipping',
'local_taxi',
'map',
'menu_book',
'money',
'museum',
'my_location',
'navigation',
'near_me',
'person_pin',
'rate_review',
'restaurant',
'restaurant_menu',
'satellite',
'store_mall_directory',
'streetview',
'subway',
'terrain',
'traffic',
'train',
'tram',
'transfer_within_a_station',
'transit_enterexit',
'trip_origin',
'zoom_out_map',
'apps',
'arrow_back',
'arrow_back_ios',
'arrow_downward',
'arrow_drop_down',
'arrow_drop_down_circle',
'arrow_drop_up',
'arrow_forward',
'arrow_forward_ios',
'arrow_left',
'arrow_right',
'arrow_upward',
'cancel',
'check',
'chevron_left',
'chevron_right',
'close',
'double_arrow',
'expand_less',
'expand_more',
'first_page',
'fullscreen',
'fullscreen_exit',
'home_work',
'last_page',
'menu',
'menu_open',
'more_horiz',
'more_vert',
'refresh',
'subdirectory_arrow_left',
'subdirectory_arrow_right',
'unfold_less',
'unfold_more',
'account_tree',
'adb',
'airline_seat_flat',
'airline_seat_flat_angled',
'airline_seat_individual_suite',
'airline_seat_legroom_extra',
'airline_seat_legroom_normal',
'airline_seat_legroom_reduced',
'airline_seat_recline_extra',
'airline_seat_recline_normal',
'bluetooth_audio',
'confirmation_number',
'disc_full',
'drive_eta',
'enhanced_encryption',
'event_available',
'event_busy',
'event_note',
'folder_special',
'live_tv',
'mms',
'more',
'network_check',
'network_locked',
'no_encryption',
'ondemand_video',
'personal_video',
'phone_bluetooth_speaker',
'phone_callback',
'phone_forwarded',
'phone_in_talk',
'phone_locked',
'phone_missed',
'phone_paused',
'power',
'power_off',
'priority_high',
'sd_card',
'sms',
'sms_failed',
'sync',
'sync_disabled',
'sync_problem',
'system_update',
'tap_and_play',
'time_to_leave',
'tv_off',
'vibration',
'voice_chat',
'vpn_lock',
'wc',
'wifi',
'wifi_off',
'ac_unit',
'airport_shuttle',
'all_inclusive',
'apartment',
'bathtub',
'beach_access',
'business_center',
'casino',
'child_care',
'child_friendly',
'fitness_center',
'free_breakfast',
'golf_course',
'hot_tub',
'house',
'kitchen',
'meeting_room',
'no_meeting_room',
'pool',
'room_service',
'rv_hookup',
'smoke_free',
'smoking_rooms',
'spa',
'storefront',
'cake',
'deck',
'emoji_emotions',
'emoji_events',
'emoji_flags',
'emoji_food_beverage',
'emoji_nature',
'emoji_objects',
'emoji_people',
'emoji_symbols',
'emoji_transportation',
'fireplace',
'group',
'group_add',
'king_bed',
'location_city',
'mood',
'mood_bad',
'nights_stay',
'notifications',
'notifications_active',
'notifications_none',
'notifications_off',
'notifications_paused',
'outdoor_grill',
'pages',
'party_mode',
'people',
'people_alt',
'people_outline',
'person',
'person_add',
'person_outline',
'plus_one',
'poll',
'public',
'school',
'sentiment_dissatisfied',
'sentiment_satisfied',
'sentiment_very_dissatisfied',
'sentiment_very_satisfied',
'share',
'single_bed',
'sports',
'sports_baseball',
'sports_basketball',
'sports_cricket',
'sports_esports',
'sports_football',
'sports_golf',
'sports_handball',
'sports_hockey',
'sports_kabaddi',
'sports_mma',
'sports_motorsports',
'sports_rugby',
'sports_soccer',
'sports_tennis',
'sports_volleyball',
'thumb_down_alt',
'thumb_up_alt',
'whatshot',
'check_box',
'check_box_outline_blank',
'indeterminate_check_box',
'radio_button_checked',
'radio_button_unchecked',
'star',
'star_border',
'star_half',
'toggle_off',
'toggle_on',
];
get icons() {
return this._icons;
}
filter(query) {
return this.icons.filter((el) => {
return el.toLowerCase().indexOf(query ? query.toLowerCase() : '') > -1;
});
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: IconService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: IconService });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: IconService, decorators: [{
type: Injectable
}] });
const TD_DIRECTIVES = [TdAutoTrimDirective, TdFullscreenDirective];
// Validators
const TD_VALIDATORS = [];
const TD_PIPES = [
TdTimeAgoPipe,
TdTimeDifferencePipe,
TdTimeUntilPipe,
TdBytesPipe,
TdDecimalBytesPipe,
TdDigitsPipe,
TdTruncatePipe,
];
const TD_DEFAULT_ICON_OPTIONS = {
provide: MAT_ICON_DEFAULT_OPTIONS,
useValue: { fontSet: 'material-symbols-outlined' },
};
const TD_DEFAULT_FORM_FIELD_OPTIONS = {
provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,
useValue: { appearance: 'outline' },
};
class CovalentCommonModule {
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CovalentCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: CovalentCommonModule, declarations: [TdAutoTrimDirective, TdFullscreenDirective, TdTimeAgoPipe,
TdTimeDifferencePipe,
TdTimeUntilPipe,
TdBytesPipe,
TdDecimalBytesPipe,
TdDigitsPipe,
TdTruncatePipe], imports: [FormsModule, CommonModule], exports: [FormsModule, CommonModule, TdAutoTrimDirective, TdFullscreenDirective, TdTimeAgoPipe,
TdTimeDifferencePipe,
TdTimeUntilPipe,
TdBytesPipe,
TdDecimalBytesPipe,
TdDigitsPipe,
TdTruncatePipe] });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CovalentCommonModule, providers: [
RouterPathService,
IconService,
TD_DEFAULT_ICON_OPTIONS,
TD_DEFAULT_FORM_FIELD_OPTIONS,
], imports: [FormsModule, CommonModule, FormsModule, CommonModule] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CovalentCommonModule, decorators: [{
type: NgModule,
args: [{
imports: [FormsModule, CommonModule],
declarations: [TD_DIRECTIVES, TD_PIPES, TD_VALIDATORS],
exports: [FormsModule, CommonModule, TD_DIRECTIVES, TD_PIPES, TD_VALIDATORS],
providers: [
RouterPathService,
IconService,
TD_DEFAULT_ICON_OPTIONS,
TD_DEFAULT_FORM_FIELD_OPTIONS,
],
}]
}] });
/**
* const tdRotateAnimation
*
* Parameter Options:
* * degressStart: Degrees of rotation that the dom object will end up in during the "false" state
* * degreesEnd: Degrees of rotation that the dom object will end up in during the "true" state
* * duration: Duration the animation will run in milliseconds. Defaults to 150 ms.
* * delay: Delay before the animation will run in milliseconds. Defaults to 0 ms.
* * ease: Animation accelerates and decelerates. Defaults to ease-in.
*
* Returns an [AnimationTriggerMetadata] object with boolean states for a rotation animation.
*
* usage: [@tdRotate]="{ value: true | false, params: { degreesEnd: 90 }}"
*/
const tdRotateAnimation = trigger('tdRotate', [
state('0', style({
transform: 'rotate({{ degressStart }}deg)',
}), { params: { degressStart: 0 } }),
state('1', style({
transform: 'rotate({{ degreesEnd }}deg)',
}), { params: { degreesEnd: 180 } }),
transition('0 <=> 1', [
group([
query('@*', animateChild(), { optional: true }),
animate('{{ duration }}ms {{ delay }}ms {{ ease }}'),
]),
], { params: { duration: 250, delay: '0', ease: 'ease-in' } }),
]);
/**
* const tdCollapseAnimation
*
* Parameter Options:
* * duration: Duration the animation will run in milliseconds. Defaults to 150 ms.
* * delay: Delay before the animation will run in milliseconds. Defaults to 0 ms.
* * easeOnClose: Animation accelerates and decelerates when closing. Defaults to ease-in.
* * easeOnOpen: Animation accelerates and decelerates when opening. Defaults to ease-out.
*
* Returns an [AnimationTriggerMetadata] object with boolean states for a collapse/expand animation.
*
* usage: [@tdCollapse]="{ value: true | false, params: { duration: 500 }}"
*/
const tdCollapseAnimation = trigger('tdCollapse', [
state('1', style({
height: '0',
overflow: 'hidden',
})),
state('0', style({
height: AUTO_STYLE,
overflow: AUTO_STYLE,
})),
transition('0 => 1', [
style({