{"version":3,"sources":["webpack:///./node_modules/core-js/modules/web.url-search-params.has.js","webpack:///./src/mixins/shared/downloadable/downloadableMixin.js","webpack:///./src/services/dom/domService.js","webpack:///./node_modules/core-js/modules/web.url-search-params.size.js","webpack:///./src/services/dom/fileSystemAccessService.js","webpack:///./node_modules/core-js/modules/web.url-search-params.delete.js","webpack:///./node_modules/core-js/internals/validate-arguments-length.js","webpack:///./src/services/dom/windowService.js","webpack:///./src/model/document/documentModel.js","webpack:///./src/model/query/queryModel.js","webpack:///./src/model/common/dataTable/dataTableConst.js"],"names":["defineBuiltIn","uncurryThis","toString","validateArgumentsLength","$URLSearchParams","URLSearchParams","URLSearchParamsPrototype","prototype","getAll","$has","has","params","undefined","name","length","arguments","$value","this","values","value","index","enumerable","unsafe","mapActions","createNamespacedHelpers","downloadableMixin","mixins","baseComponentMixin","principalMixin","data","iconDownload","methods","downloadImageFileVersion","downloadImageFileVersionAsPdf","downloadCompoundAsPdf","downloadFileVersion","downloadEmptyRecordWip","downloadEmptyRecordWipAsPdf","downloadFileWip","downloadFileWipAsPdf","downloadPdfFileVersion","downloadFileEdit","downloadFileEditAsPdf","downloadFileExport","downloadFileExportAsPdf","createFileDownloadPayload","id","version","includeAnnotations","includeRedaction","burnIntoImage","burnRedaction","maintainColor","downloadOptions","AnnotationOptionQueryModel","createCompoundDocumentDownloadPayload","releaseFile","notImplementedMethod","checkOutFile","releaseCheckedOutFile","releaseWIPFile","releaseWIPRecord","record","downloadType","fieldDownloadType","asItIs","downloadFileOption","downloadMode","downloadFileMode","default","isEmail","isBatchDownload","isBatchedEmail","_record$name","_record$checkOutExten","_record$extension","operation","findRecordOperation","recordOperation","Download","action","label","recordType","fullRecordVersionName","isWip","wip","pdf","extensionName","fileName","isCompound","isCompoundDocument","response","performDownload","blob","createBlob","console","log","isCheckedOutForSigning","IsCheckedOutForDigitalSigningByPrinciple","principal","extension","localFileFirstOrDefaultExtension","view","checkOutExtension","fullFileName","result","createActionResultSuccess","emailFile","saveFile","actionResultType","abort","createActionResultAbort","e","createActionResultError","createCompoundDocumentPayload","_downloadFileOption$i","_downloadFileOption$i2","_downloadFileOption$b","_downloadFileOption$b2","_downloadFileOption$m","createFilePayload","_downloadFileOption$i3","_downloadFileOption$i4","_downloadFileOption$b3","_downloadFileOption$b4","_downloadFileOption$m2","payload","recordTypeId","downloadWipFile","viewerExport","downloadExportFile","downloadViewFile","FILE","localFileExists","isPdf","asPdf","printFileOption","_printFileOption$burn","_printFileOption$burn2","_printFileOption$burn3","_printFileOption$burn4","Print","option","burnAnnotations","createPrintFileAnchor","annotationModel","_record$id","_record$version","_record$recordTypeId","performDownloadFileMode","isCheckedOutByPrincipal","downloadEditFile","isAncestorMeeting","downloadAgendaFile","isPdfExtension","createDownloadFileAnchor","ext","el","document","createElement","href","window","URL","createObjectURL","download","style","display","body","appendChild","click","removeChild","downloadEMLFile","_blob$type","blobType","type","boundary","emlBuilder","reader","FileReader","onload","event","blobData","target","split","emlBlob","Blob","downloadLink","error","readAsDataURL","downloadBatchEMLFile","blobs","attachmentsProcessed","processAttachment","forEach","element","iframe","src","setTimeout","focus","contentWindow","print","DESCRIPTORS","defineBuiltInAccessor","get","count","configurable","async","showSaveFilePicker","isSignedFile","excludeAcceptAllOption","multiple","options","suggestedName","types","description","accept","showOpenFilePicker","writeFile","fileHandle","contents","writable","createWritable","write","close","getFileContents","acceptExtension","contentType","readType","readAsText","Promise","resolve","reject","input","onchange","_e$target","files","file","maxAllowedSize","size","readerEvent","content","JSON","parse","onerror","text","warn","exceptionNames","AbortError","supportsFileSystemAccess","browserName","emailFiles","openFile","getFile","supportedByWindow","Object","freeze","directory","granted","read","readwrite","readAsUrl","append","$delete","push","entries","v","k","key","entry","dindex","found","entriesLength","$TypeError","TypeError","module","exports","passed","required","navigator","appName","isMobile","_window$navigator$use","_window","userAgentData","mobile","fieldName","category","createdBy","creationDate","modificationDate","flags","hasImage","owner","pageCount","state","versionDate","fieldLabel","mapHeadersSearchableRecordProps","headerValue","propName","searchableProperty","typeId","pages","createdDateFrom","creator","modifiedDateFrom","stateId","headers","visible","isPublicAccess","headerText","actions","headerName","sortable","align","Id","Name","Owner","Creator","CreatedDateFrom","CreatedDateTo","ModifiedDateFrom","ModifiedDateTo","CategoryId","TypeId","StateId","Extension","Version","Pages","Fields","IncludeAnnotations","IncludeRedaction","BurnIntoImage","EmbedIntoImage","BurnRedaction","MaintainColor"],"mappings":"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","file":"js/chunk-22f6dcf0.944ef081.js","sourcesContent":["'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $has(this, name);\n var values = getAll(this, name); // also validates `this`\n validateArgumentsLength(length, 1);\n var value = toString($value);\n var index = 0;\n while (index < values.length) {\n if (values[index++] === value) return true;\n } return false;\n }, { enumerable: true, unsafe: true });\n}\n","// utils\r\nimport { createBlob } from \"@/utils\";\r\n\r\n// design\r\nimport { iconDownload } from \"@/design/icon/iconConst\";\r\n\r\n// model\r\nimport { fieldDownloadType } from \"@/model/document/documentModel\";\r\nimport { AnnotationOptionQueryModel } from \"@/model/query/queryModel\";\r\nimport {\r\n downloadFileMode,\r\n extensionName,\r\n isPdfExtension\r\n} from \"@/model/record/fileModel\";\r\n\r\n// services\r\nimport { notImplementedMethod } from \"@/services/error/errorMessages\";\r\nimport { emailFile, saveFile } from \"@/services/dom/fileSystemAccessService\";\r\n\r\nimport { createPrintFileAnchor } from \"@/services/dom/domService\";\r\n\r\n// vuex\r\nimport { createNamespacedHelpers } from \"vuex\";\r\n// mixins\r\nimport { baseComponentMixin } from \"@/mixins/shared/base/component/baseComponentMixin\";\r\n\r\nimport {\r\n actionResultType,\r\n createActionResultAbort,\r\n //actionResultType,\r\n createActionResultError,\r\n createActionResultSuccess\r\n} from \"@/model/action/actionModel\";\r\nimport {\r\n findRecordOperation,\r\n recordOperation,\r\n recordType\r\n} from \"@/model/record/recordModel\";\r\nimport {\r\n fullRecordVersionName,\r\n isAncestorMeeting,\r\n isCheckedOutByPrincipal,\r\n IsCheckedOutForDigitalSigningByPrinciple,\r\n isCompoundDocument,\r\n localFileExists,\r\n localFileFirstOrDefaultExtension\r\n} from \"@/services/record/recordService\";\r\nimport { principalMixin } from \"@/mixins/shared/user/principalMixin\";\r\n\r\nconst { mapActions } = createNamespacedHelpers(\"document\");\r\n\r\nexport const downloadableMixin = {\r\n mixins: [baseComponentMixin, principalMixin],\r\n data() {\r\n return {\r\n iconDownload: iconDownload\r\n };\r\n },\r\n methods: {\r\n ...mapActions({\r\n downloadImageFileVersion: \"downloadImageFileVersion\",\r\n downloadImageFileVersionAsPdf: \"downloadFileVersionAsPdf\",\r\n downloadCompoundAsPdf: \"downloadCompoundAsPdf\",\r\n downloadFileVersion: \"downloadFileVersion\",\r\n downloadEmptyRecordWip: \"downloadEmptyRecordWip\",\r\n downloadEmptyRecordWipAsPdf: \"downloadEmptyRecordWipAsPdf\",\r\n downloadFileWip: \"downloadFileWip\",\r\n downloadFileWipAsPdf: \"downloadFileWipAsPdf\",\r\n downloadPdfFileVersion: \"downloadPdfFileVersion\",\r\n downloadFileEdit: \"downloadFileEdit\",\r\n downloadFileEditAsPdf: \"downloadFileEditAsPdf\",\r\n downloadFileExport: \"downloadExportFileVersion\",\r\n downloadFileExportAsPdf: \"downloadExportFileVersionAsPdf\"\r\n }),\r\n /**\r\n * preparePayload\r\n * @param {number} id\r\n * @param {number} version\r\n * @param {boolean} includeAnnotations\r\n * @param {boolean} includeRedaction\r\n * @param {boolean} burnIntoImage\r\n * @param {boolean} burnRedaction\r\n * @param {boolean} maintainColor\r\n * @return {any}\r\n */\r\n createFileDownloadPayload(\r\n id,\r\n version,\r\n includeAnnotations,\r\n includeRedaction,\r\n burnIntoImage,\r\n burnRedaction,\r\n maintainColor\r\n ) {\r\n const downloadOptions = AnnotationOptionQueryModel(\r\n includeAnnotations,\r\n includeRedaction,\r\n burnIntoImage,\r\n maintainColor,\r\n burnRedaction\r\n );\r\n\r\n return {\r\n id: id,\r\n version: version,\r\n downloadOptions: downloadOptions\r\n };\r\n },\r\n\r\n /**\r\n * create Compound Document Download Payload\r\n * @param {number|Number} id Compound Document id\r\n * @param {boolean} includeAnnotations\r\n * @param {boolean} includeRedaction\r\n * @param {boolean} burnIntoImage\r\n * @param {boolean} burnRedaction\r\n * @param {boolean} maintainColor\r\n * @return {{downloadOptions: {IncludeRedaction: boolean, EmbedIntoImage: boolean, IncludeAnnotations: boolean, BurnRedaction: boolean, MaintainColor: boolean, BurnIntoImage: boolean}, id}}\r\n */\r\n createCompoundDocumentDownloadPayload(\r\n id,\r\n includeAnnotations,\r\n includeRedaction,\r\n burnIntoImage,\r\n burnRedaction,\r\n maintainColor\r\n ) {\r\n const downloadOptions = AnnotationOptionQueryModel(\r\n includeAnnotations,\r\n includeRedaction,\r\n burnIntoImage,\r\n maintainColor,\r\n burnRedaction\r\n );\r\n\r\n return {\r\n id: id,\r\n downloadOptions: downloadOptions\r\n };\r\n },\r\n\r\n /**\r\n * Abstract Release File\r\n * @param {Number|number} id\r\n */\r\n releaseFile(id) {\r\n throw notImplementedMethod(`releaseFile() id: ${id}`);\r\n },\r\n\r\n /**\r\n * Abstract Check Out File\r\n * @param {Number|number} id\r\n */\r\n checkOutFile(id) {\r\n throw notImplementedMethod(`checkOutFile() id: ${id}`);\r\n },\r\n\r\n /**\r\n * Abstract Release CheckedOut File\r\n * @param {Number|number} id\r\n */\r\n releaseCheckedOutFile(id) {\r\n throw notImplementedMethod(`releaseCheckedOutFile() id: ${id}`);\r\n },\r\n\r\n /**\r\n * Abstract Release WIP File\r\n * @param {Number|number} id\r\n */\r\n releaseWIPFile(id) {\r\n throw notImplementedMethod(`releaseWIPFile() id: ${id}`);\r\n },\r\n\r\n /**\r\n * Abstract Release Record\r\n * @param {Number|number} id\r\n */\r\n releaseWIPRecord(id) {\r\n throw notImplementedMethod(`releaseFile() id: ${id}`);\r\n },\r\n\r\n /**\r\n * onDownloadFile\r\n * @param {{id:number, name:string, categoryId:number, extension:string, flags:number, hasImage:boolean, recordTypeId:number, recordType:string, creationDate:string, modificationDate:string, version:number, versionDate:string, pages:number, owner:string, createdBy:string, isSingleFile:boolean}} record file-record\r\n * @param {string} downloadType (Differentiate between original download and download as a pdf)\r\n * @param {{includeAnnotations: boolean, includeRedaction: boolean, burnIntoImage: boolean, burnRedaction: boolean, maintainColor: boolean}} downloadFileOption\r\n * @param {number} downloadMode\r\n * @param {Boolean} isEmail\r\n * @param {Boolean} isBatchDownload\r\n * @return {Promise<{type: string, message: string, outcome: string}>} action Result\r\n */\r\n async onDownloadFile(\r\n record,\r\n downloadType = fieldDownloadType.asItIs,\r\n downloadFileOption = undefined,\r\n downloadMode = downloadFileMode.default,\r\n isEmail = false,\r\n isBatchDownload = false\r\n ) {\r\n const isBatchedEmail = isEmail && isBatchDownload;\r\n try {\r\n const operation = findRecordOperation(recordOperation.Download);\r\n const action = `${operation?.label} ${\r\n record?.recordType\r\n }: '${fullRecordVersionName(record)}'`;\r\n\r\n const isWip = downloadMode === downloadFileMode.wip;\r\n const pdf = extensionName.pdf;\r\n const fileName = record?.name ?? \"\";\r\n\r\n const isCompound = isCompoundDocument(record);\r\n\r\n const response = await this.performDownload(\r\n record,\r\n downloadFileOption,\r\n downloadMode,\r\n downloadType\r\n );\r\n\r\n // Create a new blob\r\n const blob = createBlob(response.data);\r\n console.log(blob);\r\n\r\n console.log(`onDownloadFile.record:`, record);\r\n\r\n const isCheckedOutForSigning = IsCheckedOutForDigitalSigningByPrinciple(\r\n record,\r\n this.principal\r\n );\r\n\r\n // Set file extension\r\n const extension = isCompound\r\n ? pdf\r\n : downloadType === fieldDownloadType.asItIs\r\n ? isWip\r\n ? localFileFirstOrDefaultExtension(record)\r\n : isCheckedOutForSigning && downloadMode !== downloadFileMode.view\r\n ? record.checkOutExtension ?? record.extension\r\n : record?.extension ?? \"\"\r\n : pdf;\r\n\r\n console.log(`onDownloadFile.extension:`, extension);\r\n\r\n // Should be improved\r\n if (isBatchedEmail) {\r\n const fullFileName = fileName + \".\" + extension;\r\n return {\r\n result: createActionResultSuccess(action),\r\n blob: blob,\r\n fileName: fullFileName\r\n };\r\n }\r\n\r\n return (isEmail\r\n ? await emailFile(blob, fileName)\r\n : await saveFile(\r\n blob,\r\n fileName,\r\n extension,\r\n isCheckedOutForSigning,\r\n isBatchDownload\r\n )) === actionResultType.abort\r\n ? createActionResultAbort(action)\r\n : createActionResultSuccess(action);\r\n } catch (e) {\r\n if (isBatchedEmail) {\r\n return {\r\n result: createActionResultError(e?.toString()),\r\n blob: undefined,\r\n fileName: \"\"\r\n };\r\n }\r\n return createActionResultError(e?.toString());\r\n }\r\n },\r\n\r\n /**\r\n * Create Payload for Compound\r\n * @param {number} id\r\n * @param {{includeAnnotations: boolean, includeRedaction: boolean, burnIntoImage: boolean, burnRedaction: boolean, maintainColor: boolean}} downloadFileOption\r\n * @return {{downloadOptions: {IncludeRedaction: boolean, EmbedIntoImage: boolean, IncludeAnnotations: boolean, BurnRedaction: boolean, MaintainColor: boolean, BurnIntoImage: boolean}, id}}\r\n */\r\n createCompoundDocumentPayload(id, downloadFileOption) {\r\n return this.createCompoundDocumentDownloadPayload(\r\n id,\r\n downloadFileOption?.includeAnnotations ?? false,\r\n downloadFileOption?.includeRedaction ?? false,\r\n downloadFileOption?.burnIntoImage ?? false,\r\n downloadFileOption?.burnRedaction ?? false,\r\n downloadFileOption?.maintainColor ?? false\r\n );\r\n },\r\n\r\n /**\r\n * Create Payload for File\r\n * @param {number} id\r\n * @param {number} version\r\n * @param {{includeAnnotations: boolean, includeRedaction: boolean, burnIntoImage: boolean, burnRedaction: boolean, maintainColor: boolean}} downloadFileOption\r\n * @return {*}\r\n */\r\n createFilePayload(id, version, downloadFileOption) {\r\n return this.createFileDownloadPayload(\r\n id,\r\n version,\r\n downloadFileOption?.includeAnnotations ?? false,\r\n downloadFileOption?.includeRedaction ?? false,\r\n downloadFileOption?.burnIntoImage ?? false,\r\n downloadFileOption?.burnRedaction ?? false,\r\n downloadFileOption?.maintainColor ?? false\r\n );\r\n },\r\n\r\n /**\r\n * Perform download based Download on file Mode\r\n * @param {number} downloadMode\r\n * @param {string} downloadType (Differentiate between original download and download as a pdf)\r\n * @param {Object} payload\r\n * @param {Number} recordTypeId\r\n * @return {Promise<*|string>}\r\n */\r\n async performDownloadFileMode(\r\n downloadMode,\r\n downloadType,\r\n payload,\r\n recordTypeId\r\n ) {\r\n switch (downloadMode) {\r\n case downloadFileMode.wip:\r\n return await this.downloadWipFile(\r\n downloadType,\r\n payload,\r\n recordTypeId\r\n );\r\n\r\n case downloadFileMode.viewerExport:\r\n return await this.downloadExportFile(downloadType, payload);\r\n\r\n case downloadFileMode.view:\r\n return await this.downloadViewFile(downloadType, payload);\r\n }\r\n },\r\n\r\n /**\r\n * Download Wip File\r\n * @param {string} downloadType (Differentiate between original download and download as a pdf)\r\n * @param {Object} payload\r\n * @param {Number} recordTypeId\r\n * @return {Promise<*>}\r\n */\r\n async downloadWipFile(downloadType, payload, recordTypeId) {\r\n return recordTypeId === recordType.FILE\r\n ? downloadType === fieldDownloadType.asItIs\r\n ? await this.downloadFileWip(payload)\r\n : await this.downloadFileWipAsPdf(payload)\r\n : downloadType === fieldDownloadType.asItIs\r\n ? await this.downloadEmptyRecordWip(payload)\r\n : await this.downloadEmptyRecordWipAsPdf(payload);\r\n },\r\n\r\n /**\r\n * Download Export File\r\n * @param {string} downloadType (Differentiate between original download and download as a pdf)\r\n * @param {Object} payload\r\n * @return {Promise}\r\n */\r\n async downloadExportFile(downloadType, payload) {\r\n return downloadType === fieldDownloadType.asItIs\r\n ? await this.downloadFileExport(payload)\r\n : await this.downloadFileExportAsPdf(payload);\r\n },\r\n\r\n /**\r\n * Download View File\r\n * @param {string} downloadType (Differentiate between original download and download as a pdf)\r\n * @param {Object} payload\r\n * @return {Promise}\r\n */\r\n async downloadViewFile(downloadType, payload) {\r\n return downloadType === fieldDownloadType.asItIs\r\n ? await this.downloadImageFileVersion(payload)\r\n : await this.downloadImageFileVersionAsPdf(payload);\r\n },\r\n\r\n /**\r\n * Download Edit File\r\n * @param {Object} record\r\n * @param {string} downloadType (Differentiate between original download and download as a pdf)\r\n * @param {Object} payload\r\n * @return {Promise}\r\n */\r\n async downloadEditFile(record, downloadType, payload) {\r\n return localFileExists(this.record) //If local file doesn't exist, means file hasn't been opened in viewer (no editing performed), download view\r\n ? downloadType === fieldDownloadType.asItIs\r\n ? await this.downloadFileEdit(payload)\r\n : await this.downloadFileEditAsPdf(payload)\r\n : await this.downloadViewFile(downloadType, payload);\r\n },\r\n\r\n /**\r\n * Download Agenda File\r\n * Set download Options to null if Agenda Packet\r\n * @param {string} downloadType (Differentiate between original download and download as a pdf)\r\n * @param {Object} payload\r\n * @param {Boolean} isPdf\r\n * @return {Promise}\r\n */\r\n async downloadAgendaFile(downloadType, payload, isPdf) {\r\n if (isPdf) {\r\n payload.downloadOptions = null; //if Pdf file (Agenda Packet), set options null to preserve bookmarks\r\n return await this.downloadImageFileVersion(payload);\r\n }\r\n return downloadType === fieldDownloadType.asItIs\r\n ? await this.downloadImageFileVersion(payload)\r\n : await this.downloadImageFileVersionAsPdf(payload);\r\n },\r\n\r\n /**\r\n * on Print File event handler\r\n * @param {{id:number, name:string, categoryId:number, extension:string, flags:number, hasImage:boolean, recordTypeId:number, recordType:string, creationDate:string, modificationDate:string, version:number, versionDate:string, pages:number, owner:string, createdBy:string, isSingleFile:boolean}} record\r\n * @param {string} downloadType\r\n * @param {{burnAnnotations: boolean, burnRedaction: boolean}} printFileOption\r\n * @param {number} downloadMode\r\n * @return {Promise<{type: string, message: string, outcome: string}>} action Result\r\n */\r\n async onPrintFile(\r\n record,\r\n downloadType = fieldDownloadType.asPdf,\r\n printFileOption = undefined,\r\n downloadMode = downloadFileMode.default\r\n ) {\r\n try {\r\n const operation = findRecordOperation(recordOperation.Print);\r\n const action = `${operation?.label} ${\r\n record?.recordType\r\n }: '${fullRecordVersionName(record)}'`;\r\n\r\n const option = {\r\n includeAnnotations: printFileOption?.burnAnnotations ?? false,\r\n includeRedaction: printFileOption?.burnRedaction ?? false,\r\n burnIntoImage: printFileOption?.burnAnnotations ?? false,\r\n burnRedaction: printFileOption?.burnRedaction ?? false,\r\n maintainColor: true\r\n };\r\n\r\n const response = await this.performDownload(\r\n record,\r\n option,\r\n downloadMode,\r\n downloadType\r\n );\r\n\r\n // Create a new blob\r\n const blob = createBlob(response.data);\r\n\r\n // Create download File anchor\r\n createPrintFileAnchor(blob);\r\n\r\n return createActionResultSuccess(action);\r\n } catch (e) {\r\n return createActionResultError(e?.toString());\r\n }\r\n },\r\n\r\n /**\r\n * Perform Download/Print\r\n * @param {{id:number, name:string, categoryId:number, extension:string, flags:number, hasImage:boolean, recordTypeId:number, recordType:string, creationDate:string, modificationDate:string, version:number, versionDate:string, pages:number, owner:string, createdBy:string, isSingleFile:boolean}} record\r\n * @param {{includeAnnotations: boolean, includeRedaction: boolean, burnIntoImage: boolean, burnRedaction: boolean, maintainColor: boolean}} annotationModel\r\n * @param {number} downloadMode\r\n * @param {string} downloadType\r\n * @return {Promise}\r\n */\r\n async performDownload(record, annotationModel, downloadMode, downloadType) {\r\n const isWip = downloadMode === downloadFileMode.wip;\r\n const id = record?.id ?? -1;\r\n const version = isWip ? 0 : record?.version ?? -1;\r\n const isCompound = isCompoundDocument(record);\r\n\r\n const payload = isCompound\r\n ? this.createCompoundDocumentPayload(id, annotationModel)\r\n : this.createFilePayload(id, version, annotationModel);\r\n\r\n console.log(`onDownloadFile() payload:`, payload);\r\n\r\n if (downloadMode !== downloadFileMode.default) {\r\n return await this.performDownloadFileMode(\r\n downloadMode,\r\n downloadType,\r\n payload,\r\n record?.recordTypeId ?? -1\r\n );\r\n } else {\r\n if (isCheckedOutByPrincipal(record, this.principal)) {\r\n return IsCheckedOutForDigitalSigningByPrinciple(\r\n record,\r\n this.principal\r\n )\r\n ? await this.downloadImageFileVersionAsPdf(payload)\r\n : await this.downloadEditFile(record, downloadType, payload);\r\n } else if (isAncestorMeeting(record))\r\n // For Agenda Packet to preserve bookmarks\r\n return await this.downloadAgendaFile(\r\n downloadType,\r\n payload,\r\n isPdfExtension(record?.extension)\r\n );\r\n else if (isCompound) return await this.downloadCompoundAsPdf(payload);\r\n else {\r\n return downloadType === fieldDownloadType.asItIs\r\n ? await this.downloadImageFileVersion(payload)\r\n : await this.downloadImageFileVersionAsPdf(payload);\r\n }\r\n }\r\n }\r\n\r\n /* async onEmailFile(\r\n record,\r\n downloadType = fieldDownloadType.asItIs,\r\n includeAnnotations = false,\r\n includeRedaction = false,\r\n burnIntoImage = false,\r\n burnRedaction = false,\r\n maintainColor = false\r\n ) {\r\n try {\r\n const operation = findRecordOperation(recordOperation.Download);\r\n const action = `${operation?.label} ${\r\n record?.recordType\r\n }: '${fullRecordVersionName(record)}'`;\r\n console.log(action);\r\n\r\n const id = record?.id ?? -1;\r\n const version = record?.version ?? -1;\r\n\r\n const pdf = extensionName.pdf;\r\n const fileName = record?.name ?? \"\";\r\n const isPdf = isPdfExtension(record?.extension);\r\n const isCompound = isCompoundDocument(record);\r\n\r\n const payload = isCompound\r\n ? this.createCompoundDocumentDownloadPayload(\r\n id,\r\n includeAnnotations,\r\n includeRedaction,\r\n burnIntoImage,\r\n burnRedaction,\r\n maintainColor\r\n )\r\n : this.createFileDownloadPayload(\r\n id,\r\n version,\r\n includeAnnotations,\r\n includeRedaction,\r\n burnIntoImage,\r\n burnRedaction,\r\n maintainColor\r\n );\r\n\r\n console.log(`onDownloadFile() payload:`, payload);\r\n\r\n // Download File\r\n const response = isCompound\r\n ? await this.downloadCompoundAsPdf(payload)\r\n : downloadType === fieldDownloadType.asItIs\r\n ? isPdf\r\n ? await this.downloadFileVersion({ id: id, version: version })\r\n : await this.downloadImageFileVersion(payload)\r\n : await this.downloadImageFileVersionAsPdf(payload);\r\n\r\n // Create a new blob\r\n const blob = createBlob(response.data);\r\n console.log(blob);\r\n\r\n // Get File Extension from the server\r\n // const extensions = response.data.type.split(\"/\");\r\n // console.log(`response extensions:`, extensions);\r\n // does not work for office files! e.g. docx\r\n // const extension = extensions?.length ?? 0 > 0 ? extensions[1] : \"\";\r\n const extension = isCompound\r\n ? pdf\r\n : downloadType === fieldDownloadType.asItIs\r\n ? record?.extension ?? \"\"\r\n : pdf;\r\n\r\n console.log(`response extension:`, extension);\r\n\r\n //const emailName = fileName + \".eml\";\r\n\r\n //createDownloadFileAnchor(blob, emailName);\r\n\r\n downloadEMLFile(blob, blob.type, fileName);\r\n\r\n // console.log(`fileReader.result:`, fileReader.result);\r\n\r\n //const fileData = fileReader.result.split(\",\")[1];\r\n\r\n // console.log(`fileData:`, fileData);\r\n\r\n // Create the mailto link with the attachment\r\n //return blob;\r\n\r\n /!*const attachment = `data:application/${extension};base64,${fileData}`;\r\n\r\n // console.log(`attachment:`, attachment);\r\n\r\n // Open the email client\r\n window.location.href = `mailto:${recipient}?subject=${encodeURIComponent(\r\n subject\r\n )}&body=${encodeURIComponent(body)}&attachment=${encodeURIComponent(\r\n attachment\r\n )}`;*!/\r\n\r\n //return createActionResultSuccess(action);\r\n } catch (e) {\r\n return createActionResultError(e?.toString());\r\n }\r\n }*/\r\n }\r\n};\r\n","/**\r\n * create Script Element\r\n * @param id\r\n * @param src\r\n * @param integrity\r\n */\r\n\r\nconst createScriptElement = (id, src, integrity) => {\r\n let el = document.getElementById(id);\r\n if (el) return;\r\n\r\n el = document.createElement(\"script\");\r\n el.setAttribute(\"id\", id);\r\n el.setAttribute(\"src\", src);\r\n\r\n if (integrity) {\r\n el.setAttribute(\"integrity\", integrity);\r\n el.setAttribute(\"crossorigin\", \"anonymous\");\r\n }\r\n\r\n document.head.appendChild(el);\r\n};\r\n\r\n/**\r\n * create CSS Element\r\n * @param id\r\n * @param href\r\n */\r\nconst createCSSElement = (id, href) => {\r\n let el = document.getElementById(id);\r\n if (el) return;\r\n\r\n el = document.createElement(\"link\");\r\n el.setAttribute(\"id\", id);\r\n el.setAttribute(\"href\", href);\r\n el.setAttribute(\"rel\", \"stylesheet\");\r\n el.setAttribute(\"type\", \"text/css\");\r\n\r\n document.head.appendChild(el);\r\n};\r\n\r\n/**\r\n * Create Download File Anchor\r\n * @param {Blob} blob\r\n * @param {String|string} name\r\n * @param {String|string} ext\r\n */\r\nfunction createDownloadFileAnchor(blob, name, ext) {\r\n const el = document.createElement(\"a\");\r\n\r\n try {\r\n // creates a DOMString containing a URL representing the object given in the parameter\r\n el.href = window.URL.createObjectURL(blob);\r\n\r\n // DOMString indicating that the linked resource is intended to be downloaded\r\n // rather than displayed in the browser\r\n el.download = name + \".\" + ext;\r\n el.style.display = \"none\";\r\n\r\n // append download File anchor\r\n document.body.appendChild(el);\r\n\r\n // simulates a mouse click on an element.\r\n el.click();\r\n } finally {\r\n document.body.removeChild(el);\r\n }\r\n}\r\n/*\r\n\r\n/!**\r\n * Get File Extension from Blob\r\n * @param blobType\r\n * @return {string|*}\r\n *!/\r\nfunction getBlobFileExtension(blobType) {\r\n try {\r\n if (!blobType) return \"\";\r\n // Split the type string by \"/\"\r\n const typeParts = blobType.split(\"/\");\r\n // The last part should be the file extension\r\n return typeParts[typeParts.length - 1];\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n}\r\n*/\r\n\r\n/**\r\n * Download Email File ( with file attached - blob)\r\n * @param {Blob} blob\r\n * @param {String} fileName\r\n */\r\nfunction downloadEMLFile(blob, fileName) {\r\n try {\r\n const blobType = blob?.type ?? \"\";\r\n // Create a new EML file content\r\n const boundary = \"----=_NextPart_000_001A_01DA7B03.A146C8E0\";\r\n\r\n let emlBuilder = \"\";\r\n emlBuilder += `MIME-Version: 1.0\\r\\n`;\r\n emlBuilder += `Content-Type: multipart/mixed; boundary=\"${boundary}\"\\r\\n`;\r\n emlBuilder += `X-Unsent: 1\\r\\n`;\r\n emlBuilder += `Content-Language: en-us\\r\\n\\r\\n`;\r\n emlBuilder += `This is a multipart message in MIME format.\\r\\n\\r\\n`;\r\n\r\n emlBuilder += `--${boundary}\\r\\n`;\r\n emlBuilder += `Content-Type: text/plain; charset=\"us-ascii\"\\r\\n`;\r\n emlBuilder += `Content-Transfer-Encoding: 7bit\\r\\n\\r\\n`;\r\n\r\n emlBuilder += `--${boundary}\\r\\n`;\r\n emlBuilder += `Content-Type: ${blobType}; name=\"${fileName}\"\\r\\n`;\r\n emlBuilder += `Content-Transfer-Encoding: base64\\r\\n`;\r\n emlBuilder += `Content-Disposition: attachment; filename=\"${fileName}\"\\r\\n\\r\\n`;\r\n\r\n // Read the content of the Blob as base64 string\r\n const reader = new FileReader();\r\n reader.onload = function(event) {\r\n try {\r\n const blobData = event.target.result.split(\",\")[1];\r\n emlBuilder += `${blobData}\\r\\n\\r\\n`;\r\n\r\n emlBuilder += `--${boundary}--\\r\\n`;\r\n\r\n const emlBlob = new Blob([emlBuilder], { type: \"message/rfc822\" });\r\n\r\n // Create a download link and trigger the download\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = URL.createObjectURL(emlBlob);\r\n downloadLink.download = `${fileName}.eml`;\r\n downloadLink.click();\r\n } catch (error) {\r\n console.error(\"Error creating Blob or triggering download:\", error);\r\n }\r\n };\r\n\r\n // Read the Blob content as data URL\r\n reader.readAsDataURL(blob);\r\n } catch (error) {\r\n console.error(\"Error in downloadEMLFile:\", error);\r\n }\r\n}\r\n\r\n/**\r\n * Download Batch EML File (containing multiple attachments -blobs)\r\n * @param {{blob:Blob, fileName: string}[]} blobs\r\n */\r\nfunction downloadBatchEMLFile(blobs) {\r\n try {\r\n const boundary = \"----=_NextPart_000_001A_01DA7B03.A146C8E0\";\r\n let emlBuilder = \"\";\r\n emlBuilder += `MIME-Version: 1.0\\r\\n`;\r\n emlBuilder += `Content-Type: multipart/mixed; boundary=\"${boundary}\"\\r\\n`;\r\n emlBuilder += `X-Unsent: 1\\r\\n`;\r\n emlBuilder += `Content-Language: en-us\\r\\n\\r\\n`;\r\n emlBuilder += `This is a multipart message in MIME format.\\r\\n\\r\\n`;\r\n\r\n emlBuilder += `--${boundary}\\r\\n`;\r\n emlBuilder += `Content-Type: text/plain; charset=\"us-ascii\"\\r\\n`;\r\n emlBuilder += `Content-Transfer-Encoding: 7bit\\r\\n\\r\\n`;\r\n\r\n let attachmentsProcessed = 0;\r\n\r\n const processAttachment = (blob, fileName) => {\r\n const reader = new FileReader();\r\n reader.onload = function(event) {\r\n try {\r\n const blobData = event.target.result.split(\",\")[1];\r\n\r\n emlBuilder += `--${boundary}\\r\\n`;\r\n emlBuilder += `Content-Type: ${blob.type}; name=\"${fileName}\"\\r\\n`;\r\n emlBuilder += `Content-Transfer-Encoding: base64\\r\\n`;\r\n emlBuilder += `Content-Disposition: attachment; filename=\"${fileName}\"\\r\\n\\r\\n`;\r\n\r\n emlBuilder += `${blobData}\\r\\n\\r\\n`;\r\n\r\n attachmentsProcessed++;\r\n if (attachmentsProcessed === blobs.length) {\r\n emlBuilder += `--${boundary}--\\r\\n`;\r\n\r\n const emlBlob = new Blob([emlBuilder], { type: \"message/rfc822\" });\r\n\r\n // Create a download link and trigger the download\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = URL.createObjectURL(emlBlob);\r\n downloadLink.download = `files.eml`;\r\n downloadLink.click();\r\n }\r\n } catch (error) {\r\n console.error(\"Error processing attachment:\", error);\r\n }\r\n };\r\n reader.readAsDataURL(blob);\r\n };\r\n\r\n // Process each blob\r\n blobs.forEach(blob => {\r\n processAttachment(blob?.blob, blob?.fileName);\r\n });\r\n } catch (error) {\r\n console.error(\"Error in downloadEMLFile:\", error);\r\n }\r\n}\r\n\r\n/**\r\n * Create Print Ready File Anchor\r\n * @param {Blob} blob\r\n */\r\nfunction createPrintFileAnchor(blob) {\r\n const element = document.createElement(\"a\");\r\n element.href = window.URL.createObjectURL(blob);\r\n\r\n // ready for printing\r\n // loads the specified resource into the new or existing browsing context\r\n // (window,