mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-863] codelyzer documentlist (#2059)
* codelyzer documentlist * tslint error after codelizer * fix import * fix tag test
This commit is contained in:
@@ -32,8 +32,8 @@ import { EcmModelService } from './src/services/ecm-model.service';
|
||||
import { FormRenderingService } from './src/services/form-rendering.service';
|
||||
import { FormService } from './src/services/form.service';
|
||||
import { NodeService } from './src/services/node.service';
|
||||
import { WidgetVisibilityService } from './src/services/widget-visibility.service';
|
||||
import { ProcessUploadService } from './src/services/process-upload.service';
|
||||
import { WidgetVisibilityService } from './src/services/widget-visibility.service';
|
||||
|
||||
export * from './src/components/activiti-form.component';
|
||||
export * from './src/components/adf-form-list.component';
|
||||
|
@@ -73,7 +73,7 @@ export const ACTIVITI_TASKLIST_PROVIDERS: any[] = [
|
||||
DataTableModule,
|
||||
ActivitiFormModule,
|
||||
MdIconModule,
|
||||
MdButtonModule,
|
||||
MdButtonModule
|
||||
],
|
||||
declarations: [
|
||||
...ACTIVITI_TASKLIST_DIRECTIVES
|
||||
|
@@ -213,7 +213,7 @@ export class DataTableComponent implements AfterContentInit, AfterViewInit, OnCh
|
||||
}
|
||||
|
||||
private unsubscribeClickStream() {
|
||||
if(this.singleClickStreamSub) {
|
||||
if (this.singleClickStreamSub) {
|
||||
this.singleClickStreamSub.unsubscribe();
|
||||
}
|
||||
if (this.multiClickStreamSub) {
|
||||
|
@@ -43,7 +43,8 @@ module.exports = {
|
||||
loader: 'tslint-loader',
|
||||
options: {
|
||||
emitErrors: true,
|
||||
failOnHint: true
|
||||
failOnHint: true,
|
||||
fix: true
|
||||
},
|
||||
exclude: [/node_modules/, /bundles/, /dist/, /demo/]
|
||||
},
|
||||
|
@@ -26,7 +26,7 @@ import { ContentColumnListComponent } from './src/components/content-column/cont
|
||||
import { ContentColumnComponent } from './src/components/content-column/content-column.component';
|
||||
import { DocumentListComponent } from './src/components/document-list.component';
|
||||
import { DocumentMenuActionComponent } from './src/components/document-menu-action.component';
|
||||
import { EmptyFolderContentComponent } from './src/components/empty-folder/empty-folder-content.component';
|
||||
import { EmptyFolderContentDirective } from './src/components/empty-folder/empty-folder-content.directive';
|
||||
import { MaterialModule } from './src/material.module';
|
||||
|
||||
import { DocumentActionsService } from './src/services/document-actions.service';
|
||||
@@ -40,7 +40,7 @@ export * from './src/components/content-column/content-column.component';
|
||||
export * from './src/components/content-column/content-column-list.component';
|
||||
export * from './src/components/content-action/content-action.component';
|
||||
export * from './src/components/content-action/content-action-list.component';
|
||||
export * from './src/components/empty-folder/empty-folder-content.component';
|
||||
export * from './src/components/empty-folder/empty-folder-content.directive';
|
||||
export * from './src/components/breadcrumb/breadcrumb.component';
|
||||
|
||||
// data
|
||||
@@ -63,7 +63,7 @@ export const DOCUMENT_LIST_DIRECTIVES: any[] = [
|
||||
ContentColumnListComponent,
|
||||
ContentActionComponent,
|
||||
ContentActionListComponent,
|
||||
EmptyFolderContentComponent,
|
||||
EmptyFolderContentDirective,
|
||||
BreadcrumbComponent
|
||||
];
|
||||
|
||||
|
@@ -16,12 +16,12 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
NodePaging,
|
||||
NodeMinimalEntry,
|
||||
NodeMinimal,
|
||||
PathInfoEntity,
|
||||
ContentInfo,
|
||||
NodePagingList
|
||||
NodeMinimal,
|
||||
NodeMinimalEntry,
|
||||
NodePaging,
|
||||
NodePagingList,
|
||||
PathInfoEntity
|
||||
} from '../models/document-library.model';
|
||||
|
||||
export class PageNode extends NodePaging {
|
||||
|
@@ -15,18 +15,18 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Observable } from 'rxjs/Rx';
|
||||
import { NodePaging } from './../models/document-library.model';
|
||||
import { PageNode } from './document-library.model.mock';
|
||||
import { DocumentListService } from './../services/document-list.service';
|
||||
import {
|
||||
AlfrescoSettingsService,
|
||||
AlfrescoApiService,
|
||||
AlfrescoAuthenticationService,
|
||||
AlfrescoContentService,
|
||||
AlfrescoApiService,
|
||||
AlfrescoSettingsService,
|
||||
LogService
|
||||
ThumbnailService
|
||||
} from 'ng2-alfresco-core';
|
||||
import { Observable } from 'rxjs/Rx';
|
||||
import { NodePaging } from './../models/document-library.model';
|
||||
import { DocumentListService } from './../services/document-list.service';
|
||||
import { PageNode } from './document-library.model.mock';
|
||||
|
||||
export class DocumentListServiceMock extends DocumentListService {
|
||||
|
||||
|
@@ -15,13 +15,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { PathElementEntity } from 'alfresco-js-api';
|
||||
import { BreadcrumbComponent } from './breadcrumb.component';
|
||||
import { DocumentListComponent } from '../document-list.component';
|
||||
import { CoreModule } from 'ng2-alfresco-core';
|
||||
import { ComponentFixture, TestBed, async } from '@angular/core/testing';
|
||||
import { fakeNodeWithCreatePermission } from '../../assets/document-list.component.mock';
|
||||
import { SimpleChange } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { PathElementEntity } from 'alfresco-js-api';
|
||||
import { CoreModule } from 'ng2-alfresco-core';
|
||||
import { fakeNodeWithCreatePermission } from '../../assets/document-list.component.mock';
|
||||
import { DocumentListComponent } from '../document-list.component';
|
||||
import { BreadcrumbComponent } from './breadcrumb.component';
|
||||
|
||||
declare let jasmine: any;
|
||||
|
||||
|
@@ -15,9 +15,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { DocumentListComponent } from './../document-list.component';
|
||||
import { DocumentListServiceMock } from './../../assets/document-list.service.mock';
|
||||
import { ContentActionModel } from './../../models/content-action.model';
|
||||
import { DocumentListComponent } from './../document-list.component';
|
||||
import { ContentActionListComponent } from './content-action-list.component';
|
||||
|
||||
describe('ContentColumnList', () => {
|
||||
|
@@ -17,14 +17,14 @@
|
||||
|
||||
import { EventEmitter } from '@angular/core';
|
||||
|
||||
import { DocumentListComponent } from './../document-list.component';
|
||||
import { FileNode } from './../../assets/document-library.model.mock';
|
||||
import { DocumentListServiceMock } from './../../assets/document-list.service.mock';
|
||||
import { ContentActionListComponent } from './content-action-list.component';
|
||||
import { ContentActionComponent } from './content-action.component';
|
||||
import { ContentActionHandler } from './../../models/content-action.model';
|
||||
import { DocumentActionsService } from './../../services/document-actions.service';
|
||||
import { FolderActionsService } from './../../services/folder-actions.service';
|
||||
import { ContentActionHandler } from './../../models/content-action.model';
|
||||
import { FileNode } from './../../assets/document-library.model.mock';
|
||||
import { DocumentListComponent } from './../document-list.component';
|
||||
import { ContentActionListComponent } from './content-action-list.component';
|
||||
import { ContentActionComponent } from './content-action.component';
|
||||
|
||||
describe('ContentAction', () => {
|
||||
|
||||
|
@@ -17,8 +17,8 @@
|
||||
|
||||
import { DataColumn } from 'ng2-alfresco-datatable';
|
||||
|
||||
import { DocumentListComponent } from './../document-list.component';
|
||||
import { DocumentListServiceMock } from './../../assets/document-list.service.mock';
|
||||
import { DocumentListComponent } from './../document-list.component';
|
||||
import { ContentColumnListComponent } from './content-column-list.component';
|
||||
|
||||
describe('ContentColumnList', () => {
|
||||
|
@@ -15,10 +15,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { DocumentListComponent } from './../document-list.component';
|
||||
import { ContentColumnComponent } from './content-column.component';
|
||||
import { DocumentListServiceMock } from './../../assets/document-list.service.mock';
|
||||
import { DocumentListComponent } from './../document-list.component';
|
||||
import { ContentColumnListComponent } from './content-column-list.component';
|
||||
import { ContentColumnComponent } from './content-column.component';
|
||||
|
||||
describe('ContentColumn', () => {
|
||||
|
||||
|
@@ -11,7 +11,6 @@
|
||||
[actions]="contentActions"
|
||||
[actionsPosition]="contentActionsPosition"
|
||||
[multiselect]="multiselect"
|
||||
[fallbackThumbnail]="fallbackThumbnail"
|
||||
[allowDropFiles]="allowDropFiles"
|
||||
[contextMenu]="contextMenuActions"
|
||||
[rowStyle]="rowStyle"
|
||||
|
@@ -17,7 +17,6 @@
|
||||
|
||||
import { NgZone, SimpleChange, TemplateRef } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { AlfrescoTranslationService, CoreModule } from 'ng2-alfresco-core';
|
||||
import { DataTableModule } from 'ng2-alfresco-datatable';
|
||||
import { DataColumn, DataRowEvent, DataTableComponent } from 'ng2-alfresco-datatable';
|
||||
import { Observable, Subject } from 'rxjs/Rx';
|
||||
@@ -35,6 +34,7 @@ import { ImageResolver, RowFilter, ShareDataRow } from './../data/share-datatabl
|
||||
import { DocumentListService } from './../services/document-list.service';
|
||||
import { DocumentListComponent } from './document-list.component';
|
||||
import { DocumentMenuActionComponent } from './document-menu-action.component';
|
||||
import { CoreModule, AlfrescoTranslationService } from 'ng2-alfresco-core';
|
||||
|
||||
declare let jasmine: any;
|
||||
|
||||
|
@@ -15,19 +15,19 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { SimpleChange } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { MdButtonModule, MdIconModule, MdMenuModule } from '@angular/material';
|
||||
import {
|
||||
AlfrescoApiService,
|
||||
AlfrescoAuthenticationService,
|
||||
AlfrescoSettingsService,
|
||||
AlfrescoTranslationService,
|
||||
AlfrescoApiService,
|
||||
CoreModule,
|
||||
LogService
|
||||
} from 'ng2-alfresco-core';
|
||||
import { DocumentListService } from './../services/document-list.service';
|
||||
import { DocumentMenuActionComponent } from './document-menu-action.component';
|
||||
import { MdMenuModule, MdButtonModule, MdIconModule } from '@angular/material';
|
||||
|
||||
declare let jasmine: any;
|
||||
|
||||
|
@@ -17,20 +17,20 @@
|
||||
|
||||
import { DataTableComponent } from 'ng2-alfresco-datatable';
|
||||
|
||||
import { EmptyFolderContentComponent } from './empty-folder-content.component';
|
||||
import { DocumentListComponent } from './../document-list.component';
|
||||
import { DocumentListServiceMock } from './../../assets/document-list.service.mock';
|
||||
import { DocumentListComponent } from './../document-list.component';
|
||||
import { EmptyFolderContentDirective } from './empty-folder-content.directive';
|
||||
|
||||
describe('EmptyFolderContent', () => {
|
||||
|
||||
let emptyFolderContent: EmptyFolderContentComponent;
|
||||
let emptyFolderContent: EmptyFolderContentDirective;
|
||||
let documentList: DocumentListComponent;
|
||||
|
||||
beforeEach(() => {
|
||||
let documentListService = new DocumentListServiceMock();
|
||||
documentList = new DocumentListComponent(documentListService, null, null, null);
|
||||
documentList.dataTable = new DataTableComponent(null, null);
|
||||
emptyFolderContent = new EmptyFolderContentComponent(documentList);
|
||||
emptyFolderContent = new EmptyFolderContentDirective(documentList);
|
||||
});
|
||||
|
||||
it('is defined', () => {
|
@@ -21,7 +21,7 @@ import { DocumentListComponent } from './../document-list.component';
|
||||
@Directive({
|
||||
selector: 'empty-folder-content'
|
||||
})
|
||||
export class EmptyFolderContentComponent implements AfterContentInit {
|
||||
export class EmptyFolderContentDirective implements AfterContentInit {
|
||||
|
||||
@ContentChild(TemplateRef)
|
||||
template: any;
|
@@ -15,12 +15,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TestBed, async } from '@angular/core/testing';
|
||||
import { DataColumn, DataRow, DataSorting } from 'ng2-alfresco-datatable';
|
||||
import { DocumentListService } from './../services/document-list.service';
|
||||
import { ShareDataTableAdapter, ShareDataRow } from './share-datatable-adapter';
|
||||
import { FileNode, FolderNode } from './../assets/document-library.model.mock';
|
||||
import { async, TestBed } from '@angular/core/testing';
|
||||
import { CoreModule } from 'ng2-alfresco-core';
|
||||
import { DataColumn, DataRow, DataSorting } from 'ng2-alfresco-datatable';
|
||||
import { FileNode, FolderNode } from './../assets/document-library.model.mock';
|
||||
import { DocumentListService } from './../services/document-list.service';
|
||||
import { ShareDataRow, ShareDataTableAdapter } from './share-datatable-adapter';
|
||||
|
||||
describe('ShareDataTableAdapter', () => {
|
||||
|
||||
|
@@ -280,10 +280,6 @@ export class ShareDataRow implements DataRow {
|
||||
}
|
||||
}
|
||||
|
||||
export interface RowFilter {
|
||||
(value: ShareDataRow, index: number, array: ShareDataRow[]): any;
|
||||
}
|
||||
export type RowFilter = (value: ShareDataRow, index: number, array: ShareDataRow[]) => any;
|
||||
|
||||
export interface ImageResolver {
|
||||
(row: DataRow, column: DataColumn): string;
|
||||
}
|
||||
export type ImageResolver = (row: DataRow, column: DataColumn) => string;
|
||||
|
@@ -39,9 +39,7 @@ export class ContentActionModel {
|
||||
}
|
||||
}
|
||||
|
||||
export interface ContentActionHandler {
|
||||
(obj: any, target?: any, permission?: string): any;
|
||||
}
|
||||
export type ContentActionHandler = (obj: any, target?: any, permission?: string) => any;
|
||||
|
||||
export class DocumentActionModel extends ContentActionModel {
|
||||
constructor(json?: any) {
|
||||
|
@@ -16,11 +16,11 @@
|
||||
*/
|
||||
|
||||
import { AlfrescoContentService } from 'ng2-alfresco-core';
|
||||
import { FileNode, FolderNode } from '../assets/document-library.model.mock';
|
||||
import { DocumentListServiceMock } from '../assets/document-list.service.mock';
|
||||
import { ContentActionHandler } from '../models/content-action.model';
|
||||
import { DocumentActionsService } from './document-actions.service';
|
||||
import { DocumentListServiceMock } from '../assets/document-list.service.mock';
|
||||
import { DocumentListService } from './document-list.service';
|
||||
import { FileNode, FolderNode } from '../assets/document-library.model.mock';
|
||||
|
||||
describe('DocumentActionsService', () => {
|
||||
|
||||
|
@@ -17,7 +17,7 @@
|
||||
|
||||
import { Injectable } from '@angular/core';
|
||||
import { AlfrescoContentService } from 'ng2-alfresco-core';
|
||||
import { Observable } from 'rxjs';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import { Subject } from 'rxjs/Rx';
|
||||
import { ContentActionHandler } from '../models/content-action.model';
|
||||
import { PermissionModel } from '../models/permissions.model';
|
||||
|
@@ -15,10 +15,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TestBed, async } from '@angular/core/testing';
|
||||
import { async, TestBed } from '@angular/core/testing';
|
||||
import {
|
||||
CoreModule,
|
||||
CookieService,
|
||||
CoreModule,
|
||||
LogService,
|
||||
LogServiceMock
|
||||
} from 'ng2-alfresco-core';
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { FolderActionsService } from './folder-actions.service';
|
||||
import { ContentActionHandler } from '../models/content-action.model';
|
||||
import { FileNode, FolderNode } from '../assets/document-library.model.mock';
|
||||
import { DocumentListService } from './document-list.service';
|
||||
import { DocumentListServiceMock } from '../assets/document-list.service.mock';
|
||||
import { ContentActionHandler } from '../models/content-action.model';
|
||||
import { DocumentListService } from './document-list.service';
|
||||
import { FolderActionsService } from './folder-actions.service';
|
||||
|
||||
describe('FolderActionsService', () => {
|
||||
|
||||
|
@@ -1,4 +1,7 @@
|
||||
{
|
||||
"rulesDirectory": [
|
||||
"node_modules/codelyzer"
|
||||
],
|
||||
"rules": {
|
||||
"align": [
|
||||
true,
|
||||
@@ -105,14 +108,50 @@
|
||||
"allow-leading-underscore",
|
||||
"ban-keywords"
|
||||
],
|
||||
"callable-types": true,
|
||||
"import-blacklist": [
|
||||
true,
|
||||
"rxjs"
|
||||
],
|
||||
"import-spacing": true,
|
||||
"interface-over-type-literal": true,
|
||||
"member-access": false,
|
||||
"no-empty-interface": true,
|
||||
"no-string-literal": false,
|
||||
"no-string-throw": true,
|
||||
"prefer-const": false,
|
||||
"typeof-compare": true,
|
||||
"unified-signatures": true,
|
||||
"whitespace": [
|
||||
true,
|
||||
"check-branch",
|
||||
"check-decl",
|
||||
"check-operator",
|
||||
"check-separator",
|
||||
"check-type",
|
||||
"check-module",
|
||||
"check-decl"
|
||||
]
|
||||
"check-type"
|
||||
],
|
||||
"directive-selector": [
|
||||
true,
|
||||
"attribute",
|
||||
"app",
|
||||
"camelCase"
|
||||
],
|
||||
"component-selector": [
|
||||
true,
|
||||
"element",
|
||||
"app",
|
||||
"kebab-case"
|
||||
],
|
||||
"ordered-imports": true,
|
||||
"use-input-property-decorator": true,
|
||||
"use-output-property-decorator": true,
|
||||
"use-host-property-decorator": true,
|
||||
"use-life-cycle-interface": true,
|
||||
"use-pipe-transform-interface": true,
|
||||
"component-class-suffix": true,
|
||||
"directive-class-suffix": true,
|
||||
"no-access-missing-member": true,
|
||||
"templates-use-public": true,
|
||||
"invoke-injectable": true
|
||||
}
|
||||
}
|
||||
|
@@ -42,7 +42,8 @@ module.exports = {
|
||||
loader: 'tslint-loader',
|
||||
options: {
|
||||
emitErrors: true,
|
||||
failOnHint: true
|
||||
failOnHint: true,
|
||||
fix: true
|
||||
},
|
||||
exclude: [/node_modules/, /bundles/, /dist/, /demo/]
|
||||
},
|
||||
|
@@ -15,8 +15,8 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Observable } from 'rxjs/Rx';
|
||||
import { EventEmitter } from '@angular/core';
|
||||
import { Observable } from 'rxjs/Rx';
|
||||
|
||||
export interface LangChangeEvent {
|
||||
lang: string;
|
||||
|
@@ -15,14 +15,14 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { ComponentFixture, TestBed, async } from '@angular/core/testing';
|
||||
import { DebugElement } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { MdCheckboxModule, MdInputModule } from '@angular/material';
|
||||
import { AlfrescoAuthenticationService, CoreModule } from 'ng2-alfresco-core';
|
||||
import { AlfrescoTranslationService } from 'ng2-alfresco-core';
|
||||
import { AlfrescoLoginComponent } from './alfresco-login.component';
|
||||
import { AuthenticationMock } from './../assets/authentication.service.mock';
|
||||
import { TranslationMock } from './../assets/translation.service.mock';
|
||||
import { MdInputModule, MdCheckboxModule } from '@angular/material';
|
||||
import { AlfrescoLoginComponent } from './alfresco-login.component';
|
||||
|
||||
describe('AlfrescoLogin', () => {
|
||||
let component: AlfrescoLoginComponent;
|
||||
|
@@ -92,6 +92,7 @@ export class AlfrescoLoginComponent implements OnInit {
|
||||
minLength: number = 2;
|
||||
footerTemplate: TemplateRef<any>;
|
||||
headerTemplate: TemplateRef<any>;
|
||||
data: any;
|
||||
|
||||
private _message: { [id: string]: { [id: string]: string } };
|
||||
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginFooterDirective } from './login-footer.directive';
|
||||
import { Injector } from '@angular/core';
|
||||
import { getTestBed, TestBed } from '@angular/core/testing';
|
||||
import { AlfrescoLoginComponent } from '../components/alfresco-login.component';
|
||||
import { CoreModule } from 'ng2-alfresco-core';
|
||||
import { AlfrescoLoginComponent } from '../components/alfresco-login.component';
|
||||
import { LoginFooterDirective } from './login-footer.directive';
|
||||
|
||||
describe('LoginFooterDirective', () => {
|
||||
let injector: Injector;
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginHeaderDirective } from './login-header.directive';
|
||||
import { Injector } from '@angular/core';
|
||||
import { getTestBed, TestBed } from '@angular/core/testing';
|
||||
import { AlfrescoLoginComponent } from '../components/alfresco-login.component';
|
||||
import { CoreModule } from 'ng2-alfresco-core';
|
||||
import { AlfrescoLoginComponent } from '../components/alfresco-login.component';
|
||||
import { LoginHeaderDirective } from './login-header.directive';
|
||||
|
||||
describe('LoginHeaderDirective', () => {
|
||||
let injector: Injector;
|
||||
|
@@ -1,4 +1,7 @@
|
||||
{
|
||||
"rulesDirectory": [
|
||||
"node_modules/codelyzer"
|
||||
],
|
||||
"rules": {
|
||||
"align": [
|
||||
true,
|
||||
@@ -105,14 +108,50 @@
|
||||
"allow-leading-underscore",
|
||||
"ban-keywords"
|
||||
],
|
||||
"callable-types": true,
|
||||
"import-blacklist": [
|
||||
true,
|
||||
"rxjs"
|
||||
],
|
||||
"import-spacing": true,
|
||||
"interface-over-type-literal": true,
|
||||
"member-access": false,
|
||||
"no-empty-interface": true,
|
||||
"no-string-literal": false,
|
||||
"no-string-throw": true,
|
||||
"prefer-const": false,
|
||||
"typeof-compare": true,
|
||||
"unified-signatures": true,
|
||||
"whitespace": [
|
||||
true,
|
||||
"check-branch",
|
||||
"check-decl",
|
||||
"check-operator",
|
||||
"check-separator",
|
||||
"check-type",
|
||||
"check-module",
|
||||
"check-decl"
|
||||
]
|
||||
"check-type"
|
||||
],
|
||||
"directive-selector": [
|
||||
true,
|
||||
"attribute",
|
||||
"app",
|
||||
"camelCase"
|
||||
],
|
||||
"component-selector": [
|
||||
true,
|
||||
"element",
|
||||
"app",
|
||||
"kebab-case"
|
||||
],
|
||||
"ordered-imports": true,
|
||||
"use-input-property-decorator": true,
|
||||
"use-output-property-decorator": true,
|
||||
"use-host-property-decorator": true,
|
||||
"use-life-cycle-interface": true,
|
||||
"use-pipe-transform-interface": true,
|
||||
"component-class-suffix": true,
|
||||
"directive-class-suffix": true,
|
||||
"no-access-missing-member": true,
|
||||
"templates-use-public": true,
|
||||
"invoke-injectable": true
|
||||
}
|
||||
}
|
||||
|
@@ -44,7 +44,8 @@ module.exports = {
|
||||
loader: 'tslint-loader',
|
||||
options: {
|
||||
emitErrors: true,
|
||||
failOnHint: true
|
||||
failOnHint: true,
|
||||
fix: true
|
||||
},
|
||||
exclude: [/node_modules/, /bundles/, /dist/, /demo/]
|
||||
},
|
||||
|
@@ -16,7 +16,7 @@
|
||||
*/
|
||||
|
||||
import { ModuleWithProviders, NgModule } from '@angular/core';
|
||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||
import { CoreModule } from 'ng2-alfresco-core';
|
||||
import { DocumentListModule } from 'ng2-alfresco-documentlist';
|
||||
import { AlfrescoSearchAutocompleteComponent } from './src/components/alfresco-search-autocomplete.component';
|
||||
|
@@ -15,8 +15,8 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Observable } from 'rxjs/Rx';
|
||||
import { EventEmitter } from '@angular/core';
|
||||
import { Observable } from 'rxjs/Rx';
|
||||
|
||||
export interface LangChangeEvent {
|
||||
lang: string;
|
||||
|
@@ -15,20 +15,20 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { ComponentFixture, TestBed, async } from '@angular/core/testing';
|
||||
import { AlfrescoSearchAutocompleteComponent } from './alfresco-search-autocomplete.component';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { ThumbnailService } from 'ng2-alfresco-core';
|
||||
import { TranslationMock } from './../assets/translation.service.mock';
|
||||
import { result, results, folderResult, noResult, errorJson } from './../assets/alfresco-search.component.mock';
|
||||
import { AlfrescoSearchService } from '../services/alfresco-search.service';
|
||||
import {
|
||||
AlfrescoApiService,
|
||||
AlfrescoSettingsService,
|
||||
AlfrescoAuthenticationService,
|
||||
AlfrescoContentService,
|
||||
AlfrescoSettingsService,
|
||||
AlfrescoTranslationService,
|
||||
CoreModule
|
||||
} from 'ng2-alfresco-core';
|
||||
import { AlfrescoSearchService } from '../services/alfresco-search.service';
|
||||
import { errorJson, folderResult, noResult, result, results } from './../assets/alfresco-search.component.mock';
|
||||
import { TranslationMock } from './../assets/translation.service.mock';
|
||||
import { AlfrescoSearchAutocompleteComponent } from './alfresco-search-autocomplete.component';
|
||||
|
||||
describe('AlfrescoSearchAutocompleteComponent', () => {
|
||||
|
||||
|
@@ -15,14 +15,14 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { ComponentFixture, TestBed, async } from '@angular/core/testing';
|
||||
import { AlfrescoSearchControlComponent } from './alfresco-search-control.component';
|
||||
import { AlfrescoSearchAutocompleteComponent } from './alfresco-search-autocomplete.component';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { ThumbnailService } from 'ng2-alfresco-core';
|
||||
import { TranslationMock } from './../assets/translation.service.mock';
|
||||
import { result } from './../assets/alfresco-search.component.mock';
|
||||
import { CoreModule, AlfrescoTranslationService } from 'ng2-alfresco-core';
|
||||
import { AlfrescoTranslationService, CoreModule } from 'ng2-alfresco-core';
|
||||
import { AlfrescoSearchService } from '../services/alfresco-search.service';
|
||||
import { result } from './../assets/alfresco-search.component.mock';
|
||||
import { TranslationMock } from './../assets/translation.service.mock';
|
||||
import { AlfrescoSearchAutocompleteComponent } from './alfresco-search-autocomplete.component';
|
||||
import { AlfrescoSearchControlComponent } from './alfresco-search-control.component';
|
||||
|
||||
describe('AlfrescoSearchControlComponent', () => {
|
||||
|
||||
|
@@ -9,8 +9,6 @@
|
||||
[contentActions]="true"
|
||||
[navigationMode]="navigationMode"
|
||||
[enablePagination]="false"
|
||||
(error)="onNavigationError($event)"
|
||||
(success)="resetError()"
|
||||
(preview)="onPreviewFile($event)">
|
||||
<empty-folder-content>
|
||||
<ng-template>
|
||||
|
@@ -16,15 +16,15 @@
|
||||
*/
|
||||
|
||||
import { DebugElement, ReflectiveInjector, SimpleChange } from '@angular/core';
|
||||
import { ComponentFixture, TestBed, async } from '@angular/core/testing';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { Observable } from 'rxjs/Rx';
|
||||
import { AlfrescoSearchComponent } from './alfresco-search.component';
|
||||
import { TranslationMock } from './../assets/translation.service.mock';
|
||||
import { AlfrescoSearchService } from '../services/alfresco-search.service';
|
||||
import { AlfrescoTranslationService, CoreModule, NotificationService } from 'ng2-alfresco-core';
|
||||
import { DocumentListModule } from 'ng2-alfresco-documentlist';
|
||||
import { PermissionModel } from 'ng2-alfresco-documentlist';
|
||||
import { Observable } from 'rxjs/Rx';
|
||||
import { AlfrescoSearchService } from '../services/alfresco-search.service';
|
||||
import { TranslationMock } from './../assets/translation.service.mock';
|
||||
import { AlfrescoSearchComponent } from './alfresco-search.component';
|
||||
|
||||
describe('AlfrescoSearchComponent', () => {
|
||||
|
||||
|
@@ -15,10 +15,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TestBed, async } from '@angular/core/testing';
|
||||
import { async, TestBed } from '@angular/core/testing';
|
||||
import { AlfrescoApiService, CoreModule } from 'ng2-alfresco-core';
|
||||
import { fakeApi, fakeError, fakeSearch } from '../assets/alfresco-search.service.mock';
|
||||
import { AlfrescoSearchService } from './alfresco-search.service';
|
||||
import { CoreModule, AlfrescoApiService } from 'ng2-alfresco-core';
|
||||
import { fakeApi, fakeSearch, fakeError } from '../assets/alfresco-search.service.mock';
|
||||
|
||||
declare let jasmine: any;
|
||||
|
||||
|
@@ -1,4 +1,7 @@
|
||||
{
|
||||
"rulesDirectory": [
|
||||
"node_modules/codelyzer"
|
||||
],
|
||||
"rules": {
|
||||
"align": [
|
||||
true,
|
||||
@@ -105,14 +108,50 @@
|
||||
"allow-leading-underscore",
|
||||
"ban-keywords"
|
||||
],
|
||||
"callable-types": true,
|
||||
"import-blacklist": [
|
||||
true,
|
||||
"rxjs"
|
||||
],
|
||||
"import-spacing": true,
|
||||
"interface-over-type-literal": true,
|
||||
"member-access": false,
|
||||
"no-empty-interface": true,
|
||||
"no-string-literal": false,
|
||||
"no-string-throw": true,
|
||||
"prefer-const": false,
|
||||
"typeof-compare": true,
|
||||
"unified-signatures": true,
|
||||
"whitespace": [
|
||||
true,
|
||||
"check-branch",
|
||||
"check-decl",
|
||||
"check-operator",
|
||||
"check-separator",
|
||||
"check-type",
|
||||
"check-module",
|
||||
"check-decl"
|
||||
]
|
||||
"check-type"
|
||||
],
|
||||
"directive-selector": [
|
||||
true,
|
||||
"attribute",
|
||||
"app",
|
||||
"camelCase"
|
||||
],
|
||||
"component-selector": [
|
||||
true,
|
||||
"element",
|
||||
"app",
|
||||
"kebab-case"
|
||||
],
|
||||
"ordered-imports": true,
|
||||
"use-input-property-decorator": true,
|
||||
"use-output-property-decorator": true,
|
||||
"use-host-property-decorator": true,
|
||||
"use-life-cycle-interface": true,
|
||||
"use-pipe-transform-interface": true,
|
||||
"component-class-suffix": true,
|
||||
"directive-class-suffix": true,
|
||||
"no-access-missing-member": true,
|
||||
"templates-use-public": true,
|
||||
"invoke-injectable": true
|
||||
}
|
||||
}
|
||||
|
@@ -20,8 +20,8 @@ import { MdButtonModule, MdInputModule } from '@angular/material';
|
||||
import { CoreModule } from 'ng2-alfresco-core';
|
||||
|
||||
import { TagActionsComponent } from './src/components/tag-actions.component';
|
||||
import { TagList } from './src/components/tag-list.component';
|
||||
import { TagNodeList } from './src/components/tag-node-list.component';
|
||||
import { TagListComponent } from './src/components/tag-list.component';
|
||||
import { TagNodeListComponent } from './src/components/tag-node-list.component';
|
||||
import { TagService } from './src/services/tag.service';
|
||||
|
||||
export * from './src/components/tag-actions.component';
|
||||
@@ -31,8 +31,8 @@ export * from './src/services/tag.service';
|
||||
|
||||
export const TAG_DIRECTIVES: any[] = [
|
||||
TagActionsComponent,
|
||||
TagList,
|
||||
TagNodeList
|
||||
TagListComponent,
|
||||
TagNodeListComponent
|
||||
];
|
||||
|
||||
export const TAG_PROVIDERS: any[] = [
|
||||
|
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { DebugElement } from '@angular/core';
|
||||
import { DebugElement } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { MdInputModule } from '@angular/material';
|
||||
import { AppConfigModule, CoreModule } from 'ng2-alfresco-core';
|
||||
|
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
||||
import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';
|
||||
import { AlfrescoTranslationService } from 'ng2-alfresco-core';
|
||||
import { TagService } from './../services/tag.service';
|
||||
|
||||
@@ -31,7 +31,7 @@ import { TagService } from './../services/tag.service';
|
||||
templateUrl: './tag-actions.component.html',
|
||||
styleUrls: ['./tag-actions.component.css']
|
||||
})
|
||||
export class TagActionsComponent {
|
||||
export class TagActionsComponent implements OnChanges {
|
||||
|
||||
@Input()
|
||||
nodeId: string;
|
||||
@@ -75,7 +75,7 @@ export class TagActionsComponent {
|
||||
this.tagsEntries = data.list.entries;
|
||||
this.disableAddTag = false;
|
||||
this.result.emit(this.tagsEntries);
|
||||
}, () => {
|
||||
}, () => {
|
||||
this.tagsEntries = null;
|
||||
this.disableAddTag = true;
|
||||
this.result.emit(this.tagsEntries);
|
||||
@@ -88,7 +88,7 @@ export class TagActionsComponent {
|
||||
this.errorMsg = error;
|
||||
});
|
||||
this.error.emit(this.errorMsg);
|
||||
}else {
|
||||
} else {
|
||||
this.tagService.addTag(this.nodeId, this.newTagName).subscribe(() => {
|
||||
this.newTagName = '';
|
||||
this.successAdd.emit(this.nodeId);
|
||||
|
@@ -20,7 +20,7 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { MdInputModule } from '@angular/material';
|
||||
import { AppConfigModule, CoreModule } from 'ng2-alfresco-core';
|
||||
import { TagService } from '../services/tag.service';
|
||||
import { TagList } from './../components/tag-list.component';
|
||||
import { TagListComponent } from './../components/tag-list.component';
|
||||
|
||||
declare let jasmine: any;
|
||||
|
||||
@@ -38,12 +38,13 @@ describe('TagList', () => {
|
||||
'entries': [{
|
||||
'entry': {'tag': 'test1', 'id': '0ee933fa-57fc-4587-8a77-b787e814f1d2'}
|
||||
}, {'entry': {'tag': 'test2', 'id': 'fcb92659-1f10-41b4-9b17-851b72a3b597'}}, {
|
||||
'entry': {'tag': 'test3', 'id': 'fb4213c0-729d-466c-9a6c-ee2e937273bf'}}]
|
||||
'entry': {'tag': 'test3', 'id': 'fb4213c0-729d-466c-9a6c-ee2e937273bf'}
|
||||
}]
|
||||
}
|
||||
};
|
||||
|
||||
let component: any;
|
||||
let fixture: ComponentFixture<TagList>;
|
||||
let fixture: ComponentFixture<TagListComponent>;
|
||||
let debug: DebugElement;
|
||||
let element: HTMLElement;
|
||||
|
||||
@@ -57,7 +58,7 @@ describe('TagList', () => {
|
||||
})
|
||||
],
|
||||
declarations: [
|
||||
TagList
|
||||
TagListComponent
|
||||
],
|
||||
providers: [
|
||||
TagService
|
||||
@@ -66,7 +67,7 @@ describe('TagList', () => {
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(TagList);
|
||||
fixture = TestBed.createComponent(TagListComponent);
|
||||
|
||||
debug = fixture.debugElement;
|
||||
element = fixture.nativeElement;
|
||||
|
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Component, EventEmitter, Output } from '@angular/core';
|
||||
import { Component, EventEmitter, OnInit, Output } from '@angular/core';
|
||||
import { TagService } from '../services/tag.service';
|
||||
|
||||
/**
|
||||
@@ -29,7 +29,7 @@ import { TagService } from '../services/tag.service';
|
||||
selector: 'adf-tag-list, alfresco-tag-list',
|
||||
templateUrl: './tag-list.component.html'
|
||||
})
|
||||
export class TagList {
|
||||
export class TagListComponent implements OnInit {
|
||||
|
||||
tagsEntries: any;
|
||||
|
||||
|
@@ -19,7 +19,7 @@ import { DebugElement } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { MdInputModule } from '@angular/material';
|
||||
import { AppConfigModule, CoreModule } from 'ng2-alfresco-core';
|
||||
import { TagNodeList } from '../components/tag-node-list.component';
|
||||
import { TagNodeListComponent } from '../components/tag-node-list.component';
|
||||
import { TagService } from '../services/tag.service';
|
||||
|
||||
declare let jasmine: any;
|
||||
@@ -38,12 +38,13 @@ describe('TagNodeList', () => {
|
||||
'entries': [{
|
||||
'entry': {'tag': 'test1', 'id': '0ee933fa-57fc-4587-8a77-b787e814f1d2'}
|
||||
}, {'entry': {'tag': 'test2', 'id': 'fcb92659-1f10-41b4-9b17-851b72a3b597'}}, {
|
||||
'entry': {'tag': 'test3', 'id': 'fb4213c0-729d-466c-9a6c-ee2e937273bf'}}]
|
||||
'entry': {'tag': 'test3', 'id': 'fb4213c0-729d-466c-9a6c-ee2e937273bf'}
|
||||
}]
|
||||
}
|
||||
};
|
||||
|
||||
let component: any;
|
||||
let fixture: ComponentFixture<TagNodeList>;
|
||||
let fixture: ComponentFixture<TagNodeListComponent>;
|
||||
let debug: DebugElement;
|
||||
let element: HTMLElement;
|
||||
|
||||
@@ -57,7 +58,7 @@ describe('TagNodeList', () => {
|
||||
})
|
||||
],
|
||||
declarations: [
|
||||
TagNodeList
|
||||
TagNodeListComponent
|
||||
],
|
||||
providers: [
|
||||
TagService
|
||||
@@ -66,7 +67,7 @@ describe('TagNodeList', () => {
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(TagNodeList);
|
||||
fixture = TestBed.createComponent(TagNodeListComponent);
|
||||
|
||||
debug = fixture.debugElement;
|
||||
element = fixture.nativeElement;
|
||||
@@ -120,7 +121,7 @@ describe('TagNodeList', () => {
|
||||
deleteButton.click();
|
||||
|
||||
expect(jasmine.Ajax.requests.mostRecent().url).
|
||||
toBe('http://localhost:9876/ecm/alfresco/api/-default-/public/alfresco/versions/1/nodes/fake-node-id/tags/0ee933fa-57fc-4587-8a77-b787e814f1d2');
|
||||
toContain('0ee933fa-57fc-4587-8a77-b787e814f1d2');
|
||||
expect(jasmine.Ajax.requests.mostRecent().method).toBe('DELETE');
|
||||
|
||||
jasmine.Ajax.requests.mostRecent().respondWith({
|
||||
|
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
||||
import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';
|
||||
import { TagService } from '../services/tag.service';
|
||||
|
||||
/**
|
||||
@@ -30,7 +30,7 @@ import { TagService } from '../services/tag.service';
|
||||
templateUrl: './tag-node-list.component.html',
|
||||
styleUrls: ['./tag-node-list.component.css']
|
||||
})
|
||||
export class TagNodeList {
|
||||
export class TagNodeListComponent implements OnChanges {
|
||||
|
||||
@Input()
|
||||
nodeId: string;
|
||||
|
@@ -108,15 +108,50 @@
|
||||
"allow-leading-underscore",
|
||||
"ban-keywords"
|
||||
],
|
||||
"callable-types": true,
|
||||
"import-blacklist": [
|
||||
true,
|
||||
"rxjs"
|
||||
],
|
||||
"import-spacing": true,
|
||||
"interface-over-type-literal": true,
|
||||
"member-access": false,
|
||||
"no-empty-interface": true,
|
||||
"no-string-literal": false,
|
||||
"no-string-throw": true,
|
||||
"prefer-const": false,
|
||||
"typeof-compare": true,
|
||||
"unified-signatures": true,
|
||||
"whitespace": [
|
||||
true,
|
||||
"check-branch",
|
||||
"check-decl",
|
||||
"check-operator",
|
||||
"check-separator",
|
||||
"check-type",
|
||||
"check-module",
|
||||
"check-decl"
|
||||
"check-type"
|
||||
],
|
||||
"ordered-imports": true
|
||||
"directive-selector": [
|
||||
true,
|
||||
"attribute",
|
||||
"app",
|
||||
"camelCase"
|
||||
],
|
||||
"component-selector": [
|
||||
true,
|
||||
"element",
|
||||
"app",
|
||||
"kebab-case"
|
||||
],
|
||||
"ordered-imports": true,
|
||||
"use-input-property-decorator": true,
|
||||
"use-output-property-decorator": true,
|
||||
"use-host-property-decorator": true,
|
||||
"use-life-cycle-interface": true,
|
||||
"use-pipe-transform-interface": true,
|
||||
"component-class-suffix": true,
|
||||
"directive-class-suffix": true,
|
||||
"no-access-missing-member": true,
|
||||
"templates-use-public": true,
|
||||
"invoke-injectable": true
|
||||
}
|
||||
}
|
||||
|
@@ -42,7 +42,8 @@ module.exports = {
|
||||
loader: 'tslint-loader',
|
||||
options: {
|
||||
emitErrors: true,
|
||||
failOnHint: true
|
||||
failOnHint: true,
|
||||
fix: true
|
||||
},
|
||||
exclude: [/node_modules/, /bundles/, /dist/, /demo/]
|
||||
},
|
||||
|
@@ -15,8 +15,8 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Observable } from 'rxjs/Rx';
|
||||
import { EventEmitter } from '@angular/core';
|
||||
import { Observable } from 'rxjs/Rx';
|
||||
|
||||
export interface LangChangeEvent {
|
||||
lang: string;
|
||||
|
@@ -15,20 +15,20 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { UserInfoComponent } from './user-info.component';
|
||||
import { EcmUserService } from '../services/ecm-user.service';
|
||||
import { BpmUserService } from '../services/bpm-user.service';
|
||||
import { fakeBpmUser } from '../assets/fake-bpm-user.service.mock';
|
||||
import { TranslationMock } from '../assets/translation.service.mock';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import {
|
||||
CoreModule,
|
||||
AlfrescoAuthenticationService,
|
||||
AlfrescoContentService,
|
||||
AlfrescoTranslationService
|
||||
AlfrescoTranslationService,
|
||||
CoreModule
|
||||
} from 'ng2-alfresco-core';
|
||||
import { ComponentFixture, TestBed, async } from '@angular/core/testing';
|
||||
import { fakeBpmUser } from '../assets/fake-bpm-user.service.mock';
|
||||
import { fakeEcmEditedUser, fakeEcmUser, fakeEcmUserNoImage } from '../assets/fake-ecm-user.service.mock';
|
||||
import { TranslationMock } from '../assets/translation.service.mock';
|
||||
import { BpmUserService } from '../services/bpm-user.service';
|
||||
import { EcmUserService } from '../services/ecm-user.service';
|
||||
import { BpmUserModel } from './../models/bpm-user.model';
|
||||
import { fakeEcmUser, fakeEcmEditedUser, fakeEcmUserNoImage } from '../assets/fake-ecm-user.service.mock';
|
||||
import { UserInfoComponent } from './user-info.component';
|
||||
|
||||
declare let jasmine: any;
|
||||
|
||||
|
@@ -15,10 +15,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TestBed, async } from '@angular/core/testing';
|
||||
import { async, TestBed } from '@angular/core/testing';
|
||||
import { CoreModule } from 'ng2-alfresco-core';
|
||||
import { BpmUserService } from '../services/bpm-user.service';
|
||||
import { BpmUserModel } from '../models/bpm-user.model';
|
||||
import { BpmUserService } from '../services/bpm-user.service';
|
||||
|
||||
declare let jasmine: any;
|
||||
|
||||
|
@@ -15,10 +15,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TestBed, async } from '@angular/core/testing';
|
||||
import { EcmUserService } from '../services/ecm-user.service';
|
||||
import { async, TestBed } from '@angular/core/testing';
|
||||
import { AlfrescoAuthenticationService, AlfrescoContentService, CoreModule} from 'ng2-alfresco-core';
|
||||
import { fakeEcmUser } from '../assets/fake-ecm-user.service.mock';
|
||||
import { CoreModule, AlfrescoAuthenticationService, AlfrescoContentService} from 'ng2-alfresco-core';
|
||||
import { EcmUserService } from '../services/ecm-user.service';
|
||||
|
||||
declare let jasmine: any;
|
||||
|
||||
|
@@ -1,4 +1,7 @@
|
||||
{
|
||||
"rulesDirectory": [
|
||||
"node_modules/codelyzer"
|
||||
],
|
||||
"rules": {
|
||||
"align": [
|
||||
true,
|
||||
@@ -105,14 +108,50 @@
|
||||
"allow-leading-underscore",
|
||||
"ban-keywords"
|
||||
],
|
||||
"callable-types": true,
|
||||
"import-blacklist": [
|
||||
true,
|
||||
"rxjs"
|
||||
],
|
||||
"import-spacing": true,
|
||||
"interface-over-type-literal": true,
|
||||
"member-access": false,
|
||||
"no-empty-interface": true,
|
||||
"no-string-literal": false,
|
||||
"no-string-throw": true,
|
||||
"prefer-const": false,
|
||||
"typeof-compare": true,
|
||||
"unified-signatures": true,
|
||||
"whitespace": [
|
||||
true,
|
||||
"check-branch",
|
||||
"check-decl",
|
||||
"check-operator",
|
||||
"check-separator",
|
||||
"check-type",
|
||||
"check-module",
|
||||
"check-decl"
|
||||
]
|
||||
"check-type"
|
||||
],
|
||||
"directive-selector": [
|
||||
true,
|
||||
"attribute",
|
||||
"app",
|
||||
"camelCase"
|
||||
],
|
||||
"component-selector": [
|
||||
true,
|
||||
"element",
|
||||
"app",
|
||||
"kebab-case"
|
||||
],
|
||||
"ordered-imports": true,
|
||||
"use-input-property-decorator": true,
|
||||
"use-output-property-decorator": true,
|
||||
"use-host-property-decorator": true,
|
||||
"use-life-cycle-interface": true,
|
||||
"use-pipe-transform-interface": true,
|
||||
"component-class-suffix": true,
|
||||
"directive-class-suffix": true,
|
||||
"no-access-missing-member": true,
|
||||
"templates-use-public": true,
|
||||
"invoke-injectable": true
|
||||
}
|
||||
}
|
||||
|
@@ -42,7 +42,8 @@ module.exports = {
|
||||
loader: 'tslint-loader',
|
||||
options: {
|
||||
emitErrors: true,
|
||||
failOnHint: true
|
||||
failOnHint: true,
|
||||
fix: true
|
||||
},
|
||||
exclude: [/node_modules/, /bundles/, /dist/, /demo/]
|
||||
},
|
||||
|
@@ -30,7 +30,7 @@ import { CoreModule } from 'ng2-alfresco-core';
|
||||
import { MdButtonModule, MdIconModule, MdProgressSpinnerModule } from '@angular/material';
|
||||
import { ImgViewerComponent } from './src/components/imgViewer.component';
|
||||
import { MediaPlayerComponent } from './src/components/mediaPlayer.component';
|
||||
import { NotSupportedFormat } from './src/components/notSupportedFormat.component';
|
||||
import { NotSupportedFormatComponent } from './src/components/notSupportedFormat.component';
|
||||
import { PdfViewerComponent } from './src/components/pdfViewer.component';
|
||||
import { TxtViewerComponent } from './src/components/txtViewer.component';
|
||||
import { ViewerComponent } from './src/components/viewer.component';
|
||||
@@ -50,7 +50,7 @@ export const VIEWER_DIRECTIVES: any[] = [
|
||||
ImgViewerComponent,
|
||||
TxtViewerComponent,
|
||||
MediaPlayerComponent,
|
||||
NotSupportedFormat,
|
||||
NotSupportedFormatComponent,
|
||||
PdfViewerComponent,
|
||||
ExtensionViewerDirective
|
||||
];
|
||||
|
@@ -15,16 +15,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { ComponentFixture, TestBed, async } from '@angular/core/testing';
|
||||
import { ImgViewerComponent } from './imgViewer.component';
|
||||
import { DebugElement, SimpleChange } from '@angular/core';
|
||||
import { DebugElement, SimpleChange } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import {
|
||||
AlfrescoApiService,
|
||||
AlfrescoAuthenticationService,
|
||||
AlfrescoSettingsService,
|
||||
AlfrescoApiService,
|
||||
CoreModule,
|
||||
ContentService
|
||||
ContentService,
|
||||
CoreModule
|
||||
} from 'ng2-alfresco-core';
|
||||
import { ImgViewerComponent } from './imgViewer.component';
|
||||
|
||||
describe('Test ng2-alfresco-viewer Img viewer component ', () => {
|
||||
|
||||
|
@@ -15,15 +15,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { ComponentFixture, TestBed, async } from '@angular/core/testing';
|
||||
import { MediaPlayerComponent } from './mediaPlayer.component';
|
||||
import { DebugElement, SimpleChange } from '@angular/core';
|
||||
import { DebugElement, SimpleChange } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { ContentService } from 'ng2-alfresco-core';
|
||||
import { MediaPlayerComponent } from './mediaPlayer.component';
|
||||
|
||||
import {
|
||||
AlfrescoApiService,
|
||||
AlfrescoAuthenticationService,
|
||||
AlfrescoSettingsService,
|
||||
AlfrescoApiService,
|
||||
CoreModule
|
||||
} from 'ng2-alfresco-core';
|
||||
|
||||
|
@@ -15,35 +15,35 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { ComponentFixture, TestBed, async } from '@angular/core/testing';
|
||||
import { NotSupportedFormat } from './notSupportedFormat.component';
|
||||
import { PdfViewerComponent } from './pdfViewer.component';
|
||||
import { DebugElement } from '@angular/core';
|
||||
import { MdIconModule, MdButtonModule, MdProgressSpinnerModule } from '@angular/material';
|
||||
import { Subject } from 'rxjs';
|
||||
import { DebugElement } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { MdButtonModule, MdIconModule, MdProgressSpinnerModule } from '@angular/material';
|
||||
import {
|
||||
AlfrescoApiService,
|
||||
AlfrescoAuthenticationService,
|
||||
AlfrescoSettingsService,
|
||||
CoreModule,
|
||||
ContentService,
|
||||
AlfrescoApiService,
|
||||
CoreModule,
|
||||
LogService,
|
||||
RenditionsService
|
||||
} from 'ng2-alfresco-core';
|
||||
import { Subject } from 'rxjs/Subject';
|
||||
import { NotSupportedFormatComponent } from './notSupportedFormat.component';
|
||||
import { PdfViewerComponent } from './pdfViewer.component';
|
||||
|
||||
type RenditionResponse = {
|
||||
interface RenditionResponse {
|
||||
entry: {
|
||||
status: string
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
describe('Test ng2-alfresco-viewer Not Supported Format View component', () => {
|
||||
|
||||
const nodeId = 'not-supported-node-id';
|
||||
|
||||
let component: NotSupportedFormat;
|
||||
let component: NotSupportedFormatComponent;
|
||||
let service: ContentService;
|
||||
let fixture: ComponentFixture<NotSupportedFormat>;
|
||||
let fixture: ComponentFixture<NotSupportedFormatComponent>;
|
||||
let debug: DebugElement;
|
||||
let element: HTMLElement;
|
||||
let renditionsService: RenditionsService;
|
||||
@@ -60,7 +60,7 @@ describe('Test ng2-alfresco-viewer Not Supported Format View component', () => {
|
||||
MdProgressSpinnerModule
|
||||
],
|
||||
declarations: [
|
||||
NotSupportedFormat,
|
||||
NotSupportedFormatComponent,
|
||||
PdfViewerComponent
|
||||
],
|
||||
providers: [
|
||||
@@ -75,7 +75,7 @@ describe('Test ng2-alfresco-viewer Not Supported Format View component', () => {
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(NotSupportedFormat);
|
||||
fixture = TestBed.createComponent(NotSupportedFormatComponent);
|
||||
service = fixture.debugElement.injector.get(ContentService);
|
||||
debug = fixture.debugElement;
|
||||
element = fixture.nativeElement;
|
||||
|
@@ -26,7 +26,7 @@ const DEFAULT_CONVERSION_ENCODING = 'pdf';
|
||||
templateUrl: './notSupportedFormat.component.html',
|
||||
styleUrls: ['./notSupportedFormat.component.css']
|
||||
})
|
||||
export class NotSupportedFormat implements OnInit {
|
||||
export class NotSupportedFormatComponent implements OnInit {
|
||||
|
||||
@Input()
|
||||
nameFile: string;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!-- Start Pdf Canvas -->
|
||||
<div id="viewer-pdf-container" class="viewer-pdf-container" (keypress)=eventHandler() (window:resize)="onResize($event)">
|
||||
<div id="viewer-pdf-container" class="viewer-pdf-container" (window:resize)="onResize($event)">
|
||||
<div id="viewer-viewerPdf" class="pdfViewer">
|
||||
<div id="loader-container" class="loader-container">
|
||||
<div class="loader-item">
|
||||
|
@@ -15,17 +15,17 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { ComponentFixture, TestBed, async } from '@angular/core/testing';
|
||||
import { RenderingQueueServices } from '../services/rendering-queue.services';
|
||||
import { PdfViewerComponent } from './pdfViewer.component';
|
||||
import { EventMock } from '../assets/event.mock';
|
||||
import { DebugElement } from '@angular/core';
|
||||
import { DebugElement } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import {
|
||||
AlfrescoApiService,
|
||||
AlfrescoAuthenticationService,
|
||||
AlfrescoSettingsService,
|
||||
AlfrescoApiService,
|
||||
CoreModule
|
||||
} from 'ng2-alfresco-core';
|
||||
import { EventMock } from '../assets/event.mock';
|
||||
import { RenderingQueueServices } from '../services/rendering-queue.services';
|
||||
import { PdfViewerComponent } from './pdfViewer.component';
|
||||
|
||||
describe('Test ng2-alfresco-viewer PdfViewer component', () => {
|
||||
|
||||
|
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Component, HostListener, Input } from '@angular/core';
|
||||
import { Component, HostListener, Input, OnChanges } from '@angular/core';
|
||||
import { LogService } from 'ng2-alfresco-core';
|
||||
import { RenderingQueueServices } from '../services/rendering-queue.services';
|
||||
|
||||
@@ -27,7 +27,7 @@ declare let PDFJS: any;
|
||||
styleUrls: ['./pdfViewer.component.css', './pdfViewerHost.component.css'],
|
||||
providers: [RenderingQueueServices]
|
||||
})
|
||||
export class PdfViewerComponent {
|
||||
export class PdfViewerComponent implements OnChanges {
|
||||
|
||||
@Input()
|
||||
urlFile: string;
|
||||
@@ -97,11 +97,11 @@ export class PdfViewerComponent {
|
||||
this.currentPdfDocument.getPage(1).then(() => {
|
||||
this.scalePage('auto');
|
||||
resolve();
|
||||
}, (error) => {
|
||||
}, (error) => {
|
||||
reject(error);
|
||||
});
|
||||
|
||||
}, (error) => {
|
||||
}, (error) => {
|
||||
reject(error);
|
||||
});
|
||||
}
|
||||
@@ -124,7 +124,7 @@ export class PdfViewerComponent {
|
||||
|
||||
window.document.addEventListener('scroll', (event) => {
|
||||
this.watchScroll(event.target);
|
||||
}, true);
|
||||
}, true);
|
||||
|
||||
this.pdfViewer = new PDFJS.PDFViewer({
|
||||
container: documentContainer,
|
||||
|
@@ -15,15 +15,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { ComponentFixture, TestBed, async } from '@angular/core/testing';
|
||||
import { TxtViewerComponent } from './txtViewer.component';
|
||||
import { DebugElement, SimpleChange } from '@angular/core';
|
||||
import { DebugElement, SimpleChange } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import {
|
||||
AlfrescoApiService,
|
||||
AlfrescoAuthenticationService,
|
||||
AlfrescoSettingsService,
|
||||
AlfrescoApiService,
|
||||
CoreModule
|
||||
} from 'ng2-alfresco-core';
|
||||
import { TxtViewerComponent } from './txtViewer.component';
|
||||
|
||||
describe('Test ng2-alfresco-viewer Text View component', () => {
|
||||
|
||||
|
@@ -15,9 +15,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Component, Input } from '@angular/core';
|
||||
import { SimpleChanges } from '@angular/core';
|
||||
import { Http, RequestOptions, Response, ResponseContentType } from '@angular/http';
|
||||
import { Component, Input, OnChanges } from '@angular/core';
|
||||
import { SimpleChanges } from '@angular/core';
|
||||
import { Http, RequestOptions, Response, ResponseContentType } from '@angular/http';
|
||||
import 'rxjs/add/operator/toPromise';
|
||||
|
||||
@Component({
|
||||
@@ -25,7 +25,7 @@ import 'rxjs/add/operator/toPromise';
|
||||
templateUrl: './txtViewer.component.html',
|
||||
styleUrls: ['./txtViewer.component.css']
|
||||
})
|
||||
export class TxtViewerComponent {
|
||||
export class TxtViewerComponent implements OnChanges {
|
||||
|
||||
@Input()
|
||||
urlFile: any;
|
||||
|
@@ -15,23 +15,23 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { ComponentFixture, TestBed, async } from '@angular/core/testing';
|
||||
import { PdfViewerComponent } from './pdfViewer.component';
|
||||
import { TxtViewerComponent } from './txtViewer.component';
|
||||
import { NotSupportedFormat } from './notSupportedFormat.component';
|
||||
import { MediaPlayerComponent } from './mediaPlayer.component';
|
||||
import { ImgViewerComponent } from './imgViewer.component';
|
||||
import { RenderingQueueServices } from '../services/rendering-queue.services';
|
||||
import { ViewerComponent } from './viewer.component';
|
||||
import { EventMock } from '../assets/event.mock';
|
||||
import { DebugElement } from '@angular/core';
|
||||
import { DebugElement } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import {
|
||||
AlfrescoApiService,
|
||||
AlfrescoAuthenticationService,
|
||||
AlfrescoSettingsService,
|
||||
AlfrescoApiService,
|
||||
CoreModule,
|
||||
RenditionsService
|
||||
} from 'ng2-alfresco-core';
|
||||
import { EventMock } from '../assets/event.mock';
|
||||
import { RenderingQueueServices } from '../services/rendering-queue.services';
|
||||
import { ImgViewerComponent } from './imgViewer.component';
|
||||
import { MediaPlayerComponent } from './mediaPlayer.component';
|
||||
import { NotSupportedFormatComponent } from './notSupportedFormat.component';
|
||||
import { PdfViewerComponent } from './pdfViewer.component';
|
||||
import { TxtViewerComponent } from './txtViewer.component';
|
||||
import { ViewerComponent } from './viewer.component';
|
||||
|
||||
declare let jasmine: any;
|
||||
|
||||
@@ -51,7 +51,7 @@ describe('Test ng2-alfresco-viewer ViewerComponent', () => {
|
||||
ViewerComponent,
|
||||
PdfViewerComponent,
|
||||
TxtViewerComponent,
|
||||
NotSupportedFormat,
|
||||
NotSupportedFormatComponent,
|
||||
MediaPlayerComponent,
|
||||
ImgViewerComponent
|
||||
],
|
||||
|
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Component, ElementRef, EventEmitter, HostListener, Inject, Input, Output, TemplateRef } from '@angular/core';
|
||||
import { Component, ElementRef, EventEmitter, HostListener, Inject, Input, OnChanges, OnDestroy, Output, TemplateRef } from '@angular/core';
|
||||
import { DOCUMENT } from '@angular/platform-browser';
|
||||
import { MinimalNodeEntryEntity } from 'alfresco-js-api';
|
||||
import { AlfrescoApiService, LogService } from 'ng2-alfresco-core';
|
||||
@@ -25,7 +25,7 @@ import { AlfrescoApiService, LogService } from 'ng2-alfresco-core';
|
||||
templateUrl: './viewer.component.html',
|
||||
styleUrls: ['./viewer.component.css']
|
||||
})
|
||||
export class ViewerComponent {
|
||||
export class ViewerComponent implements OnDestroy, OnChanges {
|
||||
|
||||
@Input()
|
||||
urlFile: string = '';
|
||||
@@ -169,7 +169,7 @@ export class ViewerComponent {
|
||||
*
|
||||
* @returns {boolean}
|
||||
*/
|
||||
private isImage(): boolean {
|
||||
public isImage(): boolean {
|
||||
return this.isImageExtension() || this.isImageMimeType();
|
||||
}
|
||||
|
||||
@@ -178,7 +178,7 @@ export class ViewerComponent {
|
||||
*
|
||||
* @returns {boolean}
|
||||
*/
|
||||
private isMedia(): boolean {
|
||||
public isMedia(): boolean {
|
||||
return this.isMediaExtension(this.extension) || this.isMediaMimeType();
|
||||
}
|
||||
|
||||
@@ -229,7 +229,7 @@ export class ViewerComponent {
|
||||
*
|
||||
* @returns {boolean}
|
||||
*/
|
||||
private isPdf(): boolean {
|
||||
public isPdf(): boolean {
|
||||
return this.extension === 'pdf' || this.mimeType === 'application/pdf';
|
||||
}
|
||||
|
||||
@@ -238,7 +238,7 @@ export class ViewerComponent {
|
||||
*
|
||||
* @returns {boolean}
|
||||
*/
|
||||
private isText(): boolean {
|
||||
public isText(): boolean {
|
||||
return this.extension === 'txt' || this.mimeType === 'text/txt' || this.mimeType === 'text/plain';
|
||||
}
|
||||
|
||||
|
@@ -16,11 +16,11 @@
|
||||
*/
|
||||
|
||||
import { ElementRef } from '@angular/core';
|
||||
import { CoreModule } from 'ng2-alfresco-core';
|
||||
import { ExtensionViewerDirective } from './extension-viewer.directive';
|
||||
import { ViewerComponent } from '../components/viewer.component';
|
||||
import { getTestBed, TestBed, async } from '@angular/core/testing';
|
||||
import { Injector } from '@angular/core';
|
||||
import { async, getTestBed, TestBed } from '@angular/core/testing';
|
||||
import { CoreModule } from 'ng2-alfresco-core';
|
||||
import { ViewerComponent } from '../components/viewer.component';
|
||||
import { ExtensionViewerDirective } from './extension-viewer.directive';
|
||||
|
||||
export class MockElementRef extends ElementRef {
|
||||
constructor() {
|
||||
|
@@ -1,4 +1,7 @@
|
||||
{
|
||||
"rulesDirectory": [
|
||||
"node_modules/codelyzer"
|
||||
],
|
||||
"rules": {
|
||||
"align": [
|
||||
true,
|
||||
@@ -105,14 +108,50 @@
|
||||
"allow-leading-underscore",
|
||||
"ban-keywords"
|
||||
],
|
||||
"callable-types": true,
|
||||
"import-blacklist": [
|
||||
true,
|
||||
"rxjs"
|
||||
],
|
||||
"import-spacing": true,
|
||||
"interface-over-type-literal": true,
|
||||
"member-access": false,
|
||||
"no-empty-interface": true,
|
||||
"no-string-literal": false,
|
||||
"no-string-throw": true,
|
||||
"prefer-const": false,
|
||||
"typeof-compare": true,
|
||||
"unified-signatures": true,
|
||||
"whitespace": [
|
||||
true,
|
||||
"check-branch",
|
||||
"check-decl",
|
||||
"check-operator",
|
||||
"check-separator",
|
||||
"check-type",
|
||||
"check-module",
|
||||
"check-decl"
|
||||
]
|
||||
"check-type"
|
||||
],
|
||||
"directive-selector": [
|
||||
true,
|
||||
"attribute",
|
||||
"app",
|
||||
"camelCase"
|
||||
],
|
||||
"component-selector": [
|
||||
true,
|
||||
"element",
|
||||
"app",
|
||||
"kebab-case"
|
||||
],
|
||||
"ordered-imports": true,
|
||||
"use-input-property-decorator": true,
|
||||
"use-output-property-decorator": true,
|
||||
"use-host-property-decorator": true,
|
||||
"use-life-cycle-interface": true,
|
||||
"use-pipe-transform-interface": true,
|
||||
"component-class-suffix": true,
|
||||
"directive-class-suffix": true,
|
||||
"no-access-missing-member": true,
|
||||
"templates-use-public": true,
|
||||
"invoke-injectable": true
|
||||
}
|
||||
}
|
||||
|
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
||||
import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';
|
||||
import { AlfrescoApiService, LogService } from 'ng2-alfresco-core';
|
||||
import { ObjectDataTableAdapter } from 'ng2-alfresco-datatable';
|
||||
|
||||
@@ -52,7 +52,7 @@ import { ObjectDataTableAdapter } from 'ng2-alfresco-datatable';
|
||||
</div>
|
||||
`
|
||||
})
|
||||
export class WebscriptComponent {
|
||||
export class WebscriptComponent implements OnChanges {
|
||||
|
||||
@Input()
|
||||
scriptPath: string;
|
||||
@@ -101,7 +101,7 @@ export class WebscriptComponent {
|
||||
this.onSuccess.emit(this.data);
|
||||
|
||||
resolve();
|
||||
}, (error) => {
|
||||
}, (error) => {
|
||||
this.logService.log('Error' + error);
|
||||
reject();
|
||||
});
|
||||
|
@@ -108,15 +108,50 @@
|
||||
"allow-leading-underscore",
|
||||
"ban-keywords"
|
||||
],
|
||||
"callable-types": true,
|
||||
"import-blacklist": [
|
||||
true,
|
||||
"rxjs"
|
||||
],
|
||||
"import-spacing": true,
|
||||
"interface-over-type-literal": true,
|
||||
"member-access": false,
|
||||
"no-empty-interface": true,
|
||||
"no-string-literal": false,
|
||||
"no-string-throw": true,
|
||||
"prefer-const": false,
|
||||
"typeof-compare": true,
|
||||
"unified-signatures": true,
|
||||
"whitespace": [
|
||||
true,
|
||||
"check-branch",
|
||||
"check-decl",
|
||||
"check-operator",
|
||||
"check-separator",
|
||||
"check-type",
|
||||
"check-module",
|
||||
"check-decl"
|
||||
"check-type"
|
||||
],
|
||||
"ordered-imports": true
|
||||
"directive-selector": [
|
||||
true,
|
||||
"attribute",
|
||||
"app",
|
||||
"camelCase"
|
||||
],
|
||||
"component-selector": [
|
||||
true,
|
||||
"element",
|
||||
"app",
|
||||
"kebab-case"
|
||||
],
|
||||
"ordered-imports": true,
|
||||
"use-input-property-decorator": true,
|
||||
"use-output-property-decorator": true,
|
||||
"use-host-property-decorator": true,
|
||||
"use-life-cycle-interface": true,
|
||||
"use-pipe-transform-interface": true,
|
||||
"component-class-suffix": true,
|
||||
"directive-class-suffix": true,
|
||||
"no-access-missing-member": true,
|
||||
"templates-use-public": true,
|
||||
"invoke-injectable": true
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user