UNPKG

dext5upload-vue3

Version:

Vue3 + TypeScript component for DEXT5 Upload

143 lines (142 loc) 6.64 kB
"use strict"; /** * @license Copyright (c) 2003-2022, RAONWIZ DevTeam. All rights reserved. */ var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Dext5Upload = void 0; /* eslint-disable new-cap */ var raonwiz_integrations_common_1 = require("raonwiz-integrations-common"); var Dext5UploadObject_1 = require("../Dext5UploadObject"); var Utils_1 = require("../Utils"); var Dext5UploadPropTypes_1 = require("./Dext5UploadPropTypes"); var vue_1 = require("vue"); var renderComponent = function (ce, id, elementRef, tagName) { return ce(tagName ? tagName : 'div', { id: id, ref: elementRef }); }; exports.Dext5Upload = (0, vue_1.defineComponent)({ props: Dext5UploadPropTypes_1.uploadProps, setup: function (props, ctx) { var conf = props.config ? __assign({}, props.config) : {}; var mode = (0, vue_1.toRefs)(props).mode; var element = (0, vue_1.ref)(null); var vueUpload = null; var elementId = props.id || (0, Utils_1.uuid)('dext5upload-vue'); var mounting = true; var makeComponent = function () { var uploadId = props.id ? props.id : elementId; // config if (props.createMode && props.createMode.toLocaleLowerCase() == "object") { props.config.Id = uploadId; props.config.UploadHolder = uploadId; // event if (typeof (0, Dext5UploadObject_1.getDEXT5UPLOAD)()._EventHashMap === 'undefined') { (0, Dext5UploadObject_1.getDEXT5UPLOAD)()._EventHashMap = new Map(); } if ((0, Dext5UploadObject_1.getDEXT5UPLOAD)()._EventHashMap.has(uploadId)) { return; } (0, Dext5UploadObject_1.getDEXT5UPLOAD)()._EventHashMap.set(uploadId, ctx); (0, Utils_1.setUpComponentEvents)(uploadId, ctx); var UploadConstructor = (0, Dext5UploadObject_1.getDext5Upload)(); vueUpload = new UploadConstructor(props.config); } else if (props.config) { (0, Dext5UploadObject_1.getDEXT5UPLOAD)().config.UploadHolder = uploadId; var entries = Object.entries(props.config); var entry_1; entries.map(function (_a) { var _b = _a === void 0 ? entry_1 : _a, key = _b[0], val = _b[1]; (0, Dext5UploadObject_1.getDEXT5UPLOAD)().config[key] = val; }); // event if (typeof (0, Dext5UploadObject_1.getDEXT5UPLOAD)()._EventHashMap === 'undefined') { (0, Dext5UploadObject_1.getDEXT5UPLOAD)()._EventHashMap = new Map(); } if ((0, Dext5UploadObject_1.getDEXT5UPLOAD)()._EventHashMap.has(uploadId)) { return; } (0, Dext5UploadObject_1.getDEXT5UPLOAD)()._EventHashMap.set(uploadId, ctx); (0, Utils_1.setUpComponentEvents)(uploadId, ctx); var UploadConstructor = (0, Dext5UploadObject_1.getDext5Upload)(); vueUpload = new UploadConstructor(uploadId); } mounting = false; }; (0, vue_1.watch)(mode, function (mode) { if (vueUpload !== null) { (0, Dext5UploadObject_1.getDEXT5UPLOAD)().SetUploadMode(mode, vueUpload.ID); } }); (0, vue_1.onMounted)(function () { if ((0, Dext5UploadObject_1.getDEXT5UPLOAD)() !== null) { makeComponent(); } else if (element.value && element.value.ownerDocument) { var componentUrl = props.componentUrl; if (typeof componentUrl === 'undefined') { componentUrl = '/dext5upload/js/dext5upload.js'; } (0, raonwiz_integrations_common_1.getRaonwizComponentNamespace)('DEXT5UPLOAD', componentUrl) .then(makeComponent) .catch(function (error) { console.error(error); }); } }); (0, vue_1.onBeforeUnmount)(function () { if ((0, Dext5UploadObject_1.getDEXT5UPLOAD)() !== null) { if ((0, Dext5UploadObject_1.getDEXT5UPLOAD)()._EventHashMap.has(vueUpload.ID)) { (0, Dext5UploadObject_1.getDEXT5UPLOAD)()._EventHashMap.delete(vueUpload.ID); } if ((0, Dext5UploadObject_1.getDEXT5UPLOAD)().isLoadedUploadEx(vueUpload.ID)) { (0, Dext5UploadObject_1.getDEXT5UPLOAD)().Destroy(vueUpload.ID); } } }); (0, vue_1.onActivated)(function () { if (!mounting) { makeComponent(); } }); (0, vue_1.onDeactivated)(function () { if ((0, Dext5UploadObject_1.getDEXT5UPLOAD)() !== null) { if ((0, Dext5UploadObject_1.getDEXT5UPLOAD)()._EventHashMap.has(vueUpload.ID)) { (0, Dext5UploadObject_1.getDEXT5UPLOAD)()._EventHashMap.delete(vueUpload.ID); } if ((0, Dext5UploadObject_1.getDEXT5UPLOAD)().isLoadedUploadEx(vueUpload.ID)) { (0, Dext5UploadObject_1.getDEXT5UPLOAD)().Destroy(vueUpload.ID); } } }); var rerender = function (init) { if ((0, Dext5UploadObject_1.getDEXT5UPLOAD)() !== null) { if ((0, Dext5UploadObject_1.getDEXT5UPLOAD)()._EventHashMap.has(vueUpload.ID)) { (0, Dext5UploadObject_1.getDEXT5UPLOAD)()._EventHashMap.delete(vueUpload.ID); } if ((0, Dext5UploadObject_1.getDEXT5UPLOAD)().isLoadedUploadEx(vueUpload.ID)) { (0, Dext5UploadObject_1.getDEXT5UPLOAD)().Destroy(vueUpload.ID); } } conf = __assign(__assign({}, conf), init); (0, vue_1.nextTick)(function () { return makeComponent(); }); }; ctx.expose({ rerender: rerender }); return function () { return renderComponent(vue_1.h, elementId, element, props.tagName); }; } });