diff --git a/angular.json b/angular.json
index 48da00874..f446fcf47 100644
--- a/angular.json
+++ b/angular.json
@@ -494,6 +494,44 @@
"styleext": "less"
}
}
+ },
+ "watermark": {
+ "projectType": "library",
+ "root": "libs/watermark",
+ "sourceRoot": "libs/watermark/src",
+ "prefix": "groupdocs.examples.angular",
+ "architect": {
+ "build": {
+ "builder": "@angular-devkit/build-ng-packagr:build",
+ "options": {
+ "tsConfig": "libs/watermark/tsconfig.lib.json",
+ "project": "libs/watermark/ng-package.json"
+ }
+ },
+ "lint": {
+ "builder": "@angular-devkit/build-angular:tslint",
+ "options": {
+ "tsConfig": [
+ "libs/watermark/tsconfig.lib.json",
+ "libs/watermark/tsconfig.spec.json"
+ ],
+ "exclude": ["**/node_modules/**", "!libs/watermark/**"]
+ }
+ },
+ "test": {
+ "builder": "@angular-devkit/build-angular:karma",
+ "options": {
+ "main": "libs/watermark/src/test.ts",
+ "tsConfig": "libs/watermark/tsconfig.spec.json",
+ "karmaConfig": "libs/watermark/karma.conf.js"
+ }
+ }
+ },
+ "schematics": {
+ "@nrwl/angular:component": {
+ "styleext": "less"
+ }
+ }
}
},
"cli": {
diff --git a/apps/total-angular-e2e/src/fixtures/watermarkLoadConfigDefault.json b/apps/total-angular-e2e/src/fixtures/watermarkLoadConfigDefault.json
new file mode 100644
index 000000000..7e93c53c1
--- /dev/null
+++ b/apps/total-angular-e2e/src/fixtures/watermarkLoadConfigDefault.json
@@ -0,0 +1,11 @@
+{
+ "filesDirectory": "/fonts",
+ "dataDirectory": "",
+ "textWatermark": true,
+ "imageWatermark": true,
+ "preloadPageCount": 0,
+ "defaultDocument": "",
+ "upload": true,
+ "browse": true,
+ "rewrite": true
+}
diff --git a/apps/total-angular-e2e/src/integration/annotation.spec.ts b/apps/total-angular-e2e/src/integration/annotation.spec.ts
index b3ae37eb5..531aaa377 100644
--- a/apps/total-angular-e2e/src/integration/annotation.spec.ts
+++ b/apps/total-angular-e2e/src/integration/annotation.spec.ts
@@ -11,6 +11,7 @@ describe('Annotation', () => {
cy.fixture("annotationLoadConfigDefault").as('annotationLoadConfigDefault');
cy.fixture("metadataLoadConfigDefault").as('metadataLoadConfigDefault');
cy.fixture("searchLoadConfigDefault").as('searchLoadConfigDefault');
+ cy.fixture("watermarkLoadConfigDefault").as('watermarkLoadConfigDefault');
cy.fixture("loadFileTreeDefault").as('loadFileTreeDefault');
cy.fixture("loadFileTreeSubFolder").as('loadFileTreeSubFolder');
cy.fixture("loadDocumentDescriptionDefault").as('loadDocumentDescriptionDefault');
@@ -23,6 +24,7 @@ describe('Annotation', () => {
cy.route('http://localhost:8080/annotation/loadConfig', "@annotationLoadConfigDefault");
cy.route('http://localhost:8080/metadata/loadConfig', "@metadataLoadConfigDefault");
cy.route('http://localhost:8080/search/loadConfig', "@searchLoadConfigDefault");
+ cy.route('http://localhost:8080/watermark/loadConfig', "@watermarkLoadConfigDefault");
cy.route('POST','http://localhost:8080/annotation/loadFileTree', "@loadFileTreeDefault");
cy.route('POST','http://localhost:8080/annotation/loadDocumentDescription', "@loadDocumentDescriptionDefault");
diff --git a/apps/total-angular-e2e/src/integration/app.spec.ts b/apps/total-angular-e2e/src/integration/app.spec.ts
index 0cd660afb..58e84fb73 100644
--- a/apps/total-angular-e2e/src/integration/app.spec.ts
+++ b/apps/total-angular-e2e/src/integration/app.spec.ts
@@ -12,6 +12,7 @@ describe('total-angular', () => {
cy.route('http://localhost:8080/annotation/loadConfig', {"filesDirectory": "/fonts", "dataDirectory": "", "textAnnotation": true, "areaAnnotation": true, "pointAnnotation": true, "textStrikeoutAnnotation": true, "polylineAnnotation": true, "textFieldAnnotation": true, "watermarkAnnotation": true, "textReplacementAnnotation": true, "arrowAnnotation": true, "textRedactionAnnotation": true, "resourcesRedactionAnnotation": true, "textUnderlineAnnotation": true, "distanceAnnotation": true, "downloadOriginal": true, "downloadAnnotated": true, "zoom": true, "fitWidth": true, "preloadPageCount": 0, "defaultDocument": "", "pageSelector": true, "download": true, "upload": true, "print": true, "browse": true, "rewrite": true, "enableRightClick": true});
cy.route('http://localhost:8080/metadata/loadConfig', {"download":true,"upload":true,"browse":true,"rewrite":true,"filesDirectory":"/fonts","preloadPageCount":0,"defaultDocument":"","htmlMode":true,"cache":true});
cy.route('http://localhost:8080/search/loadConfig', {"upload":true,"browse":true,"filesDirectory":"/files","defaultDocument":""});
+ cy.route('http://localhost:8080/watermark/loadConfig', {"filesDirectory": "/fonts", "dataDirectory": "", "textWatermark": true, "imageWatermark": true, "preloadPageCount": 0, "defaultDocument": "", "upload": true, "browse": true, "rewrite": true});
cy.visit('/',{
onBeforeLoad: (win) => {
diff --git a/apps/total-angular-e2e/src/integration/comparison.spec.ts b/apps/total-angular-e2e/src/integration/comparison.spec.ts
index 86aba6a61..1f74922ab 100644
--- a/apps/total-angular-e2e/src/integration/comparison.spec.ts
+++ b/apps/total-angular-e2e/src/integration/comparison.spec.ts
@@ -11,6 +11,7 @@ describe('Comparison', () => {
cy.fixture("annotationLoadConfigDefault").as('annotationLoadConfigDefault');
cy.fixture("metadataLoadConfigDefault").as('metadataLoadConfigDefault');
cy.fixture("searchLoadConfigDefault").as('searchLoadConfigDefault');
+ cy.fixture("watermarkLoadConfigDefault").as('watermarkLoadConfigDefault');
cy.fixture("loadFileTreeDefault").as('loadFileTreeDefault');
cy.fixture("loadFileTreeSubFolder").as('loadFileTreeSubFolder');
cy.fixture("loadDocumentDescriptionDefault").as('loadDocumentDescriptionDefault');
@@ -24,6 +25,7 @@ describe('Comparison', () => {
cy.route('http://localhost:8080/annotation/loadConfig', "@annotationLoadConfigDefault");
cy.route('http://localhost:8080/metadata/loadConfig', "@metadataLoadConfigDefault");
cy.route('http://localhost:8080/search/loadConfig', "@searchLoadConfigDefault");
+ cy.route('http://localhost:8080/watermark/loadConfig', "@watermarkLoadConfigDefault");
cy.route('POST','http://localhost:8080/comparison/loadFileTree', "@loadFileTreeDefault");
cy.route('POST','http://localhost:8080/comparison/loadDocumentDescription', "@loadDocumentDescriptionDefault");
diff --git a/apps/total-angular-e2e/src/integration/conversion.spec.ts b/apps/total-angular-e2e/src/integration/conversion.spec.ts
index 83d3b63cb..dff8326ca 100644
--- a/apps/total-angular-e2e/src/integration/conversion.spec.ts
+++ b/apps/total-angular-e2e/src/integration/conversion.spec.ts
@@ -11,6 +11,7 @@ describe('Conversion', () => {
cy.fixture("annotationLoadConfigDefault").as('annotationLoadConfigDefault');
cy.fixture("metadataLoadConfigDefault").as('metadataLoadConfigDefault');
cy.fixture("searchLoadConfigDefault").as('searchLoadConfigDefault');
+ cy.fixture("watermarkLoadConfigDefault").as('watermarkLoadConfigDefault');
cy.fixture("loadFileTreeDefault").as('loadFileTreeDefault');
cy.fixture("loadFileTreeSubFolder").as('loadFileTreeSubFolder');
cy.fixture("convertDefault").as('convertDefault');
@@ -24,6 +25,7 @@ describe('Conversion', () => {
cy.route('http://localhost:8080/annotation/loadConfig', "@annotationLoadConfigDefault");
cy.route('http://localhost:8080/metadata/loadConfig', "@metadataLoadConfigDefault");
cy.route('http://localhost:8080/search/loadConfig', "@searchLoadConfigDefault");
+ cy.route('http://localhost:8080/watermark/loadConfig', "@watermarkLoadConfigDefault");
cy.route('POST','http://localhost:8080/conversion/loadFileTree', "@loadFileTreeDefault");
cy.route('POST','http://localhost:8080/conversion/convert', "@convertDefault");
diff --git a/apps/total-angular-e2e/src/integration/metadata.spec.ts b/apps/total-angular-e2e/src/integration/metadata.spec.ts
index 72c03ed3b..f14cd0bdc 100644
--- a/apps/total-angular-e2e/src/integration/metadata.spec.ts
+++ b/apps/total-angular-e2e/src/integration/metadata.spec.ts
@@ -11,6 +11,7 @@ describe('Metadata', () => {
cy.fixture("annotationLoadConfigDefault").as('annotationLoadConfigDefault');
cy.fixture("metadataLoadConfigDefault").as('metadataLoadConfigDefault');
cy.fixture("searchLoadConfigDefault").as('searchLoadConfigDefault');
+ cy.fixture("watermarkLoadConfigDefault").as('watermarkLoadConfigDefault');
cy.fixture("loadFileTreeDefault").as('loadFileTreeDefault');
cy.fixture("loadFileTreeSubFolder").as('loadFileTreeSubFolder');
cy.fixture("loadDocumentDescriptionDefault").as('loadDocumentDescriptionDefault');
@@ -25,6 +26,7 @@ describe('Metadata', () => {
cy.route('http://localhost:8080/annotation/loadConfig', "@annotationLoadConfigDefault");
cy.route('http://localhost:8080/metadata/loadConfig', "@metadataLoadConfigDefault");
cy.route('http://localhost:8080/search/loadConfig', "@searchLoadConfigDefault");
+ cy.route('http://localhost:8080/watermark/loadConfig', "@watermarkLoadConfigDefault");
cy.route('POST','http://localhost:8080/metadata/loadFileTree', "@loadFileTreeDefault");
cy.route('POST','http://localhost:8080/metadata/loadDocumentDescription', "@loadDocumentDescriptionDefault");
diff --git a/apps/total-angular-e2e/src/integration/search.spec.ts b/apps/total-angular-e2e/src/integration/search.spec.ts
index 6a29574d3..c64c6b1a0 100644
--- a/apps/total-angular-e2e/src/integration/search.spec.ts
+++ b/apps/total-angular-e2e/src/integration/search.spec.ts
@@ -11,6 +11,7 @@ describe('Search', () => {
cy.fixture("annotationLoadConfigDefault").as('annotationLoadConfigDefault');
cy.fixture("metadataLoadConfigDefault").as('metadataLoadConfigDefault');
cy.fixture("searchLoadConfigDefault").as('searchLoadConfigDefault');
+ cy.fixture("watermarkLoadConfigDefault").as('watermarkLoadConfigDefault');
cy.fixture("loadFileTreeDefault").as('loadFileTreeDefault');
cy.fixture("loadFileTreeSubFolder").as('loadFileTreeSubFolder');
cy.fixture("loadDocumentDescriptionDefault").as('loadDocumentDescriptionDefault');
@@ -24,6 +25,7 @@ describe('Search', () => {
cy.route('http://localhost:8080/annotation/loadConfig', "@annotationLoadConfigDefault");
cy.route('http://localhost:8080/metadata/loadConfig', "@metadataLoadConfigDefault");
cy.route('http://localhost:8080/search/loadConfig', "@searchLoadConfigDefault");
+ cy.route('http://localhost:8080/watermark/loadConfig', "@watermarkLoadConfigDefault");
cy.route('POST','http://localhost:8080/search/loadFileTree', "@loadFileTreeDefault");
cy.route('POST','http://localhost:8080/search/search', "@searchDefault");
diff --git a/apps/total-angular-e2e/src/integration/signature.spec.ts b/apps/total-angular-e2e/src/integration/signature.spec.ts
index cd0d4ea55..c93b09a87 100644
--- a/apps/total-angular-e2e/src/integration/signature.spec.ts
+++ b/apps/total-angular-e2e/src/integration/signature.spec.ts
@@ -11,6 +11,7 @@ describe('Signature', () => {
cy.fixture("annotationLoadConfigDefault").as('annotationLoadConfigDefault');
cy.fixture("metadataLoadConfigDefault").as('metadataLoadConfigDefault');
cy.fixture("searchLoadConfigDefault").as('searchLoadConfigDefault');
+ cy.fixture("watermarkLoadConfigDefault").as('watermarkLoadConfigDefault');
cy.fixture("loadFileTreeDefault").as('loadFileTreeDefault');
cy.fixture("loadFileTreeSubFolder").as('loadFileTreeSubFolder');
cy.fixture("loadDocumentDescriptionDefault").as('loadDocumentDescriptionDefault');
@@ -23,6 +24,7 @@ describe('Signature', () => {
cy.route('http://localhost:8080/annotation/loadConfig', "@annotationLoadConfigDefault");
cy.route('http://localhost:8080/metadata/loadConfig', "@metadataLoadConfigDefault");
cy.route('http://localhost:8080/search/loadConfig', "@searchLoadConfigDefault");
+ cy.route('http://localhost:8080/watermark/loadConfig', "@watermarkLoadConfigDefault");
cy.route('POST','http://localhost:8080/signature/loadFileTree', "@loadFileTreeDefault");
cy.route('POST','http://localhost:8080/signature/loadDocumentDescription', "@loadDocumentDescriptionDefault");
diff --git a/apps/total-angular-e2e/src/integration/viewer.spec.ts b/apps/total-angular-e2e/src/integration/viewer.spec.ts
index f7191a280..257aa2bda 100644
--- a/apps/total-angular-e2e/src/integration/viewer.spec.ts
+++ b/apps/total-angular-e2e/src/integration/viewer.spec.ts
@@ -11,6 +11,7 @@ describe('Viewer', () => {
cy.fixture("annotationLoadConfigDefault").as('annotationLoadConfigDefault');
cy.fixture("metadataLoadConfigDefault").as('metadataLoadConfigDefault');
cy.fixture("searchLoadConfigDefault").as('searchLoadConfigDefault');
+ cy.fixture("watermarkLoadConfigDefault").as('watermarkLoadConfigDefault');
cy.fixture("loadFileTreeDefault").as('loadFileTreeDefault');
cy.fixture("loadFileTreeSubFolder").as('loadFileTreeSubFolder');
cy.fixture("loadDocumentDescriptionDefault").as('loadDocumentDescriptionDefault');
@@ -23,6 +24,7 @@ describe('Viewer', () => {
cy.route('http://localhost:8080/annotation/loadConfig', "@annotationLoadConfigDefault");
cy.route('http://localhost:8080/metadata/loadConfig', "@metadataLoadConfigDefault");
cy.route('http://localhost:8080/search/loadConfig', "@searchLoadConfigDefault");
+ cy.route('http://localhost:8080/watermark/loadConfig', "@watermarkLoadConfigDefault");
cy.route('POST','http://localhost:8080/viewer/loadFileTree', "@loadFileTreeDefault");
cy.route('POST','http://localhost:8080/viewer/loadDocumentDescription', "@loadDocumentDescriptionDefault");
diff --git a/apps/total-angular-e2e/src/integration/watermark.spec.ts b/apps/total-angular-e2e/src/integration/watermark.spec.ts
new file mode 100644
index 000000000..704e6ac48
--- /dev/null
+++ b/apps/total-angular-e2e/src/integration/watermark.spec.ts
@@ -0,0 +1,117 @@
+///
-