{"version":3,"file":"components.js","sources":["../src/assetInputField.js","../src/index.js"],"sourcesContent":["(function () {\r\n\twindow.BlazorInputFile = {\r\n\t\tinit: function init(elem, componentInstance) {\r\n\t\t\telem._blazorInputFileNextFileId = 0;\r\n\r\n\t\t\telem.addEventListener('change', function handleInputFileChange(event) {\r\n\t\t\t\t// Reduce to purely serializable data, plus build an index by ID\r\n\t\t\t\telem._blazorFilesById = {};\r\n\t\t\t\tvar fileList = Array.prototype.map.call(elem.files, function (file) {\r\n\t\t\t\t\tvar result = {\r\n\t\t\t\t\t\tid: ++elem._blazorInputFileNextFileId,\r\n\t\t\t\t\t\tlastModified: new Date(file.lastModified).toISOString(),\r\n\t\t\t\t\t\tname: file.name,\r\n\t\t\t\t\t\tsize: file.size,\r\n\t\t\t\t\t\ttype: file.type,\r\n\t\t\t\t\t\trelativePath: file.webkitRelativePath\r\n\t\t\t\t\t};\r\n\t\t\t\t\telem._blazorFilesById[result.id] = result;\r\n\r\n\t\t\t\t\t// Attach the blob data itself as a non-enumerable property so it doesn't appear in the JSON\r\n\t\t\t\t\tObject.defineProperty(result, 'blob', { value: file });\r\n\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tcomponentInstance.invokeMethodAsync('NotifyChange', fileList).then(function () {\r\n\t\t\t\t\t//reset file value ,otherwise, the same filename will not be trigger change event again\r\n\t\t\t\t\telem.value = '';\r\n\t\t\t\t}, function (err) {\r\n\t\t\t\t\t//reset file value ,otherwise, the same filename will not be trigger change event again\r\n\t\t\t\t\telem.value = '';\r\n\t\t\t\t\tthrow new Error(err);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\ttoImageFile(elem, fileId, format, maxWidth, maxHeight) {\r\n\t\t\tvar originalFile = getFileById(elem, fileId);\r\n\r\n\t\t\treturn new Promise(function (resolve) {\r\n\t\t\t\tvar originalFileImage = new Image();\r\n\t\t\t\toriginalFileImage.onload = function () { resolve(originalFileImage); };\r\n\t\t\t\toriginalFileImage.src = URL.createObjectURL(originalFile.blob);\r\n\t\t\t}).then(function (loadedImage) {\r\n\t\t\t\treturn new Promise(function (resolve) {\r\n\t\t\t\t\tvar desiredWidthRatio = Math.min(1, maxWidth / loadedImage.width);\r\n\t\t\t\t\tvar desiredHeightRatio = Math.min(1, maxHeight / loadedImage.height);\r\n\t\t\t\t\tvar chosenSizeRatio = Math.min(desiredWidthRatio, desiredHeightRatio);\r\n\r\n\t\t\t\t\tvar canvas = document.createElement('canvas');\r\n\t\t\t\t\tcanvas.width = Math.round(loadedImage.width * chosenSizeRatio);\r\n\t\t\t\t\tcanvas.height = Math.round(loadedImage.height * chosenSizeRatio);\r\n\t\t\t\t\tcanvas.getContext('2d').drawImage(loadedImage, 0, 0, canvas.width, canvas.height);\r\n\t\t\t\t\tcanvas.toBlob(resolve, format);\r\n\t\t\t\t});\r\n\t\t\t}).then(function (resizedImageBlob) {\r\n\t\t\t\tvar result = {\r\n\t\t\t\t\tid: ++elem._blazorInputFileNextFileId,\r\n\t\t\t\t\tlastModified: originalFile.lastModified,\r\n\t\t\t\t\tname: originalFile.name, // Note: we're not changing the file extension\r\n\t\t\t\t\tsize: resizedImageBlob.size,\r\n\t\t\t\t\ttype: format,\r\n\t\t\t\t\trelativePath: originalFile.relativePath\r\n\t\t\t\t};\r\n\r\n\t\t\t\telem._blazorFilesById[result.id] = result;\r\n\r\n\t\t\t\t// Attach the blob data itself as a non-enumerable property so it doesn't appear in the JSON\r\n\t\t\t\tObject.defineProperty(result, 'blob', { value: resizedImageBlob });\r\n\r\n\t\t\t\treturn result;\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\treadFileData: function readFileData(elem, fileId, startOffset, count) {\r\n\t\t\tvar readPromise = getArrayBufferFromFileAsync(elem, fileId);\r\n\r\n\t\t\treturn readPromise.then(function (arrayBuffer) {\r\n\t\t\t\tvar uint8Array = new Uint8Array(arrayBuffer, startOffset, count);\r\n\t\t\t\tvar base64 = uint8ToBase64(uint8Array);\r\n\t\t\t\treturn base64;\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tensureArrayBufferReadyForSharedMemoryInterop: function ensureArrayBufferReadyForSharedMemoryInterop(elem, fileId) {\r\n\t\t\treturn getArrayBufferFromFileAsync(elem, fileId).then(function (arrayBuffer) {\r\n\t\t\t\tgetFileById(elem, fileId).arrayBuffer = arrayBuffer;\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\treadFileDataSharedMemory: function readFileDataSharedMemory(readRequest) {\r\n\t\t\t// This uses various unsupported internal APIs. Beware that if you also use them,\r\n\t\t\t// your code could become broken by any update.\r\n\t\t\tvar inputFileElementReferenceId = Blazor.platform.readStringField(readRequest, 0);\r\n\t\t\tvar inputFileElement = document.querySelector('[_bl_' + inputFileElementReferenceId + ']');\r\n\t\t\tvar fileId = Blazor.platform.readInt32Field(readRequest, 4);\r\n\t\t\tvar sourceOffset = Blazor.platform.readUint64Field(readRequest, 8);\r\n\t\t\tvar destination = Blazor.platform.readInt32Field(readRequest, 16);\r\n\t\t\tvar destinationOffset = Blazor.platform.readInt32Field(readRequest, 20);\r\n\t\t\tvar maxBytes = Blazor.platform.readInt32Field(readRequest, 24);\r\n\r\n\t\t\tvar sourceArrayBuffer = getFileById(inputFileElement, fileId).arrayBuffer;\r\n\t\t\tvar bytesToRead = Math.min(maxBytes, sourceArrayBuffer.byteLength - sourceOffset);\r\n\t\t\tvar sourceUint8Array = new Uint8Array(sourceArrayBuffer, sourceOffset, bytesToRead);\r\n\r\n\t\t\tvar destinationUint8Array = Blazor.platform.toUint8Array(destination);\r\n\t\t\tdestinationUint8Array.set(sourceUint8Array, destinationOffset);\r\n\r\n\t\t\treturn bytesToRead;\r\n\t\t}\r\n\t};\r\n\r\n\tfunction getFileById(elem, fileId) {\r\n\t\tvar file = elem._blazorFilesById[fileId];\r\n\t\tif (!file) {\r\n\t\t\tthrow new Error('There is no file with ID ' + fileId + '. The file list may have changed');\r\n\t\t}\r\n\r\n\t\treturn file;\r\n\t}\r\n\r\n\tfunction getArrayBufferFromFileAsync(elem, fileId) {\r\n\t\tvar file = getFileById(elem, fileId);\r\n\r\n\t\t// On the first read, convert the FileReader into a Promise\r\n\t\tif (!file.readPromise) {\r\n\t\t\tfile.readPromise = new Promise(function (resolve, reject) {\r\n\t\t\t\tvar reader = new FileReader();\r\n\t\t\t\treader.onload = function () { resolve(reader.result); };\r\n\t\t\t\treader.onerror = function (err) { reject(err); };\r\n\t\t\t\treader.readAsArrayBuffer(file.blob);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn file.readPromise;\r\n\t}\r\n\r\n\tvar uint8ToBase64 = (function () {\r\n\t\t// Code from https://github.com/beatgammit/base64-js/\r\n\t\t// License: MIT\r\n\t\tvar lookup = [];\r\n\r\n\t\tvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r\n\t\tfor (var i = 0, len = code.length; i < len; ++i) {\r\n\t\t\tlookup[i] = code[i];\r\n\t\t}\r\n\r\n\t\tfunction tripletToBase64(num) {\r\n\t\t\treturn lookup[num >> 18 & 0x3F] +\r\n\t\t\t\tlookup[num >> 12 & 0x3F] +\r\n\t\t\t\tlookup[num >> 6 & 0x3F] +\r\n\t\t\t\tlookup[num & 0x3F];\r\n\t\t}\r\n\r\n\t\tfunction encodeChunk(uint8, start, end) {\r\n\t\t\tvar tmp;\r\n\t\t\tvar output = [];\r\n\t\t\tfor (var i = start; i < end; i += 3) {\r\n\t\t\t\ttmp =\r\n\t\t\t\t\t((uint8[i] << 16) & 0xFF0000) +\r\n\t\t\t\t\t((uint8[i + 1] << 8) & 0xFF00) +\r\n\t\t\t\t\t(uint8[i + 2] & 0xFF);\r\n\t\t\t\toutput.push(tripletToBase64(tmp));\r\n\t\t\t}\r\n\t\t\treturn output.join('');\r\n\t\t}\r\n\r\n\t\treturn function fromByteArray(uint8) {\r\n\t\t\tvar tmp;\r\n\t\t\tvar len = uint8.length;\r\n\t\t\tvar extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\r\n\t\t\tvar parts = [];\r\n\t\t\tvar maxChunkLength = 16383; // must be multiple of 3\r\n\r\n\t\t\t// go through the array every three bytes, we'll deal with trailing stuff later\r\n\t\t\tfor (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\r\n\t\t\t\tparts.push(encodeChunk(\r\n\t\t\t\t\tuint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\r\n\t\t\t\t));\r\n\t\t\t}\r\n\r\n\t\t\t// pad the end with zeros, but make sure to not forget the extra bytes\r\n\t\t\tif (extraBytes === 1) {\r\n\t\t\t\ttmp = uint8[len - 1];\r\n\t\t\t\tparts.push(\r\n\t\t\t\t\tlookup[tmp >> 2] +\r\n\t\t\t\t\tlookup[(tmp << 4) & 0x3F] +\r\n\t\t\t\t\t'=='\r\n\t\t\t\t);\r\n\t\t\t} else if (extraBytes === 2) {\r\n\t\t\t\ttmp = (uint8[len - 2] << 8) + uint8[len - 1];\r\n\t\t\t\tparts.push(\r\n\t\t\t\t\tlookup[tmp >> 10] +\r\n\t\t\t\t\tlookup[(tmp >> 4) & 0x3F] +\r\n\t\t\t\t\tlookup[(tmp << 2) & 0x3F] +\r\n\t\t\t\t\t'='\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\treturn parts.join('');\r\n\t\t};\r\n\t})();\r\n})();","import './assetInputField.js'\r\n\r\n// Make sure all links pointing to assets (starting with /library/) are opened in a new window to prevent Blazor routing from interfering with them\r\nwindow.addEventListener(\"message\", (event) => {\r\n\tif (event.data === 'veva-page-loaded') {\r\n\t\tfor (const link of document.querySelectorAll('a')) {\r\n\t\t\tconst href = link.getAttribute('href') || '';\r\n\t\t\tif (href.startsWith('/library/')) {\r\n\t\t\t\tconst target = link.getAttribute('target') || '';\r\n\t\t\t\tif (target === '') {\r\n\t\t\t\t\tlink.setAttribute('target', '_blank');\r\n\t\t\t\t}\r\n\t\t\t}\t\t\t\r\n\t\t}\r\n\t}\r\n});\r\n\r\nwindow.vevaAutoPlayVideo = function (videoId) {\r\n\tlet video = document.getElementById(videoId);\r\n\tif (video) {\r\n\t\tvideo.muted = true;\r\n\t\tvideo.play();\r\n\t}\r\n}"],"names":["elem","componentInstance","event","fileList","file","result","err","fileId","format","maxWidth","maxHeight","originalFile","getFileById","resolve","originalFileImage","loadedImage","desiredWidthRatio","desiredHeightRatio","chosenSizeRatio","canvas","resizedImageBlob","startOffset","count","readPromise","getArrayBufferFromFileAsync","arrayBuffer","uint8Array","base64","uint8ToBase64","readRequest","inputFileElementReferenceId","inputFileElement","sourceOffset","destination","destinationOffset","maxBytes","sourceArrayBuffer","bytesToRead","sourceUint8Array","destinationUint8Array","reject","reader","lookup","code","i","len","tripletToBase64","num","encodeChunk","uint8","start","end","tmp","output","extraBytes","parts","maxChunkLength","len2","link","videoId","video"],"mappings":"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"}