;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ imports: [
+ RouterTestingModule,
+ AdfModule
+ ],
+ declarations: [ StartProcessComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(StartProcessComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/integration/base_ver_2_app/src/app/start-process/start-process.component.ts b/integration/base_ver_2_app/src/app/start-process/start-process.component.ts
new file mode 100644
index 0000000000..6c590d690d
--- /dev/null
+++ b/integration/base_ver_2_app/src/app/start-process/start-process.component.ts
@@ -0,0 +1,34 @@
+import { Component, OnInit } from '@angular/core';
+import { ActivatedRoute, Router } from '@angular/router';
+import { ProcessInstance } from '@alfresco/adf-process-services';
+
+@Component({
+ selector: 'app-start-process',
+ templateUrl: './start-process.component.html',
+ styleUrls: ['./start-process.component.scss']
+})
+export class StartProcessComponent implements OnInit {
+
+ appId: string = null;
+
+ constructor(private router: Router,
+ private route: ActivatedRoute) { }
+
+ ngOnInit() {
+ this.route.params.subscribe(params => {
+ if (params.appId && params.appId !== '0') {
+ this.appId = params.appId;
+ } else {
+ this.router.navigate(['/apps']);
+ }
+ });
+ }
+
+ onProcessStarted(process: ProcessInstance) {
+ this.router.navigate(['/apps', this.appId || 0, 'tasks']);
+ }
+
+ onCancelStartProcess() {
+ this.router.navigate(['/apps', this.appId || 0, 'tasks']);
+ }
+}
diff --git a/integration/base_ver_2_app/src/app/stencils.module.ts b/integration/base_ver_2_app/src/app/stencils.module.ts
new file mode 100644
index 0000000000..bb70ad99a0
--- /dev/null
+++ b/integration/base_ver_2_app/src/app/stencils.module.ts
@@ -0,0 +1,44 @@
+/* tslint:disable */
+
+import { Component, NgModule } from '@angular/core';
+import { WidgetComponent } from '@alfresco/adf-core';
+
+@Component({
+ selector: 'custom-editor',
+ template: `
+ Look, I'm a custom editor!
+ `
+})
+export class CustomEditorComponent extends WidgetComponent {
+
+ constructor() {
+ super();
+ }
+}
+
+@Component({
+ selector: 'custom-stencil-01',
+ template: `ADF version of custom Activiti stencil
`
+})
+export class CustomStencil01 extends WidgetComponent {
+
+ constructor() {
+ super();
+ }
+}
+
+@NgModule({
+ declarations: [
+ CustomEditorComponent,
+ CustomStencil01
+ ],
+ exports: [
+ CustomEditorComponent,
+ CustomStencil01
+ ],
+ entryComponents: [
+ CustomEditorComponent,
+ CustomStencil01
+ ]
+})
+export class StencilsModule {}
diff --git a/integration/base_ver_2_app/src/app/task-details/task-details.component.css b/integration/base_ver_2_app/src/app/task-details/task-details.component.css
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/integration/base_ver_2_app/src/app/task-details/task-details.component.html b/integration/base_ver_2_app/src/app/task-details/task-details.component.html
new file mode 100644
index 0000000000..ac5c3edf5b
--- /dev/null
+++ b/integration/base_ver_2_app/src/app/task-details/task-details.component.html
@@ -0,0 +1,15 @@
+Task details
+
+
+
+
+
\ No newline at end of file
diff --git a/integration/base_ver_2_app/src/app/task-details/task-details.component.spec.ts b/integration/base_ver_2_app/src/app/task-details/task-details.component.spec.ts
new file mode 100644
index 0000000000..c26097a072
--- /dev/null
+++ b/integration/base_ver_2_app/src/app/task-details/task-details.component.spec.ts
@@ -0,0 +1,31 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { RouterTestingModule } from '@angular/router/testing';
+
+import { AdfModule } from '../adf.module';
+import { TaskDetailsComponent } from './task-details.component';
+
+describe('TaskDetailsComponent', () => {
+ let component: TaskDetailsComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ imports: [
+ RouterTestingModule,
+ AdfModule
+ ],
+ declarations: [ TaskDetailsComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(TaskDetailsComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should be created', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/integration/base_ver_2_app/src/app/task-details/task-details.component.ts b/integration/base_ver_2_app/src/app/task-details/task-details.component.ts
new file mode 100644
index 0000000000..6e7d2910d7
--- /dev/null
+++ b/integration/base_ver_2_app/src/app/task-details/task-details.component.ts
@@ -0,0 +1,42 @@
+import { Component, OnInit } from '@angular/core';
+import { ActivatedRoute, Router } from '@angular/router';
+import { FormRenderingService } from '@alfresco/adf-core';
+import { CustomEditorComponent } from '../stencils.module';
+
+@Component({
+ selector: 'app-task-details',
+ templateUrl: './task-details.component.html',
+ styleUrls: ['./task-details.component.css']
+})
+export class TaskDetailsComponent implements OnInit {
+
+ appId: string = null;
+ taskId: string = null;
+ fileShowed: any = null;
+ content: any = null;
+ contentName: any= null;
+
+ constructor(private router: Router,
+ private route: ActivatedRoute,
+ formRenderingService: FormRenderingService) {
+ formRenderingService.setComponentTypeResolver('testole_01', () => CustomEditorComponent, true);
+ }
+
+ ngOnInit() {
+ this.route.params.subscribe(params => {
+ if (params.appId && params.appId !== '0') {
+ this.appId = params.appId;
+ }
+ if (params.taskId) {
+ this.taskId = params.taskId;
+ }
+ });
+ }
+
+ onFormContentClick(content: any): void {
+ this.fileShowed = true;
+ this.content = content.contentBlob;
+ this.contentName = content.name;
+ }
+
+}
diff --git a/integration/base_ver_2_app/src/app/tasks/tasks.component.css b/integration/base_ver_2_app/src/app/tasks/tasks.component.css
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/integration/base_ver_2_app/src/app/tasks/tasks.component.html b/integration/base_ver_2_app/src/app/tasks/tasks.component.html
new file mode 100644
index 0000000000..0ebbea928b
--- /dev/null
+++ b/integration/base_ver_2_app/src/app/tasks/tasks.component.html
@@ -0,0 +1,12 @@
+Tasks
+
+
+ Start new process
+
+
+
+
diff --git a/integration/base_ver_2_app/src/app/tasks/tasks.component.spec.ts b/integration/base_ver_2_app/src/app/tasks/tasks.component.spec.ts
new file mode 100644
index 0000000000..33bc600895
--- /dev/null
+++ b/integration/base_ver_2_app/src/app/tasks/tasks.component.spec.ts
@@ -0,0 +1,31 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { RouterTestingModule } from '@angular/router/testing';
+
+import { AdfModule } from '../adf.module';
+import { TasksComponent } from './tasks.component';
+
+describe('TasksComponent', () => {
+ let component: TasksComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ imports: [
+ RouterTestingModule,
+ AdfModule
+ ],
+ declarations: [ TasksComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(TasksComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should be created', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/integration/base_ver_2_app/src/app/tasks/tasks.component.ts b/integration/base_ver_2_app/src/app/tasks/tasks.component.ts
new file mode 100644
index 0000000000..78cb3cbfb7
--- /dev/null
+++ b/integration/base_ver_2_app/src/app/tasks/tasks.component.ts
@@ -0,0 +1,31 @@
+import { Component, OnInit } from '@angular/core';
+import { ActivatedRoute, Router } from '@angular/router';
+
+@Component({
+ selector: 'app-tasks',
+ templateUrl: './tasks.component.html',
+ styleUrls: ['./tasks.component.css']
+})
+export class TasksComponent implements OnInit {
+
+ appId: string = null;
+
+ constructor(private router: Router,
+ private route: ActivatedRoute) { }
+
+ ngOnInit() {
+ this.route.params.subscribe(params => {
+ const applicationId = params['appId'];
+ if (applicationId && applicationId !== '0') {
+ this.appId = params['appId'];
+ }
+ });
+ }
+
+ onRowClick(taskId: string) {
+ if (taskId) {
+ this.router.navigate(['/apps', this.appId || 0, 'tasks', taskId]);
+ }
+ }
+
+}
diff --git a/integration/base_ver_2_app/src/assets/.gitkeep b/integration/base_ver_2_app/src/assets/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/integration/base_ver_2_app/src/custom-style.scss b/integration/base_ver_2_app/src/custom-style.scss
new file mode 100644
index 0000000000..7443c5239a
--- /dev/null
+++ b/integration/base_ver_2_app/src/custom-style.scss
@@ -0,0 +1,33 @@
+@import '~@alfresco/adf-core/prebuilt-themes/adf-blue-orange.css';
+
+
+@import '~@alfresco/adf-content-services/theming';
+@import '~@alfresco/adf-process-services/theming';
+@import '~@alfresco/adf-core/theming';
+
+@import '~@angular/material/theming';
+
+@include mat-core($alfresco-typography);
+
+$primary: mat-palette($alfresco-accent-orange);
+$accent: mat-palette($alfresco-accent-purple);
+$warn: mat-palette($alfresco-warn);
+$theme: mat-light-theme($primary, $accent, $warn);
+
+@include angular-material-theme($theme);
+@include adf-content-services-theme($theme);
+@include adf-process-services-theme($theme);
+@include adf-core-theme($theme);
+
+body, html {
+ margin: 0;
+ height: 100%;
+ overflow: hidden;
+ font-size: mat-font-size($alfresco-typography, body-1);
+ font-family: mat-font-family($alfresco-typography);
+ line-height: mat-line-height($alfresco-typography, body-1);
+}
+
+body {
+ overflow: auto;
+}
diff --git a/integration/base_ver_2_app/src/environments/environment.prod.ts b/integration/base_ver_2_app/src/environments/environment.prod.ts
new file mode 100644
index 0000000000..3612073bc3
--- /dev/null
+++ b/integration/base_ver_2_app/src/environments/environment.prod.ts
@@ -0,0 +1,3 @@
+export const environment = {
+ production: true
+};
diff --git a/integration/base_ver_2_app/src/environments/environment.ts b/integration/base_ver_2_app/src/environments/environment.ts
new file mode 100644
index 0000000000..b7f639aeca
--- /dev/null
+++ b/integration/base_ver_2_app/src/environments/environment.ts
@@ -0,0 +1,8 @@
+// The file contents for the current environment will overwrite these during build.
+// The build system defaults to the dev environment which uses `environment.ts`, but if you do
+// `ng build --env=prod` then `environment.prod.ts` will be used instead.
+// The list of which env maps to which file can be found in `.angular-cli.json`.
+
+export const environment = {
+ production: false
+};
diff --git a/integration/base_ver_2_app/src/favicon-96x96.png b/integration/base_ver_2_app/src/favicon-96x96.png
new file mode 100644
index 0000000000..d342b10ee0
Binary files /dev/null and b/integration/base_ver_2_app/src/favicon-96x96.png differ
diff --git a/integration/base_ver_2_app/src/index.html b/integration/base_ver_2_app/src/index.html
new file mode 100644
index 0000000000..a51c4c592e
--- /dev/null
+++ b/integration/base_ver_2_app/src/index.html
@@ -0,0 +1,17 @@
+
+
+
+
+ ACS APS ADF Application with Angular CLI
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/integration/base_ver_2_app/src/main.ts b/integration/base_ver_2_app/src/main.ts
new file mode 100644
index 0000000000..520bafd835
--- /dev/null
+++ b/integration/base_ver_2_app/src/main.ts
@@ -0,0 +1,16 @@
+import { enableProdMode } from '@angular/core';
+import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
+
+import { AppModule } from './app/app.module';
+import { environment } from './environments/environment';
+
+import 'hammerjs';
+
+import pdfjsLib from 'pdfjs-dist';
+pdfjsLib.PDFJS.workerSrc = 'pdf.worker.js';
+
+if (environment.production) {
+ enableProdMode();
+}
+
+platformBrowserDynamic().bootstrapModule(AppModule);
diff --git a/integration/base_ver_2_app/src/polyfills.ts b/integration/base_ver_2_app/src/polyfills.ts
new file mode 100644
index 0000000000..7831e97b79
--- /dev/null
+++ b/integration/base_ver_2_app/src/polyfills.ts
@@ -0,0 +1,72 @@
+/**
+ * This file includes polyfills needed by Angular and is loaded before the app.
+ * You can add your own extra polyfills to this file.
+ *
+ * This file is divided into 2 sections:
+ * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
+ * 2. Application imports. Files imported after ZoneJS that should be loaded before your main
+ * file.
+ *
+ * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
+ * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
+ * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
+ *
+ * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html
+ */
+
+/***************************************************************************************************
+ * BROWSER POLYFILLS
+ */
+
+/** IE9, IE10 and IE11 requires all of the following polyfills. **/
+// import 'core-js/es6/symbol';
+// import 'core-js/es6/object';
+// import 'core-js/es6/function';
+// import 'core-js/es6/parse-int';
+// import 'core-js/es6/parse-float';
+// import 'core-js/es6/number';
+// import 'core-js/es6/math';
+// import 'core-js/es6/string';
+// import 'core-js/es6/date';
+// import 'core-js/es6/array';
+// import 'core-js/es6/regexp';
+// import 'core-js/es6/map';
+// import 'core-js/es6/weak-map';
+// import 'core-js/es6/set';
+
+/** IE10 and IE11 requires the following for NgClass support on SVG elements */
+// import 'classlist.js'; // Run `npm install --save classlist.js`.
+
+/** Evergreen browsers require these. **/
+import 'core-js/es6/reflect';
+import 'core-js/es7/reflect';
+
+
+/**
+ * Required to support Web Animations `@angular/animation`.
+ * Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation
+ **/
+// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
+
+
+
+/***************************************************************************************************
+ * Zone JS is required by Angular itself.
+ */
+import 'zone.js/dist/zone'; // Included with Angular CLI.
+
+
+
+/***************************************************************************************************
+ * APPLICATION IMPORTS
+ */
+
+/**
+ * Date, currency, decimal and percent pipes.
+ * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10
+ */
+// import 'intl'; // Run `npm install --save intl`.
+/**
+ * Need to import at least one locale-data with intl.
+ */
+// import 'intl/locale-data/jsonp/en';
diff --git a/integration/base_ver_2_app/src/test.ts b/integration/base_ver_2_app/src/test.ts
new file mode 100644
index 0000000000..cd612eeb0e
--- /dev/null
+++ b/integration/base_ver_2_app/src/test.ts
@@ -0,0 +1,32 @@
+// This file is required by karma.conf.js and loads recursively all the .spec and framework files
+
+import 'zone.js/dist/long-stack-trace-zone';
+import 'zone.js/dist/proxy.js';
+import 'zone.js/dist/sync-test';
+import 'zone.js/dist/jasmine-patch';
+import 'zone.js/dist/async-test';
+import 'zone.js/dist/fake-async-test';
+import { getTestBed } from '@angular/core/testing';
+import {
+ BrowserDynamicTestingModule,
+ platformBrowserDynamicTesting
+} from '@angular/platform-browser-dynamic/testing';
+
+// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any.
+declare const __karma__: any;
+declare const require: any;
+
+// Prevent Karma from running prematurely.
+__karma__.loaded = function () {};
+
+// First, initialize the Angular testing environment.
+getTestBed().initTestEnvironment(
+ BrowserDynamicTestingModule,
+ platformBrowserDynamicTesting()
+);
+// Then we find all the tests.
+const context = require.context('./', true, /\.spec\.ts$/);
+// And load the modules.
+context.keys().map(context);
+// Finally, start Karma to run the tests.
+__karma__.start();
diff --git a/integration/base_ver_2_app/src/tsconfig.app.json b/integration/base_ver_2_app/src/tsconfig.app.json
new file mode 100644
index 0000000000..ab31b96f59
--- /dev/null
+++ b/integration/base_ver_2_app/src/tsconfig.app.json
@@ -0,0 +1,41 @@
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../out-tsc/app",
+ "module": "es2015",
+ "rootDir": "..",
+ "baseUrl": ".",
+ "skipLibCheck": false,
+ "types": [],
+ "paths": {
+ "alfresco-js-api": [
+ "../node_modules/alfresco-js-api/dist/alfresco-js-api.js"
+ ],
+ "rxjs/*": [
+ "../node_modules/rxjs/*"
+ ],
+ "@angular/*": [
+ "../node_modules/@angular/*"
+ ],
+ "@alfresco/adf-core": [
+ "../../../lib/core"
+ ],
+ "@alfresco/adf-content-services": [
+ "../../../lib/content-services"
+ ],
+ "@alfresco/adf-process-services": [
+ "../../../lib/process-services"
+ ],
+ "@alfresco/adf-insights": [
+ "../../../lib/insights"
+ ]
+ }
+ },
+ "exclude": [
+ "test.ts",
+ "**/*.spec.ts"
+ ],
+ "angularCompilerOptions": {
+ "skipTemplateCodegen": false
+ }
+}
diff --git a/integration/base_ver_2_app/src/tsconfig.spec.json b/integration/base_ver_2_app/src/tsconfig.spec.json
new file mode 100644
index 0000000000..646bc0eff8
--- /dev/null
+++ b/integration/base_ver_2_app/src/tsconfig.spec.json
@@ -0,0 +1,41 @@
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../out-tsc/spec",
+ "module": "es2015",
+ "rootDir": "..",
+ "baseUrl": ".",
+ "skipLibCheck": false,
+ "types": [],
+ "paths": {
+ "alfresco-js-api": [
+ "../node_modules/alfresco-js-api/dist/alfresco-js-api.js"
+ ],
+ "rxjs/*": [
+ "../node_modules/rxjs/*"
+ ],
+ "@angular/*": [
+ "../node_modules/@angular/*"
+ ],
+ "@alfresco/adf-core": [
+ "../../../lib/core"
+ ],
+ "@alfresco/adf-content-services": [
+ "../../../lib/content-services"
+ ],
+ "@alfresco/adf-process-services": [
+ "../../../lib/process-services"
+ ],
+ "@alfresco/adf-insights": [
+ "../../../lib/insights"
+ ]
+ }
+ },
+ "exclude": [
+ "test.ts",
+ "**/*.spec.ts"
+ ],
+ "angularCompilerOptions": {
+ "skipTemplateCodegen": false
+ }
+}
diff --git a/integration/base_ver_2_app/src/typings.d.ts b/integration/base_ver_2_app/src/typings.d.ts
new file mode 100644
index 0000000000..ef5c7bd620
--- /dev/null
+++ b/integration/base_ver_2_app/src/typings.d.ts
@@ -0,0 +1,5 @@
+/* SystemJS module definition */
+declare var module: NodeModule;
+interface NodeModule {
+ id: string;
+}
diff --git a/integration/base_ver_2_app/tsconfig.json b/integration/base_ver_2_app/tsconfig.json
new file mode 100644
index 0000000000..b4d58af4b3
--- /dev/null
+++ b/integration/base_ver_2_app/tsconfig.json
@@ -0,0 +1,30 @@
+{
+ "compileOnSave": false,
+ "compilerOptions": {
+ "outDir": "./dist/out-tsc",
+ "baseUrl": "src",
+ "sourceMap": true,
+ "declaration": false,
+ "moduleResolution": "node",
+ "emitDecoratorMetadata": true,
+ "experimentalDecorators": true,
+ "skipLibCheck": true,
+ "noUnusedLocals": false,
+ "target": "es5",
+ "typeRoots": [
+ "node_modules/@types"
+ ],
+ "lib": [
+ "es2016",
+ "dom"
+ ],
+ "paths": {
+ "rxjs/*": [
+ "../node_modules/rxjs/*"
+ ],
+ "@angular/*": [
+ "../node_modules/@angular/*"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/integration/base_ver_2_app/tslint.json b/integration/base_ver_2_app/tslint.json
new file mode 100644
index 0000000000..0db5751c78
--- /dev/null
+++ b/integration/base_ver_2_app/tslint.json
@@ -0,0 +1,142 @@
+{
+ "rulesDirectory": [
+ "node_modules/codelyzer"
+ ],
+ "rules": {
+ "arrow-return-shorthand": true,
+ "callable-types": true,
+ "class-name": true,
+ "comment-format": [
+ true,
+ "check-space"
+ ],
+ "curly": true,
+ "eofline": true,
+ "forin": true,
+ "import-blacklist": [
+ true,
+ "rxjs"
+ ],
+ "import-spacing": true,
+ "indent": [
+ true,
+ "spaces"
+ ],
+ "interface-over-type-literal": true,
+ "label-position": true,
+ "max-line-length": [
+ true,
+ 140
+ ],
+ "member-access": false,
+ "member-ordering": [
+ true,
+ {
+ "order": [
+ "static-field",
+ "instance-field",
+ "static-method",
+ "instance-method"
+ ]
+ }
+ ],
+ "no-arg": true,
+ "no-bitwise": true,
+ "no-console": [
+ true,
+ "debug",
+ "info",
+ "time",
+ "timeEnd",
+ "trace"
+ ],
+ "no-construct": true,
+ "no-debugger": true,
+ "no-duplicate-super": true,
+ "no-empty": false,
+ "no-empty-interface": true,
+ "no-eval": true,
+ "no-inferrable-types": [
+ true,
+ "ignore-params"
+ ],
+ "no-misused-new": true,
+ "no-non-null-assertion": true,
+ "no-shadowed-variable": true,
+ "no-string-literal": false,
+ "no-string-throw": true,
+ "no-switch-case-fall-through": true,
+ "no-trailing-whitespace": true,
+ "no-unnecessary-initializer": true,
+ "no-unused-expression": true,
+ "no-use-before-declare": true,
+ "no-var-keyword": true,
+ "object-literal-sort-keys": false,
+ "one-line": [
+ true,
+ "check-open-brace",
+ "check-catch",
+ "check-else",
+ "check-whitespace"
+ ],
+ "prefer-const": true,
+ "quotemark": [
+ true,
+ "single"
+ ],
+ "radix": true,
+ "semicolon": [
+ true,
+ "always"
+ ],
+ "triple-equals": [
+ true,
+ "allow-null-check"
+ ],
+ "typedef-whitespace": [
+ true,
+ {
+ "call-signature": "nospace",
+ "index-signature": "nospace",
+ "parameter": "nospace",
+ "property-declaration": "nospace",
+ "variable-declaration": "nospace"
+ }
+ ],
+ "typeof-compare": true,
+ "unified-signatures": true,
+ "variable-name": false,
+ "whitespace": [
+ true,
+ "check-branch",
+ "check-decl",
+ "check-operator",
+ "check-separator",
+ "check-type"
+ ],
+ "directive-selector": [
+ true,
+ "attribute",
+ "app",
+ "camelCase"
+ ],
+ "component-selector": [
+ true,
+ "element",
+ "app",
+ "kebab-case"
+ ],
+ "use-input-property-decorator": true,
+ "use-output-property-decorator": true,
+ "use-host-property-decorator": true,
+ "no-input-rename": true,
+ "no-output-rename": 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
+ }
+}
diff --git a/lib/config/test-export.js b/lib/config/test-export.js
new file mode 100644
index 0000000000..e582d56acf
--- /dev/null
+++ b/lib/config/test-export.js
@@ -0,0 +1 @@
+console.log('Start');
diff --git a/lib/package.json b/lib/package.json
index 38277716c7..330dc4b77a 100644
--- a/lib/package.json
+++ b/lib/package.json
@@ -32,6 +32,7 @@
"build-content": "ng-packagr -p ./ng-package/ng-package-content.json",
"build-process": "ng-packagr -p ./ng-package/ng-package-process.json",
"build-insights": "ng-packagr -p ./ng-package/ng-package-insights.json",
+ "test-export": "node config/test-export.js",
"webpack": "node node_modules/webpack/bin/webpack.js"
},
"main": "./index.js",
@@ -128,6 +129,9 @@
"raw-loader": "0.5.1",
"remap-istanbul": "0.6.3",
"rimraf": "^2.6.2",
+ "rollup-plugin-cleanup": "^2.0.0",
+ "rollup-plugin-license": "^0.5.0",
+ "rollup-plugin-shift-header": "^1.0.1",
"run-sequence": "1.2.2",
"sass-loader": "6.0.5",
"script-loader": "0.7.0",
diff --git a/scripts/README.md b/scripts/README.md
index 12bc1229b8..cd93d73f43 100644
--- a/scripts/README.md
+++ b/scripts/README.md
@@ -267,10 +267,14 @@ For development environment configuration please refer to [project docs](../demo
| -v or --version | the version of the components to check |
+# npm-add-pkg.sh
+
***npm-add-pkg.sh*** check the bundles in the package npm are present
Add a package across all the pacakge json in the project
+## Options
+
| Option | Description |
| --- | --- |
| -h or --help | show the help |
@@ -279,35 +283,59 @@ Add a package across all the pacakge json in the project
* Add a package in the project
+## Examples
+
```sh
./npm-add-pkg.sh --save-dev NPM_NAME
```
+# extract-langs.sh
+
***extract-langs.sh***
Extract the i18n files from the repo and create a zip
+## Options
+
| Option | Description |
| --- | --- |
| -h or --help | show the help |
| --output or o | output folder otherwise will be 18n |
+## Examples
+
```sh
./extract-langs.sh
```
+# docker-publish.sh
***docker-publish.sh***
publish doker images in the selected repository
+## Options
+
| Option | Description |
| --- | --- |
| -u or --username | username |
| -p or --password | password |
| -t or --tags | tags |
+## Examples
```sh
./docker-publish.sh
+```
+
+# test-e2e-bc.sh
+
+***test-e2e-bc.sh***
+
+This script test that the update from 2.0.0 to 2.x.x is still smooth
+
+## Examples
+
+```sh
+./test-e2e-bc
```
\ No newline at end of file
diff --git a/scripts/test-e2e-bc.sh b/scripts/test-e2e-bc.sh
new file mode 100755
index 0000000000..412150e012
--- /dev/null
+++ b/scripts/test-e2e-bc.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+rm -rf "$DIR/../lib/node_modules/@angular"
+cd "$DIR/../integration/base_ver_2_app"
+
+ADF_VERSION=$(npm view @alfresco/adf-core version)
+ANGULAR_VERSION="5.1.1"
+MATERIAL_VERSION="5.0.1"
+
+npm install
+
+#Use last js-api
+npm install --save alfresco-js-api@alpha
+
+#New documented dependency
+npm install --save-exact --save @alfresco/adf-content-services@${ADF_VERSION} @alfresco/adf-core@${ADF_VERSION} @alfresco/adf-insights@${ADF_VERSION} @alfresco/adf-process-services@${ADF_VERSION}
+npm install --save-exact --save-dev @angular-devkit/core@0.0.28 @angular/compiler-cli@${ANGULAR_VERSION} typescript@2.6.2
+npm install --save @mat-datetimepicker/core @mat-datetimepicker/moment
+npm install --save-exact --save @angular/animations@${ANGULAR_VERSION} @angular/common@${ANGULAR_VERSION} @angular/compiler@${ANGULAR_VERSION} @angular/core@${ANGULAR_VERSION} @angular/platform-browser@${ANGULAR_VERSION} @angular/router@${ANGULAR_VERSION} @angular/flex-layout@2.0.0-beta.12 @angular/forms@${ANGULAR_VERSION} @angular/forms@${ANGULAR_VERSION} @angular/http@${ANGULAR_VERSION} @angular/platform-browser-dynamic@${ANGULAR_VERSION}
+npm install --save-exact --save @angular/cdk@${MATERIAL_VERSION} @angular/material@${MATERIAL_VERSION}
+
+npm run e2e