refactor: add better solution for T type

This commit is contained in:
Johannes Millan 2020-09-01 22:06:58 +02:00
parent f69f8fab64
commit 4e1f34bc51
79 changed files with 79 additions and 158 deletions

View file

@ -24,8 +24,7 @@ import { SimpleCounter } from '../../features/simple-counter/simple-counter.mode
animations: [fadeAnimation, expandFadeHorizontalAnimation]
})
export class MainHeaderComponent implements OnInit, OnDestroy {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
progressCircleRadius: number = 10;
circumference: number = this.progressCircleRadius * Math.PI * 2;

View file

@ -53,8 +53,7 @@ export class SideNavComponent implements OnDestroy {
)
);
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
readonly PROJECTS_SIDE_NAV: string = 'PROJECTS_SIDE_NAV';
readonly TAG_SIDE_NAV: string = 'TAG_SIDE_NAV';
activeWorkContextId?: string | null;

View file

@ -19,8 +19,7 @@ import { Router } from '@angular/router';
})
export class WorkContextMenuComponent implements OnDestroy {
@Input() contextId?: string;
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
TODAY_TAG_ID: string = TODAY_TAG.id as string;
isForProject: boolean = true;
base: string = 'project';

View file

@ -14,8 +14,7 @@ import { T } from '../../../t.const';
animations: [slideAnimation]
})
export class BannerComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
height: number = 120;
private _dirtyReference?: string | null;
// TODO maybe improve if initial delay is annoying

View file

