[ADF-5146] Upgrade to Angular 10 (#5834)

* remove useless module

* upgrade to angular 8

* upgrade material to v8

* upgrade adf libs

* migrate demo shell to v8

* upgrade to angular 9

* upgrade material to v9

* remove hammer

* upgrade nx

* upgrade datetime picker

* upgrade flex layout

* update core api

* remove entry components

* code fixes

* upgrade testbed usage

* code fixes

* remove unnecessary core-js from tests

* upgrade CLI

* ts config fixes

* fix builds

* fix testing config

* compile fixes

* fix demo shell dev setup

* fix core tests

* fix card view import

* upgrade nx

* disable smart builds for now

* remove fdescribe

* restore smart builds

* fix issues

* unify tsconfigs and fix newly found issues

* fix configuration and cleanup package scripts

* improved production build from the same config

* use ADF libs directly instead of node_modules

* disable smart build

* single app configuration (angular)

* fix core build

* fix build scripts

* lint fixes

* fix linting setup

* fix linting rules

* various fixes

* disable affected libs for unit tests

* cleanup insights package.json

* simplify smart-build

* fix content tests

* fix tests

* test fixes

* fix tests

* fix test

* fix tests

* disable AppExtensionsModule (monaco example)

* remove monaco extension module

* upgrade bundle check rules

* fix insights tests and karma config

* fix protractor config

* e2e workaround

* upgrade puppeteer and split linting and build

* reusable resources config

* update protractor config

* fix after rebase

* fix protractor config

* fix e2e tsconfig

* update e2e setup

* Save demoshell artifact on S3 and remove travis cache

* Push the libs on S3 and fetch before releasing it

* Add deps

* Add dependencies among libs and run only affected unit test and build

* fix the travis stage name

* fix after renaming dev to demoshell

* force the order of the projects

* remove unused dependencies

* fix content e2e script

* exit codes fix

* add extra exit codes to core e2e

* postinstall hook and package cleanup

* cleanup packages

* remove deprecated code and dependency on router

* improve bundle analyzer script

* minor code fixes

* update spec

* fix code after rebase

* upgrade protractor after rebase

* fix e2e mapping lib

* Update tsconfig.e2e.json

* update e2e tsconfig

* fix angular config

* fix protractor runs

* cache dist folder for libs

* update material selectors for dropdowns

* selector fixes

* remove duplicated e2e that have unit tests already

* fix login selector

* fix e2e

* fix test

* fix import issues

* fix selector

* cleanup old monaco extension files

* cleanup demo shell login

* add protractor max retries

* disable customisations of protractor

* fix login validation

* fix after rebase

* fix after rebase, disable latest versions of libs

* Hide the report tab and rollback the localstorage

* rename protractor config back to js

* restore lint as part of build

* cleanup code

* do not copy anything to node_modules on dist test

* fix unit tests

* config fixes

* fix code

* fix code after rebase

* fix tests

* remove existing words from spellcheck

* remove useless directive decorators

* update package.json after rebase

* add js-api back

* code fixes

* add missing export

* update configs

* fix code

* try fix the sso login test

* fix

* remove puppeteer unit

* fix e2e script

* fix

* make provider easy

* fix routes module before upgrade

* fix unit tests

* upgrade angular cli

* upgrade to angular 10

Co-authored-by: maurizio vitale <maurizio.vitale@alfresco.com>
Co-authored-by: Eugenio Romano <eugenio.romano@alfresco.com>
Co-authored-by: Eugenio Romano <eromano@users.noreply.github.com>
This commit is contained in:
Denys Vuika
2020-07-03 13:01:05 +01:00
committed by GitHub
parent 2f0a585273
commit cd2b489100
579 changed files with 15689 additions and 10745 deletions

View File

@@ -1,52 +1,44 @@
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
process.env.CHROME_BIN = require('puppeteer').executablePath();
module.exports = function (config) {
config.set({
basePath: '',
basePath: '../../',
files: [
{pattern: '../../node_modules/core-js/client/core.js', included: true, watched: false},
{pattern: '../../node_modules/tslib/tslib.js', included: true, watched: false},
{pattern: '../../node_modules/hammerjs/hammer.min.js', included: true, watched: false},
{pattern: '../../node_modules/hammerjs/hammer.min.js.map', included: false, watched: false},
{pattern: 'node_modules/tslib/tslib.js', included: true, watched: false},
// pdf-js
{pattern: '../../node_modules/pdfjs-dist/build/pdf.js', included: true, watched: false},
{pattern: '../../node_modules/pdfjs-dist/build/pdf.worker.js', included: true, watched: false},
{pattern: '../../node_modules/pdfjs-dist/web/pdf_viewer.js', included: true, watched: false},
{pattern: 'node_modules/pdfjs-dist/build/pdf.js', included: true, watched: false},
{pattern: 'node_modules/pdfjs-dist/build/pdf.worker.js', included: true, watched: false},
{pattern: 'node_modules/pdfjs-dist/web/pdf_viewer.js', included: true, watched: false},
{
pattern: '../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css',
pattern: 'node_modules/@angular/material/prebuilt-themes/indigo-pink.css',
included: true,
watched: false
},
{pattern: '../../node_modules/chart.js/dist/Chart.js', included: true, watched: false},
{pattern: '../../node_modules/raphael/raphael.min.js', included: true, watched: false},
{pattern: 'node_modules/chart.js/dist/Chart.js', included: true, watched: false},
{pattern: 'node_modules/raphael/raphael.min.js', included: true, watched: false},
{
pattern: './node_modules/ng2-charts/bundles/ng2-charts.umd.js',
pattern: 'node_modules/ng2-charts/bundles/ng2-charts.umd.js',
included: false,
served: true,
watched: false
},
{pattern: '../../node_modules/moment/min/moment.min.js', included: true, watched: false},
{pattern: './i18n/**/en.json', included: false, served: true, watched: false},
{pattern: './**/*.ts', included: false, served: true, watched: false},
{pattern: './app.config.json', included: false, served: true, watched: false},
{pattern: 'node_modules/moment/min/moment.min.js', included: true, watched: false},
{pattern: 'lib/insights/src/lib/i18n/**/en.json', included: false, served: true, watched: false},
{pattern: 'lib/insights/**/*.ts', included: false, served: true, watched: false},
{pattern: 'lib/config/app.config.json', included: false, served: true, watched: false},
],
frameworks: ['jasmine-ajax', 'jasmine', '@angular-devkit/build-angular'],
proxies: {
'/base/assets/' :'/base/assets/',
'/assets/adf-insights/i18n/en.json': '/base/src/lib/i18n/en.json',
'/app.config.json': '/base/app.config.json'
'/base/assets/' :'/base/lib/insights/src/lib/assets/',
'/assets/adf-insights/i18n/en.json': '/base/lib/insights/src/lib/i18n/en.json',
'/app.config.json': '/base/lib/config/app.config.json'
},
plugins: [
@@ -62,18 +54,11 @@ module.exports = function (config) {
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
coverageIstanbulReporter: {
dir: './lib/coverage/insights/',
dir: require('path').join(__dirname, '../coverage/insights'),
reports: ['html', 'lcovonly'],
fixWebpackSourcePaths: true
},
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,
colors: true,
autoWatch: false,
browserDisconnectTimeout: 200000,
browserNoActivityTimeout: 2400000,
captureTimeout: 1200000,
@@ -92,6 +77,9 @@ module.exports = function (config) {
reporters: ['mocha', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
});

View File

@@ -5,21 +5,11 @@
"entryFile": "src/public-api.ts",
"flatModuleFile": "adf-insights",
"umdModuleIds": {
"@alfresco/js-api": "@alfresco/js-api",
"minimatch": "minimatch",
"@angular/platform-browser/animations": "@angular/platform-browser/animations",
"@angular/material": "@angular/material",
"@angular/flex-layout": "@angular/flex-layout",
"@alfresco/adf-core": "@alfresco/adf-core",
"ng2-charts": "ng2-charts",
"@angular/material-moment-adapter": "@angular/material-moment-adapter",
"@angular/animations": "@angular/animations",
"@angular/cdk/platform": "@angular/cdk/platform",
"@angular/material/core": "@angular/material/core",
"raphael": "raphael",
"moment": "moment",
"moment-es6": "moment-es6",
"moment/src/moment": "moment/src/moment",
"@ngx-translate/core": "@ngx-translate/core"
}
}

View File

@@ -12,30 +12,17 @@
"url": "https://github.com/Alfresco/alfresco-ng2-components/issues"
},
"peerDependencies": {
"@angular/animations": ">=7.0.3",
"@angular/cdk": ">=7.0.3",
"@angular/common": ">=7.0.3",
"@angular/compiler": ">=7.0.3",
"@angular/core": ">=7.0.3",
"@angular/flex-layout": ">=7.0.0-beta.19",
"@angular/forms": ">=7.0.3",
"@angular/material": ">=7.0.3",
"@angular/material-moment-adapter": ">=7.0.3",
"@angular/platform-browser": ">=7.0.3",
"@angular/platform-browser-dynamic": ">=7.0.3",
"@angular/router": ">=7.0.3",
"@alfresco/js-api": "3.9.0",
"rxjs": ">=6.2.2",
"@alfresco/adf-core": "3.9.0",
"@ngx-translate/core": ">=11.0.0",
"chart.js": ">=2.5.0",
"core-js": ">=2.5.4",
"hammerjs": ">=2.0.8",
"@angular/common": ">=9.1.9",
"@angular/core": ">=9.1.9",
"@angular/flex-layout": ">=9.0.0-beta.31",
"@angular/forms": ">=9.1.9",
"@angular/material": ">=9.2.4",
"@alfresco/adf-core": ">=3.8.0",
"@ngx-translate/core": ">=12.1.2",
"chart.js": ">=2.9.3",
"moment": ">=2.22.2",
"ng2-charts": ">=1.6.0",
"raphael": ">=2.2.7",
"reflect-metadata": ">=0.1.10",
"zone.js": ">=0.8.26"
"ng2-charts": ">=2.3.2",
"raphael": ">=2.2.7"
},
"keywords": [
"analytics",

View File

@@ -45,7 +45,7 @@ describe('AnalyticsReportParametersComponent', () => {
beforeEach(() => {
fixture = TestBed.createComponent(AnalyticsReportParametersComponent);
service = TestBed.get(AnalyticsService);
service = TestBed.inject(AnalyticsService);
component = fixture.componentInstance;
element = fixture.nativeElement;
spyOn(component, 'isFormValid').and.callFake(() => {
@@ -119,20 +119,22 @@ describe('AnalyticsReportParametersComponent', () => {
});
});
it('Should render a duration component when the definition parameter type is \'duration\' ', (done) => {
it('Should render a duration component when the definition parameter type is "duration"', (done) => {
component.successReportParams.subscribe(() => {
fixture.detectChanges();
const numberElement: any = element.querySelector('#duration');
expect(numberElement.value).toEqual('0');
fixture.whenStable().then(() => {
const numberElement: any = element.querySelector('#duration');
expect(numberElement.value).toEqual('0');
const dropDown: any = element.querySelector('#select-duration');
expect(dropDown).toBeDefined();
expect(dropDown.length).toEqual(4);
expect(dropDown[0].innerHTML).toEqual('Seconds');
expect(dropDown[1].innerHTML).toEqual('Minutes');
expect(dropDown[2].innerHTML).toEqual('Hours');
expect(dropDown[3].innerHTML).toEqual('Days');
done();
const dropDown: any = element.querySelector('#select-duration');
expect(dropDown).toBeDefined();
expect(dropDown.length).toEqual(4);
expect(dropDown[0].innerHTML).toEqual('Seconds');
expect(dropDown[1].innerHTML).toEqual('Minutes');
expect(dropDown[2].innerHTML).toEqual('Hours');
expect(dropDown[3].innerHTML).toEqual('Days');
done();
});
});
const reportId = 1;

View File

@@ -30,7 +30,7 @@ import {
ViewEncapsulation
} from '@angular/core';
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
import { MatDialog } from '@angular/material';
import { MatDialog } from '@angular/material/dialog';
import moment from 'moment-es6';
import { ParameterValueModel } from '../../diagram/models/report/parameter-value.model';
import { ReportParameterDetailsModel } from '../../diagram/models/report/report-parameter-details.model';

View File

@@ -51,7 +51,7 @@ export class AnalyticsComponent implements OnChanges {
@Output()
reportDeleted = new EventEmitter();
@ViewChild('analyticsGenerator')
@ViewChild('analyticsGenerator', { static: true })
analyticsGenerator: AnalyticsGeneratorComponent;
reportParamQuery: ReportQuery;

View File

@@ -20,7 +20,7 @@
import { MOMENT_DATE_FORMATS, MomentDateAdapter, UserPreferencesService, UserPreferenceValues } from '@alfresco/adf-core';
import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation, OnDestroy } from '@angular/core';
import { AbstractControl, FormControl, FormGroup, Validators } from '@angular/forms';
import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material';
import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
import moment from 'moment-es6';
import { Moment } from 'moment';
import { Subject } from 'rxjs';

View File

@@ -15,8 +15,10 @@
* limitations under the License.
*/
import { EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';
import { EventEmitter, Input, OnChanges, Output, SimpleChanges, Directive } from '@angular/core';
@Directive()
// tslint:disable-next-line: directive-class-suffix
export class WidgetComponent implements OnChanges {
/** field. */

View File

@@ -36,7 +36,7 @@ describe('AnalyticsService', () => {
});
beforeEach(() => {
service = TestBed.get(AnalyticsService);
service = TestBed.inject(AnalyticsService);
});
beforeEach(() => {

View File

@@ -79,7 +79,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-user-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake User task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake User task');
const iconTask: any = element.querySelector('diagram-user-task > diagram-icon-user-task > raphael-icon-user');
expect(iconTask).not.toBeNull();
@@ -104,7 +104,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-manual-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Manual task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Manual task');
const iconTask: any = element.querySelector('diagram-manual-task > diagram-icon-manual-task > raphael-icon-manual');
expect(iconTask).not.toBeNull();
@@ -123,13 +123,11 @@ describe('Diagrams activities', () => {
component.success.subscribe((res) => {
fixture.detectChanges();
fixture.whenStable().then(() => {
expect(res).not.toBeNull();
const task: any = element.querySelector('diagram-service-task > diagram-task > raphael-rect');
const task = element.querySelector('diagram-service-task > diagram-task > raphael-rect');
expect(task).not.toBeNull();
const taskText: any = element.querySelector('diagram-service-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Service task');
const taskText = element.querySelector('diagram-service-task > diagram-task > raphael-multiline-text');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Service task');
const iconTask: any = element.querySelector('diagram-service-task > diagram-icon-service-task > raphael-icon-service');
expect(iconTask).not.toBeNull();
@@ -154,7 +152,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-camel-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Camel task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Camel task');
const iconTask: any = element.querySelector('diagram-camel-task > diagram-icon-camel-task > raphael-icon-camel');
expect(iconTask).not.toBeNull();
@@ -179,7 +177,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-mule-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Mule task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Mule task');
const iconTask: any = element.querySelector('diagram-mule-task > diagram-icon-mule-task > raphael-icon-mule');
expect(iconTask).not.toBeNull();
@@ -200,7 +198,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('adf-diagram-publish-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Alfresco Publish task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Alfresco Publish task');
const iconTask: any = element.querySelector('adf-diagram-publish-task > diagram-icon-alfresco-publish-task >' +
' raphael-icon-alfresco-publish');
@@ -226,7 +224,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-google-drive-publish-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Google Drive Publish task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Google Drive Publish task');
const iconTask: any = element.querySelector('diagram-google-drive-publish-task >' +
' diagram-icon-google-drive-publish-task > raphael-icon-google-drive-publish');
@@ -252,7 +250,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-rest-call-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Rest Call task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Rest Call task');
const iconTask: any = element.querySelector('diagram-rest-call-task > diagram-icon-rest-call-task >' +
' raphael-icon-rest-call');
@@ -278,7 +276,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-box-publish-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Box Publish task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Box Publish task');
const iconTask: any = element.querySelector('diagram-box-publish-task >' +
' diagram-icon-box-publish-task > raphael-icon-box-publish');
@@ -304,7 +302,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-receive-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Receive task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Receive task');
const iconTask: any = element.querySelector('diagram-receive-task > diagram-icon-receive-task > raphael-icon-receive');
expect(iconTask).not.toBeNull();
@@ -329,7 +327,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-script-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Script task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Script task');
const iconTask: any = element.querySelector('diagram-script-task > diagram-icon-script-task > raphael-icon-script');
expect(iconTask).not.toBeNull();
@@ -354,7 +352,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-business-rule-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake BusinessRule task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake BusinessRule task');
const iconTask: any = element.querySelector('diagram-business-rule-task > diagram-icon-business-rule-task > raphael-icon-business-rule');
expect(iconTask).not.toBeNull();
@@ -382,7 +380,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-user-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake User task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake User task');
const iconTask: any = element.querySelector('diagram-user-task > diagram-icon-user-task > raphael-icon-user');
expect(iconTask).not.toBeNull();
@@ -407,7 +405,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-user-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake User task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake User task');
const iconTask: any = element.querySelector('diagram-user-task > diagram-icon-user-task > raphael-icon-user');
expect(iconTask).not.toBeNull();
@@ -432,7 +430,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-user-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake User task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake User task');
const iconTask: any = element.querySelector('diagram-user-task > diagram-icon-user-task > raphael-icon-user');
expect(iconTask).not.toBeNull();
@@ -457,7 +455,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-manual-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Manual task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Manual task');
const iconTask: any = element.querySelector('diagram-manual-task > diagram-icon-manual-task > raphael-icon-manual');
expect(iconTask).not.toBeNull();
@@ -482,7 +480,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-manual-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Manual task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Manual task');
const iconTask: any = element.querySelector('diagram-manual-task > diagram-icon-manual-task > raphael-icon-manual');
expect(iconTask).not.toBeNull();
@@ -507,7 +505,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-manual-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Manual task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Manual task');
const iconTask: any = element.querySelector('diagram-manual-task > diagram-icon-manual-task > raphael-icon-manual');
expect(iconTask).not.toBeNull();
@@ -532,7 +530,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-service-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Service task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Service task');
const iconTask: any = element.querySelector('diagram-service-task > diagram-icon-service-task > raphael-icon-service');
expect(iconTask).not.toBeNull();
@@ -557,7 +555,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-service-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Service task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Service task');
const iconTask: any = element.querySelector('diagram-service-task > diagram-icon-service-task > raphael-icon-service');
expect(iconTask).not.toBeNull();
@@ -582,7 +580,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-service-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Service task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Service task');
const iconTask: any = element.querySelector('diagram-service-task > diagram-icon-service-task > raphael-icon-service');
expect(iconTask).not.toBeNull();
@@ -607,7 +605,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-camel-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Camel task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Camel task');
const iconTask: any = element.querySelector('diagram-camel-task > diagram-icon-camel-task > raphael-icon-camel');
expect(iconTask).not.toBeNull();
@@ -632,7 +630,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-camel-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Camel task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Camel task');
const iconTask: any = element.querySelector('diagram-camel-task > diagram-icon-camel-task > raphael-icon-camel');
expect(iconTask).not.toBeNull();
@@ -657,7 +655,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-camel-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Camel task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Camel task');
const iconTask: any = element.querySelector('diagram-camel-task > diagram-icon-camel-task > raphael-icon-camel');
expect(iconTask).not.toBeNull();
@@ -682,7 +680,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-mule-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Mule task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Mule task');
const iconTask: any = element.querySelector('diagram-mule-task > diagram-icon-mule-task > raphael-icon-mule');
expect(iconTask).not.toBeNull();
@@ -703,7 +701,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-mule-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Mule task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Mule task');
const iconTask: any = element.querySelector('diagram-mule-task > diagram-icon-mule-task > raphael-icon-mule');
expect(iconTask).not.toBeNull();
@@ -724,7 +722,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-mule-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Mule task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Mule task');
const iconTask: any = element.querySelector('diagram-mule-task > diagram-icon-mule-task > raphael-icon-mule');
expect(iconTask).not.toBeNull();
@@ -745,7 +743,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('adf-diagram-publish-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Alfresco Publish task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Alfresco Publish task');
const iconTask: any = element.querySelector('adf-diagram-publish-task > diagram-icon-alfresco-publish-task >' +
' raphael-icon-alfresco-publish');
@@ -771,7 +769,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('adf-diagram-publish-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Alfresco Publish task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Alfresco Publish task');
const iconTask: any = element.querySelector('adf-diagram-publish-task > diagram-icon-alfresco-publish-task >' +
' raphael-icon-alfresco-publish');
@@ -797,7 +795,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('adf-diagram-publish-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Alfresco Publish task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Alfresco Publish task');
const iconTask: any = element.querySelector('adf-diagram-publish-task > diagram-icon-alfresco-publish-task >' +
' raphael-icon-alfresco-publish');
@@ -823,7 +821,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-google-drive-publish-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Google Drive Publish task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Google Drive Publish task');
const iconTask: any = element.querySelector('diagram-google-drive-publish-task >' +
' diagram-icon-google-drive-publish-task > raphael-icon-google-drive-publish');
@@ -849,7 +847,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-google-drive-publish-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Google Drive Publish task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Google Drive Publish task');
const iconTask: any = element.querySelector('diagram-google-drive-publish-task >' +
' diagram-icon-google-drive-publish-task > raphael-icon-google-drive-publish');
@@ -875,7 +873,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-google-drive-publish-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Google Drive Publish task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Google Drive Publish task');
const iconTask: any = element.querySelector('diagram-google-drive-publish-task >' +
' diagram-icon-google-drive-publish-task > raphael-icon-google-drive-publish');
@@ -901,7 +899,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-rest-call-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Rest Call task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Rest Call task');
const iconTask: any = element.querySelector('diagram-rest-call-task > diagram-icon-rest-call-task >' +
' raphael-icon-rest-call');
@@ -927,7 +925,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-rest-call-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Rest Call task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Rest Call task');
const iconTask: any = element.querySelector('diagram-rest-call-task > diagram-icon-rest-call-task >' +
' raphael-icon-rest-call');
@@ -953,7 +951,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-rest-call-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Rest Call task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Rest Call task');
const iconTask: any = element.querySelector('diagram-rest-call-task > diagram-icon-rest-call-task >' +
' raphael-icon-rest-call');
@@ -979,7 +977,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-box-publish-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Box Publish task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Box Publish task');
const iconTask: any = element.querySelector('diagram-box-publish-task >' +
' diagram-icon-box-publish-task > raphael-icon-box-publish');
@@ -1005,7 +1003,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-box-publish-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Box Publish task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Box Publish task');
const iconTask: any = element.querySelector('diagram-box-publish-task >' +
' diagram-icon-box-publish-task > raphael-icon-box-publish');
@@ -1031,7 +1029,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-box-publish-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Box Publish task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Box Publish task');
const iconTask: any = element.querySelector('diagram-box-publish-task >' +
' diagram-icon-box-publish-task > raphael-icon-box-publish');
@@ -1057,7 +1055,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-receive-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Receive task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Receive task');
const iconTask: any = element.querySelector('diagram-receive-task > diagram-icon-receive-task > raphael-icon-receive');
expect(iconTask).not.toBeNull();
@@ -1082,7 +1080,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-receive-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Receive task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Receive task');
const iconTask: any = element.querySelector('diagram-receive-task > diagram-icon-receive-task > raphael-icon-receive');
expect(iconTask).not.toBeNull();
@@ -1107,7 +1105,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-receive-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Receive task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Receive task');
const iconTask: any = element.querySelector('diagram-receive-task > diagram-icon-receive-task > raphael-icon-receive');
expect(iconTask).not.toBeNull();
@@ -1132,7 +1130,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-script-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Script task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Script task');
const iconTask: any = element.querySelector('diagram-script-task > diagram-icon-script-task > raphael-icon-script');
expect(iconTask).not.toBeNull();
@@ -1157,7 +1155,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-script-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Script task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Script task');
const iconTask: any = element.querySelector('diagram-script-task > diagram-icon-script-task > raphael-icon-script');
expect(iconTask).not.toBeNull();
@@ -1182,7 +1180,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-script-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake Script task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake Script task');
const iconTask: any = element.querySelector('diagram-script-task > diagram-icon-script-task > raphael-icon-script');
expect(iconTask).not.toBeNull();
@@ -1207,7 +1205,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-business-rule-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake BusinessRule task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake BusinessRule task');
const iconTask: any = element.querySelector('diagram-business-rule-task > diagram-icon-business-rule-task > raphael-icon-business-rule');
expect(iconTask).not.toBeNull();
@@ -1232,7 +1230,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-business-rule-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake BusinessRule task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake BusinessRule task');
const iconTask: any = element.querySelector('diagram-business-rule-task > diagram-icon-business-rule-task > raphael-icon-business-rule');
expect(iconTask).not.toBeNull();
@@ -1257,7 +1255,7 @@ describe('Diagrams activities', () => {
const taskText: any = element.querySelector('diagram-business-rule-task > diagram-task > raphael-multiline-text');
expect(taskText).not.toBeNull();
expect(taskText.attributes[1].value).toEqual('Fake BusinessRule task');
expect(taskText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Fake BusinessRule task');
const iconTask: any = element.querySelector('diagram-business-rule-task > diagram-icon-business-rule-task > raphael-icon-business-rule');
expect(iconTask).not.toBeNull();

View File

@@ -78,7 +78,7 @@ describe('Diagrams swim', () => {
const shapeText: any = element.querySelector('diagram-pool > raphael-text');
expect(shapeText).not.toBeNull();
expect(shapeText.attributes[2].value).toEqual('Activiti');
expect(shapeText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Activiti');
});
});
component.ngOnChanges();
@@ -99,7 +99,7 @@ describe('Diagrams swim', () => {
const shapeText: any = element.querySelector('diagram-lanes > div > div > diagram-lane > raphael-text');
expect(shapeText).not.toBeNull();
expect(shapeText.attributes[2].value).toEqual('Backend');
expect(shapeText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Backend');
});
});
component.ngOnChanges();
@@ -120,7 +120,7 @@ describe('Diagrams swim', () => {
const shapeText: any = element.querySelector('diagram-pool > raphael-text');
expect(shapeText).not.toBeNull();
expect(shapeText.attributes[2].value).toEqual('Activiti');
expect(shapeText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Activiti');
});
});
component.ngOnChanges();
@@ -141,7 +141,7 @@ describe('Diagrams swim', () => {
const shapeText: any = element.querySelector('diagram-lanes > div > div > diagram-lane > raphael-text');
expect(shapeText).not.toBeNull();
expect(shapeText.attributes[2].value).toEqual('Backend');
expect(shapeText.attributes.getNamedItem('ng-reflect-text').value).toEqual('Backend');
});
});
component.ngOnChanges();

View File

@@ -34,7 +34,7 @@ export class DiagramTooltipComponent implements AfterViewInit, OnDestroy {
private boundMouseEnterHandler: EventListenerObject;
private boundMouseLeaveAndScrollHandler: EventListenerObject;
@ViewChild('tooltipContent') tooltipContent: ElementRef;
@ViewChild('tooltipContent', { static: true }) tooltipContent: ElementRef;
@Input()
data: any;

View File

@@ -35,10 +35,10 @@ describe('DiagramsService', () => {
});
beforeEach(() => {
const appConfig: AppConfigService = TestBed.get(AppConfigService);
const appConfig: AppConfigService = TestBed.inject(AppConfigService);
appConfig.config.ecmHost = 'http://localhost:9876/ecm';
service = TestBed.get(DiagramsService);
service = TestBed.inject(DiagramsService);
});
beforeEach(() => {

View File

@@ -41,7 +41,7 @@ import { MaterialModule } from './material.module';
]
})
export class InsightsModule {
static forRoot(): ModuleWithProviders {
static forRoot(): ModuleWithProviders<InsightsModule> {
return {
ngModule: InsightsModule,
providers: [
@@ -57,7 +57,7 @@ export class InsightsModule {
};
}
static forChild(): ModuleWithProviders {
static forChild(): ModuleWithProviders<InsightsModule> {
return {
ngModule: InsightsModule
};

View File

@@ -16,28 +16,42 @@
*/
import { NgModule } from '@angular/core';
import {
MatAutocompleteModule, MatButtonModule, MatCardModule, MatCheckboxModule,
MatChipsModule, MatDatepickerModule, MatDialogModule, MatGridListModule, MatIconModule,
MatInputModule, MatListModule, MatNativeDateModule, MatOptionModule, MatProgressSpinnerModule, MatRadioModule,
MatRippleModule, MatSelectModule, MatSlideToggleModule, MatTableModule, MatTabsModule,
MatTooltipModule, MatMenuModule,
MAT_LABEL_GLOBAL_OPTIONS
} from '@angular/material';
import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatChipsModule } from '@angular/material/chips';
import { MatNativeDateModule, MatOptionModule, MatRippleModule, MAT_LABEL_GLOBAL_OPTIONS } from '@angular/material/core';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatDialogModule } from '@angular/material/dialog';
import { MatGridListModule } from '@angular/material/grid-list';
import { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input';
import { MatListModule } from '@angular/material/list';
import { MatMenuModule } from '@angular/material/menu';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { MatRadioModule } from '@angular/material/radio';
import { MatSelectModule } from '@angular/material/select';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatTableModule } from '@angular/material/table';
import { MatTabsModule } from '@angular/material/tabs';
import { MatTooltipModule } from '@angular/material/tooltip';
export function modules() {
return [
@NgModule({
imports: [
MatAutocompleteModule, MatButtonModule, MatCardModule, MatDialogModule,
MatCheckboxModule, MatDatepickerModule, MatGridListModule, MatIconModule, MatInputModule,
MatListModule, MatOptionModule, MatRadioModule, MatSelectModule, MatSlideToggleModule, MatTableModule,
MatTabsModule, MatProgressSpinnerModule, MatNativeDateModule, MatRippleModule, MatTooltipModule,
MatChipsModule, MatMenuModule
];
}
@NgModule({
imports: modules(),
exports: modules(),
],
exports: [
MatAutocompleteModule, MatButtonModule, MatCardModule, MatDialogModule,
MatCheckboxModule, MatDatepickerModule, MatGridListModule, MatIconModule, MatInputModule,
MatListModule, MatOptionModule, MatRadioModule, MatSelectModule, MatSlideToggleModule, MatTableModule,
MatTabsModule, MatProgressSpinnerModule, MatNativeDateModule, MatRippleModule, MatTooltipModule,
MatChipsModule, MatMenuModule
],
providers: [
{ provide: MAT_LABEL_GLOBAL_OPTIONS, useValue: { float: 'never' }}
]

View File

@@ -17,7 +17,6 @@
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
import 'core-js/es7/reflect';
import 'zone.js/dist/zone';
import 'zone.js/dist/zone-testing';
import { getTestBed } from '@angular/core/testing';

View File

@@ -2,6 +2,13 @@
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../dist/insights/",
"baseUrl": "src"
"baseUrl": "src",
"types": [],
"paths": {
"@alfresco/adf-extensions": ["../../dist/extensions"],
"@alfresco/adf-extensions/*": ["../../dist/extensions/*"],
"@alfresco/adf-core": ["../../dist/core"],
"@alfresco/adf-core/*": ["../../dist/core/*"]
}
}
}

View File

@@ -0,0 +1,6 @@
{
"extends": "./tsconfig.lib.json",
"angularCompilerOptions": {
"enableIvy": false
}
}