{"version":3,"sources":["webpack:///./node_modules/lodash/_isFlattenable.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./src/views/project/create.vue?6978","webpack:///./src/views/project/components/project-step-identification.vue?0dc4","webpack:///./src/mixins/projectStatuses.js","webpack:///src/views/project/components/project-step-identification.vue","webpack:///./src/views/project/components/project-step-identification.vue?b7e4","webpack:///./src/views/project/components/project-step-identification.vue","webpack:///./src/views/project/components/project-step-details.vue?57a5","webpack:///./src/views/project/components/project-addresses.vue?af59","webpack:///./src/views/project/components/project-address.vue?fd58","webpack:///src/views/project/components/project-address.vue","webpack:///./src/views/project/components/project-address.vue?bb69","webpack:///./src/views/project/components/project-address.vue","webpack:///src/views/project/components/project-addresses.vue","webpack:///./src/views/project/components/project-addresses.vue?d796","webpack:///./src/views/project/components/project-addresses.vue","webpack:///./src/views/project/components/project-site-meetings.vue?9696","webpack:///./src/views/project/components/project-site-meeting.vue?b187","webpack:///src/views/project/components/project-site-meeting.vue","webpack:///./src/views/project/components/project-site-meeting.vue?17a4","webpack:///./src/views/project/components/project-site-meeting.vue","webpack:///src/views/project/components/project-site-meetings.vue","webpack:///./src/views/project/components/project-site-meetings.vue?5fff","webpack:///./src/views/project/components/project-site-meetings.vue","webpack:///src/views/project/components/project-step-details.vue","webpack:///./src/views/project/components/project-step-details.vue?8a1a","webpack:///./src/views/project/components/project-step-details.vue","webpack:///./src/views/project/components/project-step-description.vue?bc9f","webpack:///src/views/project/components/project-step-description.vue","webpack:///./src/views/project/components/project-step-description.vue?adff","webpack:///./src/views/project/components/project-step-description.vue","webpack:///./src/views/project/components/project-step-contacts.vue?1bbc","webpack:///./src/views/project/components/project-owners.vue?be4c","webpack:///./src/views/project/components/project-owner.vue?eaa9","webpack:///src/views/project/components/project-owner.vue","webpack:///./src/views/project/components/project-owner.vue?da65","webpack:///./src/views/project/components/project-owner.vue","webpack:///src/views/project/components/project-owners.vue","webpack:///./src/views/project/components/project-owners.vue?7682","webpack:///./src/views/project/components/project-owners.vue","webpack:///./src/views/project/components/project-contacts.vue?a8ec","webpack:///./src/views/project/components/project-contact.vue?7985","webpack:///src/views/project/components/project-contact.vue","webpack:///./src/views/project/components/project-contact.vue?ec7b","webpack:///./src/views/project/components/project-contact.vue","webpack:///src/views/project/components/project-contacts.vue","webpack:///./src/views/project/components/project-contacts.vue?3254","webpack:///./src/views/project/components/project-contacts.vue","webpack:///./src/views/project/components/project-bidders.vue?2531","webpack:///./src/views/project/components/project-bid.vue?a478","webpack:///src/views/project/components/project-bid.vue","webpack:///./src/views/project/components/project-bid.vue?ec68","webpack:///./src/views/project/components/project-bid.vue","webpack:///./src/components/modals/app-send-email.vue?9d28","webpack:///src/components/modals/app-send-email.vue","webpack:///./src/components/modals/app-send-email.vue?6f70","webpack:///./src/components/modals/app-send-email.vue","webpack:///src/views/project/components/project-bidders.vue","webpack:///./src/views/project/components/project-bidders.vue?aec2","webpack:///./src/views/project/components/project-bidders.vue","webpack:///src/views/project/components/project-step-contacts.vue","webpack:///./src/views/project/components/project-step-contacts.vue?e2bc","webpack:///./src/views/project/components/project-step-contacts.vue","webpack:///./src/views/project/components/project-step-documents.vue?eea2","webpack:///./src/views/project/components/project-documents-upload.vue?dc32","webpack:///src/views/project/components/project-documents-upload.vue","webpack:///./src/views/project/components/project-documents-upload.vue?a497","webpack:///./src/views/project/components/project-documents-upload.vue","webpack:///./src/views/project/components/project-documents-folder-management.vue?9b6b","webpack:///src/views/project/components/project-documents-folder-management.vue","webpack:///./src/views/project/components/project-documents-folder-management.vue?a321","webpack:///./src/views/project/components/project-documents-folder-management.vue","webpack:///./src/views/project/components/project-documents-move-files.vue?63ba","webpack:///src/views/project/components/project-documents-move-files.vue","webpack:///./src/views/project/components/project-documents-move-files.vue?175e","webpack:///./src/views/project/components/project-documents-move-files.vue","webpack:///src/views/project/components/project-step-documents.vue","webpack:///./src/views/project/components/project-step-documents.vue?1c37","webpack:///./src/views/project/components/project-step-documents.vue","webpack:///./src/views/project/components/project-step-notes.vue?3b54","webpack:///./src/views/project/components/project-note.vue?ac80","webpack:///src/views/project/components/project-note.vue","webpack:///./src/views/project/components/project-note.vue?1aac","webpack:///./src/views/project/components/project-note.vue","webpack:///./src/views/project/components/project-prebid-note.vue?b4bf","webpack:///src/views/project/components/project-prebid-note.vue","webpack:///./src/views/project/components/project-prebid-note.vue?1ede","webpack:///./src/views/project/components/project-prebid-note.vue","webpack:///src/views/project/components/project-step-notes.vue","webpack:///./src/views/project/components/project-step-notes.vue?66ca","webpack:///./src/views/project/components/project-step-notes.vue","webpack:///./src/views/project/components/project-step-tasks.vue?9e6a","webpack:///./src/views/project/components/project-task.vue?489a","webpack:///src/views/project/components/project-task.vue","webpack:///./src/views/project/components/project-task.vue?af2f","webpack:///./src/views/project/components/project-task.vue","webpack:///src/views/project/components/project-step-tasks.vue","webpack:///./src/views/project/components/project-step-tasks.vue?9790","webpack:///./src/views/project/components/project-step-tasks.vue","webpack:///src/views/project/create.vue","webpack:///./src/views/project/create.vue?2549","webpack:///./src/views/project/create.vue","webpack:///./src/mixins/addressDisplay.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./src/views/project/components/project-documents-move-files.vue?2d10","webpack:///./node_modules/lodash/_baseAggregator.js","webpack:///./src/assets/document.svg","webpack:///./src/assets/cal.svg","webpack:///./node_modules/lodash/_createAggregator.js","webpack:///./node_modules/lodash/_baseFlatten.js","webpack:///./node_modules/lodash/groupBy.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/vue-upload-component/dist/vue-upload-component.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/_arrayAggregator.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/sortBy.js","webpack:///./node_modules/vue-vtree/dist/v-tree.esm.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./src/views/project/components/project-documents-upload.vue?278f"],"names":["Symbol","isArguments","isArray","spreadableSymbol","isConcatSpreadable","undefined","isFlattenable","value","module","exports","identity","overRest","setToString","baseRest","func","start","render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","isPageLoading","on","$event","_e","_v","projectData","preventDefault","onSubmit","showSendToBCBid","getProject","sentReportToBCBid","_s","_f","occurrence","followers","length","emailFollowers","id","class","isSendingToBCBid","canSendToBCBid","sendToBCBid","errors","any","_l","all","error","key","zones","provinces","getSelectedTimeZone","isEdit","rootFolderId","createdOn","updatedOn","createdBy","getClientTimeZone","code","updatedBy","isSaving","goToTop","projectFollowers","defaultFollowerEmailSubjectText","defaultFollowerEmailBodyText","staticRenderFns","_m","directives","name","rawName","project","timeZone","expression","fromBids","$$selectedVal","Array","prototype","filter","call","target","options","o","selected","map","val","_value","$set","multiple","domProps","composing","isPrivate","required","requiredForPrebid","has","zone","index","sharedZoneIds","_i","$$a","$$el","$$c","checked","$$v","$$i","concat","slice","isDraftMode","computed","showProject","isPreBid","tenderStageId","TenderStages","PREBID","isPrivateProject","requiredForOpenProject","inject","props","mixins","getDefaultTimeZone","mounted","component","datepickerOptionsClosingDate","model","callback","selectedTimeZone","datepickerOptionsOtherClosingDate","datepickerOptionsAwardedDate","first","getProjectAddresses","staticStyle","address","street","city","getProvinceName","provinceId","postalCode","editProjectAddress","deleteProjectAddress","newProjectAddress","countryId","filterProvinces","country","province","closeModal","data","provinceList","setCountry","$validator","reset","methods","getProvinces","$bvModal","hide","components","resetProjectAddress","then","fetchProjectAddress","getProjectSiteMeetings","meeting","date","text","priority","editProjectSiteMeeting","deleteProjectSiteMeeting","newProjectSiteMeeting","datepickerOptions","timeZoneCode","useCurrent","sideBySide","Date","filters","toString","charAt","toUpperCase","toLowerCase","resetProjectSiteMeeting","fetchProjectSiteMeeting","closingDate","otherClosingDate","awardedDate","tender","funding","_q","fundingId","getFundingTypes","procurementType","classificationTypeId","getClassificationOfWork","classification","work","classificationOfWorkIds","ownerType","tradeAgreement","getTradeAgreements","forceAsPrivate","enableRequestToBid","$permissions","isSysAdmin","isClientAdmin","hasAddPrivateProjectPermission","selectedClassificationType","classificationOfWorks","sort","$route","params","owner","newProjectOwner","getAddressDisplay","showInfo","editProjectOwner","ref","owners","selectOwner","scopedSlots","_u","fn","phone","query","slot","clearOwner","newOwner","isNew","hasOwner","VueBootstrapTypeahead","ownerId","additionalInformation","watch","immediate","deep","handler","displayName","$refs","ownerLookup","handleInput","input","disabled","selectedProvince","resetProjectOwner","fetchProjectOwner","getProjectContacts","contact","companyName","getContactTypeDisplay","contactTypeId","editProjectContact","deleteProjectContact","newProjectContact","contactType","fetchProjectContact","resetProjectContact","getProjectBids","bids","participantTypeId","getParticipantTypeDisplay","sortBidsByCompanyName","bid","company","canVisitCompanyInfo","submittedAmount","awardedAmount","editProjectBid","deleteProjectBid","newProjectBidder","emailBidders","offlineCompanies","addNewCompany","bidderEmailAddresses","companies","selectCompany","clearCompany","newCompany","hasCompany","participantType","disableAddToFollowerList","addToFollowerList","onSubmitSaveAdd","onSubmitSaveClose","companyId","userCount","setup","companyLookup","records","getGroupValue","getGroupLabel","email","includeMe","targetModal","isGrouped","groupValue","groupLabel","autoSelect","enableIncludeMe","subject","body","to","cc","bcc","created","groupedBids","_company","push","fetchProjectBid","selectedType","resetProjectBid","isDownloading","getCurrentFolderInformation","folder","changeCurrentFolder","parentId","selectedFolders","find","i","onSelectedFolder","updateFolder","deleteFolder","file","selectedFileIds","onSelectRecord","extension","downloadFile","fileName","deleteFile","openUploadModal","newFolder","openMoveFilesModal","deleteSelectedFoldersFiles","currentFolderId","getRootFolderData","folderManagementParams","selectedFolderId","rootFolder","onFileUploadedProjectMove","upload","dropActive","files","active","progress","style","width","size","speed","update","features","html5","success","remove","postAction","action","chunkAction","minSize","maxActive","maxRetries","headers","getUploadHeaders","startBody","projectUploadParams","getAllowedExtensions","getAllowedFileTypes","directory","onAddFile","onAddFolder","projectId","folderId","addIndex","addData","show","type","content","uploadApiEndpoint","$emit","clientApiKey","bearerToken","click","webkitdirectory","onclick","alert","inputFilter","newFile","oldFile","RegExp","test","prevent","isLoading","validationErrors","selectedFolder","folderName","parentFolderId","String","validator","handleRequest","formattedFolderStructure","child","selectNode","moveFiles","template","info","VTree","isCollapsed","expandLeaf","folderStructure","fileIds","ProjectDocumentsUpload","ProjectDocumentsFolderManagement","ProjectDocumentsMoveFiles","isNewProject","folders","children","findFolder","top","openManageFolderModal","pos","splice","getNotesHeading","getProjectNotes","note","editProjectNote","newProjectNote","getProjectPrebidNotes","editProjectPrebidNote","newProjectPrebidNote","showPrebidNotes","resetProjectNote","resetProjectPrebidNote","fetchProjectNote","fetchProjectPrebidNote","getProjectTasks","task","isCompleted","updateTaskCompletedFlag","dueDate","editProjectTask","deleteProjectTask","newProjectTask","sortedTasks","resetProjectTask","fetchProjectTask","updateProjectTaskCompletedFlag","t","displayString","builder","s","a","comp","sc","ss","abbreviation","apply","nativeMax","Math","max","transform","args","arguments","array","otherArgs","baseEach","baseAggregator","collection","setter","iteratee","accumulator","arrayAggregator","baseIteratee","createAggregator","initializer","arrayPush","baseFlatten","depth","predicate","isStrict","result","baseAssignValue","objectProto","Object","hasOwnProperty","groupBy","constant","global","factory","createRequest","xhr","XMLHttpRequest","open","method","url","responseType","keys","forEach","setRequestHeader","sendRequest","Promise","resolve","reject","onload","status","response","JSON","parse","err","onerror","send","stringify","sendFormRequest","FormData","append","request","_createClass","defineProperties","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","_classCallCheck","instance","TypeError","ChunkUploadHandler","chunks","end","chunkSize","fileSize","blob","startOffset","retries","stopChunks","chunksUploading","chunk","abort","startChunking","_this","promise","_this2","assign","phase","mime_type","fileType","res","sessionId","session_id","end_offset","createChunks","catch","maxActiveChunks","uploadNextChunk","hasChunksToUpload","uploadChunk","chunksToUpload","finish","_this3","updateFileProgress","addEventListener","evt","lengthComputable","round","loaded","total","uploadBody","start_offset","uploaded","_this4","finishBody","get","parseInt","_this5","completedProgress","chunksUploaded","uploadingProgress","reduce","min","script","change","e","$parent","addInputFile","navigator","userAgent","$destroy","constructor","parent","el","$el","__vue_script__","__vue_render__","inputId","accept","capture","__vue_staticRenderFns__","__vue_inject_styles__","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","__vue_normalize__","script$$1","scope","functional","moduleIdentifier","createInjector","createInjectorSSR","_compiled","_scopeId","__vue_create_injector__","head","document","getElementsByTagName","styles","isOldIE","css","querySelector","group","media","ids","parts","element","includes","source","sources","btoa","unescape","encodeURIComponent","createElement","setAttribute","appendChild","getAttribute","styleSheet","cssText","Boolean","join","textNode","createTextNode","nodes","childNodes","removeChild","insertBefore","InputFile","_extends","_typeof","iterator","obj","_toConsumableArray","arr","arr2","from","CHUNK_DEFAULT_OPTIONS","script$1","default","maximum","Number","putAction","customAction","Function","timeout","drop","dropDirectory","extensions","thread","chunkEnabled","drag","uploading","destroy","window","ondrop","maps","$nextTick","$forceUpdate","watchDrop","beforeDestroy","fileObject","chunkOptions","className","_active","watchActive","oldMaps","emitFile","_key","clear","emitInput","add","_files","addFiles","Blob","webkitRelativePath","relativePath","Element","random","substr","emitFilter","newFiles","_newFiles","_file2","_i2","names","replace","split","__vuex__","addDataTransfer","dataTransfer","items","item","getAsEntry","getAsFile","webkitGetAsEntry","getEntry","results","_i3","entry","path","isFile","isDirectory","dirReader","createReader","readEntries","entries","id1","id2","file1","file2","index1","indexOf","index2","console","isPrevent","setTimeout","message","trim","search","shouldUseChunkUpload","uploadPut","uploadHtml5","uploadHtml4","HandlerClass","querys","queryString","uploadXhr","form","File","filename","_file","speedTime","speedLoaded","onprogress","speedTime2","now","toFixed","interval","setInterval","clearInterval","complete","responseText","contentType","getResponseHeader","onabort","ontimeout","onKeydown","keyCode","iframe","src","getResponseData","doc","contentWindow","contentDocument","innerHTML","removeEventListener","submit","parentNode","_el","dropElement","onDragenter","onDragleave","onDocumentDrop","onDragover","onDrop","$root","dt","types","contains","nodeName","explicitOriginalTarget","fromElement","clientX","clientY","innerWidth","innerHeight","__vue_script__$1","__vue_render__$1","_t","__vue_staticRenderFns__$1","__vue_inject_styles__$1","__vue_scope_id__$1","__vue_module_identifier__$1","__vue_is_functional_template__$1","__vue_normalize__$1","hook","context","originalRender","h","existing","beforeCreate","__vue_create_injector__$1","FileUpload","FileUpload$1","freeze","require$$0","thisArg","eq","isArrayLike","isIndex","isObject","isIterateeCall","object","baseSetToString","string","shortOut","baseOrderBy","sortBy","iteratees","provide","parentVTree","$scopedSlots","scopeData","normalizeComponent","scopeId","isFunctionalTemplate","shadowMode","createInjectorShadow","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$options","shadowRoot","normalizeComponent_1","install","Vue","installed","plugin","GlobalVue","use","HOT_COUNT","HOT_SPAN","nativeNow","count","lastCalled","stamp","remaining"],"mappings":"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","file":"js/chunk-4243b224.73cea1b9.js","sourcesContent":["var Symbol = require('./_Symbol'),\n    isArguments = require('./isArguments'),\n    isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n  return isArray(value) || isArguments(value) ||\n    !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var identity = require('./identity'),\n    overRest = require('./_overRest'),\n    setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n  return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('div',{staticClass:\"main_page\"},[_c('app-navbar'),_c('div',{staticClass:\"page\"},[_c('loading',{attrs:{\"active\":_vm.isPageLoading,\"is-full-page\":\"\",\"zIndex\":2147483639},on:{\"update:active\":function($event){_vm.isPageLoading=$event}}}),(!_vm.isPageLoading)?_c('div',[_c('div',{staticClass:\"page-title\"},[_c('h1',[_vm._v(\"Project Form\")])]),_c('div',{staticClass:\"page-content\"},[(_vm.projectData.isPrivate)?_c('div',{staticClass:\"alert alert-warning mb-5\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle mr-2\"}),_vm._v(\" This is a private project and can only be seen by those who are invited. \")]):_vm._e(),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[(_vm.isEdit)?_c('div',[(_vm.showSendToBCBid && _vm.getProject.sentReportToBCBid != null)?_c('div',{staticClass:\"row d-flex justify-content-end\"},[_c('strong',{staticClass:\"mr-1\"},[_vm._v(\"Last Sent:\")]),_c('br'),_c('span',{staticClass:\"mr-1\"},[_vm._v(_vm._s(_vm._f(\"datetime\")(_vm.getProject.sentReportToBCBid.occurrence)))])]):_vm._e(),_c('div',{staticClass:\"row d-flex justify-content-end\"},[_c('menu',{staticClass:\"d-flex align-items-center justify-content-end m-0\"},[_c('button',{staticClass:\"btn btn-secondary p-2 text-dark ml-2 px-3 py-2 rounded\",attrs:{\"type\":\"button\",\"disabled\":!_vm.projectData.followers || !_vm.projectData.followers.length},on:{\"click\":_vm.emailFollowers}},[_c('i',{staticClass:\"far fa-envelope\"}),_vm._v(\" Email Followers \")]),_c('router-link',{staticClass:\"btn btn-secondary p-2 text-dark ml-2 px-3 py-2 rounded\",attrs:{\"to\":'/project/info/' + this.projectData.id,\"title\":\"View Project\"}},[_c('i',{staticClass:\"far fa-eye\"}),_vm._v(\" Member View \")]),(_vm.showSendToBCBid)?_c('button',{staticClass:\"btn btn-secondary p-2 text-dark ml-2 px-3 py-2 rounded\",class:{ 'running' : _vm.isSendingToBCBid },attrs:{\"type\":\"button\",\"disabled\":!_vm.canSendToBCBid || _vm.isSendingToBCBid},on:{\"click\":_vm.sendToBCBid}},[(!_vm.isSendingToBCBid)?_c('i',{staticClass:\"fas fa-share-square\"}):_c('div',{staticClass:\"ld ld-ring ld-spin\"}),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(!_vm.isSendingToBCBid ? \"Send to BC Bid\" : \"Sending -- Please wait\"))])]):_vm._e()],1)])]):_vm._e(),(_vm.errors.any())?_c('div',{staticClass:\"alert alert-danger alert-validation-summary-errors\"},[_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"alert\"}},[_vm._v(\"×\")]),_c('strong',{staticClass:\"alert-heading\"},[_vm._v(\"Please review the following errors\")]),_c('ul',_vm._l((_vm.errors.all()),function(error){return _c('li',{key:error,staticClass:\"error-message\"},[_vm._v(_vm._s(error))])}),0)]):_vm._e(),_c('project-step-identification',{attrs:{\"project\":_vm.projectData,\"zones\":_vm.zones},on:{\"update:project\":function($event){_vm.projectData=$event}}}),_c('hr'),_c('project-step-details',{attrs:{\"project\":_vm.projectData,\"provinces\":_vm.provinces,\"selectedTimeZone\":_vm.getSelectedTimeZone},on:{\"update:project\":function($event){_vm.projectData=$event}}}),_c('hr'),_c('project-step-description',{attrs:{\"project\":_vm.projectData},on:{\"update:project\":function($event){_vm.projectData=$event}}}),_c('hr'),_c('project-step-contacts',{attrs:{\"project\":_vm.projectData},on:{\"update:project\":function($event){_vm.projectData=$event}}}),_c('hr'),_c('project-step-documents',{attrs:{\"isNewProject\":!_vm.isEdit,\"project\":_vm.projectData,\"rootFolderId\":_vm.projectData.rootFolderId}}),_c('hr'),_c('project-step-notes',{attrs:{\"project\":_vm.projectData},on:{\"update:project\":function($event){_vm.projectData=$event}}}),_c('hr'),_c('project-step-tasks',{attrs:{\"selectedTimeZone\":_vm.getSelectedTimeZone}}),_c('hr')],1),_c('div',{staticClass:\"mt-3 mb-3 d-flex \"},[(_vm.projectData.createdOn || _vm.projectData.updatedOn)?_c('div',{staticClass:\"flex-fill\"},[_c('div',{staticClass:\"d-flex flex-column mb-3\"},[_c('div',[_vm._v(\"Created By: \"+_vm._s(_vm._f(\"fullname\")(_vm.projectData.createdBy)))]),_c('div',[_vm._v(\"Created On: \"+_vm._s(_vm._f(\"datetime\")(_vm.projectData.createdOn,'MMMM dd, yyyy h:mmaa'))+\" \"),(_vm.projectData.createdOn)?_c('span',[_vm._v(_vm._s(this.getClientTimeZone.code))]):_vm._e()]),_c('div',[_vm._v(\"Last Updated By: \"+_vm._s(_vm._f(\"fullname\")(_vm.projectData.updatedBy)))]),_c('div',[_vm._v(\"Last Updated On: \"+_vm._s(_vm._f(\"datetime\")(_vm.projectData.updatedOn,'MMMM dd, yyyy h:mmaa'))+\" \"),(_vm.projectData.updatedOn)?_c('span',[_vm._v(_vm._s(this.getClientTimeZone.code))]):_vm._e()])])]):_vm._e(),_c('div',{staticClass:\"p-2 flex-fill \"}),_c('div',{staticClass:\"p-2 flex-fill \"})])])]):_vm._e()],1)],1),_c('div',{staticClass:\"d-print-none\",attrs:{\"id\":\"save-bar-wrapper\"}},[_c('div',[_c('button',{staticClass:\"save-bar-Button ld-ext-right\",class:{ 'running' : _vm.isSaving },attrs:{\"type\":\"submit\",\"disabled\":_vm.isSaving},on:{\"click\":function($event){return _vm.onSubmit()}}},[(_vm.isSaving)?_c('span',[_vm._v(\"Saving...\")]):_c('span',[_vm._v(\"Save\")]),_c('div',{staticClass:\"ld ld-ring ld-spin\"})]),_c('button',{staticClass:\"save-bar-Button ml-2\",attrs:{\"type\":\"submit\"},on:{\"click\":function($event){return _vm.goToTop()}}},[_c('i',{staticClass:\"fas fa-arrow-alt-circle-up\"}),_vm._v(\" Back to Top \")])])]),_c('b-modal',{attrs:{\"id\":\"bv-modal-email-followers\",\"size\":\"lg\",\"hide-header\":\"\",\"hide-footer\":\"\",\"no-close-on-backdrop\":true,\"no-enforce-focus\":true}},[_c('app-send-email',{attrs:{\"target-modal\":\"bv-modal-email-followers\",\"records\":_vm.projectFollowers,\"autoSelect\":true,\"subject\":_vm.defaultFollowerEmailSubjectText,\"body\":_vm.defaultFollowerEmailBodyText,\"enable-include-me\":true}})],1)],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('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_vm._m(0),_vm._m(1),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"timeZone.id\"}},[_vm._v(\"Time Zone\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.timeZone.id),expression:\"project.timeZone.id\"}],staticClass:\"custom-select\",attrs:{\"id\":\"timeZone.id\",\"name\":\"timeZone_id\",\"readonly\":_vm.project.fromBids,\"disabled\":_vm.project.fromBids},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.project.timeZone, \"id\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.getTimeZones),function(timeZone){return _c('option',{key:timeZone.id,domProps:{\"value\":timeZone.id}},[_vm._v(_vm._s(timeZone.name))])}),0)]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"ocaaNumber\"}},[_vm._v(\"Project Number\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.ocaaNumber),expression:\"project.ocaaNumber\"}],staticClass:\"form-control\",attrs:{\"id\":\"ocaaNumber\",\"name\":\"ocaaNumber\",\"type\":\"text\",\"placeholder\":\"Number will be auto-generated on save\",\"readonly\":\"\"},domProps:{\"value\":(_vm.project.ocaaNumber)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.project, \"ocaaNumber\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"lcaNumber\"}},[_vm._v(\"LCA Number\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.lcaNumber),expression:\"project.lcaNumber\"}],staticClass:\"form-control\",attrs:{\"id\":\"lcaNumber\",\"name\":\"lcaNumber\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Enter LCA Number\"},domProps:{\"value\":(_vm.project.lcaNumber)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.project, \"lcaNumber\", $event.target.value)}}})]),(!_vm.project.isPrivate)?_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"belongZoneId\"}},[_vm._v(\" Belongs To \"),(_vm.requiredForPrebid)?_c('span',{staticClass:\"red-dot ml-3\"}):_vm._e()]),_c('select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({ required: _vm.requiredForPrebid }),expression:\"{ required: requiredForPrebid }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.project.belongZoneId),expression:\"project.belongZoneId\"}],staticClass:\"custom-select\",class:{ 'is-invalid': _vm.errors.has('belongZoneId') },attrs:{\"id\":\"belongZoneId\",\"name\":\"belongZoneId\",\"data-vv-as\":\"Belongs To\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.project, \"belongZoneId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.zones),function(zone){return _c('option',{key:zone.id,domProps:{\"value\":zone.id}},[_vm._v(_vm._s(zone.name))])}),0),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Belongs To field is required\")])]):_vm._e(),(!_vm.project.isPrivate)?_c('div',[_c('label',[_vm._v(\"Share with Zones\")]),_c('div',{attrs:{\"id\":\"shareWithZones\"}},_vm._l((_vm.zones),function(zone,index){return _c('div',{key:zone.id,staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.sharedZoneIds),expression:\"project.sharedZoneIds\"}],staticClass:\"custom-control-input\",attrs:{\"id\":'shared-zone-' + index,\"name\":\"sharedZoneIds\",\"type\":\"checkbox\"},domProps:{\"value\":zone.id,\"checked\":Array.isArray(_vm.project.sharedZoneIds)?_vm._i(_vm.project.sharedZoneIds,zone.id)>-1:(_vm.project.sharedZoneIds)},on:{\"change\":function($event){var $$a=_vm.project.sharedZoneIds,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=zone.id,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.project, \"sharedZoneIds\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.project, \"sharedZoneIds\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.project, \"sharedZoneIds\", $$c)}}}}),_c('label',{staticClass:\"custom-control-label\",attrs:{\"for\":'shared-zone-' + index}},[_vm._v(_vm._s(zone.name))])])}),0)]):_vm._e(),_c('div',{staticClass:\"form-group\"},[_vm._m(2),_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.project.title),expression:\"project.title\"}],staticClass:\"form-control\",class:{ 'is-invalid': _vm.errors.has('title') },attrs:{\"id\":\"title\",\"name\":\"title\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Enter project title\",\"readonly\":_vm.project.fromBids,\"data-vv-as\":\"Project Title\"},domProps:{\"value\":(_vm.project.title)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.project, \"title\", $event.target.value)}}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Project Title field is required\")])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"solicitationNumber\"}},[_vm._v(\"Owner Solicitation Number\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.ownerSolicitationNumber),expression:\"project.ownerSolicitationNumber\"}],staticClass:\"form-control\",attrs:{\"id\":\"solicitationNumber\",\"name\":\"solicitationNumber\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Enter Owner Solicitation Number\",\"readonly\":_vm.project.fromBids},domProps:{\"value\":(_vm.project.ownerSolicitationNumber)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.project, \"ownerSolicitationNumber\", $event.target.value)}}})])]),_c('div',{staticClass:\"col-md d-none d-lg-block\"})])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row form-title d-flex align-items-center mb-4\"},[_c('span',{staticClass:\"rounded-circle bg-primary mr-2 d-flex justify-content-center align-items-center text-white\"},[_vm._v(\"1\")]),_c('h2',{staticClass:\"m-0\"},[_vm._v(\"Project Identification\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row d-flex justify-content-end align-items-center\"},[_c('span',{staticClass:\"red-dot mr-2\"}),_vm._v(\" = Required \")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{attrs:{\"for\":\"title\"}},[_vm._v(\" Project Title \"),_c('span',{staticClass:\"red-dot ml-3\"})])}]\n\nexport { render, staticRenderFns }","import { TenderStages } from \"@/utils/enums\";\r\n\r\nconst isDraftMode = { computed: { isDraftMode() { return !this.project.showProject } } };\r\nconst isPreBid = { computed: { isPreBid() { return this.project.tenderStageId === TenderStages.PREBID } } };\r\nconst isPrivateProject = { computed: { isPrivateProject() { return !!this.project.isPrivate } } };\r\nconst requiredForOpenProject = { computed: { requiredForOpenProject() { return !this.isDraftMode && !this.isPreBid && !this.isPrivateProject } } };\r\nconst requiredForPrebid = { computed: { requiredForPrebid() { return !this.isDraftMode && !this.isPrivateProject } } };\r\n\r\nexport { isDraftMode, isPreBid, isPrivateProject, requiredForOpenProject, requiredForPrebid }\r\n","<template>\r\n  <div class=\"row\">\r\n    <div class=\"col-md-12\">\r\n      <div class=\"row form-title d-flex align-items-center mb-4\">\r\n        <span class=\"rounded-circle bg-primary mr-2 d-flex justify-content-center align-items-center text-white\">1</span>\r\n        <h2 class=\"m-0\">Project Identification</h2>\r\n      </div>\r\n      <div class=\"row d-flex justify-content-end align-items-center\">\r\n        <span class=\"red-dot mr-2\"></span> = Required\r\n      </div>\r\n      <div class=\"form-group\">\r\n          <label for=\"timeZone.id\">Time Zone</label>\r\n        <select id=\"timeZone.id\" name=\"timeZone_id\" class=\"custom-select\" v-model=\"project.timeZone.id\" :readonly=\"project.fromBids\" :disabled=\"project.fromBids\">\r\n          <option v-for=\"timeZone in getTimeZones\" :key=\"timeZone.id\" :value=\"timeZone.id\">{{ timeZone.name }}</option>\r\n        </select>\r\n      </div>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"ocaaNumber\">Project Number</label>\r\n        <input id=\"ocaaNumber\" name=\"ocaaNumber\" type=\"text\" class=\"form-control\" placeholder=\"Number will be auto-generated on save\" v-model=\"project.ocaaNumber\" readonly />\r\n      </div>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"lcaNumber\">LCA Number</label>\r\n        <input id=\"lcaNumber\" name=\"lcaNumber\" type=\"text\" class=\"form-control\" autocomplete=\"off\" placeholder=\"Enter LCA Number\" v-model=\"project.lcaNumber\" />\r\n      </div>\r\n\r\n      <div class=\"form-group\" v-if=\"!project.isPrivate\">\r\n        <label for=\"belongZoneId\">\r\n          Belongs To\r\n          <span class=\"red-dot ml-3\" v-if=\"requiredForPrebid\"></span>\r\n        </label>\r\n        <select id=\"belongZoneId\" name=\"belongZoneId\" class=\"custom-select\" :class=\"{ 'is-invalid': errors.has('belongZoneId') }\"\r\n            v-validate=\"{ required: requiredForPrebid }\" v-model=\"project.belongZoneId\" data-vv-as=\"Belongs To\">\r\n          <option v-for=\"zone in zones\" :key=\"zone.id\" :value=\"zone.id\">{{ zone.name }}</option>\r\n        </select>\r\n        <div class=\"invalid-feedback\">The Belongs To field is required</div>\r\n      </div>\r\n\r\n      <div v-if=\"!project.isPrivate\">\r\n        <label>Share with Zones</label>\r\n        <div id=\"shareWithZones\">\r\n          <div v-for=\"(zone, index) in zones\" :key=\"zone.id\" class=\"custom-control custom-checkbox\">\r\n            <input :id=\"'shared-zone-' + index\" name=\"sharedZoneIds\" type=\"checkbox\" class=\"custom-control-input\" :value=\"zone.id\" v-model=\"project.sharedZoneIds\">\r\n            <label class=\"custom-control-label\" :for=\"'shared-zone-' + index\">{{ zone.name }}</label>\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div class=\"form-group\">\r\n        <label for=\"title\">\r\n          Project Title\r\n          <span class=\"red-dot ml-3\"></span>\r\n        </label>\r\n        <input id=\"title\" name=\"title\" type=\"text\" class=\"form-control\" :class=\"{ 'is-invalid': errors.has('title') }\" autocomplete=\"off\" placeholder=\"Enter project title\"\r\n          v-validate=\"'required'\" v-model=\"project.title\" :readonly=\"project.fromBids\" data-vv-as=\"Project Title\" />\r\n        <div class=\"invalid-feedback\">The Project Title field is required</div>\r\n      </div>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"solicitationNumber\">Owner Solicitation Number</label>\r\n        <input id=\"solicitationNumber\" name=\"solicitationNumber\" type=\"text\" class=\"form-control\" autocomplete=\"off\" placeholder=\"Enter Owner Solicitation Number\"\r\n          v-model=\"project.ownerSolicitationNumber\" :readonly=\"project.fromBids\" />\r\n      </div>\r\n    </div>\r\n    <div class=\"col-md d-none d-lg-block\"></div>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters } from \"vuex\";\r\nimport { isDraftMode, isPreBid, isPrivateProject, requiredForPrebid } from \"@/mixins/projectStatuses\";\r\n\r\nexport default {\r\n  name: \"ProjectIdentification\",\r\n  inject: [\"$validator\"],\r\n  props: [\"project\", \"zones\"],\r\n  mixins: [isDraftMode, isPreBid, isPrivateProject, requiredForPrebid],\r\n  computed: {\r\n    getDefaultTimeZone() {\r\n      return this.project.timeZone.id ? this.project.timeZone : this.getClientTimeZone;\r\n    },\r\n    ...mapGetters([\"getZones\", \"getTimeZones\", \"getClientTimeZone\"])\r\n  },\r\n  mounted () {\r\n    this.project.timeZone = this.project.timeZone.id ? this.project.timeZone : this.getClientTimeZone;\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-step-identification.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-step-identification.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-step-identification.vue?vue&type=template&id=2ce721ac&\"\nimport script from \"./project-step-identification.vue?vue&type=script&lang=js&\"\nexport * from \"./project-step-identification.vue?vue&type=script&lang=js&\"\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 _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_vm._m(0),_c('project-addresses'),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-lg-4\"},[_c('label',{attrs:{\"for\":\"closingDate\"}},[_vm._v(\"Closing Date \"),(!_vm.isPreBid)?_c('span',{staticClass:\"red-dot ml-3\"}):_vm._e()]),_c('div',{staticClass:\"input-group mb-2\"},[_vm._m(1),_c('date-picker',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({ required: !_vm.isPreBid }),expression:\"{ required: !isPreBid }\"}],staticClass:\"form-control date-picker-input\",class:{ 'is-invalid': _vm.errors.has('closingDate') },attrs:{\"id\":\"closingDate\",\"name\":\"closingDate\",\"autocomplete\":\"off\",\"config\":_vm.datepickerOptionsClosingDate,\"readonly\":_vm.project.fromBids,\"data-vv-as\":\"Closing Date\"},model:{value:(_vm.project.closingDate),callback:function ($$v) {_vm.$set(_vm.project, \"closingDate\", $$v)},expression:\"project.closingDate\"}}),_c('div',{staticClass:\"input-group-append\"},[_c('span',{staticClass:\"input-group-text\",attrs:{\"id\":\"basic-addon2\"}},[_vm._v(_vm._s(_vm.selectedTimeZone.code))])]),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Closing Date field is required\")])],1)]),_c('div',{staticClass:\"form-group col-lg-4\"},[_c('label',{attrs:{\"for\":\"closingDate\"}},[_vm._v(\"Other Closing Date\")]),_c('div',{staticClass:\"input-group mb-2\"},[_vm._m(2),_c('date-picker',{staticClass:\"form-control date-picker-input\",attrs:{\"id\":\"otherClosingDate\",\"name\":\"otherClosingDate\",\"autocomplete\":\"off\",\"config\":_vm.datepickerOptionsOtherClosingDate},model:{value:(_vm.project.otherClosingDate),callback:function ($$v) {_vm.$set(_vm.project, \"otherClosingDate\", $$v)},expression:\"project.otherClosingDate\"}}),_c('div',{staticClass:\"input-group-append\"},[_c('span',{staticClass:\"input-group-text\",attrs:{\"id\":\"basic-addon2\"}},[_vm._v(_vm._s(_vm.selectedTimeZone.code))])])],1)]),_c('div',{staticClass:\"form-group col-lg-4\"},[_c('label',{attrs:{\"for\":\"awardedDate\"}},[_vm._v(\"Awarded Date\")]),_c('div',{staticClass:\"input-group mb-2\"},[_vm._m(3),_c('date-picker',{staticClass:\"form-control date-picker-input\",attrs:{\"id\":\"awardedDate\",\"name\":\"awardedDate\",\"autocomplete\":\"off\",\"config\":_vm.datepickerOptionsAwardedDate},model:{value:(_vm.project.awardedDate),callback:function ($$v) {_vm.$set(_vm.project, \"awardedDate\", $$v)},expression:\"project.awardedDate\"}}),_c('div',{staticClass:\"input-group-append\"},[_c('span',{staticClass:\"input-group-text\",attrs:{\"id\":\"basic-addon2\"}},[_vm._v(_vm._s(_vm.selectedTimeZone.code))])])],1)])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"registerUrl\"}},[_vm._v(\"Register Url\")]),_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('url'),expression:\"'url'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.project.registerUrl),expression:\"project.registerUrl\"}],staticClass:\"form-control\",class:{ 'is-invalid': _vm.errors.has('registerUrl') },attrs:{\"id\":\"registerUrl\",\"name\":\"registerUrl\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Enter register url\",\"data-vv-as\":\"Register Url\"},domProps:{\"value\":(_vm.project.registerUrl)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.project, \"registerUrl\", $event.target.value)}}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Register URL is not a valid URL\")])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"submitBidsTo\"}},[_vm._v(\"Submit Bids To \"),(_vm.requiredForOpenProject)?_c('span',{staticClass:\"red-dot ml-3\"}):_vm._e()]),_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({ required: _vm.requiredForOpenProject }),expression:\"{ required: requiredForOpenProject }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.project.submitBidsTo),expression:\"project.submitBidsTo\"}],staticClass:\"form-control\",class:{ 'is-invalid': _vm.errors.has('submitBidsTo') },attrs:{\"id\":\"submitBidsTo\",\"name\":\"submitBidsTo\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Enter where to submit bids to\",\"readonly\":_vm.project.fromBids,\"data-vv-as\":\"Submit Bids To\"},domProps:{\"value\":(_vm.project.submitBidsTo)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.project, \"submitBidsTo\", $event.target.value)}}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"You must enter information in the field for where to submit bids\")])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"obtainBidDocuments\"}},[_vm._v(\"Obtain Bid Documents \"),(_vm.requiredForOpenProject)?_c('span',{staticClass:\"red-dot ml-3\"}):_vm._e()]),_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({ required: _vm.requiredForOpenProject }),expression:\"{ required: requiredForOpenProject }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.project.obtainBidDocuments),expression:\"project.obtainBidDocuments\"}],staticClass:\"form-control\",class:{ 'is-invalid': _vm.errors.has('obtainBidDocuments') },attrs:{\"id\":\"obtainBidDocuments\",\"name\":\"obtainBidDocuments\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Enter text\",\"readonly\":_vm.project.fromBids,\"data-vv-as\":\"Obtain Bids Documents\"},domProps:{\"value\":(_vm.project.obtainBidDocuments)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.project, \"obtainBidDocuments\", $event.target.value)}}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(_vm._s(_vm.errors.first('obtainBidDocuments')))])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"bonding\"}},[_vm._v(\"Bonding\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.bonding),expression:\"project.bonding\"}],staticClass:\"form-control\",attrs:{\"id\":\"bonding\",\"name\":\"bonding\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Enter bonding\"},domProps:{\"value\":(_vm.project.bonding)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.project, \"bonding\", $event.target.value)}}})]),_c('project-site-meetings',{attrs:{\"selectedTimeZone\":_vm.selectedTimeZone}}),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"addenda\"}},[_vm._v(\"Addenda \"),(_vm.requiredForOpenProject)?_c('span',{staticClass:\"red-dot ml-3\"}):_vm._e()]),_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({ required: _vm.requiredForOpenProject }),expression:\"{ required: requiredForOpenProject }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.project.addenda),expression:\"project.addenda\"}],staticClass:\"form-control\",class:{ 'is-invalid': _vm.errors.has('addenda') },attrs:{\"id\":\"addenda\",\"name\":\"addenda\",\"type\":\"number\",\"autocomplete\":\"off\",\"placeholder\":\"Enter the number of addenda\",\"readonly\":_vm.project.fromBids,\"data-vv-as\":\"Addenda\"},domProps:{\"value\":(_vm.project.addenda)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.project, \"addenda\", $event.target.value)}}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(_vm._s(_vm.errors.first('addenda')))])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"addendaNotes\"}},[_vm._v(\"Addenda Notes\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.addendaInfo),expression:\"project.addendaInfo\"}],staticClass:\"form-control\",attrs:{\"id\":\"addendaNotes\",\"name\":\"addendaNotes\",\"placeholder\":\"Enter additional addenda notes\",\"rows\":\"5\"},domProps:{\"value\":(_vm.project.addendaInfo)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.project, \"addendaInfo\", $event.target.value)}}})])],1),_c('div',{staticClass:\"col-md d-none d-lg-block\"})])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row form-title d-flex align-items-center mb-4\"},[_c('span',{staticClass:\"rounded-circle bg-primary mr-2 d-flex justify-content-center align-items-center text-white\"},[_vm._v(\"2\")]),_c('h2',{staticClass:\"m-0\"},[_vm._v(\"Project Details\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"input-group-prepend\"},[_c('span',{staticClass:\"input-group-text bg-transparent pr-2\"},[_c('img',{attrs:{\"src\":require(\"@/assets/cal.svg\"),\"alt\":\"\"}})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"input-group-prepend\"},[_c('span',{staticClass:\"input-group-text bg-transparent pr-2\"},[_c('img',{attrs:{\"src\":require(\"@/assets/cal.svg\"),\"alt\":\"\"}})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"input-group-prepend\"},[_c('span',{staticClass:\"input-group-text bg-transparent pr-2\"},[_c('img',{attrs:{\"src\":require(\"@/assets/cal.svg\"),\"alt\":\"\"}})])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('div',{attrs:{\"id\":\"site-address-list\"}},[(_vm.getProjectAddresses.length === 0)?_c('div',{staticClass:\"alert alert-warning\",attrs:{\"role\":\"alert\"}},[_vm._v(\" No project addresses available \")]):_vm._e(),(_vm.getProjectAddresses.length > 0)?_c('table',{staticClass:\"table\"},[_c('thead',[_c('tr',[_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Address\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"City\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Province/State\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Postal Code/Zip Code\")]),_c('th',{staticStyle:{\"width\":\"100px\"},attrs:{\"scope\":\"col\"}}),_c('th',{staticStyle:{\"width\":\"100px\"},attrs:{\"scope\":\"col\"}})])]),_c('tbody',_vm._l((_vm.getProjectAddresses),function(address){return _c('tr',{key:address.id},[_c('td',[_vm._v(_vm._s(address.street || '---'))]),_c('td',[_vm._v(_vm._s(address.city || '---'))]),_c('td',[_vm._v(_vm._s(_vm.getProvinceName(address.provinceId)))]),_c('td',[_vm._v(_vm._s(address.postalCode || '---'))]),_c('td',[_c('a',{staticClass:\"d-flex justify-content-between align-items-center flex-column\",attrs:{\"role\":\"button\",\"href\":\"#\",\"title\":\"Manage\"},on:{\"click\":function($event){$event.preventDefault();return _vm.editProjectAddress(address.id)}}},[_c('img',{staticClass:\"mb-1\",attrs:{\"src\":require(\"@/assets/document.svg\"),\"alt\":\"\"}}),_c('span',{staticClass:\"small-grey\"},[_vm._v(\"Manage\")])])]),_c('td',[_c('a',{staticClass:\"d-flex justify-content-between align-items-center flex-column\",attrs:{\"role\":\"button\",\"href\":\"#\",\"title\":\"Manage\"},on:{\"click\":function($event){$event.preventDefault();return _vm.deleteProjectAddress(address.id)}}},[_c('img',{staticClass:\"mb-1\",attrs:{\"src\":require(\"@/assets/document.svg\"),\"alt\":\"\"}}),_c('span',{staticClass:\"small-grey\"},[_vm._v(\"Remove\")])])])])}),0)]):_vm._e(),_c('div',{staticClass:\"row mb-3\"},[_c('div',{staticClass:\"col-md-12 text-right\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.newProjectAddress}},[_c('i',{staticClass:\"fas fa-plus\"}),_vm._v(\" Add New Project Address \")])])])]),_c('b-modal',{attrs:{\"id\":\"bv-modal-project-address\",\"size\":\"lg\",\"hide-header\":\"\",\"hide-footer\":\"\",\"no-close-on-backdrop\":true}},[_c('project-address')],1)],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('fragment',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('div',{staticClass:\"modal-header\"},[_c('h4',{staticClass:\"modal-title\"},[_vm._v(\"Add Project Address\")])]),_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"address\"}},[_vm._v(\"Street\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.address.street),expression:\"address.street\"}],staticClass:\"form-control\",attrs:{\"id\":\"address\",\"name\":\"address\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Enter site address\"},domProps:{\"value\":(_vm.address.street)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.address, \"street\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"city\"}},[_vm._v(\"City\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.address.city),expression:\"address.city\"}],staticClass:\"form-control\",attrs:{\"id\":\"city\",\"name\":\"city\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"City\"},domProps:{\"value\":(_vm.address.city)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.address, \"city\", $event.target.value)}}})]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"col-lg-6 mb-3\"},[_c('label',{attrs:{\"for\":\"country\"}},[_vm._v(\"Country\")]),_c('select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.countryId),expression:\"countryId\"}],staticClass:\"custom-select\",class:{ 'is-invalid': _vm.errors.has('country') },attrs:{\"id\":\"country\",\"name\":\"country\",\"data-vv-as\":\"Country\"},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.countryId=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},function($event){return _vm.filterProvinces()}]}},_vm._l((_vm.getCountries),function(country){return _c('option',{key:country.id,domProps:{\"value\":country.id}},[_vm._v(_vm._s(country.name))])}),0),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\" The Country field is required \")])]),_c('div',{staticClass:\"col-lg-6 mb-3\"},[_c('label',{attrs:{\"for\":\"province\"}},[_vm._v(\"Province/State\")]),_c('select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.address.provinceId),expression:\"address.provinceId\"}],staticClass:\"custom-select\",class:{ 'is-invalid': _vm.errors.has('province') },attrs:{\"id\":\"province\",\"name\":\"province\",\"data-vv-as\":\"Province\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.address, \"provinceId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.provinceList),function(province){return _c('option',{key:province.id,attrs:{\"data-countryid\":province.countryId},domProps:{\"value\":province.id}},[_vm._v(_vm._s(province.name))])}),0),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\" The Province/State field is required \")])])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"col-lg-6 mb-3\"},[_c('label',{attrs:{\"for\":\"postalCode\"}},[_vm._v(\"Postal Code/Zip Code\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.address.postalCode),expression:\"address.postalCode\"}],staticClass:\"form-control\",attrs:{\"id\":\"postalCode\",\"name\":\"postalCode\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Postal code\"},domProps:{\"value\":(_vm.address.postalCode)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.address, \"postalCode\", $event.target.value)}}})])])]),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Save\")]),_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.closeModal}},[_vm._v(\"Close\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <fragment>\r\n    <form v-on:submit.prevent=\"onSubmit\">\r\n      <div class=\"modal-header\">\r\n        <h4 class=\"modal-title\">Add Project Address</h4>\r\n      </div>\r\n\r\n      <div class=\"modal-body\">\r\n        <div class=\"form-group\">\r\n          <label for=\"address\">Street</label>\r\n          <input id=\"address\" name=\"address\" type=\"text\" class=\"form-control\" autocomplete=\"off\" placeholder=\"Enter site address\" v-model=\"address.street\">\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"city\">City</label>\r\n          <input id=\"city\" name=\"city\" type=\"text\" class=\"form-control\" autocomplete=\"off\" placeholder=\"City\" v-model=\"address.city\">\r\n        </div>\r\n\r\n        <div class=\"form-row\">\r\n          <div class=\"col-lg-6 mb-3\">\r\n            <label for=\"country\">Country</label>\r\n            <select id=\"country\" name=\"country\" class=\"custom-select\" :class=\"{ 'is-invalid': errors.has('country') }\"\r\n                v-validate=\"'required'\" data-vv-as=\"Country\" v-model=\"countryId\" v-on:change=\"filterProvinces()\">\r\n              <option v-for=\"country in getCountries\" :key=\"country.id\" :value=\"country.id\">{{ country.name }}</option>\r\n            </select>\r\n            <div class=\"invalid-feedback\"> The Country field is required </div>\r\n          </div>\r\n          <div class=\"col-lg-6 mb-3\">\r\n            <label for=\"province\">Province/State</label>\r\n            <select id=\"province\" name=\"province\" class=\"custom-select\" :class=\"{ 'is-invalid': errors.has('province') }\"\r\n                v-validate=\"'required'\" v-model=\"address.provinceId\" data-vv-as=\"Province\">\r\n              <option v-for=\"province in provinceList\" :key=\"province.id\" :value=\"province.id\" :data-countryid=\"province.countryId\">{{ province.name }}</option>\r\n            </select>\r\n            <div class=\"invalid-feedback\"> The Province/State field is required </div>\r\n          </div>\r\n        </div>\r\n        <div class=\"form-row\">\r\n          <div class=\"col-lg-6 mb-3\">\r\n            <label for=\"postalCode\">Postal Code/Zip Code</label>\r\n            <input id=\"postalCode\" name=\"postalCode\" type=\"text\" class=\"form-control\" autocomplete=\"off\" placeholder=\"Postal code\" v-model=\"address.postalCode\">\r\n          </div>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"modal-footer\">\r\n        <button type=\"submit\" class=\"btn btn-success\">Save</button>\r\n        <button type=\"button\" class=\"btn btn-secondary\" @click=\"closeModal\">Close</button>\r\n      </div>\r\n    </form>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from \"vuex\";\r\nimport Toast from \"@/utils/toast\";\r\n\r\nexport default {\r\n  name: \"project-address\",\r\n  data: function() {\r\n    return {\r\n      address: {\r\n        id: null,\r\n        street: null,\r\n        city: null,\r\n        provinceId: null,\r\n        postalCode: null\r\n      },\r\n      countryId: null,\r\n      provinceList: null\r\n    };\r\n  },\r\n  computed: {\r\n    ...mapGetters([\"getProjectAddress\", \"getProvinces\",\"getCountries\"])\r\n  },\r\n  mounted: function() {\r\n    this.address = { ...this.getProjectAddress };\r\n    this.setCountry();\r\n    this.filterProvinces();\r\n    this.$validator.reset();\r\n  },\r\n  methods: {\r\n    async onSubmit() {\r\n      var isFormValid = await this.$validator.validate();\r\n\r\n      if (!isFormValid) {\r\n        return;\r\n      }\r\n\r\n      this.saveProjectAddress(this.address).then(() => {\r\n        let message = this.$createElement('span', {}, [ 'Successfully updated!', this.$createElement('br'), 'Please remember to save your project.']);\r\n        Toast.success(this, [message]);\r\n        this.$bvModal.hide(\"bv-modal-project-address\");\r\n      });\r\n    },\r\n    setCountry() {\r\n        let selectedProvince = this.getProvinces.filter((p) =>{ return p.id==this.address.provinceId});\r\n        if(selectedProvince.length >0){\r\n          this.countryId = selectedProvince[0].countryId;\r\n        }\r\n        \r\n    },\r\n    filterProvinces() {\r\n      this.provinceList = this.getProvinces.filter((p)=>{return p.countryId == this.countryId});\r\n    },\r\n    closeModal() {\r\n      this.$bvModal.hide(\"bv-modal-project-address\");\r\n    },\r\n    ...mapActions([\"saveProjectAddress\"])\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-address.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-address.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-address.vue?vue&type=template&id=0bd67ae2&\"\nimport script from \"./project-address.vue?vue&type=script&lang=js&\"\nexport * from \"./project-address.vue?vue&type=script&lang=js&\"\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","<template>\r\n  <fragment>\r\n    <div id=\"site-address-list\">\r\n      <div class=\"alert alert-warning\" role=\"alert\" v-if=\"getProjectAddresses.length === 0\">\r\n        No project addresses available\r\n      </div>\r\n\r\n      <table class=\"table\" v-if=\"getProjectAddresses.length > 0\">\r\n        <thead>\r\n          <tr>\r\n            <th scope=\"col\">Address</th>\r\n            <th scope=\"col\">City</th>\r\n            <th scope=\"col\">Province/State</th>\r\n            <th scope=\"col\">Postal Code/Zip Code</th>\r\n            <th scope=\"col\" style=\"width: 100px\">&nbsp;</th>\r\n            <th scope=\"col\" style=\"width: 100px\">&nbsp;</th>\r\n          </tr>\r\n        </thead>\r\n        <tbody>\r\n          <tr v-for=\"address in getProjectAddresses\" :key=\"address.id\">\r\n            <td>{{ address.street || '---' }}</td>\r\n            <td>{{ address.city || '---' }}</td>\r\n            <td>{{ getProvinceName(address.provinceId) }}</td>\r\n            <td>{{ address.postalCode || '---' }}</td>\r\n            <td>\r\n              <a role=\"button\" href=\"#\" class=\"d-flex justify-content-between align-items-center flex-column\" title=\"Manage\" @click.prevent=\"editProjectAddress(address.id)\">\r\n                <img class=\"mb-1\" src=\"@/assets/document.svg\" alt />\r\n                <span class=\"small-grey\">Manage</span>\r\n              </a>\r\n            </td>\r\n            <td>\r\n              <a role=\"button\" href=\"#\" class=\"d-flex justify-content-between align-items-center flex-column\" title=\"Manage\" @click.prevent=\"deleteProjectAddress(address.id)\">\r\n                <img class=\"mb-1\" src=\"@/assets/document.svg\" alt />\r\n                <span class=\"small-grey\">Remove</span>\r\n              </a>\r\n            </td>\r\n          </tr>\r\n        </tbody>\r\n      </table>\r\n      <div class=\"row mb-3\">\r\n        <div class=\"col-md-12 text-right\">\r\n          <button type=\"button\" class=\"btn btn-primary\" @click=\"newProjectAddress\">\r\n            <i class=\"fas fa-plus\"></i>\r\n            Add New Project Address\r\n          </button>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <b-modal id=\"bv-modal-project-address\" size=\"lg\" hide-header hide-footer :no-close-on-backdrop=\"true\">\r\n      <project-address></project-address>\r\n    </b-modal>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from \"vuex\";\r\nimport Toast from \"@/utils/toast\";\r\nimport MessageBox from \"@/utils/messagebox\";\r\nimport ProjectAddress from \"@/views/project/components/project-address.vue\";\r\n\r\nexport default {\r\n  name: \"project-addresses\",\r\n  components: { ProjectAddress },\r\n  computed: {\r\n    ...mapGetters([\"getProjectAddresses\", \"getProvinces\"])\r\n  },\r\n  methods: {\r\n    getProvinceName: function(id) {\r\n      let province = this.getProvinces.find(province => province.id === id);\r\n      return (province && province.name) || \"\";\r\n    },\r\n    newProjectAddress() {\r\n      this.resetProjectAddress().then(() => {\r\n        this.$bvModal.show(\"bv-modal-project-address\");\r\n      });\r\n    },\r\n    editProjectAddress(id) {\r\n      this.fetchProjectAddress(id).then(() => {\r\n        this.$bvModal.show(\"bv-modal-project-address\");\r\n      });\r\n    },\r\n    async deleteProjectAddress(id) {\r\n      let confirm = await MessageBox.confirm(\r\n        this,\r\n        \"Remove Address\",\r\n        \"Are you sure you want to remove address\"\r\n      );\r\n\r\n      if (confirm) {\r\n        this.removeProjectAddress(id).then(() => {\r\n          Toast.success(this, \"Successfully removed address!\");\r\n        });\r\n      }\r\n    },\r\n    ...mapActions([\r\n      \"fetchProjectAddress\",\r\n      \"resetProjectAddress\",\r\n      \"removeProjectAddress\"\r\n    ])\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-addresses.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-addresses.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-addresses.vue?vue&type=template&id=0406ac53&\"\nimport script from \"./project-addresses.vue?vue&type=script&lang=js&\"\nexport * from \"./project-addresses.vue?vue&type=script&lang=js&\"\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 _c('fragment',[_c('div',{attrs:{\"id\":\"site-meeting-list\"}},[_c('h3',{staticClass:\"mb-3\"},[_vm._v(\"Site Meetings\")]),(_vm.getProjectSiteMeetings.length === 0)?_c('div',{staticClass:\"alert alert-warning\",attrs:{\"role\":\"alert\"}},[_vm._v(\" No site meetings available \")]):_vm._e(),(_vm.getProjectSiteMeetings.length > 0)?_c('table',{staticClass:\"table\"},[_c('thead',[_c('tr',[_c('th',{staticStyle:{\"width\":\"225px\"},attrs:{\"scope\":\"col\"}},[_vm._v(\"Meeting Date\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Site Meeting Information\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Priority\")]),_c('th',{staticStyle:{\"width\":\"100px\"},attrs:{\"scope\":\"col\"}}),_c('th',{staticStyle:{\"width\":\"100px\"},attrs:{\"scope\":\"col\"}})])]),_c('tbody',_vm._l((_vm.getProjectSiteMeetings),function(meeting){return _c('tr',{key:meeting.id},[_c('td',[_vm._v(_vm._s(_vm._f(\"datetime\")((meeting.date || '---'),'MMM dd, yyyy p'))+\" \"+_vm._s(_vm.selectedTimeZone.code))]),_c('td',[_c('span',{staticStyle:{\"white-space\":\"pre-wrap\"}},[_vm._v(_vm._s(meeting.text))])]),_c('td',[_vm._v(\" \"+_vm._s(_vm._f(\"priority\")(meeting.priority))+\" \")]),_c('td',[_c('a',{staticClass:\"d-flex justify-content-between align-items-center flex-column\",attrs:{\"role\":\"button\",\"href\":\"#\",\"title\":\"Manage\"},on:{\"click\":function($event){$event.preventDefault();return _vm.editProjectSiteMeeting(meeting.id)}}},[_c('img',{staticClass:\"mb-1\",attrs:{\"src\":require(\"@/assets/document.svg\"),\"alt\":\"\"}}),_c('span',{staticClass:\"small-grey\"},[_vm._v(\"Manage\")])])]),_c('td',[_c('a',{staticClass:\"d-flex justify-content-between align-items-center flex-column\",attrs:{\"role\":\"button\",\"href\":\"#\",\"title\":\"Manage\"},on:{\"click\":function($event){$event.preventDefault();return _vm.deleteProjectSiteMeeting(meeting.id)}}},[_c('img',{staticClass:\"mb-1\",attrs:{\"src\":require(\"@/assets/document.svg\"),\"alt\":\"\"}}),_c('span',{staticClass:\"small-grey\"},[_vm._v(\"Remove\")])])])])}),0)]):_vm._e(),_c('div',{staticClass:\"row mb-3\"},[_c('div',{staticClass:\"col-md-12 text-right\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.newProjectSiteMeeting}},[_c('i',{staticClass:\"fas fa-plus\"}),_vm._v(\" Add New Site Meeting \")])])])]),_c('b-modal',{attrs:{\"id\":\"bv-modal-project-site-meeting\",\"size\":\"lg\",\"hide-header\":\"\",\"hide-footer\":\"\",\"no-close-on-backdrop\":true}},[_c('project-site-meeting',{attrs:{\"timeZoneCode\":_vm.selectedTimeZone.code}})],1)],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('fragment',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('div',{staticClass:\"modal-header\"},[_c('h4',{staticClass:\"modal-title\"},[_vm._v(\"Site Meeting\")])]),_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"meetingDetails\"}},[_vm._v(\"Site Meeting Information \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('textarea',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.meeting.text),expression:\"meeting.text\"}],staticClass:\"form-control\",class:{ 'is-invalid': _vm.errors.has('meetingDetails') },attrs:{\"id\":\"meetingDetails\",\"name\":\"meetingDetails\",\"rows\":\"5\",\"placeholder\":\"Enter meeting information\",\"data-vv-as\":\"Site Meeting Information\"},domProps:{\"value\":(_vm.meeting.text)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.meeting, \"text\", $event.target.value)}}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Site Meeting Information field is required\")])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"meetingPriority\"}},[_vm._v(\"Meeting Type \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.meeting.priority),expression:\"meeting.priority\"}],staticClass:\"custom-select\",class:{ 'is-invalid': _vm.errors.has('meetingPriority') },attrs:{\"id\":\"meetingPriority\",\"name\":\"meetingPriority\",\"data-vv-as\":\"Priority\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.meeting, \"priority\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},[_c('option',{attrs:{\"value\":\"OPTIONAL\",\"selected\":\"\"}},[_vm._v(\"Optional\")]),_c('option',{attrs:{\"value\":\"MANDATORY\"}},[_vm._v(\"Mandatory\")]),_c('option',{attrs:{\"value\":\"RECOMMENDED\"}},[_vm._v(\"Recommended\")])]),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Meeting Type field is required\")])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"meetingDueDate\"}},[_vm._v(\"Meeting Date \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('div',{staticClass:\"input-group mb-2\"},[_c('div',{staticClass:\"input-group-prepend\"},[_c('span',{staticClass:\"input-group-text bg-transparent pr-2\"},[_c('img',{attrs:{\"src\":require(\"@/assets/cal.svg\"),\"alt\":\"\"}})])]),_c('date-picker',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"form-control date-picker-input\",class:{ 'is-invalid': _vm.errors.has('meetingDueDate') },attrs:{\"id\":\"meetingDueDate\",\"name\":\"meetingDueDate\",\"autocomplete\":\"off\",\"config\":_vm.datepickerOptions},model:{value:(_vm.meeting.date),callback:function ($$v) {_vm.$set(_vm.meeting, \"date\", $$v)},expression:\"meeting.date\"}}),_c('div',{staticClass:\"input-group-append\"},[_c('span',{staticClass:\"input-group-text\"},[_vm._v(_vm._s(_vm.timeZoneCode))])]),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Meeting Date field is required\")])],1)])]),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Save\")]),_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.closeModal}},[_vm._v(\"Close\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <fragment>\r\n    <form v-on:submit.prevent=\"onSubmit\">\r\n      <div class=\"modal-header\">\r\n        <h4 class=\"modal-title\">Site Meeting</h4>\r\n      </div>\r\n\r\n      <div class=\"modal-body\">\r\n        <div class=\"form-group\">\r\n          <label for=\"meetingDetails\">Site Meeting Information <span class=\"red-dot ml-3\"></span></label>\r\n          <textarea id=\"meetingDetails\" name=\"meetingDetails\" class=\"form-control\" :class=\"{ 'is-invalid': errors.has('meetingDetails') }\"\r\n            rows=\"5\" placeholder=\"Enter meeting information\" v-validate=\"'required'\" v-model=\"meeting.text\" data-vv-as=\"Site Meeting Information\">\r\n          </textarea>\r\n          <div class=\"invalid-feedback\">The Site Meeting Information field is required</div>\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"meetingPriority\">Meeting Type <span class=\"red-dot ml-3\"></span></label>\r\n          <select id=\"meetingPriority\" name=\"meetingPriority\" class=\"custom-select\" :class=\"{ 'is-invalid': errors.has('meetingPriority') }\"\r\n              v-validate=\"'required'\" v-model=\"meeting.priority\" data-vv-as=\"Priority\">\r\n            <option value=\"OPTIONAL\" selected>Optional</option>\r\n            <option value=\"MANDATORY\">Mandatory</option>\r\n            <option value=\"RECOMMENDED\">Recommended</option>\r\n          </select>\r\n          <div class=\"invalid-feedback\">The Meeting Type field is required</div>\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"meetingDueDate\">Meeting Date <span class=\"red-dot ml-3\"></span></label>\r\n          <div class=\"input-group mb-2\">\r\n            <div class=\"input-group-prepend\">\r\n              <span class=\"input-group-text bg-transparent pr-2\">\r\n                <img src=\"@/assets/cal.svg\" alt />\r\n              </span>\r\n            </div>\r\n            <date-picker id=\"meetingDueDate\" name=\"meetingDueDate\" class=\"form-control date-picker-input\" :class=\"{ 'is-invalid': errors.has('meetingDueDate') }\"\r\n              autocomplete=\"off\" v-model=\"meeting.date\" :config=\"datepickerOptions\" v-validate=\"'required'\">\r\n            </date-picker>\r\n            <div class=\"input-group-append\">\r\n              <span class=\"input-group-text\">{{ timeZoneCode }}</span>\r\n            </div>\r\n            <div class=\"invalid-feedback\">The Meeting Date field is required</div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"modal-footer\">\r\n        <button type=\"submit\" class=\"btn btn-success\">Save</button>\r\n        <button type=\"button\" class=\"btn btn-secondary\" @click=\"closeModal\">Close</button>\r\n      </div>\r\n    </form>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from \"vuex\";\r\nimport Toast from \"@/utils/toast\";\r\nimport DatePicker from \"vue-bootstrap-datetimepicker\";\r\n\r\nexport default {\r\n  name: \"project-site-meeting\",\r\n  components: { DatePicker },\r\n  props: [\"timeZoneCode\"],\r\n  data: function() {\r\n    return {\r\n      meeting: {\r\n        id: null,\r\n        text: null,\r\n        priority: null,\r\n        date: null\r\n      },\r\n      datepickerOptions: {\r\n        useCurrent: false,\r\n        sideBySide: true\r\n      }\r\n    };\r\n  },\r\n  computed: {\r\n    ...mapGetters([\"getProjectSiteMeeting\"])\r\n  },\r\n  mounted: function() {\r\n    this.meeting = { ...this.getProjectSiteMeeting };\r\n    if (this.meeting.date) {\r\n      this.meeting.date = new Date(this.meeting.date);\r\n    }\r\n\r\n    this.$validator.reset();\r\n  },\r\n  methods: {\r\n    async onSubmit() {\r\n      var isFormValid = await this.$validator.validate();\r\n\r\n      if (!isFormValid) {\r\n        return;\r\n      }\r\n\r\n      this.saveProjectSiteMeeting(this.meeting).then(() => {\r\n        let message = this.$createElement('span', {}, [ 'Successfully updated!', this.$createElement('br'), 'Please remember to save your project.']);\r\n        Toast.success(this, [message]);\r\n        this.$bvModal.hide(\"bv-modal-project-site-meeting\");\r\n      });\r\n    },\r\n    closeModal() {\r\n      this.$bvModal.hide(\"bv-modal-project-site-meeting\");\r\n    },\r\n    ...mapActions([\"saveProjectSiteMeeting\"])\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-site-meeting.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-site-meeting.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-site-meeting.vue?vue&type=template&id=23e1616a&\"\nimport script from \"./project-site-meeting.vue?vue&type=script&lang=js&\"\nexport * from \"./project-site-meeting.vue?vue&type=script&lang=js&\"\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","<template>\r\n  <fragment>\r\n    <div id=\"site-meeting-list\">\r\n      <h3 class=\"mb-3\">Site Meetings</h3>\r\n      <div class=\"alert alert-warning\" role=\"alert\" v-if=\"getProjectSiteMeetings.length === 0\">\r\n        No site meetings available\r\n      </div>\r\n\r\n      <table class=\"table\" v-if=\"getProjectSiteMeetings.length > 0\">\r\n        <thead>\r\n          <tr>\r\n            <th scope=\"col\" style=\"width: 225px\">Meeting Date</th>\r\n            <th scope=\"col\">Site Meeting Information</th>\r\n            <th scope=\"col\">Priority</th>\r\n            <th scope=\"col\" style=\"width: 100px\">&nbsp;</th>\r\n            <th scope=\"col\" style=\"width: 100px\">&nbsp;</th>\r\n          </tr>\r\n        </thead>\r\n        <tbody>\r\n          <tr v-for=\"meeting in getProjectSiteMeetings\" :key=\"meeting.id\">\r\n            <td>{{ (meeting.date || '---') | datetime('MMM dd, yyyy p') }} {{ selectedTimeZone.code }}</td>\r\n            <td> <span style=\"white-space: pre-wrap;\">{{ meeting.text }}</span> </td>\r\n            <td> {{ meeting.priority | priority }} </td>\r\n            <td>\r\n              <a role=\"button\" href=\"#\" class=\"d-flex justify-content-between align-items-center flex-column\"\r\n                  title=\"Manage\" @click.prevent=\"editProjectSiteMeeting(meeting.id)\">\r\n                <img class=\"mb-1\" src=\"@/assets/document.svg\" alt />\r\n                <span class=\"small-grey\">Manage</span>\r\n              </a>\r\n            </td>\r\n            <td>\r\n              <a role=\"button\" href=\"#\" class=\"d-flex justify-content-between align-items-center flex-column\"\r\n                  title=\"Manage\" @click.prevent=\"deleteProjectSiteMeeting(meeting.id)\">\r\n                <img class=\"mb-1\" src=\"@/assets/document.svg\" alt />\r\n                <span class=\"small-grey\">Remove</span>\r\n              </a>\r\n            </td>\r\n          </tr>\r\n        </tbody>\r\n      </table>\r\n      <div class=\"row mb-3\">\r\n        <div class=\"col-md-12 text-right\">\r\n          <button type=\"button\" class=\"btn btn-primary\" @click=\"newProjectSiteMeeting\">\r\n            <i class=\"fas fa-plus\"></i>\r\n            Add New Site Meeting\r\n          </button>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <b-modal id=\"bv-modal-project-site-meeting\" size=\"lg\" hide-header hide-footer :no-close-on-backdrop=\"true\">\r\n      <project-site-meeting :timeZoneCode=\"selectedTimeZone.code\"></project-site-meeting>\r\n    </b-modal>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from \"vuex\";\r\nimport Toast from \"@/utils/toast\";\r\nimport MessageBox from \"@/utils/messagebox\";\r\nimport ProjectSiteMeeting from \"@/views/project/components/project-site-meeting.vue\";\r\n\r\nexport default {\r\n  name: \"project-site-meetings\",\r\n  components: { ProjectSiteMeeting },\r\n  props: [\"selectedTimeZone\"],\r\n  computed: {\r\n    ...mapGetters([\"getProjectSiteMeetings\"])\r\n  },\r\n  filters: {\r\n    priority: function (value) {\r\n      if (!value) return 'Optional';\r\n\r\n      value = value.toString()\r\n      return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();\r\n    }\r\n  },\r\n  methods: {\r\n    newProjectSiteMeeting() {\r\n      this.resetProjectSiteMeeting().then(() => {\r\n        this.$bvModal.show(\"bv-modal-project-site-meeting\");\r\n      });\r\n    },\r\n    editProjectSiteMeeting(id) {\r\n      this.fetchProjectSiteMeeting(id).then(() => {\r\n        this.$bvModal.show(\"bv-modal-project-site-meeting\");\r\n      });\r\n    },\r\n    async deleteProjectSiteMeeting(id) {\r\n      let confirm = await MessageBox.confirm(this, \"Remove Site Meeting\", \"Are you sure you want to remove site meeting\");\r\n\r\n      if (confirm) {\r\n        this.removeProjectSiteMeeting(id).then(() => {\r\n          Toast.success(this, \"Successfully removed site meeting!\");\r\n        });\r\n      }\r\n    },\r\n    ...mapActions([\r\n      \"fetchProjectSiteMeeting\",\r\n      \"resetProjectSiteMeeting\",\r\n      \"removeProjectSiteMeeting\"\r\n    ])\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-site-meetings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-site-meetings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-site-meetings.vue?vue&type=template&id=032639d4&\"\nimport script from \"./project-site-meetings.vue?vue&type=script&lang=js&\"\nexport * from \"./project-site-meetings.vue?vue&type=script&lang=js&\"\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","<template>\r\n  <div class=\"row\">\r\n    <div class=\"col-md-12\">\r\n      <div class=\"row form-title d-flex align-items-center mb-4\">\r\n        <span class=\"rounded-circle bg-primary mr-2 d-flex justify-content-center align-items-center text-white\">2</span>\r\n        <h2 class=\"m-0\">Project Details</h2>\r\n      </div>\r\n\r\n      <project-addresses></project-addresses>\r\n\r\n      <div class=\"form-row\">\r\n        <div class=\"form-group col-lg-4\">\r\n          <label for=\"closingDate\">Closing Date <span class=\"red-dot ml-3\" v-if=\"!isPreBid\"></span>\r\n          </label>\r\n          <div class=\"input-group mb-2\">\r\n            <div class=\"input-group-prepend\">\r\n              <span class=\"input-group-text bg-transparent pr-2\">\r\n                <img src=\"@/assets/cal.svg\" alt />\r\n              </span>\r\n            </div>\r\n            <date-picker id=\"closingDate\" name=\"closingDate\" class=\"form-control date-picker-input\" :class=\"{ 'is-invalid': errors.has('closingDate') }\"\r\n              autocomplete=\"off\" v-model=\"project.closingDate\" :config=\"datepickerOptionsClosingDate\" v-validate=\"{ required: !isPreBid }\"\r\n              :readonly=\"project.fromBids\" data-vv-as=\"Closing Date\">\r\n            </date-picker>\r\n            <div class=\"input-group-append\">\r\n              <span class=\"input-group-text\" id=\"basic-addon2\">{{ selectedTimeZone.code }}</span>\r\n            </div>\r\n            <div class=\"invalid-feedback\">The Closing Date field is required</div>\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"form-group col-lg-4\">\r\n          <label for=\"closingDate\">Other Closing Date</label>\r\n          <div class=\"input-group mb-2\">\r\n            <div class=\"input-group-prepend\">\r\n              <span class=\"input-group-text bg-transparent pr-2\">\r\n                <img src=\"@/assets/cal.svg\" alt />\r\n              </span>\r\n            </div>\r\n            <date-picker id=\"otherClosingDate\" name=\"otherClosingDate\" class=\"form-control date-picker-input\" autocomplete=\"off\"\r\n              v-model=\"project.otherClosingDate\" :config=\"datepickerOptionsOtherClosingDate\">\r\n            </date-picker>\r\n            <div class=\"input-group-append\">\r\n              <span class=\"input-group-text\" id=\"basic-addon2\">{{ selectedTimeZone.code }}</span>\r\n            </div>\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"form-group col-lg-4\">\r\n          <label for=\"awardedDate\">Awarded Date</label>\r\n          <div class=\"input-group mb-2\">\r\n            <div class=\"input-group-prepend\">\r\n              <span class=\"input-group-text bg-transparent pr-2\">\r\n                <img src=\"@/assets/cal.svg\" alt />\r\n              </span>\r\n            </div>\r\n            <date-picker id=\"awardedDate\" name=\"awardedDate\" class=\"form-control date-picker-input\" autocomplete=\"off\"\r\n              v-model=\"project.awardedDate\" :config=\"datepickerOptionsAwardedDate\">\r\n            </date-picker>\r\n            <div class=\"input-group-append\">\r\n              <span class=\"input-group-text\" id=\"basic-addon2\">{{ selectedTimeZone.code }}</span>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"registerUrl\">Register Url</label>\r\n        <input id=\"registerUrl\" name=\"registerUrl\" type=\"text\" class=\"form-control\" :class=\"{ 'is-invalid': errors.has('registerUrl') }\" autocomplete=\"off\"\r\n          placeholder=\"Enter register url\" v-validate=\"'url'\" v-model=\"project.registerUrl\" data-vv-as=\"Register Url\" />\r\n        <div class=\"invalid-feedback\">The Register URL is not a valid URL</div>\r\n      </div>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"submitBidsTo\">Submit Bids To <span class=\"red-dot ml-3\" v-if=\"requiredForOpenProject\"></span></label>\r\n        <input id=\"submitBidsTo\" name=\"submitBidsTo\" type=\"text\" class=\"form-control\" :class=\"{ 'is-invalid': errors.has('submitBidsTo') }\" autocomplete=\"off\"\r\n          placeholder=\"Enter where to submit bids to\" v-validate=\"{ required: requiredForOpenProject }\" v-model=\"project.submitBidsTo\"\r\n          :readonly=\"project.fromBids\" data-vv-as=\"Submit Bids To\" />\r\n        <div class=\"invalid-feedback\">You must enter information in the field for where to submit bids</div>\r\n      </div>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"obtainBidDocuments\">Obtain Bid Documents <span class=\"red-dot ml-3\" v-if=\"requiredForOpenProject\"></span></label>\r\n        <input id=\"obtainBidDocuments\" name=\"obtainBidDocuments\" type=\"text\" class=\"form-control\" :class=\"{ 'is-invalid': errors.has('obtainBidDocuments') }\"\r\n          autocomplete=\"off\" placeholder=\"Enter text\" v-validate=\"{ required: requiredForOpenProject }\" v-model=\"project.obtainBidDocuments\"\r\n          :readonly=\"project.fromBids\" data-vv-as=\"Obtain Bids Documents\" />\r\n        <div class=\"invalid-feedback\">{{ errors.first('obtainBidDocuments') }}</div>\r\n      </div>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"bonding\">Bonding</label>\r\n        <input id=\"bonding\" name=\"bonding\" type=\"text\" class=\"form-control\" autocomplete=\"off\" placeholder=\"Enter bonding\" v-model=\"project.bonding\" />\r\n      </div>\r\n\r\n      <project-site-meetings :selectedTimeZone=\"selectedTimeZone\"></project-site-meetings>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"addenda\">Addenda <span class=\"red-dot ml-3\" v-if=\"requiredForOpenProject\"></span></label>\r\n        <input id=\"addenda\" name=\"addenda\" type=\"number\" class=\"form-control\" :class=\"{ 'is-invalid': errors.has('addenda') }\" autocomplete=\"off\"\r\n          placeholder=\"Enter the number of addenda\" v-validate=\"{ required: requiredForOpenProject }\" v-model=\"project.addenda\"\r\n          :readonly=\"project.fromBids\" data-vv-as=\"Addenda\" />\r\n        <div class=\"invalid-feedback\">{{ errors.first('addenda') }}</div>\r\n      </div>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"addendaNotes\">Addenda Notes</label>\r\n        <textarea id=\"addendaNotes\" name=\"addendaNotes\" class=\"form-control\" placeholder=\"Enter additional addenda notes\"\r\n          rows=\"5\" v-model=\"project.addendaInfo\"></textarea>\r\n      </div>\r\n\r\n    </div>\r\n    <div class=\"col-md d-none d-lg-block\"></div>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport { isDraftMode, isPreBid, isPrivateProject, requiredForOpenProject } from \"@/mixins/projectStatuses\";\r\n\r\nimport DatePicker from \"vue-bootstrap-datetimepicker\";\r\nimport ProjectAddresses from \"@/views/project/components/project-addresses.vue\";\r\nimport ProjectSiteMeetings from \"@/views/project/components/project-site-meetings.vue\";\r\n\r\nimport \"pc-bootstrap4-datetimepicker/build/css/bootstrap-datetimepicker.css\";\r\n\r\nexport default {\r\n  name: \"ProjectDetails\",\r\n  components: { DatePicker, ProjectAddresses, ProjectSiteMeetings },\r\n  inject: [\"$validator\"],\r\n  props: [\"project\", \"provinces\", \"selectedTimeZone\"],\r\n  mixins: [isDraftMode, isPreBid, isPrivateProject, requiredForOpenProject],\r\n  data: function() {\r\n    return {\r\n      datepickerOptionsClosingDate: {\r\n        sideBySide: true,\r\n        useCurrent: 'minute',\r\n        date: this.project.closingDate\r\n      },\r\n      datepickerOptionsOtherClosingDate: {\r\n        sideBySide: true,\r\n        useCurrent: 'minute',\r\n        date: this.project.otherClosingDate\r\n      },\r\n      datepickerOptionsAwardedDate: {\r\n        sideBySide: true,\r\n        useCurrent: 'minute',\r\n        date: this.project.awardedDate\r\n      }\r\n    };\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-step-details.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-step-details.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-step-details.vue?vue&type=template&id=41124398&\"\nimport script from \"./project-step-details.vue?vue&type=script&lang=js&\"\nexport * from \"./project-step-details.vue?vue&type=script&lang=js&\"\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 _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_vm._m(0),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"tenderStageId\"}},[_vm._v(\"Tender Stage \"),(_vm.requiredForPrebid)?_c('span',{staticClass:\"red-dot ml-3\"}):_vm._e()]),_c('select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({ required: _vm.requiredForPrebid }),expression:\"{ required: requiredForPrebid }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.project.tenderStageId),expression:\"project.tenderStageId\"}],staticClass:\"custom-select\",class:{ 'is-invalid': _vm.errors.has('tenderStageId') },attrs:{\"id\":\"tenderStageId\",\"name\":\"tenderStageId\",\"readonly\":_vm.project.fromBids,\"disabled\":_vm.project.fromBids,\"data-vv-as\":\"Tender Stage\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.project, \"tenderStageId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.getTenderStages),function(tender){return _c('option',{key:tender.id,domProps:{\"value\":tender.id}},[_vm._v(_vm._s(tender.name))])}),0),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Tender Stage field is required\")])]),_c('label',[_vm._v(\"Funding \"),(_vm.requiredForPrebid)?_c('span',{staticClass:\"red-dot ml-3\"}):_vm._e()]),_c('div',{staticClass:\"mb-3\"},_vm._l((_vm.getFundingTypes),function(funding,index){return _c('div',{key:'funding-container-' + index,staticClass:\"custom-control custom-radio\"},[(index === 0)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.fundingId),expression:\"project.fundingId\"},{name:\"validate\",rawName:\"v-validate\",value:({ required: _vm.requiredForPrebid }),expression:\"{ required: requiredForPrebid }\"}],staticClass:\"custom-control-input\",class:{ 'is-invalid': _vm.errors.has('funding') },attrs:{\"id\":'funding-item-' + index,\"name\":\"funding\",\"type\":\"radio\",\"data-vv-as\":\"Funding\"},domProps:{\"value\":funding.id,\"checked\":_vm._q(_vm.project.fundingId,funding.id)},on:{\"change\":function($event){return _vm.$set(_vm.project, \"fundingId\", funding.id)}}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.fundingId),expression:\"project.fundingId\"}],staticClass:\"custom-control-input\",class:{ 'is-invalid': _vm.errors.has('funding') },attrs:{\"id\":'funding-item-' + index,\"name\":\"funding\",\"type\":\"radio\"},domProps:{\"value\":funding.id,\"checked\":_vm._q(_vm.project.fundingId,funding.id)},on:{\"change\":function($event){return _vm.$set(_vm.project, \"fundingId\", funding.id)}}}),_c('label',{staticClass:\"custom-control-label\",attrs:{\"for\":'funding-item-' + index}},[_vm._v(_vm._s(funding.name))]),(index === _vm.getFundingTypes.length - 1)?_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Funding field is required\")]):_vm._e()])}),0),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"procurementTypeId\"}},[_vm._v(\"Procurement Type \"),(_vm.requiredForOpenProject)?_c('span',{staticClass:\"red-dot ml-3\"}):_vm._e()]),_c('select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({ required: _vm.requiredForOpenProject }),expression:\"{ required: requiredForOpenProject }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.project.procurementTypeId),expression:\"project.procurementTypeId\"}],staticClass:\"custom-select\",class:{ 'is-invalid': _vm.errors.has('procurementTypeId') },attrs:{\"id\":\"procurementTypeId\",\"name\":\"procurementTypeId\",\"data-vv-as\":\"Procurement Type\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.project, \"procurementTypeId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.getProcurementTypes),function(procurementType){return _c('option',{key:procurementType.id,domProps:{\"value\":procurementType.id}},[_vm._v(_vm._s(procurementType.name))])}),0),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Procurement Type field is required\")])]),_c('label',[_vm._v(\"Classification Type \"),(_vm.requiredForOpenProject)?_c('span',{staticClass:\"red-dot ml-3\"}):_vm._e()]),_c('div',{staticClass:\"d-flex\",class:{ 'mb-3' : (!_vm.project.classificationTypeId || _vm.project.classificationTypeId && _vm.getClassificationOfWork.length === 0) }},_vm._l((_vm.getClassificationTypes),function(classification,index){return _c('div',{key:'classification-type-container-' + index,staticClass:\"custom-control custom-radio custom-control-inline\"},[(index === 0)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.classificationTypeId),expression:\"project.classificationTypeId\"},{name:\"validate\",rawName:\"v-validate\",value:({ required: _vm.requiredForOpenProject }),expression:\"{ required: requiredForOpenProject }\"}],staticClass:\"custom-control-input\",class:{ 'is-invalid': _vm.errors.has('classificationType') },attrs:{\"id\":'classification-type-item-' + index,\"name\":\"classificationType\",\"type\":\"radio\",\"data-vv-as\":\"Classification Type\"},domProps:{\"value\":classification.id,\"checked\":_vm._q(_vm.project.classificationTypeId,classification.id)},on:{\"change\":function($event){return _vm.$set(_vm.project, \"classificationTypeId\", classification.id)}}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.classificationTypeId),expression:\"project.classificationTypeId\"}],staticClass:\"custom-control-input\",class:{ 'is-invalid': _vm.errors.has('classificationType') },attrs:{\"id\":'classification-type-item-' + index,\"name\":\"classificationType\",\"type\":\"radio\"},domProps:{\"value\":classification.id,\"checked\":_vm._q(_vm.project.classificationTypeId,classification.id)},on:{\"change\":function($event){return _vm.$set(_vm.project, \"classificationTypeId\", classification.id)}}}),_c('label',{staticClass:\"custom-control-label\",attrs:{\"for\":'classification-type-item-' + index}},[_vm._v(_vm._s(classification.name))]),(index === _vm.getFundingTypes.length - 1)?_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Classification Type field is required\")]):_vm._e()])}),0),(_vm.project.classificationTypeId && _vm.getClassificationOfWork.length > 0)?_c('div',{attrs:{\"id\":\"project-classification-of-works-container\"}},_vm._l((_vm.getClassificationOfWork),function(work,index){return _c('div',{key:'classification-work-container-' + index,staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.classificationOfWorkIds),expression:\"project.classificationOfWorkIds\"}],staticClass:\"custom-control-input\",attrs:{\"id\":'classification-work-item-' + index,\"type\":\"checkbox\"},domProps:{\"value\":work.id,\"checked\":Array.isArray(_vm.project.classificationOfWorkIds)?_vm._i(_vm.project.classificationOfWorkIds,work.id)>-1:(_vm.project.classificationOfWorkIds)},on:{\"change\":function($event){var $$a=_vm.project.classificationOfWorkIds,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=work.id,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.project, \"classificationOfWorkIds\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.project, \"classificationOfWorkIds\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.project, \"classificationOfWorkIds\", $$c)}}}}),_c('label',{staticClass:\"custom-control-label\",attrs:{\"for\":'classification-work-item-' + index}},[_vm._v(_vm._s(work.name))])])}),0):_vm._e(),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"ownerTypeId\"}},[_vm._v(\"Owner Type \"),(_vm.requiredForPrebid)?_c('span',{staticClass:\"red-dot ml-3\"}):_vm._e()]),_c('select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({ required: _vm.requiredForPrebid }),expression:\"{ required: requiredForPrebid }\"},{name:\"model\",rawName:\"v-model\",value:(_vm.project.ownerTypeId),expression:\"project.ownerTypeId\"}],staticClass:\"custom-select\",class:{ 'is-invalid': _vm.errors.has('ownerTypeId') },attrs:{\"id\":\"ownerTypeId\",\"name\":\"ownerTypeId\",\"data-vv-as\":\"Owner Type\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.project, \"ownerTypeId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.getOwnerTypes),function(ownerType){return _c('option',{key:ownerType.id,domProps:{\"value\":ownerType.id}},[_vm._v(_vm._s(ownerType.name))])}),0),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Owner Type field is required\")])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"budget\"}},[_vm._v(\"Budget\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.budget),expression:\"project.budget\"},{name:\"validate\",rawName:\"v-validate\",value:('numeric'),expression:\"'numeric'\"}],staticClass:\"form-control\",class:{ 'is-invalid': _vm.errors.has('budget') },attrs:{\"id\":\"budget\",\"name\":\"budget\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Enter amount\",\"data-vv-as\":\"Budget\"},domProps:{\"value\":(_vm.project.budget)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.project, \"budget\", $event.target.value)}}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Budget field must be numeric\")])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"scopeOfWork\"}},[_vm._v(\"Scope Of Work \"),(_vm.requiredForPrebid)?_c('span',{staticClass:\"red-dot ml-3\"}):_vm._e()]),_c('app-editor',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({ required: _vm.requiredForPrebid }),expression:\"{ required: requiredForPrebid }\"}],class:{ 'input-validation-error': _vm.errors.has('scopeOfWork') },attrs:{\"id\":\"scopeOfWork\",\"name\":\"scopeOfWork\",\"data-vv-as\":\"Scope of Work\",\"readonly\":_vm.project.fromBids},model:{value:(_vm.project.scopeOfWork),callback:function ($$v) {_vm.$set(_vm.project, \"scopeOfWork\", $$v)},expression:\"project.scopeOfWork\"}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Scope of Work field is required\")])],1),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"comments\"}},[_vm._v(\"Comments\")]),_c('app-editor',{attrs:{\"id\":\"comments\",\"name\":\"comments\"},model:{value:(_vm.project.comments),callback:function ($$v) {_vm.$set(_vm.project, \"comments\", $$v)},expression:\"project.comments\"}})],1),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"disclaimer\"}},[_vm._v(\"Disclaimer\")]),_c('app-editor',{attrs:{\"id\":\"disclaimer\",\"name\":\"disclaimer\"},model:{value:(_vm.project.disclaimer),callback:function ($$v) {_vm.$set(_vm.project, \"disclaimer\", $$v)},expression:\"project.disclaimer\"}})],1),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"tradeAgreementIds\"}},[_vm._v(\"Applicable Trade Agreements\")]),_c('v-select',{staticClass:\"v-select-multi\",attrs:{\"id\":\"tradeAgreementIds\",\"name\":\"tradeAgreementIds\",\"placeholder\":\"Select applicable trade agreements\",\"multiple\":\"\",\"closeOnSelect\":false,\"label\":\"name\",\"reduce\":function (tradeAgreement) { return tradeAgreement.id; },\"options\":_vm.getTradeAgreements},model:{value:(_vm.project.tradeAgreementIds),callback:function ($$v) {_vm.$set(_vm.project, \"tradeAgreementIds\", $$v)},expression:\"project.tradeAgreementIds\"}})],1),_c('div',{staticClass:\"form-group form-check custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.isPrivate),expression:\"project.isPrivate\"}],staticClass:\"custom-control-input\",attrs:{\"id\":\"privateProject\",\"type\":\"checkbox\",\"disabled\":_vm.forceAsPrivate,\"readonly\":_vm.forceAsPrivate},domProps:{\"value\":true,\"checked\":Array.isArray(_vm.project.isPrivate)?_vm._i(_vm.project.isPrivate,true)>-1:(_vm.project.isPrivate)},on:{\"change\":function($event){var $$a=_vm.project.isPrivate,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=true,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.project, \"isPrivate\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.project, \"isPrivate\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.project, \"isPrivate\", $$c)}}}}),_c('label',{staticClass:\"custom-control-label\",attrs:{\"for\":\"privateProject\"}},[_vm._v(\" Set As Private \")])]),(!_vm.project.isPrivate)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"custom-control custom-radio\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.showProject),expression:\"project.showProject\"}],staticClass:\"custom-control-input\",attrs:{\"id\":\"showProject\",\"name\":\"showProject\",\"type\":\"radio\"},domProps:{\"value\":false,\"checked\":_vm._q(_vm.project.showProject,false)},on:{\"change\":function($event){return _vm.$set(_vm.project, \"showProject\", false)}}}),_c('label',{staticClass:\"custom-control-label\",attrs:{\"for\":\"showProject\"}},[_vm._v(\"Hide Project\")])]),_c('div',{staticClass:\"custom-control custom-radio mb-3\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.showProject),expression:\"project.showProject\"}],staticClass:\"custom-control-input\",attrs:{\"id\":\"hideProject\",\"name\":\"showProject\",\"type\":\"radio\"},domProps:{\"value\":true,\"checked\":_vm._q(_vm.project.showProject,true)},on:{\"change\":function($event){return _vm.$set(_vm.project, \"showProject\", true)}}}),_c('label',{staticClass:\"custom-control-label\",attrs:{\"for\":\"hideProject\"}},[_vm._v(\"Show Project\")])])]):_vm._e(),(!_vm.project.isPrivate)?_c('div',{staticClass:\"form-group form-check custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.enableRequestToBid),expression:\"project.enableRequestToBid\"}],staticClass:\"custom-control-input\",attrs:{\"id\":\"enable-i-am-bidding-feature\",\"type\":\"checkbox\"},domProps:{\"value\":true,\"checked\":Array.isArray(_vm.project.enableRequestToBid)?_vm._i(_vm.project.enableRequestToBid,true)>-1:(_vm.project.enableRequestToBid)},on:{\"change\":function($event){var $$a=_vm.project.enableRequestToBid,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=true,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.project, \"enableRequestToBid\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.project, \"enableRequestToBid\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.project, \"enableRequestToBid\", $$c)}}}}),_c('label',{staticClass:\"custom-control-label\",attrs:{\"for\":\"enable-i-am-bidding-feature\"}},[_vm._v(\" Enable \\\"I Am Bidding\\\" Feature \")])]):_vm._e()]),_c('div',{staticClass:\"col-md d-none d-lg-block\"})])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row form-title d-flex align-items-center mb-4\"},[_c('span',{staticClass:\"rounded-circle bg-primary mr-2 d-flex justify-content-center align-items-center text-white\"},[_vm._v(\"3\")]),_c('h2',{staticClass:\"m-0\"},[_vm._v(\"Project Description\")])])}]\n\nexport { render, staticRenderFns }","<template>\r\n  <div class=\"row\">\r\n    <div class=\"col-md-12\">\r\n      <div class=\"row form-title d-flex align-items-center mb-4\">\r\n        <span class=\"rounded-circle bg-primary mr-2 d-flex justify-content-center align-items-center text-white\">3</span>\r\n        <h2 class=\"m-0\">Project Description</h2>\r\n      </div>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"tenderStageId\">Tender Stage <span class=\"red-dot ml-3\" v-if=\"requiredForPrebid\"></span></label>\r\n        <select id=\"tenderStageId\" name=\"tenderStageId\" class=\"custom-select\" :class=\"{ 'is-invalid': errors.has('tenderStageId') }\"\r\n                v-validate=\"{ required: requiredForPrebid }\" v-model=\"project.tenderStageId\"\r\n                :readonly=\"project.fromBids\" :disabled=\"project.fromBids\" data-vv-as=\"Tender Stage\">\r\n          <option v-for=\"tender in getTenderStages\" :key=\"tender.id\" :value=\"tender.id\">{{ tender.name }}</option>\r\n        </select>\r\n        <div class=\"invalid-feedback\">The Tender Stage field is required</div>\r\n      </div>\r\n\r\n      <label>Funding <span class=\"red-dot ml-3\" v-if=\"requiredForPrebid\"></span> </label>\r\n      <div class=\"mb-3\">\r\n        <div v-for=\"(funding, index) in getFundingTypes\" :key=\"'funding-container-' + index\" class=\"custom-control custom-radio\">\r\n          <input :id=\"'funding-item-' + index\" name=\"funding\" type=\"radio\" class=\"custom-control-input\" :class=\"{ 'is-invalid': errors.has('funding') }\"\r\n                 :value=\"funding.id\" v-model=\"project.fundingId\" v-if=\"index === 0\" v-validate=\"{ required: requiredForPrebid }\" data-vv-as=\"Funding\">\r\n          <input :id=\"'funding-item-' + index\" name=\"funding\" type=\"radio\" class=\"custom-control-input\" :class=\"{ 'is-invalid': errors.has('funding') }\"\r\n                 :value=\"funding.id\" v-model=\"project.fundingId\" v-else>\r\n          <label class=\"custom-control-label\" :for=\"'funding-item-' + index\">{{ funding.name }}</label>\r\n          <div v-if=\"index === getFundingTypes.length - 1\" class=\"invalid-feedback\">The Funding field is required</div>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"procurementTypeId\">Procurement Type <span class=\"red-dot ml-3\" v-if=\"requiredForOpenProject\"></span></label>\r\n        <select id=\"procurementTypeId\" name=\"procurementTypeId\" class=\"custom-select\" :class=\"{ 'is-invalid': errors.has('procurementTypeId') }\"\r\n                v-validate=\"{ required: requiredForOpenProject }\" v-model=\"project.procurementTypeId\" data-vv-as=\"Procurement Type\">\r\n          <option v-for=\"procurementType in getProcurementTypes\" :key=\"procurementType.id\" :value=\"procurementType.id\">{{ procurementType.name }}</option>\r\n        </select>\r\n        <div class=\"invalid-feedback\">The Procurement Type field is required</div>\r\n      </div>\r\n\r\n      <label>Classification Type  <span class=\"red-dot ml-3\" v-if=\"requiredForOpenProject\"></span></label>\r\n      <div class=\"d-flex\" :class=\"{ 'mb-3' : (!project.classificationTypeId || project.classificationTypeId && getClassificationOfWork.length === 0) }\">\r\n        <div v-for=\"(classification, index) in getClassificationTypes\" :key=\"'classification-type-container-' + index\" class=\"custom-control custom-radio custom-control-inline\">\r\n          <input :id=\"'classification-type-item-' + index\" name=\"classificationType\" type=\"radio\" class=\"custom-control-input\"\r\n                 :class=\"{ 'is-invalid': errors.has('classificationType') }\" :value=\"classification.id\" v-model=\"project.classificationTypeId\"\r\n                 v-if=\"index === 0\" v-validate=\"{ required: requiredForOpenProject }\" data-vv-as=\"Classification Type\">\r\n          <input :id=\"'classification-type-item-' + index\" name=\"classificationType\" type=\"radio\" class=\"custom-control-input\"\r\n                 :class=\"{ 'is-invalid': errors.has('classificationType') }\" :value=\"classification.id\" v-model=\"project.classificationTypeId\"\r\n                 v-else>\r\n          <label class=\"custom-control-label\" :for=\"'classification-type-item-' + index\">{{ classification.name }}</label>\r\n          <div v-if=\"index === getFundingTypes.length - 1\" class=\"invalid-feedback\">The Classification Type field is required</div>\r\n        </div>\r\n      </div>\r\n\r\n      <div id=\"project-classification-of-works-container\" v-if=\"project.classificationTypeId && getClassificationOfWork.length > 0\">\r\n        <div v-for=\"(work, index) in getClassificationOfWork\" :key=\"'classification-work-container-' + index\" class=\"custom-control custom-checkbox\">\r\n          <input :id=\"'classification-work-item-' + index\" type=\"checkbox\" class=\"custom-control-input\" :value=\"work.id\" v-model=\"project.classificationOfWorkIds\">\r\n          <label class=\"custom-control-label\" :for=\"'classification-work-item-' + index\">{{ work.name }}</label>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"ownerTypeId\">Owner Type <span class=\"red-dot ml-3\" v-if=\"requiredForPrebid\"></span></label>\r\n        <select id=\"ownerTypeId\" name=\"ownerTypeId\" class=\"custom-select\" :class=\"{ 'is-invalid': errors.has('ownerTypeId') }\"\r\n                v-validate=\"{ required: requiredForPrebid }\" v-model=\"project.ownerTypeId\" data-vv-as=\"Owner Type\">\r\n          <option v-for=\"ownerType in getOwnerTypes\" :key=\"ownerType.id\" :value=\"ownerType.id\">{{ ownerType.name }}</option>\r\n        </select>\r\n        <div class=\"invalid-feedback\">The Owner Type field is required</div>\r\n      </div>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"budget\">Budget</label>\r\n        <input id=\"budget\" name=\"budget\" type=\"text\" class=\"form-control\" :class=\"{ 'is-invalid': errors.has('budget') }\"\r\n               autocomplete=\"off\" placeholder=\"Enter amount\" v-model=\"project.budget\" v-validate=\"'numeric'\" data-vv-as=\"Budget\" />\r\n        <div class=\"invalid-feedback\">The Budget field must be numeric</div>\r\n      </div>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"scopeOfWork\">Scope Of Work <span class=\"red-dot ml-3\" v-if=\"requiredForPrebid\"></span></label>\r\n        <app-editor id=\"scopeOfWork\" name=\"scopeOfWork\" :class=\"{ 'input-validation-error': errors.has('scopeOfWork') }\"\r\n                    v-validate=\"{ required: requiredForPrebid }\" data-vv-as=\"Scope of Work\" v-model=\"project.scopeOfWork\" :readonly=\"project.fromBids\">\r\n        </app-editor>\r\n        <div class=\"invalid-feedback\">The Scope of Work field is required</div>\r\n      </div>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"comments\">Comments</label>\r\n        <app-editor id=\"comments\" name=\"comments\" v-model=\"project.comments\"></app-editor>\r\n      </div>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"disclaimer\">Disclaimer</label>\r\n        <app-editor id=\"disclaimer\" name=\"disclaimer\" v-model=\"project.disclaimer\"></app-editor>\r\n      </div>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"tradeAgreementIds\">Applicable Trade Agreements</label>\r\n        <v-select id=\"tradeAgreementIds\" name=\"tradeAgreementIds\" placeholder=\"Select applicable trade agreements\" class=\"v-select-multi\"\r\n                  multiple :closeOnSelect=\"false\" label=\"name\" :reduce=\"tradeAgreement => tradeAgreement.id\"\r\n                  :options=\"getTradeAgreements\" v-model=\"project.tradeAgreementIds\">\r\n        </v-select>\r\n      </div>\r\n\r\n\r\n      <div class=\"form-group form-check custom-control custom-checkbox\">\r\n        <input id=\"privateProject\" type=\"checkbox\" class=\"custom-control-input\" :value=\"true\" v-model=\"project.isPrivate\"\r\n               :disabled=\"forceAsPrivate\" :readonly=\"forceAsPrivate\">\r\n        <label for=\"privateProject\" class=\"custom-control-label\">\r\n          Set As Private\r\n        </label>\r\n      </div>\r\n      <div class=\"form-group\" v-if=\"!project.isPrivate\">\r\n        <div class=\"custom-control custom-radio\">\r\n          <input id=\"showProject\" name=\"showProject\" type=\"radio\" class=\"custom-control-input\" :value=\"false\" v-model=\"project.showProject\">\r\n          <label class=\"custom-control-label\" for=\"showProject\">Hide Project</label>\r\n        </div>\r\n        <div class=\"custom-control custom-radio mb-3\">\r\n          <input id=\"hideProject\" name=\"showProject\" type=\"radio\" class=\"custom-control-input\" :value=\"true\" v-model=\"project.showProject\">\r\n          <label class=\"custom-control-label\" for=\"hideProject\">Show Project</label>\r\n        </div>\r\n      </div>\r\n\r\n      <div v-if=\"!project.isPrivate\" class=\"form-group form-check custom-control custom-checkbox\">\r\n        <input id=\"enable-i-am-bidding-feature\" type=\"checkbox\" class=\"custom-control-input\" :value=\"true\" v-model=\"project.enableRequestToBid\">\r\n        <label for=\"enable-i-am-bidding-feature\" class=\"custom-control-label\">\r\n          Enable \"I Am Bidding\" Feature\r\n        </label>\r\n      </div>\r\n\r\n\r\n    </div>\r\n    <div class=\"col-md d-none d-lg-block\"></div>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters } from \"vuex\";\r\nimport { isDraftMode, isPreBid, isPrivateProject, requiredForOpenProject, requiredForPrebid } from \"@/mixins/projectStatuses\";\r\nimport AppEditor from \"@/components/app-editor\";\r\n\r\nexport default {\r\n  name: \"ProjectDescription\",\r\n  inject: [\"$validator\"],\r\n  components: { AppEditor },\r\n  props: [\"project\"],\r\n  mixins: [isDraftMode, isPreBid, isPrivateProject, requiredForOpenProject, requiredForPrebid],\r\n  computed: {\r\n    forceAsPrivate () {\r\n      return !this.$permissions().isSysAdmin && !this.$permissions().isClientAdmin && this.$permissions().hasAddPrivateProjectPermission;\r\n    },\r\n    getClassificationOfWork() {\r\n      let selectedClassificationType = this.getClassificationTypes.find(type => type.id === this.project.classificationTypeId);\r\n      return selectedClassificationType ? selectedClassificationType.classificationOfWorks.sort((a,b) => a.name.localeCompare(b.name)) : [];\r\n    },\r\n    ...mapGetters([\r\n      \"getClassificationTypes\",\r\n      \"getFundingTypes\",\r\n      \"getOwnerTypes\",\r\n      \"getProcurementTypes\",\r\n      \"getTenderStages\",\r\n      \"getTradeAgreements\"\r\n    ])\r\n  },\r\n  mounted () {\r\n    if (this.forceAsPrivate && !!this.$route.params.id === false) {\r\n      this.project.isPrivate = true;\r\n    }\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-step-description.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-step-description.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-step-description.vue?vue&type=template&id=06bea760&\"\nimport script from \"./project-step-description.vue?vue&type=script&lang=js&\"\nexport * from \"./project-step-description.vue?vue&type=script&lang=js&\"\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 _c('fragment',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('div',{staticClass:\"row form-title d-flex align-items-center mb-4\"},[_c('span',{staticClass:\"rounded-circle bg-primary mr-2 d-flex justify-content-center align-items-center text-white\"},[_vm._v(\"4\")]),_c('h2',{staticClass:\"m-0\"},[_vm._v(\"Project Contacts\")])]),_c('project-owners',{attrs:{\"project\":_vm.project},on:{\"update:project\":function($event){_vm.project=$event}}}),_c('hr'),_c('project-contacts'),_c('hr'),_c('project-bidders'),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"externalPlanHolders\"}},[_vm._v(\"External Plan Holders\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.externalPlanHolders),expression:\"project.externalPlanHolders\"}],staticClass:\"form-control\",attrs:{\"id\":\"externalPlanHolders\",\"name\":\"externalPlanHolders\",\"placeholder\":\"Enter additional external plan holders\",\"rows\":\"10\"},domProps:{\"value\":(_vm.project.externalPlanHolders)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.project, \"externalPlanHolders\", $event.target.value)}}})])],1),_c('div',{staticClass:\"col-md d-none d-lg-block\"})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('fieldset',[_c('legend',[_vm._v(\" Owner \"),(_vm.requiredForPrebid)?_c('span',{staticClass:\"red-dot ml-3\"}):_vm._e()]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.getProject.owner),expression:\"getProject.owner\"},{name:\"validate\",rawName:\"v-validate\",value:({ required: _vm.requiredForPrebid }),expression:\"{ required: requiredForPrebid }\"}],attrs:{\"type\":\"hidden\",\"id\":\"hasOwner\",\"name\":\"hasOwner\",\"data-vv-as\":\"Owner\"},domProps:{\"value\":(_vm.getProject.owner)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.getProject, \"owner\", $event.target.value)}}}),(!_vm.getProject.owner)?_c('div',{staticClass:\"alert alert-warning\",class:[ _vm.errors.has('hasOwner') ? 'alert-danger' : 'alert-warning'],attrs:{\"role\":\"alert\"}},[_vm._v(\" No owner has been added. \")]):_vm._e(),(!_vm.getProject.owner)?_c('div',{staticClass:\"row mb-3\"},[_c('div',{staticClass:\"col-md-12 text-right\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.newProjectOwner}},[_c('i',{staticClass:\"fas fa-plus\"}),_vm._v(\" Add Owner \")])])]):_vm._e()]),(_vm.getProject.owner)?_c('div',[_c('div',{staticClass:\"form-group row mb-2\"},[_c('label',{staticClass:\"col-sm-2 col-form-label\",attrs:{\"for\":\"displayOwnerName\"}},[_vm._v(\"Name\")]),_c('div',{staticClass:\"col-sm-10\"},[_c('input',{staticClass:\"form-control-plaintext pt-0 pb-0\",attrs:{\"type\":\"text\",\"readonly\":\"\",\"disabled\":\"\",\"id\":\"displayOwnerName\",\"name\":\"displayOwnerName\"},domProps:{\"value\":_vm.getProject.owner.name}})])]),_c('div',{staticClass:\"form-group row mb-2\"},[_c('label',{staticClass:\"col-sm-2 col-form-label\",attrs:{\"for\":\"displayOwnerName\"}},[_vm._v(\"Address\")]),_c('div',{staticClass:\"col-sm-10\"},[_c('input',{staticClass:\"form-control-plaintext pt-0 pb-0\",attrs:{\"type\":\"text\",\"readonly\":\"\",\"disabled\":\"\",\"id\":\"displayOwnerName\",\"name\":\"displayOwnerName\"},domProps:{\"value\":_vm.getAddressDisplay(_vm.getProject.owner.address)}})])]),_c('div',{staticClass:\"custom-control custom-checkbox mb-2\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.getProject.owner.showInfo),expression:\"getProject.owner.showInfo\"}],staticClass:\"custom-control-input\",attrs:{\"id\":\"displayOwnerShowInfo\",\"name\":\"displayOwnerShowInfo\",\"type\":\"checkbox\",\"readonly\":\"\",\"disabled\":\"\"},domProps:{\"value\":true,\"checked\":Array.isArray(_vm.getProject.owner.showInfo)?_vm._i(_vm.getProject.owner.showInfo,true)>-1:(_vm.getProject.owner.showInfo)},on:{\"change\":function($event){var $$a=_vm.getProject.owner.showInfo,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=true,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.getProject.owner, \"showInfo\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.getProject.owner, \"showInfo\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.getProject.owner, \"showInfo\", $$c)}}}}),_c('label',{staticClass:\"custom-control-label\",attrs:{\"for\":\"displayOwnerShowInfo\"}},[_vm._v(\"Show Contact Info\")])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"displayOwnerAdditionalInformation\"}},[_vm._v(\"Additional Contact Information\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.getProject.owner.additionalInformation),expression:\"getProject.owner.additionalInformation\"}],staticClass:\"form-control\",attrs:{\"id\":\"displayOwnerAdditionalInformation\",\"name\":\"ownerAdditionalInformation\",\"placeholder\":\"Enter additional contact information\",\"rows\":\"5\",\"readonly\":\"\",\"disabled\":\"\"},domProps:{\"value\":(_vm.getProject.owner.additionalInformation)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.getProject.owner, \"additionalInformation\", $event.target.value)}}})]),_c('div',{staticClass:\"row mb-3\"},[_c('div',{staticClass:\"col-md-12 text-right\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.editProjectOwner}},[_c('i',{staticClass:\"far fa-edit\"}),_vm._v(\" Edit Owner \")])])])]):_vm._e(),_c('b-modal',{attrs:{\"id\":\"bv-modal-project-owner\",\"size\":\"lg\",\"hide-header\":\"\",\"hide-footer\":\"\",\"no-close-on-backdrop\":true}},[_c('project-owner')],1)],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('fragment',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('div',{staticClass:\"modal-header\"},[_c('h5',{staticClass:\"modal-title\",attrs:{\"id\":\"exampleModalLabel\"}},[_vm._v(\"New Owner\")])]),_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"ownerLookup\"}},[_vm._v(\"Find An Owner\")]),_c('vue-bootstrap-typeahead',{ref:\"ownerLookup\",attrs:{\"id\":\"ownerLookup\",\"name\":\"ownerLookup\",\"data\":_vm.owners,\"serializer\":function (owner) { return owner.name; },\"placeholder\":\"Type a minimum 3 characters to start the search\",\"minMatchingChars\":3},on:{\"hit\":function($event){return _vm.selectOwner($event)}},scopedSlots:_vm._u([{key:\"suggestion\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('strong',[_vm._v(_vm._s(data.name))]),_c('br'),_vm._v(\" \"+_vm._s(_vm.getAddressDisplay(data.address))+\" \"),(data.phone)?_c('span',[_c('br'),_vm._v(\" \"+_vm._s(data.phone)+\" \")]):_vm._e()]}}]),model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}},[_c('template',{slot:\"append\"},[_c('button',{staticClass:\"btn btn-outline-danger\",attrs:{\"type\":\"button\",\"name\":\"Clear Owner\",\"title\":\"Clear Owner\"},on:{\"click\":function($event){return _vm.clearOwner()}}},[_c('i',{staticClass:\"fas fa-times-circle\"})])]),_c('template',{slot:\"append\"},[_c('button',{staticClass:\"btn btn-outline-info\",attrs:{\"type\":\"button\",\"name\":\"New Owner\",\"title\":\"New Owner\"},on:{\"click\":function($event){return _vm.newOwner()}}},[_c('i',{staticClass:\"fas fa-user-plus\"})])])],2),_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required:true'),expression:\"'required:true'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.hasOwner),expression:\"hasOwner\"}],staticClass:\"form-control\",class:{ 'is-invalid': !_vm.isNew && _vm.errors.has('hasOwner') },attrs:{\"type\":\"hidden\",\"id\":\"hasOwner\",\"name\":\"hasOwner\"},domProps:{\"value\":(_vm.hasOwner)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.hasOwner=$event.target.value}}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"Please select an owner\")])],1),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"col mb-3\"},[_c('label',{attrs:{\"for\":\"ownerName\"}},[_vm._v(\"Name \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.owner.name),expression:\"owner.name\"}],staticClass:\"form-control\",class:{ 'is-invalid': _vm.errors.has('ownerName') },attrs:{\"id\":\"ownerName\",\"name\":\"ownerName\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Enter name\",\"data-vv-as\":\"Name\",\"disabled\":!_vm.isNew},domProps:{\"value\":(_vm.owner.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.owner, \"name\", $event.target.value)}}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Name field is required.\")])])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"col mb-3\"},[_c('label',{attrs:{\"for\":\"ownerStreet\"}},[_vm._v(\"Street\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.owner.address.street),expression:\"owner.address.street\"}],staticClass:\"form-control\",attrs:{\"id\":\"ownerStreet\",\"name\":\"ownerStreet\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Enter street\",\"disabled\":!_vm.isNew},domProps:{\"value\":(_vm.owner.address.street)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.owner.address, \"street\", $event.target.value)}}})])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"col mb-3\"},[_c('label',{attrs:{\"for\":\"ownerCity\"}},[_vm._v(\"City\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.owner.address.city),expression:\"owner.address.city\"}],staticClass:\"form-control\",attrs:{\"id\":\"ownerCity\",\"name\":\"ownerCity\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Enter city\",\"disabled\":!_vm.isNew},domProps:{\"value\":(_vm.owner.address.city)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.owner.address, \"city\", $event.target.value)}}})])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"col-md-6 mb-3\"},[_c('label',{attrs:{\"for\":\"ownerCountry\"}},[_vm._v(\"Country \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.countryId),expression:\"countryId\"}],staticClass:\"custom-select\",class:{ 'is-invalid': _vm.errors.has('ownerCountry') },attrs:{\"id\":\"ownerCountry\",\"name\":\"ownerCountry\",\"disabled\":!_vm.isNew,\"data-vv-as\":\"Country\"},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.countryId=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},_vm.filterProvinces]}},_vm._l((_vm.getCountries),function(country){return _c('option',{key:country.id,domProps:{\"value\":country.id}},[_vm._v(_vm._s(country.name))])}),0),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Country field is required.\")])]),_c('div',{staticClass:\"col-md-6 mb-3\"},[_c('label',{attrs:{\"for\":\"ownerProvince\"}},[_vm._v(\"Province/State \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.owner.address.provinceId),expression:\"owner.address.provinceId\"}],staticClass:\"custom-select\",class:{ 'is-invalid': _vm.errors.has('ownerProvince') },attrs:{\"id\":\"ownerProvince\",\"name\":\"ownerProvince\",\"disabled\":!_vm.isNew,\"data-vv-as\":\"Province\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.owner.address, \"provinceId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.provinceList),function(province){return _c('option',{key:province.id,domProps:{\"value\":province.id}},[_vm._v(_vm._s(province.name))])}),0),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Province/State field is required.\")])])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"col-md-6 mb-3\"},[_c('label',{attrs:{\"for\":\"ownerPostalCode\"}},[_vm._v(\"Postal Code/Zip Code\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.owner.address.postalCode),expression:\"owner.address.postalCode\"}],staticClass:\"form-control\",attrs:{\"id\":\"ownerPostalCode\",\"name\":\"ownerPostalCode\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Enter postal code\",\"disabled\":!_vm.isNew},domProps:{\"value\":(_vm.owner.address.postalCode)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.owner.address, \"postalCode\", $event.target.value)}}})])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"col mb-3\"},[_c('label',{attrs:{\"for\":\"ownerPhone\"}},[_vm._v(\"Phone\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.owner.phone),expression:\"owner.phone\"}],staticClass:\"form-control\",attrs:{\"id\":\"ownerPhone\",\"name\":\"ownerPhone\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Enter phone\",\"disabled\":!_vm.isNew},domProps:{\"value\":(_vm.owner.phone)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.owner, \"phone\", $event.target.value)}}})])]),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"custom-control custom-checkbox mb-2\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.owner.showInfo),expression:\"owner.showInfo\"}],staticClass:\"custom-control-input\",attrs:{\"id\":\"ownerShowInfo\",\"name\":\"ownerShowInfo\",\"type\":\"checkbox\"},domProps:{\"value\":true,\"checked\":Array.isArray(_vm.owner.showInfo)?_vm._i(_vm.owner.showInfo,true)>-1:(_vm.owner.showInfo)},on:{\"change\":function($event){var $$a=_vm.owner.showInfo,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=true,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.owner, \"showInfo\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.owner, \"showInfo\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.owner, \"showInfo\", $$c)}}}}),_c('label',{staticClass:\"custom-control-label\",attrs:{\"for\":\"ownerShowInfo\"}},[_vm._v(\"Show Contact Info\")])])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"ownerAdditionalInformation\"}},[_vm._v(\"Additional Contact Information\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.owner.additionalInformation),expression:\"owner.additionalInformation\"}],staticClass:\"form-control\",attrs:{\"id\":\"ownerAdditionalInformation\",\"name\":\"ownerAdditionalInformation\",\"placeholder\":\"Enter additional contact information\",\"rows\":\"5\"},domProps:{\"value\":(_vm.owner.additionalInformation)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.owner, \"additionalInformation\", $event.target.value)}}})])]),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Save\")]),_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.closeModal}},[_vm._v(\"Close\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <fragment>\r\n    <form v-on:submit.prevent=\"onSubmit\">\r\n      <div class=\"modal-header\">\r\n        <h5 class=\"modal-title\" id=\"exampleModalLabel\">New Owner</h5>\r\n      </div>\r\n\r\n      <div class=\"modal-body\">\r\n        <div class=\"form-group\">\r\n          <label for=\"ownerLookup\">Find An Owner</label>\r\n          <vue-bootstrap-typeahead\r\n            id=\"ownerLookup\"\r\n            name=\"ownerLookup\"\r\n            v-model=\"query\"\r\n            :data=\"owners\"\r\n            :serializer=\"owner => owner.name\"\r\n            placeholder=\"Type a minimum 3 characters to start the search\"\r\n            :minMatchingChars=\"3\"\r\n            @hit=\"selectOwner($event)\"\r\n            ref=\"ownerLookup\"\r\n          >\r\n            <template slot=\"append\">\r\n              <button class=\"btn btn-outline-danger\" type=\"button\" name=\"Clear Owner\" title=\"Clear Owner\" @click=\"clearOwner()\">\r\n                <i class=\"fas fa-times-circle\"></i>\r\n              </button>\r\n            </template>\r\n\r\n            <template slot=\"append\">\r\n              <button class=\"btn btn-outline-info\" type=\"button\" name=\"New Owner\" title=\"New Owner\" @click=\"newOwner()\">\r\n                <i class=\"fas fa-user-plus\"></i>\r\n              </button>\r\n            </template>\r\n\r\n            <template slot=\"suggestion\" slot-scope=\"{ data }\">\r\n              <strong>{{ data.name }}</strong>\r\n              <br />\r\n              {{ getAddressDisplay(data.address) }}\r\n              <span v-if=\"data.phone\">\r\n                <br />\r\n                {{ data.phone }}\r\n              </span>\r\n            </template>\r\n          </vue-bootstrap-typeahead>\r\n          <input type=\"hidden\" id=\"hasOwner\" name=\"hasOwner\" v-validate=\"'required:true'\" v-model=\"hasOwner\" class=\"form-control\"\r\n            :class=\"{ 'is-invalid': !isNew && errors.has('hasOwner') }\" />\r\n          <div class=\"invalid-feedback\">Please select an owner</div>\r\n        </div>\r\n\r\n        <div class=\"form-row\">\r\n          <div class=\"col mb-3\">\r\n            <label for=\"ownerName\">Name <span class=\"red-dot ml-3\"></span></label>\r\n            <input id=\"ownerName\" name=\"ownerName\" type=\"text\" class=\"form-control\" :class=\"{ 'is-invalid': errors.has('ownerName') }\"\r\n              autocomplete=\"off\" placeholder=\"Enter name\" v-validate=\"'required'\" v-model=\"owner.name\" data-vv-as=\"Name\" :disabled=\"!isNew\" />\r\n            <div class=\"invalid-feedback\">The Name field is required.</div>\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"form-row\">\r\n          <div class=\"col mb-3\">\r\n            <label for=\"ownerStreet\">Street</label>\r\n            <input id=\"ownerStreet\" name=\"ownerStreet\" type=\"text\" class=\"form-control\" autocomplete=\"off\" placeholder=\"Enter street\"\r\n              v-model=\"owner.address.street\" :disabled=\"!isNew\" />\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"form-row\">\r\n          <div class=\"col mb-3\">\r\n            <label for=\"ownerCity\">City</label>\r\n            <input id=\"ownerCity\" name=\"ownerCity\" type=\"text\" class=\"form-control\"  autocomplete=\"off\" placeholder=\"Enter city\"\r\n              v-model=\"owner.address.city\" :disabled=\"!isNew\" />\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"form-row\">\r\n          <div class=\"col-md-6 mb-3\">\r\n            <label for=\"ownerCountry\">Country <span class=\"red-dot ml-3\"></span></label>\r\n            <select id=\"ownerCountry\" name=\"ownerCountry\" class=\"custom-select\" :class=\"{ 'is-invalid': errors.has('ownerCountry') }\" :disabled=\"!isNew\"\r\n                v-validate=\"'required'\" v-model=\"countryId\" data-vv-as=\"Country\" v-on:change=\"filterProvinces\">\r\n              <option v-for=\"country in getCountries\" :key=\"country.id\" :value=\"country.id\">{{ country.name }}</option>\r\n            </select>\r\n            <div class=\"invalid-feedback\">The Country field is required.</div>\r\n          </div>\r\n          <div class=\"col-md-6 mb-3\">\r\n            <label for=\"ownerProvince\">Province/State <span class=\"red-dot ml-3\"></span></label>\r\n            <select id=\"ownerProvince\" name=\"ownerProvince\" class=\"custom-select\" :class=\"{ 'is-invalid': errors.has('ownerProvince') }\" :disabled=\"!isNew\"\r\n                v-validate=\"'required'\" v-model=\"owner.address.provinceId\" data-vv-as=\"Province\">\r\n              <option v-for=\"province in provinceList\" :key=\"province.id\" :value=\"province.id\">{{ province.name }}</option>\r\n            </select>\r\n            <div class=\"invalid-feedback\">The Province/State field is required.</div>\r\n          </div>\r\n        </div>\r\n        <div class=\"form-row\">\r\n          <div class=\"col-md-6 mb-3\">\r\n            <label for=\"ownerPostalCode\">Postal Code/Zip Code</label>\r\n            <input id=\"ownerPostalCode\" name=\"ownerPostalCode\" type=\"text\" class=\"form-control\" autocomplete=\"off\" placeholder=\"Enter postal code\"\r\n              v-model=\"owner.address.postalCode\" :disabled=\"!isNew\" />\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"form-row\">\r\n          <div class=\"col mb-3\">\r\n            <label for=\"ownerPhone\">Phone</label>\r\n            <input id=\"ownerPhone\" name=\"ownerPhone\" type=\"text\" class=\"form-control\" autocomplete=\"off\" placeholder=\"Enter phone\"\r\n              v-model=\"owner.phone\" :disabled=\"!isNew\" />\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <div class=\"custom-control custom-checkbox mb-2\">\r\n            <input id=\"ownerShowInfo\" name=\"ownerShowInfo\" type=\"checkbox\" class=\"custom-control-input\" v-model=\"owner.showInfo\" :value=\"true\" />\r\n            <label class=\"custom-control-label\" for=\"ownerShowInfo\">Show Contact Info</label>\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"ownerAdditionalInformation\">Additional Contact Information</label>\r\n          <textarea id=\"ownerAdditionalInformation\" name=\"ownerAdditionalInformation\" class=\"form-control\"\r\n            placeholder=\"Enter additional contact information\" rows=\"5\" v-model=\"owner.additionalInformation\">\r\n          </textarea>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"modal-footer\">\r\n        <button type=\"submit\" class=\"btn btn-success\">Save</button>\r\n        <button type=\"button\" class=\"btn btn-secondary\" @click=\"closeModal\">Close</button>\r\n      </div>\r\n    </form>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from \"vuex\";\r\nimport Toast from \"@/utils/toast\";\r\nimport cloneDeep from \"lodash/cloneDeep\";\r\nimport AddressDisplayMixin from \"@/mixins/addressDisplay\";\r\nimport debounce from \"lodash/debounce\";\r\nimport VueBootstrapTypeahead from 'vue-bootstrap-typeahead';\r\nimport { OwnerService } from '@/services/'\r\nimport uuid from \"uuid/v1\";\r\n\r\nexport default {\r\n  name: \"project-owner\",\r\n  components: {\r\n    VueBootstrapTypeahead\r\n  },\r\n  mixins: [AddressDisplayMixin],\r\n  data: function() {\r\n    return {\r\n      query: '',\r\n      owners: [],\r\n      isNew: false,\r\n      hasOwner: false,\r\n      owner: {\r\n        ownerId: null,\r\n        address: {},\r\n        showInfo: false,\r\n        additionalInformation: null\r\n      },\r\n      countryId: null,\r\n      provinceList: null\r\n    };\r\n  },\r\n  computed: {\r\n    ...mapGetters([\"getProvinces\", \"getProjectOwner\",\"getCountries\"])\r\n  },\r\n  mounted: function() {\r\n    this.owner = cloneDeep(this.getProjectOwner);\r\n\r\n    if (!this.owner.address) {\r\n      this.owner.address = {};\r\n    }\r\n    this.setCountry();\r\n    this.filterProvinces();\r\n  },\r\n  watch: {\r\n    query: debounce(\r\n      async function (newQuery) {\r\n        let owners = await OwnerService.getByTypeahead(encodeURIComponent(newQuery));\r\n        this.owners = owners.data;\r\n      }, 500, false\r\n    ),\r\n    'owner' : {\r\n      immediate: true,\r\n      deep: true,\r\n      handler (owner) {\r\n        this.hasOwner = !!owner.name;\r\n      }\r\n    }\r\n  },\r\n  methods: {\r\n    selectOwner (owner) {\r\n      this.isNew = false;\r\n      this.owner.ownerId = owner.id;\r\n      this.owner.name = owner.name;\r\n      this.owner.address = owner.address || {};\r\n      this.owner.phone = owner.phone;\r\n    },\r\n    clearOwner () {\r\n      this.isNew = false;\r\n      this.query = '';\r\n      this.owners = [];\r\n      this.owner.name = null;\r\n      this.owner.displayName = null;\r\n      this.owner.address = {};\r\n      this.$refs.ownerLookup.handleInput('');\r\n      this.$refs.ownerLookup.$refs.input.disabled = false;\r\n      this.$validator.reset();\r\n    },\r\n    newOwner () {\r\n      this.isNew = true;\r\n      this.query = '';\r\n      this.owners = [];\r\n      this.owner.ownerId = uuid();\r\n      this.owner.name = null;\r\n      this.owner.displayName = null;\r\n      this.owner.address = {};\r\n      this.$refs.ownerLookup.handleInput('');\r\n      this.$refs.ownerLookup.$refs.input.disabled = true;\r\n      this.$validator.reset();\r\n    },\r\n    async onSubmit() {\r\n      var isFormValid = await this.$validator.validate();\r\n\r\n      if (!isFormValid) {\r\n        return;\r\n      }\r\n\r\n      this.saveProjectOwner(this.owner).then(() => {\r\n        let message = this.$createElement('span', {}, [ 'Successfully updated!', this.$createElement('br'), 'Please remember to save your project.']);\r\n        Toast.success(this, [message]);\r\n        this.$bvModal.hide(\"bv-modal-project-owner\");\r\n      });\r\n    },\r\n    closeModal() {\r\n      this.$bvModal.hide(\"bv-modal-project-owner\");\r\n    },\r\n    setCountry() {\r\n      let selectedProvince = this.getProvinces.filter((p) =>{ return p.id==this.owner.address.provinceId});\r\n      if(selectedProvince.length >0){\r\n        this.countryId = selectedProvince[0].countryId;\r\n      }\r\n      \r\n    },\r\n    filterProvinces() {\r\n      this.provinceList = this.getProvinces.filter((p)=>{return p.countryId == this.countryId});\r\n    },\r\n    ...mapActions([\"saveProjectOwner\"])\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-owner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-owner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-owner.vue?vue&type=template&id=25fb2018&\"\nimport script from \"./project-owner.vue?vue&type=script&lang=js&\"\nexport * from \"./project-owner.vue?vue&type=script&lang=js&\"\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","<template>\r\n  <fragment>\r\n    <fieldset>\r\n      <legend>\r\n        Owner\r\n        <span class=\"red-dot ml-3\" v-if=\"requiredForPrebid\"></span>\r\n      </legend>\r\n\r\n      <input type=\"hidden\" id=\"hasOwner\" name=\"hasOwner\" v-model=\"getProject.owner\" v-validate=\"{ required: requiredForPrebid }\" data-vv-as=\"Owner\" />\r\n\r\n      <div class=\"alert alert-warning\" :class=\"[ errors.has('hasOwner') ? 'alert-danger' : 'alert-warning']\" role=\"alert\" v-if=\"!getProject.owner\">\r\n        No owner has been added.\r\n      </div>\r\n\r\n      <div class=\"row mb-3\" v-if=\"!getProject.owner\">\r\n        <div class=\"col-md-12 text-right\">\r\n          <button type=\"button\" class=\"btn btn-primary\" @click=\"newProjectOwner\">\r\n            <i class=\"fas fa-plus\"></i>\r\n            Add Owner\r\n          </button>\r\n        </div>\r\n      </div>\r\n    </fieldset>\r\n\r\n    <div v-if=\"getProject.owner\">\r\n      <div class=\"form-group row mb-2\">\r\n        <label for=\"displayOwnerName\" class=\"col-sm-2 col-form-label\">Name</label>\r\n        <div class=\"col-sm-10\">\r\n          <input type=\"text\" readonly disabled class=\"form-control-plaintext pt-0 pb-0\" id=\"displayOwnerName\" name=\"displayOwnerName\" :value=\"getProject.owner.name\">\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"form-group row mb-2\">\r\n        <label for=\"displayOwnerName\" class=\"col-sm-2 col-form-label\">Address</label>\r\n        <div class=\"col-sm-10\">\r\n          <input type=\"text\" readonly disabled class=\"form-control-plaintext pt-0 pb-0\" id=\"displayOwnerName\" name=\"displayOwnerName\"\r\n            :value=\"getAddressDisplay(getProject.owner.address)\">\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"custom-control custom-checkbox mb-2\">\r\n        <input id=\"displayOwnerShowInfo\" name=\"displayOwnerShowInfo\" type=\"checkbox\" class=\"custom-control-input\" v-model=\"getProject.owner.showInfo\"\r\n          :value=\"true\" readonly disabled>\r\n        <label class=\"custom-control-label\" for=\"displayOwnerShowInfo\">Show Contact Info</label>\r\n      </div>\r\n\r\n      <div class=\"form-group\">\r\n        <label for=\"displayOwnerAdditionalInformation\">Additional Contact Information</label>\r\n        <textarea id=\"displayOwnerAdditionalInformation\" name=\"ownerAdditionalInformation\" class=\"form-control\"\r\n          placeholder=\"Enter additional contact information\" rows=\"5\" v-model=\"getProject.owner.additionalInformation\" readonly disabled>\r\n        </textarea>\r\n      </div>\r\n\r\n        <div class=\"row mb-3\">\r\n          <div class=\"col-md-12 text-right\">\r\n            <button type=\"button\" class=\"btn btn-primary\" @click=\"editProjectOwner\">\r\n              <i class=\"far fa-edit\"></i>\r\n              Edit Owner\r\n            </button>\r\n          </div>\r\n        </div>\r\n    </div>\r\n\r\n    <b-modal id=\"bv-modal-project-owner\" size=\"lg\" hide-header hide-footer :no-close-on-backdrop=\"true\">\r\n      <project-owner></project-owner>\r\n    </b-modal>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters } from \"vuex\";\r\nimport AddressDisplayMixin from \"@/mixins/addressDisplay\";\r\nimport { isDraftMode, isPreBid, isPrivateProject, requiredForPrebid } from \"@/mixins/projectStatuses\";\r\nimport ProjectOwner from \"@/views/project/components/project-owner.vue\"\r\n\r\nexport default {\r\n  name: \"project-owners\",\r\n  inject: [\"$validator\"],\r\n  mixins: [AddressDisplayMixin, isDraftMode, isPreBid, isPrivateProject, requiredForPrebid],\r\n  components: { ProjectOwner },\r\n  props: {\r\n    project: { type: Object, required: true }\r\n  },\r\n  computed: {\r\n    ...mapGetters([\"getProject\", \"getOwners\"])\r\n  },\r\n  methods: {\r\n    newProjectOwner() {\r\n      this.resetProjectOwner().then(() => {\r\n         this.$bvModal.show(\"bv-modal-project-owner\");\r\n      });\r\n    },\r\n    editProjectOwner () {\r\n      this.fetchProjectOwner().then(() => {\r\n        this.$bvModal.show(\"bv-modal-project-owner\");\r\n      });\r\n    },\r\n    ...mapActions([\"fetchProjectOwner\", \"resetProjectOwner\"])\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-owners.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-owners.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-owners.vue?vue&type=template&id=294a58c5&\"\nimport script from \"./project-owners.vue?vue&type=script&lang=js&\"\nexport * from \"./project-owners.vue?vue&type=script&lang=js&\"\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 _c('fragment',[_c('fieldset',[_c('legend',[_vm._v(\"Project Contacts\")]),_c('div',{attrs:{\"id\":\"project-contact-list\"}},[(_vm.getProjectContacts.length === 0)?_c('div',{staticClass:\"alert alert-warning\",attrs:{\"role\":\"alert\"}},[_vm._v(\" No project contacts available \")]):_vm._e(),(_vm.getProjectContacts.length > 0)?_c('table',{staticClass:\"table\"},[_c('thead',[_c('tr',[_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Name\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Address\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Phone\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Type\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Show Contact Info\")]),_c('th',{staticStyle:{\"width\":\"100px\"},attrs:{\"scope\":\"col\"}}),(_vm.$permissions().hasDeleteProjectPermission)?_c('th',{staticStyle:{\"width\":\"100px\"},attrs:{\"scope\":\"col\"}}):_vm._e()])]),_c('tbody',_vm._l((_vm.getProjectContacts),function(contact){return _c('tr',{key:contact.id},[_c('td',[_vm._v(_vm._s(contact.companyName))]),_c('td',[_vm._v(_vm._s(_vm.getAddressDisplay(contact.address)))]),_c('td',[_vm._v(_vm._s(contact.phone))]),_c('td',[_vm._v(_vm._s(_vm.getContactTypeDisplay(contact.contactTypeId)))]),_c('td',[_vm._v(_vm._s(contact.showInfo ? \"Yes\" : \"No\"))]),_c('td',[_c('a',{staticClass:\"d-flex justify-content-between align-items-center flex-column\",attrs:{\"role\":\"button\",\"href\":\"#\",\"title\":\"Manage\"},on:{\"click\":function($event){$event.preventDefault();return _vm.editProjectContact(contact.id)}}},[_c('img',{staticClass:\"mb-1\",attrs:{\"src\":require(\"@/assets/document.svg\"),\"alt\":\"\"}}),_c('span',{staticClass:\"small-grey\"},[_vm._v(\"Manage\")])])]),_c('td',[_c('a',{staticClass:\"d-flex justify-content-between align-items-center flex-column\",attrs:{\"role\":\"button\",\"href\":\"#\",\"title\":\"Manage\"},on:{\"click\":function($event){$event.preventDefault();return _vm.deleteProjectContact(contact.id)}}},[_c('img',{staticClass:\"mb-1\",attrs:{\"src\":require(\"@/assets/document.svg\"),\"alt\":\"\"}}),_c('span',{staticClass:\"small-grey\"},[_vm._v(\"Remove\")])])])])}),0)]):_vm._e(),_c('div',{staticClass:\"row mb-3\"},[_c('div',{staticClass:\"col-md-12 text-right\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.newProjectContact}},[_c('i',{staticClass:\"fas fa-plus\"}),_vm._v(\" Add New Project Contact \")])])])])]),_c('b-modal',{attrs:{\"id\":\"bv-modal-project-contact\",\"size\":\"lg\",\"hide-header\":\"\",\"hide-footer\":\"\",\"no-close-on-backdrop\":true}},[_c('project-contact')],1)],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('fragment',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('div',{staticClass:\"modal-header\"},[_c('h5',{staticClass:\"modal-title\",attrs:{\"id\":\"exampleModalLabel\"}},[_vm._v(\"New Contact\")])]),_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"companyName\"}},[_vm._v(\"Company \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.contact.companyName),expression:\"contact.companyName\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"form-control\",class:{ 'is-invalid': _vm.errors.has('companyName') },attrs:{\"id\":\"companyName\",\"name\":\"companyName\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Enter company name\",\"data-vv-as\":\"Company\"},domProps:{\"value\":(_vm.contact.companyName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.contact, \"companyName\", $event.target.value)}}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Company field is required\")])]),_c('div',{staticClass:\"custom-control custom-checkbox mb-2\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.contact.showInfo),expression:\"contact.showInfo\"}],staticClass:\"custom-control-input\",attrs:{\"id\":\"showInfo\",\"name\":\"showInfo\",\"type\":\"checkbox\"},domProps:{\"value\":true,\"checked\":Array.isArray(_vm.contact.showInfo)?_vm._i(_vm.contact.showInfo,true)>-1:(_vm.contact.showInfo)},on:{\"change\":function($event){var $$a=_vm.contact.showInfo,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=true,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.contact, \"showInfo\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.contact, \"showInfo\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.contact, \"showInfo\", $$c)}}}}),_c('label',{staticClass:\"custom-control-label\",attrs:{\"for\":\"showInfo\"}},[_vm._v(\"Show Contact Info\")])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"address\"}},[_vm._v(\"Street\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.contact.address.street),expression:\"contact.address.street\"}],staticClass:\"form-control\",attrs:{\"id\":\"address\",\"name\":\"address\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Enter site address\"},domProps:{\"value\":(_vm.contact.address.street)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.contact.address, \"street\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"city\"}},[_vm._v(\"City\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.contact.address.city),expression:\"contact.address.city\"}],staticClass:\"form-control\",attrs:{\"id\":\"city\",\"name\":\"city\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"City\"},domProps:{\"value\":(_vm.contact.address.city)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.contact.address, \"city\", $event.target.value)}}})]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"col-lg-6 mb-3\"},[_c('label',{attrs:{\"for\":\"country\"}},[_vm._v(\"Country \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.countryId),expression:\"countryId\"}],staticClass:\"custom-select\",class:{ 'is-invalid': _vm.errors.has('country') },attrs:{\"id\":\"country\",\"name\":\"country\",\"data-vv-as\":\"Country\"},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.countryId=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},_vm.filterProvinces]}},_vm._l((_vm.getCountries),function(country){return _c('option',{key:country.id,domProps:{\"value\":country.id}},[_vm._v(_vm._s(country.name))])}),0),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\" The Country field is required \")])]),_c('div',{staticClass:\"col-lg-6 mb-3\"},[_c('label',{attrs:{\"for\":\"province\"}},[_vm._v(\"Province/State \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.contact.address.provinceId),expression:\"contact.address.provinceId\"}],staticClass:\"custom-select\",class:{ 'is-invalid': _vm.errors.has('province') },attrs:{\"id\":\"province\",\"name\":\"province\",\"data-vv-as\":\"Province\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.contact.address, \"provinceId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.provinceList),function(province){return _c('option',{key:province.id,domProps:{\"value\":province.id}},[_vm._v(_vm._s(province.name))])}),0),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\" The Province/State field is required \")])])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"col-lg-6 mb-3\"},[_c('label',{attrs:{\"for\":\"postalCode\"}},[_vm._v(\"Postal Code/Zip Code\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.contact.address.postalCode),expression:\"contact.address.postalCode\"}],staticClass:\"form-control\",attrs:{\"id\":\"postalCode\",\"name\":\"postalCode\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Postal code\"},domProps:{\"value\":(_vm.contact.address.postalCode)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.contact.address, \"postalCode\", $event.target.value)}}})])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"col-lg-6 mb-3\"},[_c('label',{attrs:{\"for\":\"phone\"}},[_vm._v(\"Phone\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.contact.phone),expression:\"contact.phone\"}],staticClass:\"form-control\",attrs:{\"id\":\"phone\",\"name\":\"phone\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Phone\"},domProps:{\"value\":(_vm.contact.phone)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.contact, \"phone\", $event.target.value)}}})]),_c('div',{staticClass:\"col-lg-6 mb-3\"},[_c('label',{attrs:{\"for\":\"contactType\"}},[_vm._v(\"Type \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.contact.contactTypeId),expression:\"contact.contactTypeId\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"custom-select\",class:{ 'is-invalid': _vm.errors.has('contactType') },attrs:{\"id\":\"contactType\",\"name\":\"contactType\",\"data-vv-as\":\"Type\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.contact, \"contactTypeId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.getContactTypes),function(contactType){return _c('option',{key:contactType.id,domProps:{\"value\":contactType.id}},[_vm._v(_vm._s(contactType.name))])}),0),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Type field is required\")])])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"additionalInformation\"}},[_vm._v(\"Additional Contact Information\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.contact.additionalInformation),expression:\"contact.additionalInformation\"}],staticClass:\"form-control\",attrs:{\"id\":\"additionalInformation\",\"name\":\"additionalInformation\",\"rows\":\"3\",\"placeholder\":\"Enter contact information\"},domProps:{\"value\":(_vm.contact.additionalInformation)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.contact, \"additionalInformation\", $event.target.value)}}})])]),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Save\")]),_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.closeModal}},[_vm._v(\"Close\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <fragment>\r\n    <form v-on:submit.prevent=\"onSubmit\">\r\n      <div class=\"modal-header\">\r\n        <h5 class=\"modal-title\" id=\"exampleModalLabel\">New Contact</h5>\r\n      </div>\r\n\r\n      <div class=\"modal-body\">\r\n        <div class=\"form-group\">\r\n          <label for=\"companyName\">Company <span class=\"red-dot ml-3\"></span></label>\r\n          <input id=\"companyName\" name=\"companyName\" type=\"text\" class=\"form-control\" :class=\"{ 'is-invalid': errors.has('companyName') }\"\r\n            autocomplete=\"off\" placeholder=\"Enter company name\" v-model=\"contact.companyName\" v-validate=\"'required'\" data-vv-as=\"Company\">\r\n          <div class=\"invalid-feedback\">The Company field is required</div>\r\n        </div>\r\n\r\n        <div class=\"custom-control custom-checkbox mb-2\">\r\n          <input id=\"showInfo\" name=\"showInfo\" type=\"checkbox\" class=\"custom-control-input\" v-model=\"contact.showInfo\" :value=\"true\">\r\n          <label class=\"custom-control-label\" for=\"showInfo\">Show Contact Info</label>\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"address\">Street</label>\r\n          <input id=\"address\" name=\"address\" type=\"text\" class=\"form-control\" autocomplete=\"off\" placeholder=\"Enter site address\" v-model=\"contact.address.street\">\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"city\">City</label>\r\n          <input id=\"city\" name=\"city\" type=\"text\" class=\"form-control\" autocomplete=\"off\" placeholder=\"City\" v-model=\"contact.address.city\">\r\n        </div>\r\n\r\n        <div class=\"form-row\">\r\n          <div class=\"col-lg-6 mb-3\">\r\n            <label for=\"country\">Country <span class=\"red-dot ml-3\"></span></label>\r\n            <select id=\"country\" name=\"country\" class=\"custom-select\" :class=\"{ 'is-invalid': errors.has('country') }\"\r\n                v-validate=\"'required'\" v-model=\"countryId\" data-vv-as=\"Country\" v-on:change=\"filterProvinces\">\r\n              <option v-for=\"country in getCountries\" :key=\"country.id\" :value=\"country.id\">{{ country.name }}</option>\r\n            </select>\r\n            <div class=\"invalid-feedback\"> The Country field is required </div>\r\n          </div>\r\n          <div class=\"col-lg-6 mb-3\">\r\n            <label for=\"province\">Province/State <span class=\"red-dot ml-3\"></span></label>\r\n            <select id=\"province\" name=\"province\" class=\"custom-select\" :class=\"{ 'is-invalid': errors.has('province') }\"\r\n                v-validate=\"'required'\" v-model=\"contact.address.provinceId\" data-vv-as=\"Province\">\r\n              <option v-for=\"province in provinceList\" :key=\"province.id\" :value=\"province.id\">{{ province.name }}</option>\r\n            </select>\r\n            <div class=\"invalid-feedback\"> The Province/State field is required </div>\r\n          </div>\r\n        </div>\r\n        <div class=\"form-row\">\r\n          <div class=\"col-lg-6 mb-3\">\r\n            <label for=\"postalCode\">Postal Code/Zip Code</label>\r\n            <input id=\"postalCode\" name=\"postalCode\" type=\"text\" class=\"form-control\" autocomplete=\"off\" placeholder=\"Postal code\" v-model=\"contact.address.postalCode\">\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"form-row\">\r\n          <div class=\"col-lg-6 mb-3\">\r\n            <label for=\"phone\">Phone</label>\r\n            <input id=\"phone\" name=\"phone\" type=\"text\" class=\"form-control\" autocomplete=\"off\" placeholder=\"Phone\" v-model=\"contact.phone\">\r\n          </div>\r\n\r\n          <div class=\"col-lg-6 mb-3\">\r\n            <label for=\"contactType\">Type <span class=\"red-dot ml-3\"></span></label>\r\n            <select id=\"contactType\" name=\"contactType\" class=\"custom-select\" :class=\"{ 'is-invalid': errors.has('contactType') }\"\r\n                v-model=\"contact.contactTypeId\" v-validate=\"'required'\" data-vv-as=\"Type\">\r\n              <option v-for=\"contactType in getContactTypes\" :key=\"contactType.id\" :value=\"contactType.id\">{{ contactType.name }}</option>\r\n            </select>\r\n            <div class=\"invalid-feedback\">The Type field is required</div>\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"additionalInformation\">Additional Contact Information</label>\r\n          <textarea id=\"additionalInformation\" name=\"additionalInformation\" class=\"form-control\" rows=\"3\"\r\n            placeholder=\"Enter contact information\" v-model=\"contact.additionalInformation\">\r\n          </textarea>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"modal-footer\">\r\n        <button type=\"submit\" class=\"btn btn-success\">Save</button>\r\n        <button type=\"button\" class=\"btn btn-secondary\" @click=\"closeModal\">Close</button>\r\n      </div>\r\n    </form>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from \"vuex\";\r\nimport Toast from \"@/utils/toast\";\r\nimport cloneDeep from \"lodash/cloneDeep\";\r\n\r\nexport default {\r\n  name: \"project-contact\",\r\n  data: function() {\r\n    return {\r\n      contact: {\r\n        id: null,\r\n        companyName: null,\r\n        showInfo: false,\r\n        address: {\r\n          street: null,\r\n          city: null,\r\n          postalCode: null,\r\n          provinceId: null\r\n        },\r\n        phone: null,\r\n        contactTypeId: null,\r\n        additionalInformation: null\r\n      },\r\n      countryId: null,\r\n      provinceList: null\r\n    };\r\n  },\r\n  computed: {\r\n    ...mapGetters([\"getContactTypes\", \"getProjectContact\", \"getProvinces\",\"getCountries\"])\r\n  },\r\n  mounted: function() {\r\n    this.contact = cloneDeep(this.getProjectContact);\r\n    this.setCountry();\r\n    this.filterProvinces();\r\n  },\r\n  methods: {\r\n    async onSubmit() {\r\n      var isFormValid = await this.$validator.validate();\r\n\r\n      if (!isFormValid) {\r\n        return;\r\n      }\r\n\r\n      this.saveProjectContact(this.contact).then(() => {\r\n        let message = this.$createElement('span', {}, [ 'Successfully updated!', this.$createElement('br'), 'Please remember to save your project.']);\r\n        Toast.success(this, [message]);\r\n        this.$bvModal.hide(\"bv-modal-project-contact\");\r\n      });\r\n    },\r\n    setCountry() {\r\n      let selectedProvince = this.getProvinces.filter((p) =>{ return p.id==this.contact.address.provinceId});\r\n      if(selectedProvince.length >0){\r\n        this.countryId = selectedProvince[0].countryId;\r\n      }\r\n      \r\n    },\r\n    filterProvinces() {\r\n      this.provinceList = this.getProvinces.filter((p)=>{return p.countryId == this.countryId});\r\n    },\r\n    closeModal() {\r\n      this.$bvModal.hide(\"bv-modal-project-contact\");\r\n    },\r\n    ...mapActions([\"saveProjectContact\"])\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-contact.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-contact.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-contact.vue?vue&type=template&id=37fd544b&\"\nimport script from \"./project-contact.vue?vue&type=script&lang=js&\"\nexport * from \"./project-contact.vue?vue&type=script&lang=js&\"\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","<template>\r\n  <fragment>\r\n    <fieldset>\r\n      <legend>Project Contacts</legend>\r\n      <div id=\"project-contact-list\">\r\n        <div class=\"alert alert-warning\" role=\"alert\" v-if=\"getProjectContacts.length === 0\">\r\n          No project contacts available\r\n        </div>\r\n\r\n        <table class=\"table\" v-if=\"getProjectContacts.length > 0\">\r\n          <thead>\r\n            <tr>\r\n              <th scope=\"col\">Name</th>\r\n              <th scope=\"col\">Address</th>\r\n              <th scope=\"col\">Phone</th>\r\n              <th scope=\"col\">Type</th>\r\n              <th scope=\"col\">Show Contact Info</th>\r\n              <th scope=\"col\" style=\"width: 100px\">&nbsp;</th>\r\n              <th scope=\"col\" style=\"width: 100px\" v-if=\"$permissions().hasDeleteProjectPermission\">&nbsp;</th>\r\n            </tr>\r\n          </thead>\r\n          <tbody>\r\n            <tr v-for=\"contact in getProjectContacts\" :key=\"contact.id\">\r\n              <td>{{ contact.companyName }}</td>\r\n              <td>{{ getAddressDisplay(contact.address) }}</td>\r\n              <td>{{ contact.phone }}</td>\r\n              <td>{{ getContactTypeDisplay(contact.contactTypeId) }}</td>\r\n              <td>{{ contact.showInfo ? \"Yes\" : \"No\" }}</td>\r\n              <td>\r\n                <a role=\"button\" href=\"#\" class=\"d-flex justify-content-between align-items-center flex-column\"\r\n                    title=\"Manage\" @click.prevent=\"editProjectContact(contact.id)\">\r\n                  <img class=\"mb-1\" src=\"@/assets/document.svg\" alt />\r\n                  <span class=\"small-grey\">Manage</span>\r\n                </a>\r\n              </td>\r\n              <td>\r\n                <a role=\"button\" href=\"#\" class=\"d-flex justify-content-between align-items-center flex-column\"\r\n                    title=\"Manage\" @click.prevent=\"deleteProjectContact(contact.id)\">\r\n                  <img class=\"mb-1\" src=\"@/assets/document.svg\" alt />\r\n                  <span class=\"small-grey\">Remove</span>\r\n                </a>\r\n              </td>\r\n            </tr>\r\n          </tbody>\r\n        </table>\r\n\r\n        <div class=\"row mb-3\">\r\n          <div class=\"col-md-12 text-right\">\r\n            <button type=\"button\" class=\"btn btn-primary\" @click=\"newProjectContact\">\r\n              <i class=\"fas fa-plus\"></i>\r\n              Add New Project Contact\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </fieldset>\r\n    <b-modal id=\"bv-modal-project-contact\" size=\"lg\" hide-header hide-footer :no-close-on-backdrop=\"true\">\r\n      <project-contact></project-contact>\r\n    </b-modal>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters } from \"vuex\";\r\nimport Toast from \"@/utils/toast\";\r\nimport MessageBox from \"@/utils/messagebox\";\r\nimport AddressDisplayMixin from \"@/mixins/addressDisplay\";\r\nimport ProjectContact from \"@/views/project/components/project-contact.vue\";\r\n\r\nexport default {\r\n  name: \"project-contacts\",\r\n  mixins: [AddressDisplayMixin],\r\n  components: { ProjectContact },\r\n  computed: {\r\n    ...mapGetters([\"getContactTypes\", \"getProjectContacts\", \"getProvinces\"])\r\n  },\r\n  methods: {\r\n    editProjectContact(id) {\r\n      this.fetchProjectContact(id).then(() => {\r\n        this.$bvModal.show(\"bv-modal-project-contact\");\r\n      });\r\n    },\r\n    async deleteProjectContact(id) {\r\n      let confirm = await MessageBox.confirm(\r\n        this,\r\n        \"Remove Contact\",\r\n        \"Are you sure you want to remove contact?\"\r\n      );\r\n\r\n      if (confirm) {\r\n        this.removeProjectContact(id).then(() => {\r\n          Toast.success(this, \"Successfully removed contact!\");\r\n        });\r\n      }\r\n    },\r\n    getContactTypeDisplay: function(id) {\r\n      let contactType = this.getContactTypes.find(\r\n        contactType => contactType.id === id\r\n      );\r\n      return (contactType && contactType.name) || \"\";\r\n    },\r\n    newProjectContact() {\r\n      this.resetProjectContact().then(() => {\r\n        this.$bvModal.show(\"bv-modal-project-contact\");\r\n      });\r\n    },\r\n    ...mapActions([\r\n      \"fetchProjectContact\",\r\n      \"removeProjectContact\",\r\n      \"resetProjectContact\"\r\n    ])\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-contacts.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-contacts.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-contacts.vue?vue&type=template&id=03bde89c&\"\nimport script from \"./project-contacts.vue?vue&type=script&lang=js&\"\nexport * from \"./project-contacts.vue?vue&type=script&lang=js&\"\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 _c('fragment',[_c('fieldset',[_c('legend',[_vm._v(\"Bidders\")]),_c('div',{attrs:{\"id\":\"project-bidder-list\"}},[(_vm.getProjectBids.length === 0)?_c('div',{staticClass:\"alert alert-warning\",attrs:{\"role\":\"alert\"}},[_vm._v(\" No project bids available \")]):_vm._e(),(_vm.getProjectBids.length > 0)?_c('div',_vm._l((_vm.groupedBids),function(bids,participantTypeId){return _c('div',{key:participantTypeId,staticClass:\"card mb-3\"},[_c('div',{staticClass:\"card-body\"},[_c('h5',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.getParticipantTypeDisplay(participantTypeId)))]),_c('table',{staticClass:\"table\"},[_c('thead',[_c('tr',[_c('th',{staticStyle:{\"width\":\"50%\"},attrs:{\"scope\":\"col\"}},[_vm._v(\"Company\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Submission\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Awarded\")]),_c('th',{staticStyle:{\"width\":\"100px\"},attrs:{\"scope\":\"col\"}}),_c('th',{staticStyle:{\"width\":\"100px\"},attrs:{\"scope\":\"col\"}})])]),_c('tbody',_vm._l((_vm.sortBidsByCompanyName(bids)),function(bid){return _c('tr',{key:bid.id},[(_vm.canVisitCompanyInfo)?_c('td',[_c('router-link',{staticClass:\"btn btn-link btn-sm\",attrs:{\"to\":'/company/edit/' + bid.company.id,\"role\":\"button\",\"aria-label\":'Visit ' + bid.company.name}},[_vm._v(\" \"+_vm._s(bid.company.name)+\" \")])],1):_vm._e(),(!_vm.canVisitCompanyInfo)?_c('td',[_vm._v(\" \"+_vm._s(bid.company.name)+\" \")]):_vm._e(),_c('td',[_vm._v(_vm._s(bid.submittedAmount || '---'))]),_c('td',[_vm._v(_vm._s(bid.awardedAmount || '---'))]),_c('td',[_c('a',{staticClass:\"d-flex justify-content-between align-items-center flex-column\",attrs:{\"role\":\"button\",\"href\":\"#\",\"title\":\"Manage\"},on:{\"click\":function($event){$event.preventDefault();return _vm.editProjectBid(bid.id)}}},[_c('img',{staticClass:\"mb-1\",attrs:{\"src\":require(\"@/assets/document.svg\"),\"alt\":\"\"}}),_c('span',{staticClass:\"small-grey\"},[_vm._v(\"Manage\")])])]),_c('td',[_c('a',{staticClass:\"d-flex justify-content-between align-items-center flex-column\",attrs:{\"role\":\"button\",\"href\":\"#\",\"title\":\"Manage\"},on:{\"click\":function($event){$event.preventDefault();return _vm.deleteProjectBid(bid.id)}}},[_c('img',{staticClass:\"mb-1\",attrs:{\"src\":require(\"@/assets/document.svg\"),\"alt\":\"\"}}),_c('span',{staticClass:\"small-grey\"},[_vm._v(\"Remove\")])])])])}),0)])])])}),0):_vm._e(),_c('div',{staticClass:\"row mb-3\"},[_c('div',{staticClass:\"col-md-12 text-right\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.newProjectBidder}},[_c('i',{staticClass:\"fas fa-plus\"}),_vm._v(\" Add New Project Bid \")]),(_vm.$permissions().isClientAdmin || _vm.$permissions().isSysAdmin)?_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.emailBidders}},[_c('i',{staticClass:\"fas fa-envelope\"}),_vm._v(\" Email Bidders \")]):_vm._e()])])])]),_c('b-modal',{attrs:{\"id\":\"bv-modal-project-bid\",\"size\":\"lg\",\"hide-header\":\"\",\"hide-footer\":\"\",\"no-close-on-backdrop\":true}},[_c('project-bid',{attrs:{\"offline-companies\":_vm.offlineCompanies},on:{\"new-company\":_vm.addNewCompany}})],1),_c('b-modal',{attrs:{\"id\":\"bv-modal-email-bidders\",\"size\":\"lg\",\"hide-header\":\"\",\"hide-footer\":\"\",\"no-close-on-backdrop\":true}},[_c('app-send-email',{attrs:{\"target-modal\":\"bv-modal-email-bidders\",\"records\":_vm.bidderEmailAddresses,\"isGrouped\":true}})],1)],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('fragment',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();}}},[_c('div',{staticClass:\"modal-header\"},[_c('h5',{staticClass:\"modal-title\",attrs:{\"id\":\"exampleModalLabel\"}},[_vm._v(\"New Project Bidder\")])]),_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"companyLookup\"}},[_vm._v(\" Find A Company \")]),_c('vue-bootstrap-typeahead',{ref:\"companyLookup\",attrs:{\"id\":\"companyLookup\",\"name\":\"companyLookup\",\"data\":_vm.companies,\"serializer\":function (company) { return company.name; },\"placeholder\":\"Type a minimum 3 characters to start the search\",\"minMatchingChars\":3},on:{\"hit\":function($event){return _vm.selectCompany($event)}},scopedSlots:_vm._u([{key:\"suggestion\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('strong',[_vm._v(_vm._s(data.name))]),_c('br'),_vm._v(\" \"+_vm._s(_vm.getAddressDisplay(data.address))+\" \"),(data.phone)?_c('span',[_c('br'),_vm._v(\" \"+_vm._s(data.phone)+\" \")]):_vm._e()]}}]),model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}},[_c('template',{slot:\"append\"},[_c('button',{staticClass:\"btn btn-outline-danger\",attrs:{\"type\":\"button\",\"name\":\"Clear Company\",\"title\":\"Clear Company\"},on:{\"click\":function($event){return _vm.clearCompany()}}},[_c('i',{staticClass:\"fas fa-times-circle\"})])]),_c('template',{slot:\"append\"},[_c('button',{staticClass:\"btn btn-outline-info\",attrs:{\"type\":\"button\",\"name\":\"New Company\",\"title\":\"New Company\"},on:{\"click\":function($event){return _vm.newCompany()}}},[_c('i',{staticClass:\"fas fa-user-plus\"})])])],2),_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required:true'),expression:\"'required:true'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.hasCompany),expression:\"hasCompany\"}],staticClass:\"form-control\",class:{ 'is-invalid': !_vm.isNew && _vm.errors.has('hasCompany') },attrs:{\"type\":\"hidden\",\"id\":\"hasCompany\",\"name\":\"hasCompany\"},domProps:{\"value\":(_vm.hasCompany)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.hasCompany=$event.target.value}}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"Please select a company\")])],1),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"companyName\"}},[_vm._v(\" Company \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.bid.company.name),expression:\"bid.company.name\"}],staticClass:\"form-control\",class:{ 'is-invalid': _vm.errors.has('companyName') },attrs:{\"type\":\"text\",\"id\":\"companyName\",\"name\":\"companyName\",\"placeholder\":\"Name\",\"autocomplete\":\"off\",\"disabled\":!_vm.isNew},domProps:{\"value\":(_vm.bid.company.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.bid.company, \"name\", $event.target.value)}}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Company field is required\")])]),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"companyEmail\"}},[_vm._v(\"Email\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.bid.company.email),expression:\"bid.company.email\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"id\":\"companyEmail\",\"name\":\"companyEmail\",\"placeholder\":\"Email\",\"autocomplete\":\"off\",\"disabled\":!_vm.isNew},domProps:{\"value\":(_vm.bid.company.email)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.bid.company, \"email\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"companyddress\"}},[_vm._v(\"Address\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.bid.company.address.street),expression:\"bid.company.address.street\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"id\":\"companyddress\",\"name\":\"companyddress\",\"placeholder\":\"Address\",\"autocomplete\":\"off\",\"disabled\":!_vm.isNew},domProps:{\"value\":(_vm.bid.company.address.street)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.bid.company.address, \"street\", $event.target.value)}}})]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-6\"},[_c('label',{attrs:{\"for\":\"companyCity\"}},[_vm._v(\"City\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.bid.company.address.city),expression:\"bid.company.address.city\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"id\":\"companyCity\",\"name\":\"companyCity\",\"placeholder\":\"City\",\"autocomplete\":\"off\",\"disabled\":!_vm.isNew},domProps:{\"value\":(_vm.bid.company.address.city)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.bid.company.address, \"city\", $event.target.value)}}})])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-6\"},[_c('label',{attrs:{\"for\":\"inputCountry\"}},[_vm._v(\"Country \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.countryId),expression:\"countryId\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"custom-select\",class:{ 'is-invalid': _vm.errors.has('inputCountry') },attrs:{\"id\":\"inputCountry\",\"name\":\"inputCountry\",\"data-vv-as\":\"Country\",\"disabled\":!_vm.isNew,\"readonly\":!_vm.isNew},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.countryId=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},_vm.filterProvinces]}},_vm._l((_vm.getCountries),function(country){return _c('option',{key:country.id,domProps:{\"value\":country.id}},[_vm._v(_vm._s(country.name))])}),0),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"Country is required\")])]),_c('div',{staticClass:\"form-group col-md-6\"},[_c('label',{attrs:{\"for\":\"inputProvince\"}},[_vm._v(\"Province/State \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.bid.company.address.provinceId),expression:\"bid.company.address.provinceId\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"custom-select\",class:{ 'is-invalid': _vm.errors.has('inputProvince') },attrs:{\"id\":\"inputProvince\",\"name\":\"inputProvince\",\"data-vv-as\":\"Province\",\"disabled\":!_vm.isNew,\"readonly\":!_vm.isNew},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.bid.company.address, \"provinceId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.provinceList),function(province){return _c('option',{key:province.id,domProps:{\"value\":province.id}},[_vm._v(_vm._s(province.name))])}),0),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"Province/State is required\")])])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group col-md-6\"},[_c('label',{attrs:{\"for\":\"companyPostalCode\"}},[_vm._v(\"Postal Code/Zip Code\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.bid.company.address.postalCode),expression:\"bid.company.address.postalCode\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"id\":\"companyPostalCode\",\"name\":\"companyPostalCode\",\"placeholder\":\"Postal Code\",\"autocomplete\":\"off\",\"disabled\":!_vm.isNew},domProps:{\"value\":(_vm.bid.company.address.postalCode)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.bid.company.address, \"postalCode\", $event.target.value)}}})])]),_c('div',{staticClass:\"form-row mt-2\"},[_c('div',{staticClass:\"form-group col-md-6\"},[_c('label',{attrs:{\"for\":\"companyPhone\"}},[_vm._v(\"Phone\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.bid.company.phone),expression:\"bid.company.phone\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"id\":\"companyPhone\",\"name\":\"companyPhone\",\"placeholder\":\"Phone\",\"autocomplete\":\"off\",\"disabled\":!_vm.isNew},domProps:{\"value\":(_vm.bid.company.phone)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.bid.company, \"phone\", $event.target.value)}}})]),_c('div',{staticClass:\"form-group col-md-6\"},[_c('label',{attrs:{\"for\":\"companyFax\"}},[_vm._v(\"Fax\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.bid.company.fax),expression:\"bid.company.fax\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"id\":\"companyFax\",\"name\":\"companyFax\",\"placeholder\":\"Fax\",\"autocomplete\":\"off\",\"disabled\":!_vm.isNew},domProps:{\"value\":(_vm.bid.company.fax)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.bid.company, \"fax\", $event.target.value)}}})])])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"participantType\"}},[_vm._v(\" Type \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.bid.participantTypeId),expression:\"bid.participantTypeId\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"custom-select\",class:{ 'is-invalid': _vm.errors.has('participantType') },attrs:{\"id\":\"participantType\",\"name\":\"participantType\",\"data-vv-as\":\"Participant Type\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.bid, \"participantTypeId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.getParticipantTypes),function(participantType){return _c('option',{key:participantType.id,domProps:{\"value\":participantType.id}},[_vm._v(_vm._s(participantType.name))])}),0),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Type field is required\")])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"submittedAmount\"}},[_vm._v(\"Submission Value\")]),_c('div',{staticClass:\"input-group mb-2\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.bid.submittedAmount),expression:\"bid.submittedAmount\"}],staticClass:\"form-control\",attrs:{\"id\":\"submittedAmount\",\"name\":\"submittedAmount\",\"type\":\"input\",\"autocomplete\":\"off\"},domProps:{\"value\":(_vm.bid.submittedAmount)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.bid, \"submittedAmount\", $event.target.value)}}})])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"awardedAmount\"}},[_vm._v(\"Awarded Value\")]),_c('div',{staticClass:\"input-group mb-2\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.bid.awardedAmount),expression:\"bid.awardedAmount\"}],staticClass:\"form-control\",attrs:{\"id\":\"awardedAmount\",\"name\":\"awardedAmount\",\"type\":\"input\",\"autocomplete\":\"off\"},domProps:{\"value\":(_vm.bid.awardedAmount)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.bid, \"awardedAmount\", $event.target.value)}}})])]),_c('div',{staticClass:\"form-group form-check\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.bid.addToFollowerList),expression:\"bid.addToFollowerList\"}],staticClass:\"form-check-input\",attrs:{\"type\":\"checkbox\",\"id\":\"addToFollowerList\",\"readonly\":_vm.disableAddToFollowerList,\"disabled\":_vm.disableAddToFollowerList},domProps:{\"checked\":Array.isArray(_vm.bid.addToFollowerList)?_vm._i(_vm.bid.addToFollowerList,null)>-1:(_vm.bid.addToFollowerList)},on:{\"change\":function($event){var $$a=_vm.bid.addToFollowerList,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.bid, \"addToFollowerList\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.bid, \"addToFollowerList\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.bid, \"addToFollowerList\", $$c)}}}}),_c('label',{staticClass:\"form-check-label\",attrs:{\"for\":\"addToFollowerList\"}},[_vm._v(\"Add to Follower List\")]),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"This will become disabled if selected company has no users.\")])])]),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.onSubmitSaveAdd}},[_vm._v(\"Save & Add Another\")]),_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.onSubmitSaveClose}},[_vm._v(\"Save & Close\")]),_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.closeModal}},[_vm._v(\"Close\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <fragment>\r\n    <form @submit.prevent>\r\n      <div class=\"modal-header\">\r\n        <h5 class=\"modal-title\" id=\"exampleModalLabel\">New Project Bidder</h5>\r\n      </div>\r\n\r\n      <div class=\"modal-body\">\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"companyLookup\">\r\n            Find A Company\r\n          </label>\r\n          <vue-bootstrap-typeahead\r\n            id=\"companyLookup\"\r\n            name=\"companyLookup\"\r\n            v-model=\"query\"\r\n            :data=\"companies\"\r\n            :serializer=\"company => company.name\"\r\n            placeholder=\"Type a minimum 3 characters to start the search\"\r\n            :minMatchingChars=\"3\"\r\n            @hit=\"selectCompany($event)\"\r\n            ref=\"companyLookup\"\r\n          >\r\n            <template slot=\"append\">\r\n              <button class=\"btn btn-outline-danger\" type=\"button\" name=\"Clear Company\" title=\"Clear Company\" @click=\"clearCompany()\">\r\n                <i class=\"fas fa-times-circle\"></i>\r\n              </button>\r\n            </template>\r\n\r\n            <template slot=\"append\">\r\n              <button class=\"btn btn-outline-info\" type=\"button\" name=\"New Company\" title=\"New Company\" @click=\"newCompany()\">\r\n                <i class=\"fas fa-user-plus\"></i>\r\n              </button>\r\n            </template>\r\n\r\n            <template slot=\"suggestion\" slot-scope=\"{ data }\">\r\n              <strong>{{ data.name }}</strong>\r\n              <br />\r\n              {{ getAddressDisplay(data.address) }}\r\n              <span v-if=\"data.phone\">\r\n                <br />\r\n                {{ data.phone }}\r\n              </span>\r\n            </template>\r\n          </vue-bootstrap-typeahead>\r\n          <input type=\"hidden\" id=\"hasCompany\" name=\"hasCompany\" v-validate=\"'required:true'\" v-model=\"hasCompany\" class=\"form-control\"\r\n            :class=\"{ 'is-invalid': !isNew && errors.has('hasCompany') }\" />\r\n          <div class=\"invalid-feedback\">Please select a company</div>\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"companyName\">\r\n            Company\r\n            <span class=\"red-dot ml-3\"></span>\r\n          </label>\r\n          <input\r\n            type=\"text\"\r\n            class=\"form-control\"\r\n            id=\"companyName\"\r\n            name=\"companyName\"\r\n            placeholder=\"Name\"\r\n            autocomplete=\"off\"\r\n            :class=\"{ 'is-invalid': errors.has('companyName') }\"\r\n            v-validate=\"'required'\"\r\n            v-model=\"bid.company.name\"\r\n            :disabled=\"!isNew\"\r\n          />\r\n          <div class=\"invalid-feedback\">The Company field is required</div>\r\n        </div>\r\n        <div class=\"form-group\">\r\n          <div class=\"form-group\">\r\n            <label for=\"companyEmail\">Email</label>\r\n            <input\r\n              type=\"text\"\r\n              class=\"form-control\"\r\n              id=\"companyEmail\"\r\n              name=\"companyEmail\"\r\n              placeholder=\"Email\"\r\n              autocomplete=\"off\"\r\n              v-model=\"bid.company.email\"\r\n              :disabled=\"!isNew\"\r\n            />\r\n          </div>\r\n          <div class=\"form-group\">\r\n            <label for=\"companyddress\">Address</label>\r\n            <input\r\n              type=\"text\"\r\n              class=\"form-control\"\r\n              id=\"companyddress\"\r\n              name=\"companyddress\"\r\n              placeholder=\"Address\"\r\n              autocomplete=\"off\"\r\n              v-model=\"bid.company.address.street\"\r\n              :disabled=\"!isNew\"\r\n            />\r\n          </div>\r\n          <div class=\"form-row\">\r\n            <div class=\"form-group col-md-6\">\r\n              <label for=\"companyCity\">City</label>\r\n              <input\r\n                type=\"text\"\r\n                class=\"form-control\"\r\n                id=\"companyCity\"\r\n                name=\"companyCity\"\r\n                placeholder=\"City\"\r\n                autocomplete=\"off\"\r\n                v-model=\"bid.company.address.city\"\r\n                :disabled=\"!isNew\"\r\n              />\r\n            </div>\r\n          </div>\r\n          <div class=\"form-row\">\r\n            <div class=\"form-group col-md-6\">\r\n              <label for=\"inputCountry\">Country <span class=\"red-dot ml-3\"></span></label>\r\n              <select\r\n                id=\"inputCountry\"\r\n                name=\"inputCountry\"\r\n                class=\"custom-select\"\r\n                :class=\"{ 'is-invalid': errors.has('inputCountry') }\"\r\n                v-model=\"countryId\"\r\n                v-validate=\"'required'\"\r\n                data-vv-as=\"Country\"\r\n                :disabled=\"!isNew\"\r\n                :readonly=\"!isNew\"\r\n                v-on:change=\"filterProvinces\"\r\n              >\r\n                <option\r\n                  v-for=\"country in getCountries\"\r\n                  :key=\"country.id\"\r\n                  :value=\"country.id\"\r\n                >{{ country.name }}</option>\r\n              </select>\r\n              <div class=\"invalid-feedback\">Country is required</div>\r\n            </div>\r\n            <div class=\"form-group col-md-6\">\r\n              <label for=\"inputProvince\">Province/State <span class=\"red-dot ml-3\"></span></label>\r\n              <select\r\n                id=\"inputProvince\"\r\n                name=\"inputProvince\"\r\n                class=\"custom-select\"\r\n                :class=\"{ 'is-invalid': errors.has('inputProvince') }\"\r\n                v-model=\"bid.company.address.provinceId\"\r\n                v-validate=\"'required'\"\r\n                data-vv-as=\"Province\"\r\n                :disabled=\"!isNew\"\r\n                :readonly=\"!isNew\"\r\n              >\r\n                <option\r\n                  v-for=\"province in provinceList\"\r\n                  :key=\"province.id\"\r\n                  :value=\"province.id\"\r\n                >{{ province.name }}</option>\r\n              </select>\r\n              <div class=\"invalid-feedback\">Province/State is required</div>\r\n            </div>\r\n          </div>\r\n          <div class=\"form-row\">\r\n            <div class=\"form-group col-md-6\">\r\n              <label for=\"companyPostalCode\">Postal Code/Zip Code</label>\r\n              <input\r\n                type=\"text\"\r\n                class=\"form-control\"\r\n                id=\"companyPostalCode\"\r\n                name=\"companyPostalCode\"\r\n                placeholder=\"Postal Code\"\r\n                autocomplete=\"off\"\r\n                v-model=\"bid.company.address.postalCode\"\r\n                :disabled=\"!isNew\"\r\n              />\r\n            </div>\r\n          </div>\r\n          <div class=\"form-row mt-2\">\r\n            <div class=\"form-group col-md-6\">\r\n              <label for=\"companyPhone\">Phone</label>\r\n              <input\r\n                type=\"text\"\r\n                class=\"form-control\"\r\n                id=\"companyPhone\"\r\n                name=\"companyPhone\"\r\n                placeholder=\"Phone\"\r\n                autocomplete=\"off\"\r\n                v-model=\"bid.company.phone\"\r\n                :disabled=\"!isNew\"\r\n              />\r\n            </div>\r\n            <div class=\"form-group col-md-6\">\r\n              <label for=\"companyFax\">Fax</label>\r\n              <input\r\n                type=\"text\"\r\n                class=\"form-control\"\r\n                id=\"companyFax\"\r\n                name=\"companyFax\"\r\n                placeholder=\"Fax\"\r\n                autocomplete=\"off\"\r\n                v-model=\"bid.company.fax\"\r\n                :disabled=\"!isNew\"\r\n              />\r\n            </div>\r\n          </div>\r\n        </div>\r\n        <div class=\"form-group\">\r\n          <label for=\"participantType\">\r\n            Type\r\n            <span class=\"red-dot ml-3\"></span>\r\n          </label>\r\n          <select\r\n            class=\"custom-select\"\r\n            :class=\"{ 'is-invalid': errors.has('participantType') }\"\r\n            id=\"participantType\"\r\n            name=\"participantType\"\r\n            v-model=\"bid.participantTypeId\"\r\n            v-validate=\"'required'\"\r\n            data-vv-as=\"Participant Type\"\r\n          >\r\n            <option\r\n              v-for=\"participantType in getParticipantTypes\"\r\n              :key=\"participantType.id\"\r\n              :value=\"participantType.id\"\r\n            >{{ participantType.name }}</option>\r\n          </select>\r\n          <div class=\"invalid-feedback\">The Type field is required</div>\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"submittedAmount\">Submission Value</label>\r\n          <div class=\"input-group mb-2\">\r\n            <input id=\"submittedAmount\" name=\"submittedAmount\" type=\"input\" class=\"form-control\" autocomplete=\"off\" v-model=\"bid.submittedAmount\" />\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"awardedAmount\">Awarded Value</label>\r\n          <div class=\"input-group mb-2\">\r\n            <input id=\"awardedAmount\" name=\"awardedAmount\" type=\"input\" class=\"form-control\" autocomplete=\"off\" v-model=\"bid.awardedAmount\" />\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"form-group form-check\">\r\n          <input type=\"checkbox\" class=\"form-check-input\" id=\"addToFollowerList\" v-model=\"bid.addToFollowerList\"\r\n            :readonly=\"disableAddToFollowerList\" :disabled=\"disableAddToFollowerList\" />\r\n          <label class=\"form-check-label\" for=\"addToFollowerList\">Add to Follower List</label>\r\n          <small class=\"form-text text-muted\">This will become disabled if selected company has no users.</small>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"modal-footer\">\r\n        <button type=\"button\" class=\"btn btn-success\" @click=\"onSubmitSaveAdd\">Save & Add Another</button>\r\n        <button type=\"button\" class=\"btn btn-success\" @click=\"onSubmitSaveClose\">Save & Close</button>\r\n        <button type=\"button\" class=\"btn btn-secondary\" @click=\"closeModal\">Close</button>\r\n      </div>\r\n    </form>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters } from \"vuex\";\r\nimport uuid from \"uuid/v1\";\r\nimport cloneDeep from \"lodash/cloneDeep\";\r\nimport Toast from \"@/utils/toast\";\r\nimport VueBootstrapTypeahead from 'vue-bootstrap-typeahead';\r\nimport { CompanyService } from '@/services/'\r\nimport debounce from \"lodash/debounce\";\r\nimport AddressDisplayMixin from \"@/mixins/addressDisplay\";\r\n\r\nexport default {\r\n  name: \"project-bid\",\r\n  props: {\r\n    offlineCompanies: { type: Array, required: true }\r\n  },\r\n  components: {\r\n    VueBootstrapTypeahead\r\n  },\r\n  mixins: [AddressDisplayMixin],\r\n  data: function() {\r\n    return {\r\n      companies: [],\r\n      query: '',\r\n      isNew: false,\r\n      bid: {\r\n        addToFollowerList: false,\r\n        awardedAmount: null,\r\n        submittedAmount: null,\r\n        companyId: null,\r\n        company: {\r\n          address: {},\r\n          userCount: 0\r\n        },\r\n        participantTypeId: null\r\n      },\r\n      countryId: null,\r\n      provinceList: null\r\n    };\r\n  },\r\n  computed: {\r\n    disableAddToFollowerList () {\r\n      return !this.bid.company.userCount;\r\n    },\r\n    hasCompany () {\r\n      return !!this.bid.company.name;\r\n    },\r\n    ...mapGetters([\"getLookup\", \"getParticipantTypes\", \"getProjectBid\", \"getProvinces\",\"getCountries\"])\r\n  },\r\n  mounted: function() {\r\n    this.setup();\r\n    this.setCountry();\r\n    this.filterProvinces();\r\n  },\r\n  watch: {\r\n    query: debounce(\r\n      async function (newQuery) {\r\n        let companies = await CompanyService.getByTypeahead(decodeURIComponent(newQuery));\r\n        this.companies = companies.data;\r\n      }, 500, false\r\n    )\r\n  },\r\n  methods: {\r\n    setup () {\r\n      this.bid = cloneDeep(this.getProjectBid);\r\n    },\r\n    selectCompany (company) {\r\n      this.isNew = false;\r\n      this.bid.company = company;\r\n      this.bid.addToFollowerList = false;\r\n      this.setCountry();\r\n      this.filterProvinces();\r\n    },\r\n    clearCompany () {\r\n      this.isNew = false;\r\n      this.query = '';\r\n      this.companies = [];\r\n      this.bid.company = { address: {}, userCount: 0 };\r\n      this.$refs.companyLookup.handleInput('');\r\n      this.$refs.companyLookup.$refs.input.disabled = false;\r\n      this.$validator.reset();\r\n    },\r\n    newCompany () {\r\n      this.isNew = true;\r\n      this.query = '';\r\n      this.companies = [];\r\n      this.bid.company = { id: uuid(), address: {}, userCount: 0 };\r\n      this.$refs.companyLookup.handleInput('');\r\n      this.$refs.companyLookup.$refs.input.disabled = true;\r\n      this.$validator.reset();\r\n    },\r\n    async onSubmitSaveAdd () {\r\n      var isFormValid = await this.$validator.validate();\r\n\r\n      if (!isFormValid) {\r\n        return;\r\n      }\r\n\r\n      try {\r\n        await this.submitBid();\r\n\r\n        await this.resetProjectBid()\r\n        this.setup();\r\n        this.clearCompany();\r\n        this.$validator.reset();\r\n      }\r\n      catch {\r\n        Toast.danger(this, 'Oops! An error has occured')\r\n      }\r\n    },\r\n    async onSubmitSaveClose () {\r\n      var isFormValid = await this.$validator.validate();\r\n\r\n      if (!isFormValid) {\r\n        return;\r\n      }\r\n\r\n      try {\r\n        await this.submitBid();\r\n\r\n        this.closeModal();\r\n      }\r\n      catch {\r\n        Toast.danger(this, 'Oops! An error has occured')\r\n      }\r\n    },\r\n    async submitBid () {\r\n      await this.saveProjectBid(cloneDeep(this.bid));\r\n\r\n      let message = this.$createElement('span', {}, ['Successfully updated!', this.$createElement('br'), 'Please remember to save your project.']);\r\n      Toast.success(this, [message]);\r\n    },\r\n    setCountry() {\r\n      let selectedProvince = this.getProvinces.filter((p) =>{ return p.id==this.bid.company.address.provinceId});\r\n      if(selectedProvince.length >0){\r\n        this.countryId = selectedProvince[0].countryId;\r\n      }\r\n      \r\n    },\r\n    filterProvinces() {\r\n      this.provinceList = this.getProvinces.filter((p)=>{return p.countryId == this.countryId});\r\n    },\r\n    closeModal() {\r\n      this.$bvModal.hide(\"bv-modal-project-bid\");\r\n    },\r\n    ...mapActions([\"saveProjectBid\", \"fetchCompany\", \"resetProjectBid\"])\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-bid.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-bid.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-bid.vue?vue&type=template&id=e32972a2&\"\nimport script from \"./project-bid.vue?vue&type=script&lang=js&\"\nexport * from \"./project-bid.vue?vue&type=script&lang=js&\"\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 _c('fragment',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('div',{staticClass:\"modal-header\"},[_c('h5',{staticClass:\"modal-title\",attrs:{\"id\":\"exampleModalLabel\"}},[_vm._v(\"Send Email\")])]),_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"cc\"}},[_vm._v(\"To \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('multiselect',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],class:{ 'is-invalid': _vm.errors.has('to') },attrs:{\"name\":\"to\",\"options\":_vm.records,\"multiple\":true,\"track-by\":\"email\",\"label\":\"name\",\"group-values\":_vm.getGroupValue,\"group-label\":_vm.getGroupLabel,\"group-select\":true,\"data-vv-as\":\"To\"},model:{value:(_vm.email.to),callback:function ($$v) {_vm.$set(_vm.email, \"to\", $$v)},expression:\"email.to\"}}),(_vm.errors.has('to'))?_c('span',{staticClass:\"invalid-feedback\"},[_vm._v(\"The To field is required\")]):_vm._e()],1),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"cc\"}},[_vm._v(\"CC\")]),_c('multiselect',{attrs:{\"name\":\"cc\",\"options\":_vm.records,\"multiple\":true,\"track-by\":\"email\",\"label\":\"name\"},model:{value:(_vm.email.cc),callback:function ($$v) {_vm.$set(_vm.email, \"cc\", $$v)},expression:\"email.cc\"}})],1),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"bcc\"}},[_vm._v(\"BCC\")]),_c('multiselect',{attrs:{\"name\":\"bcc\",\"options\":_vm.records,\"multiple\":true,\"track-by\":\"email\",\"label\":\"name\"},model:{value:(_vm.email.bcc),callback:function ($$v) {_vm.$set(_vm.email, \"bcc\", $$v)},expression:\"email.bcc\"}})],1),(_vm.enableIncludeMe)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"custom-control custom-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.email.includeMe),expression:\"email.includeMe\"}],staticClass:\"custom-control-input\",attrs:{\"id\":\"includeMe\",\"name\":\"includeMe\",\"type\":\"checkbox\"},domProps:{\"value\":true,\"checked\":Array.isArray(_vm.email.includeMe)?_vm._i(_vm.email.includeMe,true)>-1:(_vm.email.includeMe)},on:{\"change\":function($event){var $$a=_vm.email.includeMe,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=true,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.email, \"includeMe\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.email, \"includeMe\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.email, \"includeMe\", $$c)}}}}),_c('label',{staticClass:\"custom-control-label\",attrs:{\"for\":\"includeMe\"}},[_vm._v(\"Send me a copy of this email\")])])]):_vm._e(),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"subject\"}},[_vm._v(\" Subject \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.email.subject),expression:\"email.subject\"}],staticClass:\"form-control\",class:{ 'is-invalid': _vm.errors.has('subject') },attrs:{\"type\":\"text\",\"id\":\"subject\",\"name\":\"subject\",\"autocomplete\":\"off\",\"data-vv-as\":\"Subject\"},domProps:{\"value\":(_vm.email.subject)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.email, \"subject\", $event.target.value)}}}),(_vm.errors.has('subject'))?_c('span',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Subject field is required\")]):_vm._e()]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"body\"}},[_vm._v(\" Body \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('app-editor',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"w-100\",class:{ 'is-invalid': _vm.errors.has('body') },attrs:{\"id\":\"body\",\"name\":\"body\",\"data-vv-as\":\"Body\"},model:{value:(_vm.email.body),callback:function ($$v) {_vm.$set(_vm.email, \"body\", $$v)},expression:\"email.body\"}}),(_vm.errors.has('body'))?_c('span',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Body field is required\")]):_vm._e()],1)]),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-primary ld-ext-right\",class:{ 'running' : _vm.isSaving },attrs:{\"type\":\"submit\",\"disabled\":_vm.isSaving}},[(!_vm.isSaving)?_c('span',[_vm._v(\" Send Email \")]):_c('span',[_vm._v(\" Sending \")]),_c('div',{staticClass:\"ld ld-ring ld-spin\"})]),_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.closeModal}},[_vm._v(\"Close\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <fragment>\r\n    <form v-on:submit.prevent=\"onSubmit\">\r\n      <div class=\"modal-header\">\r\n        <h5 class=\"modal-title\" id=\"exampleModalLabel\">Send Email</h5>\r\n      </div>\r\n\r\n      <div class=\"modal-body\">\r\n        <div class=\"form-group\">\r\n          <label for=\"cc\">To <span class=\"red-dot ml-3\"></span></label>\r\n          <multiselect\r\n            name=\"to\"\r\n            v-model=\"email.to\"\r\n            :options=\"records\"\r\n            :multiple=\"true\"\r\n            track-by=\"email\"\r\n            label=\"name\"\r\n            :group-values=\"getGroupValue\"\r\n            :group-label=\"getGroupLabel\"\r\n            :group-select=\"true\"\r\n            v-validate=\"'required'\"\r\n            :class=\"{ 'is-invalid': errors.has('to') }\"\r\n            data-vv-as=\"To\"\r\n          ></multiselect>\r\n          <span class=\"invalid-feedback\" v-if=\"errors.has('to')\">The To field is required</span>\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"cc\">CC</label>\r\n          <multiselect\r\n            name=\"cc\"\r\n            v-model=\"email.cc\"\r\n            :options=\"records\"\r\n            :multiple=\"true\"\r\n            track-by=\"email\"\r\n            label=\"name\"\r\n          ></multiselect>\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"bcc\">BCC</label>\r\n          <multiselect\r\n            name=\"bcc\"\r\n            v-model=\"email.bcc\"\r\n            :options=\"records\"\r\n            :multiple=\"true\"\r\n            track-by=\"email\"\r\n            label=\"name\"\r\n          ></multiselect>\r\n        </div>\r\n\r\n        <div class=\"form-group\" v-if=\"enableIncludeMe\">\r\n          <div class=\"custom-control custom-checkbox\">\r\n            <input id=\"includeMe\" name=\"includeMe\" type=\"checkbox\" class=\"custom-control-input\" :value=\"true\" v-model=\"email.includeMe\">\r\n            <label class=\"custom-control-label\" for=\"includeMe\">Send me a copy of this email</label>\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"subject\">\r\n            Subject\r\n            <span class=\"red-dot ml-3\"></span>\r\n          </label>\r\n          <input\r\n            type=\"text\"\r\n            class=\"form-control\"\r\n            :class=\"{ 'is-invalid': errors.has('subject') }\"\r\n            id=\"subject\"\r\n            name=\"subject\"\r\n            autocomplete=\"off\"\r\n            v-validate=\"'required'\"\r\n            v-model=\"email.subject\"\r\n            data-vv-as=\"Subject\"\r\n          />\r\n          <span class=\"invalid-feedback\" v-if=\"errors.has('subject')\">The Subject field is required</span>\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"body\">\r\n            Body\r\n            <span class=\"red-dot ml-3\"></span>\r\n          </label>\r\n          <app-editor\r\n            id=\"body\"\r\n            name=\"body\"\r\n            class=\"w-100\"\r\n            :class=\"{ 'is-invalid': errors.has('body') }\"\r\n            v-model=\"email.body\"\r\n            v-validate=\"'required'\"\r\n            data-vv-as=\"Body\"\r\n          ></app-editor>\r\n          <span class=\"invalid-feedback\" v-if=\"errors.has('body')\">The Body field is required</span>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"modal-footer\">\r\n        <button type=\"submit\" class=\"btn btn-primary ld-ext-right\" :class=\"{ 'running' : isSaving }\" :disabled=\"isSaving\">\r\n          <span v-if=\"!isSaving\"> Send Email </span>\r\n          <span v-else> Sending </span>\r\n          <div class=\"ld ld-ring ld-spin\"></div>\r\n        </button>\r\n        <button type=\"button\" class=\"btn btn-secondary\" @click=\"closeModal\">Close</button>\r\n      </div>\r\n    </form>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport Toast from \"@/utils/toast\";\r\nimport { EmailService } from \"@/services/\";\r\n\r\nexport default {\r\n  name: \"app-send-email\",\r\n  components: { AppEditor: () => import(\"@/components/app-editor\") },\r\n  props: {\r\n    records: { type: Array, default: () => [] },\r\n    targetModal: { type: String, required: true },\r\n    isGrouped: { type: Boolean, default: () => false },\r\n    groupValue: { type: String, default: () => 'users' },\r\n    groupLabel: { type: String, default: () => 'name' },\r\n    autoSelect: { type: Boolean, default: () => false },\r\n    enableIncludeMe: { type: Boolean, default: () => false },\r\n    subject: { type: String },\r\n    body: { type: String },\r\n  },\r\n  data: function() {\r\n    return {\r\n      email: {\r\n        to: [],\r\n        cc: [],\r\n        bcc: [],\r\n        includeMe: false,\r\n        subject: null,\r\n        body: null\r\n      },\r\n      isSaving: false\r\n    };\r\n  },\r\n  computed: {\r\n    getGroupValue () { return this.isGrouped ? this.groupValue : '' },\r\n    getGroupLabel () { return this.isGrouped ? this.groupLabel : '' },\r\n  },\r\n  methods: {\r\n    closeModal() {\r\n      if (this.targetModal) this.$bvModal.hide(this.targetModal);\r\n    },\r\n    async onSubmit() {\r\n      this.isSaving = true;\r\n      var isFormValid = await this.$validator.validate();\r\n\r\n      if (!isFormValid) {\r\n        this.isSaving = false;\r\n        return;\r\n      }\r\n\r\n      let model = {\r\n        to: this.email.to.map(p => p.email),\r\n        cc: this.email.cc.map(p => p.email),\r\n        bcc: this.email.bcc.map(p => p.email),\r\n        includeMe: this.email.includeMe,\r\n        subject: this.email.subject,\r\n        body: this.email.body\r\n      };\r\n\r\n      EmailService.sendIndividual(model)\r\n        .then(() => {\r\n          Toast.success(this, \"Successfully sent!\");\r\n          this.closeModal();\r\n        })\r\n        .catch(() => {\r\n          Toast.danger(this, \"Oops! An error has occured.\");\r\n        });\r\n    }\r\n  },\r\n  created () {\r\n    if (this.autoSelect) this.email.to = this.records;\r\n    if (this.subject) this.email.subject = this.subject;\r\n    if (this.body) this.email.body = this.body;\r\n  },\r\n};\r\n</script>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app-send-email.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./app-send-email.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./app-send-email.vue?vue&type=template&id=e21b4bd4&\"\nimport script from \"./app-send-email.vue?vue&type=script&lang=js&\"\nexport * from \"./app-send-email.vue?vue&type=script&lang=js&\"\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","<template>\r\n  <fragment>\r\n    <fieldset>\r\n      <legend>Bidders</legend>\r\n      <div id=\"project-bidder-list\">\r\n        <div class=\"alert alert-warning\" role=\"alert\" v-if=\"getProjectBids.length === 0\">\r\n          No project bids available\r\n        </div>\r\n        <div v-if=\"getProjectBids.length > 0\">\r\n          <div\r\n            class=\"card mb-3\"\r\n            v-for=\"(bids, participantTypeId) in groupedBids\"\r\n            :key=\"participantTypeId\"\r\n          >\r\n            <div class=\"card-body\">\r\n              <h5 class=\"card-title\">{{ getParticipantTypeDisplay(participantTypeId) }}</h5>\r\n              <table class=\"table\">\r\n                <thead>\r\n                  <tr>\r\n                    <th scope=\"col\" style=\"width: 50%\">Company</th>\r\n                    <th scope=\"col\">Submission</th>\r\n                    <th scope=\"col\">Awarded</th>\r\n                    <th scope=\"col\" style=\"width: 100px\">&nbsp;</th>\r\n                    <th scope=\"col\" style=\"width: 100px\">&nbsp;</th>\r\n                  </tr>\r\n                </thead>\r\n                <tbody>\r\n                  <tr v-for=\"bid in sortBidsByCompanyName(bids)\" :key=\"bid.id\">\r\n                    <td v-if=\"canVisitCompanyInfo\">\r\n                      <router-link :to=\"'/company/edit/' + bid.company.id\" class=\"btn btn-link btn-sm\" role=\"button\" :aria-label=\"'Visit ' + bid.company.name\">\r\n                        {{ bid.company.name }}\r\n                      </router-link>\r\n                    </td>\r\n                    <td v-if=\"!canVisitCompanyInfo\">\r\n                      {{ bid.company.name }}\r\n                    </td>\r\n                    <td>{{ bid.submittedAmount || '---' }}</td>\r\n                    <td>{{ bid.awardedAmount || '---' }}</td>\r\n                    <td>\r\n                      <a\r\n                        role=\"button\"\r\n                        href=\"#\"\r\n                        class=\"d-flex justify-content-between align-items-center flex-column\"\r\n                        title=\"Manage\"\r\n                        @click.prevent=\"editProjectBid(bid.id)\"\r\n                      >\r\n                        <img class=\"mb-1\" src=\"@/assets/document.svg\" alt />\r\n                        <span class=\"small-grey\">Manage</span>\r\n                      </a>\r\n                    </td>\r\n                    <td>\r\n                      <a\r\n                        role=\"button\"\r\n                        href=\"#\"\r\n                        class=\"d-flex justify-content-between align-items-center flex-column\"\r\n                        title=\"Manage\"\r\n                        @click.prevent=\"deleteProjectBid(bid.id)\"\r\n                      >\r\n                        <img class=\"mb-1\" src=\"@/assets/document.svg\" alt />\r\n                        <span class=\"small-grey\">Remove</span>\r\n                      </a>\r\n                    </td>\r\n                  </tr>\r\n                </tbody>\r\n              </table>\r\n            </div>\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"row mb-3\">\r\n          <div class=\"col-md-12 text-right\">\r\n            <button type=\"button\" class=\"btn btn-primary\" @click=\"newProjectBidder\">\r\n              <i class=\"fas fa-plus\"></i>\r\n              Add New Project Bid\r\n            </button>\r\n            <button type=\"button\" class=\"btn btn-success\" v-if=\"$permissions().isClientAdmin || $permissions().isSysAdmin\" @click=\"emailBidders\">\r\n              <i class=\"fas fa-envelope\"></i>\r\n              Email Bidders\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </fieldset>\r\n    <b-modal\r\n      id=\"bv-modal-project-bid\"\r\n      size=\"lg\"\r\n      hide-header\r\n      hide-footer\r\n      :no-close-on-backdrop=\"true\"\r\n    >\r\n      <project-bid @new-company=\"addNewCompany\" :offline-companies=\"offlineCompanies\"></project-bid>\r\n    </b-modal>\r\n    <b-modal\r\n      id=\"bv-modal-email-bidders\"\r\n      size=\"lg\"\r\n      hide-header\r\n      hide-footer\r\n      :no-close-on-backdrop=\"true\"\r\n    >\r\n      <app-send-email\r\n        target-modal=\"bv-modal-email-bidders\"\r\n        :records=\"bidderEmailAddresses\"\r\n        :isGrouped=\"true\"\r\n      ></app-send-email>\r\n    </b-modal>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters } from \"vuex\";\r\nimport Toast from \"@/utils/toast\";\r\nimport MessageBox from \"@/utils/messagebox\";\r\nimport ProjectBid from \"@/views/project/components/project-bid.vue\";\r\nimport AppSendEmail from \"@/components/modals/app-send-email.vue\";\r\nimport groupBy from \"lodash/groupBy\";\r\nimport sortBy from \"lodash/sortBy\";\r\n\r\nimport { CompanyService } from \"@/services/\";\r\n\r\nexport default {\r\n  name: \"project-bidders\",\r\n  components: { AppSendEmail, ProjectBid },\r\n  data: function() {\r\n    return {\r\n      bidderEmailAddresses: [],\r\n      offlineCompanies: []\r\n    };\r\n  },\r\n  computed: {\r\n    canVisitCompanyInfo () {\r\n      return this.$permissions().isClientAdmin || this.$permissions().isSysAdmin;\r\n    },\r\n    groupedBids() {      \r\n      return groupBy(this.getProjectBids, \"participantTypeId\");\r\n    },\r\n    ...mapGetters([\"getCompanies\", \"getParticipantTypes\", \"getProjectBids\"])\r\n  },\r\n  methods: {\r\n    addNewCompany(company) {\r\n      let _company = this.offlineCompanies.find(i => i.id === company.id);\r\n\r\n      if (!_company) {\r\n        this.offlineCompanies.push(company);\r\n      }\r\n    },\r\n    async deleteProjectBid(id) {\r\n      let confirm = await MessageBox.confirm(this, \"Remove Bid\", \"Are you sure you want to remove bid?\");\r\n\r\n      if (confirm) {\r\n        this.removeProjectBid(id).then(() => {\r\n          Toast.success(this, \"Successfully removed bid!\");\r\n        });\r\n      }\r\n    },\r\n    editProjectBid(id) {\r\n      this.fetchProjectBid(id).then(() => {\r\n        this.$bvModal.show(\"bv-modal-project-bid\");\r\n      });\r\n    },\r\n    async emailBidders() {\r\n      let bidderIds = this.getProjectBids.map(bidder => bidder.company.id);\r\n      let emails = await CompanyService.getUserEmails(bidderIds);\r\n\r\n      this.bidderEmailAddresses = emails.data\r\n        .filter(company => company.email || company.users.length)\r\n        .map(company => {\r\n          let mapUser = user => ({\r\n            name: `${user.firstName} ${user.lastName}`,\r\n            email: user.email\r\n          });\r\n          let mapCompany = company => {\r\n            return { name: company.name, email: company.email };\r\n          };\r\n\r\n          let users = [];\r\n          if (company.email) users.push({ ...mapCompany(company) });\r\n          if (company.users.length) users.push(...company.users.map(mapUser));\r\n\r\n          return { ...mapCompany(company), users: users };\r\n        });\r\n\r\n      this.$bvModal.show(\"bv-modal-email-bidders\");\r\n    },\r\n    getParticipantTypeDisplay(id) {\r\n      let selectedType = this.getParticipantTypes.find(p => p.id === id);\r\n      return selectedType ? selectedType.name : \"N/A\";\r\n    },\r\n    newProjectBidder() {\r\n      this.resetProjectBid().then(() => {\r\n        this.$bvModal.show(\"bv-modal-project-bid\");\r\n      });\r\n    },\r\n     sortBidsByCompanyName(bids) {\r\n     return sortBy(bids, b => b.company.name.toLowerCase());\r\n    },\r\n    ...mapActions([\"fetchProjectBid\", \"removeProjectBid\", \"resetProjectBid\"])\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-bidders.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-bidders.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-bidders.vue?vue&type=template&id=19c47aa6&\"\nimport script from \"./project-bidders.vue?vue&type=script&lang=js&\"\nexport * from \"./project-bidders.vue?vue&type=script&lang=js&\"\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","<template>\r\n  <fragment>\r\n    <div class=\"row\">\r\n      <div class=\"col-md-12\">\r\n        <div class=\"row form-title d-flex align-items-center mb-4\">\r\n          <span class=\"rounded-circle bg-primary mr-2 d-flex justify-content-center align-items-center text-white\">4</span>\r\n          <h2 class=\"m-0\">Project Contacts</h2>\r\n        </div>\r\n\r\n        <project-owners :project.sync=\"project\"></project-owners>\r\n        <hr />\r\n        <project-contacts></project-contacts>\r\n        <hr />\r\n        <project-bidders></project-bidders>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"externalPlanHolders\">External Plan Holders</label>\r\n\r\n          <textarea id=\"externalPlanHolders\" name=\"externalPlanHolders\" class=\"form-control\" placeholder=\"Enter additional external plan holders\"\r\n            rows=\"10\" v-model=\"project.externalPlanHolders\"></textarea>\r\n        </div>\r\n\r\n      </div>\r\n      <div class=\"col-md d-none d-lg-block\"></div>\r\n    </div>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport ProjectOwners from \"@/views/project/components/project-owners.vue\";\r\nimport ProjectContacts from \"@/views/project/components/project-contacts.vue\";\r\nimport ProjectBidders from \"@/views/project/components/project-bidders.vue\";\r\n\r\nexport default {\r\n  name: \"project-step-contacts\",\r\n  components: { ProjectOwners, ProjectContacts, ProjectBidders },\r\n  inject: [\"$validator\"],\r\n  props: [\"project\"]\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-step-contacts.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-step-contacts.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-step-contacts.vue?vue&type=template&id=308d3a9d&\"\nimport script from \"./project-step-contacts.vue?vue&type=script&lang=js&\"\nexport * from \"./project-step-contacts.vue?vue&type=script&lang=js&\"\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 _c('fragment',[_c('div',{staticClass:\"row\"},[_c('loading',{attrs:{\"active\":_vm.isDownloading,\"is-full-page\":\"\",\"zIndex\":2147483639},on:{\"update:active\":function($event){_vm.isDownloading=$event}}}),_c('div',{staticClass:\"col-md-12\"},[_c('div',{staticClass:\"row form-title d-flex align-items-center mb-4\"},[_c('span',{staticClass:\"rounded-circle bg-primary mr-2 d-flex justify-content-center align-items-center text-white\"},[_vm._v(\" 5 \")]),_c('h2',{staticClass:\"m-0\"},[_vm._v(\"Documents\")])]),_c('div',{attrs:{\"id\":\"documentsContainer\"}},[_c('div',{staticClass:\"row col-md-12\",attrs:{\"id\":\"documentContentArea\"}},[_c('div',{staticClass:\"k-content col-md-12\"},[_c('label',{staticClass:\"font-weight-bold\"},[_vm._v(\"Path:\")]),(_vm.getCurrentFolderInformation)?_c('span',[_vm._v(_vm._s(_vm.getCurrentFolderInformation.folder))]):_vm._e()]),_c('div',{staticClass:\"row col-md-12 mt-2\"},[_c('table',{staticClass:\"table\",attrs:{\"id\":\"tblFiles\"}},[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-center\",attrs:{\"scope\":\"col\"}}),_c('th',{staticClass:\"text-left\",attrs:{\"scope\":\"col\"}},[_vm._v(\"File Name\")]),_c('th',{staticClass:\"text-left\",attrs:{\"scope\":\"col\"}},[_vm._v(\"Uploaded By\")]),_c('th',{staticClass:\"text-left\",attrs:{\"scope\":\"col\"}},[_vm._v(\"Uploaded On\")]),_c('th',{staticClass:\"text-left\",attrs:{\"scope\":\"col\"}},[_vm._v(\"Type\")]),_c('th',{staticClass:\"text-center\",attrs:{\"scope\":\"col\",\"colspan\":\"2\"}},[_vm._v(\"Actions\")])])]),(_vm.getCurrentFolderInformation)?_c('tbody',[(_vm.getCurrentFolderInformation.parentId)?_c('tr',[_c('td',{staticClass:\"text-center\"}),_c('td',{staticClass:\"text-left\"},[_c('i',{staticClass:\"fas fa-level-up-alt\",attrs:{\"title\":\"Up One Level\",\"aria-hidden\":\"true\"}}),_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Up One Level\")]),_c('a',{staticClass:\"a-open-folder\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.changeCurrentFolder(_vm.getCurrentFolderInformation.parentId)}}},[_vm._v(\".. Up One Folder\")])]),_c('td'),_c('td'),_c('td',{staticClass:\"text-left\"},[_vm._v(\"Parent\")]),_c('td',{staticClass:\"text-center\"})]):_vm._e(),_vm._l((_vm.getCurrentFolderInformation.folders),function(folder){return _c('tr',{key:folder.id},[_c('td',{staticClass:\"text-center\"},[_c('input',{staticClass:\"checkbox-file\",attrs:{\"type\":\"checkbox\"},domProps:{\"value\":folder.id,\"checked\":!!_vm.selectedFolders.find(function (i) { return i === folder.id; })},on:{\"change\":function($event){return _vm.onSelectedFolder($event.target.value)}}})]),_c('td',{staticClass:\"text-left\"},[_c('i',{staticClass:\"fas fa-folder mr-1\",attrs:{\"title\":\"Folder\",\"aria-hidden\":\"true\"}}),_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Folder\")]),_c('a',{staticClass:\"a-open-folder\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.changeCurrentFolder(folder.id)}}},[_vm._v(_vm._s(folder.name))])]),_c('td',[_vm._v(_vm._s(folder.createdBy))]),_c('td',[_vm._v(_vm._s(_vm._f(\"datetime\")(folder.createdOn)))]),_c('td',{staticClass:\"text-left\"},[_vm._v(\"Folder\")]),_c('td',{staticClass:\"text-center\",staticStyle:{\"width\":\"30px\"}},[_c('span',{staticClass:\"folder-edit\",on:{\"click\":function($event){return _vm.updateFolder(folder.id)}}},[_c('i',{staticClass:\"fa fa-edit fa-lg\",attrs:{\"title\":\"Rename\",\"aria-hidden\":\"true\"}}),_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Rename\")])])]),_c('td',{staticClass:\"text-center\",staticStyle:{\"width\":\"30px\"}},[_c('span',{staticClass:\"folder-delete\",on:{\"click\":function($event){return _vm.deleteFolder(folder.id)}}},[_c('i',{staticClass:\"fas fa-trash-alt fa-lg\",attrs:{\"title\":\"Delete\",\"aria-hidden\":\"true\"}}),_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Delete Folder\")])])])])}),_vm._l((_vm.getCurrentFolderInformation.files),function(file){return _c('tr',{key:file.id},[_c('td',{staticClass:\"text-center\"},[_c('input',{staticClass:\"checkbox-file\",attrs:{\"type\":\"checkbox\"},domProps:{\"value\":file.id,\"checked\":!!_vm.selectedFileIds.find(function (i) { return i === file.id; })},on:{\"change\":function($event){return _vm.onSelectRecord($event.target.value)}}})]),_c('td',{staticClass:\"text-left\"},[_c('i',{staticClass:\"fa fa-file\",attrs:{\"title\":\"File\",\"aria-hidden\":\"true\"}}),_c('span',{staticClass:\"sr-only\"},[_vm._v(\"File\")]),_vm._v(\" \"+_vm._s(file.displayName)+\" \")]),_c('td',[_vm._v(_vm._s(file.createdBy))]),_c('td',[_vm._v(_vm._s(_vm._f(\"datetime\")(file.createdOn)))]),_c('td',{staticClass:\"text-left\"},[_vm._v(_vm._s(file.extension))]),_c('td',{staticClass:\"text-center\",staticStyle:{\"width\":\"30px\"}},[_c('span',{staticClass:\"file-download\",on:{\"click\":function($event){return _vm.downloadFile(file.id, file.fileName)}}},[_c('i',{staticClass:\"fas fa-file-download fa-lg\",attrs:{\"title\":\"Download\",\"aria-hidden\":\"true\"}}),_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Download\")])])]),_c('td',{staticClass:\"text-center\",staticStyle:{\"width\":\"30px\"}},[_c('span',{staticClass:\"file-delete\",on:{\"click\":function($event){return _vm.deleteFile(file.id)}}},[_c('i',{staticClass:\"fas fa-trash-alt fa-lg\",attrs:{\"title\":\"Delete\",\"aria-hidden\":\"true\"}}),_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Delete\")])])])])})],2):_vm._e()])]),_c('div',{staticClass:\"row col-md-12\"},[_c('div',{staticClass:\"col-md-6\"}),_c('div',{staticClass:\"col-md-6 text-right\"},[_c('button',{staticClass:\"btn btn-primary mx-1\",attrs:{\"id\":\"btnUploadFiles\",\"type\":\"button\"},on:{\"click\":_vm.openUploadModal}},[_vm._v(\"Upload\")]),_c('button',{staticClass:\"btn btn-success mx-1\",attrs:{\"id\":\"btnAddFolder\",\"type\":\"button\"},on:{\"click\":_vm.newFolder}},[_vm._v(\"Create Folder\")]),_c('button',{class:['btn btn-info mx-1', { 'disabled' : !_vm.selectedFileIds.length }],attrs:{\"id\":\"btnMoveFiles\",\"type\":\"button\",\"disabled\":!_vm.selectedFileIds.length},on:{\"click\":_vm.openMoveFilesModal}},[_vm._v(\"Move\")]),_c('button',{class:['btn btn-danger mx-1', { 'disabled' : !(_vm.selectedFileIds.length || _vm.selectedFolders.length) }],attrs:{\"id\":\"btnDeleteFiles\",\"type\":\"button\",\"disabled\":!(_vm.selectedFileIds.length || _vm.selectedFolders.length)},on:{\"click\":_vm.deleteSelectedFoldersFiles}},[_vm._v(\"Delete\")])])])])])]),_c('div',{staticClass:\"col-md d-none d-lg-block\"})],1),_c('b-modal',{attrs:{\"id\":\"bv-modal-project-documents-upload\",\"size\":\"xl\",\"hide-header\":\"\",\"hide-footer\":\"\",\"no-close-on-backdrop\":true}},[_c('project-documents-upload',{attrs:{\"projectId\":_vm.project.id,\"currentFolderId\":_vm.currentFolderId},on:{\"file-uploaded\":_vm.getRootFolderData}})],1),_c('b-modal',{attrs:{\"id\":\"bv-modal-project-documents-folder-management\",\"hide-header\":\"\",\"hide-footer\":\"\",\"no-close-on-backdrop\":true}},[_c('project-documents-folder-management',{attrs:{\"parentFolderId\":_vm.currentFolderId,\"selectedFolderId\":_vm.folderManagementParams.selectedFolderId,\"isNew\":_vm.folderManagementParams.isNew,\"isEdit\":_vm.folderManagementParams.isEdit},on:{\"folder-created\":_vm.getRootFolderData}})],1),_c('b-modal',{attrs:{\"id\":\"bv-modal-project-documents-move-files\",\"hide-header\":\"\",\"hide-footer\":\"\",\"no-close-on-backdrop\":true}},[_c('project-documents-move-files',{attrs:{\"selectedFileIds\":_vm.selectedFileIds,\"folderStructure\":_vm.rootFolder},on:{\"file-uploaded\":_vm.onFileUploadedProjectMove}})],1)],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('fragment',[_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"upload-container\"},[_c('div',{staticClass:\"upload\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$refs.upload && _vm.$refs.upload.dropActive),expression:\"$refs.upload && $refs.upload.dropActive\"}],staticClass:\"drop-active\"},[_c('h3',[_vm._v(\"Drop files to upload\")])]),(!_vm.files.length)?_c('div',{staticClass:\"text-center p-5\"},[_c('h3',[_vm._v(\" Drop Files Anywhere To Upload \")]),_vm._v(\" \"),_c('br'),_c('i',{staticClass:\"fas fa-cloud-upload-alt fa-5x\"})]):_c('table',{staticClass:\"table table-hover\"},[_c('thead',[_c('tr',[_c('th',[_vm._v(\"#\")]),_c('th',[_vm._v(\"Name\")]),_c('th',[_vm._v(\"Size\")]),_c('th',[_vm._v(\"Speed\")]),_c('th',[_vm._v(\"Status\")]),_c('th',[_vm._v(\"Action\")])])]),_c('tbody',_vm._l((_vm.files),function(file,index){return _c('tr',{key:file.id},[_c('td',[_vm._v(_vm._s(index))]),_c('td',[_c('div',{staticClass:\"filename\"},[_vm._v(_vm._s(file.name))]),(file.active || file.progress !== '0.00')?_c('div',{staticClass:\"progress\"},[_c('div',{class:{'progress-bar': true, 'progress-bar-striped': true, 'bg-danger': file.error, 'progress-bar-animated': file.active},style:({width: file.progress + '%'}),attrs:{\"role\":\"progressbar\"}},[_vm._v(_vm._s(file.progress)+\"%\")])]):_vm._e()]),_c('td',[_vm._v(_vm._s(file.size))]),_c('td',[_vm._v(_vm._s(file.speed))]),(file.error)?_c('td',[_vm._v(_vm._s(file.error))]):(file.success)?_c('td',[_vm._v(\"success\")]):(file.active)?_c('td',[_vm._v(\"active\")]):_c('td'),_c('td',[_c('div',{staticClass:\"btn-group\"},[_c('button',{staticClass:\"btn btn-secondary btn-sm dropdown-toggle\",attrs:{\"type\":\"button\"}},[_vm._v(\"Action\")]),_c('div',{staticClass:\"dropdown-menu dropdown-menu-right\"},[_c('a',{class:{'dropdown-item': true, disabled: !file.active},attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();file.active ? _vm.$refs.upload.update(file, {error: 'cancel'}) : false}}},[_vm._v(\"Cancel\")]),(file.active)?_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.$refs.upload.update(file, {active: false})}}},[_vm._v(\"Abort\")]):(file.error && file.error !== 'compressing' && _vm.$refs.upload.features.html5)?_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.$refs.upload.update(file, {active: true, error: '', progress: '0.00'})}}},[_vm._v(\"Retry upload\")]):_c('a',{class:{'dropdown-item': true, disabled: file.success || file.error === 'compressing'},attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();file.success || file.error === 'compressing' ? false : _vm.$refs.upload.update(file, {active: true})}}},[_vm._v(\"Upload\")]),_c('div',{staticClass:\"dropdown-divider\"}),_c('a',{class:{ 'dropdown-item': true, disabled: file.success },attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.$refs.upload.remove(file)}}},[_vm._v(\"Remove\")])])])])])}),0)]),_c('div',[_c('div',{staticClass:\"btn-group\"},[_c('file-upload',{ref:\"upload\",staticClass:\"btn btn-primary dropdown-toggle\",attrs:{\"post-action\":_vm.postAction,\"chunk-enabled\":true,\"chunk\":{\n                action: _vm.chunkAction,\n                minSize: 1024 * 1024 * 10,\n                maxActive: 1,\n                maxRetries: 5,\n                headers: _vm.getUploadHeaders(),\n                startBody: _vm.projectUploadParams\n              },\"extensions\":_vm.getAllowedExtensions,\"accept\":_vm.getAllowedFileTypes,\"multiple\":_vm.multiple,\"directory\":_vm.directory,\"size\":1024 * 1024 * 500,\"headers\":_vm.getUploadHeaders(),\"data\":_vm.projectUploadParams,\"drop\":'.drop-active',\"drop-directory\":true},model:{value:(_vm.files),callback:function ($$v) {_vm.files=$$v},expression:\"files\"}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\" Select \")]),_c('div',{staticClass:\"dropdown-menu\"},[_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onAddFile($event)}}},[_vm._v(\"Add Files\")]),_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onAddFolder($event)}}},[_vm._v(\"Add folder\")])])],1),(!_vm.$refs.upload || !_vm.$refs.upload.active)?_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"button\",\"disabled\":!_vm.files || !_vm.files.length},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = true}}},[_c('i',{staticClass:\"fa fa-arrow-up\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" Start Upload \")]):_c('button',{staticClass:\"btn btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = false}}},[_c('i',{staticClass:\"fa fa-stop\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" Stop Upload \")])]),_c('small',[_vm._v(\"Allowed File Types: \"+_vm._s(_vm.getAllowedExtensions))])])])]),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.closeModal}},[_vm._v(\"Close\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <fragment>\r\n    <div class=\"modal-body\">\r\n      <div class=\"upload-container\">\r\n        <div class=\"upload\">\r\n          <div v-show=\"$refs.upload && $refs.upload.dropActive\" class=\"drop-active\">\r\n            <h3>Drop files to upload</h3>\r\n          </div>\r\n          <div class=\"text-center p-5\" v-if=\"!files.length\">\r\n            <h3> Drop Files Anywhere To Upload </h3> <br />\r\n            <i class=\"fas fa-cloud-upload-alt fa-5x\"></i>\r\n          </div>\r\n            <table class=\"table table-hover\" v-else>\r\n              <thead>\r\n                <tr>\r\n                  <th>#</th>\r\n                  <th>Name</th>\r\n                  <th>Size</th>\r\n                  <th>Speed</th>\r\n                  <th>Status</th>\r\n                  <th>Action</th>\r\n                </tr>\r\n              </thead>\r\n              <tbody>\r\n                <tr v-for=\"(file, index) in files\" :key=\"file.id\">\r\n                  <td>{{index}}</td>\r\n                  <td>\r\n                    <div class=\"filename\">{{file.name}}</div>\r\n                    <div class=\"progress\" v-if=\"file.active || file.progress !== '0.00'\">\r\n                      <div\r\n                        :class=\"{'progress-bar': true, 'progress-bar-striped': true, 'bg-danger': file.error, 'progress-bar-animated': file.active}\"\r\n                        role=\"progressbar\"\r\n                        :style=\"{width: file.progress + '%'}\"\r\n                      >{{file.progress}}%</div>\r\n                    </div>\r\n                  </td>\r\n                  <td>{{file.size }}</td>\r\n                  <td>{{file.speed }}</td>\r\n                  <td v-if=\"file.error\">{{ file.error }}</td>\r\n                  <td v-else-if=\"file.success\">success</td>\r\n                  <td v-else-if=\"file.active\">active</td>\r\n                  <td v-else>&nbsp;</td>\r\n                  <td>\r\n                    <div class=\"btn-group\">\r\n                      <button class=\"btn btn-secondary btn-sm dropdown-toggle\" type=\"button\">Action</button>\r\n                      <div class=\"dropdown-menu dropdown-menu-right\">\r\n                        <a :class=\"{'dropdown-item': true, disabled: !file.active}\" href=\"#\"\r\n                          @click.prevent=\"file.active ? $refs.upload.update(file, {error: 'cancel'}) : false\">Cancel</a>\r\n                        <a class=\"dropdown-item\" href=\"#\" v-if=\"file.active\"\r\n                          @click.prevent=\"$refs.upload.update(file, {active: false})\">Abort</a>\r\n                        <a class=\"dropdown-item\" href=\"#\" v-else-if=\"file.error && file.error !== 'compressing' && $refs.upload.features.html5\"\r\n                          @click.prevent=\"$refs.upload.update(file, {active: true, error: '', progress: '0.00'})\">Retry upload</a>\r\n                        <a :class=\"{'dropdown-item': true, disabled: file.success || file.error === 'compressing'}\" href=\"#\"\r\n                          v-else @click.prevent=\"file.success || file.error === 'compressing' ? false : $refs.upload.update(file, {active: true})\">Upload</a>\r\n                        <div class=\"dropdown-divider\"></div>\r\n                        <a :class=\"{ 'dropdown-item': true, disabled: file.success }\" href=\"#\" @click.prevent=\"$refs.upload.remove(file)\">Remove</a>\r\n                      </div>\r\n                    </div>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n          <div>\r\n            <div class=\"btn-group\">\r\n              <file-upload\r\n                class=\"btn btn-primary dropdown-toggle\"\r\n                :post-action=\"postAction\"\r\n                :chunk-enabled=\"true\"\r\n                :chunk=\"{\r\n                  action: chunkAction,\r\n                  minSize: 1024 * 1024 * 10,\r\n                  maxActive: 1,\r\n                  maxRetries: 5,\r\n                  headers: getUploadHeaders(),\r\n                  startBody: projectUploadParams\r\n                }\"\r\n                :extensions=\"getAllowedExtensions\"\r\n                :accept=\"getAllowedFileTypes\"\r\n                :multiple=\"multiple\"\r\n                :directory=\"directory\"\r\n                :size=\"1024 * 1024 * 500\"\r\n                :headers=\"getUploadHeaders()\"\r\n                :data=\"projectUploadParams\"\r\n                :drop=\"'.drop-active'\"\r\n                :drop-directory=\"true\"\r\n\r\n                v-model=\"files\"\r\n                ref=\"upload\"\r\n              >\r\n                <i class=\"fa fa-plus\"></i>\r\n                Select\r\n              </file-upload>\r\n              <div class=\"dropdown-menu\">\r\n                <a class=\"dropdown-item\" href=\"#\" @click.prevent=\"onAddFile\">Add Files</a>\r\n                <a class=\"dropdown-item\" href=\"#\" @click.prevent=\"onAddFolder\">Add folder</a>\r\n              </div>\r\n            </div>\r\n            <button type=\"button\" class=\"btn btn-success\" v-if=\"!$refs.upload || !$refs.upload.active\"\r\n                @click.prevent=\"$refs.upload.active = true\" :disabled=\"!files || !files.length\">\r\n              <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\r\n              Start Upload\r\n            </button>\r\n            <button type=\"button\" class=\"btn btn-danger\" v-else @click.prevent=\"$refs.upload.active = false\">\r\n              <i class=\"fa fa-stop\" aria-hidden=\"true\"></i>\r\n              Stop Upload\r\n            </button>\r\n          </div>\r\n          <small>Allowed File Types: {{ getAllowedExtensions }}</small>\r\n        </div>\r\n      </div>\r\n    </div>\r\n\r\n    <div class=\"modal-footer\">\r\n      <button type=\"button\" class=\"btn btn-secondary\" @click=\"closeModal\">Close</button>\r\n    </div>\r\n  </fragment>\r\n</template>\r\n\r\n<style scoped>\r\n.upload-container .btn-group .dropdown-menu {\r\n  display: block;\r\n  visibility: hidden;\r\n  transition: all 0.2s;\r\n}\r\n.upload-container .btn-group:hover > .dropdown-menu {\r\n  visibility: visible;\r\n}\r\n\r\n.drop-active {\r\n  top: 0;\r\n  bottom: 0;\r\n  right: 0;\r\n  left: 0;\r\n  position: fixed;\r\n  z-index: 9999;\r\n  opacity: 0.6;\r\n  text-align: center;\r\n  background: #000;\r\n}\r\n\r\n.drop-active h3 {\r\n  margin: -0.5em 0 0;\r\n  position: absolute;\r\n  top: 50%;\r\n  left: 0;\r\n  right: 0;\r\n  -webkit-transform: translateY(-50%);\r\n  -ms-transform: translateY(-50%);\r\n  transform: translateY(-50%);\r\n  font-size: 40px;\r\n  color: #fff;\r\n  padding: 0;\r\n}\r\n</style>\r\n\r\n<script>\r\nimport { mapGetters } from \"vuex\";\r\nimport JwtHelper from \"@/utils/jwtHelper\";\r\nimport FileUpload from \"vue-upload-component\";\r\n\r\nexport default {\r\n  name: \"project-documents-upload\",\r\n  components: { FileUpload },\r\n  props: {\r\n    projectId: { type: String, required: true },\r\n    currentFolderId: { type: String, required: true }\r\n  },\r\n  data: function() {\r\n    return {\r\n      files: [],\r\n      postAction: process.env.VUE_APP_API_URL + \"/api/v1/upload/post\",\r\n      chunkAction: process.env.VUE_APP_API_URL + \"/api/v1/upload/chunk\",\r\n      multiple: true,\r\n      directory: false,\r\n      projectUploadParams: {\r\n        projectId: null,\r\n        folderId: null\r\n      },\r\n      addIndex: false,\r\n      addData: {\r\n        show: false,\r\n        name: \"\",\r\n        type: \"\",\r\n        content: \"\"\r\n      }\r\n    };\r\n  },\r\n  mounted() {\r\n    this.projectUploadParams.projectId = this.projectId;\r\n    this.projectUploadParams.folderId = this.currentFolderId;\r\n  },\r\n  computed: {\r\n    getAllowedExtensions() {\r\n      return [\"dwg\", \"dwf\", \"tiff\", \"jpeg\", \"jpg\", \"pdf\", \"doc\", \"docx\", \"xls\", \"xlsx\", \"xlsm\", \"ppt\", \"pptx\",\r\n        \"mp4\", \"mpeg\", \"mpg\", \"avi\", \"wma\", \"wav\", \"mov\", \"heic\", \"png\", \"zip\"\r\n      ].join(\", \");\r\n    },\r\n    getAllowedFileTypes() {\r\n      return [\".dwg\", \".dwf\", \".tiff\", \".jpeg\", \".jpg\", \".pdf\", \".doc\", \".docx\", \".xls\", \".xlsx\", \".xlsm\", \".ppt\", \".pptx\",\r\n        \".mp4\", \".mpeg\", \".mpg\", \".avi\", \".wma\", \".wav\", \".mov\", \".heic\", \".png\", \".zip\"\r\n      ].join(\", \");\r\n    },\r\n    uploadApiEndpoint() {\r\n      return process.env.VUE_APP_API_URL + \"/api/v1/upload/post\";\r\n    },\r\n    ...mapGetters([\"getClientApiKey\"])\r\n  },\r\n  methods: {\r\n    closeModal() {\r\n      if (this.files.length) {\r\n        this.$emit(\"file-uploaded\");\r\n      }\r\n      this.$bvModal.hide(\"bv-modal-project-documents-upload\");\r\n    },\r\n    getUploadHeaders() {\r\n      let headers = {};\r\n\r\n      let clientApiKey = this.getClientApiKey;\r\n      if (clientApiKey) { headers['api_key'] = clientApiKey }\r\n\r\n      let bearerToken = JwtHelper.getBearerToken();\r\n      headers['Authorization'] = \"Bearer \" + bearerToken;\r\n\r\n      return headers;\r\n    },\r\n    onAddFile() {\r\n      let input = this.$refs.upload.$el.querySelector(\"input\");\r\n      input.click();\r\n    },\r\n    onAddFolder() {\r\n      if (!this.$refs.upload.features.directory) {\r\n        this.alert(\"Your browser does not support\");\r\n        return;\r\n      }\r\n      let input = this.$refs.upload.$el.querySelector(\"input\");\r\n      input.directory = true;\r\n      input.webkitdirectory = true;\r\n      this.directory = true;\r\n      input.onclick = null;\r\n      input.click();\r\n      input.onclick = () => {\r\n        this.directory = false;\r\n        input.directory = false;\r\n        input.webkitdirectory = false;\r\n      };\r\n    },\r\n    inputFilter(newFile, oldFile, prevent) {\r\n      if (newFile && !oldFile) {\r\n        if (!new RegExp(\".(dwg|dwf|tiff|jpeg|jpg|pdf|doc|docx|xls|xlsx|xlsm|ppt|pptx|mp4|mpeg|mpg|avi|wma|wav|mov|heic|png|zip)$\").test(newFile.name)) {\r\n          return prevent();\r\n        }\r\n      }\r\n    }\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-documents-upload.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-documents-upload.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-documents-upload.vue?vue&type=template&id=4265aca2&scoped=true&\"\nimport script from \"./project-documents-upload.vue?vue&type=script&lang=js&\"\nexport * from \"./project-documents-upload.vue?vue&type=script&lang=js&\"\nimport style0 from \"./project-documents-upload.vue?vue&type=style&index=0&id=4265aca2&scoped=true&lang=css&\"\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  \"4265aca2\",\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('fragment',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('div',{staticClass:\"modal-header\"},[(_vm.isNew)?_c('h4',{staticClass:\"modal-title\"},[_vm._v(\"New Folder\")]):_c('h4',{staticClass:\"modal-title\"},[_vm._v(\"Manage Folder\")])]),(_vm.isLoading)?_c('div',[_c('div',{staticClass:\"modal-body\"},[_vm._v(\"Loading...\")])]):_vm._e(),(!_vm.isLoading)?_c('div',[_c('div',{staticClass:\"modal-body\"},[(_vm.validationErrors.length)?_c('div',{staticClass:\"alert alert-danger\"},_vm._l((_vm.validationErrors),function(error){return _c('span',{key:error},[_vm._v(_vm._s(error))])}),0):_vm._e(),(_vm.isEdit)?_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"currentFolderName\"}},[_vm._v(\"Current Folder Name:\")]),_c('input',{staticClass:\"form-control\",attrs:{\"type\":\"text\",\"readonly\":\"\",\"id\":\"currentFolderName\",\"name\":\"currentFolderName\"},domProps:{\"value\":_vm.selectedFolder.name}})]):_vm._e(),_c('div',{staticClass:\"form-group\"},[(_vm.isNew)?_c('label',{attrs:{\"for\":\"folderName\"}},[_vm._v(\"Name:\")]):_c('label',{attrs:{\"for\":\"folderName\"}},[_vm._v(\"Updated Name:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.folderName),expression:\"folderName\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],class:['form-control', { 'is-invalid': _vm.errors.has('folderName') }],attrs:{\"type\":\"text\",\"id\":\"folderName\",\"name\":\"folderName\",\"autocomplete\":\"off\",\"data-vv-as\":\"Name\"},domProps:{\"value\":(_vm.folderName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.folderName=$event.target.value}}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"Name is required\")])])]),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-primary ld-ext-right\",class:{ 'running' : _vm.isSaving },attrs:{\"type\":\"submit\",\"disabled\":_vm.isSaving}},[_c('i',{staticClass:\"far fa-save\"}),_c('span',{staticClass:\"ml-2\"},[_vm._v(\" Save \")]),_c('div',{staticClass:\"ld ld-ring ld-spin\"})]),_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.closeModal}},[_vm._v(\"Cancel\")])])]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <fragment>\r\n    <form v-on:submit.prevent=\"onSubmit\">\r\n      <div class=\"modal-header\">\r\n        <h4 class=\"modal-title\" v-if=\"isNew\">New Folder</h4>\r\n        <h4 class=\"modal-title\" v-else>Manage Folder</h4>\r\n      </div>\r\n\r\n      <div v-if=\"isLoading\">\r\n        <div class=\"modal-body\">Loading...</div>\r\n      </div>\r\n\r\n      <div v-if=\"!isLoading\">\r\n        <div class=\"modal-body\">\r\n          <div class=\"alert alert-danger\" v-if=\"validationErrors.length\">\r\n            <span v-for=\"error in validationErrors\" :key=\"error\">{{ error }}</span>\r\n          </div>\r\n\r\n          <div class=\"form-group\" v-if=\"isEdit\">\r\n            <label for=\"currentFolderName\">Current Folder Name:</label>\r\n            <input\r\n              type=\"text\"\r\n              readonly\r\n              class=\"form-control\"\r\n              id=\"currentFolderName\"\r\n              name=\"currentFolderName\"\r\n              :value=\"selectedFolder.name\"\r\n            />\r\n          </div>\r\n\r\n          <div class=\"form-group\">\r\n            <label for=\"folderName\" v-if=\"isNew\">Name:</label>\r\n            <label for=\"folderName\" v-else>Updated Name:</label>\r\n            <input\r\n              type=\"text\"\r\n              id=\"folderName\"\r\n              name=\"folderName\"\r\n              autocomplete=\"off\"\r\n              :class=\"['form-control', { 'is-invalid': errors.has('folderName') }]\"\r\n              v-model=\"folderName\"\r\n              v-validate=\"'required'\"\r\n              data-vv-as=\"Name\"\r\n            />\r\n            <div class=\"invalid-feedback\">Name is required</div>\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"modal-footer\">\r\n          <button type=\"submit\" class=\"btn btn-primary ld-ext-right\" :class=\"{ 'running' : isSaving }\" :disabled=\"isSaving\">\r\n            <i class=\"far fa-save\"></i>\r\n            <span class=\"ml-2\"> Save </span>\r\n            <div class=\"ld ld-ring ld-spin\"></div>\r\n          </button>\r\n          <button type=\"button\" class=\"btn btn-secondary\" @click=\"closeModal\">Cancel</button>\r\n        </div>\r\n      </div>\r\n    </form>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { FolderService } from \"@/services/\";\r\nimport Toast from \"@/utils/toast\";\r\n\r\nexport default {\r\n  name: \"project-documents-folder-managment\",\r\n  props: {\r\n    parentFolderId: { type: String, required: true },\r\n    selectedFolderId: {\r\n      type: String,\r\n      validator: prop => typeof prop === \"string\" || prop === null\r\n    },\r\n    isNew: { type: Boolean, required: true },\r\n    isEdit: { type: Boolean, required: true }\r\n  },\r\n  data: function() {\r\n    return {\r\n      isLoading: true,\r\n      isSaving: false,\r\n      validationErrors: [],\r\n      selectedFolder: {\r\n        name: null\r\n      },\r\n      folderName: \"\"\r\n    };\r\n  },\r\n  methods: {\r\n    closeModal() {\r\n      this.$bvModal.hide(\"bv-modal-project-documents-folder-management\");\r\n    },\r\n    handleRequest() {\r\n      let params = {\r\n        name: this.folderName,\r\n        parentId: this.selectedFolder.parentId || this.parentFolderId\r\n      };\r\n\r\n      if (this.selectedFolder.id) {\r\n        params.id = this.selectedFolder.id;\r\n      }\r\n\r\n      if (this.isNew) {\r\n        return FolderService.createFolder(params);\r\n      } else if (this.isEdit) {\r\n        return FolderService.updateFolder(this.selectedFolder.id, params);\r\n      }\r\n    },\r\n    async onSubmit() {\r\n      var isFormValid = await this.$validator.validate();\r\n\r\n      if (!isFormValid) {\r\n        return;\r\n      }\r\n\r\n      this.isSaving = true;\r\n\r\n      this.handleRequest()\r\n        .then(() => {\r\n          this.$emit(\"folder-created\");\r\n          Toast.success(this, \"Successfully saved folder!\");\r\n          this.closeModal();\r\n        })\r\n        .catch(err => {\r\n          if (err.response.data.message && err.response.data.modelState) {\r\n            this.validationErrors = [...err.response.data.modelState.fileIds];\r\n          }\r\n        })\r\n        .finally(() => this.isSaving = false);\r\n    }\r\n  },\r\n  mounted() {\r\n    if (this.selectedFolderId) {\r\n      FolderService.getById(this.selectedFolderId).then(response => {\r\n        this.selectedFolder = response.data;\r\n        this.isLoading = false;\r\n      });\r\n    } else {\r\n      this.isLoading = false;\r\n    }\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-documents-folder-management.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-documents-folder-management.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-documents-folder-management.vue?vue&type=template&id=8dc07a98&\"\nimport script from \"./project-documents-folder-management.vue?vue&type=script&lang=js&\"\nexport * from \"./project-documents-folder-management.vue?vue&type=script&lang=js&\"\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 _c('fragment',[_c('div',{staticClass:\"modal-header\"},[_c('h4',{staticClass:\"modal-title\"},[_vm._v(\"Move Files\")])]),_c('div',{staticClass:\"modal-body\"},[(_vm.validationErrors.length)?_c('div',{staticClass:\"alert alert-danger\"},_vm._l((_vm.validationErrors),function(error){return _c('span',{key:error},[_vm._v(_vm._s(error))])}),0):_vm._e(),_c('v-tree',{attrs:{\"scope-data\":_vm.formattedFolderStructure},scopedSlots:_vm._u([{key:\"default\",fn:function(folder){return _c('ul',{},_vm._l((folder),function(child){return _c('li',{key:child.id},[_c('tree-leaf',{attrs:{\"info\":child,\"selectedFolderId\":_vm.selectedFolderId},on:{\"select-tree-node\":_vm.selectNode}})],1)}),0)}}])})],1),_c('div',{staticClass:\"modal-footer\"},[_c('button',{class:['btn btn-primary', { 'disabled' : !_vm.selectedFolderId }],attrs:{\"type\":\"submit\",\"disabled\":!_vm.selectedFolderId},on:{\"click\":_vm.moveFiles}},[_vm._v(\"Confirm\")]),_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.closeModal}},[_vm._v(\"Cancel\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <fragment>\r\n    <div class=\"modal-header\">\r\n      <h4 class=\"modal-title\">Move Files</h4>\r\n    </div>\r\n    <div class=\"modal-body\">\r\n      <div class=\"alert alert-danger\" v-if=\"validationErrors.length\">\r\n        <span v-for=\"error in validationErrors\" :key=\"error\">{{ error }}</span>\r\n      </div>\r\n\r\n      <v-tree :scope-data=\"formattedFolderStructure\">\r\n        <ul slot-scope=\"folder\">\r\n          <li v-for=\"child in folder\" :key=\"child.id\">\r\n            <tree-leaf\r\n              :info=\"child\"\r\n              :selectedFolderId=\"selectedFolderId\"\r\n              @select-tree-node=\"selectNode\"\r\n            ></tree-leaf>\r\n          </li>\r\n        </ul>\r\n      </v-tree>\r\n    </div>\r\n\r\n    <div class=\"modal-footer\">\r\n      <button\r\n        type=\"submit\"\r\n        :class=\"['btn btn-primary', { 'disabled' : !selectedFolderId }]\"\r\n        :disabled=\"!selectedFolderId\"\r\n        @click=\"moveFiles\"\r\n      >Confirm</button>\r\n      <button type=\"button\" class=\"btn btn-secondary\" @click=\"closeModal\">Cancel</button>\r\n    </div>\r\n  </fragment>\r\n</template>\r\n\r\n<style scoped>\r\nul,\r\nli {\r\n  list-style-type: none;\r\n}\r\n</style>\r\n\r\n<script>\r\nimport { FileService } from \"@/services/\";\r\nimport Toast from \"@/utils/toast\";\r\nimport VTree from \"vue-vtree\";\r\n\r\nlet TreeLeaf = {\r\n  template: `\r\n    <fragment>\r\n    <div>\r\n      <span :class=\"['fa', info.children && info.children.length ? isCollapsed ? 'fa-caret-right' : 'fa-caret-down' : '']\" aria-hidden=\"true\" @click=\"expandLeaf\"></span>\r\n      <span :class=\"['p-1 ml-1', selectedFolderId === info.id ? 'border border-secondary' : '']\" @click=\"selectNode(info.id)\">\r\n        <span class=\"fa fa-folder\" aria-hidden=\"true\"></span>\r\n        {{ info.name }}\r\n      </span>\r\n    </div>\r\n    <v-tree v-if=\"!isCollapsed && info.children\" :scope-data=\"info.children\"></v-tree>\r\n    </fragment>\r\n  `,\r\n  props: {\r\n    info: { type: Object, required: true },\r\n    selectedFolderId: {\r\n      required: true,\r\n      validator: prop => typeof prop === \"string\" || prop === null\r\n    }\r\n  },\r\n  components: {\r\n    VTree\r\n  },\r\n  data: function() {\r\n    return {\r\n      isCollapsed: true\r\n    };\r\n  },\r\n  methods: {\r\n    expandLeaf() {\r\n      this.isCollapsed = !this.isCollapsed;\r\n    },\r\n    selectNode(id) {\r\n      this.isCollapsed = false;\r\n      this.$emit(\"select-tree-node\", id);\r\n    }\r\n  }\r\n};\r\n\r\nexport default {\r\n  name: \"project-documents-move-files\",\r\n  props: {\r\n    selectedFileIds: { type: Array, required: true },\r\n    folderStructure: { type: Object, require: true }\r\n  },\r\n  components: { VTree, TreeLeaf },\r\n  data: function() {\r\n    return {\r\n      validationErrors: [],\r\n      selectedFolderId: null\r\n    };\r\n  },\r\n  computed: {\r\n    formattedFolderStructure() {\r\n      return [this.folderStructure];\r\n    }\r\n  },\r\n  methods: {\r\n    selectNode(id) {\r\n      this.selectedFolderId = id;\r\n    },\r\n    closeModal() {\r\n      this.$bvModal.hide(\"bv-modal-project-documents-move-files\");\r\n    },\r\n    moveFiles() {\r\n      let params = {\r\n        folderId: this.selectedFolderId,\r\n        fileIds: this.selectedFileIds\r\n      };\r\n\r\n      FileService.moveFiles(params)\r\n        .then(() => {\r\n          this.$emit(\"file-uploaded\");\r\n          Toast.success(this, \"Successfully move files!\");\r\n          this.closeModal();\r\n        })\r\n        .catch(err => {\r\n          if (err.response.data.message && err.response.data.modelState) {\r\n            this.validationErrors = [...err.response.data.modelState.fileIds]\r\n          }\r\n        });\r\n    }\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-documents-move-files.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-documents-move-files.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-documents-move-files.vue?vue&type=template&id=0da5260e&scoped=true&\"\nimport script from \"./project-documents-move-files.vue?vue&type=script&lang=js&\"\nexport * from \"./project-documents-move-files.vue?vue&type=script&lang=js&\"\nimport style0 from \"./project-documents-move-files.vue?vue&type=style&index=0&id=0da5260e&scoped=true&lang=css&\"\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  \"0da5260e\",\n  null\n  \n)\n\nexport default component.exports","<template>\r\n  <fragment>\r\n    <div class=\"row\">\r\n      <loading :active.sync=\"isDownloading\" is-full-page :zIndex=\"2147483639\"></loading>\r\n      <div class=\"col-md-12\">\r\n        <div class=\"row form-title d-flex align-items-center mb-4\">\r\n          <span class=\"rounded-circle bg-primary mr-2 d-flex justify-content-center align-items-center text-white\">\r\n            5\r\n          </span>\r\n          <h2 class=\"m-0\">Documents</h2>\r\n        </div>\r\n\r\n        <div id=\"documentsContainer\">\r\n          <div id=\"documentContentArea\" class=\"row col-md-12\">\r\n            <div class=\"k-content col-md-12\">\r\n              <label class=\"font-weight-bold\">Path:</label>\r\n              <span v-if=\"getCurrentFolderInformation\">{{ getCurrentFolderInformation.folder }}</span>\r\n            </div>\r\n            <div class=\"row col-md-12 mt-2\">\r\n              <table id=\"tblFiles\" class=\"table\">\r\n                <thead>\r\n                  <tr>\r\n                    <th scope=\"col\" class=\"text-center\">&nbsp;</th>\r\n                    <th scope=\"col\" class=\"text-left\">File Name</th>\r\n                    <th scope=\"col\" class=\"text-left\">Uploaded By</th>\r\n                    <th scope=\"col\" class=\"text-left\">Uploaded On</th>\r\n                    <th scope=\"col\" class=\"text-left\">Type</th>\r\n                    <th scope=\"col\" colspan=\"2\" class=\"text-center\">Actions</th>\r\n                  </tr>\r\n                </thead>\r\n                <tbody v-if=\"getCurrentFolderInformation\">\r\n                  <tr v-if=\"getCurrentFolderInformation.parentId\">\r\n                    <td class=\"text-center\">&nbsp;</td>\r\n                    <td class=\"text-left\">\r\n                      <i class=\"fas fa-level-up-alt\" title=\"Up One Level\" aria-hidden=\"true\"></i>\r\n                      <span class=\"sr-only\">Up One Level</span>\r\n                      <a\r\n                        class=\"a-open-folder\"\r\n                        href=\"#\"\r\n                        @click.prevent=\"changeCurrentFolder(getCurrentFolderInformation.parentId)\"\r\n                      >.. Up One Folder</a>\r\n                    </td>\r\n                    <td>&nbsp;</td>\r\n                    <td>&nbsp;</td>\r\n                    <td class=\"text-left\">Parent</td>\r\n                    <td class=\"text-center\">&nbsp;</td>\r\n                  </tr>\r\n\r\n                  <tr v-for=\"folder in getCurrentFolderInformation.folders\" :key=\"folder.id\">\r\n                    <td class=\"text-center\">\r\n                        <input type=\"checkbox\" class=\"checkbox-file\" :value=\"folder.id\" :checked=\"!!selectedFolders.find(i => i === folder.id)\"\r\n                        @change=\"onSelectedFolder($event.target.value)\" />\r\n                    </td>\r\n                    <td class=\"text-left\">\r\n                      <i class=\"fas fa-folder mr-1\" title=\"Folder\" aria-hidden=\"true\"></i>\r\n                      <span class=\"sr-only\">Folder</span>\r\n                      <a class=\"a-open-folder\" @click.prevent=\"changeCurrentFolder(folder.id)\" href=\"#\">{{ folder.name }}</a>\r\n                    </td>\r\n                    <td>{{ folder.createdBy }}</td>\r\n                    <td>{{ folder.createdOn | datetime }}</td>\r\n                    <td class=\"text-left\">Folder</td>\r\n                    <td class=\"text-center\" style=\"width: 30px;\">\r\n                      <span class=\"folder-edit\" @click=\"updateFolder(folder.id)\">\r\n                        <i class=\"fa fa-edit fa-lg\" title=\"Rename\" aria-hidden=\"true\"></i>\r\n                        <span class=\"sr-only\">Rename</span>\r\n                      </span>\r\n                    </td>\r\n                    <td class=\"text-center\" style=\"width: 30px;\">\r\n                      <span class=\"folder-delete\" @click=\"deleteFolder(folder.id)\">\r\n                        <i class=\"fas fa-trash-alt fa-lg\" title=\"Delete\" aria-hidden=\"true\"></i>\r\n                        <span class=\"sr-only\">Delete Folder</span>\r\n                      </span>\r\n                    </td>\r\n                  </tr>\r\n\r\n                  <tr v-for=\"file in getCurrentFolderInformation.files\" :key=\"file.id\">\r\n                    <td class=\"text-center\">\r\n                      <input type=\"checkbox\" class=\"checkbox-file\" :value=\"file.id\" :checked=\"!!selectedFileIds.find(i => i === file.id)\"\r\n                        @change=\"onSelectRecord($event.target.value)\" />\r\n                    </td>\r\n                    <td class=\"text-left\">\r\n                      <i class=\"fa fa-file\" title=\"File\" aria-hidden=\"true\"></i>\r\n                      <span class=\"sr-only\">File</span>\r\n                      {{ file.displayName }}\r\n                    </td>\r\n                    <td>{{ file.createdBy }}</td>\r\n                    <td>{{ file.createdOn | datetime }}</td>\r\n                    <td class=\"text-left\">{{ file.extension }}</td>\r\n                    <td class=\"text-center\" style=\"width: 30px;\">\r\n                      <span class=\"file-download\" @click=\"downloadFile(file.id, file.fileName)\">\r\n                        <i class=\"fas fa-file-download fa-lg\" title=\"Download\" aria-hidden=\"true\"></i>\r\n                        <span class=\"sr-only\">Download</span>\r\n                      </span>\r\n                    </td>\r\n                    <td class=\"text-center\" style=\"width: 30px;\">\r\n                      <span class=\"file-delete\" @click=\"deleteFile(file.id)\">\r\n                        <i class=\"fas fa-trash-alt fa-lg\" title=\"Delete\" aria-hidden=\"true\"></i>\r\n                        <span class=\"sr-only\">Delete</span>\r\n                      </span>\r\n                    </td>\r\n                  </tr>\r\n                </tbody>\r\n              </table>\r\n            </div>\r\n\r\n            <div class=\"row col-md-12\">\r\n              <div class=\"col-md-6\"> &nbsp; </div>\r\n              <div class=\"col-md-6 text-right\">\r\n                <button id=\"btnUploadFiles\" type=\"button\" class=\"btn btn-primary mx-1\" @click=\"openUploadModal\">Upload</button>\r\n                <button id=\"btnAddFolder\" type=\"button\" class=\"btn btn-success mx-1\" @click=\"newFolder\">Create Folder</button>\r\n                <button id=\"btnMoveFiles\" type=\"button\" :class=\"['btn btn-info mx-1', { 'disabled' : !selectedFileIds.length }]\"\r\n                  :disabled=\"!selectedFileIds.length\" @click=\"openMoveFilesModal\">Move</button>\r\n                <button id=\"btnDeleteFiles\" type=\"button\" :class=\"['btn btn-danger mx-1', { 'disabled' : !(selectedFileIds.length || selectedFolders.length) }]\"\r\n                  :disabled=\"!(selectedFileIds.length || selectedFolders.length)\" @click=\"deleteSelectedFoldersFiles\">Delete</button>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div class=\"col-md d-none d-lg-block\"></div>\r\n    </div>\r\n\r\n    <b-modal id=\"bv-modal-project-documents-upload\" size=\"xl\" hide-header hide-footer :no-close-on-backdrop=\"true\">\r\n      <project-documents-upload :projectId=\"project.id\" :currentFolderId=\"currentFolderId\" @file-uploaded=\"getRootFolderData\">\r\n      </project-documents-upload>\r\n    </b-modal>\r\n\r\n    <b-modal id=\"bv-modal-project-documents-folder-management\" hide-header hide-footer :no-close-on-backdrop=\"true\">\r\n      <project-documents-folder-management\r\n        :parentFolderId=\"currentFolderId\"\r\n        :selectedFolderId=\"folderManagementParams.selectedFolderId\"\r\n        :isNew=\"folderManagementParams.isNew\"\r\n        :isEdit=\"folderManagementParams.isEdit\"\r\n        @folder-created=\"getRootFolderData\">\r\n      </project-documents-folder-management>\r\n    </b-modal>\r\n\r\n    <b-modal id=\"bv-modal-project-documents-move-files\" hide-header hide-footer :no-close-on-backdrop=\"true\">\r\n      <project-documents-move-files\r\n        :selectedFileIds=\"selectedFileIds\"\r\n        :folderStructure=\"rootFolder\"\r\n        @file-uploaded=\"onFileUploadedProjectMove\">\r\n      </project-documents-move-files>\r\n    </b-modal>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { FileService, FolderService } from \"@/services/\";\r\nimport FileDownload from \"@/utils/fileDownload\";\r\nimport ProjectDocumentsUpload from \"@/views/project/components/project-documents-upload.vue\";\r\nimport ProjectDocumentsFolderManagement from \"@/views/project/components/project-documents-folder-management.vue\";\r\nimport ProjectDocumentsMoveFiles from \"@/views/project/components/project-documents-move-files.vue\";\r\nimport Toast from \"@/utils/toast\";\r\nimport MessageBox from \"@/utils/messagebox\";\r\n\r\nexport default {\r\n  name: \"project-step-documents\",\r\n  components: {\r\n    ProjectDocumentsUpload,\r\n    ProjectDocumentsFolderManagement,\r\n    ProjectDocumentsMoveFiles\r\n  },\r\n  props: {\r\n    project: { type: Object, required: true },\r\n    isNewProject: { type: Boolean, required: true },\r\n    rootFolderId: { type: String, required: true },\r\n    clientApiKey: { type: String }\r\n  },\r\n  data: function() {\r\n    return {\r\n      isDownloading: false,\r\n      currentFolderId: null,\r\n      rootFolder: null,\r\n      selectedFileIds: [],\r\n      selectedFolders: [],\r\n      folderManagementParams: {\r\n        isNew: false,\r\n        isEdit: false,\r\n        selectedFolderId: null\r\n      }\r\n    };\r\n  },\r\n  computed: {\r\n    getCurrentFolderInformation() {\r\n      if (!this.rootFolder) {\r\n        return null;\r\n      }\r\n\r\n      let info = this.findFolder([this.rootFolder], this.currentFolderId, \"\");\r\n\r\n      return {\r\n        folder: info.folder,\r\n        parentId: info.parentId,\r\n        folders: info.children,\r\n        files: info.files\r\n      };\r\n    }\r\n  },\r\n  mounted() {\r\n    this.currentFolderId = this.rootFolderId;\r\n\r\n    if (!this.isNewProject) {\r\n      this.getRootFolderData();\r\n    }\r\n  },\r\n  methods: {\r\n    changeCurrentFolder(id) {\r\n      this.currentFolderId = id;\r\n      this.selectedFileIds = [];\r\n    },\r\n    async deleteFile(fileId) {\r\n      let confirm = await MessageBox.confirm(\r\n        this,\r\n        \"Remove File\",\r\n        \"Are you sure you want to remove this file?\"\r\n      );\r\n\r\n      if (confirm) {\r\n        let payload = { projectId: this.project.id, fileId };\r\n        FileService.deleteFile(fileId, payload).then(() => {\r\n          this.getRootFolderData();\r\n          Toast.success(this, \"Successfully removed file\");\r\n        });\r\n      }\r\n    },\r\n    async deleteFolder (folderId) {\r\n      let message = this.$createElement('span', {}, [\r\n        'Are you sure you want to delete this folder? Any files in this folder will also be permanently deleted.',\r\n        this.$createElement('br'),\r\n        this.$createElement('br'),\r\n        this.$createElement('strong', {}, ['This action cannot be undone.'])\r\n      ]);\r\n\r\n      let confirm = await MessageBox.confirm(this, \"Remove Folder\", [message]);\r\n\r\n      if (confirm) {\r\n        FolderService.deleteFolder(folderId).then(() => {\r\n          this.getRootFolderData();\r\n          Toast.success(this, \"Successfully deleted folder!\");\r\n        });\r\n      }\r\n    },\r\n    async deleteSelectedFoldersFiles() {\r\n      if (!this.selectedFolders.length && !this.selectedFileIds.length)\r\n        return;\r\n\r\n      let message = this.$createElement('span', {}, [\r\n        'Are you sure you want to remove the selected files/folders? Any files in a selected folder will also be permanently deleted.',\r\n        this.$createElement('br'),\r\n        this.$createElement('br'),\r\n        this.$createElement('strong', {}, ['This action cannot be undone.'])\r\n      ]);\r\n\r\n      let confirm = await MessageBox.confirm(this, \"Remove Files/Folders\", [message]);\r\n\r\n      if(confirm) {\r\n        Promise.all([\r\n          this.selectedFolders.length ? FolderService.deleteSelectedFolders(this.selectedFolders) : Promise.resolve({}),\r\n          this.selectedFileIds.length ? FileService.deleteSelectedFiles({ projectId: this.project.id, fileIds: this.selectedFileIds }) : Promise.resolve({})\r\n        ]).then(() => {\r\n          this.getRootFolderData();\r\n          Toast.success(this, \"Successfully deleted files/folders!\");\r\n        });\r\n\r\n        this.selectedFolders = [];\r\n        this.selectedFileIds = [];\r\n      }\r\n    },\r\n    downloadFile(fileId, filename) {\r\n      this.isDownloading = true;\r\n\r\n      return FileService.downloadFile(fileId)\r\n        .then(response => {\r\n          FileDownload(filename, response.data);\r\n          this.isDownloading = false;\r\n        })\r\n        .catch(() => {\r\n          Toast.danger(this, \"Oops! An error has occurred.\");\r\n          this.isDownloading = false;\r\n        });\r\n    },\r\n    findFolder(data, id, parentFolder) {\r\n      let top = data.find(item => item.id === id);\r\n\r\n      if (top) {\r\n        let currentFolder = parentFolder + \"\\\\\" + top.name;\r\n        return { folder: currentFolder, ...top };\r\n      }\r\n\r\n      for (let item of data) {\r\n        let currentFolder = parentFolder + \"\\\\\" + item.name;\r\n        let found = this.findFolder(item.children, id, currentFolder);\r\n\r\n        if (found) {\r\n          return found;\r\n        }\r\n      }\r\n    },\r\n    getRootFolderData() {\r\n      FolderService.getById(this.rootFolderId).then(response => {\r\n        this.rootFolder = response.data;\r\n      });\r\n    },\r\n    newFolder() {\r\n      this.folderManagementParams = {\r\n        isNew: true,\r\n        isEdit: false,\r\n        selectedFolderId: null\r\n      };\r\n      this.openManageFolderModal();\r\n    },\r\n    onFileUploadedProjectMove () {\r\n      this.selectedFileIds = [];\r\n      this.getRootFolderData();\r\n    },\r\n    onSelectRecord(id) {\r\n      let pos = this.selectedFileIds.indexOf(id);\r\n      if (pos === -1) this.selectedFileIds.push(id);\r\n      if (pos >= 0) this.selectedFileIds.splice(pos, 1);\r\n    },\r\n    onSelectedFolder(id) {\r\n      let pos = this.selectedFolders.indexOf(id);\r\n      if (pos === -1) this.selectedFolders.push(id);\r\n      if (pos >= 0) this.selectedFolders.splice(pos, 1);\r\n    },\r\n    openManageFolderModal() {\r\n      this.$bvModal.show(\"bv-modal-project-documents-folder-management\");\r\n    },\r\n    openMoveFilesModal() {\r\n      this.$bvModal.show(\"bv-modal-project-documents-move-files\");\r\n    },\r\n    openUploadModal() {\r\n      this.$bvModal.show(\"bv-modal-project-documents-upload\");\r\n    },\r\n    updateFolder(folderId) {\r\n      this.folderManagementParams = {\r\n        isNew: false,\r\n        isEdit: true,\r\n        selectedFolderId: folderId\r\n      };\r\n      this.openManageFolderModal();\r\n    }\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-step-documents.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-step-documents.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-step-documents.vue?vue&type=template&id=1e2b5936&\"\nimport script from \"./project-step-documents.vue?vue&type=script&lang=js&\"\nexport * from \"./project-step-documents.vue?vue&type=script&lang=js&\"\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 _c('fragment',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('div',{staticClass:\"row form-title d-flex align-items-center mb-4\"},[_c('span',{staticClass:\"rounded-circle bg-primary mr-2 d-flex justify-content-center align-items-center text-white\"},[_vm._v(\"6\")]),_c('div',{staticClass:\"d-flex flex-column\"},[_c('h2',{staticClass:\"mb-0\"},[_vm._v(_vm._s(_vm.getNotesHeading()))]),(_vm.project.isPrivate)?_c('div',{staticClass:\"small-grey\"},[_vm._v(\"These notes will not be displayed to members.\")]):_vm._e()])]),(_vm.getProjectNotes.length === 0)?_c('div',{staticClass:\"alert alert-warning\",attrs:{\"role\":\"alert\"}},[_vm._v(\" No project notes available \")]):_vm._e(),(_vm.getProjectNotes.length > 0)?_c('div',{attrs:{\"id\":\"admin-note-list\"}},_vm._l((_vm.getProjectNotes),function(note){return _c('div',{key:note.id,staticClass:\"admin-note-item col-md-12\"},[_c('div',{staticClass:\"row\"},[_c('h4',{staticClass:\"title-text\"},[_vm._v(_vm._s(note.name))]),_c('a',{staticStyle:{\"margin-left\":\"auto\"},attrs:{\"href\":\"#\",\"title\":\"Edit Note\"},on:{\"click\":function($event){$event.preventDefault();return _vm.editProjectNote(note.id)}}},[_vm._v(\"Edit\")])]),_c('div',{staticClass:\"w-100 rounded p-1 px-2\"},[_c('span',{staticStyle:{\"white-space\":\"pre-line\"}},[_vm._v(_vm._s(note.text))])]),_c('h5',{staticClass:\"date-text\"},[_vm._v(_vm._s(_vm._f(\"datetime\")(note.createdOn,'MMM dd, yyyy p'))+\" \"+_vm._s(_vm.getClientTimeZone.code))])])}),0):_vm._e(),_c('div',{staticClass:\"row mb-3\"},[_c('div',{staticClass:\"col-md-12 text-right\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.newProjectNote}},[_c('i',{staticClass:\"fas fa-plus\"}),_vm._v(\" Add New Note \")])])])]),_c('div',{staticClass:\"col-md d-none d-lg-block\"}),(_vm.showPrebidNotes)?_c('div',{staticClass:\"col-md-12\"},[_c('h3',{staticClass:\"mb-3\"},[_vm._v(\"Prebid Notes\")]),(_vm.getProjectPrebidNotes.length === 0)?_c('div',{staticClass:\"alert alert-warning\",attrs:{\"role\":\"alert\"}},[_vm._v(\" No prebid notes available \")]):_vm._e(),(_vm.getProjectPrebidNotes.length > 0)?_c('div',{attrs:{\"id\":\"admin-note-list\"}},_vm._l((_vm.getProjectPrebidNotes),function(note){return _c('div',{key:note.id,staticClass:\"admin-note-item col-md-12\"},[_c('div',{staticClass:\"row\"},[_c('h4',{staticClass:\"title-text\"},[_vm._v(_vm._s(note.name))]),_c('a',{staticStyle:{\"margin-left\":\"auto\"},attrs:{\"href\":\"#\",\"title\":\"Edit Note\"},on:{\"click\":function($event){$event.preventDefault();return _vm.editProjectPrebidNote(note.id)}}},[_vm._v(\"Edit\")])]),_c('div',{staticClass:\"w-100 rounded p-1 px-2\"},[_c('span',{staticStyle:{\"white-space\":\"pre-line\"}},[_vm._v(_vm._s(note.text))])]),_c('h5',{staticClass:\"date-text\"},[_vm._v(_vm._s(_vm._f(\"datetime\")(note.createdOn,'MMM dd, yyyy p'))+\" \"+_vm._s(_vm.getClientTimeZone.code))])])}),0):_vm._e(),_c('div',{staticClass:\"row mb-3\"},[_c('div',{staticClass:\"col-md-12 text-right\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.newProjectPrebidNote}},[_c('i',{staticClass:\"fas fa-plus\"}),_vm._v(\" Add New Prebid Note \")])])])]):_vm._e(),_c('div',{staticClass:\"col-md d-none d-lg-block\"})]),_c('b-modal',{attrs:{\"id\":\"bv-modal-project-note\",\"size\":\"lg\",\"hide-header\":\"\",\"hide-footer\":\"\",\"no-close-on-backdrop\":true}},[_c('project-note')],1),_c('b-modal',{attrs:{\"id\":\"bv-modal-project-prebid-note\",\"size\":\"lg\",\"hide-header\":\"\",\"hide-footer\":\"\",\"no-close-on-backdrop\":true}},[_c('project-prebid-note')],1)],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('fragment',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('div',{staticClass:\"modal-header\"},[_c('h4',{staticClass:\"modal-title\"},[_vm._v(\"Add Note\")])]),_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"createdBy\"}},[_vm._v(\"Name\")]),_c('input',{staticClass:\"form-control-plaintext\",attrs:{\"id\":\"createdBy\",\"name\":\"createdBy\",\"type\":\"text\",\"readonly\":\"\"},domProps:{\"value\":_vm.note.name}})]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"details\"}},[_vm._v(\"Text \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('textarea',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.note.text),expression:\"note.text\"}],staticClass:\"form-control\",class:{ 'is-invalid': _vm.errors.has('details') },attrs:{\"id\":\"details\",\"name\":\"details\",\"rows\":\"5\",\"placeholder\":\"Enter text\",\"data-vv-as\":\"Text\"},domProps:{\"value\":(_vm.note.text)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.note, \"text\", $event.target.value)}}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Text field is required\")])])]),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Save\")]),_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.closeModal}},[_vm._v(\"Close\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <fragment>\r\n    <form v-on:submit.prevent=\"onSubmit\">\r\n      <div class=\"modal-header\">\r\n        <h4 class=\"modal-title\">Add Note</h4>\r\n      </div>\r\n\r\n      <div class=\"modal-body\">\r\n        <div class=\"form-group\">\r\n          <label for=\"createdBy\">Name</label>\r\n          <input id=\"createdBy\" name=\"createdBy\" type=\"text\" class=\"form-control-plaintext\" :value=\"note.name\" readonly>\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"details\">Text <span class=\"red-dot ml-3\"></span></label>\r\n          <textarea id=\"details\" name=\"details\" class=\"form-control\" :class=\"{ 'is-invalid': errors.has('details') }\"\r\n            rows=\"5\" placeholder=\"Enter text\" v-validate=\"'required'\" v-model=\"note.text\" data-vv-as=\"Text\">\r\n          </textarea>\r\n          <div class=\"invalid-feedback\">The Text field is required</div>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"modal-footer\">\r\n        <button type=\"submit\" class=\"btn btn-success\">Save</button>\r\n        <button type=\"button\" class=\"btn btn-secondary\" @click=\"closeModal\">Close</button>\r\n      </div>\r\n    </form>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport Toast from \"@/utils/toast\";\r\nimport { mapGetters, mapActions } from \"vuex\";\r\n\r\nexport default {\r\n  name: \"project-task\",\r\n  data: function() {\r\n    return {\r\n      note: {\r\n        id: null,\r\n        name: null,\r\n        text: null\r\n      }\r\n    };\r\n  },\r\n  computed: {\r\n    ...mapGetters([\"getProjectNote\"])\r\n  },\r\n  mounted: function() {\r\n    this.note = { ...this.getProjectNote };\r\n\r\n    this.$validator.reset();\r\n  },\r\n  methods: {\r\n    async onSubmit() {\r\n      var isFormValid = await this.$validator.validate();\r\n\r\n      if (!isFormValid) {\r\n        return;\r\n      }\r\n\r\n      if (!this.note.createdOn) {\r\n        this.note.createdOn = new Date().toISOString();\r\n      }\r\n\r\n      this.saveProjectNote(this.note).then(() => {\r\n        let message = this.$createElement('span', {}, [ 'Successfully updated!', this.$createElement('br'), 'Please remember to save your project.']);\r\n        Toast.success(this, [message]);\r\n        this.$bvModal.hide(\"bv-modal-project-note\");\r\n      });\r\n    },\r\n    closeModal() {\r\n      this.$bvModal.hide(\"bv-modal-project-note\");\r\n    },\r\n    ...mapActions([\"saveProjectNote\"])\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-note.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-note.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-note.vue?vue&type=template&id=48ca0532&\"\nimport script from \"./project-note.vue?vue&type=script&lang=js&\"\nexport * from \"./project-note.vue?vue&type=script&lang=js&\"\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 _c('fragment',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('div',{staticClass:\"modal-header\"},[_c('h4',{staticClass:\"modal-title\"},[_vm._v(\"Add Prebid Note\")])]),_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"createdBy\"}},[_vm._v(\"Name\")]),_c('input',{staticClass:\"form-control-plaintext\",attrs:{\"id\":\"createdBy\",\"name\":\"createdBy\",\"type\":\"text\",\"readonly\":\"\"},domProps:{\"value\":_vm.note.name}})]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"details\"}},[_vm._v(\"Text \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('textarea',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.note.text),expression:\"note.text\"}],staticClass:\"form-control\",class:{ 'is-invalid': _vm.errors.has('details') },attrs:{\"id\":\"details\",\"name\":\"details\",\"rows\":\"5\",\"placeholder\":\"Enter text\",\"data-vv-as\":\"Text\"},domProps:{\"value\":(_vm.note.text)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.note, \"text\", $event.target.value)}}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Text field is required\")])])]),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Save\")]),_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.closeModal}},[_vm._v(\"Close\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <fragment>\r\n    <form v-on:submit.prevent=\"onSubmit\">\r\n      <div class=\"modal-header\">\r\n        <h4 class=\"modal-title\">Add Prebid Note</h4>\r\n      </div>\r\n\r\n      <div class=\"modal-body\">\r\n        <div class=\"form-group\">\r\n          <label for=\"createdBy\">Name</label>\r\n          <input id=\"createdBy\" name=\"createdBy\" type=\"text\" class=\"form-control-plaintext\" :value=\"note.name\" readonly>\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"details\">Text <span class=\"red-dot ml-3\"></span></label>\r\n          <textarea id=\"details\" name=\"details\" class=\"form-control\" :class=\"{ 'is-invalid': errors.has('details') }\"\r\n            rows=\"5\" placeholder=\"Enter text\" v-validate=\"'required'\" v-model=\"note.text\" data-vv-as=\"Text\">\r\n          </textarea>\r\n          <div class=\"invalid-feedback\">The Text field is required</div>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"modal-footer\">\r\n        <button type=\"submit\" class=\"btn btn-primary\">Save</button>\r\n        <button type=\"button\" class=\"btn btn-secondary\" @click=\"closeModal\">Close</button>\r\n      </div>\r\n    </form>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport Toast from \"@/utils/toast\";\r\nimport { mapGetters, mapActions } from \"vuex\";\r\n\r\nexport default {\r\n  name: \"project-prebid-note\",\r\n  data: function() {\r\n    return {\r\n      note: {\r\n        id: null,\r\n        name: null,\r\n        text: null\r\n      }\r\n    };\r\n  },\r\n  computed: {\r\n    ...mapGetters([\"getProjectPrebidNote\"])\r\n  },\r\n  mounted: function() {\r\n    this.note = { ...this.getProjectPrebidNote };\r\n\r\n    this.$validator.reset();\r\n  },\r\n  methods: {\r\n    async onSubmit() {\r\n      var isFormValid = await this.$validator.validate();\r\n\r\n      if (!isFormValid) {\r\n        return;\r\n      }\r\n\r\n      if (!this.note.createdOn) {\r\n        this.note.createdOn = new Date().toISOString();\r\n      }\r\n\r\n      this.saveProjectPrebidNote(this.note).then(() => {\r\n        let message = this.$createElement('span', {}, [ 'Successfully updated!', this.$createElement('br'), 'Please remember to save your project.']);\r\n        Toast.success(this, [message]);\r\n        this.$bvModal.hide(\"bv-modal-project-prebid-note\");\r\n      });\r\n    },\r\n    closeModal() {\r\n      this.$bvModal.hide(\"bv-modal-project-prebid-note\");\r\n    },\r\n    ...mapActions([\"saveProjectPrebidNote\"])\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-prebid-note.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-prebid-note.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-prebid-note.vue?vue&type=template&id=02737f48&\"\nimport script from \"./project-prebid-note.vue?vue&type=script&lang=js&\"\nexport * from \"./project-prebid-note.vue?vue&type=script&lang=js&\"\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","<template>\r\n<fragment>\r\n  <div class=\"row\">\r\n    <div class=\"col-md-12\">\r\n      <div class=\"row form-title d-flex align-items-center mb-4\">\r\n        <span class=\"rounded-circle bg-primary mr-2 d-flex justify-content-center align-items-center text-white\">6</span>\r\n        <div class=\"d-flex flex-column\">\r\n          <h2 class=\"mb-0\">{{ getNotesHeading() }}</h2>\r\n          <div v-if=\"project.isPrivate\" class=\"small-grey\">These notes will not be displayed to members.</div>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"alert alert-warning\" role=\"alert\" v-if=\"getProjectNotes.length === 0\">\r\n        No project notes available\r\n      </div>\r\n\r\n      <div id=\"admin-note-list\" v-if=\"getProjectNotes.length > 0\">\r\n        <div class=\"admin-note-item col-md-12\" v-for=\"note in getProjectNotes\" :key=\"note.id\">\r\n          <div class=\"row\">\r\n            <h4 class=\"title-text\">{{ note.name }}</h4>\r\n            <a href=\"#\" title=\"Edit Note\" style=\"margin-left: auto\" @click.prevent=\"editProjectNote(note.id)\">Edit</a>\r\n          </div>\r\n          <div class=\"w-100 rounded p-1 px-2\">\r\n            <span style=\"white-space: pre-line;\">{{ note.text }}</span>\r\n          </div>\r\n          <h5 class=\"date-text\">{{ note.createdOn | datetime('MMM dd, yyyy p') }} {{ getClientTimeZone.code }}</h5>\r\n        </div>\r\n      </div>\r\n      <div class=\"row mb-3\">\r\n        <div class=\"col-md-12 text-right\">\r\n          <button type=\"button\" class=\"btn btn-primary\" @click=\"newProjectNote\">\r\n            <i class=\"fas fa-plus\"></i>\r\n            Add New Note\r\n          </button>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <div class=\"col-md d-none d-lg-block\"></div>\r\n\r\n    <div class=\"col-md-12\" v-if=\"showPrebidNotes\">\r\n      <h3 class=\"mb-3\">Prebid Notes</h3>\r\n\r\n      <div class=\"alert alert-warning\" role=\"alert\" v-if=\"getProjectPrebidNotes.length === 0\">\r\n        No prebid notes available\r\n      </div>\r\n\r\n      <div id=\"admin-note-list\" v-if=\"getProjectPrebidNotes.length > 0\">\r\n        <div class=\"admin-note-item col-md-12\" v-for=\"note in getProjectPrebidNotes\" :key=\"note.id\">\r\n          <div class=\"row\">\r\n            <h4 class=\"title-text\">{{ note.name }}</h4>\r\n            <a href=\"#\" title=\"Edit Note\" style=\"margin-left: auto\" @click.prevent=\"editProjectPrebidNote(note.id)\">Edit</a>\r\n          </div>\r\n          <div class=\"w-100 rounded p-1 px-2\">\r\n            <span style=\"white-space: pre-line;\">{{ note.text }}</span>\r\n          </div>\r\n          <h5 class=\"date-text\">{{ note.createdOn | datetime('MMM dd, yyyy p') }} {{ getClientTimeZone.code }}</h5>\r\n        </div>\r\n      </div>\r\n      <div class=\"row mb-3\">\r\n        <div class=\"col-md-12 text-right\">\r\n          <button type=\"button\" class=\"btn btn-primary\" @click=\"newProjectPrebidNote\">\r\n            <i class=\"fas fa-plus\"></i>\r\n            Add New Prebid Note\r\n          </button>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <div class=\"col-md d-none d-lg-block\"></div>\r\n  </div>\r\n\r\n  <b-modal id=\"bv-modal-project-note\" size=\"lg\" hide-header hide-footer :no-close-on-backdrop=\"true\">\r\n    <project-note></project-note>\r\n  </b-modal>\r\n\r\n  <b-modal id=\"bv-modal-project-prebid-note\" size=\"lg\" hide-header hide-footer :no-close-on-backdrop=\"true\">\r\n    <project-prebid-note></project-prebid-note>\r\n  </b-modal>\r\n</fragment>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from \"vuex\";\r\nimport { TenderStages } from \"@/utils/enums\";\r\n\r\nimport ProjectNote from \"@/views/project/components/project-note.vue\";\r\nimport ProjectPrebidNote from \"@/views/project/components/project-prebid-note.vue\";\r\n\r\nexport default {\r\n  name: \"project-notes\",\r\n  components: { ProjectNote, ProjectPrebidNote },\r\n  props: [\"project\"],\r\n  computed: {\r\n    showPrebidNotes () {\r\n      return this.project.tenderStageId === TenderStages.PREBID || (this.$permissions().isSysAdmin || this.$permissions().isClientAdmin);\r\n    },\r\n    ...mapGetters([\"getProjectNotes\", \"getProjectPrebidNotes\", \"getClientTimeZone\"])\r\n  },\r\n    methods: {\r\n      getNotesHeading() {\r\n        return `${!this.project.isPrivate ? \"Admin \" : \"\" }Notes`;\r\n      },\r\n    newProjectNote() {\r\n      this.resetProjectNote().then(() => {\r\n        this.$bvModal.show(\"bv-modal-project-note\");\r\n      });\r\n    },\r\n    newProjectPrebidNote() {\r\n      this.resetProjectPrebidNote().then(() => {\r\n        this.$bvModal.show(\"bv-modal-project-prebid-note\");\r\n      });\r\n    },\r\n    editProjectNote(id) {\r\n      this.fetchProjectNote(id).then(() => {\r\n        this.$bvModal.show(\"bv-modal-project-note\");\r\n      });\r\n    },\r\n    editProjectPrebidNote(id) {\r\n      this.fetchProjectPrebidNote(id).then(() => {\r\n        this.$bvModal.show(\"bv-modal-project-prebid-note\");\r\n      });\r\n    },\r\n    ...mapActions([\"fetchProjectNote\", \"fetchProjectPrebidNote\", \"resetProjectNote\", \"resetProjectPrebidNote\"])\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-step-notes.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-step-notes.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-step-notes.vue?vue&type=template&id=2f26d11b&\"\nimport script from \"./project-step-notes.vue?vue&type=script&lang=js&\"\nexport * from \"./project-step-notes.vue?vue&type=script&lang=js&\"\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 _c('fragment',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('div',{staticClass:\"row form-title d-flex align-items-center mb-4\"},[_c('span',{staticClass:\"rounded-circle bg-primary mr-2 d-flex justify-content-center align-items-center text-white\"},[_vm._v(\"7\")]),_c('h2',{staticClass:\"m-0\"},[_vm._v(\"Follow Up Tasks\")])]),_c('div',{staticClass:\"follow-up-task-list\"},[(_vm.getProjectTasks.length === 0)?_c('div',{staticClass:\"alert alert-warning\",attrs:{\"role\":\"alert\"}},[_vm._v(\" No follow up tasks available \")]):_vm._e(),(_vm.getProjectTasks.length > 0)?_c('table',{staticClass:\"table\"},[_c('thead',[_c('tr',[_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Task\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Due Date\")]),_c('th',{staticStyle:{\"width\":\"100px\"},attrs:{\"scope\":\"col\"}}),_c('th',{staticStyle:{\"width\":\"100px\"},attrs:{\"scope\":\"col\"}})])]),_c('tbody',_vm._l((_vm.sortedTasks),function(task){return _c('tr',{key:task.id,staticClass:\"follow-up-task-item\"},[_c('td',[_c('div',{staticClass:\"custom-control custom-checkbox mb-3\"},[_c('input',{staticClass:\"custom-control-input\",attrs:{\"id\":'task-completed-flag-' + task.id,\"name\":'task-completed-flag-' + task.id,\"type\":\"checkbox\"},domProps:{\"checked\":task.isCompleted,\"value\":task.id},on:{\"change\":function($event){return _vm.updateTaskCompletedFlag($event)}}}),_c('label',{staticClass:\"custom-control-label\",attrs:{\"for\":'task-completed-flag-' + task.id}},[_vm._v(_vm._s(task.text))])])]),_c('td',[_vm._v(_vm._s(_vm._f(\"datetime\")(task.dueDate,'MMM dd, yyyy p'))+\" \"+_vm._s(_vm.selectedTimeZone.code))]),_c('td',[_c('a',{staticClass:\"d-flex justify-content-between align-items-center flex-column\",attrs:{\"role\":\"button\",\"href\":\"#\",\"title\":\"Manage\"},on:{\"click\":function($event){$event.preventDefault();return _vm.editProjectTask(task.id)}}},[_c('img',{staticClass:\"mb-1\",attrs:{\"src\":require(\"@/assets/document.svg\"),\"alt\":\"\"}}),_c('span',{staticClass:\"small-grey\"},[_vm._v(\"Manage\")])])]),_c('td',[_c('a',{staticClass:\"d-flex justify-content-between align-items-center flex-column\",attrs:{\"role\":\"button\",\"href\":\"#\",\"title\":\"Manage\"},on:{\"click\":function($event){$event.preventDefault();return _vm.deleteProjectTask(task.id)}}},[_c('img',{staticClass:\"mb-1\",attrs:{\"src\":require(\"@/assets/document.svg\"),\"alt\":\"\"}}),_c('span',{staticClass:\"small-grey\"},[_vm._v(\"Remove\")])])])])}),0)]):_vm._e()]),_c('div',{staticClass:\"row mb-3\"},[_c('div',{staticClass:\"col-md-12 text-right\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.newProjectTask}},[_c('i',{staticClass:\"fas fa-plus\"}),_vm._v(\" Add New Task \")])])])]),_c('div',{staticClass:\"col-md d-none d-lg-block\"})]),_c('b-modal',{attrs:{\"id\":\"bv-modal-project-task\",\"size\":\"lg\",\"hide-header\":\"\",\"hide-footer\":\"\",\"no-close-on-backdrop\":true}},[_c('project-task',{attrs:{\"timeZoneCode\":_vm.selectedTimeZone.code}})],1)],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('fragment',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('div',{staticClass:\"modal-header\"},[_c('h5',{staticClass:\"modal-title\",attrs:{\"id\":\"exampleModalLabel\"}},[_vm._v(\"New Follow Up Task\")])]),_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"details\"}},[_vm._v(\"Text \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.task.text),expression:\"task.text\"}],staticClass:\"form-control\",class:{ 'is-invalid': _vm.errors.has('details') },attrs:{\"id\":\"details\",\"name\":\"details\",\"type\":\"text\",\"autocomplete\":\"off\",\"placeholder\":\"Enter task details\",\"data-vv-as\":\"Text\"},domProps:{\"value\":(_vm.task.text)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.task, \"text\", $event.target.value)}}}),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Text field is required\")])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"taskDueDate\"}},[_vm._v(\"Due Date \"),_c('span',{staticClass:\"red-dot ml-3\"})]),_c('div',{staticClass:\"input-group mb-2\"},[_c('div',{staticClass:\"input-group-prepend\"},[_c('span',{staticClass:\"input-group-text bg-transparent pr-2\"},[_c('img',{attrs:{\"src\":require(\"@/assets/cal.svg\"),\"alt\":\"\"}})])]),_c('date-picker',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"form-control date-picker-input\",class:{ 'is-invalid': _vm.errors.has('taskDueDate') },attrs:{\"id\":\"taskDueDate\",\"name\":\"taskDueDate\",\"autocomplete\":\"off\",\"config\":_vm.datepickerOptions,\"data-vv-as\":\"Due Date\"},model:{value:(_vm.task.dueDate),callback:function ($$v) {_vm.$set(_vm.task, \"dueDate\", $$v)},expression:\"task.dueDate\"}}),_c('div',{staticClass:\"input-group-append\"},[_c('span',{staticClass:\"input-group-text\"},[_vm._v(_vm._s(_vm.timeZoneCode))])]),_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"The Due Date field is required\")])],1)])]),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Save\")]),_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.closeModal}},[_vm._v(\"Close\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <fragment>\r\n    <form v-on:submit.prevent=\"onSubmit\">\r\n      <div class=\"modal-header\">\r\n        <h5 class=\"modal-title\" id=\"exampleModalLabel\">New Follow Up Task</h5>\r\n      </div>\r\n      <div class=\"modal-body\">\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"details\">Text <span class=\"red-dot ml-3\"></span></label>\r\n          <input id=\"details\" name=\"details\" type=\"text\" class=\"form-control\" :class=\"{ 'is-invalid': errors.has('details') }\"\r\n            autocomplete=\"off\" placeholder=\"Enter task details\" v-validate=\"'required'\" v-model=\"task.text\" data-vv-as=\"Text\" />\r\n          <div class=\"invalid-feedback\">The Text field is required</div>\r\n        </div>\r\n\r\n        <div class=\"form-group\">\r\n          <label for=\"taskDueDate\">Due Date <span class=\"red-dot ml-3\"></span></label>\r\n          <div class=\"input-group mb-2\">\r\n            <div class=\"input-group-prepend\">\r\n              <span class=\"input-group-text bg-transparent pr-2\">\r\n                <img src=\"@/assets/cal.svg\" alt />\r\n              </span>\r\n            </div>\r\n            <date-picker id=\"taskDueDate\" name=\"taskDueDate\" class=\"form-control date-picker-input\" :class=\"{ 'is-invalid': errors.has('taskDueDate') }\"\r\n              autocomplete=\"off\" v-model=\"task.dueDate\" :config=\"datepickerOptions\" v-validate=\"'required'\" data-vv-as=\"Due Date\">\r\n            </date-picker>\r\n            <div class=\"input-group-append\">\r\n              <span class=\"input-group-text\">{{ timeZoneCode }}</span>\r\n            </div>\r\n            <div class=\"invalid-feedback\">The Due Date field is required</div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"modal-footer\">\r\n        <button type=\"submit\" class=\"btn btn-success\">Save</button>\r\n        <button type=\"button\" class=\"btn btn-secondary\" @click=\"closeModal\">Close</button>\r\n      </div>\r\n    </form>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from \"vuex\";\r\nimport DatePicker from \"vue-bootstrap-datetimepicker\";\r\nimport Toast from \"@/utils/toast\";\r\n\r\nexport default {\r\n  name: \"project-task\",\r\n  components: { DatePicker },\r\n  props: [\"timeZoneCode\"],\r\n  data: function() {\r\n    return {\r\n      task: {\r\n        id: null,\r\n        dueDate: null,\r\n        isCompleted: false,\r\n        text: null\r\n      },\r\n      datepickerOptions: {\r\n        useCurrent: false,\r\n        sideBySide: true\r\n      }\r\n    };\r\n  },\r\n  computed: {\r\n    ...mapGetters([\"getProjectTask\"])\r\n  },\r\n  mounted: function() {\r\n    this.task = { ...this.getProjectTask };\r\n\r\n    if (this.task.dueDate) {\r\n      this.task.dueDate = new Date(this.task.dueDate);\r\n    }\r\n\r\n    this.$validator.reset();\r\n  },\r\n  methods: {\r\n    async onSubmit() {\r\n      var isFormValid = await this.$validator.validate();\r\n\r\n      if (!isFormValid) {\r\n        return;\r\n      }\r\n\r\n      this.saveProjectTask(this.task).then(() => {\r\n        let message = this.$createElement('span', {}, ['Successfully updated!', this.$createElement('br'), 'Please remember to save your project.']);\r\n        Toast.success(this, [message]);\r\n        this.$bvModal.hide(\"bv-modal-project-task\");\r\n      });\r\n    },\r\n    closeModal() {\r\n      this.$bvModal.hide(\"bv-modal-project-task\");\r\n    },\r\n    ...mapActions([\"saveProjectTask\"])\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-task.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-task.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-task.vue?vue&type=template&id=0d334f06&\"\nimport script from \"./project-task.vue?vue&type=script&lang=js&\"\nexport * from \"./project-task.vue?vue&type=script&lang=js&\"\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","<template>\r\n  <fragment>\r\n    <div class=\"row\">\r\n      <div class=\"col-md-12\">\r\n        <div class=\"row form-title d-flex align-items-center mb-4\">\r\n          <span class=\"rounded-circle bg-primary mr-2 d-flex justify-content-center align-items-center text-white\">7</span>\r\n          <h2 class=\"m-0\">Follow Up Tasks</h2>\r\n        </div>\r\n\r\n        <div class=\"follow-up-task-list\">\r\n          <div class=\"alert alert-warning\" role=\"alert\" v-if=\"getProjectTasks.length === 0\">\r\n            No follow up tasks available\r\n          </div>\r\n\r\n          <table class=\"table\" v-if=\"getProjectTasks.length > 0\">\r\n            <thead>\r\n              <tr>\r\n                <th scope=\"col\">Task</th>\r\n                <th scope=\"col\">Due Date</th>\r\n                <th scope=\"col\" style=\"width: 100px\">&nbsp;</th>\r\n                <th scope=\"col\" style=\"width: 100px\">&nbsp;</th>\r\n              </tr>\r\n            </thead>\r\n            <tbody>\r\n              <tr class=\"follow-up-task-item\" v-for=\"task in sortedTasks\" :key=\"task.id\">\r\n                <td>\r\n                  <div class=\"custom-control custom-checkbox mb-3\">\r\n                    <input :id=\"'task-completed-flag-' + task.id\" :name=\"'task-completed-flag-' + task.id\" type=\"checkbox\" class=\"custom-control-input\"\r\n                      :checked=\"task.isCompleted\" :value=\"task.id\" @change=\"updateTaskCompletedFlag($event)\">\r\n                    <label class=\"custom-control-label\" :for=\"'task-completed-flag-' + task.id\">{{ task.text }}</label>\r\n                  </div>\r\n                </td>\r\n                <td>{{ task.dueDate | datetime('MMM dd, yyyy p') }} {{ selectedTimeZone.code }}</td>\r\n                <td>\r\n                  <a role=\"button\" href=\"#\" class=\"d-flex justify-content-between align-items-center flex-column\" title=\"Manage\" @click.prevent=\"editProjectTask(task.id)\">\r\n                    <img class=\"mb-1\" src=\"@/assets/document.svg\" alt />\r\n                    <span class=\"small-grey\">Manage</span>\r\n                  </a>\r\n                </td>\r\n                <td>\r\n                  <a role=\"button\" href=\"#\" class=\"d-flex justify-content-between align-items-center flex-column\" title=\"Manage\" @click.prevent=\"deleteProjectTask(task.id)\">\r\n                    <img class=\"mb-1\" src=\"@/assets/document.svg\" alt />\r\n                    <span class=\"small-grey\">Remove</span>\r\n                  </a>\r\n                </td>\r\n              </tr>\r\n            </tbody>\r\n          </table>\r\n        </div>\r\n        <div class=\"row mb-3\">\r\n          <div class=\"col-md-12 text-right\">\r\n            <button type=\"button\" class=\"btn btn-primary\" @click=\"newProjectTask\">\r\n              <i class=\"fas fa-plus\"></i>\r\n              Add New Task\r\n            </button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div class=\"col-md d-none d-lg-block\"></div>\r\n    </div>\r\n    <b-modal id=\"bv-modal-project-task\" size=\"lg\" hide-header hide-footer :no-close-on-backdrop=\"true\">\r\n      <project-task :timeZoneCode=\"selectedTimeZone.code\"></project-task>\r\n    </b-modal>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from \"vuex\";\r\nimport sortBy from \"lodash/sortBy\";\r\nimport Toast from \"@/utils/toast\";\r\nimport MessageBox from \"@/utils/messagebox\";\r\nimport ProjectTask from \"@/views/project/components/project-task.vue\";\r\n\r\nexport default {\r\n  name: \"project-step-tasks\",\r\n  components: { ProjectTask },\r\n  props: [\"selectedTimeZone\"],\r\n  computed: {\r\n    ...mapGetters([\"getProjectTasks\"]),\r\n    sortedTasks() {\r\n      return sortBy(this.getProjectTasks, [\r\n        function(task) {\r\n          return task.isCompleted;\r\n        },\r\n        \"dueDate\"\r\n      ]);\r\n    }\r\n  },\r\n  methods: {\r\n    newProjectTask() {\r\n      this.resetProjectTask().then(() => {\r\n        this.$bvModal.show(\"bv-modal-project-task\");\r\n      });\r\n    },\r\n    editProjectTask(id) {\r\n      this.fetchProjectTask(id).then(() => {\r\n        this.$bvModal.show(\"bv-modal-project-task\");\r\n      });\r\n    },\r\n    updateTaskCompletedFlag(e) {\r\n      let id = e.target.value;\r\n      let completed = e.target.checked;\r\n\r\n      this.updateProjectTaskCompletedFlag({ id, completed });\r\n    },\r\n    async deleteProjectTask(id) {\r\n      let confirm = await MessageBox.confirm(\r\n        this,\r\n        \"Remove Task\",\r\n        \"Are you sure you want to remove task\"\r\n      );\r\n\r\n      if (confirm) {\r\n        this.removeProjectTask(id).then(() => {\r\n          Toast.success(this, \"Successfully removed task!\");\r\n        });\r\n      }\r\n    },\r\n    ...mapActions([\r\n      \"fetchProjectTask\",\r\n      \"resetProjectTask\",\r\n      \"updateProjectTaskCompletedFlag\",\r\n      \"removeProjectTask\"\r\n    ])\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-step-tasks.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-step-tasks.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./project-step-tasks.vue?vue&type=template&id=0aa571c5&\"\nimport script from \"./project-step-tasks.vue?vue&type=script&lang=js&\"\nexport * from \"./project-step-tasks.vue?vue&type=script&lang=js&\"\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","<template>\r\n  <fragment>\r\n    <div class=\"main_page\">\r\n      <app-navbar></app-navbar>\r\n      <div class=\"page\">\r\n        <loading :active.sync=\"isPageLoading\" is-full-page :zIndex=\"2147483639\"></loading>\r\n        <div v-if=\"!isPageLoading\">\r\n\r\n          <div class=\"page-title\">\r\n            <h1>Project Form</h1>\r\n          </div>\r\n\r\n          <div class=\"page-content\">\r\n\r\n            <div class=\"alert alert-warning mb-5\" v-if=\"projectData.isPrivate\">\r\n              <i class=\"fas fa-exclamation-triangle mr-2\"></i>\r\n              This is a private project and can only be seen by those who are invited.\r\n            </div>\r\n\r\n            <form v-on:submit.prevent=\"onSubmit\">\r\n              <div v-if=\"isEdit\">\r\n                <div v-if=\"showSendToBCBid && getProject.sentReportToBCBid != null\" class=\"row d-flex justify-content-end\">\r\n                  <strong class=\"mr-1\">Last Sent:</strong><br /><span class=\"mr-1\">{{getProject.sentReportToBCBid.occurrence | datetime}}</span>\r\n                </div>\r\n                <div class=\"row d-flex justify-content-end\">\r\n                  <menu class=\"d-flex align-items-center justify-content-end m-0\">\r\n                    <button type=\"button\" class=\"btn btn-secondary p-2 text-dark ml-2 px-3 py-2 rounded\"\r\n                            :disabled=\"!projectData.followers || !projectData.followers.length\" @click=\"emailFollowers\">\r\n                      <i class=\"far fa-envelope\"></i>\r\n                      Email Followers\r\n                    </button>\r\n                    <router-link :to=\"'/project/info/' + this.projectData.id\" class=\"btn btn-secondary p-2 text-dark ml-2 px-3 py-2 rounded\" title=\"View Project\">\r\n                      <i class=\"far fa-eye\"></i>\r\n                      Member View\r\n                    </router-link>\r\n                    <button v-if=\"showSendToBCBid\" type=\"button\" class=\"btn btn-secondary p-2 text-dark ml-2 px-3 py-2 rounded\" :class=\"{ 'running' : isSendingToBCBid }\"\r\n                        :disabled=\"!canSendToBCBid || isSendingToBCBid\" @click=\"sendToBCBid\">\r\n                      <i v-if=\"!isSendingToBCBid\" class=\"fas fa-share-square\"></i>\r\n                      <div v-else class=\"ld ld-ring ld-spin\"></div>\r\n\r\n                      <span class=\"ml-2\">{{ !isSendingToBCBid ? \"Send to BC Bid\" : \"Sending -- Please wait\"}}</span>\r\n                    </button>\r\n                  </menu>\r\n                </div>\r\n\r\n\r\n              </div>\r\n\r\n              <div class=\"alert alert-danger alert-validation-summary-errors\" v-if=\"errors.any()\">\r\n                <button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button>\r\n                <strong class=\"alert-heading\">Please review the following errors</strong>\r\n                <ul>\r\n                  <li v-for=\"error in errors.all()\" :key=\"error\" class=\"error-message\">{{ error }}</li>\r\n                </ul>\r\n              </div>\r\n\r\n              <project-step-identification :project.sync=\"projectData\" :zones=\"zones\"></project-step-identification>\r\n              <hr />\r\n\r\n              <project-step-details :project.sync=\"projectData\" :provinces=\"provinces\" :selectedTimeZone=\"getSelectedTimeZone\"></project-step-details>\r\n              <hr />\r\n\r\n              <project-step-description :project.sync=\"projectData\"></project-step-description>\r\n              <hr />\r\n\r\n              <project-step-contacts :project.sync=\"projectData\"></project-step-contacts>\r\n              <hr />\r\n\r\n              <project-step-documents :isNewProject=\"!isEdit\" :project=\"projectData\" :rootFolderId=\"projectData.rootFolderId\"></project-step-documents>\r\n              <hr />\r\n\r\n              <project-step-notes :project.sync=\"projectData\"></project-step-notes>\r\n              <hr />\r\n\r\n              <project-step-tasks :selectedTimeZone=\"getSelectedTimeZone\"></project-step-tasks>\r\n              <hr />\r\n            </form>\r\n\r\n            <div class=\"mt-3 mb-3 d-flex \">\r\n              <div class=\"flex-fill\" v-if=\"projectData.createdOn || projectData.updatedOn\">\r\n                <div class=\"d-flex flex-column mb-3\">\r\n                  <div>Created By: {{ projectData.createdBy | fullname }}</div>\r\n                  <div>Created On: {{ projectData.createdOn | datetime('MMMM dd, yyyy h:mmaa') }} <span v-if=\"projectData.createdOn\">{{ this.getClientTimeZone.code }}</span></div>\r\n                  <div>Last Updated By: {{ projectData.updatedBy | fullname }}</div>\r\n                  <div>Last Updated On: {{ projectData.updatedOn | datetime('MMMM dd, yyyy h:mmaa') }} <span v-if=\"projectData.updatedOn\">{{ this.getClientTimeZone.code }}</span></div>\r\n                </div>\r\n              </div>\r\n              <div class=\"p-2 flex-fill \">&nbsp;</div>\r\n              <div class=\"p-2 flex-fill \">&nbsp;</div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <div id=\"save-bar-wrapper\" class=\"d-print-none\">\r\n      <div>\r\n        <button type=\"submit\" class=\"save-bar-Button ld-ext-right\" :class=\"{ 'running' : isSaving }\" @click=\"onSubmit()\" :disabled=\"isSaving\">\r\n          <span v-if=\"isSaving\">Saving...</span>\r\n          <span v-else>Save</span>\r\n          <div class=\"ld ld-ring ld-spin\"></div>\r\n        </button>\r\n\r\n        <button type=\"submit\" class=\"save-bar-Button ml-2\" @click=\"goToTop()\">\r\n          <i class=\"fas fa-arrow-alt-circle-up\"></i>\r\n          Back to Top\r\n        </button>\r\n      </div>\r\n    </div>\r\n\r\n    <b-modal id=\"bv-modal-email-followers\" size=\"lg\" hide-header hide-footer :no-close-on-backdrop=\"true\" :no-enforce-focus=\"true\">\r\n      <app-send-email target-modal=\"bv-modal-email-followers\"\r\n                      :records=\"projectFollowers\"\r\n                      :autoSelect=\"true\"\r\n                      :subject=\"defaultFollowerEmailSubjectText\"\r\n                      :body=\"defaultFollowerEmailBodyText\"\r\n                      :enable-include-me=\"true\">\r\n      </app-send-email>\r\n    </b-modal>\r\n  </fragment>\r\n</template>\r\n\r\n<script>\r\n  import AppNavBar from \"@/components/app-navbar.vue\";\r\n  import ProjectStepIdentification from \"@/views/project/components/project-step-identification.vue\";\r\n  import ProjectStepDetails from \"@/views/project/components/project-step-details.vue\";\r\n  import ProjectStepDescription from \"@/views/project/components/project-step-description.vue\";\r\n  import ProjectStepContacts from \"@/views/project/components/project-step-contacts.vue\";\r\n  import ProjectStepDocuments from \"@/views/project/components/project-step-documents.vue\";\r\n  import ProjectStepNotes from \"@/views/project/components/project-step-notes.vue\";\r\n  import ProjectStepTasks from \"@/views/project/components/project-step-tasks.vue\";\r\n  import AppSendEmail from \"@/components/modals/app-send-email.vue\";\r\n\r\n  import { mapGetters, mapActions } from \"vuex\";\r\n  import { ProjectService } from \"@/services/\";\r\n  import Toast from \"@/utils/toast\";\r\n\r\n  export default {\r\n    components: {\r\n      \"app-navbar\": AppNavBar,\r\n      ProjectStepIdentification,\r\n      ProjectStepDetails,\r\n      ProjectStepDescription,\r\n      ProjectStepContacts,\r\n      ProjectStepDocuments,\r\n      ProjectStepNotes,\r\n      ProjectStepTasks,\r\n      AppSendEmail\r\n    },\r\n    provide() {\r\n      return {\r\n        $validator: this.$validator\r\n      };\r\n    },\r\n    data: function () {\r\n      return {\r\n        isSaving: false,\r\n        isPageLoading: true,\r\n        isEdit: false,\r\n        projectData: {\r\n          shareWithZones: [],\r\n          classificationOfWorks: [],\r\n          ShowProject: false,\r\n          TradeAgreementIds: []\r\n        },\r\n        participantTypes: [],\r\n        classificationTypes: [],\r\n        contactTypes: [],\r\n        fundingTypes: [],\r\n        ownerTypes: [],\r\n        procurementTypes: [],\r\n        provinces: [],\r\n        tenderStages: [],\r\n        tradeAgreements: [],\r\n        zones: [],\r\n        projectFollowers: [],\r\n        defaultFollowerEmailSubjectText: null,\r\n        defaultFollowerEmailBodyText: null,\r\n        timeZones: [],\r\n        isSendingToBCBid: false\r\n      };\r\n    },\r\n    computed: {\r\n      canSendToBCBid () {\r\n        return Date.now() < Date.parse(this.projectData.closingDate);\r\n      },\r\n      getSelectedTimeZone() {\r\n        let selectedTimeZoneId = this.projectData.timeZone.id || this.getClientTimeZone.id;\r\n        return this.timeZones.find(t => t.id === selectedTimeZoneId);\r\n      },\r\n      showSendToBCBid() {\r\n        return (this.getUseSendToBCBid || '').toUpperCase() === 'TRUE' && (this.$permissions().isSysAdmin || this.$permissions().isClientAdmin);\r\n      },\r\n      ...mapGetters([\"getProject\", \"getClientTimeZone\", \"getCurrentUser\", \"getUseSendToBCBid\"])\r\n    },\r\n    methods: {\r\n      ...mapActions([\r\n        \"fetchClientSettings\",\r\n        \"fetchProject\",\r\n        \"fetchLookup\",\r\n        \"fetchContactTypes\",\r\n        \"fetchFundingTypes\",\r\n        \"fetchZones\",\r\n        \"fetchParticipantTypes\",\r\n        \"fetchProvinces\",\r\n        \"fetchCountries\",\r\n        \"fetchTenderStages\",\r\n        \"fetchProcurementTypes\",\r\n        \"fetchOwners\",\r\n        \"fetchOwnersByProject\",\r\n        \"fetchOwnerTypes\",\r\n        \"fetchClassificationTypes\",\r\n        \"fetchTradeAgreements\",\r\n        \"saveProject\",\r\n        \"fetchTimeZones\",\r\n        \"fetchUser\"\r\n      ]),\r\n      emailFollowers() {\r\n        this.$bvModal.show(\"bv-modal-email-followers\");\r\n      },\r\n      goToTop() {\r\n        window.scrollTo(0, 0);\r\n      },\r\n      async onSubmit() {\r\n        var isFormValid = await this.$validator.validate();\r\n\r\n        if (!isFormValid) {\r\n          window.scrollTo(0, 0);\r\n          return;\r\n        }\r\n\r\n        if (this.projectData.isPrivate){\r\n          this.projectData.showProject = true;\r\n        }\r\n\r\n        this.isSaving = true;\r\n\r\n        this.saveProject({ data: this.projectData, isEdit: this.isEdit })\r\n          .then(project => {\r\n            this.projectData = project;\r\n            Toast.success(this, \"Successfully saved!\");\r\n            this.isSaving = false;\r\n\r\n            if (this.isEdit === false) {\r\n              this.$router.push(\"/project/edit/\" + project.id);\r\n            }\r\n          })\r\n          .catch(() => {\r\n            Toast.danger(this, \"Oops! There was an error.\");\r\n            this.isSaving = false;\r\n          });\r\n      },\r\n      sendToBCBid() {\r\n        this.isSendingToBCBid = true;\r\n        ProjectService.sendToBCBid(this.$route.params.id)\r\n          .then(() => {\r\n            this.isSendingToBCBid = false;\r\n            Toast.success(this, \"This project's data has been sent to BC Bid.\");\r\n          })\r\n          .catch(() => {\r\n            this.isSendingToBCBid = false;\r\n            Toast.danger(this, \"Oops! There was an error.\");\r\n          });\r\n      }\r\n    },\r\n    mounted: function () {\r\n      this.isEdit = !!this.$route.params.id;\r\n\r\n      Promise.all([\r\n        Promise.resolve({}),//this.fetchLookup(),\r\n        this.fetchClassificationTypes(),\r\n        this.fetchClientSettings(),\r\n        this.fetchContactTypes(),\r\n        this.fetchFundingTypes(),\r\n        Promise.resolve({}), //this.$route.params.id ? this.fetchOwnersByProject(this.$route.params.id) : this.fetchOwners(),\r\n        this.fetchOwnerTypes(),\r\n        this.fetchParticipantTypes(),\r\n        this.fetchProcurementTypes(),\r\n        this.fetchProvinces(),\r\n        this.fetchCountries(),\r\n        this.fetchTenderStages(),\r\n        this.fetchTradeAgreements(),\r\n        this.fetchZones(),\r\n        this.fetchProject(this.$route.params.id),\r\n        this.fetchTimeZones(),\r\n        this.fetchUser(this.getCurrentUser.id)\r\n      ])\r\n        .then(result => {\r\n          //this.companyLookup = result[0];\r\n          this.classificationTypes = result[1];\r\n          this.contactTypes = result[3];\r\n          this.fundingTypes = result[4];\r\n          //this.owners = result[5];\r\n          this.ownerTypes = result[6];\r\n          this.participantTypes = result[7];\r\n          this.procurementTypes = result[8];\r\n          this.provinces = result[9];\r\n          this.countries = result[10]\r\n          this.tenderStages = result[11];\r\n          this.tradeAgreements = result[12];\r\n          this.zones = result[13];\r\n          this.timeZones = result[15];\r\n\r\n          let user = result[16];\r\n          if (!user.isClientAdmin && !user.isSystemAdmin) {\r\n            let membershipZones = user.companies.map(function (e) { return e.memberships.map(({ zoneId }) => zoneId); }).flat();\r\n            this.zones = this.zones.filter(r => membershipZones.indexOf(r.id) > -1);\r\n          }\r\n\r\n          this.projectData = this.getProject;\r\n          this.isPageLoading = false;\r\n          this.projectFollowers = this.projectData.followers.map(follower => ({ name: `${follower.firstName} ${follower.lastName}`, email: follower.email }));\r\n\r\n          this.defaultFollowerEmailSubjectText = 'Project Update: ' + this.projectData.ocaaNumber + ' - ' + this.projectData.title;\r\n          this.defaultFollowerEmailBodyText = `<p><a href=\"${document.location.origin}/project/info/${this.projectData.id}\">Link to Project</a></p>`;\r\n        })\r\n        .catch(err => {\r\n          if (err && err.response && err.response.data && err.response.data.message && err.response.data.message === 'The request is invalid.') {\r\n            let message = this.$createElement('span', {}, ['Oops! You managed to get to an area you do not have permission to visit', this.$createElement('br'), 'Redirecting back to dashboard']);\r\n            Toast.danger(this, [message], { autoHideDelay: 7500 });\r\n\r\n            this.$router.push('/dashboard');\r\n            return;\r\n          }\r\n\r\n          this.isPageLoading = false;\r\n          let message = this.$createElement('span', {}, ['Oops! An error has occured and some data could not be loaded', this.$createElement('br'), 'Please contact an administrator']);\r\n          Toast.danger(this, [message], { autoHideDelay: 7500 });\r\n        });\r\n    }\r\n  };\r\n</script>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./create.vue?vue&type=template&id=17367cf0&\"\nimport script from \"./create.vue?vue&type=script&lang=js&\"\nexport * from \"./create.vue?vue&type=script&lang=js&\"\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","export default {\r\n  methods: {\r\n    getAddressDisplay(address) {\r\n      if (!address) return null;\r\n\r\n      let displayString = '';\r\n      let { street, city, province, postalCode } = address;\r\n      const builder = (s, a, comp, sc = true, ss = true) => { s = s + a; if (comp && sc) s = s + \",\"; if (comp && ss) s = s + \" \"; return s; }\r\n\r\n      if (street) displayString = builder(displayString, street, (city || province || postalCode), true, true);\r\n      if (city) displayString = builder(displayString, city, (province || postalCode), province ? false : true, true);\r\n      if (province) displayString = builder(displayString, displayString === '' ? province.name : province.abbreviation, postalCode, true, true);\r\n      if (postalCode) displayString = builder(displayString, postalCode, false);\r\n\r\n      return displayString;\r\n    }\r\n  }\r\n}\r\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n  start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n  return function() {\n    var args = arguments,\n        index = -1,\n        length = nativeMax(args.length - start, 0),\n        array = Array(length);\n\n    while (++index < length) {\n      array[index] = args[start + index];\n    }\n    index = -1;\n    var otherArgs = Array(start + 1);\n    while (++index < start) {\n      otherArgs[index] = args[index];\n    }\n    otherArgs[start] = transform(array);\n    return apply(func, this, otherArgs);\n  };\n}\n\nmodule.exports = overRest;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-documents-move-files.vue?vue&type=style&index=0&id=0da5260e&scoped=true&lang=css&\"","var baseEach = require('./_baseEach');\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n  baseEach(collection, function(value, key, collection) {\n    setter(accumulator, value, iteratee(value), collection);\n  });\n  return accumulator;\n}\n\nmodule.exports = baseAggregator;\n","module.exports = __webpack_public_path__ + \"img/document.fac8cbfe.svg\";","module.exports = __webpack_public_path__ + \"img/cal.c57fd2df.svg\";","var arrayAggregator = require('./_arrayAggregator'),\n    baseAggregator = require('./_baseAggregator'),\n    baseIteratee = require('./_baseIteratee'),\n    isArray = require('./isArray');\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n  return function(collection, iteratee) {\n    var func = isArray(collection) ? arrayAggregator : baseAggregator,\n        accumulator = initializer ? initializer() : {};\n\n    return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n  };\n}\n\nmodule.exports = createAggregator;\n","var arrayPush = require('./_arrayPush'),\n    isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n  var index = -1,\n      length = array.length;\n\n  predicate || (predicate = isFlattenable);\n  result || (result = []);\n\n  while (++index < length) {\n    var value = array[index];\n    if (depth > 0 && predicate(value)) {\n      if (depth > 1) {\n        // Recursively flatten arrays (susceptible to call stack limits).\n        baseFlatten(value, depth - 1, predicate, isStrict, result);\n      } else {\n        arrayPush(result, value);\n      }\n    } else if (!isStrict) {\n      result[result.length] = value;\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseFlatten;\n","var baseAssignValue = require('./_baseAssignValue'),\n    createAggregator = require('./_createAggregator');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n  if (hasOwnProperty.call(result, key)) {\n    result[key].push(value);\n  } else {\n    baseAssignValue(result, key, [value]);\n  }\n});\n\nmodule.exports = groupBy;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n  return function() {\n    return value;\n  };\n}\n\nmodule.exports = constant;\n","/*!\n * Name: vue-upload-component\n * Version: 2.8.20\n * Author: LianYue\n */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' && define.amd ? define(factory) :\n  (global.VueUploadComponent = factory());\n}(this, (function () { 'use strict';\n\n  /**\n   * Creates a XHR request\n   *\n   * @param {Object} options\n   */\n  var createRequest = function createRequest(options) {\n    var xhr = new XMLHttpRequest();\n    xhr.open(options.method || 'GET', options.url);\n    xhr.responseType = 'json';\n    if (options.headers) {\n      Object.keys(options.headers).forEach(function (key) {\n        xhr.setRequestHeader(key, options.headers[key]);\n      });\n    }\n\n    return xhr;\n  };\n\n  /**\n   * Sends a XHR request with certain body\n   *\n   * @param {XMLHttpRequest} xhr\n   * @param {Object} body\n   */\n  var sendRequest = function sendRequest(xhr, body) {\n    return new Promise(function (resolve, reject) {\n      xhr.onload = function () {\n        if (xhr.status >= 200 && xhr.status < 300) {\n          var response;\n          try {\n            response = JSON.parse(xhr.response);\n          } catch (err) {\n            response = xhr.response;\n          }\n          resolve(response);\n        } else {\n          reject(xhr.response);\n        }\n      };\n      xhr.onerror = function () {\n        return reject(xhr.response);\n      };\n      xhr.send(JSON.stringify(body));\n    });\n  };\n\n  /**\n   * Sends a XHR request with certain form data\n   *\n   * @param {XMLHttpRequest} xhr\n   * @param {Object} data\n   */\n  var sendFormRequest = function sendFormRequest(xhr, data) {\n    var body = new FormData();\n    for (var name in data) {\n      body.append(name, data[name]);\n    }\n\n    return new Promise(function (resolve, reject) {\n      xhr.onload = function () {\n        if (xhr.status >= 200 && xhr.status < 300) {\n          var response;\n          try {\n            response = JSON.parse(xhr.response);\n          } catch (err) {\n            response = xhr.response;\n          }\n          resolve(response);\n        } else {\n          reject(xhr.response);\n        }\n      };\n      xhr.onerror = function () {\n        return reject(xhr.response);\n      };\n      xhr.send(body);\n    });\n  };\n\n  /**\n   * Creates and sends XHR request\n   *\n   * @param {Object} options\n   *\n   * @returns Promise\n   */\n  function request (options) {\n    var xhr = createRequest(options);\n\n    return sendRequest(xhr, options.body);\n  }\n\n  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n  var ChunkUploadHandler = function () {\n    /**\n     * Constructor\n     *\n     * @param {File} file\n     * @param {Object} options\n     */\n    function ChunkUploadHandler(file, options) {\n      _classCallCheck(this, ChunkUploadHandler);\n\n      this.file = file;\n      this.options = options;\n    }\n\n    /**\n     * Gets the max retries from options\n     */\n\n\n    _createClass(ChunkUploadHandler, [{\n      key: 'createChunks',\n\n\n      /**\n       * Creates all the chunks in the initial state\n       */\n      value: function createChunks() {\n        this.chunks = [];\n\n        var start = 0;\n        var end = this.chunkSize;\n        while (start < this.fileSize) {\n          this.chunks.push({\n            blob: this.file.file.slice(start, end),\n            startOffset: start,\n            active: false,\n            retries: this.maxRetries\n          });\n          start = end;\n          end = start + this.chunkSize;\n        }\n      }\n\n      /**\n       * Updates the progress of the file with the handler's progress\n       */\n\n    }, {\n      key: 'updateFileProgress',\n      value: function updateFileProgress() {\n        this.file.progress = this.progress;\n      }\n\n      /**\n       * Paues the upload process\n       * - Stops all active requests\n       * - Sets the file not active\n       */\n\n    }, {\n      key: 'pause',\n      value: function pause() {\n        this.file.active = false;\n        this.stopChunks();\n      }\n\n      /**\n       * Stops all the current chunks\n       */\n\n    }, {\n      key: 'stopChunks',\n      value: function stopChunks() {\n        this.chunksUploading.forEach(function (chunk) {\n          chunk.xhr.abort();\n          chunk.active = false;\n        });\n      }\n\n      /**\n       * Resumes the file upload\n       * - Sets the file active\n       * - Starts the following chunks\n       */\n\n    }, {\n      key: 'resume',\n      value: function resume() {\n        this.file.active = true;\n        this.startChunking();\n      }\n\n      /**\n       * Starts the file upload\n       *\n       * @returns Promise\n       * - resolve  The file was uploaded\n       * - reject   The file upload failed\n       */\n\n    }, {\n      key: 'upload',\n      value: function upload() {\n        var _this = this;\n\n        this.promise = new Promise(function (resolve, reject) {\n          _this.resolve = resolve;\n          _this.reject = reject;\n        });\n        this.start();\n\n        return this.promise;\n      }\n\n      /**\n       * Start phase\n       * Sends a request to the backend to initialise the chunks\n       */\n\n    }, {\n      key: 'start',\n      value: function start() {\n        var _this2 = this;\n\n        request({\n          method: 'POST',\n          headers: Object.assign({}, this.headers, {\n            'Content-Type': 'application/json'\n          }),\n          url: this.action,\n          body: Object.assign(this.startBody, {\n            phase: 'start',\n            mime_type: this.fileType,\n            size: this.fileSize,\n            name: this.fileName\n          })\n        }).then(function (res) {\n          if (res.status !== 'success') {\n            _this2.file.response = res;\n            return _this2.reject('server');\n          }\n\n          _this2.sessionId = res.data.session_id;\n          _this2.chunkSize = res.data.end_offset;\n\n          _this2.createChunks();\n          _this2.startChunking();\n        }).catch(function (res) {\n          _this2.file.response = res;\n          _this2.reject('server');\n        });\n      }\n\n      /**\n       * Starts to upload chunks\n       */\n\n    }, {\n      key: 'startChunking',\n      value: function startChunking() {\n        for (var i = 0; i < this.maxActiveChunks; i++) {\n          this.uploadNextChunk();\n        }\n      }\n\n      /**\n       * Uploads the next chunk\n       * - Won't do anything if the process is paused\n       * - Will start finish phase if there are no more chunks to upload\n       */\n\n    }, {\n      key: 'uploadNextChunk',\n      value: function uploadNextChunk() {\n        if (this.file.active) {\n          if (this.hasChunksToUpload) {\n            return this.uploadChunk(this.chunksToUpload[0]);\n          }\n\n          if (this.chunksUploading.length === 0) {\n            return this.finish();\n          }\n        }\n      }\n\n      /**\n       * Uploads a chunk\n       * - Sends the chunk to the backend\n       * - Sets the chunk as uploaded if everything went well\n       * - Decreases the number of retries if anything went wrong\n       * - Fails if there are no more retries\n       *\n       * @param {Object} chunk\n       */\n\n    }, {\n      key: 'uploadChunk',\n      value: function uploadChunk(chunk) {\n        var _this3 = this;\n\n        chunk.progress = 0;\n        chunk.active = true;\n        this.updateFileProgress();\n        chunk.xhr = createRequest({\n          method: 'POST',\n          headers: this.headers,\n          url: this.action\n        });\n\n        chunk.xhr.upload.addEventListener('progress', function (evt) {\n          if (evt.lengthComputable) {\n            chunk.progress = Math.round(evt.loaded / evt.total * 100);\n          }\n        }, false);\n\n        sendFormRequest(chunk.xhr, Object.assign(this.uploadBody, {\n          phase: 'upload',\n          session_id: this.sessionId,\n          start_offset: chunk.startOffset,\n          chunk: chunk.blob\n        })).then(function (res) {\n          chunk.active = false;\n          if (res.status === 'success') {\n            chunk.uploaded = true;\n          } else {\n            if (chunk.retries-- <= 0) {\n              _this3.stopChunks();\n              return _this3.reject('upload');\n            }\n          }\n\n          _this3.uploadNextChunk();\n        }).catch(function () {\n          chunk.active = false;\n          if (chunk.retries-- <= 0) {\n            _this3.stopChunks();\n            return _this3.reject('upload');\n          }\n\n          _this3.uploadNextChunk();\n        });\n      }\n\n      /**\n       * Finish phase\n       * Sends a request to the backend to finish the process\n       */\n\n    }, {\n      key: 'finish',\n      value: function finish() {\n        var _this4 = this;\n\n        this.updateFileProgress();\n\n        request({\n          method: 'POST',\n          headers: Object.assign({}, this.headers, {\n            'Content-Type': 'application/json'\n          }),\n          url: this.action,\n          body: Object.assign(this.finishBody, {\n            phase: 'finish',\n            session_id: this.sessionId\n          })\n        }).then(function (res) {\n          _this4.file.response = res;\n          if (res.status !== 'success') {\n            return _this4.reject('server');\n          }\n\n          _this4.resolve(res);\n        }).catch(function (res) {\n          _this4.file.response = res;\n          _this4.reject('server');\n        });\n      }\n    }, {\n      key: 'maxRetries',\n      get: function get() {\n        return parseInt(this.options.maxRetries);\n      }\n\n      /**\n       * Gets the max number of active chunks being uploaded at once from options\n       */\n\n    }, {\n      key: 'maxActiveChunks',\n      get: function get() {\n        return parseInt(this.options.maxActive);\n      }\n\n      /**\n       * Gets the file type\n       */\n\n    }, {\n      key: 'fileType',\n      get: function get() {\n        return this.file.type;\n      }\n\n      /**\n       * Gets the file size\n       */\n\n    }, {\n      key: 'fileSize',\n      get: function get() {\n        return this.file.size;\n      }\n\n      /**\n       * Gets the file name\n       */\n\n    }, {\n      key: 'fileName',\n      get: function get() {\n        return this.file.name;\n      }\n\n      /**\n       * Gets action (url) to upload the file\n       */\n\n    }, {\n      key: 'action',\n      get: function get() {\n        return this.options.action || null;\n      }\n\n      /**\n       * Gets the body to be merged when sending the request in start phase\n       */\n\n    }, {\n      key: 'startBody',\n      get: function get() {\n        return this.options.startBody || {};\n      }\n\n      /**\n       * Gets the body to be merged when sending the request in upload phase\n       */\n\n    }, {\n      key: 'uploadBody',\n      get: function get() {\n        return this.options.uploadBody || {};\n      }\n\n      /**\n       * Gets the body to be merged when sending the request in finish phase\n       */\n\n    }, {\n      key: 'finishBody',\n      get: function get() {\n        return this.options.finishBody || {};\n      }\n\n      /**\n       * Gets the headers of the requests from options\n       */\n\n    }, {\n      key: 'headers',\n      get: function get() {\n        return this.options.headers || {};\n      }\n\n      /**\n       * Whether it's ready to upload files or not\n       */\n\n    }, {\n      key: 'readyToUpload',\n      get: function get() {\n        return !!this.chunks;\n      }\n\n      /**\n       * Gets the progress of the chunk upload\n       * - Gets all the completed chunks\n       * - Gets the progress of all the chunks that are being uploaded\n       */\n\n    }, {\n      key: 'progress',\n      get: function get() {\n        var _this5 = this;\n\n        var completedProgress = this.chunksUploaded.length / this.chunks.length * 100;\n        var uploadingProgress = this.chunksUploading.reduce(function (progress, chunk) {\n          return progress + (chunk.progress | 0) / _this5.chunks.length;\n        }, 0);\n\n        return Math.min(completedProgress + uploadingProgress, 100);\n      }\n\n      /**\n       * Gets all the chunks that are pending to be uploaded\n       */\n\n    }, {\n      key: 'chunksToUpload',\n      get: function get() {\n        return this.chunks.filter(function (chunk) {\n          return !chunk.active && !chunk.uploaded;\n        });\n      }\n\n      /**\n       * Whether there are chunks to upload or not\n       */\n\n    }, {\n      key: 'hasChunksToUpload',\n      get: function get() {\n        return this.chunksToUpload.length > 0;\n      }\n\n      /**\n       * Gets all the chunks that are uploading\n       */\n\n    }, {\n      key: 'chunksUploading',\n      get: function get() {\n        return this.chunks.filter(function (chunk) {\n          return !!chunk.xhr && !!chunk.active;\n        });\n      }\n\n      /**\n       * Gets all the chunks that have finished uploading\n       */\n\n    }, {\n      key: 'chunksUploaded',\n      get: function get() {\n        return this.chunks.filter(function (chunk) {\n          return !!chunk.uploaded;\n        });\n      }\n    }]);\n\n    return ChunkUploadHandler;\n  }();\n\n  //\n  //\n  //\n  //\n  //\n  //\n  //\n  //\n  //\n  //\n  //\n  //\n  //\n  //\n\n  var script = {\n    methods: {\n      change: function change(e) {\n        this.$parent.addInputFile(e.target);\n        if (e.target.files) {\n          e.target.value = '';\n          if (e.target.files.length && !/safari/i.test(navigator.userAgent)) {\n            e.target.type = '';\n            e.target.type = 'file';\n          }\n        } else {\n          // ie9 fix #219\n          this.$destroy();\n          // eslint-disable-next-line\n          new this.constructor({\n            parent: this.$parent,\n            el: this.$el\n          });\n        }\n      }\n    }\n  };\n\n  /* script */\n  var __vue_script__ = script;\n\n  /* template */\n  var __vue_render__ = function __vue_render__() {\n    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('input', { attrs: { \"type\": \"file\", \"name\": _vm.$parent.name, \"id\": _vm.$parent.inputId || _vm.$parent.name, \"accept\": _vm.$parent.accept, \"capture\": _vm.$parent.capture, \"disabled\": _vm.$parent.disabled, \"webkitdirectory\": _vm.$parent.directory && _vm.$parent.features.directory, \"directory\": _vm.$parent.directory && _vm.$parent.features.directory, \"multiple\": _vm.$parent.multiple && _vm.$parent.features.html5 }, on: { \"change\": _vm.change } });\n  };\n  var __vue_staticRenderFns__ = [];\n\n  /* style */\n  var __vue_inject_styles__ = undefined;\n  /* scoped */\n  var __vue_scope_id__ = undefined;\n  /* module identifier */\n  var __vue_module_identifier__ = undefined;\n  /* functional template */\n  var __vue_is_functional_template__ = false;\n  /* component normalizer */\n  function __vue_normalize__(template, style, script$$1, scope, functional, moduleIdentifier, createInjector, createInjectorSSR) {\n    var component = (typeof script$$1 === 'function' ? script$$1.options : script$$1) || {};\n\n    if (!component.render) {\n      component.render = template.render;\n      component.staticRenderFns = template.staticRenderFns;\n      component._compiled = true;\n\n      if (functional) component.functional = true;\n    }\n\n    component._scopeId = scope;\n\n    return component;\n  }\n  /* style inject */\n  function __vue_create_injector__() {\n    var head = document.head || document.getElementsByTagName('head')[0];\n    var styles = __vue_create_injector__.styles || (__vue_create_injector__.styles = {});\n    var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\n\n    return function addStyle(id, css) {\n      if (document.querySelector('style[data-vue-ssr-id~=\"' + id + '\"]')) return; // SSR styles are present.\n\n      var group = isOldIE ? css.media || 'default' : id;\n      var style = styles[group] || (styles[group] = { ids: [], parts: [], element: undefined });\n\n      if (!style.ids.includes(id)) {\n        var code = css.source;\n        var index = style.ids.length;\n\n        style.ids.push(id);\n\n        if (css.map) {\n          // https://developer.chrome.com/devtools/docs/javascript-debugging\n          // this makes source maps inside style tags work properly in Chrome\n          code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */';\n          // http://stackoverflow.com/a/26603875\n          code += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';\n        }\n\n        if (isOldIE) {\n          style.element = style.element || document.querySelector('style[data-group=' + group + ']');\n        }\n\n        if (!style.element) {\n          var el = style.element = document.createElement('style');\n          el.type = 'text/css';\n\n          if (css.media) el.setAttribute('media', css.media);\n          if (isOldIE) {\n            el.setAttribute('data-group', group);\n            el.setAttribute('data-next-index', '0');\n          }\n\n          head.appendChild(el);\n        }\n\n        if (isOldIE) {\n          index = parseInt(style.element.getAttribute('data-next-index'));\n          style.element.setAttribute('data-next-index', index + 1);\n        }\n\n        if (style.element.styleSheet) {\n          style.parts.push(code);\n          style.element.styleSheet.cssText = style.parts.filter(Boolean).join('\\n');\n        } else {\n          var textNode = document.createTextNode(code);\n          var nodes = style.element.childNodes;\n          if (nodes[index]) style.element.removeChild(nodes[index]);\n          if (nodes.length) style.element.insertBefore(textNode, nodes[index]);else style.element.appendChild(textNode);\n        }\n      }\n    };\n  }\n  /* style inject SSR */\n\n  var InputFile = __vue_normalize__({ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ }, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, __vue_create_injector__, undefined);\n\n  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n  var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n  function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n  var CHUNK_DEFAULT_OPTIONS = {\n    headers: {},\n    action: '',\n    minSize: 1048576,\n    maxActive: 3,\n    maxRetries: 5,\n\n    handler: ChunkUploadHandler\n  };\n\n  var script$1 = {\n    components: {\n      InputFile: InputFile\n    },\n    props: {\n      inputId: {\n        type: String\n      },\n\n      name: {\n        type: String,\n        default: 'file'\n      },\n\n      accept: {\n        type: String\n      },\n\n      capture: {},\n\n      disabled: {},\n\n      multiple: {\n        type: Boolean\n      },\n\n      maximum: {\n        type: Number,\n        default: function _default() {\n          return this.multiple ? 0 : 1;\n        }\n      },\n\n      addIndex: {\n        type: [Boolean, Number]\n      },\n\n      directory: {\n        type: Boolean\n      },\n\n      postAction: {\n        type: String\n      },\n\n      putAction: {\n        type: String\n      },\n\n      customAction: {\n        type: Function\n      },\n\n      headers: {\n        type: Object,\n        default: Object\n      },\n\n      data: {\n        type: Object,\n        default: Object\n      },\n\n      timeout: {\n        type: Number,\n        default: 0\n      },\n\n      drop: {\n        default: false\n      },\n\n      dropDirectory: {\n        type: Boolean,\n        default: true\n      },\n\n      size: {\n        type: Number,\n        default: 0\n      },\n\n      extensions: {\n        default: Array\n      },\n\n      value: {\n        type: Array,\n        default: Array\n      },\n\n      thread: {\n        type: Number,\n        default: 1\n      },\n\n      // Chunk upload enabled\n      chunkEnabled: {\n        type: Boolean,\n        default: false\n      },\n\n      // Chunk upload properties\n      chunk: {\n        type: Object,\n        default: function _default() {\n          return CHUNK_DEFAULT_OPTIONS;\n        }\n      }\n    },\n\n    data: function data() {\n      return {\n        files: this.value,\n        features: {\n          html5: true,\n          directory: false,\n          drag: false\n        },\n\n        active: false,\n        dropActive: false,\n\n        uploading: 0,\n\n        destroy: false\n      };\n    },\n\n\n    /**\n     * mounted\n     * @return {[type]} [description]\n     */\n    mounted: function mounted() {\n      var input = document.createElement('input');\n      input.type = 'file';\n      input.multiple = true;\n\n      // html5 特征\n      if (window.FormData && input.files) {\n        // 上传目录特征\n        if (typeof input.webkitdirectory === 'boolean' || typeof input.directory === 'boolean') {\n          this.features.directory = true;\n        }\n\n        // 拖拽特征\n        if (this.features.html5 && typeof input.ondrop !== 'undefined') {\n          this.features.drop = true;\n        }\n      } else {\n        this.features.html5 = false;\n      }\n\n      // files 定位缓存\n      this.maps = {};\n      if (this.files) {\n        for (var i = 0; i < this.files.length; i++) {\n          var file = this.files[i];\n          this.maps[file.id] = file;\n        }\n      }\n\n      this.$nextTick(function () {\n\n        // 更新下父级\n        if (this.$parent) {\n          this.$parent.$forceUpdate();\n        }\n\n        // 拖拽渲染\n        this.watchDrop(this.drop);\n      });\n    },\n\n\n    /**\n     * beforeDestroy\n     * @return {[type]} [description]\n     */\n    beforeDestroy: function beforeDestroy() {\n      // 已销毁\n      this.destroy = true;\n\n      // 设置成不激活\n      this.active = false;\n    },\n\n\n    computed: {\n      /**\n       * uploading 正在上传的线程\n       * @return {[type]} [description]\n       */\n\n      /**\n       * uploaded 文件列表是否全部已上传\n       * @return {[type]} [description]\n       */\n      uploaded: function uploaded() {\n        var file = void 0;\n        for (var i = 0; i < this.files.length; i++) {\n          file = this.files[i];\n          if (file.fileObject && !file.error && !file.success) {\n            return false;\n          }\n        }\n        return true;\n      },\n      chunkOptions: function chunkOptions() {\n        return Object.assign(CHUNK_DEFAULT_OPTIONS, this.chunk);\n      },\n      className: function className() {\n        return ['file-uploads', this.features.html5 ? 'file-uploads-html5' : 'file-uploads-html4', this.features.directory && this.directory ? 'file-uploads-directory' : undefined, this.features.drop && this.drop ? 'file-uploads-drop' : undefined, this.disabled ? 'file-uploads-disabled' : undefined];\n      }\n    },\n\n    watch: {\n      active: function active(_active) {\n        this.watchActive(_active);\n      },\n      dropActive: function dropActive() {\n        if (this.$parent) {\n          this.$parent.$forceUpdate();\n        }\n      },\n      drop: function drop(value) {\n        this.watchDrop(value);\n      },\n      value: function value(files) {\n        if (this.files === files) {\n          return;\n        }\n        this.files = files;\n\n        var oldMaps = this.maps;\n\n        // 重写 maps 缓存\n        this.maps = {};\n        for (var i = 0; i < this.files.length; i++) {\n          var file = this.files[i];\n          this.maps[file.id] = file;\n        }\n\n        // add, update\n        for (var key in this.maps) {\n          var newFile = this.maps[key];\n          var oldFile = oldMaps[key];\n          if (newFile !== oldFile) {\n            this.emitFile(newFile, oldFile);\n          }\n        }\n\n        // delete\n        for (var _key in oldMaps) {\n          if (!this.maps[_key]) {\n            this.emitFile(undefined, oldMaps[_key]);\n          }\n        }\n      }\n    },\n\n    methods: {\n\n      // 清空\n      clear: function clear() {\n        if (this.files.length) {\n          var files = this.files;\n          this.files = [];\n\n          // 定位\n          this.maps = {};\n\n          // 事件\n          this.emitInput();\n          for (var i = 0; i < files.length; i++) {\n            this.emitFile(undefined, files[i]);\n          }\n        }\n        return true;\n      },\n\n\n      // 选择\n      get: function get(id) {\n        if (!id) {\n          return false;\n        }\n\n        if ((typeof id === 'undefined' ? 'undefined' : _typeof(id)) === 'object') {\n          return this.maps[id.id] || false;\n        }\n\n        return this.maps[id] || false;\n      },\n\n\n      // 添加\n      add: function add(_files) {\n        var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.addIndex;\n\n        var files = _files;\n        var isArray = files instanceof Array;\n\n        // 不是数组整理成数组\n        if (!isArray) {\n          files = [files];\n        }\n\n        // 遍历规范对象\n        var addFiles = [];\n        for (var i = 0; i < files.length; i++) {\n          var file = files[i];\n          if (this.features.html5 && file instanceof Blob) {\n            file = {\n              file: file,\n              size: file.size,\n              name: file.webkitRelativePath || file.relativePath || file.name || 'unknown',\n              type: file.type\n            };\n          }\n          var fileObject = false;\n          if (file.fileObject === false) ; else if (file.fileObject) {\n            fileObject = true;\n          } else if (typeof Element !== 'undefined' && file.el instanceof Element) {\n            fileObject = true;\n          } else if (typeof Blob !== 'undefined' && file.file instanceof Blob) {\n            fileObject = true;\n          }\n          if (fileObject) {\n            file = _extends({\n              fileObject: true,\n              size: -1,\n              name: 'Filename',\n              type: '',\n              active: false,\n              error: '',\n              success: false,\n              putAction: this.putAction,\n              postAction: this.postAction,\n              timeout: this.timeout\n            }, file, {\n              response: {},\n\n              progress: '0.00', // 只读\n              speed: 0 // 只读\n              // xhr: false,                // 只读\n              // iframe: false,             // 只读\n            });\n\n            file.data = _extends({}, this.data, file.data ? file.data : {});\n\n            file.headers = _extends({}, this.headers, file.headers ? file.headers : {});\n          }\n\n          // 必须包含 id\n          if (!file.id) {\n            file.id = Math.random().toString(36).substr(2);\n          }\n\n          if (this.emitFilter(file, undefined)) {\n            continue;\n          }\n\n          // 最大数量限制\n          if (this.maximum > 1 && addFiles.length + this.files.length >= this.maximum) {\n            break;\n          }\n\n          addFiles.push(file);\n\n          // 最大数量限制\n          if (this.maximum === 1) {\n            break;\n          }\n        }\n\n        // 没有文件\n        if (!addFiles.length) {\n          return false;\n        }\n\n        // 如果是 1 清空\n        if (this.maximum === 1) {\n          this.clear();\n        }\n\n        // 添加进去 files\n        var newFiles = void 0;\n        if (index === true || index === 0) {\n          newFiles = addFiles.concat(this.files);\n        } else if (index) {\n          var _newFiles;\n\n          newFiles = this.files.concat([]);\n          (_newFiles = newFiles).splice.apply(_newFiles, [index, 0].concat(addFiles));\n        } else {\n          newFiles = this.files.concat(addFiles);\n        }\n\n        this.files = newFiles;\n\n        // 定位\n        for (var _i = 0; _i < addFiles.length; _i++) {\n          var _file2 = addFiles[_i];\n          this.maps[_file2.id] = _file2;\n        }\n\n        // 事件\n        this.emitInput();\n        for (var _i2 = 0; _i2 < addFiles.length; _i2++) {\n          this.emitFile(addFiles[_i2], undefined);\n        }\n\n        return isArray ? addFiles : addFiles[0];\n      },\n\n\n      // 添加表单文件\n      addInputFile: function addInputFile(el) {\n        var files = [];\n        if (el.files) {\n          for (var i = 0; i < el.files.length; i++) {\n            var file = el.files[i];\n            files.push({\n              size: file.size,\n              name: file.webkitRelativePath || file.relativePath || file.name,\n              type: file.type,\n              file: file\n            });\n          }\n        } else {\n          var names = el.value.replace(/\\\\/g, '/').split('/');\n          delete el.__vuex__;\n          files.push({\n            name: names[names.length - 1],\n            el: el\n          });\n        }\n        return this.add(files);\n      },\n\n\n      // 添加 DataTransfer\n      addDataTransfer: function addDataTransfer(dataTransfer) {\n        var _this = this;\n\n        var files = [];\n        if (dataTransfer.items && dataTransfer.items.length) {\n          var items = [];\n          for (var i = 0; i < dataTransfer.items.length; i++) {\n            var item = dataTransfer.items[i];\n            if (item.getAsEntry) {\n              item = item.getAsEntry() || item.getAsFile();\n            } else if (item.webkitGetAsEntry) {\n              item = item.webkitGetAsEntry() || item.getAsFile();\n            } else {\n              item = item.getAsFile();\n            }\n            if (item) {\n              items.push(item);\n            }\n          }\n\n          return new Promise(function (resolve, reject) {\n            var forEach = function forEach(i) {\n              var item = items[i];\n              // 结束 文件数量大于 最大数量\n              if (!item || _this.maximum > 0 && files.length >= _this.maximum) {\n                return resolve(_this.add(files));\n              }\n              _this.getEntry(item).then(function (results) {\n                files.push.apply(files, _toConsumableArray(results));\n                forEach(i + 1);\n              });\n            };\n            forEach(0);\n          });\n        }\n\n        if (dataTransfer.files.length) {\n          for (var _i3 = 0; _i3 < dataTransfer.files.length; _i3++) {\n            files.push(dataTransfer.files[_i3]);\n            if (this.maximum > 0 && files.length >= this.maximum) {\n              break;\n            }\n          }\n          return Promise.resolve(this.add(files));\n        }\n\n        return Promise.resolve([]);\n      },\n\n\n      // 获得 entry\n      getEntry: function getEntry(entry) {\n        var _this2 = this;\n\n        var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n        return new Promise(function (resolve, reject) {\n          if (entry.isFile) {\n            entry.file(function (file) {\n              resolve([{\n                size: file.size,\n                name: path + file.name,\n                type: file.type,\n                file: file\n              }]);\n            });\n          } else if (entry.isDirectory && _this2.dropDirectory) {\n            var files = [];\n            var dirReader = entry.createReader();\n            var readEntries = function readEntries() {\n              dirReader.readEntries(function (entries) {\n                var forEach = function forEach(i) {\n                  if (!entries[i] && i === 0 || _this2.maximum > 0 && files.length >= _this2.maximum) {\n                    return resolve(files);\n                  }\n                  if (!entries[i]) {\n                    return readEntries();\n                  }\n                  _this2.getEntry(entries[i], path + entry.name + '/').then(function (results) {\n                    files.push.apply(files, _toConsumableArray(results));\n                    forEach(i + 1);\n                  });\n                };\n                forEach(0);\n              });\n            };\n            readEntries();\n          } else {\n            resolve([]);\n          }\n        });\n      },\n      replace: function replace(id1, id2) {\n        var file1 = this.get(id1);\n        var file2 = this.get(id2);\n        if (!file1 || !file2 || file1 === file2) {\n          return false;\n        }\n        var files = this.files.concat([]);\n        var index1 = files.indexOf(file1);\n        var index2 = files.indexOf(file2);\n        if (index1 === -1 || index2 === -1) {\n          return false;\n        }\n        files[index1] = file2;\n        files[index2] = file1;\n        this.files = files;\n        this.emitInput();\n        return true;\n      },\n\n\n      // 移除\n      remove: function remove(id) {\n        var file = this.get(id);\n        if (file) {\n          if (this.emitFilter(undefined, file)) {\n            return false;\n          }\n          var files = this.files.concat([]);\n          var index = files.indexOf(file);\n          if (index === -1) {\n            console.error('remove', file);\n            return false;\n          }\n          files.splice(index, 1);\n          this.files = files;\n\n          // 定位\n          delete this.maps[file.id];\n\n          // 事件\n          this.emitInput();\n          this.emitFile(undefined, file);\n        }\n        return file;\n      },\n\n\n      // 更新\n      update: function update(id, data) {\n        var file = this.get(id);\n        if (file) {\n          var newFile = _extends({}, file, data);\n          // 停用必须加上错误\n          if (file.fileObject && file.active && !newFile.active && !newFile.error && !newFile.success) {\n            newFile.error = 'abort';\n          }\n\n          if (this.emitFilter(newFile, file)) {\n            return false;\n          }\n\n          var files = this.files.concat([]);\n          var index = files.indexOf(file);\n          if (index === -1) {\n            console.error('update', file);\n            return false;\n          }\n          files.splice(index, 1, newFile);\n          this.files = files;\n\n          // 删除  旧定位 写入 新定位 (已便支持修改id)\n          delete this.maps[file.id];\n          this.maps[newFile.id] = newFile;\n\n          // 事件\n          this.emitInput();\n          this.emitFile(newFile, file);\n          return newFile;\n        }\n        return false;\n      },\n\n\n      // 预处理 事件 过滤器\n      emitFilter: function emitFilter(newFile, oldFile) {\n        var isPrevent = false;\n        this.$emit('input-filter', newFile, oldFile, function () {\n          isPrevent = true;\n          return isPrevent;\n        });\n        return isPrevent;\n      },\n\n\n      // 处理后 事件 分发\n      emitFile: function emitFile(newFile, oldFile) {\n        this.$emit('input-file', newFile, oldFile);\n        if (newFile && newFile.fileObject && newFile.active && (!oldFile || !oldFile.active)) {\n          this.uploading++;\n          // 激活\n          this.$nextTick(function () {\n            var _this3 = this;\n\n            setTimeout(function () {\n              _this3.upload(newFile).then(function () {\n                // eslint-disable-next-line\n                newFile = _this3.get(newFile);\n                if (newFile && newFile.fileObject) {\n                  _this3.update(newFile, {\n                    active: false,\n                    success: !newFile.error\n                  });\n                }\n              }).catch(function (e) {\n                _this3.update(newFile, {\n                  active: false,\n                  success: false,\n                  error: e.code || e.error || e.message || e\n                });\n              });\n            }, parseInt(Math.random() * 50 + 50, 10));\n          });\n        } else if ((!newFile || !newFile.fileObject || !newFile.active) && oldFile && oldFile.fileObject && oldFile.active) {\n          // 停止\n          this.uploading--;\n        }\n\n        // 自动延续激活\n        if (this.active && (Boolean(newFile) !== Boolean(oldFile) || newFile.active !== oldFile.active)) {\n          this.watchActive(true);\n        }\n      },\n      emitInput: function emitInput() {\n        this.$emit('input', this.files);\n      },\n\n\n      // 上传\n      upload: function upload(id) {\n        var file = this.get(id);\n\n        // 被删除\n        if (!file) {\n          return Promise.reject('not_exists');\n        }\n\n        // 不是文件对象\n        if (!file.fileObject) {\n          return Promise.reject('file_object');\n        }\n\n        // 有错误直接响应\n        if (file.error) {\n          return Promise.reject(file.error);\n        }\n\n        // 已完成直接响应\n        if (file.success) {\n          return Promise.resolve(file);\n        }\n\n        // 后缀\n        var extensions = this.extensions;\n        if (extensions && (extensions.length || typeof extensions.length === 'undefined')) {\n          if ((typeof extensions === 'undefined' ? 'undefined' : _typeof(extensions)) !== 'object' || !(extensions instanceof RegExp)) {\n            if (typeof extensions === 'string') {\n              extensions = extensions.split(',').map(function (value) {\n                return value.trim();\n              }).filter(function (value) {\n                return value;\n              });\n            }\n            extensions = new RegExp('\\\\.(' + extensions.join('|').replace(/\\./g, '\\\\.') + ')$', 'i');\n          }\n          if (file.name.search(extensions) === -1) {\n            return Promise.reject('extension');\n          }\n        }\n\n        // 大小\n        if (this.size > 0 && file.size >= 0 && file.size > this.size) {\n          return Promise.reject('size');\n        }\n\n        if (this.customAction) {\n          return this.customAction(file, this);\n        }\n\n        if (this.features.html5) {\n          if (this.shouldUseChunkUpload(file)) {\n            return this.uploadChunk(file);\n          }\n          if (file.putAction) {\n            return this.uploadPut(file);\n          }\n          if (file.postAction) {\n            return this.uploadHtml5(file);\n          }\n        }\n        if (file.postAction) {\n          return this.uploadHtml4(file);\n        }\n        return Promise.reject('No action configured');\n      },\n\n\n      /**\n       * Whether this file should be uploaded using chunk upload or not\n       *\n       * @param Object file\n       */\n      shouldUseChunkUpload: function shouldUseChunkUpload(file) {\n        return this.chunkEnabled && !!this.chunkOptions.handler && file.size > this.chunkOptions.minSize;\n      },\n\n\n      /**\n       * Upload a file using Chunk method\n       *\n       * @param File file\n       */\n      uploadChunk: function uploadChunk(file) {\n        var HandlerClass = this.chunkOptions.handler;\n        file.chunk = new HandlerClass(file, this.chunkOptions);\n\n        return file.chunk.upload();\n      },\n      uploadPut: function uploadPut(file) {\n        var querys = [];\n        var value = void 0;\n        for (var key in file.data) {\n          value = file.data[key];\n          if (value !== null && value !== undefined) {\n            querys.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\n          }\n        }\n        var queryString = querys.length ? (file.putAction.indexOf('?') === -1 ? '?' : '&') + querys.join('&') : '';\n        var xhr = new XMLHttpRequest();\n        xhr.open('PUT', file.putAction + queryString);\n        return this.uploadXhr(xhr, file, file.file);\n      },\n      uploadHtml5: function uploadHtml5(file) {\n        var form = new window.FormData();\n        var value = void 0;\n        for (var key in file.data) {\n          value = file.data[key];\n          if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && typeof value.toString !== 'function') {\n            if (value instanceof File) {\n              form.append(key, value, value.name);\n            } else {\n              form.append(key, JSON.stringify(value));\n            }\n          } else if (value !== null && value !== undefined) {\n            form.append(key, value);\n          }\n        }\n        form.append(this.name, file.file, file.file.filename || file.name);\n        var xhr = new XMLHttpRequest();\n        xhr.open('POST', file.postAction);\n        return this.uploadXhr(xhr, file, form);\n      },\n      uploadXhr: function uploadXhr(xhr, _file, body) {\n        var _this4 = this;\n\n        var file = _file;\n        var speedTime = 0;\n        var speedLoaded = 0;\n\n        // 进度条\n        xhr.upload.onprogress = function (e) {\n          // 还未开始上传 已删除 未激活\n          file = _this4.get(file);\n          if (!e.lengthComputable || !file || !file.fileObject || !file.active) {\n            return;\n          }\n\n          // 进度 速度 每秒更新一次\n          var speedTime2 = Math.round(Date.now() / 1000);\n          if (speedTime2 === speedTime) {\n            return;\n          }\n          speedTime = speedTime2;\n\n          file = _this4.update(file, {\n            progress: (e.loaded / e.total * 100).toFixed(2),\n            speed: e.loaded - speedLoaded\n          });\n          speedLoaded = e.loaded;\n        };\n\n        // 检查激活状态\n        var interval = setInterval(function () {\n          file = _this4.get(file);\n          if (file && file.fileObject && !file.success && !file.error && file.active) {\n            return;\n          }\n\n          if (interval) {\n            clearInterval(interval);\n            interval = false;\n          }\n\n          try {\n            xhr.abort();\n            xhr.timeout = 1;\n          } catch (e) {}\n        }, 100);\n\n        return new Promise(function (resolve, reject) {\n          var complete = void 0;\n          var fn = function fn(e) {\n            // 已经处理过了\n            if (complete) {\n              return;\n            }\n            complete = true;\n            if (interval) {\n              clearInterval(interval);\n              interval = false;\n            }\n\n            file = _this4.get(file);\n\n            // 不存在直接响应\n            if (!file) {\n              return reject('not_exists');\n            }\n\n            // 不是文件对象\n            if (!file.fileObject) {\n              return reject('file_object');\n            }\n\n            // 有错误自动响应\n            if (file.error) {\n              return reject(file.error);\n            }\n\n            // 未激活\n            if (!file.active) {\n              return reject('abort');\n            }\n\n            // 已完成 直接相应\n            if (file.success) {\n              return resolve(file);\n            }\n\n            var data = {};\n\n            switch (e.type) {\n              case 'timeout':\n              case 'abort':\n                data.error = e.type;\n                break;\n              case 'error':\n                if (!xhr.status) {\n                  data.error = 'network';\n                } else if (xhr.status >= 500) {\n                  data.error = 'server';\n                } else if (xhr.status >= 400) {\n                  data.error = 'denied';\n                }\n                break;\n              default:\n                if (xhr.status >= 500) {\n                  data.error = 'server';\n                } else if (xhr.status >= 400) {\n                  data.error = 'denied';\n                } else {\n                  data.progress = '100.00';\n                }\n            }\n\n            if (xhr.responseText) {\n              var contentType = xhr.getResponseHeader('Content-Type');\n              if (contentType && contentType.indexOf('/json') !== -1) {\n                data.response = JSON.parse(xhr.responseText);\n              } else {\n                data.response = xhr.responseText;\n              }\n            }\n\n            // 更新\n            file = _this4.update(file, data);\n\n            // 相应错误\n            if (file.error) {\n              return reject(file.error);\n            }\n\n            // 响应\n            return resolve(file);\n          };\n\n          // 事件\n          xhr.onload = fn;\n          xhr.onerror = fn;\n          xhr.onabort = fn;\n          xhr.ontimeout = fn;\n\n          // 超时\n          if (file.timeout) {\n            xhr.timeout = file.timeout;\n          }\n\n          // headers\n          for (var key in file.headers) {\n            xhr.setRequestHeader(key, file.headers[key]);\n          }\n\n          // 更新 xhr\n          file = _this4.update(file, { xhr: xhr });\n\n          // 开始上传\n          xhr.send(body);\n        });\n      },\n      uploadHtml4: function uploadHtml4(_file) {\n        var _this5 = this;\n\n        var file = _file;\n        var onKeydown = function onKeydown(e) {\n          if (e.keyCode === 27) {\n            e.preventDefault();\n          }\n        };\n\n        var iframe = document.createElement('iframe');\n        iframe.id = 'upload-iframe-' + file.id;\n        iframe.name = 'upload-iframe-' + file.id;\n        iframe.src = 'about:blank';\n        iframe.setAttribute('style', 'width:1px;height:1px;top:-999em;position:absolute; margin-top:-999em;');\n\n        var form = document.createElement('form');\n\n        form.action = file.postAction;\n\n        form.name = 'upload-form-' + file.id;\n\n        form.setAttribute('method', 'POST');\n        form.setAttribute('target', 'upload-iframe-' + file.id);\n        form.setAttribute('enctype', 'multipart/form-data');\n\n        var value = void 0;\n        var input = void 0;\n        for (var key in file.data) {\n          value = file.data[key];\n          if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && typeof value.toString !== 'function') {\n            value = JSON.stringify(value);\n          }\n          if (value !== null && value !== undefined) {\n            input = document.createElement('input');\n            input.type = 'hidden';\n            input.name = key;\n            input.value = value;\n            form.appendChild(input);\n          }\n        }\n        form.appendChild(file.el);\n\n        document.body.appendChild(iframe).appendChild(form);\n\n        var getResponseData = function getResponseData() {\n          var doc = void 0;\n          try {\n            if (iframe.contentWindow) {\n              doc = iframe.contentWindow.document;\n            }\n          } catch (err) {}\n          if (!doc) {\n            try {\n              doc = iframe.contentDocument ? iframe.contentDocument : iframe.document;\n            } catch (err) {\n              doc = iframe.document;\n            }\n          }\n          if (doc && doc.body) {\n            return doc.body.innerHTML;\n          }\n          return null;\n        };\n\n        return new Promise(function (resolve, reject) {\n          setTimeout(function () {\n            file = _this5.update(file, { iframe: iframe });\n\n            // 不存在\n            if (!file) {\n              return reject('not_exists');\n            }\n\n            // 定时检查\n            var interval = setInterval(function () {\n              file = _this5.get(file);\n              if (file && file.fileObject && !file.success && !file.error && file.active) {\n                return;\n              }\n\n              if (interval) {\n                clearInterval(interval);\n                interval = false;\n              }\n\n              iframe.onabort({ type: file ? 'abort' : 'not_exists' });\n            }, 100);\n\n            var complete = void 0;\n            var fn = function fn(e) {\n              // 已经处理过了\n              if (complete) {\n                return;\n              }\n              complete = true;\n\n              if (interval) {\n                clearInterval(interval);\n                interval = false;\n              }\n\n              // 关闭 esc 事件\n              document.body.removeEventListener('keydown', onKeydown);\n\n              file = _this5.get(file);\n\n              // 不存在直接响应\n              if (!file) {\n                return reject('not_exists');\n              }\n\n              // 不是文件对象\n              if (!file.fileObject) {\n                return reject('file_object');\n              }\n\n              // 有错误自动响应\n              if (file.error) {\n                return reject(file.error);\n              }\n\n              // 未激活\n              if (!file.active) {\n                return reject('abort');\n              }\n\n              // 已完成 直接相应\n              if (file.success) {\n                return resolve(file);\n              }\n\n              var response = getResponseData();\n              var data = {};\n              switch (e.type) {\n                case 'abort':\n                  data.error = 'abort';\n                  break;\n                case 'error':\n                  if (file.error) {\n                    data.error = file.error;\n                  } else if (response === null) {\n                    data.error = 'network';\n                  } else {\n                    data.error = 'denied';\n                  }\n                  break;\n                default:\n                  if (file.error) {\n                    data.error = file.error;\n                  } else if (data === null) {\n                    data.error = 'network';\n                  } else {\n                    data.progress = '100.00';\n                  }\n              }\n\n              if (response !== null) {\n                if (response && response.substr(0, 1) === '{' && response.substr(response.length - 1, 1) === '}') {\n                  try {\n                    response = JSON.parse(response);\n                  } catch (err) {}\n                }\n                data.response = response;\n              }\n\n              // 更新\n              file = _this5.update(file, data);\n\n              if (file.error) {\n                return reject(file.error);\n              }\n\n              // 响应\n              return resolve(file);\n            };\n\n            // 添加事件\n            iframe.onload = fn;\n            iframe.onerror = fn;\n            iframe.onabort = fn;\n\n            // 禁止 esc 键\n            document.body.addEventListener('keydown', onKeydown);\n\n            // 提交\n            form.submit();\n          }, 50);\n        }).then(function (res) {\n          iframe.parentNode && iframe.parentNode.removeChild(iframe);\n          return res;\n        }).catch(function (res) {\n          iframe.parentNode && iframe.parentNode.removeChild(iframe);\n          return res;\n        });\n      },\n      watchActive: function watchActive(active) {\n        var file = void 0;\n        var index = 0;\n        while (file = this.files[index]) {\n          index++;\n          if (!file.fileObject) ; else if (active && !this.destroy) {\n            if (this.uploading >= this.thread || this.uploading && !this.features.html5) {\n              break;\n            }\n            if (!file.active && !file.error && !file.success) {\n              this.update(file, { active: true });\n            }\n          } else {\n            if (file.active) {\n              this.update(file, { active: false });\n            }\n          }\n        }\n        if (this.uploading === 0) {\n          this.active = false;\n        }\n      },\n      watchDrop: function watchDrop(_el) {\n        var el = _el;\n        if (!this.features.drop) {\n          return;\n        }\n\n        // 移除挂载\n        if (this.dropElement) {\n          try {\n            document.removeEventListener('dragenter', this.onDragenter, false);\n            document.removeEventListener('dragleave', this.onDragleave, false);\n            document.removeEventListener('drop', this.onDocumentDrop, false);\n            this.dropElement.removeEventListener('dragover', this.onDragover, false);\n            this.dropElement.removeEventListener('drop', this.onDrop, false);\n          } catch (e) {}\n        }\n\n        if (!el) {\n          el = false;\n        } else if (typeof el === 'string') {\n          el = document.querySelector(el) || this.$root.$el.querySelector(el);\n        } else if (el === true) {\n          el = this.$parent.$el;\n        }\n\n        this.dropElement = el;\n\n        if (this.dropElement) {\n          document.addEventListener('dragenter', this.onDragenter, false);\n          document.addEventListener('dragleave', this.onDragleave, false);\n          document.addEventListener('drop', this.onDocumentDrop, false);\n          this.dropElement.addEventListener('dragover', this.onDragover, false);\n          this.dropElement.addEventListener('drop', this.onDrop, false);\n        }\n      },\n      onDragenter: function onDragenter(e) {\n        e.preventDefault();\n        if (this.dropActive) {\n          return;\n        }\n        if (!e.dataTransfer) {\n          return;\n        }\n        var dt = e.dataTransfer;\n        if (dt.files && dt.files.length) {\n          this.dropActive = true;\n        } else if (!dt.types) {\n          this.dropActive = true;\n        } else if (dt.types.indexOf && dt.types.indexOf('Files') !== -1) {\n          this.dropActive = true;\n        } else if (dt.types.contains && dt.types.contains('Files')) {\n          this.dropActive = true;\n        }\n      },\n      onDragleave: function onDragleave(e) {\n        e.preventDefault();\n        if (!this.dropActive) {\n          return;\n        }\n        if (e.target.nodeName === 'HTML' || e.target === e.explicitOriginalTarget || !e.fromElement && (e.clientX <= 0 || e.clientY <= 0 || e.clientX >= window.innerWidth || e.clientY >= window.innerHeight)) {\n          this.dropActive = false;\n        }\n      },\n      onDragover: function onDragover(e) {\n        e.preventDefault();\n      },\n      onDocumentDrop: function onDocumentDrop() {\n        this.dropActive = false;\n      },\n      onDrop: function onDrop(e) {\n        e.preventDefault();\n        this.addDataTransfer(e.dataTransfer);\n      }\n    }\n  };\n\n  /* script */\n  var __vue_script__$1 = script$1;\n\n  /* template */\n  var __vue_render__$1 = function __vue_render__() {\n    var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('span', { class: _vm.className }, [_vm._t(\"default\"), _vm._v(\" \"), _c('label', { attrs: { \"for\": _vm.inputId || _vm.name } }), _vm._v(\" \"), _c('input-file')], 2);\n  };\n  var __vue_staticRenderFns__$1 = [];\n\n  /* style */\n  var __vue_inject_styles__$1 = function (inject) {\n    if (!inject) return;\n    inject(\"data-v-595958af_0\", { source: \"\\n.file-uploads{overflow:hidden;position:relative;text-align:center;display:inline-block\\n}\\n.file-uploads.file-uploads-html4 input,.file-uploads.file-uploads-html5 label{background:#fff;opacity:0;font-size:20em;z-index:1;top:0;left:0;right:0;bottom:0;position:absolute;width:100%;height:100%\\n}\\n.file-uploads.file-uploads-html4 label,.file-uploads.file-uploads-html5 input{background:rgba(255,255,255,0);overflow:hidden;position:fixed;width:1px;height:1px;z-index:-1;opacity:0\\n}\", map: undefined, media: undefined });\n  };\n  /* scoped */\n  var __vue_scope_id__$1 = undefined;\n  /* module identifier */\n  var __vue_module_identifier__$1 = undefined;\n  /* functional template */\n  var __vue_is_functional_template__$1 = false;\n  /* component normalizer */\n  function __vue_normalize__$1(template, style, script, scope, functional, moduleIdentifier, createInjector, createInjectorSSR) {\n    var component = (typeof script === 'function' ? script.options : script) || {};\n\n    if (!component.render) {\n      component.render = template.render;\n      component.staticRenderFns = template.staticRenderFns;\n      component._compiled = true;\n\n      if (functional) component.functional = true;\n    }\n\n    component._scopeId = scope;\n\n    {\n      var hook = void 0;\n      if (style) {\n        hook = function hook(context) {\n          style.call(this, createInjector(context));\n        };\n      }\n\n      if (hook !== undefined) {\n        if (component.functional) {\n          // register for functional component in vue file\n          var originalRender = component.render;\n          component.render = function renderWithStyleInjection(h, context) {\n            hook.call(context);\n            return originalRender(h, context);\n          };\n        } else {\n          // inject component registration as beforeCreate hook\n          var existing = component.beforeCreate;\n          component.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n        }\n      }\n    }\n\n    return component;\n  }\n  /* style inject */\n  function __vue_create_injector__$1() {\n    var head = document.head || document.getElementsByTagName('head')[0];\n    var styles = __vue_create_injector__$1.styles || (__vue_create_injector__$1.styles = {});\n    var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\n\n    return function addStyle(id, css) {\n      if (document.querySelector('style[data-vue-ssr-id~=\"' + id + '\"]')) return; // SSR styles are present.\n\n      var group = isOldIE ? css.media || 'default' : id;\n      var style = styles[group] || (styles[group] = { ids: [], parts: [], element: undefined });\n\n      if (!style.ids.includes(id)) {\n        var code = css.source;\n        var index = style.ids.length;\n\n        style.ids.push(id);\n\n        if (css.map) {\n          // https://developer.chrome.com/devtools/docs/javascript-debugging\n          // this makes source maps inside style tags work properly in Chrome\n          code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */';\n          // http://stackoverflow.com/a/26603875\n          code += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';\n        }\n\n        if (isOldIE) {\n          style.element = style.element || document.querySelector('style[data-group=' + group + ']');\n        }\n\n        if (!style.element) {\n          var el = style.element = document.createElement('style');\n          el.type = 'text/css';\n\n          if (css.media) el.setAttribute('media', css.media);\n          if (isOldIE) {\n            el.setAttribute('data-group', group);\n            el.setAttribute('data-next-index', '0');\n          }\n\n          head.appendChild(el);\n        }\n\n        if (isOldIE) {\n          index = parseInt(style.element.getAttribute('data-next-index'));\n          style.element.setAttribute('data-next-index', index + 1);\n        }\n\n        if (style.element.styleSheet) {\n          style.parts.push(code);\n          style.element.styleSheet.cssText = style.parts.filter(Boolean).join('\\n');\n        } else {\n          var textNode = document.createTextNode(code);\n          var nodes = style.element.childNodes;\n          if (nodes[index]) style.element.removeChild(nodes[index]);\n          if (nodes.length) style.element.insertBefore(textNode, nodes[index]);else style.element.appendChild(textNode);\n        }\n      }\n    };\n  }\n  /* style inject SSR */\n\n  var FileUpload = __vue_normalize__$1({ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 }, __vue_inject_styles__$1, __vue_script__$1, __vue_scope_id__$1, __vue_is_functional_template__$1, __vue_module_identifier__$1, __vue_create_injector__$1, undefined);\n\n  var FileUpload$1 = /*#__PURE__*/Object.freeze({\n    default: FileUpload\n  });\n\n  var require$$0 = ( FileUpload$1 && FileUpload ) || FileUpload$1;\n\n  var src = require$$0;\n\n  return src;\n\n})));\n//# sourceMappingURL=vue-upload-component.js.map\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n  switch (args.length) {\n    case 0: return func.call(thisArg);\n    case 1: return func.call(thisArg, args[0]);\n    case 2: return func.call(thisArg, args[0], args[1]);\n    case 3: return func.call(thisArg, args[0], args[1], args[2]);\n  }\n  return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var eq = require('./eq'),\n    isArrayLike = require('./isArrayLike'),\n    isIndex = require('./_isIndex'),\n    isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n *  else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n  if (!isObject(object)) {\n    return false;\n  }\n  var type = typeof index;\n  if (type == 'number'\n        ? (isArrayLike(object) && isIndex(index, object.length))\n        : (type == 'string' && index in object)\n      ) {\n    return eq(object[index], value);\n  }\n  return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    var value = array[index];\n    setter(accumulator, value, iteratee(value), array);\n  }\n  return accumulator;\n}\n\nmodule.exports = arrayAggregator;\n","var constant = require('./constant'),\n    defineProperty = require('./_defineProperty'),\n    identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n  return defineProperty(func, 'toString', {\n    'configurable': true,\n    'enumerable': false,\n    'value': constant(string),\n    'writable': true\n  });\n};\n\nmodule.exports = baseSetToString;\n","var baseSetToString = require('./_baseSetToString'),\n    shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var baseFlatten = require('./_baseFlatten'),\n    baseOrderBy = require('./_baseOrderBy'),\n    baseRest = require('./_baseRest'),\n    isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n *  The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n *   { 'user': 'fred',   'age': 48 },\n *   { 'user': 'barney', 'age': 36 },\n *   { 'user': 'fred',   'age': 30 },\n *   { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n  if (collection == null) {\n    return [];\n  }\n  var length = iteratees.length;\n  if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n    iteratees = [];\n  } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n    iteratees = [iteratees[0]];\n  }\n  return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","var script = {\r\n  name: 'VTree',\r\n  provide: function provide() {\r\n    return { parentVTree: this }\r\n  },\r\n  inject: {\r\n    parentVTree: { default: undefined }\r\n  },\r\n  render: function render() {\r\n    if (!this.$scopedSlots.default && this.parentVTree) { this.$scopedSlots = this.parentVTree.$scopedSlots; }\r\n    return this.$scopedSlots.default ? this.$scopedSlots.default(this.scopeData) : null;\r\n  },\r\n  props: ['scope-data'],\r\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n  if (typeof shadowMode !== 'boolean') {\n    createInjectorSSR = createInjector;\n    createInjector = shadowMode;\n    shadowMode = false;\n  } // Vue.extend constructor export interop.\n\n\n  var options = typeof script === 'function' ? script.options : script; // render functions\n\n  if (template && template.render) {\n    options.render = template.render;\n    options.staticRenderFns = template.staticRenderFns;\n    options._compiled = true; // functional template\n\n    if (isFunctionalTemplate) {\n      options.functional = true;\n    }\n  } // scopedId\n\n\n  if (scopeId) {\n    options._scopeId = scopeId;\n  }\n\n  var hook;\n\n  if (moduleIdentifier) {\n    // server build\n    hook = function hook(context) {\n      // 2.3 injection\n      context = context || // cached call\n      this.$vnode && this.$vnode.ssrContext || // stateful\n      this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n      // 2.2 with runInNewContext: true\n\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__;\n      } // inject component styles\n\n\n      if (style) {\n        style.call(this, createInjectorSSR(context));\n      } // register component module identifier for async chunk inference\n\n\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier);\n      }\n    }; // used by ssr in case component is cached and beforeCreate\n    // never gets called\n\n\n    options._ssrRegister = hook;\n  } else if (style) {\n    hook = shadowMode ? function () {\n      style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\n    } : function (context) {\n      style.call(this, createInjector(context));\n    };\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // register for functional component in vue file\n      var originalRender = options.render;\n\n      options.render = function renderWithStyleInjection(h, context) {\n        hook.call(context);\n        return originalRender(h, context);\n      };\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate;\n      options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n    }\n  }\n\n  return script;\n}\n\nvar normalizeComponent_1 = normalizeComponent;\n\n/* script */\nvar __vue_script__ = script;\n\n/* template */\n\n  /* style */\n  var __vue_inject_styles__ = undefined;\n  /* scoped */\n  var __vue_scope_id__ = undefined;\n  /* module identifier */\n  var __vue_module_identifier__ = undefined;\n  /* functional template */\n  var __vue_is_functional_template__ = undefined;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n\n  \n  var component = normalizeComponent_1(\n    {},\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    undefined,\n    undefined\n  );\n\n// Import vue component\r\n\r\n// Declare install function executed by Vue.use()\r\nfunction install(Vue) {\r\n  if (install.installed) { return; }\r\n  install.installed = true;\r\n  Vue.component('v-tree', component);\r\n}\r\n\r\n// Create module definition for Vue.use()\r\nvar plugin = {\r\n  install: install,\r\n};\r\n\r\n// Auto-install when vue is found (eg. in browser via <script> tag)\r\nvar GlobalVue = null;\r\nif (typeof window !== 'undefined') {\r\n  GlobalVue = window.Vue;\r\n} else if (typeof global !== 'undefined') {\r\n  GlobalVue = global.Vue;\r\n}\r\nif (GlobalVue) {\r\n  GlobalVue.use(plugin);\r\n}\n\nexport default component;\nexport { install };\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n    HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n  var count = 0,\n      lastCalled = 0;\n\n  return function() {\n    var stamp = nativeNow(),\n        remaining = HOT_SPAN - (stamp - lastCalled);\n\n    lastCalled = stamp;\n    if (remaining > 0) {\n      if (++count >= HOT_COUNT) {\n        return arguments[0];\n      }\n    } else {\n      count = 0;\n    }\n    return func.apply(undefined, arguments);\n  };\n}\n\nmodule.exports = shortOut;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project-documents-upload.vue?vue&type=style&index=0&id=4265aca2&scoped=true&lang=css&\""],"sourceRoot":""}