@colijnit/mainapi 1.0.37 → 1.0.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/enum/absence-type.enum.d.ts +10 -10
- package/build/enum/absence-type.enum.js +14 -14
- package/build/enum/activities-object-name.enum.d.ts +4 -4
- package/build/enum/activities-object-name.enum.js +8 -8
- package/build/enum/activities-operation-name.enum.d.ts +8 -8
- package/build/enum/activities-operation-name.enum.js +12 -12
- package/build/enum/activity-sort-type.enum.d.ts +5 -5
- package/build/enum/activity-sort-type.enum.js +9 -9
- package/build/enum/activity-type.d.ts +9 -9
- package/build/enum/activity-type.js +13 -13
- package/build/enum/article-publication.enum.d.ts +5 -5
- package/build/enum/article-publication.enum.js +9 -9
- package/build/enum/backend-service-name.enum.d.ts +9 -9
- package/build/enum/backend-service-name.enum.js +13 -13
- package/build/enum/co-document-image-display-kind.enum.d.ts +5 -5
- package/build/enum/co-document-image-display-kind.enum.js +9 -9
- package/build/enum/co-document-type.enum.d.ts +5 -5
- package/build/enum/co-document-type.enum.js +9 -9
- package/build/enum/co-sub-report.bo.d.ts +11 -11
- package/build/enum/co-sub-report.bo.js +21 -21
- package/build/enum/config-object-name.enum.d.ts +3 -3
- package/build/enum/config-object-name.enum.js +7 -7
- package/build/enum/data-mapping.enum.d.ts +5 -5
- package/build/enum/data-mapping.enum.js +9 -9
- package/build/enum/data-service-method.enum.d.ts +15 -15
- package/build/enum/data-service-method.enum.js +19 -19
- package/build/enum/db-boolean-value-type.enum.d.ts +12 -12
- package/build/enum/db-boolean-value-type.enum.js +32 -32
- package/build/enum/delivery-time-unit-type.enum.d.ts +4 -4
- package/build/enum/delivery-time-unit-type.enum.js +8 -8
- package/build/enum/document-allowed-type.enum.d.ts +10 -10
- package/build/enum/document-allowed-type.enum.js +14 -14
- package/build/enum/document-method.enum.d.ts +6 -6
- package/build/enum/document-method.enum.js +10 -10
- package/build/enum/domain-name.enum.d.ts +64 -64
- package/build/enum/domain-name.enum.js +68 -68
- package/build/enum/file-type-internal.enum.d.ts +11 -11
- package/build/enum/file-type-internal.enum.js +15 -15
- package/build/enum/file-type.enum.d.ts +5 -5
- package/build/enum/file-type.enum.js +9 -9
- package/build/enum/general-method.enum.d.ts +37 -37
- package/build/enum/general-method.enum.js +41 -41
- package/build/enum/insured-interest-type.enum.d.ts +10 -10
- package/build/enum/insured-interest-type.enum.js +14 -14
- package/build/enum/internal-param.enum.d.ts +10 -10
- package/build/enum/internal-param.enum.js +14 -14
- package/build/enum/ione-module-name.enum.d.ts +39 -39
- package/build/enum/ione-module-name.enum.js +55 -55
- package/build/enum/master-data-object-name.enum.d.ts +25 -25
- package/build/enum/master-data-object-name.enum.js +29 -29
- package/build/enum/message-type.enum.d.ts +6 -6
- package/build/enum/message-type.enum.js +10 -10
- package/build/enum/module-name.enum.d.ts +14 -14
- package/build/enum/module-name.enum.js +18 -18
- package/build/enum/module-navigation-link.d.ts +5 -5
- package/build/enum/module-navigation-link.js +2 -2
- package/build/enum/note-display-type.enum.d.ts +5 -5
- package/build/enum/note-display-type.enum.js +9 -9
- package/build/enum/one-zero-bool-db-type.enum.d.ts +5 -5
- package/build/enum/one-zero-bool-db-type.enum.js +20 -20
- package/build/enum/own-risk.enum.d.ts +7 -7
- package/build/enum/own-risk.enum.js +11 -11
- package/build/enum/period.enum.d.ts +7 -7
- package/build/enum/period.enum.js +11 -11
- package/build/enum/personal-activity-tab.enum.d.ts +4 -4
- package/build/enum/personal-activity-tab.enum.js +8 -8
- package/build/enum/preset-object-name.enum.d.ts +3 -3
- package/build/enum/preset-object-name.enum.js +7 -7
- package/build/enum/price-type.enum.d.ts +4 -4
- package/build/enum/price-type.enum.js +8 -8
- package/build/enum/printing-service-method.d.ts +8 -8
- package/build/enum/printing-service-method.js +12 -12
- package/build/enum/priority-type.enum.d.ts +7 -7
- package/build/enum/priority-type.enum.js +11 -11
- package/build/enum/product-kind.enum.d.ts +6 -6
- package/build/enum/product-kind.enum.js +10 -10
- package/build/enum/public-service-method.d.ts +20 -20
- package/build/enum/public-service-method.js +24 -24
- package/build/enum/relation-kind.d.ts +10 -10
- package/build/enum/relation-kind.js +14 -14
- package/build/enum/relman-complete-name.d.ts +5 -5
- package/build/enum/relman-complete-name.js +2 -2
- package/build/enum/report-method.enum.d.ts +15 -15
- package/build/enum/report-method.enum.js +19 -19
- package/build/enum/report-object-name.enum.d.ts +3 -3
- package/build/enum/report-object-name.enum.js +7 -7
- package/build/enum/report-param-type.enum.d.ts +15 -15
- package/build/enum/report-param-type.enum.js +19 -19
- package/build/enum/report-type.enum.d.ts +45 -45
- package/build/enum/report-type.enum.js +49 -49
- package/build/enum/reporting-documents-method.enum.d.ts +4 -4
- package/build/enum/reporting-documents-method.enum.js +8 -8
- package/build/enum/send-method-type.enum.d.ts +10 -10
- package/build/enum/send-method-type.enum.js +14 -14
- package/build/enum/sequence-name.enum.d.ts +31 -31
- package/build/enum/sequence-name.enum.js +35 -35
- package/build/enum/simple-base-data-object-name.enum.d.ts +5 -5
- package/build/enum/simple-base-data-object-name.enum.js +9 -9
- package/build/enum/simple-base-data-operation-name.enum.d.ts +4 -4
- package/build/enum/simple-base-data-operation-name.enum.js +8 -8
- package/build/enum/tab-category.enum.d.ts +19 -19
- package/build/enum/tab-category.enum.js +23 -23
- package/build/enum/table-name.enum.d.ts +82 -82
- package/build/enum/table-name.enum.js +86 -86
- package/build/enum/tag-method.enum.d.ts +4 -4
- package/build/enum/tag-method.enum.js +8 -8
- package/build/enum/tag-object.enum.d.ts +3 -3
- package/build/enum/tag-object.enum.js +7 -7
- package/build/enum/tag-operation-name.enum.d.ts +3 -3
- package/build/enum/tag-operation-name.enum.js +7 -7
- package/build/enum/text-standard-type-text.d.ts +7 -7
- package/build/enum/text-standard-type-text.js +11 -11
- package/build/enum/text-standard-type.d.ts +7 -7
- package/build/enum/text-standard-type.js +11 -11
- package/build/enum/transaction-kind.d.ts +13 -13
- package/build/enum/transaction-kind.js +17 -17
- package/build/enum/true-false-db-type.enum.d.ts +5 -5
- package/build/enum/true-false-db-type.enum.js +20 -20
- package/build/enum/vat-type.enum.d.ts +4 -4
- package/build/enum/vat-type.enum.js +8 -8
- package/build/enum/workflow-category.enum.d.ts +18 -18
- package/build/enum/workflow-category.enum.js +22 -22
- package/build/enum/workflow-trigger-type.enum.d.ts +8 -8
- package/build/enum/workflow-trigger-type.enum.js +12 -12
- package/build/enum/yes-no-db-type.enum.d.ts +5 -5
- package/build/enum/yes-no-db-type.enum.js +20 -20
- package/build/main-api-connection.d.ts +66 -66
- package/build/main-api-connection.js +14 -14
- package/build/main-api.d.ts +81 -81
- package/build/main-api.js +219 -219
- package/build/main-api.unit.test.d.ts +1 -1
- package/build/main-api.unit.test.js +128 -128
- package/build/main-auth.d.ts +62 -62
- package/build/main-auth.js +556 -556
- package/build/main-public.d.ts +62 -62
- package/build/main-public.js +248 -248
- package/build/model/activity-list-view-model.d.ts +11 -11
- package/build/model/activity-list-view-model.js +20 -20
- package/build/model/activity-view-model.d.ts +13 -13
- package/build/model/activity-view-model.js +27 -27
- package/build/model/activity.bo.d.ts +58 -58
- package/build/model/activity.bo.js +484 -484
- package/build/model/article-seo-value.d.ts +5 -5
- package/build/model/article-seo-value.js +6 -6
- package/build/model/branch.bo.d.ts +8 -8
- package/build/model/branch.bo.js +7 -7
- package/build/model/brand.d.ts +8 -8
- package/build/model/brand.js +10 -10
- package/build/model/category.bo.d.ts +12 -12
- package/build/model/category.bo.js +16 -16
- package/build/model/co-document-right.d.ts +7 -7
- package/build/model/co-document-right.js +7 -7
- package/build/model/co-document.d.ts +64 -64
- package/build/model/co-document.js +180 -180
- package/build/model/co-domain-value.bo.d.ts +10 -10
- package/build/model/co-domain-value.bo.js +20 -20
- package/build/model/co-notition-right.bo.d.ts +10 -10
- package/build/model/co-notition-right.bo.js +13 -13
- package/build/model/co-notition.bo.d.ts +24 -24
- package/build/model/co-notition.bo.js +79 -79
- package/build/model/co-report-category-link.bo.d.ts +8 -8
- package/build/model/co-report-category-link.bo.js +7 -7
- package/build/model/co-report-sjablonen-documenten.bo.d.ts +6 -6
- package/build/model/co-report-sjablonen-documenten.bo.js +7 -7
- package/build/model/co-report.bo.d.ts +47 -47
- package/build/model/co-report.bo.js +68 -68
- package/build/model/co-rv-domain-value.bo.d.ts +10 -10
- package/build/model/co-rv-domain-value.bo.js +20 -20
- package/build/model/co-text.d.ts +26 -26
- package/build/model/co-text.js +28 -28
- package/build/model/color.bo.d.ts +7 -7
- package/build/model/color.bo.js +10 -10
- package/build/model/constant/java-constants.d.ts +2 -2
- package/build/model/constant/java-constants.js +5 -5
- package/build/model/contact-moment.bo.d.ts +17 -17
- package/build/model/contact-moment.bo.js +39 -39
- package/build/model/currency.bo.d.ts +13 -13
- package/build/model/currency.bo.js +33 -33
- package/build/model/department.bo.d.ts +12 -12
- package/build/model/department.bo.js +69 -69
- package/build/model/document-allowed-extension.bo.d.ts +6 -6
- package/build/model/document-allowed-extension.bo.js +7 -7
- package/build/model/form-question-response.bo.d.ts +10 -10
- package/build/model/form-question-response.bo.js +31 -31
- package/build/model/form.bo.d.ts +16 -16
- package/build/model/form.bo.js +13 -13
- package/build/model/get-postal-code-retrieval-output-params.d.ts +7 -7
- package/build/model/get-postal-code-retrieval-output-params.js +6 -6
- package/build/model/insured-interest.bo.d.ts +13 -13
- package/build/model/insured-interest.bo.js +39 -39
- package/build/model/language.bo.d.ts +5 -5
- package/build/model/language.bo.js +7 -7
- package/build/model/order-line-set-category.bo.d.ts +8 -8
- package/build/model/order-line-set-category.bo.js +7 -7
- package/build/model/own-risk.bo.d.ts +11 -11
- package/build/model/own-risk.bo.js +39 -39
- package/build/model/payment-condition-ledger-account.bo.d.ts +6 -6
- package/build/model/payment-condition-ledger-account.bo.js +7 -7
- package/build/model/payment-condition.bo.d.ts +11 -11
- package/build/model/payment-condition.bo.js +34 -34
- package/build/model/preset.bo.d.ts +12 -12
- package/build/model/preset.bo.js +16 -16
- package/build/model/printer.bo.d.ts +8 -8
- package/build/model/printer.bo.js +13 -13
- package/build/model/printing-service-request-data.d.ts +16 -16
- package/build/model/printing-service-request-data.js +2 -2
- package/build/model/privacy-setting.bo.d.ts +9 -9
- package/build/model/privacy-setting.bo.js +13 -13
- package/build/model/relation-small-object.bo.d.ts +28 -28
- package/build/model/relation-small-object.bo.js +63 -63
- package/build/model/remark.bo.d.ts +17 -17
- package/build/model/remark.bo.js +52 -52
- package/build/model/report-category.bo.d.ts +6 -6
- package/build/model/report-category.bo.js +7 -7
- package/build/model/report-layout-selection-base.bo.d.ts +9 -9
- package/build/model/report-layout-selection-base.bo.js +7 -7
- package/build/model/report-layout-selection-email.bo.d.ts +4 -4
- package/build/model/report-layout-selection-email.bo.js +7 -7
- package/build/model/report-layout-selection-print.bo.d.ts +5 -5
- package/build/model/report-layout-selection-print.bo.js +7 -7
- package/build/model/report-param.d.ts +16 -16
- package/build/model/report-param.js +9 -9
- package/build/model/reporting-document-base-request.d.ts +4 -4
- package/build/model/reporting-document-base-request.js +6 -6
- package/build/model/reporting-document-email-base-request.d.ts +5 -5
- package/build/model/reporting-document-email-base-request.js +7 -7
- package/build/model/reporting-document-email-sign-doc-base-request.d.ts +4 -4
- package/build/model/reporting-document-email-sign-doc-base-request.js +7 -7
- package/build/model/reporting-document-pdf-base-request.d.ts +3 -3
- package/build/model/reporting-document-pdf-base-request.js +7 -7
- package/build/model/reporting-document-print-base-request.d.ts +7 -7
- package/build/model/reporting-document-print-base-request.js +7 -7
- package/build/model/reporting-document-print-sign-doc-base-request.d.ts +4 -4
- package/build/model/reporting-document-print-sign-doc-base-request.js +7 -7
- package/build/model/send-method.bo.d.ts +5 -5
- package/build/model/send-method.bo.js +7 -7
- package/build/model/store-group.bo.d.ts +9 -9
- package/build/model/store-group.bo.js +7 -7
- package/build/model/tag-stock-item.bo.d.ts +24 -24
- package/build/model/tag-stock-item.bo.js +21 -21
- package/build/model/tag-tree-item.bo.d.ts +18 -18
- package/build/model/tag-tree-item.bo.js +52 -52
- package/build/model/tag.d.ts +11 -11
- package/build/model/tag.js +41 -41
- package/build/model/task-category.bo.d.ts +13 -13
- package/build/model/task-category.bo.js +28 -28
- package/build/model/task.bo.d.ts +83 -83
- package/build/model/task.bo.js +257 -257
- package/build/model/title.bo.d.ts +9 -9
- package/build/model/title.bo.js +13 -13
- package/build/model/transition.bo.d.ts +5 -5
- package/build/model/transition.bo.js +21 -21
- package/build/model/tree-object.d.ts +8 -8
- package/build/model/tree-object.js +29 -29
- package/build/model/user-group.bo.d.ts +13 -13
- package/build/model/user-group.bo.js +16 -16
- package/build/model/work.bo.d.ts +19 -19
- package/build/model/work.bo.js +53 -53
- package/build/model/workflow-generic-transition.bo.d.ts +22 -22
- package/build/model/workflow-generic-transition.bo.js +28 -28
- package/build/model/workflow-trigger.bo.d.ts +44 -44
- package/build/model/workflow-trigger.bo.js +52 -52
- package/build/model/workflow.bo.d.ts +36 -36
- package/build/model/workflow.bo.js +151 -151
- package/build/utils/css-utils.d.ts +18 -18
- package/build/utils/css-utils.js +148 -148
- package/build/utils/file-utils.d.ts +34 -34
- package/build/utils/file-utils.js +397 -397
- package/build/utils/time-utils.d.ts +6 -6
- package/build/utils/time-utils.js +44 -44
- package/package.json +3 -3
|
@@ -1,397 +1,397 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
22
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
23
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
24
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
25
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
26
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
27
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
-
exports.FileUtils = void 0;
|
|
32
|
-
const string_utils_1 = require("@colijnit/ioneconnector/build/utils/string-utils");
|
|
33
|
-
const file_type_internal_enum_1 = require("../enum/file-type-internal.enum");
|
|
34
|
-
const co_document_type_enum_1 = require("../enum/co-document-type.enum");
|
|
35
|
-
const co_document_1 = require("../model/co-document");
|
|
36
|
-
const number_utils_1 = require("@colijnit/ioneconnector/build/utils/number-utils");
|
|
37
|
-
const QRCode = __importStar(require("qrcode"));
|
|
38
|
-
const DefaultMaxUploadSize = 3145728;
|
|
39
|
-
class FileUtils {
|
|
40
|
-
static get DefaultMaxUploadSizeInMb() {
|
|
41
|
-
return DefaultMaxUploadSize / 1024 / 1024;
|
|
42
|
-
}
|
|
43
|
-
static getMaxUploadSizeInMb(sizeInBytes) {
|
|
44
|
-
return sizeInBytes ? sizeInBytes / 1024 / 1024 : DefaultMaxUploadSize / 1024 / 1024;
|
|
45
|
-
}
|
|
46
|
-
static DocumentBodyToDataUri(documentBody, mimeType) {
|
|
47
|
-
return string_utils_1.StringUtils.IsStringWithLength(documentBody) ? "data:" + mimeType + ";base64," + documentBody : "";
|
|
48
|
-
}
|
|
49
|
-
static FileNameToFileTypeInternal(fileName) {
|
|
50
|
-
if (!fileName) {
|
|
51
|
-
return file_type_internal_enum_1.FileTypeInternal.Undefined;
|
|
52
|
-
}
|
|
53
|
-
const stringParts = fileName.split(".");
|
|
54
|
-
const extension = stringParts[stringParts.length - 1];
|
|
55
|
-
switch (extension.toLowerCase()) {
|
|
56
|
-
case "pdn":
|
|
57
|
-
case "bmp":
|
|
58
|
-
case "gif":
|
|
59
|
-
case "jpg":
|
|
60
|
-
case "jpeg":
|
|
61
|
-
case "jpe":
|
|
62
|
-
case "jfif":
|
|
63
|
-
case "png":
|
|
64
|
-
case "tif":
|
|
65
|
-
case "tiff":
|
|
66
|
-
case "tga":
|
|
67
|
-
case "dds":
|
|
68
|
-
return file_type_internal_enum_1.FileTypeInternal.Image;
|
|
69
|
-
case "swf":
|
|
70
|
-
return file_type_internal_enum_1.FileTypeInternal.Swf;
|
|
71
|
-
case "xls":
|
|
72
|
-
case "xlsx":
|
|
73
|
-
return file_type_internal_enum_1.FileTypeInternal.ExcelSheet;
|
|
74
|
-
case "doc":
|
|
75
|
-
case "docx":
|
|
76
|
-
return file_type_internal_enum_1.FileTypeInternal.WordDocument;
|
|
77
|
-
case "pdf":
|
|
78
|
-
return file_type_internal_enum_1.FileTypeInternal.Pdf;
|
|
79
|
-
case "txt":
|
|
80
|
-
return file_type_internal_enum_1.FileTypeInternal.TextFile;
|
|
81
|
-
case "exe":
|
|
82
|
-
return file_type_internal_enum_1.FileTypeInternal.Executable;
|
|
83
|
-
default:
|
|
84
|
-
return file_type_internal_enum_1.FileTypeInternal.Undefined;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
static IsImageFile(file) {
|
|
88
|
-
if (!file) {
|
|
89
|
-
return false;
|
|
90
|
-
}
|
|
91
|
-
let fileName;
|
|
92
|
-
let mimeType;
|
|
93
|
-
if (file instanceof co_document_1.CoDocument) {
|
|
94
|
-
fileName = file.fileName;
|
|
95
|
-
mimeType = file.mimeTypeInternal;
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
fileName = file.name;
|
|
99
|
-
mimeType = file.type;
|
|
100
|
-
}
|
|
101
|
-
if (mimeType !== "") {
|
|
102
|
-
return mimeType.startsWith("image/");
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
return (FileUtils.FileNameToFileTypeInternal(fileName) === file_type_internal_enum_1.FileTypeInternal.Image);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
static GetGlobalFileType(document) {
|
|
109
|
-
if (!document) {
|
|
110
|
-
return file_type_internal_enum_1.FileTypeInternal.Undefined;
|
|
111
|
-
}
|
|
112
|
-
if (document.mimeType !== "") {
|
|
113
|
-
switch (document.mimeType) {
|
|
114
|
-
case "application/pdf":
|
|
115
|
-
return file_type_internal_enum_1.FileTypeInternal.Pdf;
|
|
116
|
-
case "application/msword":
|
|
117
|
-
return file_type_internal_enum_1.FileTypeInternal.WordDocument;
|
|
118
|
-
case "application/excel":
|
|
119
|
-
case "application/vnd.ms-excel":
|
|
120
|
-
case "application/x-excel":
|
|
121
|
-
case "application/x-msexcel":
|
|
122
|
-
return file_type_internal_enum_1.FileTypeInternal.ExcelSheet;
|
|
123
|
-
case "text/plain":
|
|
124
|
-
case "application/plain":
|
|
125
|
-
return file_type_internal_enum_1.FileTypeInternal.TextFile;
|
|
126
|
-
default:
|
|
127
|
-
return file_type_internal_enum_1.FileTypeInternal.Undefined;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
return FileUtils.FileNameToFileTypeInternal(document.fileName);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
static CheckMaxUploadSize(file, maxSizeInBytesFromParameter) {
|
|
135
|
-
let fileSize = 0;
|
|
136
|
-
if (file instanceof co_document_1.CoDocument) {
|
|
137
|
-
fileSize = number_utils_1.NumberUtils.ParseInt(file.fileSize);
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
fileSize = file.size;
|
|
141
|
-
}
|
|
142
|
-
const sizeToCompare = maxSizeInBytesFromParameter ? maxSizeInBytesFromParameter : DefaultMaxUploadSize;
|
|
143
|
-
return (fileSize <= sizeToCompare);
|
|
144
|
-
}
|
|
145
|
-
static CheckExtension(file, allowedExtensions) {
|
|
146
|
-
let filename = '';
|
|
147
|
-
if (file instanceof co_document_1.CoDocument) {
|
|
148
|
-
filename = file.fileName;
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
filename = file.name;
|
|
152
|
-
}
|
|
153
|
-
const extension = filename.substr(filename.lastIndexOf(".") + 1);
|
|
154
|
-
let isAllowed = false;
|
|
155
|
-
for (const allowedExtension of allowedExtensions) {
|
|
156
|
-
if (extension.toLowerCase() === allowedExtension.extension.toLowerCase()) {
|
|
157
|
-
isAllowed = true;
|
|
158
|
-
break;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
return isAllowed;
|
|
162
|
-
}
|
|
163
|
-
static ConvertFileToDataUri(file) {
|
|
164
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
165
|
-
if (file) {
|
|
166
|
-
return new Promise((resolve) => {
|
|
167
|
-
const fileReader = new FileReader();
|
|
168
|
-
fileReader.onload = () => {
|
|
169
|
-
resolve(fileReader.result);
|
|
170
|
-
};
|
|
171
|
-
fileReader.readAsDataURL(file);
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
static StripMimeStringFromDataUri(dataUri) {
|
|
177
|
-
if (!dataUri) {
|
|
178
|
-
return "";
|
|
179
|
-
}
|
|
180
|
-
const mimeString = this.GetMimeStringFromDataUri(dataUri);
|
|
181
|
-
return dataUri.substr(mimeString.length + 1);
|
|
182
|
-
}
|
|
183
|
-
static GetMimeStringFromDataUri(dataUri) {
|
|
184
|
-
if (!dataUri) {
|
|
185
|
-
return "";
|
|
186
|
-
}
|
|
187
|
-
return dataUri.split(",")[0];
|
|
188
|
-
}
|
|
189
|
-
static ConvertStringToArrayBuffer(stringData) {
|
|
190
|
-
if (!stringData) {
|
|
191
|
-
return undefined;
|
|
192
|
-
}
|
|
193
|
-
const arrayBuffer = new ArrayBuffer(stringData.length);
|
|
194
|
-
const bufView = new Uint8Array(arrayBuffer);
|
|
195
|
-
for (let i = 0, len = stringData.length; i < len; i++) {
|
|
196
|
-
bufView[i] = stringData.charCodeAt(i);
|
|
197
|
-
}
|
|
198
|
-
return bufView;
|
|
199
|
-
}
|
|
200
|
-
static ConvertByteArrayToString(byteArray) {
|
|
201
|
-
let str = "";
|
|
202
|
-
if (byteArray) {
|
|
203
|
-
for (let i = 0, len = byteArray.length; i < len; i++) {
|
|
204
|
-
str += String.fromCharCode(byteArray[i]);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
return str;
|
|
208
|
-
}
|
|
209
|
-
static StringIsImageDataUriOrURL(str) {
|
|
210
|
-
if (!str) {
|
|
211
|
-
return false;
|
|
212
|
-
}
|
|
213
|
-
const mimeString = str.split(",")[0];
|
|
214
|
-
if (this.ValidUrl(str) || mimeString.indexOf("base64") > -1) {
|
|
215
|
-
return true;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
static FixAssetUrl(assetUrl) {
|
|
219
|
-
if (!assetUrl) {
|
|
220
|
-
return "";
|
|
221
|
-
}
|
|
222
|
-
let fixedUrl;
|
|
223
|
-
if (assetUrl.indexOf("_webplayer") === -1) {
|
|
224
|
-
fixedUrl = assetUrl.replace(".unity3d", "_webplayer.ione3d");
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
fixedUrl = assetUrl.replace("_webplayer.unity3d", "_webplayer.ione3d");
|
|
228
|
-
}
|
|
229
|
-
fixedUrl = fixedUrl.replace("content/", "content43/");
|
|
230
|
-
if (!fixedUrl.endsWith(".gz")) {
|
|
231
|
-
fixedUrl = fixedUrl.concat(".gz");
|
|
232
|
-
}
|
|
233
|
-
return fixedUrl;
|
|
234
|
-
}
|
|
235
|
-
static MimeTypeFromFilename(fileName) {
|
|
236
|
-
const regEx = /(?:\.([^.]+))?$/;
|
|
237
|
-
const extension = regEx.exec(fileName)[1];
|
|
238
|
-
switch (extension) {
|
|
239
|
-
case "jpg":
|
|
240
|
-
case "jpeg":
|
|
241
|
-
return "image/jpeg";
|
|
242
|
-
case "png":
|
|
243
|
-
return "image/png";
|
|
244
|
-
case "bmp":
|
|
245
|
-
return "image/bmp";
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
static DownloadFile(fileName, content, mimeType = "text/plain") {
|
|
249
|
-
const element = document.createElement("a");
|
|
250
|
-
element.setAttribute("href", "data:" + mimeType + ";charset=utf-8," + encodeURIComponent(content));
|
|
251
|
-
element.setAttribute("download", fileName);
|
|
252
|
-
element.style.display = "none";
|
|
253
|
-
document.body.appendChild(element);
|
|
254
|
-
element.click();
|
|
255
|
-
document.body.removeChild(element);
|
|
256
|
-
}
|
|
257
|
-
static ReadAsText(file) {
|
|
258
|
-
return new Promise((resolve) => {
|
|
259
|
-
const reader = new FileReader();
|
|
260
|
-
reader.readAsText(file);
|
|
261
|
-
reader.onloadend = (event) => {
|
|
262
|
-
if (event.target.readyState === 2) {
|
|
263
|
-
resolve(event.target.result);
|
|
264
|
-
}
|
|
265
|
-
};
|
|
266
|
-
});
|
|
267
|
-
}
|
|
268
|
-
static readAsDataURL(file) {
|
|
269
|
-
return new Promise((resolve) => {
|
|
270
|
-
const reader = new FileReader();
|
|
271
|
-
reader.readAsDataURL(file);
|
|
272
|
-
reader.onloadend = (event) => {
|
|
273
|
-
if (event.target.readyState === 2) {
|
|
274
|
-
resolve(FileUtils.StripMimeStringFromDataUri(event.target.result));
|
|
275
|
-
}
|
|
276
|
-
};
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
static ReadFileAsNewCoDocument(file, resize = false, maxSizeInPixels = 1200) {
|
|
280
|
-
return new Promise((resolve) => {
|
|
281
|
-
const reader = new FileReader();
|
|
282
|
-
reader.readAsDataURL(file);
|
|
283
|
-
reader.onloadend = (event) => __awaiter(this, void 0, void 0, function* () {
|
|
284
|
-
if (event.target.readyState === 2) {
|
|
285
|
-
const coDocument = new co_document_1.CoDocument();
|
|
286
|
-
if (file.type.toLowerCase().indexOf("image") > -1 && resize) {
|
|
287
|
-
const src = yield FileUtils.ResizeImage(event.target.result, file.type, maxSizeInPixels);
|
|
288
|
-
const len = src.length - (src.indexOf(",") + 1);
|
|
289
|
-
const padding = (src.charAt(src.length - 2) === "=") ? 2 : ((src.charAt(src.length - 1) === "=") ? 1 : 0);
|
|
290
|
-
coDocument.documentBody = FileUtils.StripMimeStringFromDataUri(src);
|
|
291
|
-
coDocument.fileSize = (len * 0.75 - padding).toString();
|
|
292
|
-
}
|
|
293
|
-
else {
|
|
294
|
-
coDocument.documentBody = FileUtils.StripMimeStringFromDataUri(event.target.result);
|
|
295
|
-
coDocument.fileSize = file.size.toString();
|
|
296
|
-
}
|
|
297
|
-
coDocument.mimeTypeInternal = file.type;
|
|
298
|
-
coDocument.mimeType = file.type;
|
|
299
|
-
coDocument.fileName = file.name;
|
|
300
|
-
coDocument.documentType = co_document_type_enum_1.CoDocumentType.SaveAsDocument;
|
|
301
|
-
coDocument.description = file.name;
|
|
302
|
-
resolve(coDocument);
|
|
303
|
-
}
|
|
304
|
-
});
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
|
-
static ResizeImage(src, fileType, maxSizeInPixels) {
|
|
308
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
309
|
-
return new Promise((resolve) => {
|
|
310
|
-
const origImage = new Image();
|
|
311
|
-
origImage.onload = (ev) => {
|
|
312
|
-
const imgWidth = ev.target.width;
|
|
313
|
-
const imgHeight = ev.target.height;
|
|
314
|
-
if (imgWidth > maxSizeInPixels || imgHeight > maxSizeInPixels) {
|
|
315
|
-
const imgRatio = imgWidth / imgHeight;
|
|
316
|
-
const scale = imgWidth > imgHeight ? maxSizeInPixels / imgWidth : maxSizeInPixels / imgHeight;
|
|
317
|
-
const canvas = document.createElement("canvas");
|
|
318
|
-
canvas.width = imgWidth * scale;
|
|
319
|
-
canvas.height = imgHeight * scale;
|
|
320
|
-
const tileCtx = canvas.getContext("2d");
|
|
321
|
-
tileCtx.drawImage(origImage, 0, 0, canvas.width, canvas.height);
|
|
322
|
-
src = canvas.toDataURL(fileType.toLowerCase().indexOf("jp") > -1 ? "image/jpeg" : "image/png", 1);
|
|
323
|
-
}
|
|
324
|
-
return resolve(src);
|
|
325
|
-
};
|
|
326
|
-
origImage.src = src;
|
|
327
|
-
});
|
|
328
|
-
});
|
|
329
|
-
}
|
|
330
|
-
static ReadFileAsDataURL(file) {
|
|
331
|
-
return new Promise((resolve) => {
|
|
332
|
-
const reader = new FileReader();
|
|
333
|
-
reader.onloadend = (event) => {
|
|
334
|
-
if (event.target.readyState === FileReader.DONE && (typeof reader.result === "string")) {
|
|
335
|
-
resolve(event.target.result);
|
|
336
|
-
}
|
|
337
|
-
};
|
|
338
|
-
reader.readAsDataURL(file);
|
|
339
|
-
});
|
|
340
|
-
}
|
|
341
|
-
static DataURLtoFile(dataURL, filename) {
|
|
342
|
-
const arr = dataURL.split(",");
|
|
343
|
-
const mime = arr[0].match(/:(.*?);/)[1];
|
|
344
|
-
const bstr = atob(arr[1]);
|
|
345
|
-
let n = bstr.length;
|
|
346
|
-
const u8arr = new Uint8Array(n);
|
|
347
|
-
while (n--) {
|
|
348
|
-
u8arr[n] = bstr.charCodeAt(n);
|
|
349
|
-
}
|
|
350
|
-
return new File([u8arr], filename, { type: mime });
|
|
351
|
-
}
|
|
352
|
-
static GetExtensionFromDataUri(dataUri) {
|
|
353
|
-
const data = dataUri;
|
|
354
|
-
return data.replace(/(data:image\/)(.*?)(;base64.*)/gi, "$2");
|
|
355
|
-
}
|
|
356
|
-
static CreateDownloadFileNameFromBase64(dataUri) {
|
|
357
|
-
const ext = this.GetExtensionFromDataUri(dataUri);
|
|
358
|
-
return "preview." + ext;
|
|
359
|
-
}
|
|
360
|
-
static DownloadFromDataUri(dataUri, fileName) {
|
|
361
|
-
if (FileUtils.ValidUrl(dataUri)) {
|
|
362
|
-
window.open(dataUri, "_blank");
|
|
363
|
-
}
|
|
364
|
-
else {
|
|
365
|
-
const link = document.createElement("a");
|
|
366
|
-
link.download = fileName;
|
|
367
|
-
link.href = dataUri;
|
|
368
|
-
document.body.appendChild(link);
|
|
369
|
-
link.click();
|
|
370
|
-
document.body.removeChild(link);
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
static ValidUrl(stringToCheck) {
|
|
374
|
-
try {
|
|
375
|
-
const url = new URL(stringToCheck);
|
|
376
|
-
if (!!url) {
|
|
377
|
-
return url.protocol && url.protocol !== "data:" && url.protocol.indexOf("http") > -1;
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
catch (e) {
|
|
381
|
-
return false;
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
static ReplaceExtension(fileName, newExtension) {
|
|
385
|
-
const regEx = /(.+?)(\.[^.]*$|$)/;
|
|
386
|
-
const base = regEx.exec(fileName)[1];
|
|
387
|
-
return base + "." + newExtension;
|
|
388
|
-
}
|
|
389
|
-
static GenerateQRCode(url) {
|
|
390
|
-
let content = "";
|
|
391
|
-
QRCode.toDataURL(url, { errorCorrectionLevel: "H" }, (err, output) => {
|
|
392
|
-
content = output;
|
|
393
|
-
});
|
|
394
|
-
return content;
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
exports.FileUtils = FileUtils;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
22
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
23
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
24
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
25
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
26
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
27
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.FileUtils = void 0;
|
|
32
|
+
const string_utils_1 = require("@colijnit/ioneconnector/build/utils/string-utils");
|
|
33
|
+
const file_type_internal_enum_1 = require("../enum/file-type-internal.enum");
|
|
34
|
+
const co_document_type_enum_1 = require("../enum/co-document-type.enum");
|
|
35
|
+
const co_document_1 = require("../model/co-document");
|
|
36
|
+
const number_utils_1 = require("@colijnit/ioneconnector/build/utils/number-utils");
|
|
37
|
+
const QRCode = __importStar(require("qrcode"));
|
|
38
|
+
const DefaultMaxUploadSize = 3145728;
|
|
39
|
+
class FileUtils {
|
|
40
|
+
static get DefaultMaxUploadSizeInMb() {
|
|
41
|
+
return DefaultMaxUploadSize / 1024 / 1024;
|
|
42
|
+
}
|
|
43
|
+
static getMaxUploadSizeInMb(sizeInBytes) {
|
|
44
|
+
return sizeInBytes ? sizeInBytes / 1024 / 1024 : DefaultMaxUploadSize / 1024 / 1024;
|
|
45
|
+
}
|
|
46
|
+
static DocumentBodyToDataUri(documentBody, mimeType) {
|
|
47
|
+
return string_utils_1.StringUtils.IsStringWithLength(documentBody) ? "data:" + mimeType + ";base64," + documentBody : "";
|
|
48
|
+
}
|
|
49
|
+
static FileNameToFileTypeInternal(fileName) {
|
|
50
|
+
if (!fileName) {
|
|
51
|
+
return file_type_internal_enum_1.FileTypeInternal.Undefined;
|
|
52
|
+
}
|
|
53
|
+
const stringParts = fileName.split(".");
|
|
54
|
+
const extension = stringParts[stringParts.length - 1];
|
|
55
|
+
switch (extension.toLowerCase()) {
|
|
56
|
+
case "pdn":
|
|
57
|
+
case "bmp":
|
|
58
|
+
case "gif":
|
|
59
|
+
case "jpg":
|
|
60
|
+
case "jpeg":
|
|
61
|
+
case "jpe":
|
|
62
|
+
case "jfif":
|
|
63
|
+
case "png":
|
|
64
|
+
case "tif":
|
|
65
|
+
case "tiff":
|
|
66
|
+
case "tga":
|
|
67
|
+
case "dds":
|
|
68
|
+
return file_type_internal_enum_1.FileTypeInternal.Image;
|
|
69
|
+
case "swf":
|
|
70
|
+
return file_type_internal_enum_1.FileTypeInternal.Swf;
|
|
71
|
+
case "xls":
|
|
72
|
+
case "xlsx":
|
|
73
|
+
return file_type_internal_enum_1.FileTypeInternal.ExcelSheet;
|
|
74
|
+
case "doc":
|
|
75
|
+
case "docx":
|
|
76
|
+
return file_type_internal_enum_1.FileTypeInternal.WordDocument;
|
|
77
|
+
case "pdf":
|
|
78
|
+
return file_type_internal_enum_1.FileTypeInternal.Pdf;
|
|
79
|
+
case "txt":
|
|
80
|
+
return file_type_internal_enum_1.FileTypeInternal.TextFile;
|
|
81
|
+
case "exe":
|
|
82
|
+
return file_type_internal_enum_1.FileTypeInternal.Executable;
|
|
83
|
+
default:
|
|
84
|
+
return file_type_internal_enum_1.FileTypeInternal.Undefined;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
static IsImageFile(file) {
|
|
88
|
+
if (!file) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
let fileName;
|
|
92
|
+
let mimeType;
|
|
93
|
+
if (file instanceof co_document_1.CoDocument) {
|
|
94
|
+
fileName = file.fileName;
|
|
95
|
+
mimeType = file.mimeTypeInternal;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
fileName = file.name;
|
|
99
|
+
mimeType = file.type;
|
|
100
|
+
}
|
|
101
|
+
if (mimeType !== "") {
|
|
102
|
+
return mimeType.startsWith("image/");
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
return (FileUtils.FileNameToFileTypeInternal(fileName) === file_type_internal_enum_1.FileTypeInternal.Image);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
static GetGlobalFileType(document) {
|
|
109
|
+
if (!document) {
|
|
110
|
+
return file_type_internal_enum_1.FileTypeInternal.Undefined;
|
|
111
|
+
}
|
|
112
|
+
if (document.mimeType !== "") {
|
|
113
|
+
switch (document.mimeType) {
|
|
114
|
+
case "application/pdf":
|
|
115
|
+
return file_type_internal_enum_1.FileTypeInternal.Pdf;
|
|
116
|
+
case "application/msword":
|
|
117
|
+
return file_type_internal_enum_1.FileTypeInternal.WordDocument;
|
|
118
|
+
case "application/excel":
|
|
119
|
+
case "application/vnd.ms-excel":
|
|
120
|
+
case "application/x-excel":
|
|
121
|
+
case "application/x-msexcel":
|
|
122
|
+
return file_type_internal_enum_1.FileTypeInternal.ExcelSheet;
|
|
123
|
+
case "text/plain":
|
|
124
|
+
case "application/plain":
|
|
125
|
+
return file_type_internal_enum_1.FileTypeInternal.TextFile;
|
|
126
|
+
default:
|
|
127
|
+
return file_type_internal_enum_1.FileTypeInternal.Undefined;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
return FileUtils.FileNameToFileTypeInternal(document.fileName);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
static CheckMaxUploadSize(file, maxSizeInBytesFromParameter) {
|
|
135
|
+
let fileSize = 0;
|
|
136
|
+
if (file instanceof co_document_1.CoDocument) {
|
|
137
|
+
fileSize = number_utils_1.NumberUtils.ParseInt(file.fileSize);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
fileSize = file.size;
|
|
141
|
+
}
|
|
142
|
+
const sizeToCompare = maxSizeInBytesFromParameter ? maxSizeInBytesFromParameter : DefaultMaxUploadSize;
|
|
143
|
+
return (fileSize <= sizeToCompare);
|
|
144
|
+
}
|
|
145
|
+
static CheckExtension(file, allowedExtensions) {
|
|
146
|
+
let filename = '';
|
|
147
|
+
if (file instanceof co_document_1.CoDocument) {
|
|
148
|
+
filename = file.fileName;
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
filename = file.name;
|
|
152
|
+
}
|
|
153
|
+
const extension = filename.substr(filename.lastIndexOf(".") + 1);
|
|
154
|
+
let isAllowed = false;
|
|
155
|
+
for (const allowedExtension of allowedExtensions) {
|
|
156
|
+
if (extension.toLowerCase() === allowedExtension.extension.toLowerCase()) {
|
|
157
|
+
isAllowed = true;
|
|
158
|
+
break;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return isAllowed;
|
|
162
|
+
}
|
|
163
|
+
static ConvertFileToDataUri(file) {
|
|
164
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
165
|
+
if (file) {
|
|
166
|
+
return new Promise((resolve) => {
|
|
167
|
+
const fileReader = new FileReader();
|
|
168
|
+
fileReader.onload = () => {
|
|
169
|
+
resolve(fileReader.result);
|
|
170
|
+
};
|
|
171
|
+
fileReader.readAsDataURL(file);
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
static StripMimeStringFromDataUri(dataUri) {
|
|
177
|
+
if (!dataUri) {
|
|
178
|
+
return "";
|
|
179
|
+
}
|
|
180
|
+
const mimeString = this.GetMimeStringFromDataUri(dataUri);
|
|
181
|
+
return dataUri.substr(mimeString.length + 1);
|
|
182
|
+
}
|
|
183
|
+
static GetMimeStringFromDataUri(dataUri) {
|
|
184
|
+
if (!dataUri) {
|
|
185
|
+
return "";
|
|
186
|
+
}
|
|
187
|
+
return dataUri.split(",")[0];
|
|
188
|
+
}
|
|
189
|
+
static ConvertStringToArrayBuffer(stringData) {
|
|
190
|
+
if (!stringData) {
|
|
191
|
+
return undefined;
|
|
192
|
+
}
|
|
193
|
+
const arrayBuffer = new ArrayBuffer(stringData.length);
|
|
194
|
+
const bufView = new Uint8Array(arrayBuffer);
|
|
195
|
+
for (let i = 0, len = stringData.length; i < len; i++) {
|
|
196
|
+
bufView[i] = stringData.charCodeAt(i);
|
|
197
|
+
}
|
|
198
|
+
return bufView;
|
|
199
|
+
}
|
|
200
|
+
static ConvertByteArrayToString(byteArray) {
|
|
201
|
+
let str = "";
|
|
202
|
+
if (byteArray) {
|
|
203
|
+
for (let i = 0, len = byteArray.length; i < len; i++) {
|
|
204
|
+
str += String.fromCharCode(byteArray[i]);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return str;
|
|
208
|
+
}
|
|
209
|
+
static StringIsImageDataUriOrURL(str) {
|
|
210
|
+
if (!str) {
|
|
211
|
+
return false;
|
|
212
|
+
}
|
|
213
|
+
const mimeString = str.split(",")[0];
|
|
214
|
+
if (this.ValidUrl(str) || mimeString.indexOf("base64") > -1) {
|
|
215
|
+
return true;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
static FixAssetUrl(assetUrl) {
|
|
219
|
+
if (!assetUrl) {
|
|
220
|
+
return "";
|
|
221
|
+
}
|
|
222
|
+
let fixedUrl;
|
|
223
|
+
if (assetUrl.indexOf("_webplayer") === -1) {
|
|
224
|
+
fixedUrl = assetUrl.replace(".unity3d", "_webplayer.ione3d");
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
fixedUrl = assetUrl.replace("_webplayer.unity3d", "_webplayer.ione3d");
|
|
228
|
+
}
|
|
229
|
+
fixedUrl = fixedUrl.replace("content/", "content43/");
|
|
230
|
+
if (!fixedUrl.endsWith(".gz")) {
|
|
231
|
+
fixedUrl = fixedUrl.concat(".gz");
|
|
232
|
+
}
|
|
233
|
+
return fixedUrl;
|
|
234
|
+
}
|
|
235
|
+
static MimeTypeFromFilename(fileName) {
|
|
236
|
+
const regEx = /(?:\.([^.]+))?$/;
|
|
237
|
+
const extension = regEx.exec(fileName)[1];
|
|
238
|
+
switch (extension) {
|
|
239
|
+
case "jpg":
|
|
240
|
+
case "jpeg":
|
|
241
|
+
return "image/jpeg";
|
|
242
|
+
case "png":
|
|
243
|
+
return "image/png";
|
|
244
|
+
case "bmp":
|
|
245
|
+
return "image/bmp";
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
static DownloadFile(fileName, content, mimeType = "text/plain") {
|
|
249
|
+
const element = document.createElement("a");
|
|
250
|
+
element.setAttribute("href", "data:" + mimeType + ";charset=utf-8," + encodeURIComponent(content));
|
|
251
|
+
element.setAttribute("download", fileName);
|
|
252
|
+
element.style.display = "none";
|
|
253
|
+
document.body.appendChild(element);
|
|
254
|
+
element.click();
|
|
255
|
+
document.body.removeChild(element);
|
|
256
|
+
}
|
|
257
|
+
static ReadAsText(file) {
|
|
258
|
+
return new Promise((resolve) => {
|
|
259
|
+
const reader = new FileReader();
|
|
260
|
+
reader.readAsText(file);
|
|
261
|
+
reader.onloadend = (event) => {
|
|
262
|
+
if (event.target.readyState === 2) {
|
|
263
|
+
resolve(event.target.result);
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
static readAsDataURL(file) {
|
|
269
|
+
return new Promise((resolve) => {
|
|
270
|
+
const reader = new FileReader();
|
|
271
|
+
reader.readAsDataURL(file);
|
|
272
|
+
reader.onloadend = (event) => {
|
|
273
|
+
if (event.target.readyState === 2) {
|
|
274
|
+
resolve(FileUtils.StripMimeStringFromDataUri(event.target.result));
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
static ReadFileAsNewCoDocument(file, resize = false, maxSizeInPixels = 1200) {
|
|
280
|
+
return new Promise((resolve) => {
|
|
281
|
+
const reader = new FileReader();
|
|
282
|
+
reader.readAsDataURL(file);
|
|
283
|
+
reader.onloadend = (event) => __awaiter(this, void 0, void 0, function* () {
|
|
284
|
+
if (event.target.readyState === 2) {
|
|
285
|
+
const coDocument = new co_document_1.CoDocument();
|
|
286
|
+
if (file.type.toLowerCase().indexOf("image") > -1 && resize) {
|
|
287
|
+
const src = yield FileUtils.ResizeImage(event.target.result, file.type, maxSizeInPixels);
|
|
288
|
+
const len = src.length - (src.indexOf(",") + 1);
|
|
289
|
+
const padding = (src.charAt(src.length - 2) === "=") ? 2 : ((src.charAt(src.length - 1) === "=") ? 1 : 0);
|
|
290
|
+
coDocument.documentBody = FileUtils.StripMimeStringFromDataUri(src);
|
|
291
|
+
coDocument.fileSize = (len * 0.75 - padding).toString();
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
coDocument.documentBody = FileUtils.StripMimeStringFromDataUri(event.target.result);
|
|
295
|
+
coDocument.fileSize = file.size.toString();
|
|
296
|
+
}
|
|
297
|
+
coDocument.mimeTypeInternal = file.type;
|
|
298
|
+
coDocument.mimeType = file.type;
|
|
299
|
+
coDocument.fileName = file.name;
|
|
300
|
+
coDocument.documentType = co_document_type_enum_1.CoDocumentType.SaveAsDocument;
|
|
301
|
+
coDocument.description = file.name;
|
|
302
|
+
resolve(coDocument);
|
|
303
|
+
}
|
|
304
|
+
});
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
static ResizeImage(src, fileType, maxSizeInPixels) {
|
|
308
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
309
|
+
return new Promise((resolve) => {
|
|
310
|
+
const origImage = new Image();
|
|
311
|
+
origImage.onload = (ev) => {
|
|
312
|
+
const imgWidth = ev.target.width;
|
|
313
|
+
const imgHeight = ev.target.height;
|
|
314
|
+
if (imgWidth > maxSizeInPixels || imgHeight > maxSizeInPixels) {
|
|
315
|
+
const imgRatio = imgWidth / imgHeight;
|
|
316
|
+
const scale = imgWidth > imgHeight ? maxSizeInPixels / imgWidth : maxSizeInPixels / imgHeight;
|
|
317
|
+
const canvas = document.createElement("canvas");
|
|
318
|
+
canvas.width = imgWidth * scale;
|
|
319
|
+
canvas.height = imgHeight * scale;
|
|
320
|
+
const tileCtx = canvas.getContext("2d");
|
|
321
|
+
tileCtx.drawImage(origImage, 0, 0, canvas.width, canvas.height);
|
|
322
|
+
src = canvas.toDataURL(fileType.toLowerCase().indexOf("jp") > -1 ? "image/jpeg" : "image/png", 1);
|
|
323
|
+
}
|
|
324
|
+
return resolve(src);
|
|
325
|
+
};
|
|
326
|
+
origImage.src = src;
|
|
327
|
+
});
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
static ReadFileAsDataURL(file) {
|
|
331
|
+
return new Promise((resolve) => {
|
|
332
|
+
const reader = new FileReader();
|
|
333
|
+
reader.onloadend = (event) => {
|
|
334
|
+
if (event.target.readyState === FileReader.DONE && (typeof reader.result === "string")) {
|
|
335
|
+
resolve(event.target.result);
|
|
336
|
+
}
|
|
337
|
+
};
|
|
338
|
+
reader.readAsDataURL(file);
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
static DataURLtoFile(dataURL, filename) {
|
|
342
|
+
const arr = dataURL.split(",");
|
|
343
|
+
const mime = arr[0].match(/:(.*?);/)[1];
|
|
344
|
+
const bstr = atob(arr[1]);
|
|
345
|
+
let n = bstr.length;
|
|
346
|
+
const u8arr = new Uint8Array(n);
|
|
347
|
+
while (n--) {
|
|
348
|
+
u8arr[n] = bstr.charCodeAt(n);
|
|
349
|
+
}
|
|
350
|
+
return new File([u8arr], filename, { type: mime });
|
|
351
|
+
}
|
|
352
|
+
static GetExtensionFromDataUri(dataUri) {
|
|
353
|
+
const data = dataUri;
|
|
354
|
+
return data.replace(/(data:image\/)(.*?)(;base64.*)/gi, "$2");
|
|
355
|
+
}
|
|
356
|
+
static CreateDownloadFileNameFromBase64(dataUri) {
|
|
357
|
+
const ext = this.GetExtensionFromDataUri(dataUri);
|
|
358
|
+
return "preview." + ext;
|
|
359
|
+
}
|
|
360
|
+
static DownloadFromDataUri(dataUri, fileName) {
|
|
361
|
+
if (FileUtils.ValidUrl(dataUri)) {
|
|
362
|
+
window.open(dataUri, "_blank");
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
const link = document.createElement("a");
|
|
366
|
+
link.download = fileName;
|
|
367
|
+
link.href = dataUri;
|
|
368
|
+
document.body.appendChild(link);
|
|
369
|
+
link.click();
|
|
370
|
+
document.body.removeChild(link);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
static ValidUrl(stringToCheck) {
|
|
374
|
+
try {
|
|
375
|
+
const url = new URL(stringToCheck);
|
|
376
|
+
if (!!url) {
|
|
377
|
+
return url.protocol && url.protocol !== "data:" && url.protocol.indexOf("http") > -1;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
catch (e) {
|
|
381
|
+
return false;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
static ReplaceExtension(fileName, newExtension) {
|
|
385
|
+
const regEx = /(.+?)(\.[^.]*$|$)/;
|
|
386
|
+
const base = regEx.exec(fileName)[1];
|
|
387
|
+
return base + "." + newExtension;
|
|
388
|
+
}
|
|
389
|
+
static GenerateQRCode(url) {
|
|
390
|
+
let content = "";
|
|
391
|
+
QRCode.toDataURL(url, { errorCorrectionLevel: "H" }, (err, output) => {
|
|
392
|
+
content = output;
|
|
393
|
+
});
|
|
394
|
+
return content;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
exports.FileUtils = FileUtils;
|