{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/layouts/ValacBoxLayoutFooter.vue?48cc","webpack:///./src/views/Dashboard.vue?85b8","webpack:///./src/components/wishcards/WishcardForm.vue?579d","webpack:///./src/components/valac-boxes/ValacBoxGrid.vue?3117","webpack:///./src/components/modals/BaseModal.vue?d93d","webpack:///./src/components/common/BaseTable.vue?4123","webpack:///./src/views/wishcards/WishcardView.vue?b511","webpack:///./src/views/wishcards/WishcardSubmit.vue?624c","webpack:///./src/components/modals/ImageViewerModal.vue?2356","webpack:///./src/components/wishcards/WishcardViewAttachmentsGallery.vue?a192","webpack:///./src/components/wishcards/WischardFormFileCarousel.vue?01f8","webpack:///./src/components/layouts/ValacBoxLayout.vue?fb72","webpack:///./src/components/common/BaseIcon.vue?ecb4","webpack:///./src/components/layouts/ValacBoxLayoutHeader.vue?12f8","webpack:///./src/views/wishcards/WishcardList.vue?0724","webpack:///./src/class-component-hooks.ts","webpack:///./src/App.vue?9a79","webpack:///./src/App.vue","webpack:///./src/App.vue?0ab4","webpack:///./src/App.vue?bff9","webpack:///./src/store/modules/auth.ts","webpack:///./src/components/modals/PasswordModal.vue?cbc2","webpack:///./src/components/common/FieldWithValidation.vue?4b89","webpack:///./src/components/common/FieldWithValidation.vue","webpack:///./src/components/common/FieldWithValidation.vue?e615","webpack:///./src/components/common/FieldWithValidation.vue?ea2e","webpack:///./src/components/modals/PasswordModal.vue","webpack:///./src/components/modals/PasswordModal.vue?4a6e","webpack:///./src/components/modals/PasswordModal.vue?e776","webpack:///./src/router/registerGlobalAuthGuard.ts","webpack:///./src/router/registerMatomo.ts","webpack:///./src/store/modules/dashboard.ts","webpack:///./src/store/index.ts","webpack:///./src/views/Dashboard.vue?66f0","webpack:///./src/api/api.ts","webpack:///./src/api/index.ts","webpack:///./src/components/layouts/ValacBoxLayout.vue?0dab","webpack:///./src/components/layouts/ValacBoxLayoutHeader.vue?5417","webpack:///./src/components/layouts/ValacBoxLayoutHeader.vue","webpack:///./src/components/layouts/ValacBoxLayoutHeader.vue?4c63","webpack:///./src/components/layouts/ValacBoxLayoutHeader.vue?ed32","webpack:///./src/components/layouts/ValacBoxLayoutFooter.vue?6d6e","webpack:///./src/components/layouts/ValacBoxLayoutFooter.vue","webpack:///./src/components/layouts/ValacBoxLayoutFooter.vue?c795","webpack:///./src/components/layouts/ValacBoxLayoutFooter.vue?56be","webpack:///./src/components/layouts/ValacBoxLayout.vue","webpack:///./src/components/layouts/ValacBoxLayout.vue?af3f","webpack:///./src/components/layouts/ValacBoxLayout.vue?f677","webpack:///./src/components/valac-boxes/ValacBoxGrid.vue?c3d5","webpack:///./src/components/mixins/ValacBoxListMixin.ts","webpack:///./src/components/valac-boxes/ValacBoxGrid.vue","webpack:///./src/components/valac-boxes/ValacBoxGrid.vue?d9da","webpack:///./src/components/valac-boxes/ValacBoxGrid.vue?f8c0","webpack:///./src/components/valac-boxes/ValacBoxTable.vue?1423","webpack:///./src/utils/comparators/numberCompare.ts","webpack:///./src/assets/icons/back.svg","webpack:///./src/assets/icons/camera.svg","webpack:///./src/assets/icons/close.svg","webpack:///./src/assets/icons/delete.svg","webpack:///./src/assets/icons/download.svg","webpack:///./src/assets/icons/edit.svg","webpack:///./src/assets/icons/list-view-selected.svg","webpack:///./src/assets/icons/list-view-unselected.svg","webpack:///./src/assets/icons/tile-view-selected.svg","webpack:///./src/assets/icons/tile-view-unselected.svg","webpack:///./src/assets/icons/lock-closed.svg","webpack:///./src/assets/icons/lock-open.svg","webpack:///./src/assets/icons/sort.svg","webpack:///./src/assets/icons/upload.svg","webpack:///./src/assets/icons/view.svg","webpack:///./src/assets/icons/valac-box.svg","webpack:///./src/assets/icons/valac.svg","webpack:///./src/utils/custom-icons.ts","webpack:///./src/utils/toast.ts","webpack:///./src/components/common/BaseTable.vue?466a","webpack:///./src/components/common/BaseTable.vue","webpack:///./src/components/common/BaseTable.vue?8396","webpack:///./src/components/common/BaseTable.vue?8429","webpack:///./src/components/valac-boxes/ValacBoxTable.vue","webpack:///./src/components/valac-boxes/ValacBoxTable.vue?ab81","webpack:///./src/components/valac-boxes/ValacBoxTable.vue?b881","webpack:///./src/views/Dashboard.vue","webpack:///./src/views/Dashboard.vue?aebe","webpack:///./src/views/Dashboard.vue?ab86","webpack:///./src/views/wishcards/WishcardList.vue?3ad2","webpack:///./src/components/mixins/FileUtilsMixin.ts","webpack:///./src/components/wishcards/WishcardTable.vue?0864","webpack:///./src/components/wishcards/WishcardTable.vue","webpack:///./src/components/wishcards/WishcardTable.vue?f19e","webpack:///./src/components/wishcards/WishcardTable.vue?fdcf","webpack:///./src/views/wishcards/WishcardList.vue","webpack:///./src/views/wishcards/WishcardList.vue?e699","webpack:///./src/views/wishcards/WishcardList.vue?af7f","webpack:///./src/views/wishcards/WishcardSubmit.vue?862f","webpack:///./src/components/wishcards/WishcardForm.vue?ae26","webpack:///./src/utils/constants.ts","webpack:///./src/components/modals/CameraModal.vue?fec4","webpack:///./src/components/modals/BaseModal.vue?f8a9","webpack:///./src/components/modals/BaseModal.vue","webpack:///./src/components/modals/BaseModal.vue?7628","webpack:///./src/components/modals/BaseModal.vue?7989","webpack:///./src/components/modals/CameraModal.vue","webpack:///./src/components/modals/CameraModal.vue?137d","webpack:///./src/components/modals/CameraModal.vue?9354","webpack:///./src/components/wishcards/WischardFormFileCarousel.vue?01af","webpack:///./src/components/modals/ImageViewerModal.vue?6f02","webpack:///./src/components/modals/ImageViewerModal.vue","webpack:///./src/components/modals/ImageViewerModal.vue?b49e","webpack:///./src/components/modals/ImageViewerModal.vue?907b","webpack:///./src/components/wishcards/WischardFormFileCarousel.vue","webpack:///./src/components/wishcards/WischardFormFileCarousel.vue?1ce0","webpack:///./src/components/wishcards/WischardFormFileCarousel.vue?d082","webpack:///./src/components/wishcards/WishcardForm.vue","webpack:///./src/components/wishcards/WishcardForm.vue?bbd8","webpack:///./src/components/wishcards/WishcardForm.vue?491a","webpack:///./src/views/wishcards/WishcardSubmit.vue","webpack:///./src/views/wishcards/WishcardSubmit.vue?47d8","webpack:///./src/views/wishcards/WishcardSubmit.vue?0534","webpack:///./src/views/wishcards/WishcardView.vue?5692","webpack:///./src/components/wishcards/WishcardViewAttachmentsCarousel.vue?893b","webpack:///./src/components/wishcards/WishcardViewAttachmentsCarousel.vue","webpack:///./src/components/wishcards/WishcardViewAttachmentsCarousel.vue?48b0","webpack:///./src/components/wishcards/WishcardViewAttachmentsCarousel.vue?b40a","webpack:///./src/components/wishcards/WishcardViewAttachmentsGallery.vue?9642","webpack:///./src/components/wishcards/WishcardViewAttachmentsGallery.vue","webpack:///./src/components/wishcards/WishcardViewAttachmentsGallery.vue?57aa","webpack:///./src/components/wishcards/WishcardViewAttachmentsGallery.vue?46cb","webpack:///./src/views/wishcards/WishcardView.vue","webpack:///./src/views/wishcards/WishcardView.vue?abd9","webpack:///./src/views/wishcards/WishcardView.vue?7130","webpack:///./src/router/index.ts","webpack:///./src/localization/messages/en.ts","webpack:///./src/localization/index.ts","webpack:///./src/plugins/buefy.ts","webpack:///./src/components/common/BaseIcon.vue?5d1c","webpack:///./src/components/common/BaseIcon.vue","webpack:///./src/components/common/BaseIcon.vue?8fe4","webpack:///./src/components/common/BaseIcon.vue?4b7c","webpack:///./src/plugins/custom-icons.ts","webpack:///./src/plugins/vee-validate.ts","webpack:///./src/main.ts","webpack:///./src/components/wishcards/WishcardViewAttachmentsCarousel.vue?fbd2","webpack:///./src/components/modals/CameraModal.vue?0d74"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","registerHooks","_vm","this","_h","$createElement","_c","_self","attrs","staticRenderFns","metaInfo","titleTemplate","titleChunk","component","isAuthenticated","state","authStore","mutations","staticClass","staticStyle","scopedSlots","_u","fn","ref","invalid","_v","model","callback","$$v","password","expression","submitFailed","on","onSubmit","vid","validationName","rules","errors","_b","label","$attrs","_t","type","String","required","inheritAttrs","components","ValidationProvider","$emit","ValidationObserver","FieldWithValidation","registerGlobalAuthGuard","router","store","beforeEach","to","from","next","matched","some","record","meta","requiresAuth","authCtx","context","open","hasModalCard","canCancel","events","login","commit","matomo","document","querySelector","getAttribute","registerMatomo","_paq","location","href","split","currentUrl","fullPath","searchString","viewMode","dashboardStore","use","root","auth","dashboard","plugins","$t","_s","class","$event","filteredValacBoxes","statistics","valacBoxesLoading","_e","baseURL","api","a","BASE_URL","getValacBoxList","getValacBox","id","getValacBoxStats","createValacBox","valacBox","post","updateValacBox","put","deleteValacBox","delete","valacBoxLogoUrl","defaults","getValacBoxWishcardList","getValacBoxWishcard","email","getValacBoxWishcardFile","fileName","responseType","response","File","headers","submitValacBoxWishcard","paramenters","attachments","formData","FormData","entries","append","attachment","deleteValacBoxWishcard","title","subtitle","hasHomeLink","hasBackButton","isCompactHeader","goBack","onClickHome","isSmallScreen","$mq","$router","go","Boolean","default","currentVersion","_m","ValacBoxLayoutHeader","ValacBoxLayoutFooter","loading","_l","hasExpired","onView","getValacBoxLogoUrl","getValacBoxWishcardCount","find","valacBoxId","wishcardsCount","params","Array","valacBoxes","columns","row","stopPropagation","numberCompare","number1","number2","isAsc","customIcons","back","camera","close","download","edit","sort","upload","view","valac","message","position","duration","queue","clickable","emptyMessage","proxy","col","ind","domProps","customHtml","customDisplay","field","hideActions","toString","sortable","vb","expirationDate","customSort","b","BaseTable","dashboardCtx","$store","toUpperCase","filter","includes","fetchValacBoxes","Promise","all","ValacBoxLayout","ValacBoxGrid","ValacBoxTable","playLoading","showGallery","filteredWishcards","wishcardsLoading","galleryInd","item","getFileUrl","startsWith","file","isImageType","isVideoType","URL","createObjectURL","wishcards","wishcard","attachmentsLoading","$route","w","sender","rootElement","firstElementChild","isGalleryVisible","classList","add","remove","vm","initialize","fetchWishcards","fetchImageAttachments","contentType","WishcardTable","wishcardLoading","clearEmail","form","$set","isOpeningWishcard","isCreatingWishcard","canCreateWishcard","onClickCreate","canOpenWishcard","openLoading","onClickOpen","isFormOpen","closeForm","onSubmitted","handleSubmit","parameters","requestCapture","onAttachmentsChange","syncedAttachments","submitLoading","submit","onConfirmCapture","CAMERA_CAPTURE_PREFIX","CAMERA_CAPTURE_EXTENSION","closeDialog","showDialog","disposition","style","directives","rawName","doCapture","continueCapturing","capturing","flipCamera","confirmCapture","rotate","isActive","onClose","resize","boxSize","imgSize","width","height","wratio","hratio","Math","round","dataURLtoFile","dataurl","filename","arr","mime","match","bstr","atob","u8arr","Uint8Array","charCodeAt","getRandomFileName","haveAccessToCamera","cameraDevices","cameraDeviceIndex","dimensions","horizontal","vertical","matchMedia","matches","calcDimensions","addEventListener","_onResize","removeEventListener","bigScreen","win_size","innerWidth","innerHeight","stopCurrentStream","image","navigator","mediaDevices","getUserMedia","video","stream","srcObject","play","enumerateCameras","console","log","enumerateDevices","devices","kind","index","device","deviceId","exact","pause","canvas","createElement","videoWidth","videoHeight","ctx","getContext","drawImage","dataURL","toDataURL","getCapture","emitConfirm","getTracks","forEach","stop","err","BaseModal","carouselData","itemsToShow","url","deleteFile","viewFile","files","viewingFile","isViewingFile","isImageFile","isVideoFile","map","f","ImageViewerModal","formObserver","reset","cameraModal","img","existingCaptureIds","endsWith","Number","parseInt","substring","maxId","max","lastModified","uniqBy","CameraModal","FileCarousel","text","existingWishcard","creatingWishcard","creatingWishcardAttachments","createSubmitted","fetchWishcardDebounced","debounce","fetchWishcard","wishcardForm","resetForm","loadCreateState","clearCreateState","storeCreateState","fetchAttachments","WishcardForm","viewingIndex","hasPrevious","onPrevious","currentIndex","viewAttachment","hasNext","onNext","viewingAttachment","isViewingAttachment","AttachmentsCarousel","AttachmentsGallery","routes","path","alias","base","messages","en","locale","fallbackLocale","i18n","iconSizeClass","customSize","iconSvg","icon","size","rule","validation","breakpoints","sm","md","lg","xl","defaultBreakpoint","config","productionTip","render","h","$mount"],"mappings":"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","file":"js/index.3b50a0b7.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"index\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValacBoxLayoutFooter.vue?vue&type=style&index=0&id=a893279e&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=style&index=0&id=4006b138&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardForm.vue?vue&type=style&index=0&id=46689dd2&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValacBoxGrid.vue?vue&type=style&index=0&id=25cdeb17&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseModal.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseTable.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardView.vue?vue&type=style&index=0&id=6b4469a9&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardSubmit.vue?vue&type=style&index=0&id=2651fc44&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageViewerModal.vue?vue&type=style&index=0&id=265bf6dc&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardViewAttachmentsGallery.vue?vue&type=style&index=0&id=4159fb82&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WischardFormFileCarousel.vue?vue&type=style&index=0&id=8c4bd84e&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValacBoxLayout.vue?vue&type=style&index=0&id=8561f90a&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseIcon.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValacBoxLayoutHeader.vue?vue&type=style&index=0&id=25e75392&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardList.vue?vue&type=style&index=0&lang=scss&\"","import Component from 'vue-class-component';\n\n// Register the router hooks with their names\nComponent.registerHooks([\n 'beforeRouteEnter',\n 'beforeRouteLeave',\n 'beforeRouteUpdate',\n]);\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\n\n@Component({\n name: 'App',\n metaInfo: {\n titleTemplate: titleChunk => {\n return titleChunk ? `${titleChunk} | iValacBOX` : 'iValacBOX';\n },\n },\n})\nexport default class App extends Vue {}\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=7e94f89b&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Mutations, Module } from 'vuex-smart-module';\n\nclass AuthState {\n isAuthenticated = false;\n}\n\nclass AuthMutations extends Mutations {\n authenticate() {\n this.state.isAuthenticated = true;\n }\n}\n\nexport const authStore = new Module({\n state: AuthState,\n mutations: AuthMutations,\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ValidationObserver',{staticClass:\"modal-card\",staticStyle:{\"width\":\"auto\"},attrs:{\"tag\":\"div\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar invalid = ref.invalid;\nreturn [_c('header',{staticClass:\"modal-card-head\"},[_c('p',{staticClass:\"modal-card-title\"},[_vm._v(\"Login\")])]),_c('section',{staticClass:\"modal-card-body\"},[_c('FieldWithValidation',{attrs:{\"label\":\"Enter password\",\"name\":\"Password\",\"rules\":\"required\"}},[_c('b-input',{attrs:{\"type\":\"password\",\"password-reveal\":\"\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})],1),_c('b-notification',{attrs:{\"type\":\"is-danger is-light\",\"closable\":false},model:{value:(_vm.submitFailed),callback:function ($$v) {_vm.submitFailed=$$v},expression:\"submitFailed\"}},[_vm._v(\" Incorrect password \")])],1),_c('footer',{staticClass:\"modal-card-foot\"},[_c('b-button',{attrs:{\"label\":\"Login\",\"type\":\"is-primary\",\"disabled\":invalid},on:{\"click\":_vm.onSubmit}})],1)]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ValidationProvider',{attrs:{\"vid\":_vm.vid,\"name\":_vm.validationName,\"rules\":_vm.rules,\"mode\":_vm.mode,\"slim\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('b-field',_vm._b({attrs:{\"type\":{ 'is-danger': errors.length > 0 },\"message\":errors,\"label\":_vm.label}},'b-field',_vm.$attrs,false),[_vm._t(\"default\")],2)]}}],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport { ValidationProvider } from 'vee-validate';\n\n@Component({\n name: 'FieldWithValidation',\n inheritAttrs: false,\n components: {\n ValidationProvider,\n },\n})\nexport default class FieldWithValidation extends Vue {\n @Prop({ type: String, required: false })\n private name: string;\n\n @Prop({ type: String, required: false })\n private label: string;\n\n @Prop({ type: String, required: false })\n private vid?: string;\n\n @Prop({ type: [String, Object], required: false })\n private rules?: any;\n\n @Prop({ type: String, required: false })\n private mode?: string;\n\n private get validationName(): string {\n return this.name ?? this.label;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FieldWithValidation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FieldWithValidation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FieldWithValidation.vue?vue&type=template&id=52d48b42&\"\nimport script from \"./FieldWithValidation.vue?vue&type=script&lang=ts&\"\nexport * from \"./FieldWithValidation.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\nimport { ValidationObserver } from 'vee-validate';\nimport FieldWithValidation from '../common/FieldWithValidation.vue';\n\n@Component({\n name: 'PasswordModal',\n components: {\n ValidationObserver,\n FieldWithValidation,\n },\n})\nexport default class PasswordModal extends Vue {\n private password = '';\n private submitFailed = false;\n\n private onSubmit(): void {\n this.submitFailed = false;\n\n if (this.password == 'Dani') {\n this.$emit('login');\n this.$emit('close');\n } else {\n this.submitFailed = true;\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PasswordModal.vue?vue&type=template&id=719eea97&\"\nimport script from \"./PasswordModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./PasswordModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import VueRouter, { NavigationGuardNext, Route } from 'vue-router';\nimport { Store } from 'vuex';\nimport { authStore } from '@/store/modules/auth';\nimport { ModalProgrammatic as Modal } from 'buefy';\nimport PasswordModal from '@/components/modals/PasswordModal.vue';\n\nexport function registerGlobalAuthGuard(\n router: VueRouter,\n store: Store\n): void {\n router.beforeEach(\n async (to: Route, from: Route, next: NavigationGuardNext) => {\n if (to.matched.some(record => record.meta.requiresAuth)) {\n const authCtx = authStore.context(store);\n\n if (authCtx.state.isAuthenticated) {\n next();\n } else {\n Modal.open({\n component: PasswordModal,\n hasModalCard: true,\n canCancel: false,\n events: {\n login: () => {\n authCtx.commit('authenticate');\n next();\n },\n },\n });\n }\n } else {\n next();\n }\n }\n );\n}\n","import VueRouter from 'vue-router';\nconst matomo = !!document.querySelector('html')?.getAttribute('data-matomo-id');\n\nexport function registerMatomo(router: VueRouter): void {\n router.beforeEach((to, from, next) => {\n if (matomo) {\n const _paq = (window as any)._paq || [];\n const location = window.location.href.split('#')[0];\n const currentUrl = to.fullPath;\n _paq.push(['setReferrerUrl', location]);\n _paq.push(['setCustomUrl', currentUrl]);\n _paq.push(['deleteCustomVariables', 'page']);\n _paq.push(['setPagePerformanceTiming', 0]);\n _paq.push(['trackPageView']);\n }\n next();\n });\n}\n","import { Mutations, Module } from 'vuex-smart-module';\nimport type { ViewMode } from '@/models';\n\nclass DashboardState {\n searchString = '';\n viewMode: ViewMode = 'grid';\n}\n\nclass DashboardMutations extends Mutations {\n setSearchString(searchString: string): void {\n this.state.searchString = searchString;\n }\n setViewMode(viewMode: ViewMode): void {\n this.state.viewMode = viewMode;\n }\n}\n\nexport const dashboardStore = new Module({\n state: DashboardState,\n mutations: DashboardMutations,\n});\n","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport { createStore, Module } from 'vuex-smart-module';\nimport { authStore } from './modules/auth';\nimport { dashboardStore } from './modules/dashboard';\nimport createPersistedState from 'vuex-persistedstate';\n\nVue.use(Vuex);\n\nexport const root = new Module({\n modules: {\n auth: authStore,\n dashboard: dashboardStore,\n },\n});\n\nconst store = createStore(root, {\n plugins: [createPersistedState()],\n});\n\nexport default store;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ValacBoxLayout',{attrs:{\"title\":_vm.$t('dashboard.title'),\"has-home-link\":false}},[_c('p',{staticClass:\"dashboard__description\"},[_vm._v(\" \"+_vm._s(_vm.$t('dashboard.description'))+\" \")]),_c('div',{staticClass:\"dashboard__actions\"},[_c('b-input',{staticClass:\"dashboard__search\",attrs:{\"placeholder\":_vm.$t('dashboard.search'),\"type\":\"search\",\"icon-right\":\"magnify\"},model:{value:(_vm.searchString),callback:function ($$v) {_vm.searchString=$$v},expression:\"searchString\"}}),_c('div',{staticClass:\"dashboard__view-mode\"},[_c('div',{staticClass:\"dashboard__view-mode__text\"},[_vm._v(\" \"+_vm._s(_vm.$t('dashboard.view'))+\" \")]),_c('a',{staticClass:\"dashboard__view-mode__icon\",class:{\n 'dashboard__view-mode__icon--inactive':\n _vm.viewMode != 'grid',\n },on:{\"click\":function($event){_vm.viewMode = 'grid'}}},[_c('base-icon',{attrs:{\"icon\":_vm.viewMode == 'grid'\n ? 'tile-view-selected'\n : 'tile-view-unselected'}})],1),_c('a',{staticClass:\"dashboard__view-mode__icon\",class:{\n 'dashboard__view-mode__icon--inactive':\n _vm.viewMode != 'table',\n },on:{\"click\":function($event){_vm.viewMode = 'table'}}},[_c('base-icon',{attrs:{\"icon\":_vm.viewMode == 'table'\n ? 'list-view-selected'\n : 'list-view-unselected'}})],1)])],1),(_vm.viewMode == 'grid')?_c('ValacBoxGrid',{attrs:{\"valac-boxes\":_vm.filteredValacBoxes,\"statistics\":_vm.statistics,\"loading\":_vm.valacBoxesLoading}}):(_vm.viewMode == 'table')?_c('ValacBoxTable',{attrs:{\"valac-boxes\":_vm.filteredValacBoxes,\"statistics\":_vm.statistics,\"loading\":_vm.valacBoxesLoading}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from 'axios';\n\nconst prodMode = process.env.NODE_ENV === 'production';\nconst baseURL = `${prodMode ? process.env.BASE_URL : '/'}api/`;\nconst api = axios.create({ baseURL });\n\nexport default api;\n","import api from './api';\nimport type {\n ValacBox,\n WishcardParameters,\n Wishcard,\n ValacBoxStatistics,\n} from '@/models';\nconst BASE_URL = 'ValacBoxes';\n\nexport default {\n async getValacBoxList(): Promise {\n return (await api.get(BASE_URL)).data;\n },\n async getValacBox(id: string): Promise {\n return (await api.get(`${BASE_URL}/${id}`)).data;\n },\n async getValacBoxStats(): Promise {\n return (await api.get(`${BASE_URL}/Stats`)).data;\n },\n async createValacBox(valacBox: ValacBox): Promise {\n return (await api.post(BASE_URL, valacBox)).data;\n },\n async updateValacBox(id: string, valacBox: ValacBox): Promise {\n return (await api.put(`${BASE_URL}/${id}`, valacBox)).data;\n },\n async deleteValacBox(id: string): Promise {\n await api.delete(`${BASE_URL}/${id}`);\n },\n valacBoxLogoUrl(id: string): string {\n return `${api.defaults.baseURL}${BASE_URL}/${id}/Logo`;\n },\n\n async getValacBoxWishcardList(id: string): Promise {\n return (await api.get(`${BASE_URL}/${id}/Wishcards`)).data;\n },\n async getValacBoxWishcard(id: string, email: string): Promise {\n return (await api.get(`${BASE_URL}/${id}/Wishcards/${email}`)).data;\n },\n async getValacBoxWishcardFile(\n id: string,\n email: string,\n fileName: string\n ): Promise {\n try {\n const response = await api.get(\n `${BASE_URL}/${id}/Wishcards/${email}/Files/${fileName}`,\n {\n responseType: 'blob',\n }\n );\n\n return new File([response.data], fileName, {\n type: response.headers['content-type'],\n });\n } catch (error) {\n return null;\n }\n },\n async submitValacBoxWishcard(\n id: string,\n paramenters: WishcardParameters,\n attachments: File[]\n ): Promise {\n const formData = new FormData();\n\n for (const [key, value] of Object.entries(paramenters)) {\n formData.append(key, value);\n }\n\n for (const attachment of attachments) {\n formData.append('attachments', attachment);\n }\n\n return (\n await api.put(`${BASE_URL}/${id}/Wishcards`, formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n })\n ).data;\n },\n async deleteValacBoxWishcard(id: string, email: string): Promise {\n await api.delete(`${BASE_URL}/${id}/Wishcards/${email}`);\n },\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"valac-box-layout\"},[_c('ValacBoxLayoutHeader',{attrs:{\"title\":_vm.title,\"subtitle\":_vm.subtitle,\"has-home-link\":_vm.hasHomeLink,\"has-back-button\":_vm.hasBackButton}}),_c('div',{staticClass:\"valac-box-layout__content\"},[_vm._t(\"default\")],2),_c('ValacBoxLayoutFooter')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{staticClass:\"valac-header\",class:{ 'valac-header--compact': _vm.isCompactHeader }},[(!_vm.isCompactHeader)?_c('div',{staticClass:\"valac-header__item\"},[(_vm.hasBackButton)?_c('a',{staticClass:\"valac-header__back\",on:{\"click\":_vm.goBack}},[_c('base-icon',{attrs:{\"icon\":\"back\",\"size\":\"is-medium\"}})],1):_vm._e(),(_vm.subtitle)?_c('h2',{staticClass:\"valac-header__subtitle\"},[_vm._v(\" \"+_vm._s(_vm.subtitle)+\" \")]):_vm._e()]):_vm._e(),_c('div',{staticClass:\"valac-header__item valac-header__item--center\",class:{ 'valac-header__item--clickable': _vm.hasHomeLink },on:{\"click\":_vm.onClickHome}},[_c('base-icon',{staticClass:\"valac-header__logo\",attrs:{\"icon\":\"valac-box\"}}),_c('h1',{staticClass:\"valac-header__title\"},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")])],1),(!_vm.isCompactHeader)?_c('div',{staticClass:\"valac-header__item\"}):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator';\n\n@Component({\n name: 'ValacBoxLayoutHeader',\n})\nexport default class ValacBoxLayoutHeader extends Vue {\n @Prop({ type: String, required: true })\n private title: string;\n\n @Prop({ type: String, required: false })\n private subtitle?: string;\n\n @Prop({ type: Boolean, default: true })\n private hasHomeLink: boolean;\n\n @Prop({ type: Boolean, default: false })\n private hasBackButton: boolean;\n\n private get isCompactHeader(): boolean {\n return this.isSmallScreen || (!this.subtitle && !this.hasBackButton);\n }\n\n private get isSmallScreen(): boolean {\n return this.$mq == 'xs' || this.$mq == 'sm';\n }\n\n private goBack(): void {\n this.$router.go(-1);\n }\n\n private onClickHome(): void {\n if (this.hasHomeLink) {\n this.$router.push('/');\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValacBoxLayoutHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValacBoxLayoutHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ValacBoxLayoutHeader.vue?vue&type=template&id=25e75392&scoped=true&\"\nimport script from \"./ValacBoxLayoutHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./ValacBoxLayoutHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ValacBoxLayoutHeader.vue?vue&type=style&index=0&id=25e75392&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"25e75392\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('footer',{staticClass:\"valac-box-footer\"},[_c('div',{staticClass:\"valac-box-footer__left\"},[_c('a',{staticClass:\"valac-box-footer__valac-link\",attrs:{\"target\":\"_blank\"}},[_c('base-icon',{attrs:{\"icon\":\"valac\",\"custom-size\":\"1em\"}}),_vm._v(\" iValac \")],1),_c('div',[_vm._v(\"-\")]),_c('div',[_vm._v(\" \"+_vm._s((\"BOX \" + _vm.currentVersion))+\" \")])]),_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"valac-box-footer__right\"},[_c('a',{attrs:{\"href\":\"https://www.star-group.net\",\"target\":\"_blank\"}},[_vm._v(\" © 2022 STAR GROUP \")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\nimport { version } from '@/../package.json';\n\n@Component({\n name: 'ValacBoxLayoutFooter',\n})\nexport default class ValacBoxLayoutFooter extends Vue {\n private get currentVersion(): string {\n return version;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValacBoxLayoutFooter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValacBoxLayoutFooter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ValacBoxLayoutFooter.vue?vue&type=template&id=a893279e&scoped=true&\"\nimport script from \"./ValacBoxLayoutFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./ValacBoxLayoutFooter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ValacBoxLayoutFooter.vue?vue&type=style&index=0&id=a893279e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a893279e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport ValacBoxLayoutHeader from './ValacBoxLayoutHeader.vue';\nimport ValacBoxLayoutFooter from './ValacBoxLayoutFooter.vue';\n\n@Component({\n name: 'ValacBoxLayout',\n components: {\n ValacBoxLayoutHeader,\n ValacBoxLayoutFooter,\n },\n})\nexport default class ValacBoxLayout extends Vue {\n @Prop({ type: String, default: 'iValacBOX' })\n private title: string;\n\n @Prop({ type: String, required: false })\n private subtitle?: string;\n\n @Prop({ type: Boolean, default: true })\n private hasHomeLink: boolean;\n\n @Prop({ type: Boolean, required: false })\n private hasBackButton?: boolean;\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValacBoxLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValacBoxLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ValacBoxLayout.vue?vue&type=template&id=8561f90a&scoped=true&\"\nimport script from \"./ValacBoxLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./ValacBoxLayout.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ValacBoxLayout.vue?vue&type=style&index=0&id=8561f90a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8561f90a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"valac-box-grid\",class:{ 'valac-box-grid--loading': _vm.loading }},[_c('div',{staticClass:\"valac-box-grid__content\"},_vm._l((_vm.valacBoxes),function(valacBox){return _c('div',{key:valacBox.id,staticClass:\"valac-box-grid__item\"},[_c('div',{staticClass:\"valac-box-grid__item__actions\"},[(!valacBox.hasExpired)?_c('a',{on:{\"click\":function($event){return _vm.onSubmit(valacBox)}}},[_c('base-icon',{attrs:{\"icon\":\"edit\"}})],1):_vm._e()]),_c('div',{staticClass:\"valac-box-grid__item__content\",on:{\"click\":function($event){return _vm.onView(valacBox)}}},[_c('div',{staticClass:\"valac-box-grid__item__logo\"},[(valacBox.hasLogo)?_c('b-image',{attrs:{\"src\":_vm.getValacBoxLogoUrl(valacBox)}}):_c('base-icon',{attrs:{\"icon\":\"valac-box\"}})],1),_c('div',{staticClass:\"valac-box-grid__item__assets\"},[_vm._v(\" \"+_vm._s((\"(\" + (_vm.getValacBoxWishcardCount(valacBox)) + \")\"))+\" \")]),_c('div',{staticClass:\"valac-box-grid__item__name\"},[_vm._v(\" \"+_vm._s(valacBox.name)+\" \")])])])}),0),_c('b-loading',{attrs:{\"active\":_vm.loading,\"is-full-page\":false}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component, Prop } from 'vue-property-decorator';\nimport type { ValacBox, ValacBoxStatistics } from '@/models';\nimport api from '@/api';\n\n@Component\nexport default class ValacBoxListMixin extends Vue {\n @Prop({ type: Array, required: true })\n protected valacBoxes: ValacBox[];\n\n @Prop({ type: Array, default: () => [] })\n protected statistics: ValacBoxStatistics[];\n\n @Prop({ type: Boolean, default: false })\n protected loading: boolean;\n\n protected getValacBoxLogoUrl(valacBox: ValacBox): string {\n return api.valacBoxLogoUrl(valacBox.id);\n }\n protected getValacBoxWishcardCount(valacBox: ValacBox): number | null {\n return (\n this.statistics.find(s => s.valacBoxId === valacBox.id)\n ?.wishcardsCount ?? null\n );\n }\n\n protected onView(valacBox: ValacBox): void {\n this.$router.push({\n name: 'WishcardList',\n params: { id: valacBox.id },\n });\n }\n protected onSubmit(valacBox: ValacBox): void {\n this.$router.push({\n name: 'WishcardSubmit',\n params: { id: valacBox.id },\n });\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Mixins } from 'vue-property-decorator';\nimport ValacBoxListMixin from '@/components/mixins/ValacBoxListMixin';\n\n@Component({\n name: 'ValacBoxGrid',\n})\nexport default class ValacBoxGrid extends Mixins(ValacBoxListMixin) {}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValacBoxGrid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValacBoxGrid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ValacBoxGrid.vue?vue&type=template&id=25cdeb17&scoped=true&\"\nimport script from \"./ValacBoxGrid.vue?vue&type=script&lang=ts&\"\nexport * from \"./ValacBoxGrid.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ValacBoxGrid.vue?vue&type=style&index=0&id=25cdeb17&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"25cdeb17\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('BaseTable',{attrs:{\"data\":_vm.valacBoxes,\"columns\":_vm.columns,\"loading\":_vm.loading,\"empty-message\":_vm.$t('valacBoxTable.empty'),\"clickable\":\"\"},on:{\"click\":_vm.onView},scopedSlots:_vm._u([{key:\"actions\",fn:function(ref){\nvar row = ref.row;\nreturn [(!row.hasExpired)?_c('a',{on:{\"click\":function($event){$event.stopPropagation();return _vm.onSubmit(row)}}},[_c('base-icon',{attrs:{\"icon\":\"edit\",\"custom-size\":\"20px\"}})],1):_vm._e()]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","type numberOrNull = number | null | undefined;\n\nexport function numberCompare(\n number1: numberOrNull,\n number2: numberOrNull,\n isAsc: boolean = true\n): number {\n if (number1 == null || number2 == null) {\n if (number1 == null && number2 == null) {\n return 0;\n }\n return number1 == null ? 1 : -1;\n }\n return isAsc ? number1 - number2 : number2 - number1;\n}\n","export default \"\";","export default \"\\n \\n \\n \\n \\n \\n\";","export default \"\\n \\n \\n \\n \\n \\n\";","export default \"\\n \\n \\n \\n \\n \\n\";","export default \"\\n \\n \\n \\n \\n \\n\";","export default \"\\n \\n \\n \\n \\n \\n\";","export default \"\\n \\n \\n \\n \\n \\n\";","export default \"\\n \\n \\n \\n \\n \\n\";","export default \"\\n \\n \\n \\n \\n \\n\";","export default \"\\n \\n \\n \\n \\n \\n\";","export default \"\\n \\n \\n \\n \\n \\n\";","export default \"\\n \\n \\n \\n \\n \\n\";","export default \"\\n \\n \\n \\n \\n \\n\";","export default \"\\n \\n \\n \\n \\n \\n\";","export default \"\\n \\n \\n \\n \\n \\n\";","export default \"\\n \\n \\n \\n \\n \\n\";","export default \"\\n \\n \\n \\n \\n \\n \\n \\n \\n\";","import back from '!!raw-loader!@/assets/icons/back.svg';\nimport camera from '!!raw-loader!@/assets/icons/camera.svg';\nimport close from '!!raw-loader!@/assets/icons/close.svg';\nimport deleteIcon from '!!raw-loader!@/assets/icons/delete.svg';\nimport download from '!!raw-loader!@/assets/icons/download.svg';\nimport edit from '!!raw-loader!@/assets/icons/edit.svg';\nimport listViewSelected from '!!raw-loader!@/assets/icons/list-view-selected.svg';\nimport listViewUnselected from '!!raw-loader!@/assets/icons/list-view-unselected.svg';\nimport tileViewSelected from '!!raw-loader!@/assets/icons/tile-view-selected.svg';\nimport tileViewUnselected from '!!raw-loader!@/assets/icons/tile-view-unselected.svg';\nimport lockClosed from '!!raw-loader!@/assets/icons/lock-closed.svg';\nimport lockOpen from '!!raw-loader!@/assets/icons/lock-open.svg';\nimport sort from '!!raw-loader!@/assets/icons/sort.svg';\nimport upload from '!!raw-loader!@/assets/icons/upload.svg';\nimport view from '!!raw-loader!@/assets/icons/view.svg';\nimport valacBox from '!!raw-loader!@/assets/icons/valac-box.svg';\nimport valac from '!!raw-loader!@/assets/icons/valac.svg';\n\nexport const customIcons = {\n back,\n camera,\n close,\n download,\n edit,\n sort,\n upload,\n view,\n valac,\n delete: deleteIcon,\n 'list-view-selected': listViewSelected,\n 'list-view-unselected': listViewUnselected,\n 'tile-view-selected': tileViewSelected,\n 'tile-view-unselected': tileViewUnselected,\n 'lock-closed': lockClosed,\n 'lock-open': lockOpen,\n 'valac-box': valacBox,\n};\n","import { ToastProgrammatic as Toast } from 'buefy';\n\nexport function toast(message: string, type?: string): void {\n Toast.open({\n type: type,\n message: message,\n position: 'is-bottom',\n duration: 5000,\n queue: false,\n });\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-table',_vm._b({staticClass:\"base-table\",class:{ 'base-table--clickable': _vm.clickable },attrs:{\"mobile-cards\":false},on:{\"click\":function($event){return _vm.$emit('click', $event)}},scopedSlots:_vm._u([(_vm.emptyMessage)?{key:\"empty\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.emptyMessage)+\" \")]},proxy:true}:null],null,true)},'b-table',_vm.$attrs,false),[_vm._l((_vm.columns),function(col,ind){return _c('b-table-column',_vm._b({key:ind,scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nreturn [(col.customHtml)?_c('span',{domProps:{\"innerHTML\":_vm._s(col.customHtml(row))}}):[_vm._v(\" \"+_vm._s(col.customDisplay ? col.customDisplay(row) : row[col.field])+\" \")]]}}],null,true)},'b-table-column',col,false))}),(!_vm.hideActions)?_c('b-table-column',{attrs:{\"custom-key\":\"actions\",\"header-class\":\"is-narrow\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('div',{staticClass:\"base-table__actions\"},[_vm._t(\"actions\",null,{\"row\":row})],2)]}}],null,true)}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport type { Column } from '@/models';\n\n@Component({\n name: 'BaseTable',\n})\nexport default class BaseTable extends Vue {\n @Prop({ type: Array, required: true })\n private columns: Column[];\n\n @Prop({ type: String, required: false })\n private emptyMessage: string;\n\n @Prop({ type: Boolean, default: false })\n private clickable: boolean;\n\n @Prop({ type: Boolean, default: false })\n private hideActions: boolean;\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseTable.vue?vue&type=template&id=281c21e4&\"\nimport script from \"./BaseTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BaseTable.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Mixins } from 'vue-property-decorator';\nimport { numberCompare } from '@/utils';\nimport type { Column, ValacBox } from '@/models';\nimport ValacBoxListMixin from '@/components/mixins/ValacBoxListMixin';\nimport BaseTable from '@/components/common/BaseTable.vue';\n\n@Component({\n name: 'ValacBoxTable',\n components: {\n BaseTable,\n },\n})\nexport default class ValacBoxTable extends Mixins(ValacBoxListMixin) {\n private get columns(): Column[] {\n return [\n {\n field: 'id',\n label: this.$t('valacBoxTable.id').toString(),\n sortable: true,\n },\n {\n field: 'name',\n label: this.$t('valacBoxTable.name').toString(),\n sortable: true,\n },\n {\n field: 'expirationDate',\n label: this.$t('valacBoxTable.expirationDate').toString(),\n sortable: true,\n customHtml: vb =>\n vb.hasExpired\n ? vb.expirationDate\n : `${vb.expirationDate}`,\n },\n {\n field: '',\n label: this.$t('valacBoxTable.wishcardCount').toString(),\n sortable: true,\n customDisplay: vb => this.getValacBoxWishcardCount(vb),\n customSort: (a, b, isAsc) =>\n numberCompare(\n this.getValacBoxWishcardCount(a),\n this.getValacBoxWishcardCount(b),\n isAsc\n ),\n },\n ];\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValacBoxTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValacBoxTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ValacBoxTable.vue?vue&type=template&id=d39721fc&\"\nimport script from \"./ValacBoxTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./ValacBoxTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Vue, Component } from 'vue-property-decorator';\nimport api from '@/api';\nimport { dashboardStore } from '@/store/modules/dashboard';\nimport type { ValacBox, ValacBoxStatistics, ViewMode } from '@/models';\nimport ValacBoxLayout from '@/components/layouts/ValacBoxLayout.vue';\nimport ValacBoxGrid from '@/components/valac-boxes/ValacBoxGrid.vue';\nimport ValacBoxTable from '@/components/valac-boxes/ValacBoxTable.vue';\n\n@Component({\n name: 'Dashboard',\n components: {\n ValacBoxLayout,\n ValacBoxGrid,\n ValacBoxTable,\n },\n})\nexport default class Dashboard extends Vue {\n private dashboardCtx = dashboardStore.context(this.$store);\n\n private valacBoxes: ValacBox[] = [];\n private statistics: ValacBoxStatistics[] = [];\n private valacBoxesLoading = false;\n\n private get searchString(): string {\n return this.dashboardCtx.state.searchString;\n }\n private set searchString(value: string) {\n this.dashboardCtx.commit('setSearchString', value);\n }\n\n private get viewMode(): ViewMode {\n return this.dashboardCtx.state.viewMode;\n }\n private set viewMode(value: ViewMode) {\n this.dashboardCtx.commit('setViewMode', value);\n }\n\n private get filteredValacBoxes(): ValacBox[] {\n const searchString = this.searchString.toUpperCase();\n\n if (searchString.length == 0) {\n return this.valacBoxes;\n }\n\n return this.valacBoxes.filter(\n vb =>\n vb.id.toUpperCase().includes(searchString) ||\n vb.name.toUpperCase().includes(searchString) ||\n vb.expirationDate.includes(searchString)\n );\n }\n\n public created(): void {\n this.fetchValacBoxes();\n }\n\n private async fetchValacBoxes(): Promise {\n this.valacBoxesLoading = true;\n\n [this.valacBoxes, this.statistics] = await Promise.all([\n api.getValacBoxList(),\n api.getValacBoxStats(),\n ]);\n\n this.valacBoxesLoading = false;\n }\n\n private onCreate(): void {\n // TODO\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=4006b138&scoped=true&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=ts&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Dashboard.vue?vue&type=style&index=0&id=4006b138&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4006b138\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.valacBox)?_c('ValacBoxLayout',{attrs:{\"title\":_vm.$t('wishcardSubmit.title', [_vm.valacBox.id, _vm.valacBox.name]),\"has-back-button\":\"\"}},[_c('div',{staticClass:\"wishcard-list__valac-box\"},[(_vm.valacBox.hasLogo)?_c('b-image',{staticClass:\"wishcard-list__valac-box__logo\",attrs:{\"src\":_vm.valacBoxLogoUrl}}):_vm._e(),_c('div',{staticClass:\"wishcard-list__valac-box__data\"},[_c('p',{staticClass:\"wishcard-list__valac-box__title\"},[_vm._v(\" \"+_vm._s(((_vm.valacBox.id) + \" - \" + (_vm.valacBox.name)))+\" \")]),_c('p',{staticClass:\"wishcard-list__valac-box__date\"},[_c('span',{staticClass:\"has-text-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('wishcardList.expirationDate'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.valacBox.expirationDate)+\" \")])])],1),_c('div',{staticClass:\"wishcard-list__actions\"},[_c('b-input',{staticClass:\"wishcard-list__search\",attrs:{\"placeholder\":_vm.$t('wishcardList.search'),\"type\":\"search\",\"icon-right\":\"magnify\"},model:{value:(_vm.searchString),callback:function ($$v) {_vm.searchString=$$v},expression:\"searchString\"}}),_c('div',{staticClass:\"wishcard-list__buttons\"},[_c('b-button',{attrs:{\"label\":_vm.$t('wishcardList.play'),\"type\":\"is-primary\",\"loading\":_vm.playLoading},on:{\"click\":function($event){_vm.showGallery = true}}}),(!_vm.valacBox.hasExpired)?_c('b-button',{attrs:{\"label\":_vm.$t('wishcardList.submit'),\"type\":\"is-dark\",\"tag\":\"router-link\",\"to\":{\n name: 'WishcardSubmit',\n params: {\n id: _vm.valacBoxId,\n },\n }}}):_vm._e()],1)],1),_c('WishcardTable',{attrs:{\"wishcards\":_vm.filteredWishcards,\"loading\":_vm.wishcardsLoading,\"valac-box-id\":_vm.valacBox.id}}),(_vm.isGalleryVisible)?_c('b-carousel',{staticClass:\"wishcard-list__play-gallery\",attrs:{\"indicator\":false,\"interval\":10000,\"pause-hover\":false,\"autoplay\":\"\",\"overlay\":\"\"},model:{value:(_vm.galleryInd),callback:function ($$v) {_vm.galleryInd=$$v},expression:\"galleryInd\"}},[_vm._l((_vm.attachments),function(item,i){return _c('b-carousel-item',{key:i},[_c('img',{attrs:{\"src\":_vm.getFileUrl(item)}})])}),_c('span',{staticClass:\"modal-close is-large\",on:{\"click\":function($event){_vm.showGallery = false}}})],2):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component } from 'vue-property-decorator';\n\n@Component\nexport default class FileUtilsMixin extends Vue {\n protected isImageType(type: string): boolean {\n return type.startsWith('image/');\n }\n protected isVideoType(type: string): boolean {\n return type.startsWith('video/');\n }\n\n protected isImageFile(file: File): boolean {\n return this.isImageType(file.type);\n }\n protected isVideoFile(file: File): boolean {\n return this.isVideoType(file.type);\n }\n\n protected getFileUrl(file: File): string {\n return URL.createObjectURL(file);\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('BaseTable',{attrs:{\"data\":_vm.wishcards,\"columns\":_vm.columns,\"loading\":_vm.loading,\"empty-message\":_vm.$t('wishcardTable.empty'),\"hide-actions\":\"\",\"clickable\":\"\"},on:{\"click\":_vm.onView}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { numberCompare } from '@/utils';\nimport type { Column, Wishcard } from '@/models';\nimport BaseTable from '@/components/common/BaseTable.vue';\n\n@Component({\n name: 'WishcardTable',\n components: {\n BaseTable,\n },\n})\nexport default class WishcardTable extends Vue {\n @Prop({ type: Array, required: true })\n private wishcards: Wishcard[];\n\n @Prop({ type: Boolean, default: false })\n private loading: boolean;\n\n @Prop({ type: String, required: true })\n private valacBoxId: string;\n\n private get columns(): Column[] {\n return [\n {\n field: 'sender',\n label: this.$t('wishcardTable.sender').toString(),\n sortable: true,\n },\n {\n field: 'title',\n label: this.$t('wishcardTable.title').toString(),\n sortable: true,\n },\n {\n field: 'email',\n label: this.$t('wishcardTable.email').toString(),\n sortable: true,\n },\n {\n field: 'attachments',\n label: this.$t('wishcardTable.attachmentCount').toString(),\n sortable: true,\n customDisplay: wishcard => wishcard.attachments.length,\n customSort: (a, b, isAsc) =>\n numberCompare(\n a.attachments.length,\n b.attachments.length,\n isAsc\n ),\n },\n ];\n }\n\n private onView(wishcard: Wishcard): void {\n this.$router.push({\n name: 'WishcardView',\n params: { id: this.valacBoxId, email: wishcard.email },\n });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WishcardTable.vue?vue&type=template&id=6b564480&\"\nimport script from \"./WishcardTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./WishcardTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Mixins, Watch } from 'vue-property-decorator';\nimport api from '@/api';\nimport type { ValacBox, Wishcard } from '@/models';\nimport type { NavigationGuardNext, Route } from 'vue-router';\nimport FileUtilsMixin from '@/components/mixins/FileUtilsMixin';\nimport ValacBoxLayout from '@/components/layouts/ValacBoxLayout.vue';\nimport WishcardTable from '@/components/wishcards/WishcardTable.vue';\n\n@Component({\n name: 'WishcardList',\n components: {\n ValacBoxLayout,\n WishcardTable,\n },\n})\nexport default class WishcardList extends Mixins(FileUtilsMixin) {\n private valacBox: ValacBox | null = null;\n private wishcards: Wishcard[] = [];\n private attachments: File[] = [];\n private wishcardsLoading = false;\n private attachmentsLoading = false;\n private showGallery = false;\n private galleryInd = 0;\n\n private searchString = '';\n\n private get valacBoxId(): string {\n return this.$route.params.id;\n }\n private get valacBoxLogoUrl(): string {\n return api.valacBoxLogoUrl(this.valacBoxId);\n }\n\n private get filteredWishcards(): Wishcard[] {\n const searchString = this.searchString.toUpperCase();\n\n if (searchString.length == 0) {\n return this.wishcards;\n }\n\n return this.wishcards.filter(\n w =>\n w.sender.toUpperCase().includes(searchString) ||\n w.title.toUpperCase().includes(searchString) ||\n w.email.includes(searchString)\n );\n }\n\n private get playLoading(): boolean {\n return this.showGallery && this.attachmentsLoading;\n }\n\n private get isGalleryVisible(): boolean {\n return this.showGallery && !this.attachmentsLoading;\n }\n\n @Watch('isGalleryVisible')\n private onGalleryVisibilityChange(): void {\n const rootElement = document.firstElementChild;\n\n if (this.isGalleryVisible) {\n rootElement?.classList.add('is-clipped');\n } else {\n rootElement?.classList.remove('is-clipped');\n }\n }\n\n public async beforeRouteEnter(\n to: Route,\n from: Route,\n next: NavigationGuardNext\n ): Promise {\n const valacBox = await api.getValacBox(to.params.id);\n\n next((vm: WishcardList) => (vm.valacBox = valacBox));\n }\n\n public created(): void {\n this.initialize();\n }\n\n private async initialize(): Promise {\n await this.fetchWishcards();\n await this.fetchImageAttachments();\n }\n\n private async fetchWishcards(): Promise {\n this.wishcardsLoading = true;\n\n this.wishcards = await api.getValacBoxWishcardList(this.valacBoxId);\n\n this.wishcardsLoading = false;\n }\n private async fetchImageAttachments(): Promise {\n this.attachmentsLoading = true;\n this.attachments = [];\n\n for (const wishcard of this.wishcards) {\n for (const attachment of wishcard.attachments) {\n if (!this.isImageType(attachment.contentType)) {\n continue;\n }\n\n const file = await api.getValacBoxWishcardFile(\n this.valacBoxId,\n wishcard.email,\n attachment.name\n );\n\n if (file != null) {\n this.attachments.push(file);\n }\n }\n }\n\n this.attachmentsLoading = false;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WishcardList.vue?vue&type=template&id=51c3f26e&\"\nimport script from \"./WishcardList.vue?vue&type=script&lang=ts&\"\nexport * from \"./WishcardList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./WishcardList.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.valacBox)?_c('ValacBoxLayout',{attrs:{\"title\":_vm.$t('wishcardSubmit.title', [_vm.valacBox.id, _vm.valacBox.name]),\"subtitle\":_vm.$t('wishcardSubmit.subtitle'),\"has-home-link\":false}},[(_vm.valacBox.hasExpired)?[_c('span',{staticClass:\"wishcard-submit__expired\",domProps:{\"innerHTML\":_vm._s(\n _vm.$t('wishcardSubmit.expired', [\n _vm.valacBox.name,\n _vm.valacBox.expirationDate ])\n )}})]:[_c('p',{staticClass:\"wishcard-submit__welcome\"},[_vm._v(\" \"+_vm._s(_vm.$t('wishcardSubmit.welcome'))+\" \"),_c('b',[_vm._v(_vm._s(_vm.valacBox.id))])]),_c('div',{staticClass:\"wishcard-submit__description\"},[(_vm.valacBox.hasLogo)?_c('b-image',{staticClass:\"wishcard-submit__description__image\",attrs:{\"src\":_vm.valacBoxLogoUrl}}):_vm._e(),_c('ul',{staticClass:\"wishcard-submit__description__text\"},[_c('li',[_vm._v(\" \"+_vm._s(_vm.$t('wishcardSubmit.description.1'))+\" \"),_c('b',[_vm._v(_vm._s(_vm.valacBox.name))])]),_c('li',[_vm._v(\" \"+_vm._s(_vm.$t('wishcardSubmit.description.2'))+\" \")]),_c('li',[_vm._v(\" \"+_vm._s(_vm.$t('wishcardSubmit.description.3'))+\" \"),_c('b',[_vm._v(_vm._s(_vm.valacBox.expirationDate))])])])],1),_c('p',{staticClass:\"wishcard-submit__email__description\"},[_vm._v(\" \"+_vm._s(_vm.$t('wishcardSubmit.email.description'))+\" \")]),_c('ValidationObserver',{attrs:{\"slim\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var invalid = ref.invalid;\nreturn [_c('div',{staticClass:\"wishcard-submit__email\"},[_c('FieldWithValidation',{attrs:{\"name\":_vm.$t('wishcardSubmit.email'),\"rules\":\"required|email\"}},[_c('b-input',{staticClass:\"wishcard-submit__email__input\",attrs:{\"type\":\"email\",\"placeholder\":_vm.$t('wishcardSubmit.email') + '*',\"icon-right\":\"close-circle\",\"icon-right-clickable\":\"\",\"loading\":!invalid && _vm.wishcardLoading},on:{\"icon-right-click\":_vm.clearEmail},model:{value:(_vm.form.email),callback:function ($$v) {_vm.$set(_vm.form, \"email\", $$v)},expression:\"form.email\"}})],1),_c('p',{staticClass:\"wishcard-submit__email__remark\"},[_vm._v(\" \"+_vm._s(_vm.$t('wishcardSubmit.email.remark'))+\" \")])],1),_c('div',{staticClass:\"wishcard-submit__buttons\"},[_c('b-button',{class:{\n 'wishcard-submit__button--invisible':\n _vm.isOpeningWishcard,\n },attrs:{\"label\":_vm.$t('wishcardSubmit.create'),\"type\":_vm.isCreatingWishcard ? 'is-primary' : 'is-dark',\"disabled\":invalid || !_vm.canCreateWishcard},on:{\"click\":_vm.onClickCreate}}),_c('b-button',{class:{\n 'wishcard-submit__button--invisible':\n _vm.isCreatingWishcard,\n },attrs:{\"label\":_vm.$t('wishcardSubmit.open'),\"type\":_vm.isOpeningWishcard ? 'is-primary' : 'is-dark',\"disabled\":invalid || !_vm.canOpenWishcard,\"loading\":_vm.openLoading},on:{\"click\":_vm.onClickOpen}})],1)]}}],null,false,3964563016)}),_c('b-collapse',{attrs:{\"open\":_vm.isFormOpen}},[_c('div',{staticClass:\"notification wishcard-submit__form\"},[_c('div',{staticClass:\"wishcard-submit__form__close\"},[_c('a',{on:{\"click\":_vm.closeForm}},[_c('base-icon',{attrs:{\"icon\":\"close\"}})],1)]),_c('WishcardForm',{ref:\"wishcardForm\",attrs:{\"valac-box-id\":_vm.valacBox.id,\"attachments\":_vm.attachments},on:{\"update:attachments\":function($event){_vm.attachments=$event},\"submitted\":_vm.onSubmitted},model:{value:(_vm.form),callback:function ($$v) {_vm.form=$$v},expression:\"form\"}})],1)])]],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ValidationObserver',{ref:\"formObserver\",staticClass:\"wishcard-form\",attrs:{\"tag\":\"div\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar invalid = ref.invalid;\nvar handleSubmit = ref.handleSubmit;\nreturn [_c('FieldWithValidation',{attrs:{\"name\":_vm.$t('wishcardForm.sender'),\"label\":_vm.$t('wishcardForm.sender.label'),\"rules\":\"required\"}},[_c('b-input',{attrs:{\"placeholder\":_vm.$t('wishcardForm.sender.placeholder')},model:{value:(_vm.parameters.sender),callback:function ($$v) {_vm.$set(_vm.parameters, \"sender\", $$v)},expression:\"parameters.sender\"}})],1),_c('FieldWithValidation',{attrs:{\"name\":_vm.$t('wishcardForm.content.title'),\"label\":_vm.$t('wishcardForm.content'),\"rules\":\"required\"}},[_c('b-input',{attrs:{\"placeholder\":_vm.$t('wishcardForm.content.title')},model:{value:(_vm.parameters.title),callback:function ($$v) {_vm.$set(_vm.parameters, \"title\", $$v)},expression:\"parameters.title\"}})],1),_c('b-field',[_c('b-input',{attrs:{\"type\":\"textarea\",\"placeholder\":_vm.$t('wishcardForm.content.text')},model:{value:(_vm.parameters.text),callback:function ($$v) {_vm.$set(_vm.parameters, \"text\", $$v)},expression:\"parameters.text\"}})],1),_c('b-notification',{attrs:{\"type\":\"is-danger is-light\",\"closable\":false},model:{value:(_vm.submitFailed),callback:function ($$v) {_vm.submitFailed=$$v},expression:\"submitFailed\"}},[_vm._v(\" \"+_vm._s(_vm.$t('wishcardForm.submit.error'))+\" \")]),_c('div',{staticClass:\"wishcard-form__buttons\"},[_c('div',{staticClass:\"wishcard-form__buttons__left\"},[_c('button',{staticClass:\"button wishcard-form__button--inverted is-inverted\",on:{\"click\":_vm.requestCapture}},[_c('base-icon',{attrs:{\"icon\":\"camera\"}})],1),_c('b-upload',{attrs:{\"accept\":\"image/png,image/jpeg,image/gif,video/mp4\",\"multiple\":\"\"},on:{\"input\":_vm.onAttachmentsChange},model:{value:(_vm.syncedAttachments),callback:function ($$v) {_vm.syncedAttachments=$$v},expression:\"syncedAttachments\"}},[_c('span',{staticClass:\"\\n button\\n wishcard-form__button--inverted\\n is-inverted\\n \"},[_c('base-icon',{attrs:{\"icon\":\"upload\"}})],1)])],1),(!_vm.isSmallScreen)?_c('div',{staticClass:\"wishcard-form__buttons__right\"},[_c('b-button',{attrs:{\"label\":_vm.$t('wishcardForm.submit'),\"type\":\"is-dark\",\"loading\":_vm.submitLoading,\"disabled\":invalid},on:{\"click\":function($event){return handleSubmit(_vm.submit)}}})],1):_vm._e()]),_c('FileCarousel',{model:{value:(_vm.syncedAttachments),callback:function ($$v) {_vm.syncedAttachments=$$v},expression:\"syncedAttachments\"}}),(_vm.isSmallScreen)?_c('div',{staticClass:\"wishcard-form__buttons__bottom\"},[_c('b-button',{attrs:{\"label\":_vm.$t('wishcardForm.submit'),\"type\":\"is-dark\",\"loading\":_vm.submitLoading,\"disabled\":invalid},on:{\"click\":function($event){return handleSubmit(_vm.submit)}}})],1):_vm._e(),_c('CameraModal',{ref:\"cameraModal\",on:{\"confirm\":_vm.onConfirmCapture}})]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const CAMERA_CAPTURE_PREFIX = 'capture_';\nexport const CAMERA_CAPTURE_EXTENSION = '.jpg';\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('BaseModal',{on:{\"close\":_vm.closeDialog},model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}},[_c('div',{staticClass:\"camera-wrapper\",class:(\"camera-wrapper--\" + _vm.disposition)},[_c('div',{staticClass:\"camera\",style:(_vm.dimensionsStyle)},[_c('video',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.haveAccessToCamera),expression:\"haveAccessToCamera\"}],ref:\"video\",staticClass:\"camera__content\"}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.capturing),expression:\"capturing\"}],staticClass:\"camera__content camera__capturing\"},[_c('div',{staticClass:\"camera__capturing__option\",on:{\"click\":function($event){return _vm.doCapture()}}},[_c('b-icon',{attrs:{\"icon\":\"check\"}})],1),_c('div',{staticClass:\"camera__capturing__option\",on:{\"click\":function($event){return _vm.continueCapturing()}}},[_c('b-icon',{attrs:{\"icon\":\"reload\"}})],1)])]),_c('div',{staticClass:\"camera-actions\",class:{ 'camera-actions--disabled': _vm.capturing }},[_c('div',{staticClass:\"camera-actions-group camera-actions-group--left\"},[(_vm.canFlipCamera)?_c('a',{on:{\"click\":function($event){return _vm.flipCamera()}}},[_c('b-icon',{staticClass:\"camera-action\",attrs:{\"icon\":\"camera-flip\"}})],1):_vm._e()]),_c('div',{staticClass:\"camera-action capture-button\",on:{\"click\":function($event){return _vm.confirmCapture()}}}),_c('div',{staticClass:\"camera-actions-group camera-actions-group--right\"},[_c('a',{on:{\"click\":function($event){return _vm.rotate()}}},[_c('b-icon',{staticClass:\"camera-action\",attrs:{\"icon\":_vm.disposition == 'horizontal'\n ? 'phone-rotate-portrait'\n : 'phone-rotate-landscape'}})],1)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{staticClass:\"base-modal\",attrs:{\"can-cancel\":['escape', 'outside']},on:{\"close\":function($event){return _vm.$emit('close')}},model:{value:(_vm.isActive),callback:function ($$v) {_vm.isActive=$$v},expression:\"isActive\"}},[_vm._t(\"default\"),_c('div',{staticClass:\"base-modal__actions\"},[_vm._t(\"actions\"),_c('a',{staticClass:\"base-modal__action\",on:{\"click\":_vm.onClose}},[_c('base-icon',{attrs:{\"icon\":\"close\",\"size\":\"is-small\"}})],1)],2)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, VModel, Vue } from 'vue-property-decorator';\n\n@Component({\n name: 'BaseModal',\n})\nexport default class BaseModal extends Vue {\n @VModel({ type: Boolean, required: true })\n private isActive: boolean;\n\n private onClose(): void {\n this.isActive = false;\n this.$emit('close');\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseModal.vue?vue&type=template&id=0005a998&\"\nimport script from \"./BaseModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BaseModal.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Ref, Vue } from 'vue-property-decorator';\nimport filter from 'lodash/filter';\nimport uniqueId from 'lodash/uniqueId';\nimport {\n CAMERA_CAPTURE_PREFIX,\n CAMERA_CAPTURE_EXTENSION,\n} from '@/utils/constants';\nimport BaseModal from './BaseModal.vue';\n\ninterface Dimensions {\n width: number;\n height: number;\n}\n\ninterface Image {\n dataURL: string;\n file: File;\n}\n\nfunction resize(boxSize: Dimensions, imgSize: Dimensions): Dimensions {\n if (imgSize.width <= boxSize.width && imgSize.height <= boxSize.height) {\n return imgSize;\n }\n\n var width = 0,\n height = 0;\n var wratio = imgSize.width / boxSize.width;\n var hratio = imgSize.height / boxSize.height;\n\n if (wratio > hratio) {\n width = boxSize.width;\n height = Math.round(imgSize.height / wratio);\n } else {\n height = boxSize.height;\n width = Math.round(imgSize.width / hratio);\n }\n\n return { width, height };\n}\n\nfunction dataURLtoFile(dataurl: string, filename: string): File {\n var arr = dataurl.split(','),\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n mime = arr[0].match(/:(.*?);/)![1],\n bstr = atob(arr[1]),\n n = bstr.length,\n u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new File([u8arr], filename, { type: mime });\n}\n\nfunction getRandomFileName(): string {\n return uniqueId(CAMERA_CAPTURE_PREFIX) + CAMERA_CAPTURE_EXTENSION;\n}\n\n@Component({\n name: 'CameraModal',\n components: {\n BaseModal,\n },\n})\nexport default class CameraModal extends Vue {\n @Ref()\n readonly video: HTMLVideoElement;\n\n private showDialog = false;\n private haveAccessToCamera = false;\n private cameraDevices: MediaDeviceInfo[] = [];\n private cameraDeviceIndex = 0;\n private disposition = 'horizontal';\n private dimensions = {\n horizontal: {\n width: 600,\n height: 400,\n },\n vertical: {\n width: 400,\n height: 600,\n },\n };\n private capturing = false;\n\n private get canFlipCamera(): boolean {\n return this.cameraDevices.length > 1;\n }\n private get dimensionsStyle() {\n let d =\n this.disposition == 'horizontal'\n ? this.dimensions.horizontal\n : this.dimensions.vertical;\n return {\n width: `${d.width}px`,\n height: `${d.height}px`,\n };\n }\n\n public mounted(): void {\n if (window.matchMedia('(max-width: 576px)').matches) {\n this.disposition = 'vertical';\n }\n\n this.calcDimensions();\n window.addEventListener('resize', this._onResize);\n }\n public beforeDestroy(): void {\n window.removeEventListener('resize', this._onResize);\n }\n\n private calcDimensions(): void {\n const bigScreen = window.matchMedia('(min-width: 960px)').matches;\n\n const win_size = {\n width:\n (bigScreen ? window.innerWidth * 0.75 : window.innerWidth) - 50,\n height:\n (bigScreen ? window.innerHeight * 0.75 : window.innerHeight) -\n 50,\n };\n\n // horizontal\n this.dimensions.horizontal = resize(win_size, {\n width: win_size.width,\n height: win_size.width * (9 / 16),\n });\n\n // vertical\n this.dimensions.vertical = resize(win_size, {\n width: win_size.width,\n height: win_size.width * (16 / 9),\n });\n }\n private rotate(): void {\n this.disposition =\n this.disposition == 'horizontal' ? 'vertical' : 'horizontal';\n }\n private closeDialog(): void {\n this.showDialog = false;\n this.capturing = false;\n this.stopCurrentStream();\n }\n private emitConfirm(image: Image): void {\n this.$emit('confirm', image);\n this.closeDialog();\n }\n private emitCancel(): void {\n this.$emit('cancel');\n this.closeDialog();\n }\n public async requestCapture(): Promise {\n this.showDialog = true;\n try {\n let stream = await navigator.mediaDevices.getUserMedia({\n video: true,\n });\n this.video.srcObject = stream;\n this.video.play();\n this.haveAccessToCamera = true;\n this.enumerateCameras();\n } catch (err) {\n console.log(err);\n }\n }\n private async enumerateCameras(): Promise {\n try {\n let devices = await navigator.mediaDevices.enumerateDevices();\n this.cameraDevices = filter(devices, d => d.kind == 'videoinput');\n } catch (err) {\n console.log(err);\n }\n }\n private async flipCamera(): Promise {\n this.stopCurrentStream();\n\n let index = this.cameraDeviceIndex + 1;\n if (index >= this.cameraDevices.length) {\n index = 0;\n }\n this.cameraDeviceIndex = index;\n\n try {\n let device = this.cameraDevices[index];\n let stream = await navigator.mediaDevices.getUserMedia({\n video: {\n deviceId: {\n exact: device.deviceId,\n },\n },\n });\n this.video.srcObject = stream;\n this.video.play();\n } catch (err) {\n console.log(err);\n }\n }\n private confirmCapture(): void {\n if (!this.haveAccessToCamera) return;\n\n this.video.pause();\n this.capturing = true;\n }\n private continueCapturing(): void {\n this.video.play();\n this.capturing = false;\n }\n private getCapture(): Image | undefined {\n if (!this.haveAccessToCamera) return undefined;\n\n let canvas = document.createElement('canvas');\n canvas.width = this.video.videoWidth;\n canvas.height = this.video.videoHeight;\n let ctx = canvas.getContext('2d');\n ctx?.drawImage(this.video, 0, 0);\n let dataURL = canvas.toDataURL('image/jpeg');\n let file = dataURLtoFile(dataURL, getRandomFileName());\n\n return { dataURL, file };\n }\n private doCapture(): void {\n let image = this.getCapture();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.emitConfirm(image!);\n }\n private stopCurrentStream(): void {\n try {\n this.video.pause();\n let stream = this.video.srcObject;\n if (stream != null) {\n (stream as MediaStream).getTracks().forEach(t => t.stop());\n this.video.srcObject = null;\n }\n } catch (err) {\n console.log(err);\n }\n }\n\n private _onResize(): void {\n this.calcDimensions();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CameraModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CameraModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CameraModal.vue?vue&type=template&id=0ebd45d9&scoped=true&\"\nimport script from \"./CameraModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./CameraModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CameraModal.vue?vue&type=style&index=0&id=0ebd45d9&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0ebd45d9\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-carousel-list',{staticClass:\"file-carousel\",attrs:{\"data\":_vm.carouselData,\"arrow-hover\":false,\"items-to-show\":_vm.itemsToShow},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar title = ref.title;\nvar url = ref.url;\nvar type = ref.type;\nvar index = ref.index;\nreturn [_c('div',{staticClass:\"file-carousel__element\"},[_c('b-button',{staticClass:\"file-carousel__delete\",on:{\"click\":function($event){return _vm.deleteFile(index)}}},[_c('base-icon',{attrs:{\"icon\":\"delete\"}})],1),(_vm.isImageType(type))?_c('a',{on:{\"click\":function($event){return _vm.viewFile(_vm.files[index])}}},[_c('b-image',{staticClass:\"file-carousel__image\",attrs:{\"src\":url,\"title\":title}})],1):(_vm.isVideoType(type))?[_c('video',{staticClass:\"file-carousel__video\"},[_c('source',{attrs:{\"src\":url,\"type\":type}})]),_c('a',{staticClass:\"file-carousel__play-button\",on:{\"click\":function($event){return _vm.viewFile(_vm.files[index])}}},[_c('b-icon',{attrs:{\"icon\":\"play\",\"size\":\"is-large\"}})],1)]:_vm._e()],2)]}}])}),_c('ImageViewerModal',{attrs:{\"file\":_vm.viewingFile},model:{value:(_vm.isViewingFile),callback:function ($$v) {_vm.isViewingFile=$$v},expression:\"isViewingFile\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isActive)?_c('BaseModal',{staticClass:\"image-viewer-modal\",scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('a',{staticClass:\"base-modal__action\",attrs:{\"href\":_vm.getFileUrl(_vm.file),\"download\":\"\"}},[_c('base-icon',{attrs:{\"icon\":\"download\",\"size\":\"is-small\"}})],1)]},proxy:true}],null,false,1109391923),model:{value:(_vm.isActive),callback:function ($$v) {_vm.isActive=$$v},expression:\"isActive\"}},[(_vm.isImageFile(_vm.file))?_c('b-image',{attrs:{\"src\":_vm.getFileUrl(_vm.file),\"title\":_vm.file.name}}):(_vm.isVideoFile(_vm.file))?_c('video',{attrs:{\"controls\":\"\",\"preload\":\"\"}},[_c('source',{attrs:{\"src\":_vm.getFileUrl(_vm.file),\"type\":_vm.file.type}})]):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Mixins, Prop, VModel } from 'vue-property-decorator';\nimport BaseModal from './BaseModal.vue';\nimport FileUtilsMixin from '@/components/mixins/FileUtilsMixin';\n\n@Component({\n name: 'ImageViewerModal',\n components: {\n BaseModal,\n },\n})\nexport default class ImageViewerModal extends Mixins(FileUtilsMixin) {\n @VModel({ type: Boolean, required: true })\n private isActive: boolean;\n\n @Prop({ type: File, required: false })\n private file?: File;\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageViewerModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageViewerModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ImageViewerModal.vue?vue&type=template&id=265bf6dc&scoped=true&\"\nimport script from \"./ImageViewerModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./ImageViewerModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ImageViewerModal.vue?vue&type=style&index=0&id=265bf6dc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"265bf6dc\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Mixins, VModel } from 'vue-property-decorator';\nimport FileUtilsMixin from '@/components/mixins/FileUtilsMixin';\nimport ImageViewerModal from '@/components/modals/ImageViewerModal.vue';\n\n@Component({\n name: 'WishcardFormFileCarousel',\n components: {\n ImageViewerModal,\n },\n})\nexport default class WishcardFormFileCarousel extends Mixins(FileUtilsMixin) {\n @VModel({ type: Array, required: true })\n private files: File[];\n\n private viewingFile: File | null = null;\n\n private get itemsToShow(): number {\n switch (this.$mq) {\n case 'xs':\n case 'sm':\n return 2;\n case 'md':\n return 4;\n case 'lg':\n return 6;\n default:\n return 8;\n }\n }\n\n private get isViewingFile(): boolean {\n return this.viewingFile != null;\n }\n private set isViewingFile(value: boolean) {\n if (!value) {\n this.viewingFile = null;\n }\n }\n\n private get carouselData(): any {\n return this.files.map(f => ({\n title: f.name,\n url: this.getFileUrl(f),\n type: f.type,\n }));\n }\n\n private viewFile(file: File): void {\n this.viewingFile = file;\n }\n\n private deleteFile(index: number): void {\n this.files.splice(index, 1);\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WischardFormFileCarousel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WischardFormFileCarousel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WischardFormFileCarousel.vue?vue&type=template&id=8c4bd84e&scoped=true&\"\nimport script from \"./WischardFormFileCarousel.vue?vue&type=script&lang=ts&\"\nexport * from \"./WischardFormFileCarousel.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./WischardFormFileCarousel.vue?vue&type=style&index=0&id=8c4bd84e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8c4bd84e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n Vue,\n Component,\n VModel,\n Ref,\n PropSync,\n Prop,\n} from 'vue-property-decorator';\nimport _ from 'lodash';\nimport api from '@/api';\nimport { toast } from '@/utils';\nimport {\n CAMERA_CAPTURE_PREFIX,\n CAMERA_CAPTURE_EXTENSION,\n} from '@/utils/constants';\nimport type { WishcardParameters } from '@/models';\nimport { ValidationObserver } from 'vee-validate';\nimport FieldWithValidation from '@/components/common/FieldWithValidation.vue';\nimport CameraModal from '@/components/modals/CameraModal.vue';\nimport FileCarousel from './WischardFormFileCarousel.vue';\n\n@Component({\n name: 'WishcardForm',\n components: {\n ValidationObserver,\n FieldWithValidation,\n CameraModal,\n FileCarousel,\n },\n})\nexport default class WishcardForm extends Vue {\n @VModel({ type: Object, required: true })\n private parameters: WishcardParameters;\n\n @Prop({ type: String, required: true })\n private valacBoxId: string;\n\n @PropSync('attachments', { type: Array, required: true })\n private syncedAttachments: File[];\n\n @Ref()\n private formObserver: InstanceType;\n\n @Ref()\n private cameraModal: CameraModal;\n\n private submitLoading = false;\n private submitFailed = false;\n\n private get isSmallScreen(): boolean {\n return this.$mq == 'sm' || this.$mq == 'xs';\n }\n\n public resetForm(): void {\n this.formObserver.reset();\n }\n\n private requestCapture(): void {\n this.cameraModal.requestCapture();\n }\n private onConfirmCapture(img: { file: File }): void {\n let file = img.file;\n\n const existingCaptureIds = this.syncedAttachments\n .filter(\n a =>\n a.name.startsWith(CAMERA_CAPTURE_PREFIX) &&\n a.name.endsWith(CAMERA_CAPTURE_EXTENSION)\n )\n .map(a =>\n Number.parseInt(\n a.name.substring(\n CAMERA_CAPTURE_PREFIX.length,\n a.name.length - CAMERA_CAPTURE_EXTENSION.length\n )\n )\n );\n\n const maxId = _.max(existingCaptureIds);\n\n if (\n maxId != null &&\n maxId <=\n Number.parseInt(\n file.name.substring(\n CAMERA_CAPTURE_PREFIX.length,\n file.name.length - CAMERA_CAPTURE_EXTENSION.length\n )\n )\n ) {\n const fileName = `${CAMERA_CAPTURE_PREFIX}${\n maxId + 1\n }${CAMERA_CAPTURE_EXTENSION}`;\n\n file = new File([file], fileName, {\n type: file.type,\n lastModified: file.lastModified,\n });\n }\n\n this.syncedAttachments.push(file);\n }\n\n private onAttachmentsChange(): void {\n this.syncedAttachments = _.uniqBy(this.syncedAttachments, 'name');\n }\n\n private async submit(): Promise {\n this.submitLoading = true;\n this.submitFailed = false;\n\n try {\n await api.submitValacBoxWishcard(\n this.valacBoxId,\n this.parameters,\n this.syncedAttachments\n );\n\n toast(\n this.$t('wishcardForm.submit.success').toString(),\n 'is-success'\n );\n\n this.$emit('submitted');\n } catch (error) {\n this.submitFailed = true;\n } finally {\n this.submitLoading = false;\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WishcardForm.vue?vue&type=template&id=46689dd2&scoped=true&\"\nimport script from \"./WishcardForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./WishcardForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./WishcardForm.vue?vue&type=style&index=0&id=46689dd2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"46689dd2\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Vue, Component, Watch, Ref } from 'vue-property-decorator';\nimport _ from 'lodash';\nimport api from '@/api';\nimport type { ValacBox, WishcardParameters, Wishcard } from '@/models';\nimport type { NavigationGuardNext, Route } from 'vue-router';\nimport { ValidationObserver } from 'vee-validate';\nimport ValacBoxLayout from '@/components/layouts/ValacBoxLayout.vue';\nimport FieldWithValidation from '@/components/common/FieldWithValidation.vue';\nimport WishcardForm from '@/components/wishcards/WishcardForm.vue';\n\n@Component({\n name: 'WishcardSubmit',\n components: {\n ValidationObserver,\n ValacBoxLayout,\n FieldWithValidation,\n WishcardForm,\n },\n metaInfo(this: WishcardSubmit) {\n return {\n title: this.valacBox?.name,\n };\n },\n})\nexport default class WishcardSubmit extends Vue {\n @Ref()\n private wishcardForm: WishcardForm;\n\n private valacBox: ValacBox | null = null;\n\n private form: WishcardParameters = {\n title: '',\n text: '',\n email: '',\n sender: '',\n };\n private attachments: File[] = [];\n\n private existingWishcard: Wishcard | null = null;\n private wishcardLoading = false;\n\n private creatingWishcard = {\n title: '',\n text: '',\n sender: '',\n };\n private creatingWishcardAttachments: File[] = [];\n\n private openLoading = false;\n private isCreatingWishcard = false;\n private isOpeningWishcard = false;\n\n private createSubmitted = false;\n\n private fetchWishcardDebounced = _.debounce(this.fetchWishcard, 500);\n\n private get valacBoxId(): string {\n return this.$route.params.id;\n }\n private get valacBoxLogoUrl(): string {\n return api.valacBoxLogoUrl(this.valacBoxId);\n }\n\n private get isFormOpen(): boolean {\n return this.isCreatingWishcard || this.isOpeningWishcard;\n }\n\n private get canCreateWishcard(): boolean {\n return !this.wishcardLoading && this.existingWishcard == null;\n }\n private get canOpenWishcard(): boolean {\n return !this.wishcardLoading && this.existingWishcard != null;\n }\n\n @Watch('form.email')\n private async onEmailChange() {\n if (this.isFormOpen) {\n this.closeForm();\n }\n\n this.wishcardLoading = true;\n this.fetchWishcardDebounced();\n }\n @Watch('isFormOpen')\n private async onCloseForm(value: boolean) {\n if (!value) {\n this.wishcardForm.resetForm();\n }\n }\n @Watch('isCreatingWishcard')\n private async onCreateWishcardChange(value: boolean) {\n if (value) {\n this.loadCreateState();\n } else {\n if (this.createSubmitted) {\n this.createSubmitted = false;\n this.clearCreateState();\n } else {\n this.storeCreateState();\n }\n }\n }\n\n public async beforeRouteEnter(\n to: Route,\n from: Route,\n next: NavigationGuardNext\n ): Promise {\n const valacBox = await api.getValacBox(to.params.id);\n\n next((vm: WishcardSubmit) => (vm.valacBox = valacBox));\n }\n\n private closeForm(): void {\n this.isCreatingWishcard = false;\n this.isOpeningWishcard = false;\n }\n\n private clearEmail(): void {\n this.form.email = '';\n }\n\n private storeCreateState(): void {\n this.creatingWishcardAttachments = [...this.attachments];\n this.creatingWishcard = { ...this.form };\n }\n private loadCreateState(): void {\n this.attachments = [...this.creatingWishcardAttachments];\n this.form.title = this.creatingWishcard.title;\n this.form.sender = this.creatingWishcard.sender;\n this.form.text = this.creatingWishcard.text;\n }\n private clearCreateState(): void {\n this.creatingWishcard = {\n title: '',\n text: '',\n sender: '',\n };\n this.creatingWishcardAttachments = [];\n }\n\n private async fetchWishcard(): Promise {\n if (!this.form.email) {\n this.existingWishcard = null;\n return;\n }\n\n this.wishcardLoading = true;\n\n try {\n this.existingWishcard = await api.getValacBoxWishcard(\n this.valacBoxId,\n this.form.email\n );\n } catch (error) {\n this.existingWishcard = null;\n } finally {\n this.wishcardLoading = false;\n }\n }\n private async fetchAttachments(): Promise {\n const wishcard = this.existingWishcard;\n\n if (wishcard != null) {\n this.attachments = [];\n\n for (const attachment of wishcard.attachments) {\n const file = await api.getValacBoxWishcardFile(\n this.valacBoxId,\n wishcard.email,\n attachment.name\n );\n\n if (file != null) {\n this.attachments.push(file);\n }\n }\n }\n }\n\n private onClickCreate(): void {\n this.isCreatingWishcard = !this.isCreatingWishcard;\n }\n private async onClickOpen(): Promise {\n if (this.isOpeningWishcard) {\n this.isOpeningWishcard = false;\n } else {\n this.openLoading = true;\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.form = { ...this.existingWishcard! };\n\n await this.fetchAttachments();\n\n this.isOpeningWishcard = true;\n } catch (error) {\n // TODO\n } finally {\n this.openLoading = false;\n }\n }\n }\n private onSubmitted(): void {\n this.fetchWishcard();\n\n if (this.isCreatingWishcard) {\n this.createSubmitted = true;\n }\n\n this.closeForm();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardSubmit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardSubmit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WishcardSubmit.vue?vue&type=template&id=2651fc44&scoped=true&\"\nimport script from \"./WishcardSubmit.vue?vue&type=script&lang=ts&\"\nexport * from \"./WishcardSubmit.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./WishcardSubmit.vue?vue&type=style&index=0&id=2651fc44&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2651fc44\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.wishcard && _vm.valacBox)?_c('ValacBoxLayout',{attrs:{\"title\":_vm.$t('wishcardSubmit.title', [_vm.valacBox.id, _vm.valacBox.name]),\"has-back-button\":\"\"}},[_c('div',{staticClass:\"wishcard-view\"},[_c('div',{staticClass:\"wishcard-view__main\"},[(_vm.hasAttachments)?_c('AttachmentsCarousel',{staticClass:\"wishcard-view__carousel\",attrs:{\"attachments\":_vm.attachments,\"loading\":_vm.attachmentsLoading},model:{value:(_vm.viewingIndex),callback:function ($$v) {_vm.viewingIndex=$$v},expression:\"viewingIndex\"}}):_vm._e(),_c('div',{staticClass:\"wishcard-view__wishcard\"},[_c('div',{staticClass:\"wishcard-view__wishcard__header\"},[_c('p',[_vm._v(_vm._s(_vm.wishcard.sender))]),_c('p',[_vm._v(_vm._s(_vm.wishcard.title))])]),_c('p',{staticClass:\"wishcard-view__wishcard__content\"},[_vm._v(\" \"+_vm._s(_vm.wishcard.text)+\" \")])])],1),(_vm.hasAttachments)?_c('AttachmentsGallery',{staticClass:\"wishcard-view__gallery\",attrs:{\"attachments\":_vm.attachments,\"loading\":_vm.attachmentsLoading},model:{value:(_vm.viewingIndex),callback:function ($$v) {_vm.viewingIndex=$$v},expression:\"viewingIndex\"}}):_vm._e()],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"attachments-carousel\"},[(_vm.hasArrowButtons)?_c('a',{staticClass:\"attachments-carousel__arrow\",class:{ 'attachments-carousel__arrow--disabled': !_vm.hasPrevious },on:{\"click\":_vm.onPrevious}},[_c('b-icon',{attrs:{\"icon\":\"chevron-left\",\"size\":\"is-large\"}})],1):_vm._e(),_c('b-carousel',{staticClass:\"attachments-carousel__content\",attrs:{\"autoplay\":false,\"arrow\":false,\"indicator\":false},model:{value:(_vm.currentIndex),callback:function ($$v) {_vm.currentIndex=$$v},expression:\"currentIndex\"}},_vm._l((_vm.attachments),function(attachment,ind){return _c('b-carousel-item',{key:ind,on:{\"click\":function($event){return _vm.viewAttachment(attachment)}}},[(_vm.isImageFile(attachment))?_c('a',[_c('b-image',{attrs:{\"src\":_vm.getFileUrl(attachment),\"title\":attachment.name}})],1):(_vm.isVideoFile(attachment))?_c('video',{attrs:{\"controls\":\"\",\"preload\":\"\"}},[_c('source',{attrs:{\"src\":_vm.getFileUrl(attachment),\"type\":attachment.type}})]):_vm._e()])}),1),(_vm.hasArrowButtons)?_c('a',{staticClass:\"attachments-carousel__arrow\",class:{ 'attachments-carousel__arrow--disabled': !_vm.hasNext },on:{\"click\":_vm.onNext}},[_c('b-icon',{attrs:{\"icon\":\"chevron-right\",\"size\":\"is-large\"}})],1):_vm._e(),_c('ImageViewerModal',{attrs:{\"file\":_vm.viewingAttachment},model:{value:(_vm.isViewingAttachment),callback:function ($$v) {_vm.isViewingAttachment=$$v},expression:\"isViewingAttachment\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Mixins, Prop, VModel } from 'vue-property-decorator';\nimport FileUtilsMixin from '@/components/mixins/FileUtilsMixin';\nimport ImageViewerModal from '@/components/modals/ImageViewerModal.vue';\n\n@Component({\n name: 'WishcardViewAttachmentsCarousel',\n components: {\n ImageViewerModal,\n },\n})\nexport default class WishcardViewAttachmentsCarousel extends Mixins(\n FileUtilsMixin\n) {\n @VModel({ type: Number, required: true })\n private currentIndex: number;\n\n @Prop({ type: Array, required: true })\n private attachments: File[];\n\n @Prop({ type: Boolean, default: false })\n private loading: boolean;\n\n private viewingAttachment: File | null = null;\n\n private get isViewingAttachment(): boolean {\n return this.viewingAttachment != null;\n }\n private set isViewingAttachment(value: boolean) {\n if (!value) {\n this.viewingAttachment = null;\n }\n }\n\n private get hasArrowButtons(): boolean {\n return this.$mq != 'xs' && this.$mq != 'sm';\n }\n\n private get hasPrevious(): boolean {\n return this.currentIndex > 0;\n }\n private get hasNext(): boolean {\n return this.currentIndex < this.attachments.length - 1;\n }\n\n private viewAttachment(attachment: File): void {\n this.viewingAttachment = attachment;\n }\n\n private onPrevious(): void {\n if (this.hasPrevious) {\n this.currentIndex--;\n }\n }\n private onNext(): void {\n if (this.hasNext) {\n this.currentIndex++;\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardViewAttachmentsCarousel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardViewAttachmentsCarousel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WishcardViewAttachmentsCarousel.vue?vue&type=template&id=d84394b2&scoped=true&\"\nimport script from \"./WishcardViewAttachmentsCarousel.vue?vue&type=script&lang=ts&\"\nexport * from \"./WishcardViewAttachmentsCarousel.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./WishcardViewAttachmentsCarousel.vue?vue&type=style&index=0&id=d84394b2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d84394b2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"attachments-gallery\",class:{ 'attachments-gallery--loading': _vm.loading }},[_c('div',{staticClass:\"attachments-gallery__content\"},_vm._l((_vm.attachments),function(attachment,ind){return _c('a',{key:ind,staticClass:\"attachments-gallery__item\",class:{\n 'attachments-gallery__item--active': _vm.isViewingFile(ind),\n },on:{\"click\":function($event){return _vm.viewFile(ind)}}},[(_vm.isImageFile(attachment))?_c('b-image',{attrs:{\"src\":_vm.getFileUrl(attachment),\"title\":attachment.name}}):(_vm.isVideoFile(attachment))?_c('div',{staticClass:\"attachments-gallery__video\"},[_c('video',[_c('source',{attrs:{\"src\":_vm.getFileUrl(attachment),\"type\":attachment.type}})]),_c('b-icon',{staticClass:\"attachments-gallery__video-icon\",attrs:{\"icon\":\"play-box-outline\"}})],1):_vm._e()],1)}),0),_c('b-loading',{attrs:{\"active\":_vm.loading,\"is-full-page\":false}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Mixins, Prop, VModel } from 'vue-property-decorator';\nimport FileUtilsMixin from '@/components/mixins/FileUtilsMixin';\n\n@Component({\n name: 'WishcardViewAttachmentsGallery',\n})\nexport default class WishcardViewAttachmentsGallery extends Mixins(\n FileUtilsMixin\n) {\n @VModel({ type: Number, required: true })\n private currentIndex: number;\n\n @Prop({ type: Array, required: true })\n private attachments: File[];\n\n @Prop({ type: Boolean, default: false })\n private loading: boolean;\n\n private isViewingFile(ind: number): boolean {\n return this.currentIndex == ind;\n }\n\n private viewFile(ind: number): void {\n this.currentIndex = ind;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardViewAttachmentsGallery.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardViewAttachmentsGallery.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WishcardViewAttachmentsGallery.vue?vue&type=template&id=4159fb82&scoped=true&\"\nimport script from \"./WishcardViewAttachmentsGallery.vue?vue&type=script&lang=ts&\"\nexport * from \"./WishcardViewAttachmentsGallery.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./WishcardViewAttachmentsGallery.vue?vue&type=style&index=0&id=4159fb82&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4159fb82\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Vue, Component, Watch } from 'vue-property-decorator';\nimport api from '@/api';\nimport type { ValacBox, Wishcard } from '@/models';\nimport type { Route, NavigationGuardNext } from 'vue-router';\nimport ValacBoxLayout from '@/components/layouts/ValacBoxLayout.vue';\nimport AttachmentsCarousel from '@/components/wishcards/WishcardViewAttachmentsCarousel.vue';\nimport AttachmentsGallery from '@/components/wishcards/WishcardViewAttachmentsGallery.vue';\n\n@Component({\n name: 'WishcardView',\n components: {\n ValacBoxLayout,\n AttachmentsCarousel,\n AttachmentsGallery,\n },\n})\nexport default class WishcardView extends Vue {\n private valacBox: ValacBox | null = null;\n private wishcard: Wishcard | null = null;\n private attachments: File[] = [];\n private attachmentsLoading = false;\n\n private viewingIndex = 0;\n\n private get valacBoxId(): string {\n return this.$route.params.id;\n }\n\n private get subtitle(): string {\n return `${this.valacBoxId} - ${this.wishcard?.sender}`;\n }\n\n private get hasAttachments(): boolean {\n return this.wishcard != null && this.wishcard.attachments.length > 0;\n }\n\n @Watch('wishcard')\n private onWishcardChange(): void {\n this.fetchAttachments();\n }\n\n public async beforeRouteEnter(\n to: Route,\n from: Route,\n next: NavigationGuardNext\n ): Promise {\n const [valacBox, wishcard] = await Promise.all([\n api.getValacBox(to.params.id),\n api.getValacBoxWishcard(to.params.id, to.params.email),\n ]);\n\n next((vm: WishcardView) => {\n vm.valacBox = valacBox;\n vm.wishcard = wishcard;\n });\n }\n\n private async fetchAttachments(): Promise {\n const wishcard = this.wishcard;\n\n if (wishcard == null) {\n return;\n }\n\n this.attachmentsLoading = true;\n this.attachments = [];\n\n for (const attachment of wishcard.attachments) {\n const file = await api.getValacBoxWishcardFile(\n this.valacBoxId,\n wishcard.email,\n attachment.name\n );\n\n if (file != null) {\n this.attachments.push(file);\n }\n }\n\n this.attachmentsLoading = false;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WishcardView.vue?vue&type=template&id=6b4469a9&scoped=true&\"\nimport script from \"./WishcardView.vue?vue&type=script&lang=ts&\"\nexport * from \"./WishcardView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./WishcardView.vue?vue&type=style&index=0&id=6b4469a9&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b4469a9\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\nimport VueRouter, { RouteConfig } from 'vue-router';\nimport VueMeta from 'vue-meta';\nimport { registerGlobalAuthGuard } from './registerGlobalAuthGuard';\nimport { registerMatomo } from './registerMatomo';\nimport store from '@/store';\n\nimport Dashboard from '../views/Dashboard.vue';\n\nimport WishcardList from '../views/wishcards/WishcardList.vue';\nimport WishcardSubmit from '../views/wishcards/WishcardSubmit.vue';\nimport WishcardView from '../views/wishcards/WishcardView.vue';\n\nVue.use(VueRouter);\nVue.use(VueMeta);\n\nconst routes: Array = [\n {\n path: '/',\n name: 'Dashboard',\n meta: { requiresAuth: true },\n component: Dashboard,\n },\n\n {\n path: '/:id([\\\\d\\\\w]+)',\n name: 'WishcardList',\n meta: { requiresAuth: true },\n component: WishcardList,\n },\n {\n path: '/:id([\\\\d\\\\w]+)/submit',\n name: 'WishcardSubmit',\n alias: '/:id([\\\\d\\\\w]+)/edit',\n component: WishcardSubmit,\n },\n {\n path: '/:id([\\\\d\\\\w]+)/view/:email([\\\\S]+)',\n name: 'WishcardView',\n meta: { requiresAuth: true },\n component: WishcardView,\n },\n];\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes,\n});\n\nregisterGlobalAuthGuard(router, store);\nregisterMatomo(router);\n\nexport default router;\n","export default {\n 'dashboard.title': 'iValacBOX',\n 'dashboard.description':\n 'Here you can access existing boxes or create a new one.',\n 'dashboard.search': 'Search for id, title, date',\n 'dashboard.view': 'View',\n 'dashboard.create': 'New',\n 'valacBoxTable.id': 'ID',\n 'valacBoxTable.name': 'Title',\n 'valacBoxTable.expirationDate': 'Exp. date / Status',\n 'valacBoxTable.wishcardCount': 'Number of messages',\n 'valacBoxTable.edit': 'Edit',\n 'valacBoxTable.empty': 'No results found',\n 'wishcardList.expirationDate': 'Expiry date: ',\n 'wishcardList.search': 'Search for sender, title, email',\n 'wishcardList.play': 'Play',\n 'wishcardList.submit': 'Submit',\n 'wishcardSubmit.title': 'iValacBOX: {0} - {1}',\n 'wishcardSubmit.subtitle': 'Submit',\n 'wishcardSubmit.welcome': 'Welcome to iValacBOX: ',\n 'wishcardSubmit.description.1': 'This iValacBOX collects messages for: ',\n 'wishcardSubmit.description.2':\n 'Here you can create a farewell card using an image, text or video',\n 'wishcardSubmit.description.3': 'This page will be active until: ',\n 'wishcardSubmit.email': 'Contact email',\n 'wishcardSubmit.email.description':\n 'Please create or open your existing farewell card with your contact email address',\n 'wishcardSubmit.email.remark': '*only one farewell card per email',\n 'wishcardSubmit.create': 'Create',\n 'wishcardSubmit.open': 'Open',\n 'wishcardSubmit.expired':\n 'The iValacBOX {0} closed in {1} and cannot be accessed.',\n 'wishcardTable.sender': 'From',\n 'wishcardTable.title': 'Title',\n 'wishcardTable.email': 'Email',\n 'wishcardTable.attachmentCount': 'Number of assets',\n 'wishcardTable.empty': 'No submissions found',\n 'wishcardForm.sender': 'Sender',\n 'wishcardForm.sender.label': \"Who's it from?\",\n 'wishcardForm.sender.placeholder': 'Group, Team or person',\n 'wishcardForm.content': 'Please fill out your farewell card',\n 'wishcardForm.content.title': 'Title',\n 'wishcardForm.content.text': 'Write your own text',\n 'wishcardForm.submit': 'Save',\n 'wishcardForm.submit.success': 'Farewell card saved succesfully',\n 'wishcardForm.submit.error':\n 'Farewell card could not be submitted, please verify that all fields are valid and try again',\n};\n","import VueI18n from 'vue-i18n';\nimport Vue from 'vue';\nimport en from '@/localization/messages/en';\n\nconst messages = {\n en,\n};\n\nVue.use(VueI18n);\n\nconst locale = 'en';\nconst fallbackLocale = 'en';\n\nexport const i18n = new VueI18n({\n locale,\n fallbackLocale,\n messages,\n});\n","import Vue from 'vue';\nimport Buefy from 'buefy';\nimport '@mdi/font/css/materialdesignicons.css';\n\nVue.use(Buefy);\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"base-icon\",class:_vm.iconSizeClass,style:({ height: _vm.customSize, 'min-width': _vm.customSize }),domProps:{\"innerHTML\":_vm._s(_vm.iconSvg)}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { customIcons } from '@/utils';\n\n@Component({\n name: 'BaseIcon',\n})\nexport default class BaseIcon extends Vue {\n @Prop({ type: String, required: true })\n private icon: string;\n\n @Prop({ type: String, required: false })\n private size: string;\n\n @Prop({ type: String, required: false })\n private customSize: string;\n\n private get iconSvg(): string {\n return (customIcons as any)[this.icon] ?? '';\n }\n\n private get iconSizeClass(): string {\n return this.size ? `base-icon--${this.size}` : '';\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseIcon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseIcon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseIcon.vue?vue&type=template&id=152988a6&\"\nimport script from \"./BaseIcon.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseIcon.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BaseIcon.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\nimport BaseIcon from '@/components/common/BaseIcon.vue';\n\nVue.component('base-icon', BaseIcon);\n","import { extend, localize } from 'vee-validate';\nimport * as rules from 'vee-validate/dist/rules';\nimport en from 'vee-validate/dist/locale/en.json';\n\nfor (const [rule, validation] of Object.entries(rules)) {\n extend(rule, {\n ...validation,\n });\n}\n\nlocalize({ en });\n","import './class-component-hooks';\n\nimport Vue from 'vue';\nimport VueMq from 'vue-mq';\nimport 'vue-class-component/hooks';\nimport App from './App.vue';\nimport router from './router';\nimport store from './store';\nimport { i18n } from '@/localization';\n\nimport '@/plugins/buefy';\nimport '@/plugins/custom-icons';\nimport '@/plugins/vee-validate';\n\nimport '@/styles/main.scss';\n\nVue.use(VueMq, {\n breakpoints: {\n sm: 600,\n md: 960,\n lg: 1264,\n xl: 1904,\n },\n defaultBreakpoint: 'sm',\n});\n\nVue.config.productionTip = false;\n\nnew Vue({\n i18n,\n router,\n store,\n render: h => h(App),\n}).$mount('#app');\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WishcardViewAttachmentsCarousel.vue?vue&type=style&index=0&id=d84394b2&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CameraModal.vue?vue&type=style&index=0&id=0ebd45d9&lang=scss&scoped=true&\""],"sourceRoot":""}