@ -24,8 +24,7 @@ export class BookmarkBarComponent implements OnDestroy {
isEditMode: boolean = false;
dragEnterTarget?: HTMLElement;
LIST_ID: string = 'BOOKMARKS';
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
isContextMenuDisabled: boolean = false;
bookmarkBarHeight: number = 50;
private _subs: Subscription = new Subscription();

View file

@ -20,8 +20,7 @@ interface BookmarkSelectType {
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogEditBookmarkComponent implements OnInit {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
types?: BookmarkSelectType[];
bookmarkCopy?: BookmarkCopy;
customIcons: string[] = MATERIAL_ICONS;

View file

@ -14,8 +14,7 @@ import { exists } from '../../../util/exists';
})
export class ConfigFormComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
config?: {};
@Input() sectionKey?: GlobalConfigSectionKey | ProjectCfgFormKey;
@Output() save: EventEmitter<{ sectionKey: GlobalConfigSectionKey | ProjectCfgFormKey, config: unknown }> = new EventEmitter();

View file

@ -13,8 +13,7 @@ import { standardListAnimation } from '../../../ui/animations/standard-list.ani'
animations: [standardListAnimation],
})
export class RepeatSectionTypeComponent extends FieldArrayType {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
constructor() {
super();

View file

@ -13,8 +13,7 @@ import { T } from 'src/app/t.const';
export class SelectProjectComponent extends FieldType {
// @ViewChild(MatInput) formFieldControl: MatInput;
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
constructor(
public projectService: ProjectService,

View file

@ -11,8 +11,7 @@ import { DropboxConflictResolution } from '../dropbox.model';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogDbxSyncConflictComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
remote: string = this._formatDate(this.data.remote);
local: string = this._formatDate(this.data.local);

View file

@ -9,8 +9,7 @@ import { T } from '../../../t.const';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogConfirmDriveSyncLoadComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
constructor(
private _matDialogRef: MatDialogRef<DialogConfirmDriveSyncLoadComponent>,

View file

@ -9,8 +9,7 @@ import { T } from '../../../t.const';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogConfirmDriveSyncSaveComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
constructor(
private _matDialogRef: MatDialogRef<DialogConfirmDriveSyncSaveComponent>,

View file

@ -25,8 +25,7 @@ import { T } from '../../../t.const';
animations: [expandFadeAnimation]
})
export class GoogleSyncCfgComponent implements OnInit, OnDestroy {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
tmpSyncFile: any;
cfg?: GoogleDriveSyncConfig;
loginPromise?: Promise<any>;

View file

@ -11,8 +11,7 @@ import { version } from '../../../../../package.json';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogInitialComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
version: string = version;
constructor(

View file

@ -16,8 +16,7 @@ export class GithubIssueContentComponent {
@Input() issue?: GithubIssue;
@Input() task?: TaskWithSubTasks;
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
constructor(
private readonly _taskService: TaskService,

View file

@ -9,8 +9,7 @@ import { T } from '../../../../../../t.const';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class GithubIssueHeaderComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
@Input() task?: TaskWithSubTasks;
constructor() {

View file

@ -13,8 +13,7 @@ import { T } from '../../../../../../t.const';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogGithubInitialSetupComponent implements OnInit {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
githubCfg: GithubCfg;
formGroup: FormGroup = new FormGroup({});
formConfig: FormlyFieldConfig[] = GITHUB_CONFIG_FORM;

View file

@ -13,8 +13,7 @@ import { DEFAULT_GITLAB_CFG, GITLAB_CONFIG_FORM } from '../gitlab.const';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogGitlabInitialSetupComponent implements OnInit {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
gitlabCfg: GitlabCfg;
formGroup: FormGroup = new FormGroup({});
formConfig: FormlyFieldConfig[] = GITLAB_CONFIG_FORM;

View file

@ -16,8 +16,7 @@ export class GitlabIssueContentComponent {
@Input() issue?: GitlabIssue;
@Input() task?: TaskWithSubTasks;
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
constructor(
private readonly _taskService: TaskService,

View file

@ -9,8 +9,7 @@ import { TaskWithSubTasks } from 'src/app/features/tasks/task.model';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class GitlabIssueHeaderComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
@Input() public task?: TaskWithSubTasks;
constructor() {

View file

@ -21,8 +21,7 @@ import { switchMap } from 'rxjs/operators';
export class JiraIssueContentComponent {
description?: string;
attachments?: TaskAttachment[];
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
issue?: JiraIssue;
task?: TaskWithSubTasks;
private _task$: ReplaySubject<TaskWithSubTasks> = new ReplaySubject(1);

View file

@ -15,8 +15,7 @@ import { first } from 'rxjs/operators';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogJiraAddWorklogComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
timeSpent: number;
started: string;
comment: string;

View file

@ -10,8 +10,7 @@ import { T } from '../../../../../../t.const';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogJiraInitialSetupComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
jiraCfg: JiraCfg;
constructor(

View file

@ -20,8 +20,7 @@ import { JiraCfg } from '../../jira.model';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogJiraTransitionComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
_jiraCfg$: Observable<JiraCfg> = this._projectService.getJiraCfgForProject$(this.data.task.projectId as string);

View file

@ -27,8 +27,7 @@ import { HANDLED_ERROR_PROP_STR, HelperClasses } from '../../../../../../app.con
animations: [expandAnimation]
})
export class JiraCfgStepperComponent implements OnDestroy {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
HelperClasses: typeof HelperClasses = HelperClasses;
credentialsFormGroup: FormGroup = new FormGroup({});
credentialsFormConfig: FormlyFieldConfig[] = [];

View file

@ -29,8 +29,7 @@ import { JIRA_TYPE } from '../../../../issue.const';
export class JiraCfgComponent implements OnInit, OnDestroy {
@Input() section?: ConfigFormSection<JiraCfg>;
@Output() save: EventEmitter<{ sectionKey: GlobalConfigSectionKey | ProjectCfgFormKey, config: any }> = new EventEmitter();
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
HelperClasses: typeof HelperClasses = HelperClasses;
issueSuggestionsCtrl: FormControl = new FormControl();
customFieldSuggestionsCtrl: FormControl = new FormControl();

View file

@ -27,8 +27,7 @@ import { MatDialog } from '@angular/material/dialog';
})
export class EvaluationSheetComponent implements OnDestroy, OnInit {
@Output() save: EventEmitter<any> = new EventEmitter();
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
metricForDay?: MetricCopy;
day$: BehaviorSubject<string> = new BehaviorSubject(getWorklogStr());
private _metricForDay$: Observable<MetricCopy> = this.day$.pipe(

View file

@ -14,8 +14,7 @@ import { T } from '../../../t.const';
animations: [improvementBannerAnimation]
})
export class ImprovementBannerComponent implements OnDestroy {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
improvements: Improvement[] = [];
private _subs: Subscription = new Subscription();

View file

@ -15,8 +15,7 @@ import { T } from '../../t.const';
animations: [fadeAnimation],
})
export class MetricComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
productivityHappiness$: Observable<LineChartData> = this.metricService.getProductivityHappinessChartData$();

View file

@ -14,8 +14,7 @@ import { throttle } from 'helpful-decorators';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogAddNoteReminderComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
dateTime?: number;
title: string;
isEdit: boolean;

View file

@ -16,8 +16,7 @@ import { map } from 'rxjs/operators';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogAddNoteComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
noteContent: string;
reminderDate?: number;
isSubmitted: boolean = false;

View file

@ -20,8 +20,7 @@ import { TagService } from '../../tag/tag.service';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogViewNoteReminderComponent implements OnDestroy {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
note$: Observable<Note> = this._noteService.getById$(this.data.reminder.relatedId);
reminder: Reminder = this.data.reminder;
isForCurrentContext: boolean = (this.reminder.workContextId === this._workContextService.activeWorkContextId);

View file

@ -18,8 +18,7 @@ export class NoteComponent {
@ViewChild('markdownEl') markdownEl?: HTMLElement;
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
constructor(
private readonly _matDialog: MatDialog,

View file

@ -31,8 +31,7 @@ import { Task } from '../../tasks/task.model';
export class NotesComponent implements OnInit, OnDestroy {
@Output() scrollToSidenav: EventEmitter<void> = new EventEmitter();
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
isElementWasAdded: boolean = false;
isDragOver: boolean = false;
dragEnterTarget?: HTMLElement;

View file

@ -12,8 +12,7 @@ import { T } from '../../../t.const';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogPomodoroBreakComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
isStopCurrentTime$: Subject<boolean> = new Subject();
currentTime$: Observable<number> = this.pomodoroService.currentSessionTime$.pipe(
takeUntil(this.isStopCurrentTime$),

View file

@ -9,8 +9,7 @@ import { T } from '../../t.const';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class ProcrastinationComponent implements OnInit {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
constructor(
public taskService: TaskService,

View file

@ -31,8 +31,7 @@ import { DialogGitlabInitialSetupComponent } from 'src/app/features/issue/provid
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DialogCreateProjectComponent implements OnInit, OnDestroy {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
projectData: ProjectCopy | Partial<ProjectCopy> = DEFAULT_PROJECT;
jiraCfg?: JiraCfg;
githubCfg?: GithubCfg;

View file

@ -12,8 +12,7 @@ import { getWorklogStr } from '../../../util/get-work-log-str';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogSimpleCounterEditComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
SimpleCounterType: typeof SimpleCounterType = SimpleCounterType;
todayStr: string = getWorklogStr();

View file

@ -13,8 +13,7 @@ import { getWorklogStr } from '../../../util/get-work-log-str';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class SimpleCounterButtonComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
SimpleCounterType: typeof SimpleCounterType = SimpleCounterType;
todayStr: string = getWorklogStr();

View file

@ -22,8 +22,7 @@ export class SimpleCounterCfgComponent implements OnDestroy {
@Input() cfg?: SimpleCounterConfig;
@Output() save: EventEmitter<{ sectionKey: GlobalConfigSectionKey | ProjectCfgFormKey, config: any }> = new EventEmitter();
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
form: FormGroup = new FormGroup({});
options: FormlyFormOptions = {};

View file

@ -17,8 +17,7 @@ import { Tag } from '../tag.model';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogEditTagsForTaskComponent implements OnDestroy {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
title: string = truncate(this.data.task.title, 20);
task$: Observable<Task> = this._taskService.getByIdLive$(this.data.task.id);
task: Task = this.data.task;

View file

@ -21,8 +21,7 @@ import { exists } from '../../../util/exists';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogEditTaskRepeatCfgComponent implements OnInit, OnDestroy {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
task: Task = this.data.task;
taskRepeatCfg: Omit<TaskRepeatCfgCopy, 'id'> = {

View file

@ -50,8 +50,7 @@ export class AddTaskBarComponent implements AfterViewInit, OnDestroy {
@ViewChild('inputEl', {static: true}) inputEl?: ElementRef;
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
isLoading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
doubleEnterCount: number = 0;

View file

@ -15,8 +15,7 @@ import { Task } from '../task.model';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogAddTaskReminderComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
task: Task = this.data.task;
reminder?: ReminderCopy = this.task.reminderId
? this._reminderService.getById(this.task.reminderId) || undefined

View file

@ -14,8 +14,7 @@ interface NewTimeEntry {
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DialogAddTimeEstimateForOtherDayComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
newEntry: NewTimeEntry;
constructor(private _matDialogRef: MatDialogRef<DialogAddTimeEstimateForOtherDayComponent>) {

View file

@ -15,8 +15,7 @@ import { T } from '../../../t.const';
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DialogTimeEstimateComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
todayStr: string;
task: Task;
taskCopy: TaskCopy;

View file

@ -24,8 +24,7 @@ const M = 1000 * 60;
animations: [standardListAnimation],
})
export class DialogViewTaskRemindersComponent implements OnDestroy {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
isDisableControls: boolean = false;
reminders$: BehaviorSubject<Reminder[]> = new BehaviorSubject(this.data.reminders);
tasks$: Observable<TaskWithReminderData[]> = this.reminders$.pipe(

View file

@ -13,8 +13,7 @@ import { WorkContextService } from '../../work-context/work-context.service';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class SelectTaskComponent implements OnInit, OnDestroy {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
taskSelectCtrl: FormControl = new FormControl();
filteredTasks: Task[] = [];
isCreate: boolean = false;

View file

@ -70,8 +70,7 @@ export class TaskAdditionalInfoComponent implements AfterViewInit, OnDestroy {
ShowSubTasksMode: typeof ShowSubTasksMode = ShowSubTasksMode;
selectedItemIndex: number = 0;
isFocusNotes: boolean = false;
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
issueAttachments: TaskAttachment[] = [];
reminderId$: BehaviorSubject<string | null> = new BehaviorSubject<string | null>(null);
reminderData$: Observable<ReminderCopy | null> = this.reminderId$.pipe(

View file

@ -18,8 +18,7 @@ interface TaskAttachmentSelectType {
export class DialogEditTaskAttachmentComponent {
types: TaskAttachmentSelectType[];
attachmentCopy: TaskAttachmentCopy;
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
constructor(
private _matDialogRef: MatDialogRef<DialogEditTaskAttachmentComponent>,

View file

@ -18,8 +18,7 @@ export class TaskAttachmentListComponent {
@Input() attachments?: TaskAttachment[];
@Input() isDisableControls: boolean = false;
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
isError: boolean[] = [];
constructor(

View file

@ -27,8 +27,7 @@ import { T } from '../../../t.const';
})
export class TaskListComponent implements OnDestroy, OnInit {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
tasksIN: TaskWithSubTasks[] = [];
tasks$: ReplaySubject<TaskWithSubTasks[]> = new ReplaySubject(1);
isHideDoneIN: boolean = false;

View file

@ -15,8 +15,7 @@ export class TaskSummaryTableComponent {
@Input() day: string = getWorklogStr();
@Output() updated: EventEmitter<void> = new EventEmitter();
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
constructor(
private _taskService: TaskService,

View file

@ -22,8 +22,7 @@ import { mapToProjectWithTasks, ProjectWithTasks } from './map-to-project-with-t
changeDetection: ChangeDetectionStrategy.OnPush
})
export class TaskSummaryTablesComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
@Input() dayStr: string = getWorklogStr();

View file

@ -49,8 +49,7 @@ import { environment } from '../../../../environments/environment';
export class TaskComponent implements OnInit, OnDestroy, AfterViewInit {
task?: TaskWithSubTasks;
@Input() isBacklog: boolean = false;
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
isTouchOnly: boolean = IS_TOUCH_ONLY;
isDragOver: boolean = false;
isLockPanLeft: boolean = false;

View file

@ -13,8 +13,7 @@ import { T } from '../../../t.const';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogIdleComponent implements OnInit {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
lastCurrentTask$: Observable<Task> = this._taskService.getByIdOnce$(this.data.lastCurrentTaskId);
selectedTask: Task | null = null;
newTaskTitle?: string;

View file

@ -16,8 +16,7 @@ export class BacklogComponent {
@Output() closeBacklog: EventEmitter<any> = new EventEmitter<any>();
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
// we do it here to have the tasks in memory all the time
// backlogTasks$: Observable<TaskWithSubTasks[]> = this._projectService.isProjectChanging$.pipe(

View file

@ -43,8 +43,7 @@ export class WorkViewComponent implements OnInit, OnDestroy, AfterContentInit {
isShowTimeWorkedWithoutBreak: boolean = true;
splitInputPos: number = 100;
isPreloadBacklog: boolean = false;
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
// NOTE: not perfect but good enough for now
isTriggerBacklogIconAni$: Observable<boolean> = this.workContextService.onMoveToBacklog$.pipe(

View file

@ -12,8 +12,7 @@ import { WORKLOG_EXPORT_DEFAULTS } from '../../work-context/work-context.const';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogWorklogExportComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
options: WorklogExportSettingsCopy = WORKLOG_EXPORT_DEFAULTS;
strStart: string;
strEnd: string;

View file

@ -63,8 +63,7 @@ export class WorklogExportComponent implements OnInit, OnDestroy {
@Output() cancel: EventEmitter<void> = new EventEmitter();
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
isShowAsText: boolean = false;
headlineCols: string[] = [];
formattedRows?: (string | number | undefined)[][];

View file

@ -21,8 +21,7 @@ import { SimpleCounterService } from '../../simple-counter/simple-counter.servic
})
export class WorklogWeekComponent {
visibility: boolean[] = [];
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
keys: (o: object) => string[] = Object.keys;
constructor(

View file

@ -24,8 +24,7 @@ import { WorkContextService } from '../work-context/work-context.service';
animations: [expandFadeAnimation, standardListAnimation, fadeAnimation]
})
export class WorklogComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
expanded: { [key: string]: boolean } = {};
constructor(

View file

@ -13,8 +13,7 @@ import { T } from '../../t.const';
})
export class FileImexComponent {
@ViewChild('fileInput', {static: true}) fileInputRef?: ElementRef;
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
constructor(
private _dataImportService: DataImportService,

View file

@ -26,8 +26,7 @@ import { MatSlideToggleChange } from '@angular/material/slide-toggle';
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class ConfigPageComponent implements OnInit, OnDestroy {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
globalConfigFormCfg: ConfigFormConfig;
globalSyncProviderFormCfg: ConfigFormConfig;
globalProductivityConfigFormCfg: ConfigFormConfig;

View file

@ -27,8 +27,7 @@ const SUCCESS_ANIMATION_DURATION = 500;
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DailySummaryComponent implements OnInit, OnDestroy {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
cfg: any = {
isBlockFinishDayUntilTimeTimeTracked: false

View file

@ -8,8 +8,7 @@ import { T } from '../../t.const';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class MetricPageComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
constructor() {
}

View file

@ -24,8 +24,7 @@ import { ExportedProject } from '../../features/project/project-archive.model';
animations: [standardListAnimation],
})
export class ProjectOverviewPageComponent implements OnInit, OnDestroy {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
private _subs: Subscription = new Subscription();
constructor(

View file

@ -23,8 +23,7 @@ import { DEFAULT_GITLAB_CFG } from 'src/app/features/issue/providers/gitlab/gitl
changeDetection: ChangeDetectionStrategy.OnPush
})
export class ProjectSettingsPageComponent implements OnInit, OnDestroy {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
projectThemeSettingsFormCfg: ConfigFormSection<WorkContextThemeCfg>;
issueIntegrationFormCfg: ConfigFormConfig;
globalConfigFormCfg: ConfigFormConfig;

View file

@ -22,8 +22,7 @@ import { Tag } from '../../features/tag/tag.model';
animations: [standardListAnimation]
})
export class SchedulePageComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
TODAY_TAG: Tag = TODAY_TAG;
constructor(

View file

@ -23,8 +23,7 @@ import { BASIC_TAG_CONFIG_FORM_CONFIG } from '../../features/tag/tag-form-cfg.co
changeDetection: ChangeDetectionStrategy.OnPush
})
export class TagSettingsPageComponent implements OnInit, OnDestroy {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
tagThemeSettingsFormCfg: ConfigFormSection<WorkContextThemeCfg>;
globalConfigFormCfg: ConfigFormConfig;
basicFormCfg: ConfigFormSection<Tag>;

View file

@ -8,8 +8,7 @@ import { T } from '../../t.const';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class WorklogPageComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
constructor() {
}

View file

@ -21,8 +21,7 @@ interface Suggestion {
changeDetection: ChangeDetectionStrategy.OnPush
})
export class ChipListInputComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
@Input() label?: string;
@Input() additionalActionIcon?: string;

View file

@ -17,8 +17,7 @@ export class DatetimeInputComponent {
nrValue: number | undefined;
strValue: string | undefined | null;
lastVal: number | undefined;
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
constructor() {
const lastVal = localStorage.getItem(LS_LAST_REMINDER_DATE);

View file

@ -9,8 +9,7 @@ import { T } from '../../t.const';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogConfirmComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
constructor(
private _matDialogRef: MatDialogRef<DialogConfirmComponent>,

View file

@ -11,8 +11,7 @@ import { ESCAPE } from '@angular/cdk/keycodes';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogFullscreenMarkdownComponent implements OnDestroy {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
private _subs: Subscription = new Subscription();

View file

@ -9,8 +9,7 @@ import { T } from '../../t.const';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DialogPromptComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
txtVal: string = '';
constructor(

View file

@ -23,8 +23,7 @@ import { T } from '../../../t.const';
animations: [dotAnimation],
})
export class InputDurationSliderComponent implements OnInit, OnDestroy {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
minutesBefore: number = 0;
dots: any[] = [];
uid: string = 'duration-input-slider' + shortid();

View file

@ -19,8 +19,7 @@ export class OwlWrapperComponent {
@Output()
triggerSubmit: EventEmitter<number> = new EventEmitter();
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
date: Date = new Date();
laterTodaySlots: string[] = [
'9:00',

View file

@ -9,8 +9,7 @@ import { T } from '../../t.const';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class ThemeSelectComponent {
// tslint:disable-next-line:typedef
T = T;
T: typeof T = T;
themes: string[] = ALL_THEMES;
trackBy(i: number, theme: string) {