27-09-2023

This commit is contained in:
Jonathan Jenne
2023-09-27 14:50:52 +02:00
parent e3a81bfdbf
commit 538a257848
1135 changed files with 4638 additions and 1758 deletions

View File

@@ -39,18 +39,6 @@ var Rect = PSPDFKit.Geometry.Rect;
var SignatureFormField = PSPDFKit.FormFields.SignatureFormField;
var _a = PSPDFKit.ElectronicSignatureCreationMode, DRAW = _a.DRAW, TYPE = _a.TYPE;
var DISABLED = PSPDFKit.AutoSaveMode.DISABLED;
var allowedToolbarItems = [
"sidebar-thumbnails",
"sidebar-document-ouline",
"sidebar-bookmarks",
"pager",
"pan",
"zoom-out",
"zoom-in",
"zoom-mode",
"spacer",
"search"
];
var App = /** @class */ (function () {
function App() {
}
@@ -58,19 +46,21 @@ var App = /** @class */ (function () {
// and will trigger loading of the Editor Interface
App.loadPDFFromUrl = function (container, envelopeKey) {
return __awaiter(this, void 0, void 0, function () {
var envelopeObject, document, arrayBuffer, e_1, _a, annotations, createdAnnotation;
var envelopeObject, arrayBuffer, e_1, _a, annotations, createdAnnotations;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
App.ui = new UI();
console.debug("Loading PSPDFKit..");
return [4 /*yield*/, App.loadData("/api/get-data/".concat(envelopeKey))];
case 1:
envelopeObject = _b.sent();
document = envelopeObject.envelope.documents[0];
App.envelopeKey = envelopeKey;
App.currentDocument = envelopeObject.envelope.documents[0];
_b.label = 2;
case 2:
_b.trys.push([2, 4, , 5]);
return [4 /*yield*/, App.loadDocument("/api/download/".concat(envelopeKey, "?id=").concat(document.id))];
return [4 /*yield*/, App.loadDocument("/api/download/".concat(envelopeKey, "?id=").concat(App.currentDocument.id))];
case 3:
arrayBuffer = _b.sent();
return [3 /*break*/, 5];
@@ -87,30 +77,24 @@ var App = /** @class */ (function () {
console.debug(envelopeObject.envelope);
console.debug("PSPDFKit configured!");
annotations = [];
document.elements.forEach(function (element) {
console.log("Loading element");
console.debug("Page", element.page);
console.debug("Width / Height", element.width, element.height);
console.debug("Top / Left", element.top, element.left);
var id = PSPDFKit.generateInstantId();
var annotation = App.createSignatureAnnotation(id, element.width, element.height, element.top, element.left, element.page);
var formField = new SignatureFormField({
name: id,
annotationIds: List([annotation.id])
});
App.currentDocument.elements.forEach(function (element) {
console.log("Creating annotation for element", element.id);
var _a = App.createAnnotationFromElement(element), annotation = _a[0], formField = _a[1];
annotations.push(annotation);
annotations.push(formField);
console.debug("Annotation created.");
});
return [4 /*yield*/, App.Instance.create(annotations)];
case 7:
createdAnnotation = (_b.sent())[0];
console.debug(createdAnnotation);
createdAnnotations = _b.sent();
console.debug(createdAnnotations);
return [2 /*return*/];
}
});
});
};
App.inchToPoint = function (inch) {
return inch * 72;
};
// Makes a call to the supplied url and fetches the binary response as an array buffer
App.loadDocument = function (url) {
return fetch(url, { credentials: "include" })
@@ -121,57 +105,132 @@ var App = /** @class */ (function () {
return fetch(url, { credentials: "include" })
.then(function (res) { return res.json(); });
};
App.postDocument = function (url, buffer) {
return fetch(url, { credentials: "include", method: "POST", body: buffer })
.then(function (res) { return res.json(); });
};
// Load the PSPDFKit UI by setting a target element as the container to render in
// and a arraybuffer which represents the document that should be displayed.
App.loadPSPDFKit = function (arrayBuffer, container) {
var annotationPresets = PSPDFKit.defaultAnnotationPresets;
console.log(annotationPresets);
annotationPresets.ink = {
lineWidth: 10
};
return PSPDFKit.load({
container: container,
document: arrayBuffer,
autoSaveMode: DISABLED,
annotationPresets: annotationPresets,
annotationPresets: App.ui.getPresets(),
electronicSignatures: {
creationModes: [DRAW]
creationModes: [DRAW, TYPE]
},
isEditableAnnotation: function (annotation) {
// Check if the annotation is a signature
// This will allow new signatures, but not allow edits.
return !annotation.isSignature;
}
});
};
App.configurePSPDFKit = function (instance) {
var _this = this;
instance.addEventListener("annotations.load", function (loadedAnnotations) {
console.log("annotations loaded", loadedAnnotations.toJS());
});
instance.addEventListener("annotations.change", function () {
console.log("annotations changed");
});
instance.addEventListener("annotations.create", function (createdAnnotations) {
var annotation = createdAnnotations[0];
console.log("annotations created", createdAnnotations.toJS());
});
instance.addEventListener("annotations.create", function (createdAnnotations) { return __awaiter(_this, void 0, void 0, function () {
return __generator(this, function (_a) {
console.log("annotations created", createdAnnotations.toJS());
return [2 /*return*/];
});
}); });
var filteredItems = instance.toolbarItems
.filter(function (item) { return allowedToolbarItems.includes(item.type); });
var customItems = [
{
type: "custom",
id: "button-finish",
title: "Abschlie<69>en",
icon: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" fill=\"currentColor\" class=\"bi bi-check2-circle\" viewBox=\"0 0 16 16\">\n <path d=\"M2.5 8a5.5 5.5 0 0 1 8.25-4.764.5.5 0 0 0 .5-.866A6.5 6.5 0 1 0 14.5 8a.5.5 0 0 0-1 0 5.5 5.5 0 1 1-11 0z\"/>\n <path d=\"M15.354 3.354a.5.5 0 0 0-.708-.708L8 9.293 5.354 6.646a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0l7-7z\" />\n </svg>",
onPress: this.handleFinish
}
];
instance.setToolbarItems(filteredItems.concat(customItems));
.filter(function (item) { return App.ui.allowedToolbarItems.includes(item.type); });
instance.setToolbarItems(filteredItems.concat(App.ui.getToolbarItems(App.handleClick)));
};
App.handleClick = function (eventType) {
return __awaiter(this, void 0, void 0, function () {
var _a;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
_a = eventType;
switch (_a) {
case "RESET": return [3 /*break*/, 1];
case "FINISH": return [3 /*break*/, 3];
}
return [3 /*break*/, 5];
case 1: return [4 /*yield*/, App.handleReset(null)];
case 2:
_b.sent();
return [3 /*break*/, 5];
case 3: return [4 /*yield*/, App.handleFinish(null)];
case 4:
_b.sent();
return [3 /*break*/, 5];
case 5: return [2 /*return*/];
}
});
});
};
App.handleFinish = function (event) {
return __awaiter(this, void 0, void 0, function () {
var json, buffer;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, App.Instance.applyOperations([{ type: "flattenAnnotations" }])
//await downloadDocument();
];
case 0: return [4 /*yield*/, App.Instance.save()];
case 1:
_a.sent();
return [4 /*yield*/, App.Instance.exportInstantJSON()];
case 2:
json = _a.sent();
console.log(json);
return [4 /*yield*/, App.Instance.exportPDF({ flatten: true })];
case 3:
buffer = _a.sent();
return [4 /*yield*/, App.uploadDocument(buffer, App.envelopeKey, App.currentDocument.id)];
case 4:
_a.sent();
alert("Signatur wird gespeichert!");
return [2 /*return*/];
}
});
});
};
App.handleReset = function (event) {
return __awaiter(this, void 0, void 0, function () {
var i, annotations;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!confirm("Wollen Sie das Dokument und alle erstellten Signaturen zurücksetzen?")) return [3 /*break*/, 4];
i = 0;
_a.label = 1;
case 1:
if (!(i < App.Instance.totalPageCount)) return [3 /*break*/, 4];
return [4 /*yield*/, App.Instance.getAnnotations(i)];
case 2:
annotations = _a.sent();
annotations.forEach(function (annotation) {
//console.log(annotation)
// TODO: Delete only create signatures
//App.Instance.delete(annotation.id)
});
_a.label = 3;
case 3:
i++;
return [3 /*break*/, 1];
case 4: return [2 /*return*/];
}
});
});
};
App.uploadDocument = function (buffer, envelopeKey, documentId) {
return __awaiter(this, void 0, void 0, function () {
var result;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, App.postDocument("/api/upload/".concat(envelopeKey, "/").concat(documentId), buffer)];
case 1:
result = _a.sent();
console.log(result);
return [2 /*return*/];
}
});
@@ -215,6 +274,23 @@ var App = /** @class */ (function () {
});
});
};
App.createAnnotationFromElement = function (element) {
var id = PSPDFKit.generateInstantId();
console.log("Creating Annotation", id);
var width = App.inchToPoint(element.width);
var height = App.inchToPoint(element.height);
var top = App.inchToPoint(element.top) - (height / 2);
var left = App.inchToPoint(element.left) - (width / 2);
var page = element.page - 1;
var annotation = App.createSignatureAnnotation(id, width, height, top, left, page);
console.log(annotation);
var formField = new SignatureFormField({
name: id,
annotationIds: List([annotation.id])
});
console.log(formField);
return [annotation, formField];
};
App.createSignatureAnnotation = function (id, width, height, top, left, pageIndex) {
var annotation = new PSPDFKit.Annotations.WidgetAnnotation({
id: id,
@@ -227,4 +303,54 @@ var App = /** @class */ (function () {
return App;
}());
export { App };
var UI = /** @class */ (function () {
function UI() {
this.allowedToolbarItems = [
"sidebar-thumbnails",
"sidebar-document-ouline",
"sidebar-bookmarks",
"pager",
"pan",
"zoom-out",
"zoom-in",
"zoom-mode",
"spacer",
"search"
];
this.getToolbarItems = function (callback) {
var customItems = [
{
type: "custom",
id: "button-reset",
title: "Zurücksetzen",
onPress: function () {
callback("RESET");
},
icon: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" fill=\"currentColor\" class=\"bi bi-arrow-counterclockwise\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M8 3a5 5 0 1 1-4.546 2.914.5.5 0 0 0-.908-.417A6 6 0 1 0 8 2v1z\"/>\n <path d=\"M8 4.466V.534a.25.25 0 0 0-.41-.192L5.23 2.308a.25.25 0 0 0 0 .384l2.36 1.966A.25.25 0 0 0 8 4.466z\"/>\n </svg>"
},
{
type: "custom",
id: "button-finish",
title: "Abschließen",
onPress: function () {
callback("FINISH");
},
icon: "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" fill=\"currentColor\" class=\"bi bi-check2-circle\" viewBox=\"0 0 16 16\">\n <path d=\"M2.5 8a5.5 5.5 0 0 1 8.25-4.764.5.5 0 0 0 .5-.866A6.5 6.5 0 1 0 14.5 8a.5.5 0 0 0-1 0 5.5 5.5 0 1 1-11 0z\"/>\n <path d=\"M15.354 3.354a.5.5 0 0 0-.708-.708L8 9.293 5.354 6.646a.5.5 0 1 0-.708.708l3 3a.5.5 0 0 0 .708 0l7-7z\" />\n </svg>"
}
];
return customItems;
};
}
UI.prototype.getPresets = function () {
var annotationPresets = PSPDFKit.defaultAnnotationPresets;
annotationPresets.ink = {
lineWidth: 10
};
annotationPresets.widget = {
readOnly: true
};
return annotationPresets;
};
return UI;
}());
//# sourceMappingURL=app.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More