{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/core/WarningErrorTable.vue?b325","webpack:///src/components/core/WarningErrorTable.vue","webpack:///./src/components/core/WarningErrorTable.vue?eaa6","webpack:///./src/components/core/WarningErrorTable.vue","webpack:///./src/store/contacts.js","webpack:///./src/mixins/cncTurningLinearDimensionsTableValues.js","webpack:///./src/components/core/PartViewerDrawer.vue?287c","webpack:///./src/components/core/PartCard.vue?f0ea","webpack:///src/components/core/PartCard.vue","webpack:///./src/components/core/PartCard.vue?9004","webpack:///./src/components/core/PartCard.vue","webpack:///./src/components/core/OrderItemsTable.vue?c01f","webpack:///./src/utils/vuex.js","webpack:///./src/components/core/RangPriceMoqLabel.vue?5777","webpack:///./src/components/core/VersionManager.vue?acad","webpack:///src/components/core/VersionManager.vue","webpack:///./src/components/core/VersionManager.vue?e1e3","webpack:///./src/components/core/VersionManager.vue?f69d","webpack:///./src/components/core/RangPriceMoq.vue?b8ec","webpack:///./src/components/core/PartCardSkeleton.vue?cb68","webpack:///./src/components/core/PartCardSkeleton.vue","webpack:///./src/store/company.js","webpack:///./src/components/core/TimeField.vue?2a8f","webpack:///src/components/core/TimeField.vue","webpack:///./src/components/core/TimeField.vue?4ec7","webpack:///./src/components/core/TimeField.vue","webpack:///./src/components/core/RfqPartCard.vue?848c","webpack:///src/components/core/RfqPartCard.vue","webpack:///./src/components/core/RfqPartCard.vue?05a3","webpack:///./src/components/core/RfqPartCard.vue","webpack:///./src/components/core/OrderShippingAddress.vue?127a","webpack:///./src/components/form/Role.vue?546b","webpack:///src/components/form/Role.vue","webpack:///./src/components/form/Role.vue?2600","webpack:///./src/components/form/Role.vue","webpack:///./src/store/internal-products.js","webpack:///./src/plugins/simulateLodash.js","webpack:///./src/components/core/VersionManager.vue?9804","webpack:///./src/components/core/HardwareProductGroup.vue?4825","webpack:///src/components/core/HardwareProductGroup.vue","webpack:///./src/components/core/HardwareProductGroup.vue?ec20","webpack:///./src/components/core/HardwareProductGroup.vue?adc1","webpack:///./src/components/core/FooterButtonActions.vue?0379","webpack:///src/components/core/FooterButtonActions.vue","webpack:///./src/components/core/FooterButtonActions.vue?6df9","webpack:///./src/components/core/FooterButtonActions.vue?c1a6","webpack:///./src/App.vue?2338","webpack:///./src/components/form/Email.vue?e71a","webpack:///src/components/form/Email.vue","webpack:///./src/components/form/Email.vue?4d11","webpack:///./src/components/form/Email.vue","webpack:///./src/store/my-products.js","webpack:///./src/store/finishes.js","webpack:///./src/components/core/Snack.vue?0dc5","webpack:///./src/store/user.js","webpack:///./src/store/countries.js","webpack:///./src/components/core/RangPriceMoq.vue?118a","webpack:///src/components/core/RangPriceMoq.vue","webpack:///./src/components/core/RangPriceMoq.vue?249d","webpack:///./src/components/core/RangPriceMoq.vue?2598","webpack:///./src/store/delivery-options.js","webpack:///./src/store/customers.js","webpack:///./src/views/Dashboard.vue?ca9f","webpack:///./src/components/form/Forwarder.vue?301b","webpack:///src/components/form/Forwarder.vue","webpack:///./src/components/form/Forwarder.vue?ac8a","webpack:///./src/components/form/Forwarder.vue","webpack:///./src/components/core/WelcomeScreenUploadFileBanner.vue?83ae","webpack:///src/components/core/WelcomeScreenUploadFileBanner.vue","webpack:///./src/components/core/WelcomeScreenUploadFileBanner.vue?7ac2","webpack:///./src/components/core/WelcomeScreenUploadFileBanner.vue?0a81","webpack:///./src/views/OnBoarding.vue?22c9","webpack:///./src/components/form/Address.vue?7387","webpack:///src/components/form/Address.vue","webpack:///./src/components/form/Address.vue?c2f0","webpack:///./src/components/form/Address.vue","webpack:///./src/components/core/HardwareProductGroup.vue?3406","webpack:///./src/components/core/BagItemsList.vue?8895","webpack:///src/components/core/BagItemsList.vue","webpack:///./src/components/core/BagItemsList.vue?9345","webpack:///./src/components/core/BagItemsList.vue","webpack:///./src/components/core/HardwareThumbnailViewer.vue?7060","webpack:///src/components/core/HardwareThumbnailViewer.vue","webpack:///./src/components/core/HardwareThumbnailViewer.vue?9d5a","webpack:///./src/components/core/HardwareThumbnailViewer.vue?d5d0","webpack:///./src/store/my-parts.js","webpack:///./src/components/core/ModelViewer.vue?686c","webpack:///src/components/core/ModelViewer.vue","webpack:///./src/components/core/ModelViewer.vue?656d","webpack:///./src/components/core/ModelViewer.vue?af46","webpack:///./src/utils/log.js","webpack:///./src/components/core/Dialog.vue?6afe","webpack:///src/components/core/Dialog.vue","webpack:///./src/components/core/Dialog.vue?629c","webpack:///./src/components/core/Dialog.vue","webpack:///./src/rights.js","webpack:///./src/store/app.js","webpack:///./src/store/customBag.js","webpack:///./src/store/temp-rfqs.js","webpack:///./src/components/core/SvgViewer.vue?4ac0","webpack:///src/components/core/SvgViewer.vue","webpack:///./src/components/core/SvgViewer.vue?b602","webpack:///./src/components/core/SvgViewer.vue","webpack:///./src/components/core/PartsDesignDataTable.vue?440d","webpack:///src/components/core/PartsDesignDataTable.vue","webpack:///./src/components/core/PartsDesignDataTable.vue?f683","webpack:///./src/components/core/PartsDesignDataTable.vue?7d99","webpack:///./src/store/forwarders.js","webpack:///./src/components/core/UploadCardBodyRadio.vue?ed52","webpack:///src/components/core/UploadCardBodyRadio.vue","webpack:///./src/components/core/UploadCardBodyRadio.vue?076f","webpack:///./src/components/core/UploadCardBodyRadio.vue","webpack:///./src/components/core/UploadSvgDrawing.vue?227d","webpack:///src/components/core/UploadSvgDrawing.vue","webpack:///./src/components/core/UploadSvgDrawing.vue?fcdf","webpack:///./src/components/core/UploadSvgDrawing.vue","webpack:///./src/components/core/RangPriceMoqLabel.vue?7650","webpack:///src/components/core/RangPriceMoqLabel.vue","webpack:///./src/components/core/RangPriceMoqLabel.vue?a871","webpack:///./src/components/core/RangPriceMoqLabel.vue?a2f1","webpack:///./src/store/temp-parts.js","webpack:///./src/plugins/vuetify.js","webpack:///./src/components/core/HardwareThumbnailViewer.vue?5894","webpack:///./src/views/Dashboard.vue?e3a1","webpack:///./src/mixins/companyNumberToInt.js","webpack:///src/views/Dashboard.vue","webpack:///./src/views/Dashboard.vue?ae5e","webpack:///./src/views/Dashboard.vue?dcae","webpack:///./src/views/Login.vue?3311","webpack:///src/views/Login.vue","webpack:///./src/views/Login.vue?5d79","webpack:///./src/views/Login.vue?2f5f","webpack:///./src/views/Logout.vue?8e12","webpack:///src/views/Logout.vue","webpack:///./src/views/Logout.vue?1261","webpack:///./src/views/Logout.vue?e2a2","webpack:///./src/views/OnBoarding.vue?cf40","webpack:///src/views/OnBoarding.vue","webpack:///./src/views/OnBoarding.vue?2424","webpack:///./src/views/OnBoarding.vue?e329","webpack:///./src/views/Confirmation.vue?29c9","webpack:///src/views/Confirmation.vue","webpack:///./src/views/Confirmation.vue?bc7d","webpack:///./src/views/Confirmation.vue","webpack:///./src/views/ForgottenPassword.vue?bf8a","webpack:///src/views/ForgottenPassword.vue","webpack:///./src/views/ForgottenPassword.vue?f74f","webpack:///./src/views/ForgottenPassword.vue?68b4","webpack:///./src/views/ResetPassword.vue?e66a","webpack:///src/views/ResetPassword.vue","webpack:///./src/views/ResetPassword.vue?4b47","webpack:///./src/views/ResetPassword.vue?2ca5","webpack:///./src/views/SignUp.vue?348c","webpack:///src/views/SignUp.vue","webpack:///./src/views/SignUp.vue?d073","webpack:///./src/views/SignUp.vue?10a1","webpack:///./src/views/PageNotFound.vue?f89d","webpack:///src/views/PageNotFound.vue","webpack:///./src/views/PageNotFound.vue?dcc1","webpack:///./src/views/PageNotFound.vue","webpack:///./src/views/SignUpSendEmail.vue?04b5","webpack:///src/views/SignUpSendEmail.vue","webpack:///./src/views/SignUpSendEmail.vue?8ee8","webpack:///./src/views/SignUpSendEmail.vue","webpack:///./src/views/ResetPasswordSendEmail.vue?e151","webpack:///./src/views/ResetPasswordSendEmail.vue","webpack:///./src/views/ResetPasswordSuccess.vue?00a8","webpack:///./src/views/ResetPasswordSuccess.vue","webpack:///./src/router.js","webpack:///./src/components/core/FooterButtonActions.vue?0f61","webpack:///./src/components/core/UploadPartCard.vue?2edf","webpack:///./src/store/index.js","webpack:///./src/components/core/EditOrderDropDownInformation.vue?34c7","webpack:///src/components/core/EditOrderDropDownInformation.vue","webpack:///./src/components/core/EditOrderDropDownInformation.vue?0b3f","webpack:///./src/components/core/EditOrderDropDownInformation.vue","webpack:///./src/store/roles.js","webpack:///./src/plugins/feathers-client.js","webpack:///./src/directives/index.js","webpack:///./src/components/core/InstantQuoteGuideLine.vue?2e72","webpack:///./src/components/core/filter/Filter.vue?0fe1","webpack:///src/components/core/filter/Filter.vue","webpack:///./src/components/core/filter/Filter.vue?926b","webpack:///./src/components/core/filter/Filter.vue?4bf0","webpack:///./src/locales sync [A-Za-z0-9-_,\\s]+\\.json$/","webpack:///./src/views/SignUp.vue?223a","webpack:///./src/components/core/PartAnalysisTable.vue?df18","webpack:///src/components/core/PartAnalysisTable.vue","webpack:///./src/components/core/PartAnalysisTable.vue?bf71","webpack:///./src/components/core/PartAnalysisTable.vue","webpack:///./src/components/core/UploadPartCard.vue?5641","webpack:///src/components/core/UploadPartCard.vue","webpack:///./src/components/core/UploadPartCard.vue?093b","webpack:///./src/components/core/UploadPartCard.vue?c379","webpack:///./src/components/core/WelcomeScreenReferral.vue?833f","webpack:///src/components/core/WelcomeScreenReferral.vue","webpack:///./src/components/core/WelcomeScreenReferral.vue?6aba","webpack:///./src/components/core/WelcomeScreenReferral.vue","webpack:///./src/store/rfqs.js","webpack:///./src/components/form/Phone.vue?1645","webpack:///src/components/form/Phone.vue","webpack:///./src/components/form/Phone.vue?c7f3","webpack:///./src/components/form/Phone.vue","webpack:///./src/store sync nonrecursive .js$","webpack:///./src/mixins/form-rules.js","webpack:///./src/directives sync \\.js$","webpack:///./src/App.vue?6a44","webpack:///./src/mixins/swupdate.js","webpack:///src/App.vue","webpack:///./src/App.vue?60d0","webpack:///./src/App.vue?5a89","webpack:///./src/components/index.js","webpack:///./src/plugins/datadog-rum.js","webpack:///./src/main.js","webpack:///./src/views/ForgottenPassword.vue?ff74","webpack:///./src/components/core/FinishColor.vue?ea32","webpack:///./src/shared/types/paymentStatuses.js","webpack:///./src/components/form/User.vue?758d","webpack:///./src/mixins/roles.js","webpack:///src/components/form/User.vue","webpack:///./src/components/form/User.vue?5d16","webpack:///./src/components/form/User.vue","webpack:///./src/store/promo-codes.js","webpack:///./src/components/core/filter/Main.vue?1ed8","webpack:///./src/components/core/filter/Main.vue","webpack:///./src/components/core/Main.vue?24a1","webpack:///./src/components/core/HardwareDrawingTable.vue?8333","webpack:///./src/store/hardware-products.js","webpack:///./src/components/core/ProductDrawingTable.vue?a95a","webpack:///src/components/core/ProductDrawingTable.vue","webpack:///./src/components/core/ProductDrawingTable.vue?9f52","webpack:///./src/components/core/ProductDrawingTable.vue?44b6","webpack:///./src/components/core/StlFileUpload.vue?ee94","webpack:///src/components/core/StlFileUpload.vue","webpack:///./src/components/core/StlFileUpload.vue?c78e","webpack:///./src/components/core/StlFileUpload.vue","webpack:///./src/store/shipping-addresses.js","webpack:///./src/components/core/filter/Filter.vue?c3a7","webpack:///./src/components/core/MyPartPdfViewer.vue?802c","webpack:///src/components/core/MyPartPdfViewer.vue","webpack:///./src/components/core/MyPartPdfViewer.vue?6948","webpack:///./src/components/core/MyPartPdfViewer.vue","webpack:///./src/components/core/Main.vue?3ef8","webpack:///./src/mixins/service.js","webpack:///./src/mixins/table.js","webpack:///src/components/core/Main.vue","webpack:///./src/components/core/Main.vue?cf66","webpack:///./src/components/core/Main.vue?7b2e","webpack:///./src/components/core/TechnicalDrawingPdf.vue?24fd","webpack:///src/components/core/TechnicalDrawingPdf.vue","webpack:///./src/components/core/TechnicalDrawingPdf.vue?fd33","webpack:///./src/components/core/TechnicalDrawingPdf.vue","webpack:///./src/components/core/ModelViewer.vue?d923","webpack:///./src/utils/types.js","webpack:///./src/components/core/ThumbnailViewer.vue?d50e","webpack:///./src/components/core/FinishColor.vue?3ad9","webpack:///src/components/core/FinishColor.vue","webpack:///./src/components/core/FinishColor.vue?533f","webpack:///./src/components/core/FinishColor.vue?2a80","webpack:///./src/store/payments.js","webpack:///./src/components/core/filter/CheckboxGroup.vue?212d","webpack:///src/components/core/filter/CheckboxGroup.vue","webpack:///./src/components/core/filter/CheckboxGroup.vue?55f2","webpack:///./src/components/core/filter/CheckboxGroup.vue","webpack:///./src/store/orders.js","webpack:///./src/utils/logger.js","webpack:///./src/components/core/CompactPartCard.vue?3df4","webpack:///src/components/core/CompactPartCard.vue","webpack:///./src/components/core/CompactPartCard.vue?5dcd","webpack:///./src/components/core/CompactPartCard.vue","webpack:///./src/store/account-statements.js","webpack:///./src/store/regions.js","webpack:///./src/store/auth.js","webpack:///./src/constants/taxes.js","webpack:///./src/mixins/currencyFormatter.js","webpack:///./src/components/core/Ownerships.vue?0e7d","webpack:///src/components/core/Ownerships.vue","webpack:///./src/components/core/Ownerships.vue?41fe","webpack:///./src/components/core/Ownerships.vue?3c1e","webpack:///./src/components/core/WelcomeScreenUploadFileBanner.vue?4eac","webpack:///./src/constants/countries.js","webpack:///./src/mixins/modelable.js","webpack:///./src/components/core/PdfViewer.vue?5ace","webpack:///src/components/core/PdfViewer.vue","webpack:///./src/components/core/PdfViewer.vue?3fa8","webpack:///./src/components/core/PdfViewer.vue","webpack:///./src/components/core/ProductOption.vue?3c28","webpack:///./src/components/core/CustomBagPriceMoqTable.vue?9c53","webpack:///src/components/core/CustomBagPriceMoqTable.vue","webpack:///./src/components/core/CustomBagPriceMoqTable.vue?3e99","webpack:///./src/components/core/CustomBagPriceMoqTable.vue","webpack:///./src/components/core/PaymentDialog.vue?60ea","webpack:///src/components/core/PaymentDialog.vue","webpack:///./src/components/core/PaymentDialog.vue?fe50","webpack:///./src/components/core/PaymentDialog.vue","webpack:///./src/components/core/UploadPartHeader.vue?a364","webpack:///src/components/core/UploadPartHeader.vue","webpack:///./src/components/core/UploadPartHeader.vue?b446","webpack:///./src/components/core/UploadPartHeader.vue","webpack:///./src/components/core/DrawingConsultancyPdf.vue?ca16","webpack:///src/components/core/DrawingConsultancyPdf.vue","webpack:///./src/components/core/DrawingConsultancyPdf.vue?7618","webpack:///./src/components/core/DrawingConsultancyPdf.vue","webpack:///./src/mixins/filter.js","webpack:///./src/components/core/DfmTable.vue?c5f5","webpack:///src/components/core/DfmTable.vue","webpack:///./src/components/core/DfmTable.vue?31e9","webpack:///./src/components/core/DfmTable.vue","webpack:///./src/components/core/Avatar.vue?56fe","webpack:///src/components/core/Avatar.vue","webpack:///./src/components/core/Avatar.vue?3437","webpack:///./src/components/core/Avatar.vue","webpack:///./src/components/core/PartsDesignDataTable.vue?e282","webpack:///./src/components/core/ManufacturingProcessTable.vue?289a","webpack:///src/components/core/ManufacturingProcessTable.vue","webpack:///./src/components/core/ManufacturingProcessTable.vue?d8e3","webpack:///./src/components/core/ManufacturingProcessTable.vue","webpack:///./src/components/core/HardwareDrawingTable.vue?398f","webpack:///src/components/core/HardwareDrawingTable.vue","webpack:///./src/components/core/HardwareDrawingTable.vue?4541","webpack:///./src/components/core/HardwareDrawingTable.vue?d075","webpack:///./src/components/core/NoContent.vue?7a07","webpack:///src/components/core/NoContent.vue","webpack:///./src/components/core/NoContent.vue?df49","webpack:///./src/components/core/NoContent.vue","webpack:///./src/components/core/filter/SwitchGroup.vue?c0ae","webpack:///src/components/core/filter/SwitchGroup.vue","webpack:///./src/components/core/filter/SwitchGroup.vue?8cbd","webpack:///./src/components/core/filter/SwitchGroup.vue","webpack:///./src/mixins/update-entity.js","webpack:///./src/components/core/ProductDrawingTable.vue?b37e","webpack:///./src/mixins/model.js","webpack:///./src/components/core/DrawingEngineFilesUpload.vue?2ab1","webpack:///src/components/core/DrawingEngineFilesUpload.vue","webpack:///./src/components/core/DrawingEngineFilesUpload.vue?8d7d","webpack:///./src/components/core/DrawingEngineFilesUpload.vue","webpack:///./src/components/core/filter/RangeSlider.vue?8a2a","webpack:///src/components/core/filter/RangeSlider.vue","webpack:///./src/components/core/filter/RangeSlider.vue?f308","webpack:///./src/components/core/filter/RangeSlider.vue","webpack:///./src/components/core/WelcomeScreenPromotionCountdownBanner.vue?aeea","webpack:///src/components/core/WelcomeScreenPromotionCountdownBanner.vue","webpack:///./src/components/core/WelcomeScreenPromotionCountdownBanner.vue?3c55","webpack:///./src/components/core/WelcomeScreenPromotionCountdownBanner.vue","webpack:///./src/App.vue?244e","webpack:///./src/components/core/Snack.vue?c00f","webpack:///src/components/core/Snack.vue","webpack:///./src/components/core/Snack.vue?adec","webpack:///./src/components/core/Snack.vue?463a","webpack:///./src/components/core/PriceMoqTable.vue?c661","webpack:///src/components/core/PriceMoqTable.vue","webpack:///./src/components/core/PriceMoqTable.vue?c38a","webpack:///./src/components/core/PriceMoqTable.vue","webpack:///./src/components/core/ProductOptionReadOnly.vue?2c5f","webpack:///src/components/core/ProductOptionReadOnly.vue","webpack:///./src/components/core/ProductOptionReadOnly.vue?7aee","webpack:///./src/components/core/ProductOptionReadOnly.vue","webpack:///./src/components/core/HomeHero.vue?bd41","webpack:///./src/components/core/ProcessLimitationsTable.vue?90d7","webpack:///src/components/core/ProcessLimitationsTable.vue","webpack:///./src/components/core/ProcessLimitationsTable.vue?03d5","webpack:///./src/components/core/ProcessLimitationsTable.vue","webpack:///./src/components/core/BagCard.vue?aa6a","webpack:///src/components/core/BagCard.vue","webpack:///./src/components/core/BagCard.vue?2e5b","webpack:///./src/components/core/BagCard.vue","webpack:///./src/mixins/editForm.js","webpack:///./src/store/order-lines.js","webpack:///./src/store/payment-results.js","webpack:///./src/components/core/SearchBar.vue?d843","webpack:///src/components/core/SearchBar.vue","webpack:///./src/components/core/SearchBar.vue?0e98","webpack:///./src/components/core/SearchBar.vue","webpack:///./src/components/core/RfqPartsTable.vue?745b","webpack:///./src/components/core/ThumbnailViewer.vue?fa01","webpack:///src/components/core/ThumbnailViewer.vue","webpack:///./src/components/core/ThumbnailViewer.vue?5d9f","webpack:///./src/components/core/ThumbnailViewer.vue?d090","webpack:///./src/components/core/HomeHero.vue?aa3a","webpack:///./src/components/core/HomeHero.vue?ce40","webpack:///./src/components/core/Promotional.vue?a7c2","webpack:///src/components/core/Promotional.vue","webpack:///./src/components/core/Promotional.vue?fd33","webpack:///./src/components/core/Promotional.vue","webpack:///./src/views/Login.vue?e169","webpack:///./src/components/core/PurchaseOrdersPdf.vue?ea98","webpack:///src/components/core/PurchaseOrdersPdf.vue","webpack:///./src/components/core/PurchaseOrdersPdf.vue?db76","webpack:///./src/components/core/PurchaseOrdersPdf.vue","webpack:///./src/views/ResetPassword.vue?fa4f","webpack:///./src/store/csi-analysis.js","webpack:///./src/components/core/WelcomeScreenOrderStepsBanner.vue?1d07","webpack:///./src/locales/index.js","webpack:///./src/plugins/i18n.js","webpack:///./src/store/referrals.js","webpack:///./src/components/core/PartDesignTable.vue?c39a","webpack:///src/components/core/PartDesignTable.vue","webpack:///./src/components/core/PartDesignTable.vue?aae4","webpack:///./src/components/core/PartDesignTable.vue?7d42","webpack:///./src/store/packaging-tools.js","webpack:///./src/components/core/RfqPartsTable.vue?b476","webpack:///src/components/core/RfqPartsTable.vue","webpack:///./src/components/core/RfqPartsTable.vue?f01e","webpack:///./src/components/core/RfqPartsTable.vue?0195","webpack:///./src/components/core/TableUnitPricing.vue?e231","webpack:///./src/components/core/RFQCardTransition.vue?6368","webpack:///src/components/core/RFQCardTransition.vue","webpack:///./src/components/core/RFQCardTransition.vue?fb22","webpack:///./src/components/core/RFQCardTransition.vue","webpack:///./src/store/materials.js","webpack:///./src/components/core/Ownerships.vue?9f2b","webpack:///./src/store/parts.js","webpack:///./src/components/core/PartViewerDrawer.vue?dd72","webpack:///src/components/core/PartViewerDrawer.vue","webpack:///./src/components/core/PartViewerDrawer.vue?8274","webpack:///./src/components/core/PartViewerDrawer.vue?57c7","webpack:///./src/mixins/address-formatter.js","webpack:///./src/views/Logout.vue?a6b3","webpack:///./src/components/core/PdfCanvas.vue?4fbe","webpack:///src/components/core/PdfCanvas.vue","webpack:///./src/components/core/PdfCanvas.vue?a822","webpack:///./src/components/core/PdfCanvas.vue?d604","webpack:///./src/components/core/PriceMoqTableUnitPriceVariation.vue?cefe","webpack:///src/components/core/PriceMoqTableUnitPriceVariation.vue","webpack:///./src/components/core/PriceMoqTableUnitPriceVariation.vue?2a4d","webpack:///./src/components/core/PriceMoqTableUnitPriceVariation.vue","webpack:///./src/mixins/form.js","webpack:///./src/components/core/ProductOption.vue?1baa","webpack:///src/components/core/ProductOption.vue","webpack:///./src/components/core/ProductOption.vue?f014","webpack:///./src/components/core/ProductOption.vue?ca1b","webpack:///./src/components/core/OrderItemsTable.vue?7739","webpack:///src/components/core/OrderItemsTable.vue","webpack:///./src/components/core/OrderItemsTable.vue?a4b6","webpack:///./src/components/core/OrderItemsTable.vue?c0d6","webpack:///./src/store/thumbnails.js","webpack:///./src/store/hardware-categories.js","webpack:///./src/components/core/RFQCardActions.vue?6ad9","webpack:///src/components/core/RFQCardActions.vue","webpack:///./src/components/core/RFQCardActions.vue?4d70","webpack:///./src/components/core/RFQCardActions.vue","webpack:///./src/components/core/WelcomeScreenOrderStepsBanner.vue?10d7","webpack:///src/components/core/WelcomeScreenOrderStepsBanner.vue","webpack:///./src/components/core/WelcomeScreenOrderStepsBanner.vue?3afb","webpack:///./src/components/core/WelcomeScreenOrderStepsBanner.vue?1857","webpack:///./src/components/core/PdfCanvas.vue?db6c","webpack:///./src/components/core/RfqCardSkeleton.vue?9ce6","webpack:///./src/components/core/RfqCardSkeleton.vue","webpack:///./src/components/core/InstantQuoteGuideLine.vue?cd13","webpack:///src/components/core/InstantQuoteGuideLine.vue","webpack:///./src/components/core/InstantQuoteGuideLine.vue?9254","webpack:///./src/components/core/InstantQuoteGuideLine.vue?54ac","webpack:///./src/components/core/PartDesignTable.vue?ff89","webpack:///./src/components/core/filter/RadioGroup.vue?3d72","webpack:///src/components/core/filter/RadioGroup.vue","webpack:///./src/components/core/filter/RadioGroup.vue?75f4","webpack:///./src/components/core/filter/RadioGroup.vue","webpack:///./src/components/core/ProductPriceMoqTable.vue?2364","webpack:///src/components/core/ProductPriceMoqTable.vue","webpack:///./src/components/core/ProductPriceMoqTable.vue?79e5","webpack:///./src/components/core/ProductPriceMoqTable.vue","webpack:///./src/components/core/MyPartPdf.vue?5a81","webpack:///src/components/core/MyPartPdf.vue","webpack:///./src/components/core/MyPartPdf.vue?6265","webpack:///./src/components/core/MyPartPdf.vue","webpack:///./src/components/core/OrderShippingAddress.vue?793b","webpack:///src/components/core/OrderShippingAddress.vue","webpack:///./src/components/core/OrderShippingAddress.vue?9135","webpack:///./src/components/core/OrderShippingAddress.vue?e486","webpack:///./src/components/core/TableUnitPricing.vue?a449","webpack:///src/components/core/TableUnitPricing.vue","webpack:///./src/components/core/TableUnitPricing.vue?82f2","webpack:///./src/components/core/TableUnitPricing.vue?6afe","webpack:///./src/components/core/RFQPartsPanel.vue?fec9","webpack:///src/components/core/RFQPartsPanel.vue","webpack:///./src/components/core/RFQPartsPanel.vue?3dd7","webpack:///./src/components/core/RFQPartsPanel.vue","webpack:///./src/components sync \\.vue$"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","render","_vm","this","_h","$createElement","_c","_self","staticClass","staticStyle","attrs","_v","_s","$t","_","analysisData","scopedSlots","_u","fn","_l","item","field","class","icon","style","color","getTextColor","proxy","staticRenderFns","props","part","computed","tableData","CsiAnalysis","getFromStore","Item","isEmpty","filter","datum","Category","icons","map","row","index","methods","split","pop","component","VCard","VExpansionPanel","VExpansionPanelContent","VExpansionPanelHeader","VExpansionPanels","VIcon","VSimpleTable","servicePath","Model","BaseModel","plugin","makeServicePlugin","service","feathersClient","store","makeServiceStore","cncTurningLinearDimensions","vm","deviations","fine","medium","coarse","isRemovePending","on","$event","partViewerPart","isPartViewerActive","CustItemName","deleteDialog","display","partToDelete","Machine","getRoughnessName","getRoughnessValue","_e","FactoryName","materialTranslation","MaterialFinishOptionStr","MaterialFinishStr","materialFinishOptionTranslation","materialFinishTranslation","materialSeriesTranslation","toleranceTranslation","defaultQuantity","ReqQty","Math","min","PriceMOQ","Qty","includes","preventDefault","nativeOn","qtyOfPart","updateValue","model","callback","$$v","_n","expression","isExpired","currencySymbol","calculatePrice","multiply","ref","_g","_b","PortalUserId","moment","ExpireDate","format","currentUser","isSavePending","refreshMyPartPrice","isPartPresentInCurrentOrder","stopPropagation","removeToOrder","need2dDrawing","TwoDFile","needSvg","SvgFile","addToOrder","arguments","currentOrder","canAddItem","remove","cancelDelete","domProps","$set","default","context","root","company","defaultQty","MyProduct","Roughness","sortByQuantity","priceMoq","JSON","parse","sort","a","b","moq","Price","priceRange","parsedData","first","last","diff","itemRowBackground","spliceItem","orderItems","indexOf","priceMOQ","findPrice","find","parseInt","max","currentPart","items","findIndex","_id","need2d","CustFileName","toUpperCase","VBtn","VCardActions","VCol","VContainer","VRow","VSheet","VSpacer","VTextField","VTooltip","reset","defaults","state","assign","setStorage","payload","currentState","Vue","set","v","isObject","stringify","localStorage","setItem","label","width","itemText","itemValue","$attrs","$emit","mixins","Number","String","Function","itemDisabled","VSelect","VSkeletonLoader","region","CurrCode","directives","rawName","invalidTime","invalidTimeMessage","onBlur","$listeners","menuPicker","$i18n","locale","$refs","menu","save","time","watch","newValue","isValid","pickerTime","relatedTarget","classList","contains","validate","VMenu","VTimePicker","onClickButton","highlight","revision","Revision","user","isAlreadyInMyParts","myPart","saveToMyParts","CustItemDesc","materialThicknessTranslation","roughnessName","customerPriceRange","Array","searchValue","filterPart","ExistsInMyProducts","LaserEngraving","MyPart","escapedStringRegEx","escapeRegExp","re","RegExp","replace","localValue","rightsWithDescriptions","_t","originalFormDataChanged","loading","Boolean","rights","right","VCardText","VCardTitle","VCheckbox","VToolbar","clone","cloneDeep","sortBy","omit","compact","isEqual","isString","isFunction","isNumber","isNaN","isUndefined","defaultsDeep","upperFirst","camelCase","uniqBy","uniqueId","mapValues","groupBy","pick","debounce","merge","intersection","isExpanded","productGroup","isDrawingsDialogOpen","productOption","attributeTypes","fieldType","options","selectedOptions","id","isPositiveInteger","reqQty","abs","trunc","customBagId","selectedProduct","drawingsDialogTableHeaders","productOptions","optionsProduct","sensibleDefaults","dropdown","checkbox","plainText","forEach","getFormElementFromFieldType","VExpandTransition","VImg","button","action","text","buttons","VExpandXTransition","notEmptyRules","validEmail","isDisabled","pattern","test","ExpiryDate","Date","MaterialStr","MaterialSeriesStr","materialSeriesShortened","trim","_qtyOfPart","_defaultQuantity","i18n","MaterialStrChs","MaterialThicknessStr","MaterialThicknessStrChs","MaterialSeriesStrChs","MaterialFinishStrChs","MaterialFinishOptionStrChs","Tolerance","replaceAll","firstName","lastName","JobTitle","officeMobile","officePhone","password","OkToSendDesignTips","OkToSendManufacturingTips","instantQuote","rfqs","myParts","orders","placeOrder","accountStatement","userManagement","companyManagement","forwarderManagement","passwordChanges","supportUser","isAdmin","eula","accepted","validationDate","isVerified","isAvatarLoading","isAvatarIsHidden","previewAvatarUrl","hasCsiData","department","refCode","hooks","after","preferUpdate","internalItems","price","Part","now","unitPrice","parseFloat","toFixed","finalPrice","isAddressValid","isRequired","countryLabels","getPlaceholder","country","postalCode","countries","city","zip","forwarderForm","resetValidation","zone","regions","phone","isEmail","chineseForm","englishForm","fields","placeholder","chineseJson","englishJson","fetchedCountries","Country","findInStore","fetchedRegions","Regions","Company","unfilteredCountries","labels","fc","Code","AddressFormatter","DEFAULT_FORM_LAYOUT","formatString","province","formatCountryProvince","countryCode","fieldName","$te","VForm","userCanQuote","onActionButtonClicked","$router","VDivider","disableName","addressForm","users","addressType","getProductDescription","height","isLoaded","hasError","thumbnailUri","imageId","required","VFadeTransition","isUnfolded","$vuetify","breakpoint","isMeshLoaded","uploadProgress","isMeshUploaded","round","viewerId","isSvgLoaded","meshUrl","viewport","isInteractive","isSvgUploaded","cameraTarget","scene","mesh","controls","viewport3d","modelViewer","host","fileName","DrawingRowPointer","toLowerCase","accessToken","showFlat","machine","onResize","cleanUpThreeJs","ASPECT","NEAR","FAR","box","center","getCenter","child","material","baseMaterial","side","geometry","edges","line","position","x","y","z","scale","TrackballControls","rotateSpeed","zoomSpeed","noZoom","noPan","staticMoving","dynamicDampingFactor","keys","renderer","camera","aspect","updateProjectionMatrix","setSize","handleResize","offset","speed","boundingBox","setFromObject","size","getSize","maxDim","fov","PI","distanceToMesh","tan","cos","sin","minZ","cameraToFarEdge","far","lookAt","children","baseNode","firstChild","dispose","forceContextLoss","intensity","directionalLight","add","castShadow","shadow","left","top","bottom","near","mapSize","bias","addShadowedLight","animate","requestAnimationFrame","update","fitCameraToObject","VBtnToggle","VProgressCircular","VSlideXTransition","LEVEL","SUCCESS","INFO","WARNING","ERROR","isLoading","$slots","actions","types","custom","acknowledgement","confirmation","isOkDisabled","okButtonText","isCancelDisabled","cancelButtonText","validator","values","VDialog","getDefaultLanguage","localLanguage","navigator","userLanguage","language","title","sidebarBackgroundColor","version","process","messages","userAvatarUrl","setLocale","$FeathersVuex","commit","translationDate","localeCn","localeEn","vuetify","framework","lang","current","userId","rootState","auth","api","User","app","namespaced","getters","appVersion","currentOrderItemsCount","mutations","clearAll","SET_IMAGE","SET_COLOR","SET_LOCALE","PUSH_SNACK","stateIn","POP_SNACK","ACKNOWLEDGE_SNACK_BY_ID","SET_CURRENT_ORDER","order","SET_USER_AVATAR_URL","url","setColor","setImage","img","toggleLocale","pushSnack","snack","popSnack","acknowledgeSnackById","initCurrentOrder","models","Order","clearCurrentOrder","setUserAvatarUrl","bagName","barCode","description","qty","currency","reduce","total","SubTotal","symbol","bagTotal","addItem","currentId","BagItem","removeItem","isCsi","csiRfqId","extend","tempRfqIdInProgress","getTempRfqIdInProgress","setTempRfqIdInProgress","filePath","partDesignData","units","valueCHS","option","VRadio","VRadioGroup","isSvgRemoved","isSVGDownload","buttonAttrs","buttonIconAttrs","isFileAdded","isSvgUploadPending","isSvgUploadInProgress","uploadSvg","removeSVG","previewSVGUrl","svgReady","showSvgRemoveDialog","myDropZone","svgPageHeight","svgPageWidth","dropzoneOptions","paramName","headers","Authorization","thumbnailWidth","maxFilesize","maxFiles","parallelUploads","acceptedFiles","autoProcessQueue","dictDefaultMessage","dictFallbackMessage","dictFallbackText","dictFileTooBig","dictInvalidFileType","dictResponseError","dictCancelUpload","dictCancelUploadConfirmation","dictRemoveFile","dictMaxFilesExceeded","clickable","previewTemplate","template","file","removeAllFiles","addFile","val","svgUrl","resizeObserver","ResizeObserver","rfqViewerContainer","getBoundingClientRect","ratio","observe","VNavigationDrawer","VOverlay","tempRfqId","csiLineNumber","uniqueFileName","RevisionNumber","Material","MaterialSeries","MaterialThickness","MaterialFinish","MaterialFinishOption","RawMaterial","DrawingNumber","CsiAnalysisData","AnalysisData","SecondaryAnalysisData","Status","shouldStartPreliminaryAnalysis","shouldStartFinalAnalysis","shouldCalculateCostWithoutFinalAnalysis","shouldUploadFilesToCsi","EstimateLineStatus","isDrawingUploaded","isDrawingUploadedCsi","isDrawingUploadedMsg","isManufacturable","isManufacturableMsg","isPreliminaryAnalysisInProgress","isPreliminaryAnalysisCompleted","isPreliminaryAnalysisCompletedMsg","isMainAnalysisInProgress","isMainAnalysisCompleted","isMainAnalysisCompletedMsg","isThumbnailUploaded","isThumbnailUploadedMsg","isObjUploaded","isObjUploadedCsi","isObjUploadedMsg","isDxfUploaded","isDxfUploadedCsi","isDxfUploadedMsg","isMeshUploadedCsi","isMeshUploadedMsg","isThicknessCalculated","isThicknessCalculatedMsg","CsiErrorParam","executionTime","Threads","Countersinks","Counterbores","MaterialCategory","params","shouldShowNotification","startsWith","use","Vuetify","iconfont","locales","en","fr","theme","themes","light","primary","tertiary","accent","info","success","warning","dark","secondary","newSignUpPromoCode","expandVideoTutorials","tutorial","tutorialDialog","isActive","duration","isVideoLoaderShow","link","convertCustomerNumberToInt","customerNumber","intValue","multiplier","char","companyNumberToInt","showReferralBanner","showPromotionCountdownBanner","tutorials","langList","currentLang","loginSubmit","isLoginFormValid","isPasswordVisible","isAuthenticatePending","authenticating","navLang","working","validation","invitationMail","userData","passwordStrength","getColor","confirmPassword","statePending","isFormValid","submit","force","token","email","onBoardingUser","confirmationPassword","FirstName","LastName","ContactEmail","isPasswordValid","ln","pass","score","letters","variations","digits","lower","upper","nonWords","variationCount","check","invitationAccount","createUser","onBoardingAccount","form","accountAlreadyExist","verifyAccount","go","emailSubmit","isSendResetPwdPending","isResetPwdLongPending","passwordSubmit","_k","keyCode","getCountryCodes","dialCode","onInput","userDepartments","valid","emailId","Mastutrack","lead","dataLayer","enhanced_conversion_data","$route","Router","router","base","routes","path","Dashboard","Login","SignUp","Logout","PageNotFound","SignUpSendEmail","ResetPasswordSendEmail","ResetPasswordSuccess","OnBoarding","Confirmation","ForgottenPassword","ResetPassword","meta","requiredPermission","beforeEach","to","from","next","jwtToken","getItem","isJwtExpired","resolved","matched","query","sessionId","$store","dispatch","isOnLoginPage","ddlogger","logger","debug","route","author","isArray","some","req","Store","level","nbrCountries","Vuex","FeathersVuex","requireModule","require","appModules","acc","mod","plugins","resetStore","byServicePath","namespace","resetStores","product","myItem","ProductCode","CustItemRevision","inactive","errorHandler","availablePathsWithoutJwt","location","errorMessage","notifyViaSnackbar","method","notificationMessage","socket","io","transports","feathers","configure","socketio","authClient","storage","patch","feathersVuex","serverAlias","idField","makeAuthPlugin","CoreModel","clients","start","performance","constructor","createdById","perfMetric","rest","requireComponent","section","getFilter","Map","filterType","filterTypes","has","VList","VListItem","VListItemAction","VListItemContent","VListItemTitle","VSubheader","webpackContext","webpackContextResolve","status","currentErrorMessage","we","ErrorAndWarningCodeMapping","isGuideLineVisible","currentUploadStatus","isEngineDetectionError","showReRunAsTurningButton","retryUpload","fileSize","uploadThumbnail","isMeshVisible","infoLabels","odooErrorMessage","checkErrorMessage","errorFormat","checkTranslation","removeLinklabel","Param1","isSheetMetalMachine","is2dModel","checkThickness","detectedThickness","checkOuterDia","detectedOuterDia","calculateCostOk","arePartOptionsValid","isCalculatingCost","isErrorDetected","maxLength","containAlphabetsNumbersHyphensUnderscoreSpace","isZeroOrGreaterInteger","resetPartFormFields","chinaFactoryId","mexicoFactoryId","materials","RowPointer","Description","MaterialStrCHS","DescriptionCHS","MaterialThicknessValue","MaterialDimensions","finishes","isFinishesFindPending","finish","legalFinishes","lf","partOptions","MaterialFinishStrCHS","minReqQty","noOfHoles","addCountersinks","series","getTranslationSeries","MaterialSeriesStrCHS","getTranslationFinish","addThreads","addCounterbores","isDebugModeEnabled","thicknesses","generateThicknessFromCode","selectedThickness","MaterialThicknessStrCHS","SheetLength","SheetWidth","roughnessValues","toleranceValues","canCalculateCost","errorArray","needPdf","isMainAnalysisEverCalled","addCustomDataToEngineResponse","customThreadCountToAdd","isPatchPending","twoDNestingResultSvgUrl","BEND_ERROR_CODE","components","fullScreen","200","201","202","203","401","301","302","303","304","410","413","414","415","402","411","412","420","322","323","321","451","450","416","417","418","306","307","500","501","502","503","504","505","506","507","508","509","419","timer","currentTime","isMexicoQuotationAllowed","thickness","major_dia","errorAndWarning","EandW","isTurningMachine","cncItems","IsHidden","Process","OutDia","cncSeries","uniqueParentRowPointers","Set","ParentRowPointer","$in","cncMaterials","uniqueMaterialsRowPointers","FactoryId","$sort","additionalQuery","InDia","Finish","f","endsWith","isSvgUploadedMsg","returnData","reqQtyPriceIndex","bends","holes","threads","countersink","counterbore","laserEngraved","laserEngravedDepth","bendsInfoLabel","holesInfoLabel","threadCount","accumulator","threadsInfoLabel","supportedThreads","th","unsupportedThreads","threadLabel","join","countersinkInfoLabel","counterboreInfoLabel","laserEngravedInfoLabel","chamfer","chamfersInfoLabel","internalFillets","externalFillets","filletsInfoLabel","millings","millingsInfoLabel","threadsOnXAxis","threadsOnYAxis","sheetMetalInfoLabels","turningInfoLabels","laserEngraving","isSheetMetalPart","OriginalThreadsFound","errorsAndWarnings","isOdooError","msg","message_cn","prms","parameters_cn","parameters","newParameters","match","isSvgNestedUploadedCsi","updatedAt","createdAtString","createdAt","timeDifference","threeMinutesInMilliseconds","isOlderThanThreeMinutes","isStatusIncomplete","clearTimer","errors","immediate","fetchFinishes","selectClosestAvailableThickness","newMsg","oldMsg","newVal","currentErrors","setInterval","translation","words","word","string","errorValue","errorTitle","bulletError","errorElt","materialSelector","selectedItems","finishSelector","thicknessId","$nextTick","canvas","image","fd","FormData","append","uploadUrl","body","thicknessValue","toString","padStart","generateCodeFromThickness","matchedThickness","closestToDetected","errorCode","customDataToAddForm","threadToAdd","countersinks","counterbores","clearInterval","VAlert","VProgressLinear","dialog","isCreatePending","cancelReferralDialog","isReferralValid","referral","Referral","CreateDate","isPositiveIntegerOrFloat","maxlen","maxlength","isPhoneNumberIsValid","refreshApp","updateExists","isFindHardwareCategoriesPending","hardwareCategories","isHardwareShopMenuExpanded","timestamp","category","hover","emailDialogIsActive","enabled","cleanFeedback","userCommentFeedback","errorFileName","feedbackUploadFile","uploader","click","onFileChanged","bytesToSize","totalSizeInMb","selectedFile","filename","removeFile","isSendEmailPending","sendFeedBackEmail","refreshing","registration","created","addEventListener","updateAvailable","once","serviceWorker","reload","log","detail","waiting","postMessage","isExeFile","maxFileSize","menuItemState","createUserFeedBack","HardwareCategory","HardwareProduct","links","restrictedFileExtensions","fullPath","isLogin","isLogout","loggedInUser","deep","newUser","fullName","setLiveChatUser","$feathers","autoLoadGeographicData","bytes","decimals","k","dm","sizes","floor","pow","comment","fileArray","getElementById","currentFiles","files","extensionFile","totalFileSize","sizeLimitInBytes","reader","FileReader","onloadend","readFile","readAsDataURL","VApp","VBadge","VHover","VListGroup","VMain","VTextarea","componentConfig","componentName","datadogRum","init","applicationId","clientToken","site","sampleRate","sessionReplaySampleRate","trackResources","trackLongTasks","trackInteractions","startSessionReplayRecording","dayjs","relativeTime","config","productionTip","AsyncComputed","VueCompositionAPI","mask","vueFeathers","VueTelInputVuetify","h","App","$mount","PAYMENT_STATUS","freeze","INITIATED","IN_PROGRESS","SUCCEEDED","FAILED","roles","mapState","rolesLoading","mapGetters","getRole","findRoles","mapActions","fetchRoles","removeRole","getRoleName","getRoleInactive","isColorPickerActive","contact","findContacts","ContactId","filteredItems","getReadOnlyProduct","productGroupId","productGroupKey","productQuery","customBag","forceUpdateField","currentOption","optionsFilter","productValue","productReadOnlyOptions","productCheckBoxOptions","res","reverse","selectedOption","ids","fil","isStlRemoved","showStlRemoveDialog","removeSTL","isStlUploadPending","isSTLDownload","stlUrl","stlReady","previewSTLUrl","renameFile","getNewUuid","isPdfRemoved","isPDFDownload","pdfUri","pdfPageHeight","pdfPageWidth","isPdfAlreadyUpload","isPdfUploadPending","logoutFromCompany","avatarUrl","factoryName","getFullYear","modelName","storeState","storeGetters","list","storeGetter","storeDispatch","args","getById","fetch","generateQuery","sortKey","sortDesc","$skip","limit","page","$limit","search","local","aggregateFields","instancePaths","stringFields","searchFields","searchAggregate","searchFieldsPaths","servicePaths","serviceStringFields","$or","localField","foreignField","as","project","displayName","filterField","filterValue","substr","removeDoc","tabs","removeTab","docIds","menuItems","itemKey","loadingText","selected","hovered","hideSearch","entity","localQuery","remoteQuery","searchDelay","currentPage","currentLimit","currentTotal","currentEntity","currentSortKey","currentSortDesc","currentSelected","currentHovered","currentSearch","currentFilter","currentQuery","currentRemoteQuery","currentLocalQuery","delayedSearch","delayedSearchTimeout","refresh","mounted","needAppBarExtension","preferenceMenuOptions","categoriesInStore","productInStore","VAppBar","VFooter","VListItemSubtitle","VToolbarItems","VToolbarTitle","isPdfUploadInProgress","uploadPdf","removePDF","previewPDFUrl","pdfReady","showPdfRemoveDialog","pdfUrl","OrderItem","drawingConsultancyPdf","CustomBag","PropertiesFG","PropertiesHWBag","OrderLine","UnitPrice","precision","getPriceMoq","pricemoq","categoryId","maxDiscountRange","nextPriceRange","disabled","getContrast","content","hexcolor","hex","g","yiq","VAvatar","paymentUrl","activePayment","isPaymentDialogOpen","isQrCodeDialogOpen","setActivePayment","payment","setIsPaymentDialogOpen","setIsQrCodeDialogOpen","initPayment","paymentData","cancelActivePayment","handleEvents","patched","utils","provider","URL","redirectUrl","pathname","orderNo","orderFactoryId","factoryId","expediteOption","shippingAddress","forwarder","promoCodeObject","PaymentTransaction","OrderDate","formattedOrderDate","_formattedOrderDate","ShipmentDate","formattedShipmentDate","_formattedShipmentDate","RequestDate","formattedRequestDate","_formattedRequestDate","newItems","getFactoryId","deleteCount","Total","grandTotal","discount","PromoType","orderItemsTotal","PromoMinOrderAmount","PromoDiscountAmount","PromoRate","PromoMaxOrderAmount","discountOrderAmount","expediteFees","subtract","discountAmount","TaxRate1","isCanadaProvinceTaxApplicable","IncludeTaxInPrice","orderSubtotal","taxPercentage","estimatedTax","estimatedGstTax","estimatedQstTax","estimatedPstTax","estimatedHstTax","includeTaxOnExpedite","isMexicoOrder","taxRate","getGstTaxRate","getQstTaxRate","getPstTaxRate","getHstTaxRate","orderItem","canAddHardwareProduct","canAddCustomBag","datadogLogs","env","forwardErrorsToLogs","onThumbClick","partMaterial","getThickness","getOuterDiameter","getSeries","getRoughness","getFinish","findMaterials","diameter","userService","login","strategy","canadaProvinceTaxes","AB","gst","BC","pst","MB","NB","hst","NL","NS","ON","PE","QC","qst","SK","NT","NU","YT","formatCurrency","amount","allowNone","maximumFractionDigits","minimumFractionDigits","toLocaleString","alignLeft","avatar","small","large","createdBy","updatedBy","countriesAllowForMexicoQuotation","isPDFDownloadPending","downloadPdf","loadedPages","itemHeight","containerRef","pdf","viewerHeight","PDFjs","pdfCdn","pdfWorkerCdn","pageCount","pageBuffer","numPages","overflow","initPDF","async","loadingTask","getDocument","reportName","byte","blob","Blob","createObjectURL","download","saveDocument","saveByteArray","VChip","VVirtualScroll","bracket","quantity","isMexicoPayment","isIntBankTransferPending","generatePaymentUrl","goToComfirmationPage","PaymentTerms","openBalance","container","partNo","expanded","VListItemAvatar","displayBorder","hideAvatar","imgLoad","imgSrcUrl","fontSize","initial","imgSrc","urlPreview","isImgLoading","isContactsFindPending","encodeURIComponent","isTurningPart","optionVmodel","drawingTableHeaders","filteredProduct","productId","findTranslation","downloadDrawingFiles","specFile2d","specFile3d","productSelected","isDownloadPending","optionHeader","labelChs","align","productOptionsId","pquery","currentColumn","textChs","filterQuery","fromEntries","entries","optionValue","opt","VDataTable","VSwitch","updateEntity","tab","newEntity","handler","upload","generateUrl","internalProduct","uploadedFiles","VRangeSlider","remainingTime","days","hours","minutes","seconds","expiryTime","showBanner","targetTime","toDate","updateCountdown","countdownInterval","timeDiff","isOpen","multi","param1","Param2","param2","odooErrorData","VSnackbar","itemProduct","currentCategoryId","products","currentCategory","BarCode","Items","currentProduct","removeBag","parentTab","embedded","paths","updateDisabled","defaultValue","modifiedFunction","recomputeOriginalData","isTabModified","isEmbedded","creationMode","originalData","isDataModified","setTabModified","modified","isUpdateDisabled","cloneOriginalData","updateTab","entityId","updateData","CoNum","CoLine","Quantity","ThumbnailItemId","CreatedByUserName","DueDate","merchant_transaction_id","partLookupKey","fileUrl","extension","fileType","VCarousel","VCarouselItem","loadLocaleMessages","VueI18n","fallbackLocale","appMessages","stlFile","spacing","unitWeight","maxWeight","maxTime","engineResult","partsTableHeaders","parts","komacutLine","nbrOfPart","loadingParts","isLoadingPartsRfqId","rfqId","partsIdInStore","filteredPartItems","getAllMissingPart","displayAll","onClickChild","isSvgPending","is2dDrawingPending","addEstimateToOrder","isCardView","orderId","EstimateID","queryFilter","estimateLine","pricePerMoq","roughnessValue","computedExpanded","toggleExpanded","toggleaction","offsetTop","scrollTop","isSidePanelOpen","activeTab","analysisDataRankOne","Value","isAnalysisPending","isMountedPending","modelViewerHeight","modelViewerWidth","largeInspector","isLoadingSidePanelValues","estimateLineStatus","Rank","is2dSvgNestedUploaded","documentElement","overflowY","removeEventListener","innerWidth","innerHeight","VTab","VTabItem","VTabs","VTabsItems","formatAddressText","address","addressFields","onIntersect","threshold","pageWidth","pageHeight","margin","baseRatio","getPage","pageNumber","Intersect","ModelableMixin","originalFormData","HideDrawingsLink","HidePriceMOQ","ShowUploadFile","drawingConsultancyPdfBlobUrl","HideAddToBag","canOrder","minQty","pQuery","priceProduct","priceTable","maxQty","orderLines","nbrOfOrder","orderLinesTableHeaders","open3DViewer","getThumbnailUrl","orderline","orderLine","isLoadingPartsOrderId","orderIdInStore","ProductType","escapedSearchValue","productCode","rfq","createdByEmail","guideLineList","processQueue","pdfViewerHeight","ShipToId","openAddressFormDialog","addressModal","isShippingAddressCreatePending","isShippingAddressPatchPending","saveAddress","tempOrder","isOrderCreatePending","ShippingAddress","customerPriceRangeText","range","findParts"],"mappings":"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","file":"js/app.9d7c28a4.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"AccountPreferences\":\"AccountPreferences\",\"BillingPreferences\":\"BillingPreferences\",\"CompanySettings\":\"CompanySettings\",\"DrawingApp\":\"DrawingApp\",\"EditRFQ\":\"EditRFQ\",\"EngineeringTools\":\"EngineeringTools\",\"FinishingTool\":\"FinishingTool\",\"ForwardersSettings\":\"ForwardersSettings\",\"Hardware\":\"Hardware\",\"HardwareCategory\":\"HardwareCategory\",\"MaterialsTool\":\"MaterialsTool\",\"MyParts\":\"MyParts\",\"NewOrder\":\"NewOrder\",\"Orders\":\"Orders\",\"RFQS\":\"RFQS\",\"StatementPreferences\":\"StatementPreferences\",\"Support\":\"Support\",\"ThreeDPackagingTool\":\"ThreeDPackagingTool\",\"ToleranceTool\":\"ToleranceTool\",\"UsersPreferences\":\"UsersPreferences\",\"confirmedOrder\":\"confirmedOrder\"}[chunkId]||chunkId) + \".\" + {\"AccountPreferences\":\"f0726994\",\"BillingPreferences\":\"d215fff8\",\"CompanySettings\":\"a5b2a004\",\"DrawingApp\":\"2043ce44\",\"EditRFQ\":\"6a326cef\",\"EngineeringTools\":\"1a259062\",\"FinishingTool\":\"8a138dcd\",\"ForwardersSettings\":\"917b09e3\",\"Hardware\":\"02eddaae\",\"HardwareCategory\":\"74285c94\",\"MaterialsTool\":\"ff48e070\",\"MyParts\":\"615d6f3c\",\"NewOrder\":\"4d2df4fa\",\"Orders\":\"25debc97\",\"RFQS\":\"5a49b785\",\"StatementPreferences\":\"3d2ba9dd\",\"Support\":\"ba59d39c\",\"ThreeDPackagingTool\":\"d3ae69db\",\"ToleranceTool\":\"e888250d\",\"UsersPreferences\":\"88d81ff9\",\"confirmedOrder\":\"56cb0585\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"AccountPreferences\":1,\"CompanySettings\":1,\"DrawingApp\":1,\"EditRFQ\":1,\"FinishingTool\":1,\"ForwardersSettings\":1,\"Hardware\":1,\"HardwareCategory\":1,\"MaterialsTool\":1,\"MyParts\":1,\"NewOrder\":1,\"Orders\":1,\"RFQS\":1,\"StatementPreferences\":1,\"Support\":1,\"ThreeDPackagingTool\":1,\"ToleranceTool\":1,\"UsersPreferences\":1,\"confirmedOrder\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"AccountPreferences\":\"AccountPreferences\",\"BillingPreferences\":\"BillingPreferences\",\"CompanySettings\":\"CompanySettings\",\"DrawingApp\":\"DrawingApp\",\"EditRFQ\":\"EditRFQ\",\"EngineeringTools\":\"EngineeringTools\",\"FinishingTool\":\"FinishingTool\",\"ForwardersSettings\":\"ForwardersSettings\",\"Hardware\":\"Hardware\",\"HardwareCategory\":\"HardwareCategory\",\"MaterialsTool\":\"MaterialsTool\",\"MyParts\":\"MyParts\",\"NewOrder\":\"NewOrder\",\"Orders\":\"Orders\",\"RFQS\":\"RFQS\",\"StatementPreferences\":\"StatementPreferences\",\"Support\":\"Support\",\"ThreeDPackagingTool\":\"ThreeDPackagingTool\",\"ToleranceTool\":\"ToleranceTool\",\"UsersPreferences\":\"UsersPreferences\",\"confirmedOrder\":\"confirmedOrder\"}[chunkId]||chunkId) + \".\" + {\"AccountPreferences\":\"05805c28\",\"BillingPreferences\":\"31d6cfe0\",\"CompanySettings\":\"f66cebda\",\"DrawingApp\":\"61643590\",\"EditRFQ\":\"b56cc0d8\",\"EngineeringTools\":\"31d6cfe0\",\"FinishingTool\":\"2016cf9d\",\"ForwardersSettings\":\"eda46c01\",\"Hardware\":\"6a00c598\",\"HardwareCategory\":\"ddd11d1f\",\"MaterialsTool\":\"79327bb9\",\"MyParts\":\"536e5324\",\"NewOrder\":\"ce773697\",\"Orders\":\"0e5f1019\",\"RFQS\":\"25aa262e\",\"StatementPreferences\":\"0728c610\",\"Support\":\"be2ca089\",\"ThreeDPackagingTool\":\"bbe37fe2\",\"ToleranceTool\":\"fcd34e23\",\"UsersPreferences\":\"a2779bf2\",\"confirmedOrder\":\"937de35f\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panels',[_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"pl-3\"},[_c('span',{staticClass:\"text-subtitle-2\",staticStyle:{\"vertical-align\":\"sub\"}},[_c('v-icon',{staticStyle:{\"width\":\"30px\"},attrs:{\"left\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-alert-outline \")]),_vm._v(\" \"+_vm._s(_vm.$t( _vm._.get(_vm.analysisData[0], 'value')))+\" \")],1)]),_c('v-expansion-panel-content',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',_vm._l((_vm.analysisData.slice(1)),function(item,i){return _c('tr',{key:item.field,class:{ 'dark': (i % 2 !== 0) }},[_c('td',{staticClass:\"d-flex align-center text-truncate\",staticStyle:{\"color\":\"#747474\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" \"+_vm._s(item.icon)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t(item.field))+\" \")],1),_c('td',{staticClass:\"text-truncate font-weight-medium\",staticStyle:{\"text-align\":\"right\"}},[_c('span',{staticClass:\"ml-3\",style:([{ color: _vm.getTextColor(item.value) }])},[_vm._v(\" \"+_vm._s(_vm.$t(item.value))+\" \")])])])}),0)]},proxy:true}])})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-expansion-panels>\n <v-expansion-panel>\n <v-expansion-panel-header class=\"pl-3\">\n <span class=\"text-subtitle-2\" style=\"vertical-align: sub\">\n <v-icon left style=\"width:30px\" color=\"red\">\n mdi-alert-outline\n </v-icon>\n {{ $t( _.get(analysisData[0], 'value')) }}\n </span>\n </v-expansion-panel-header>\n <v-expansion-panel-content>\n <v-card flat>\n <v-simple-table dense>\n <template v-slot:default>\n <tbody>\n <tr\n v-for=\"(item, i) in analysisData.slice(1)\"\n :key=\"item.field\"\n :class=\"{ 'dark': (i % 2 !== 0) }\"\n >\n <td class=\"d-flex align-center text-truncate\" style=\"color: #747474;\">\n <v-icon\n small\n class=\"mr-2\"\n color=\"red\"\n >\n {{ item.icon }}\n </v-icon>\n {{ $t(item.field) }}\n </td>\n <td class=\"text-truncate font-weight-medium\" style=\"text-align: right\">\n <span\n class=\"ml-3\"\n :style=\"[{ color: getTextColor(item.value) }]\"\n >\n {{ $t(item.value) }}\n </span>\n </td>\n </tr>\n </tbody>\n </template>\n </v-simple-table>\n </v-card>\n </v-expansion-panel-content>\n </v-expansion-panel>\n </v-expansion-panels>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\n\nconst { CsiAnalysis } = models.api;\n\nexport default {\n name: 'PartAnalysisTable',\n props: {\n part: Object,\n },\n computed: {\n analysisData() {\n let tableData = [];\n if (this.part) {\n tableData = _.get(CsiAnalysis.getFromStore(this.part.Item), 'data', []);\n }\n if (_.isEmpty(tableData)) {\n tableData = [\n { field: null, value: '3dSideViewer.warningErrors.title' },\n { field: '3dSideViewer.warningErrors.unfolding', value: '-' },\n { field: '3dSideViewer.warningErrors.warnings', value: '-' },\n { field: '3dSideViewer.warningErrors.errors', value: '-' },\n ];\n } else {\n tableData = tableData.filter(datum => datum.Category === 'S1')\n .filter(datum => (datum.Description ? datum.Description.startsWith('T3') : ''))\n .sort((datum1, datum2) => +datum1.Rank - +datum2.Rank)\n .map(datum => ({ field: datum.Description.replace('T3.', ''), value: datum.Value || '-' }));\n }\n const icons = [\n 'mdi-alert-outline',\n 'mdi-alert',\n 'mdi-alert-circle',\n ];\n\n return tableData.map((row, index) => ({ ...{ icon: icons[index - 1] }, ...row }));\n }\n },\n methods: {\n getTextColor(value) {\n value = value.split('.').pop();\n switch (value) {\n case 'pass':\n case 'yes':\n return 'green';\n case 'fail':\n case 'no':\n return 'red';\n default:\n return '';\n }\n }\n }\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WarningErrorTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WarningErrorTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WarningErrorTable.vue?vue&type=template&id=bb80b758&\"\nimport script from \"./WarningErrorTable.vue?vue&type=script&lang=js&\"\nexport * from \"./WarningErrorTable.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VSimpleTable})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'contacts';\n\nconst Model = class Contact extends BaseModel {\n static modelName = 'Contact';\n\n static instanceDefaults() {\n return {\n };\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","export default {\n computed: {\n cncTurningLinearDimensions: vm => [\n {\n deviations: `0.5 ${vm.$t('views.engineeringTools.tabs.processLimitations.up')} ${vm.$t('views.engineeringTools.tabs.processLimitations.to')} 3`,\n fine: '±0.05',\n medium: '±0.1',\n coarse: '±0.2'\n },\n {\n deviations: `${vm.$t('views.engineeringTools.tabs.processLimitations.over')} 3 ${vm.$t('views.engineeringTools.tabs.processLimitations.up')} ${vm.$t('views.engineeringTools.tabs.processLimitations.to')} 6`,\n fine: '±0.05',\n medium: '±0.1',\n coarse: '±0.3'\n },\n {\n deviations: `${vm.$t('views.engineeringTools.tabs.processLimitations.over')} 6 ${vm.$t('views.engineeringTools.tabs.processLimitations.up')} ${vm.$t('views.engineeringTools.tabs.processLimitations.to')} 30`,\n fine: '±0.10',\n medium: '±0.2',\n coarse: '±0.5'\n },\n {\n deviations: `${vm.$t('views.engineeringTools.tabs.processLimitations.over')} 30 ${vm.$t('views.engineeringTools.tabs.processLimitations.up')} ${vm.$t('views.engineeringTools.tabs.processLimitations.to')} 120`,\n fine: '±0.15',\n medium: '±0.3',\n coarse: '±0.8'\n },\n {\n deviations: `${vm.$t('views.engineeringTools.tabs.processLimitations.over')} 120 ${vm.$t('views.engineeringTools.tabs.processLimitations.up')} ${vm.$t('views.engineeringTools.tabs.processLimitations.to')} 400`,\n fine: '±0.20',\n medium: '±0.5',\n coarse: '±1.2'\n },\n {\n deviations: `${vm.$t('views.engineeringTools.tabs.processLimitations.over')} 400 ${vm.$t('views.engineeringTools.tabs.processLimitations.up')} ${vm.$t('views.engineeringTools.tabs.processLimitations.to')} 1000`,\n fine: '±0.30',\n medium: '±0.8',\n coarse: '±2.0'\n },\n ],\n }\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartViewerDrawer.vue?vue&type=style&index=0&id=a8ec6348&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"ma-1 px-2 fill-height flex-column align-content-space-between partCard\",attrs:{\"hover\":\"\",\"width\":\"510px\",\"min-width\":\"510px\",\"height\":\"100%\",\"loading\":_vm.part.isRemovePending,\"data-cy\":\"my-part-card-grid\",\"ripple\":false}},[_c('v-container',{staticClass:\"pa-0\"},[_c('v-row',{attrs:{\"no-gutters\":\"\",\"data-cy\":\"my-part-first-horizontal-grid-view\"}},[_c('v-col',{staticClass:\"py-0 pl-1 d-flex flex-row\",attrs:{\"cols\":\"2\"}},[_c('div',{staticClass:\" d-flex flex-column \",on:{\"click\":function($event){_vm.partViewerPart = _vm.part; _vm.isPartViewerActive = true;}}},[_c('core-thumbnail-viewer',{staticClass:\"pa-0\",attrs:{\"part\":_vm.part,\"width\":90,\"height\":90,\"data-cy\":\"my-part-image-grid\",\"is-display-border\":true}})],1),_c('v-btn',{staticClass:\"mt-n3\",staticStyle:{\"position\":\"relative\",\"top\":\"110px\",\"right\":\"95px\"},attrs:{\"text\":\"\",\"x-small\":\"\",\"color\":\"primary\",\"data-cy\":\"my-part-view-details-button-grid\"},on:{\"click\":function($event){_vm.partViewerPart = _vm.part; _vm.isPartViewerActive = true;}}},[_vm._v(\" \"+_vm._s(_vm.$t('common.viewDetails'))+\" \"),_c('v-icon',{attrs:{\"x-small\":\"\",\"right\":\"\"}},[_vm._v(\" mdi-arrow-right \")])],1)],1),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-row',{staticClass:\"pl-7\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"11\",\"align-self\":\"start\"}},[_c('div',{staticClass:\"flex-row text-truncate\"},[_c('span',{staticClass:\"text-truncate\",staticStyle:{\"font-size\":\"25px\",\"font-weight\":\"500\"},attrs:{\"data-cy\":\"my-part-part-grid\",\"title\":_vm.part.CustItemName}},[_vm._v(\" \"+_vm._s(_vm.part.CustItemName)+\" \")])])]),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"1\",\"align-self\":\"start\"}},[_c('v-btn',{staticClass:\"align-self-start ml-auto\",attrs:{\"right\":\"\",\"loading\":_vm.part.isRemovePending,\"color\":\"primary\",\"icon\":\"\",\"data-cy\":\"my-part-remove-button-grid\"},on:{\"click\":function($event){_vm.deleteDialog.display = true;\n _vm.deleteDialog.partToDelete = _vm.part;}}},[_c('v-icon',[_vm._v(\" mdi-delete \")])],1)],1)],1),_c('v-row',[(_vm.part.Machine === 'turning')?_c('v-col',{staticClass:\"pb-0 pl-6\",attrs:{\"offset\":\"1\",\"cols\":\"4\"}},[_c('div',{staticClass:\"caption text--secondary\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.roughness'))+\" \")]),_c('span',[_c('span',{attrs:{\"data-cy\":\"my-part-roughness-grid\"}},[_vm._v(\" \"+_vm._s(_vm.getRoughnessName)),_c('br'),_vm._v(\" \"+_vm._s(_vm.getRoughnessValue)+\" \")])])]):_vm._e(),_c('v-col',{staticClass:\"pl-12 d-flex justify-end pr-0\",attrs:{\"offset\":_vm.part.Machine === 'turning' ? 0: 5,\"cols\":\"6\"}},[_c('v-sheet',{staticClass:\"d-flex flex-column rounded-lg\",attrs:{\"height\":\"48px\",\"width\":\"134px\",\"color\":\"#FFFADA\"}},[_c('span',{staticClass:\"caption text--secondary text-left px-2 pt-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.myParts.productionLocation'))+\" \")]),_c('span',{staticClass:\"px-2\",staticStyle:{\"color\":\"black\"},attrs:{\"data-cy\":\"my-part-production-location-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.FactoryName)+\" \")])])],1)],1)],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pb-0\",attrs:{\"align-self\":\"start\",\"cols\":\"3\"}},[_c('div',{staticClass:\"text-truncate\",staticStyle:{\"min-width\":\"50px !important\"}},[_c('div',{staticClass:\"caption text--secondary text-truncate\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.myParts.material'))+\" \")]),_c('span',{staticClass:\"text-truncate\",attrs:{\"data-cy\":\"my-part-material-grid\",\"title\":_vm.part.materialTranslation}},[_vm._v(\" \"+_vm._s(_vm.part.materialTranslation)+\" \")])])]),_c('v-col',{staticClass:\"pb-0\",attrs:{\"cols\":\"4\"}},[_c('div',{staticClass:\"text-truncate\"},[_c('div',{staticClass:\"caption text--secondary text-truncate\",staticStyle:{\"min-width\":\"50px !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.myParts.finish'))+\" \")]),_c('span',{attrs:{\"data-cy\":\"my-part-finish-grid\",\"title\":_vm.part.MaterialFinishOptionStr || _vm.part.MaterialFinishStr}},[_vm._v(\" \"+_vm._s(_vm.part.materialFinishOptionTranslation || _vm.part.materialFinishTranslation)+\" \")])])]),_c('v-col',{staticClass:\"pb-0 pr-0 ml-3\",attrs:{\"cols\":\"auto\"}},[_c('core-rang-price-moq',{attrs:{\"part\":_vm.part}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pb-0 pt-2\",attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"text-truncate\"},[_c('div',{staticClass:\"caption text--secondary text-truncate\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.myParts.series'))+\" \")]),_c('span',{staticClass:\"text-truncate\",staticStyle:{\"max-width\":\"30px !important\"},attrs:{\"data-cy\":\"my-part-series-grid\",\"title\":_vm.part.materialSeriesTranslation}},[_vm._v(\" \"+_vm._s(_vm.part.materialSeriesTranslation)+\" \")])])]),_c('v-col',{staticClass:\"pb-0 pt-2\",attrs:{\"align-self\":\"start\",\"cols\":\"3\"}},[_c('div',{staticClass:\"caption text--secondary\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.tolerances'))+\" \")]),_c('span',[_c('span',{attrs:{\"data-cy\":\"my-part-tolerances-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.toleranceTranslation)+\" \")])])]),_c('v-col',{staticClass:\"pb-0\",attrs:{\"align-self\":\"start\",\"cols\":\"3\"}},[_c('v-text-field',{staticClass:\"d-inline-block\",staticStyle:{\"width\":\"135px !important\"},attrs:{\"min\":_vm.part.defaultQuantity,\"max\":9999999,\"data-cy\":\"quantity-input-upload\",\"label\":_vm.$t('views.rfqs.quantity'),\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"blur\":function($event){_vm.ReqQty < Math.min.apply(Math, _vm.part.PriceMOQ.map(function (o) { return o.Qty; })) ? _vm.ReqQty = Math.min.apply(Math, _vm.part.PriceMOQ.map(function (o) { return o.Qty; })) : _vm.ReqQty = _vm.ReqQty;},\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()}},nativeOn:{\"input\":function($event){_vm.part.qtyOfPart = _vm.updateValue($event)}},model:{value:(_vm.ReqQty),callback:function ($$v) {_vm.ReqQty=_vm._n($$v)},expression:\"ReqQty\"}})],1),_c('v-col',{staticClass:\"pb-0 pt-2\",attrs:{\"align-self\":\"start\",\"cols\":\"3\"}},[_c('v-sheet',{staticClass:\"pa-2 py-0 rounded-lg \",attrs:{\"height\":\"48px\",\"color\":_vm.isExpired() ? '#FBE9EC': '#f0fdf3'}},[_c('span',{staticClass:\"caption text--secondary text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.totalPrice', {currencySymbol: _vm.currencySymbol}))+\" \")]),_c('span',{staticClass:\"mt-2\",style:([_vm.isExpired() ? {'color': '#be2a45'} : {'color': ''}]),attrs:{\"data-cy\":\"my-part-total-price-grid\"}},[_vm._v(\" \"+_vm._s(_vm.calculatePrice(_vm.part).multiply(_vm.ReqQty))+\" \")])])],1)],1),(_vm.part.Machine !== 'turning')?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticStyle:{\"height\":\"100%\"}},[_vm._v(\"  \")])],1):_vm._e()],1),_c('v-card-actions',{staticClass:\"pa-0 pt-2 d-flex align-end\",staticStyle:{\"height\":\"66px\"},attrs:{\"data-cy\":\"my-part-card-actions-grid\"}},[_c('v-tooltip',{attrs:{\"right\":\"\",\"data-cy\":\"my-part-information-tooltip-grid\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"d-flex\",attrs:{\"color\":\"primary\",\"data-cy\":\"my-part-information-grid\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-information-outline \")])]}}])},[_c('span',{staticClass:\"white--text\",attrs:{\"data-cy\":\"my-part-user-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.PortalUserId)+\" \")]),_c('br'),_c('span',{staticClass:\"white--text\",attrs:{\"data-cy\":\"my-part-user-grid\"}},[_vm._v(\" Item: \"+_vm._s(_vm.part.Item)+\" \")]),_c('br'),_c('span',{attrs:{\"data-cy\":\"my-part-expiration-date-grid\"}},[_vm._v(\" \"+_vm._s(_vm.isExpired() ? 'Is Expired Since' : _vm.$t('common.validUntil'))+\": \"+_vm._s(_vm.moment(_vm.part.ExpireDate).format('YYYY-MM-DD'))+\" \")])]),_c('div',{staticClass:\"d-flex flex-column\"},[(_vm.needSvg)?_c('core-upload-svg-drawing',{attrs:{\"part\":_vm.part}}):_vm._e(),(_vm.need2dDrawing)?_c('core-technical-drawing-pdf',{attrs:{\"part\":_vm.part}}):_vm._e()],1),_c('v-spacer'),(_vm._.get(_vm.currentUser, 'isAdmin') || _vm._.get(_vm.currentUser, ['rights', 'placeOrder']))?[(_vm.isExpired(_vm.part))?[_c('v-btn',{attrs:{\"loading\":_vm.part.isSavePending,\"color\":\"primary\",\"data-cy\":\"refresh-quote-button-grid\"},on:{\"click\":function($event){return _vm.refreshMyPartPrice(_vm.part)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-autorenew \")]),_vm._v(\" \"+_vm._s(_vm.t('views.myParts.refreshQuote'))+\" \")],1)]:[(_vm.isPartPresentInCurrentOrder(_vm.part))?[_c('v-btn',{staticClass:\"ml-6\",attrs:{\"color\":\"primary\",\"data-cy\":\"remove-order-this-button-grid\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.removeToOrder(_vm.part)}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.removeToOrder'))+\" \")])]:[(_vm.need2dDrawing && !_vm.part.TwoDFile || _vm.needSvg && !_vm.part.SvgFile)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('div',_vm._g({},on),[_c('v-btn',_vm._b({staticClass:\"ml-6\",attrs:{\"color\":\"primary\",\"data-cy\":\"order-this-button-grid\",\"disabled\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToOrder.apply(null, arguments)}}},'v-btn',attrs,false),[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrder'))+\" \")])],1)]}}],null,false,2104339699)},[(_vm.need2dDrawing)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrderToolTip'))+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrderSvgToolTip'))+\" \")])]):(_vm.currentOrder && !_vm.currentOrder.canAddItem(_vm.part))?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('div',_vm._g({},on),[_c('v-btn',_vm._b({staticClass:\"ml-6\",attrs:{\"color\":\"primary\",\"data-cy\":\"order-this-button-grid\",\"disabled\":_vm.currentOrder && !_vm.currentOrder.canAddItem(_vm.part)},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToOrder.apply(null, arguments)}}},'v-btn',attrs,false),[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrder'))+\" \")])],1)]}}],null,false,1926019698)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrderSingleLocationToolTip'))+\" \")])]):_c('v-btn',{staticClass:\"ml-6\",attrs:{\"color\":\"primary\",\"data-cy\":\"order-this-button-grid\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToOrder.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrder'))+\" \")])]]]:_vm._e()],2),(_vm.isPartViewerActive)?_c('core-part-viewer-drawer',{attrs:{\"is-open\":_vm.isPartViewerActive,\"part\":_vm.part},on:{\"closeSidePanel\":function($event){_vm.isPartViewerActive = false}}}):_vm._e(),(_vm.deleteDialog.display)?_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"500px\",\"data-cy\":\"delete-dialogue\",\"ok-button-text\":_vm.$t('common.delete')},on:{\"click:ok\":function($event){_vm.deleteDialog.display = false; _vm.part.remove(); _vm.removeToOrder(_vm.part)},\"click:cancel\":_vm.cancelDelete},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('views.myParts.deleteDialogPartTitle'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"pa-10 text-center\"},[_c('span',{staticClass:\"d-block\"},[_c('span',{staticClass:\"d-block\",attrs:{\"data-cy\":\"delete-dialogue-2\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('common.deleteDialogText', { name: _vm.deleteDialog.partToDelete.CustItemName }))}})])])]},proxy:true}],null,false,661523270),model:{value:(_vm.deleteDialog.display),callback:function ($$v) {_vm.$set(_vm.deleteDialog, \"display\", $$v)},expression:\"deleteDialog.display\"}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-card\n hover\n width=\"510px\"\n min-width=\"510px\"\n height=\"100%\"\n :loading=\"part.isRemovePending\"\n class=\"ma-1 px-2 fill-height flex-column align-content-space-between partCard\"\n data-cy=\"my-part-card-grid\"\n :ripple=\"false\"\n >\n <v-container class=\"pa-0\">\n <v-row no-gutters data-cy=\"my-part-first-horizontal-grid-view\">\n <v-col cols=\"2\" class=\"py-0 pl-1 d-flex flex-row\">\n <div\n class=\" d-flex flex-column \"\n @click=\"partViewerPart = part; isPartViewerActive = true;\"\n >\n <core-thumbnail-viewer\n :part=\"part\"\n :width=\"90\"\n :height=\"90\"\n class=\"pa-0\"\n data-cy=\"my-part-image-grid\"\n :is-display-border=\"true\"\n />\n </div>\n\n <v-btn\n style=\"position: relative; top: 110px; right:95px;\"\n class=\"mt-n3\"\n text\n x-small\n color=\"primary\"\n data-cy=\"my-part-view-details-button-grid\"\n @click=\"partViewerPart = part; isPartViewerActive = true;\"\n >\n {{ $t('common.viewDetails') }}\n <v-icon x-small right>\n mdi-arrow-right\n </v-icon>\n </v-btn>\n </v-col>\n <v-col cols=\"10\">\n <v-row no-gutters class=\"pl-7\">\n <v-col cols=\"11\" align-self=\"start\" class=\"pa-0\">\n <div class=\"flex-row text-truncate\">\n <span\n class=\"text-truncate\"\n style=\"font-size: 25px;font-weight: 500;\"\n data-cy=\"my-part-part-grid\"\n :title=\"part.CustItemName\"\n >\n {{ part.CustItemName }}\n </span>\n </div>\n </v-col>\n\n <v-col cols=\"1\" align-self=\"start\" class=\"pa-0\">\n <v-btn\n right\n class=\"align-self-start ml-auto\"\n :loading=\"part.isRemovePending\"\n color=\"primary\"\n icon\n data-cy=\"my-part-remove-button-grid\"\n @click=\"\n deleteDialog.display = true;\n deleteDialog.partToDelete = part;\"\n >\n <v-icon>\n mdi-delete\n </v-icon>\n </v-btn>\n </v-col>\n </v-row>\n <v-row>\n <v-col\n v-if=\"part.Machine === 'turning'\"\n offset=\"1\"\n cols=\"4\"\n class=\"pb-0 pl-6\"\n >\n <div class=\"caption text--secondary\">\n {{ $t('views.instantQuote.roughness') }}\n </div>\n <span>\n <span data-cy=\"my-part-roughness-grid\">\n {{ getRoughnessName }}<br>\n {{ getRoughnessValue }}\n </span>\n </span>\n </v-col>\n <v-col\n :offset=\"part.Machine === 'turning' ? 0: 5\"\n cols=\"6\"\n class=\"pl-12 d-flex justify-end pr-0\"\n >\n <v-sheet\n height=\"48px\"\n width=\"134px\"\n color=\"#FFFADA\"\n class=\"d-flex flex-column rounded-lg\"\n >\n <span class=\"caption text--secondary text-left px-2 pt-1\">\n {{ $t('views.myParts.productionLocation') }}\n </span>\n <span\n class=\"px-2\"\n style=\"color: black;\"\n data-cy=\"my-part-production-location-grid\"\n >\n {{ part.FactoryName }}\n </span>\n </v-sheet>\n </v-col>\n </v-row>\n </v-col>\n </v-row>\n\n <v-row>\n <v-col align-self=\"start\" cols=\"3\" class=\"pb-0\">\n <div style=\"min-width: 50px !important;\" class=\"text-truncate\">\n <div class=\"caption text--secondary text-truncate\">\n {{ $t('views.myParts.material') }}\n </div>\n <span\n class=\"text-truncate\"\n data-cy=\"my-part-material-grid\"\n :title=\"part.materialTranslation\"\n >\n {{ part.materialTranslation }}\n </span>\n </div>\n </v-col>\n <v-col cols=\"4\" class=\"pb-0\">\n <div class=\"text-truncate\">\n <div\n class=\"caption text--secondary text-truncate\"\n style=\"min-width: 50px !important;\"\n >\n {{ $t('views.myParts.finish') }}\n </div>\n <span\n data-cy=\"my-part-finish-grid\"\n :title=\"part.MaterialFinishOptionStr || part.MaterialFinishStr\"\n >\n {{\n part.materialFinishOptionTranslation || part.materialFinishTranslation\n }}\n </span>\n </div>\n </v-col>\n <v-col cols=\"auto\" class=\"pb-0 pr-0 ml-3\">\n <core-rang-price-moq :part=\"part\" />\n </v-col>\n </v-row>\n <v-row>\n <v-col cols=\"3\" class=\"pb-0 pt-2\">\n <div class=\"text-truncate\">\n <div class=\"caption text--secondary text-truncate\">\n {{ $t('views.myParts.series') }}\n </div>\n <span\n data-cy=\"my-part-series-grid\"\n style=\"max-width: 30px !important\"\n class=\"text-truncate\"\n :title=\"part.materialSeriesTranslation\"\n >\n {{\n part.materialSeriesTranslation\n }}\n </span>\n </div>\n </v-col>\n <v-col align-self=\"start\" cols=\"3\" class=\"pb-0 pt-2\">\n <div class=\"caption text--secondary\">\n {{ $t('views.instantQuote.tolerances') }}\n </div>\n <span>\n <span data-cy=\"my-part-tolerances-grid\">\n {{\n part.toleranceTranslation\n }}\n </span>\n </span>\n </v-col>\n <v-col align-self=\"start\" cols=\"3\" class=\"pb-0\">\n <v-text-field\n v-model.number=\"ReqQty\"\n :min=\"part.defaultQuantity\"\n :max=\"9999999\"\n class=\"d-inline-block\"\n style=\"width:135px !important;\"\n data-cy=\"quantity-input-upload\"\n :label=\"$t('views.rfqs.quantity')\"\n type=\"number\"\n hide-details\n outlined\n dense\n @blur=\"ReqQty < Math.min(...part.PriceMOQ.map(o => o.Qty)) ? ReqQty = Math.min(...part.PriceMOQ.map(o => o.Qty)) : ReqQty = ReqQty;\"\n @input.native=\"part.qtyOfPart = updateValue($event)\"\n @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n />\n </v-col>\n <v-col align-self=\"start\" cols=\"3\" class=\"pb-0 pt-2\">\n <v-sheet height=\"48px\" :color=\"isExpired() ? '#FBE9EC': '#f0fdf3' \" class=\"pa-2 py-0 rounded-lg \">\n <span class=\"caption text--secondary text-left\">\n {{ $t('views.productOption.totalPrice', {currencySymbol: currencySymbol}) }}\n </span>\n <span\n class=\"mt-2\"\n :style=\"[isExpired() ? {'color': '#be2a45'} : {'color': ''}]\"\n data-cy=\"my-part-total-price-grid\"\n >\n {{ calculatePrice(part).multiply(ReqQty) }}\n </span>\n </v-sheet>\n </v-col>\n </v-row>\n <!-- This to make both sheet-metal and turning card height equal as turning\n part have two liner Tolerances -->\n <v-row v-if=\"part.Machine !== 'turning'\" dense>\n <v-col style=\"height: 100%\">\n \n </v-col>\n </v-row>\n </v-container>\n <v-card-actions class=\"pa-0 pt-2 d-flex align-end\" data-cy=\"my-part-card-actions-grid\" style=\"height: 66px;\">\n <v-tooltip right data-cy=\"my-part-information-tooltip-grid\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon\n class=\"d-flex\"\n v-bind=\"attrs\"\n color=\"primary\"\n data-cy=\"my-part-information-grid\"\n v-on=\"on\"\n >\n mdi-information-outline\n </v-icon>\n </template>\n <span class=\"white--text\" data-cy=\"my-part-user-grid\">\n {{ part.PortalUserId }}\n </span>\n <br>\n <span class=\"white--text\" data-cy=\"my-part-user-grid\">\n Item: {{ part.Item }}\n </span>\n <br>\n <span data-cy=\"my-part-expiration-date-grid\">\n {{\n isExpired() ? 'Is Expired Since' : $t('common.validUntil')\n }}: {{ moment(part.ExpireDate).format('YYYY-MM-DD') }}\n </span>\n </v-tooltip>\n <div class=\"d-flex flex-column\">\n <core-upload-svg-drawing\n v-if=\"needSvg\"\n :part=\"part\"\n />\n <core-technical-drawing-pdf\n v-if=\"need2dDrawing\"\n :part=\"part\"\n />\n </div>\n <v-spacer />\n <template v-if=\"_.get(currentUser, 'isAdmin') || _.get(currentUser, ['rights', 'placeOrder'])\">\n <template v-if=\"isExpired(part)\">\n <v-btn\n :loading=\"part.isSavePending\"\n color=\"primary\"\n data-cy=\"refresh-quote-button-grid\"\n @click=\"refreshMyPartPrice(part)\"\n >\n <v-icon left>\n mdi-autorenew\n </v-icon>\n {{ t('views.myParts.refreshQuote') }}\n </v-btn>\n </template>\n <template v-else>\n <template v-if=\"isPartPresentInCurrentOrder(part)\">\n <v-btn\n color=\"primary\"\n class=\"ml-6\"\n data-cy=\"remove-order-this-button-grid\"\n @click.stop=\"removeToOrder(part)\"\n >\n {{ $t('views.productOption.removeToOrder') }}\n </v-btn>\n </template>\n <template v-else>\n <v-tooltip v-if=\"need2dDrawing && !part.TwoDFile || needSvg && !part.SvgFile\" bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\">\n <v-btn\n v-bind=\"attrs\"\n color=\"primary\"\n class=\"ml-6\"\n data-cy=\"order-this-button-grid\"\n disabled\n @click.stop=\"addToOrder\"\n >\n {{ $t('views.productOption.addToOrder') }}\n </v-btn>\n </div>\n </template>\n <span v-if=\"need2dDrawing\">\n {{ $t('views.productOption.addToOrderToolTip') }}\n </span>\n <span v-else>\n {{ $t('views.productOption.addToOrderSvgToolTip') }}\n </span>\n </v-tooltip>\n <v-tooltip v-else-if=\"currentOrder && !currentOrder.canAddItem(part)\" bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\">\n <v-btn\n v-bind=\"attrs\"\n color=\"primary\"\n class=\"ml-6\"\n data-cy=\"order-this-button-grid\"\n :disabled=\"currentOrder && !currentOrder.canAddItem(part)\"\n @click.stop=\"addToOrder\"\n >\n {{ $t('views.productOption.addToOrder') }}\n </v-btn>\n </div>\n </template>\n <span>\n {{ $t('views.productOption.addToOrderSingleLocationToolTip') }}\n </span>\n </v-tooltip>\n <v-btn\n v-else\n color=\"primary\"\n class=\"ml-6\"\n data-cy=\"order-this-button-grid\"\n @click.stop=\"addToOrder\"\n >\n {{ $t('views.productOption.addToOrder') }}\n </v-btn>\n </template>\n </template>\n </template>\n </v-card-actions>\n <core-part-viewer-drawer\n v-if=\"isPartViewerActive\"\n :is-open=\"isPartViewerActive\"\n :part=\"part\"\n @closeSidePanel=\"isPartViewerActive = false\"\n />\n <core-dialog\n v-if=\"deleteDialog.display\"\n v-model=\"deleteDialog.display\"\n type=\"confirmation\"\n width=\"500px\"\n data-cy=\"delete-dialogue\"\n :ok-button-text=\"$t('common.delete')\"\n @click:ok=\"\n deleteDialog.display = false; part.remove(); removeToOrder(part)\"\n @click:cancel=\"cancelDelete\"\n >\n <template #title>\n {{ $t('views.myParts.deleteDialogPartTitle') }}\n </template>\n <template #content>\n <div class=\"pa-10 text-center\">\n <span class=\"d-block\">\n <span\n class=\"d-block\"\n data-cy=\"delete-dialogue-2\"\n v-html=\"$t('common.deleteDialogText', { name: deleteDialog.partToDelete.CustItemName })\"\n />\n </span>\n </div>\n </template>\n </core-dialog>\n </v-card>\n</template>\n<script>\nimport { models } from 'feathers-vuex';\n\nimport {\n computed, defineComponent, ref,\n} from '@vue/composition-api';\nimport currency from 'currency.js';\n\nconst { Company, MyProduct } = models.api;\n\nexport default defineComponent({\n props: {\n /**\n * Manipulate the way field's value displays\n */\n part: {\n type: Object,\n default: () => {\n }\n },\n },\n\n setup(props, context) {\n const t = context.root.$t;\n\n const company = computed(() => Company.getFromStore(0));\n\n const currentUser = computed(() => context.root.$store.getters['auth/user']);\n\n const partViewerPart = ref({});\n\n const isPartViewerActive = ref(false);\n\n const currencySymbol = computed(() => _.get(company.value, 'currencySymbol', '$'));\n\n const defaultQty = computed(() => Math.min(...props.part.PriceMOQ.map(o => o.Qty)));\n\n const ReqQty = ref(defaultQty.value);\n\n const deleteDialog = ref({\n display: false,\n partToDelete: new MyProduct(),\n });\n\n // const currentOrder = computed(() => context.root.$store.state.app.currentOrder);\n const currentOrder = computed(() => context.root.$store.getters['app/currentOrder']);\n\n const getRoughnessName = computed(() => {\n switch (props.part.Roughness) {\n case '6.0':\n return context.root.$t('views.myParts.roughnessMilledName');\n case '3.2':\n return context.root.$t('views.myParts.roughnessStandardName');\n case '1.6':\n return context.root.$t('views.myParts.roughnessFineName');\n case '0.8':\n return context.root.$t('views.myParts.roughnessGradeName');\n default:\n return 'N/A';\n }\n });\n\n const getRoughnessValue = computed(() => {\n switch (props.part.Roughness) {\n case '6.0':\n return context.root.$t('views.myParts.roughnessMilledValue');\n case '3.2':\n return context.root.$t('views.myParts.roughnessStandardValue');\n case '1.6':\n return context.root.$t('views.myParts.roughnessFineValue');\n case '0.8':\n return context.root.$t('views.myParts.roughnessGradeValue');\n default:\n return '';\n }\n });\n\n const sortByQuantity = part => {\n if (part.PriceMOQ) {\n const priceMoq = JSON.parse(part.PriceMOQ);\n return priceMoq.sort((a, b) => b.Qty - a.Qty).map(moq => ({\n ...moq,\n Price: currency(moq.Price, { symbol: currencySymbol.value }).format(),\n }));\n }\n return [];\n };\n\n const priceRange = part => {\n try {\n const parsedData = part.PriceMOQ;\n const first = parsedData[0];\n const last = parsedData.pop();\n return `${currency(last.Price, { symbol: currencySymbol.value }).format()} - ${currency(first.Price, { symbol: currencySymbol.value }).format()}`;\n } catch {\n return context.root.$t('common.noDataAvailable');\n }\n };\n\n const isExpired = () => moment().diff(props.part.ExpireDate, 'days') > 0;\n\n const refreshMyPartPrice = async part => {\n const query = {\n query: {\n shouldUpdatePrice: true,\n },\n notificationMessage: context.root.$t('views.myParts.refreshPriceSuccessMessage'),\n };\n await part.save(query);\n };\n\n const itemRowBackground = part => (this.isExpired(part) ? 'expired-row' : null);\n\n const cancelDelete = () => {\n deleteDialog.value.display = false;\n deleteDialog.value.partToDelete = new MyProduct();\n };\n\n const addToOrder = async () => {\n // eslint-disable-next-line no-underscore-dangle\n const order = await context.root.$store._actions['app/initCurrentOrder'][0]();\n order.addItem('myproduct', props.part._id, ReqQty.value);\n };\n\n const removeToOrder = part => {\n if (currentOrder.value) {\n currentOrder.value.spliceItem(currentOrder.value.orderItems.indexOf(part), 1);\n }\n };\n\n const calculatePrice = computed(() => part => {\n if (!part.PriceMOQ) {\n return currency(0, { symbol: currencySymbol.value });\n }\n\n let priceMoq;\n if (typeof part.PriceMOQ === 'string') {\n priceMoq = JSON.parse(part.PriceMOQ);\n } else {\n priceMoq = [...part.PriceMOQ];\n }\n\n const priceMOQ = [...priceMoq].sort(({ Qty: a }, { Qty: b }) => b - a);\n\n const findPrice = priceMOQ.find(({ Qty }) => Qty <= ReqQty.value) || Math.min(...priceMOQ.map(o => o.Qty));\n\n if (!findPrice) {\n return currency(0, { symbol: currencySymbol.value });\n }\n\n return currency(findPrice.Price, { symbol: currencySymbol.value });\n });\n\n const updateValue = () => event => {\n if (parseInt(event.target.value, 10) <= parseInt(event.target.min, 10)) {\n return event.target.min;\n }\n if (parseInt(event.target.max, 10) < parseInt(event.target.value, 10)) {\n return event.target.max;\n }\n return event.target.value;\n };\n\n const isPartPresentInCurrentOrder = computed(() => part => {\n if (currentOrder.value === null) {\n return false;\n }\n\n const currentPart = currentOrder.value.items.findIndex(item => item._id === part._id);\n\n return currentPart !== -1;\n });\n\n const need2dDrawing = computed(() => {\n const need2d = _.get(props.part, 'Others.need2dDrawing', undefined);\n if (need2d !== undefined) {\n return need2d;\n }\n return props.part.Machine === 'sheet-metal' && props.part.CustFileName.split('.').pop().toUpperCase() === 'DXF';\n });\n\n const needSvg = computed(() => props.part.Machine === 'sheet-metal' && props.part.LaserEngraving === '1');\n\n return {\n sortByQuantity,\n removeToOrder,\n addToOrder,\n cancelDelete,\n itemRowBackground,\n refreshMyPartPrice,\n isExpired,\n priceRange,\n deleteDialog,\n calculatePrice,\n currencySymbol,\n currentUser,\n isPartPresentInCurrentOrder,\n t,\n defaultQty,\n ReqQty,\n isPartViewerActive,\n partViewerPart,\n updateValue,\n getRoughnessName,\n getRoughnessValue,\n need2dDrawing,\n needSvg,\n currentOrder,\n };\n },\n});\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PartCard.vue?vue&type=template&id=f7d998c2&scoped=true&\"\nimport script from \"./PartCard.vue?vue&type=script&lang=js&\"\nexport * from \"./PartCard.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 \"f7d998c2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCol,VContainer,VIcon,VRow,VSheet,VSpacer,VTextField,VTooltip})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderItemsTable.vue?vue&type=style&index=0&id=d3b94924&scoped=true&lang=css&\"","import Vue from 'vue';\n\nexport const reset = defaults => state => {\n Object.assign(state, defaults || {});\n};\n\nexport const clear = property => state => {\n const currentState = state;\n Vue.delete(currentState, property);\n};\n\nexport const clearAt = property => (state, payload) => {\n const currentState = state;\n Vue.delete(_.get(currentState, property), payload._id);\n};\n\nexport const set = property => (state, payload) => {\n const currentState = state;\n Vue.set(currentState, property, payload);\n};\n\nexport const setAt = property => (state, payload) => {\n const currentState = state;\n Vue.set(_.get(currentState, property), payload._id, payload);\n};\n\nexport const update = property => (state, payload) => {\n const currentState = state;\n const old = _.get(currentState, property);\n Vue.set(currentState, property, { ...old, ...payload });\n};\n\nexport const updateAt = property => (state, payload) => {\n const currentState = state;\n const old = _.get(currentState, [property, payload._id]);\n Vue.set(_.get(currentState, property), payload._id, { ...old, ...payload });\n};\n\nexport const toggle = property => state => {\n const currentState = state;\n Vue.set(currentState, property, !state[property]);\n};\n\nexport const setStorage = property => (state, payload) => {\n const currentState = state;\n Vue.set(currentState, property, payload);\n let v = payload;\n if (_.isObject(payload)) {\n v = JSON.stringify(payload);\n }\n localStorage.setItem(property, v);\n};\n\nexport const toggleStorage = property => state => {\n const currentState = state;\n Vue.set(currentState, property, !state[property]);\n localStorage.setItem(property, currentState[property]);\n};\n\nexport const clearStorage = property => state => {\n const currentState = state;\n Vue.set(currentState, property, undefined);\n localStorage.removeItem(property);\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangPriceMoqLabel.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"auto\"}},[_c('v-row',[_c('v-col',{staticClass:\"py-0 align-self-center\",attrs:{\"cols\":\"auto\"}},[_c('span',[_vm._v(_vm._s(_vm.label))])]),_c('v-col',{staticClass:\"pa-0 align-self-center\",attrs:{\"cols\":\"auto\"}},[_c('v-select',_vm._b({staticClass:\"version-select\",style:({ 'max-width': _vm.width }),attrs:{\"items\":_vm.items,\"item-text\":_vm.itemText,\"item-value\":_vm.itemValue,\"background-color\":\"success lighten-5\",\"hide-details\":\"\",\"dense\":\"\",\"solo\":\"\"},model:{value:(_vm.data),callback:function ($$v) {_vm.data=$$v},expression:\"data\"}},'v-select',_vm.$attrs,false))],1),_c('v-col',{staticClass:\"pa-0 pl-2 align-self-center\",attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"color\":\"success\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('new-version')}}},[_c('v-icon',[_vm._v(\"mdi-plus\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-col class=\"py-0\" cols=\"auto\">\n <v-row>\n <v-col class=\"py-0 align-self-center\" cols=\"auto\">\n <span>{{ label }}</span>\n </v-col>\n\n <v-col class=\"pa-0 align-self-center\" cols=\"auto\">\n <v-select\n v-model=\"data\"\n class=\"version-select\"\n :style=\"{ 'max-width': width }\"\n :items=\"items\"\n :item-text=\"itemText\"\n :item-value=\"itemValue\"\n background-color=\"success lighten-5\"\n v-bind=\"$attrs\"\n hide-details\n dense\n solo\n />\n </v-col>\n\n <v-col class=\"pa-0 pl-2 align-self-center\" cols=\"auto\">\n <v-btn\n color=\"success\"\n icon\n @click=\"$emit('new-version')\"\n >\n <v-icon>mdi-plus</v-icon>\n </v-btn>\n </v-col>\n </v-row>\n </v-col>\n</template>\n\n<script>\nimport ModelMixin from '../../mixins/model';\n\nexport default {\n mixins: [\n ModelMixin,\n ],\n\n props: {\n value: Number,\n label: String,\n items: { type: Array, default: () => [] },\n itemText: [String, Function],\n itemValue: [String, Function],\n itemDisabled: [String, Function],\n width: String,\n }\n};\n</script>\n\n<style scoped>\n.version-select {\n max-width: 5em;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionManager.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionManager.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./VersionManager.vue?vue&type=template&id=1e222a4c&scoped=true&\"\nimport script from \"./VersionManager.vue?vue&type=script&lang=js&\"\nexport * from \"./VersionManager.vue?vue&type=script&lang=js&\"\nimport style0 from \"./VersionManager.vue?vue&type=style&index=0&id=1e222a4c&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 \"1e222a4c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VCol,VIcon,VRow,VSelect})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangPriceMoq.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"ma-1\",attrs:{\"hover\":\"\",\"width\":\"510px\",\"min-width\":\"510px\",\"ripple\":false}},[_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"text-center\",staticStyle:{\"min-width\":\"120px\",\"max-width\":\"120px\"},attrs:{\"cols\":\"3\"}},[_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"height\":\"90px\",\"width\":\"90px\"}}),_c('v-skeleton-loader',{staticClass:\"mt-3\",attrs:{\"type\":\"text\",\"width\":\"70px\",\"height\":\"20px\"}})],1),_c('v-col',[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"125px\"}}),_c('v-skeleton-loader',{staticClass:\"mt-10\",attrs:{\"type\":\"image\",\"height\":\"30px\",\"width\":\"200px\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"100px\"}}),_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"100px\"}})],1),_c('v-col',[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"100px\"}}),_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"100px\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"100px\"}}),_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"100px\"}})],1),_c('v-col',[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"100px\"}}),_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"100px\"}})],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-skeleton-loader',{staticClass:\"mt-3\",attrs:{\"type\":\"text\",\"width\":\"70px\",\"height\":\"20px\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./PartCardSkeleton.vue?vue&type=template&id=1bf03080&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardActions,VCol,VContainer,VRow,VSkeletonLoader,VSpacer})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'company';\n\nconst Model = class Company extends BaseModel {\n static modelName = 'Company';\n\n static instanceDefaults() {\n return {\n };\n }\n\n static setupInstance(data) {\n if (data.region) {\n data.region = data.region.split('-').pop();\n }\n }\n\n get currencySymbol() {\n return this.CurrCode === 'CNY' ? 'Â¥' : '$';\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-menu',{ref:\"menu\",attrs:{\"close-on-content-click\":false,\"return-value\":_vm.data,\"transition\":\"scale-transition\",\"min-width\":\"290px\",\"nudge-top\":\"-6\",\"offset-y\":\"\",\"offset-overflow\":\"\"},on:{\"update:returnValue\":function($event){_vm.data=$event},\"update:return-value\":function($event){_vm.data=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g(_vm._b({directives:[{name:\"mask\",rawName:\"v-mask\",value:('##:##'),expression:\"'##:##'\"}],attrs:{\"append-icon\":\"mdi-clock-outline\",\"hint\":\"hh:mm\",\"error\":_vm.invalidTime,\"error-messages\":_vm.invalidTimeMessage},on:{\"blur\":_vm.onBlur},model:{value:(_vm.data),callback:function ($$v) {_vm.data=$$v},expression:\"data\"}},'v-text-field',_vm.$attrs,false),Object.assign({}, _vm.$listeners, on)))]}}]),model:{value:(_vm.menuPicker),callback:function ($$v) {_vm.menuPicker=$$v},expression:\"menuPicker\"}},[(_vm.menuPicker)?_c('v-time-picker',_vm._g(_vm._b({attrs:{\"format\":\"24hr\",\"locale\":_vm.$i18n.locale},on:{\"click:minute\":function($event){return _vm.$refs.menu.save(_vm.data)}},model:{value:(_vm.data),callback:function ($$v) {_vm.data=$$v},expression:\"data\"}},'v-time-picker',_vm.$attrs,false),_vm.$listeners)):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-menu\n ref=\"menu\"\n v-model=\"menuPicker\"\n :close-on-content-click=\"false\"\n :return-value.sync=\"data\"\n transition=\"scale-transition\"\n min-width=\"290px\"\n nudge-top=\"-6\"\n offset-y\n offset-overflow\n >\n <template v-slot:activator=\"{ on }\">\n <v-text-field\n v-model=\"data\"\n v-mask=\"'##:##'\"\n v-bind=\"$attrs\"\n append-icon=\"mdi-clock-outline\"\n hint=\"hh:mm\"\n :error=\"invalidTime\"\n :error-messages=\"invalidTimeMessage\"\n v-on=\"{ ...$listeners, ...on }\"\n @blur=\"onBlur\"\n />\n </template>\n\n <v-time-picker\n v-if=\"menuPicker\"\n v-model=\"data\"\n format=\"24hr\"\n v-bind=\"$attrs\"\n :locale=\"$i18n.locale\"\n v-on=\"$listeners\"\n @click:minute=\"$refs.menu.save(data)\"\n />\n </v-menu>\n</template>\n\n<script>\nimport ModelMixin from '../../mixins/model';\n\nexport default {\n mixins: [\n ModelMixin,\n ],\n\n props: {\n value: { type: String, default: '' },\n },\n\n data() {\n return {\n time: '',\n menuPicker: false,\n invalidTime: false,\n invalidTimeMessage: undefined,\n };\n },\n\n watch: {\n data(newValue) {\n if (_.isEmpty(newValue)) {\n return;\n }\n\n const t = moment(newValue, 'HH:mm', true);\n if (t.isValid()) {\n this.pickerTime = t.format('HH:mm');\n }\n },\n\n pickerTime(newValue) {\n this.data = newValue;\n },\n },\n\n mounted() {\n this.pickerTime = this.data;\n },\n\n methods: {\n validate(s) {\n if (_.isEmpty(s)) {\n return;\n }\n\n const t = moment(s, 'HH:mm', true);\n this.invalidTime = !t.isValid();\n this.invalidTimeMessage = this.invalidTime ? this.$t('common.error.time') : undefined;\n },\n\n onBlur(event) {\n let t = event.relatedTarget;\n while (t) {\n if (t.classList && t.classList.contains('v-picker--time')) {\n break;\n }\n t = t.parentNode;\n }\n if (!t) {\n this.menuPicker = false;\n }\n this.$refs.menu.save(this.data);\n this.validate(this.data);\n },\n }\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TimeField.vue?vue&type=template&id=259e26f8&\"\nimport script from \"./TimeField.vue?vue&type=script&lang=js&\"\nexport * from \"./TimeField.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTimePicker } from 'vuetify/lib/components/VTimePicker';\ninstallComponents(component, {VMenu,VTextField,VTimePicker})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"py-0 mb-3 px-1\",attrs:{\"fluid\":\"\"}},[_c('v-row',{staticStyle:{\"background-color\":\"white\",\"border-radius\":\"10px\"}},[_c('v-col',{staticClass:\"py-0 px-5\",staticStyle:{\"min-width\":\"175px\",\"max-width\":\"175px\"},attrs:{\"cols\":\"3\",\"data-cy\":\"vertical-block-1-grid\"},on:{\"click\":_vm.onClickButton}},[_c('core-thumbnail-viewer',{staticClass:\"mr-2 mt-2\",attrs:{\"part\":_vm.part,\"part-lookup-key\":'Item',\"width\":90,\"height\":90,\"data-cy\":\"image-grid\"}}),_c('v-btn',{staticClass:\"pl-0\",attrs:{\"text\":\"\",\"x-small\":\"\",\"color\":\"primary\",\"data-cy\":\"view-details-grid\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.viewDetails'))+\" \"),_c('v-icon',{attrs:{\"x-small\":\"\",\"right\":\"\"}},[_vm._v(\" mdi-arrow-right \")])],1)],1),_c('v-col',{staticClass:\"px-1 pb-0 ma-0\",attrs:{\"data-cy\":\"vertical-block-2-grid\"}},[_c('v-row',{staticClass:\"text-h5 pa-1 ma-0\",attrs:{\"data-cy\":\"horizontal-1-vertical-block-2-grid\"}},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"4\",\"data-cy\":\"quote-title-grid\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.highlight(_vm.part.CustItemName))}}),_vm._v(\" \"+_vm._s(_vm.$t('common.revision', {revision: _vm.part.Revision}))+\" \")]),_c('v-col',{staticClass:\"d-flex justify-center pa-0 mt-1\",attrs:{\"cols\":\"4\"}},[(_vm._.get(_vm.user, 'isAdmin') || _vm._.get(_vm.user, ['rights', 'myParts']))?_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\",\"disabled\":_vm.isAlreadyInMyParts,\"loading\":_vm.myPart.isSavePending,\"color\":\"primary\",\"data-cy\":\"save-parts-grid\"},on:{\"click\":_vm.saveToMyParts}},[(_vm.isAlreadyInMyParts)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.existsInMyParts'))+\" \")]):[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-download \")]),_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.saveToMyParts'))+\" \")])]],2):_vm._e(),(_vm.need2dDrawing)?_c('core-technical-drawing-pdf',{staticClass:\"mt-n1\",attrs:{\"part\":_vm.part,\"button-attrs\":{ 'small': true },\"button-icon-attrs\":{ style: 'font-size: 18px' }}}):_vm._e(),(_vm.needSvg)?_c('core-upload-svg-drawing',{staticClass:\"mt-n1\",attrs:{\"part\":_vm.part,\"button-attrs\":{ 'small': true },\"button-icon-attrs\":{ style: 'font-size: 18px' }}}):_vm._e()],1)],1),_c('v-row',{staticClass:\"px-1 ma-0\",attrs:{\"data-cy\":\"horizontal-2-vertical-block-2-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.CustItemDesc)+\" \")]),_c('v-row',{staticClass:\"pa-0 ma-0\",attrs:{\"data-cy\":\"horizontal-3-vertical-block-2-grid\"}},[_c('v-col',{staticClass:\"px-1 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\",\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":\"material-label-grid\"}},[_vm._v(_vm._s(_vm.$t('views.rfqs.material')))]),_c('span',{attrs:{\"data-cy\":\"material-grid\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(_vm.part.materialTranslation))}})]),(_vm.part.Machine === 'sheet-metal')?_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\",\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":\"thickness-label-grid\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.thickness'))+\" \")]),_c('span',{attrs:{\"data-cy\":\"thickness-grid\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(_vm.part.materialThicknessTranslation))}})]):_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\",\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":\"thickness-label-grid\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.roughness'))+\" \")]),_c('span',{attrs:{\"data-cy\":\"thickness-grid\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(_vm.roughnessName))}})]),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\",\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":\"series-label-grid\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.series'))+\" \")]),_c('span',{attrs:{\"data-cy\":\"series-grid\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(_vm.part.materialSeriesTranslation))}})]),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\",\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":\"finish-label-grid\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.finish'))+\" \")]),_c('span',{attrs:{\"data-cy\":\"finish-grid\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight( _vm.part.materialFinishTranslation ))}})]),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\",\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":\"tolerances-label-grid\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.tolerances'))+\" \")]),_c('span',{attrs:{\"data-cy\":\"tolerances-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.toleranceTranslation)+\" \")])]),_c('v-col',{staticClass:\"ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\",\"color\":\"#8D8D8D\",\"width\":\"120px\"},attrs:{\"data-cy\":\"factory-name-label-grid\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.productionLocation'))+\" \")]),_c('span',{attrs:{\"data-cy\":\"factory-name-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.FactoryName)+\" \")])])],1)],1),_c('v-col',{staticClass:\"pt-2 pb-0 px-1\",staticStyle:{\"min-width\":\"190px\",\"display\":\"flex\",\"align-items\":\"center\"},attrs:{\"cols\":\"2\",\"data-cy\":\"vertical-block-3-grid\"}},[_c('core-price-moq-table',{staticClass:\"mr-5\",attrs:{\"part\":_vm.part}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container fluid class=\"py-0 mb-3 px-1\">\n <v-row style=\"background-color: white; border-radius: 10px;\">\n <v-col\n cols=\"3\"\n class=\"py-0 px-5\"\n style=\"min-width: 175px; max-width: 175px;\"\n data-cy=\"vertical-block-1-grid\"\n @click=\"onClickButton\"\n >\n <core-thumbnail-viewer\n :part=\"part\"\n :part-lookup-key=\"'Item'\"\n :width=\"90\"\n :height=\"90\"\n class=\"mr-2 mt-2\"\n data-cy=\"image-grid\"\n />\n <v-btn\n text\n x-small\n color=\"primary\"\n class=\"pl-0\"\n data-cy=\"view-details-grid\"\n >\n {{ $t('common.viewDetails') }}\n <v-icon x-small right>\n mdi-arrow-right\n </v-icon>\n </v-btn>\n </v-col>\n <v-col class=\"px-1 pb-0 ma-0\" data-cy=\"vertical-block-2-grid\">\n <v-row class=\"text-h5 pa-1 ma-0\" data-cy=\"horizontal-1-vertical-block-2-grid\">\n <v-col cols=\"4\" class=\"pa-0\" data-cy=\"quote-title-grid\">\n <span v-html=\"highlight(part.CustItemName)\" />\n {{ $t('common.revision', {revision: part.Revision}) }}\n </v-col>\n <v-col cols=\"4\" class=\"d-flex justify-center pa-0 mt-1\">\n <v-btn\n v-if=\"_.get(user, 'isAdmin') || _.get(user, ['rights', 'myParts'])\"\n text\n small\n :disabled=\"isAlreadyInMyParts\"\n :loading=\"myPart.isSavePending\"\n color=\"primary\"\n data-cy=\"save-parts-grid\"\n @click=\"saveToMyParts\"\n >\n <span v-if=\"isAlreadyInMyParts\">\n {{ $t('views.rfqs.existsInMyParts') }}\n </span>\n <template v-else>\n <v-icon left>\n mdi-download\n </v-icon>\n <span>\n {{ $t('views.rfqs.saveToMyParts') }}\n </span>\n </template>\n </v-btn>\n <core-technical-drawing-pdf\n v-if=\"need2dDrawing\"\n class=\"mt-n1\"\n :part=\"part\"\n :button-attrs=\"{ 'small': true }\"\n :button-icon-attrs=\"{ style: 'font-size: 18px' }\"\n />\n <core-upload-svg-drawing\n v-if=\"needSvg\"\n class=\"mt-n1\"\n :part=\"part\"\n :button-attrs=\"{ 'small': true }\"\n :button-icon-attrs=\"{ style: 'font-size: 18px' }\"\n />\n </v-col>\n <!-- <v-col cols=\"4\" class=\"d-flex justify-center pa-0\">-->\n <!-- <core-my-part-pdf :part=\"part\" />-->\n <!-- </v-col>-->\n </v-row>\n <v-row class=\"px-1 ma-0\" data-cy=\"horizontal-2-vertical-block-2-grid\">\n {{ part.CustItemDesc }}\n </v-row>\n <v-row class=\"pa-0 ma-0\" data-cy=\"horizontal-3-vertical-block-2-grid\">\n <v-col class=\"px-1 ma-0\">\n <span\n class=\"caption\"\n style=\"display:block; color: #8D8D8D\"\n data-cy=\"material-label-grid\"\n >{{ $t('views.rfqs.material') }}</span>\n <span data-cy=\"material-grid\" v-html=\"highlight(part.materialTranslation)\" />\n </v-col>\n <v-col v-if=\"part.Machine === 'sheet-metal'\" class=\"px-3 ma-0\">\n <span\n class=\"caption\"\n style=\"display:block; color: #8D8D8D\"\n data-cy=\"thickness-label-grid\"\n >\n {{ $t('views.rfqs.thickness') }}\n </span>\n <span data-cy=\"thickness-grid\" v-html=\"highlight(part.materialThicknessTranslation)\" />\n </v-col>\n <v-col v-else class=\"px-3 ma-0\">\n <span\n class=\"caption\"\n style=\"display:block; color: #8D8D8D\"\n data-cy=\"thickness-label-grid\"\n >\n {{ $t('views.rfqs.roughness') }}\n </span>\n <span data-cy=\"thickness-grid\" v-html=\"highlight(roughnessName)\" />\n </v-col>\n <v-col class=\"px-3 ma-0\">\n <span\n class=\"caption\"\n style=\"display:block; color: #8D8D8D\"\n data-cy=\"series-label-grid\"\n >\n {{ $t('views.rfqs.series') }}\n </span>\n <span data-cy=\"series-grid\" v-html=\"highlight(part.materialSeriesTranslation)\" />\n </v-col>\n <v-col class=\"px-3 ma-0\">\n <span\n class=\"caption\"\n style=\"display:block; color: #8D8D8D\"\n data-cy=\"finish-label-grid\"\n >\n {{ $t('views.rfqs.finish') }}\n </span>\n <span\n data-cy=\"finish-grid\"\n v-html=\"highlight( part.materialFinishTranslation )\"\n />\n </v-col>\n <v-col class=\"px-3 ma-0\">\n <span\n class=\"caption\"\n style=\"display:block; color: #8D8D8D\"\n data-cy=\"tolerances-label-grid\"\n >\n {{ $t('views.instantQuote.tolerances') }}\n </span>\n <span data-cy=\"tolerances-grid\">\n {{\n part.toleranceTranslation\n }}\n </span>\n </v-col>\n <v-col class=\"ma-0\">\n <span\n class=\"caption\"\n style=\"display:block; color: #8D8D8D; width: 120px;\"\n data-cy=\"factory-name-label-grid\"\n >\n {{ $t('views.rfqs.productionLocation') }}\n </span>\n <span data-cy=\"factory-name-grid\">\n {{\n part.FactoryName\n }}\n </span>\n </v-col>\n </v-row>\n </v-col>\n <v-col\n cols=\"2\"\n class=\"pt-2 pb-0 px-1\"\n style=\"min-width: 190px; display:flex; align-items:center;\"\n data-cy=\"vertical-block-3-grid\"\n >\n <core-price-moq-table :part=\"part\" class=\"mr-5\" />\n </v-col>\n </v-row>\n </v-container>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapGetters, mapState } from 'vuex';\n\nconst { MyPart } = models.api;\n\nexport default {\n name: 'RfqPartCard',\n props: {\n part: Object,\n customerPriceRange: Array,\n searchValue: String,\n filterPart: { type: Array, default: () => [] }\n },\n data() {\n return {\n myPart: {}\n };\n },\n computed: {\n ...mapState('app', ['locale']),\n ...mapGetters('auth', ['user']),\n isAlreadyInMyParts: vm => vm.part.ExistsInMyProducts,\n needSvg: vm => vm.part.Machine === 'sheet-metal' && vm.part.LaserEngraving === '1',\n need2dDrawing: vm => {\n const need2d = _.get(vm.part, 'Others.need2dDrawing', undefined);\n if (need2d !== undefined) {\n return need2d;\n }\n return vm.part.Machine === 'sheet-metal' && vm.part.CustFileName.split('.').pop().toUpperCase() === 'DXF';\n },\n roughnessName: vm => {\n switch (vm.part.Roughness) {\n case '6.0':\n return vm.$t('views.rfqs.roughnessMilled');\n case '3.2':\n return vm.$t('views.rfqs.roughnessStandard');\n case '1.6':\n return vm.$t('views.rfqs.roughnessFine');\n case '0.8':\n return vm.$t('views.rfqs.roughnessGrade');\n default:\n return 'N/A';\n }\n },\n },\n mounted() {\n // TODO use get by id service when is available\n MyPart.find({ query: {} });\n },\n methods: {\n onClickButton() {\n this.$emit('click:sideView', this.part);\n },\n saveToMyParts() {\n this.myPart = new MyPart({ ..._.omit(this.part, '_id') });\n this.myPart.create({ notificationMessage: this.$t('views.rfqs.savedToMyParts') }).then(() => {\n this.part.ExistsInMyProducts = true;\n });\n },\n highlight(value) {\n const escapedStringRegEx = _.escapeRegExp(this.searchValue);\n const re = new RegExp(`(${escapedStringRegEx})`, 'gi');\n if (!_.isEmpty(this.filterPart)) {\n return value.replace(\n re,\n '<span style=\"background-color: yellow\">$1</span>'\n );\n }\n return value;\n },\n }\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RfqPartCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RfqPartCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RfqPartCard.vue?vue&type=template&id=61fa69c7&\"\nimport script from \"./RfqPartCard.vue?vue&type=script&lang=js&\"\nexport * from \"./RfqPartCard.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VContainer,VIcon,VRow})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderShippingAddress.vue?vue&type=style&index=0&id=fb74c790&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('v-toolbar',{staticClass:\"mb-4\",attrs:{\"color\":\"primary\",\"flat\":\"\"}},[_c('v-card-title',{staticClass:\"white--text\"},[_vm._v(\" Role \")])],1),_c('v-card-text',[_c('v-col',{staticClass:\"py-0\"},[_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"5\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('common.name')},model:{value:(_vm.localValue.name),callback:function ($$v) {_vm.$set(_vm.localValue, \"name\", $$v)},expression:\"localValue.name\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"5\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('form.role.fields.rights'),\"items\":_vm.rightsWithDescriptions,\"item-text\":\"label\",\"item-value\":\"value\",\"chips\":\"\",\"clearable\":\"\",\"small-chips\":\"\",\"deletable-chips\":\"\",\"multiple\":\"\"},model:{value:(_vm.localValue.rights),callback:function ($$v) {_vm.$set(_vm.localValue, \"rights\", $$v)},expression:\"localValue.rights\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('common.inactive')},model:{value:(_vm.localValue.inactive),callback:function ($$v) {_vm.$set(_vm.localValue, \"inactive\", $$v)},expression:\"localValue.inactive\"}})],1)],1)],1),_vm._t(\"default\")],2)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"depressed\":\"\",\"color\":\"primary\",\"disabled\":!_vm.originalFormDataChanged || _vm.loading,\"loading\":_vm.loading},on:{\"click\":function($event){return _vm.$emit('save', _vm.localValue)}}},[_vm._v(\" Save \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-card>\n <v-toolbar\n color=\"primary\"\n class=\"mb-4\"\n flat\n >\n <v-card-title class=\"white--text\">\n Role\n </v-card-title>\n </v-toolbar>\n\n <v-card-text>\n <v-col class=\"py-0\">\n <v-container>\n <v-row>\n <v-col\n class=\"py-0\"\n md=\"5\"\n cols=\"12\"\n >\n <v-text-field\n v-model=\"localValue.name\"\n :label=\"$t('common.name')\"\n />\n </v-col>\n <v-col\n class=\"py-0\"\n cols=\"12\"\n md=\"5\"\n >\n <v-select\n v-model=\"localValue.rights\"\n :label=\"$t('form.role.fields.rights')\"\n :items=\"rightsWithDescriptions\"\n item-text=\"label\"\n item-value=\"value\"\n chips\n clearable\n small-chips\n deletable-chips\n multiple\n />\n </v-col>\n <v-col\n class=\"py-0\"\n cols=\"12\"\n md=\"2\"\n >\n <v-checkbox\n v-model=\"localValue.inactive\"\n :label=\"$t('common.inactive')\"\n />\n </v-col>\n </v-row>\n </v-container>\n\n <slot />\n </v-col>\n </v-card-text>\n\n <v-card-actions>\n <v-spacer />\n <v-btn\n depressed\n color=\"primary\"\n :disabled=\"!originalFormDataChanged || loading\"\n :loading=\"loading\"\n @click=\"$emit('save', localValue)\"\n >\n Save\n </v-btn>\n </v-card-actions>\n </v-card>\n</template>\n\n<script>\nimport { mapState } from 'vuex';\nimport FormMixin from '../../mixins/form';\n\nexport default {\n mixins: [\n FormMixin,\n ],\n\n props: {\n loading: Boolean,\n },\n\n computed: {\n ...mapState('app', ['rights']),\n\n /**\n * Returns all rights descriptions.\n */\n rightsWithDescriptions() {\n return this.rights.map(right => ({ value: right, label: this.$t(`rights.${right}`) }));\n },\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Role.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Role.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Role.vue?vue&type=template&id=da37aaac&\"\nimport script from \"./Role.vue?vue&type=script&lang=js&\"\nexport * from \"./Role.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VContainer,VRow,VSelect,VSpacer,VTextField,VToolbar})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'internal-products';\n\nconst Model = class InternalProduct extends BaseModel {\n static modelName = 'InternalProduct';\n\n static instanceDefaults() {\n return {};\n }\n\n static setupInstance(data) {\n return data;\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","import get from 'lodash/get';\nimport set from 'lodash/set';\nimport clone from 'lodash/clone';\nimport cloneDeep from 'lodash/cloneDeep';\nimport sortBy from 'lodash/sortBy';\nimport last from 'lodash/last';\nimport omit from 'lodash/omit';\nimport remove from 'lodash/remove';\nimport compact from 'lodash/compact';\nimport isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\nimport isString from 'lodash/isString';\nimport isFunction from 'lodash/isFunction';\nimport isNumber from 'lodash/isNumber';\nimport isNaN from 'lodash/isNaN';\nimport isUndefined from 'lodash/isUndefined';\nimport isObject from 'lodash/isObject';\nimport defaultsDeep from 'lodash/defaultsDeep';\nimport upperFirst from 'lodash/upperFirst';\nimport camelCase from 'lodash/camelCase';\nimport uniqBy from 'lodash/uniqBy';\nimport uniqueId from 'lodash/uniqueId';\nimport mapValues from 'lodash/mapValues';\nimport groupBy from 'lodash/groupBy';\nimport pick from 'lodash/pick';\nimport escapeRegExp from 'lodash/escapeRegExp';\nimport debounce from 'lodash/debounce';\nimport merge from 'lodash/merge';\nimport intersection from 'lodash/intersection';\n\nexport default {\n get,\n set,\n clone,\n cloneDeep,\n sortBy,\n last,\n omit,\n remove,\n compact,\n isEmpty,\n isEqual,\n isString,\n isFunction,\n isNumber,\n isNaN,\n isUndefined,\n isObject,\n defaultsDeep,\n upperFirst,\n camelCase,\n uniqBy,\n uniqueId,\n mapValues,\n groupBy,\n pick,\n escapeRegExp,\n debounce,\n merge,\n intersection\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionManager.vue?vue&type=style&index=0&id=1e222a4c&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-card',{staticStyle:{\"min-width\":\"730px\"},attrs:{\"ripple\":false},on:{\"click\":function($event){_vm.isExpanded = !_vm.isExpanded}}},[_c('v-container',{staticStyle:{\"display\":\"grid\",\"grid-template-columns\":\"min-content auto min-content\"}},[_c('v-img',{staticStyle:{\"align-self\":\"start\",\"margin-top\":\"8px\"},attrs:{\"src\":\"https://www.svgrepo.com/show/203564/screw.svg\",\"max-height\":\"60px\",\"max-width\":\"78px\"}}),_c('div',[_c('div',{staticClass:\"text-h4 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.productGroup[_vm.locale === 'en-US' ? 'description' : 'descriptionChs'])+\" \")]),_c('div',{staticClass:\"subtitle-1\"},[_vm._v(\" \"+_vm._s(_vm.productGroup[_vm.locale === 'en-US' ? 'description' : 'descriptionChs'])+\" \")])]),(_vm.isExpanded)?_c('v-icon',{staticStyle:{\"align-self\":\"start\"},attrs:{\"x-large\":\"\"}},[_vm._v(\" mdi-chevron-down \")]):_c('v-icon',{staticStyle:{\"align-self\":\"start\"},attrs:{\"x-large\":\"\"}},[_vm._v(\" mdi-chevron-right \")])],1),_c('v-expand-transition',[(_vm.isExpanded)?_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-container',{staticStyle:{\"display\":\"flex\",\"gap\":\"16px\",\"align-items\":\"center\",\"flex-wrap\":\"wrap\"}},[_c('v-btn',{attrs:{\"depressed\":\"\",\"text\":\"\",\"color\":\"primary\",\"x-large\":\"\"},on:{\"click\":function($event){$event.stopPropagation();_vm.isDrawingsDialogOpen = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-vector-square \")]),_vm._v(\" Drawings \")],1),_vm._l((_vm.productOptions),function(productOption){return [(productOption.attributeTypes[0].fieldType === 'dropdown')?_c('v-select',{key:(\"dropdown-\" + (productOption.id)),staticStyle:{\"max-width\":\"150px\"},attrs:{\"label\":productOption[_vm.locale === 'en-US' ? 'label' : 'labelChs' ],\"items\":productOption.options,\"item-text\":_vm.locale === 'en-US' ? 'text' : 'textChs',\"outlined\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectedOptions[productOption.id]),callback:function ($$v) {_vm.$set(_vm.selectedOptions, productOption.id, $$v)},expression:\"selectedOptions[productOption.id]\"}}):(productOption.attributeTypes[0].fieldType === 'checkbox')?_c('v-checkbox',{key:(\"checkbox-\" + (productOption.id)),staticStyle:{\"max-width\":\"150px\",\"padding-top\":\"0\",\"margin-top\":\"0\"},attrs:{\"label\":productOption[_vm.locale === 'en-US' ? 'label' : 'labelChs' ],\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectedOptions[productOption.id]),callback:function ($$v) {_vm.$set(_vm.selectedOptions, productOption.id, $$v)},expression:\"selectedOptions[productOption.id]\"}}):_vm._e(),(productOption.attributeTypes[0].fieldType === 'readonly')?_c('div',{key:(\"plainText-\" + (productOption.id)),staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"max-width\":\"150px\",\"align-self\":\"stretch\"}},[_c('div',{staticClass:\"caption\",staticStyle:{\"color\":\"rgba(0, 0, 0, 0.6)\"}},[_vm._v(\" \"+_vm._s(productOption[_vm.locale === 'en-US' ? 'label' : 'labelChs'])+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(productOption.options[0][_vm.locale === 'en-US' ? 'text' : 'textChs'])+\" \")])]):_vm._e()]})],2),_c('v-container',{staticClass:\"pt-0\",staticStyle:{\"display\":\"flex\",\"gap\":\"16px\",\"align-items\":\"center\"}},[_c('v-text-field',{staticClass:\"d-flex\",staticStyle:{\"max-width\":\"110px\"},attrs:{\"data-cy\":\"quantity-input-upload\",\"label\":_vm.$t('views.instantQuote.quantity'),\"rules\":[_vm.isPositiveInteger],\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()},\"click\":function($event){$event.stopPropagation();}},nativeOn:{\"input\":function($event){_vm.reqQty = Math.max(Math.abs(Math.trunc($event.target.value)), 0);}},model:{value:(_vm.reqQty),callback:function ($$v) {_vm.reqQty=_vm._n($$v)},expression:\"reqQty\"}}),_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"justify-content\":\"center\",\"align-items\":\"start\",\"background-color\":\"#f0fdf3\",\"border-radius\":\"8px\",\"align-self\":\"stretch\",\"padding\":\"8px\"}},[_c('div',{staticClass:\"subtitle-2\",staticStyle:{\"color\":\"#8D8D8D\"}},[_vm._v(\" Total Price ($) \")]),_c('div',[_vm._v(\"144.00\")])]),_c('v-btn',{attrs:{\"outlined\":\"\",\"x-large\":\"\",\"color\":\"primary\",\"disabled\":!_vm.customBagId || !_vm.selectedProduct,\"data-cy\":\"add-to-custom-bag-button\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('add-to-bag', _vm.selectedProduct)}}},[_vm._v(\" Add to custom bag \")]),_c('v-btn',{attrs:{\"color\":\"primary\",\"x-large\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('add-to-order')}}},[_vm._v(\" Add to order \")])],1)],1):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <v-card\n :ripple=\"false\"\n style=\"min-width: 730px;\"\n @click=\"isExpanded = !isExpanded\"\n >\n <v-container style=\"display: grid; grid-template-columns: min-content auto min-content;\">\n <v-img\n src=\"https://www.svgrepo.com/show/203564/screw.svg\"\n max-height=\"60px\"\n max-width=\"78px\"\n style=\"align-self: start; margin-top: 8px;\"\n />\n <div>\n <div class=\"text-h4 font-weight-bold\">\n {{ productGroup[locale === 'en-US' ? 'description' : 'descriptionChs'] }}\n </div>\n <div class=\"subtitle-1\">\n {{ productGroup[locale === 'en-US' ? 'description' : 'descriptionChs'] }}\n </div>\n </div>\n <v-icon v-if=\"isExpanded\" x-large style=\"align-self: start;\">\n mdi-chevron-down\n </v-icon>\n <v-icon v-else x-large style=\"align-self: start;\">\n mdi-chevron-right\n </v-icon>\n </v-container>\n <v-expand-transition>\n <v-card\n v-if=\"isExpanded\"\n flat\n >\n <v-container style=\"display: flex; gap: 16px; align-items: center; flex-wrap: wrap;\">\n <v-btn\n depressed\n text\n color=\"primary\"\n x-large\n @click.stop=\"isDrawingsDialogOpen = true\"\n >\n <v-icon\n left\n >\n mdi-vector-square\n </v-icon>\n Drawings\n </v-btn>\n\n <template v-for=\"productOption in productOptions\">\n <v-select\n v-if=\"productOption.attributeTypes[0].fieldType === 'dropdown'\"\n :key=\"`dropdown-${productOption.id}`\"\n v-model=\"selectedOptions[productOption.id]\"\n style=\"max-width: 150px;\"\n :label=\"productOption[locale === 'en-US' ? 'label' : 'labelChs' ]\"\n :items=\"productOption.options\"\n :item-text=\"locale === 'en-US' ? 'text' : 'textChs'\"\n outlined\n hide-details\n @click.stop\n />\n <v-checkbox\n v-else-if=\"productOption.attributeTypes[0].fieldType === 'checkbox'\"\n :key=\"`checkbox-${productOption.id}`\"\n v-model=\"selectedOptions[productOption.id]\"\n style=\"max-width: 150px; padding-top: 0; margin-top: 0;\"\n :label=\"productOption[locale === 'en-US' ? 'label' : 'labelChs' ]\"\n hide-details\n @click.stop\n />\n <div\n v-if=\"productOption.attributeTypes[0].fieldType === 'readonly'\"\n :key=\"`plainText-${productOption.id}`\"\n style=\"display: flex; flex-direction: column; max-width: 150px; align-self: stretch;\"\n >\n <div style=\"color: rgba(0, 0, 0, 0.6);\" class=\"caption\">\n {{ productOption[locale === 'en-US' ? 'label' : 'labelChs'] }}\n </div>\n <div>\n {{\n productOption.options[0][locale === 'en-US' ? 'text' : 'textChs']\n }}\n </div>\n </div>\n </template>\n </v-container>\n <v-container style=\"display: flex; gap: 16px; align-items: center;\" class=\"pt-0\">\n <v-text-field\n v-model.number=\"reqQty\"\n style=\"max-width: 110px;\"\n class=\"d-flex\"\n data-cy=\"quantity-input-upload\"\n :label=\"$t('views.instantQuote.quantity')\"\n :rules=\"[isPositiveInteger]\"\n type=\"number\"\n hide-details\n outlined\n @input.native=\"reqQty = Math.max(Math.abs(Math.trunc($event.target.value)), 0);\"\n @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n @click.stop\n />\n\n <div\n style=\"display: flex; flex-direction: column; justify-content: center; align-items: start; background-color: #f0fdf3; border-radius: 8px; align-self: stretch; padding: 8px;\"\n >\n <div class=\"subtitle-2\" style=\"color: #8D8D8D\">\n Total Price ($)\n </div>\n <div>144.00</div>\n </div>\n\n <v-btn\n outlined\n x-large\n color=\"primary\"\n :disabled=\"!customBagId || !selectedProduct\"\n data-cy=\"add-to-custom-bag-button\"\n @click.stop=\"$emit('add-to-bag', selectedProduct)\"\n >\n Add to custom bag\n </v-btn>\n\n <v-btn\n color=\"primary\"\n x-large\n @click.stop=\"$emit('add-to-order')\"\n >\n Add to order\n </v-btn>\n </v-container>\n </v-card>\n </v-expand-transition>\n </v-card>\n </div>\n</template>\n\n<script>\nimport { mapState } from 'vuex';\nimport FormRules from '@/mixins/form-rules';\n\nexport default {\n name: 'HardwareProductGroup',\n\n mixins: [\n FormRules,\n ],\n\n // These can be computed properties that are pulled from the store based on ID\n props: ['productGroup', 'productOptions', 'productGroupOptionValues', 'customBagId'],\n\n data() {\n return {\n selectedOptions: {},\n isExpanded: false,\n reqQty: 1,\n isDrawingsDialogOpen: false,\n };\n },\n\n computed: {\n ...mapState('app', ['locale']),\n\n // Definitely a more efficient way to do this\n drawingsDialogTableHeaders: vm => vm.productOptions\n .map(attribute => ({\n text: attribute[vm.locale === 'en-US' ? 'label' : 'labelChs'],\n id: attribute.id,\n // value: attribute.value,\n })),\n\n selectedProduct: () => true,\n\n optionsProduct: vm => vm.productOptions.map(options => options.options)\n\n // selectedProduct: vm => vm.productGroup.products.find(\n // product => Object.entries(vm.selectedOptions).every(\n // ([key, value]) => product.attributes.find(\n // attribute => attribute.id === key && attribute.value === value\n // )\n // ),\n // ),\n },\n\n mounted() {\n const sensibleDefaults = {\n dropdown: '',\n checkbox: false,\n plainText: '',\n };\n\n this.productOptions.forEach(productOption => {\n this.$set(\n this.selectedOptions,\n productOption.id,\n productOption.attributeTypes[0].fieldType === 'plainText'\n ? this.productGroupOptionValues[this.productGroup.id][productOption.id][0].value\n : sensibleDefaults[productOption.attributeTypes[0].fieldType]\n );\n });\n },\n\n methods: {\n getFormElementFromFieldType: fieldType => {\n switch (fieldType) {\n case 'dropdown':\n return 'v-combobox';\n case 'checkbox':\n return 'v-checkbox';\n case 'plainText':\n return 'p';\n default:\n return '';\n }\n },\n },\n};\n</script>\n\n<style scoped>\n::v-deep .theme--light.v-data-table > .v-data-table__wrapper > table > thead > tr > th {\n background-color: #beebc9;\n padding: 0 0 0 15px !important;\n height: 25px !important;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareProductGroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareProductGroup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HardwareProductGroup.vue?vue&type=template&id=09497cda&scoped=true&\"\nimport script from \"./HardwareProductGroup.vue?vue&type=script&lang=js&\"\nexport * from \"./HardwareProductGroup.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HardwareProductGroup.vue?vue&type=style&index=0&id=09497cda&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 \"09497cda\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCheckbox,VContainer,VExpandTransition,VIcon,VImg,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expand-x-transition',[_c('div',{staticStyle:{\"position\":\"fixed\",\"bottom\":\"22px\",\"left\":\"230px\",\"z-index\":\"5\"}},_vm._l((_vm.buttons),function(button,index){return _c('v-btn',_vm._b({key:index,staticClass:\"mr-7\",attrs:{\"depressed\":\"\"},on:{\"click\":button.action}},'v-btn',button.props,false),[_vm._v(\" \"+_vm._s(button.text)+\" \")])}),1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-expand-x-transition>\n <div style=\"position: fixed; bottom: 22px; left: 230px; z-index: 5;\">\n <v-btn\n v-for=\"(button, index) in buttons\"\n :key=\"index\"\n depressed\n class=\"mr-7\"\n v-bind=\"button.props\"\n @click=\"button.action\"\n >\n {{ button.text }}\n </v-btn>\n </div>\n </v-expand-x-transition>\n</template>\n\n<script>\nimport {\n defineComponent\n} from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'FooterButtonActions',\n props: {\n buttons: Array,\n },\n});\n</script>\n\n<style scoped>\n .v-btn {\n\n }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FooterButtonActions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FooterButtonActions.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FooterButtonActions.vue?vue&type=template&id=2f7b9d9b&scoped=true&\"\nimport script from \"./FooterButtonActions.vue?vue&type=script&lang=js&\"\nexport * from \"./FooterButtonActions.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FooterButtonActions.vue?vue&type=style&index=0&id=2f7b9d9b&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 \"2f7b9d9b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VExpandXTransition } from 'vuetify/lib/components/transitions';\ninstallComponents(component, {VBtn,VExpandXTransition})\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=d808bbbc&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-col',{staticClass:\"py-0\"},[_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('common.email'),\"placeholder\":_vm.$t(\"form.email.placeholders.email\"),\"rules\":[_vm.notEmptyRules, _vm.validEmail],\"disabled\":_vm.isDisabled},on:{\"change\":function($event){return _vm.$emit('change')}},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-col class=\"py-0\">\n <v-row>\n <v-col class=\"py-0\">\n <v-text-field\n v-model=\"localValue\"\n :label=\"$t('common.email')\"\n :placeholder=\"$t(`form.email.placeholders.email`)\"\n :rules=\"[notEmptyRules, validEmail]\"\n :disabled=\"isDisabled\"\n @change=\"$emit('change')\"\n />\n </v-col>\n </v-row>\n </v-col>\n</template>\n\n<script>\nimport ModelableMixin from '../../mixins/modelable';\n\nexport default {\n mixins: [\n ModelableMixin,\n ],\n\n props: {\n isDisabled: Boolean,\n },\n\n data() {\n return {\n notEmptyRules: value => (!!value || 'Cannot be empty'),\n validEmail: value => {\n // eslint-disable-next-line\n const pattern = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return pattern.test(value) || 'Invalid e-mail.';\n },\n };\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Email.vue?vue&type=template&id=bd79c5c6&\"\nimport script from \"./Email.vue?vue&type=script&lang=js&\"\nexport * from \"./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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCol,VRow,VTextField})\n","import feathersClient,\n{\n makeServicePlugin,\n BaseModel,\n makeServiceStore\n} from '../plugins/feathers-client';\nimport i18n from '@/plugins/i18n';\n\nconst servicePath = 'my-products';\nconst Model = class MyProduct extends BaseModel {\n static modelName = 'MyProduct';\n\n static instanceDefaults() {\n return {\n qtyOfPart: 1,\n defaultQuantity: 1\n };\n }\n\n static setupInstance(data) {\n if (data.ExpiryDate) {\n data.ExpiryDate = new Date(data.ExpiryDate);\n }\n if (data.MaterialStr && data.MaterialSeriesStr) {\n this.materialSeriesShortened = data.MaterialSeriesStr.replace(data.MaterialStr, '').trim();\n }\n return data;\n }\n\n get qtyOfPart() {\n // eslint-disable-next-line no-underscore-dangle\n return this._qtyOfPart;\n }\n\n set qtyOfPart(value) {\n // eslint-disable-next-line no-underscore-dangle\n if (value <= this.defaultQuantity) {\n // eslint-disable-next-line no-underscore-dangle\n this._qtyOfPart = this.defaultQuantity;\n return;\n }\n // eslint-disable-next-line no-underscore-dangle\n this._qtyOfPart = value;\n }\n\n get defaultQuantity() {\n // eslint-disable-next-line no-underscore-dangle\n return this._defaultQuantity;\n }\n\n set defaultQuantity(value) {\n // eslint-disable-next-line no-underscore-dangle\n this._defaultQuantity = value;\n }\n\n get materialTranslation() {\n return i18n.locale === 'en-US' ? this.MaterialStr : this.MaterialStrChs;\n }\n\n get materialThicknessTranslation() {\n return i18n.locale === 'en-US' ? this.MaterialThicknessStr : this.MaterialThicknessStrChs;\n }\n\n get materialSeriesTranslation() {\n return i18n.locale === 'en-US' ? this.materialSeriesShortened : this.MaterialSeriesStrChs;\n }\n\n get materialFinishTranslation() {\n return i18n.locale === 'en-US' ? this.MaterialFinishStr.replace(/-/g, '') : this.MaterialFinishStrChs.replace(/-/g, '');\n }\n\n get materialFinishOptionTranslation() {\n return i18n.locale === 'en-US' ? this.MaterialFinishOptionStr.replace(/-/g, '') : this.MaterialFinishOptionStrChs.replace(/-/g, '');\n }\n\n get toleranceTranslation() {\n if (!this.Tolerance) {\n return '-';\n }\n\n return i18n.t(`views.instantQuote.tolerance${this.Tolerance.replace('Precision', '').trim()}`);\n }\n\n get is2dModel() {\n if (this.CustFileName) {\n return this.CustFileName.split('.').pop().replaceAll(' ', '').toUpperCase() === 'DXF';\n }\n return false;\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'finishes';\n\nconst Model = class Finish extends BaseModel {\n static modelName = 'Finish';\n\n static instanceDefaults() {\n return {\n };\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Snack.vue?vue&type=style&index=0&id=4b72d003&scoped=true&lang=css&\"","import feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\nimport i18n from '../plugins/i18n';\n\nconst servicePath = 'users';\n\nconst Model = class User extends BaseModel {\n static modelName = 'User'\n\n static instanceDefaults() {\n return {\n firstName: '',\n lastName: '',\n JobTitle: '',\n officeMobile: '',\n officePhone: '',\n password: '',\n OkToSendDesignTips: null,\n OkToSendManufacturingTips: null,\n // With this field, you can select specific notifier's action at the creation of the contact\n action: 'resendVerifySignup',\n rights: {\n instantQuote: false,\n rfqs: false,\n myParts: false,\n orders: false,\n placeOrder: false,\n accountStatement: false,\n userManagement: false,\n companyManagement: false,\n forwarderManagement: false,\n passwordChanges: false,\n supportUser: false,\n },\n isAdmin: false,\n locale: i18n.locale,\n eula: {\n accepted: false,\n validationDate: '',\n },\n isVerified: false,\n isAvatarLoading: false,\n isAvatarIsHidden: false,\n previewAvatarUrl: '',\n hasCsiData: false,\n department: '',\n refCode: '',\n };\n }\n\n get fullName() {\n return `${this.firstName} ${this.lastName}`;\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath).hooks({\n after: {\n get: [\n context => {\n context.result.hasCsiData = true;\n return context;\n }\n ],\n }\n }),\n Model,\n preferUpdate: true\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'countries';\n\nconst Model = class Country extends BaseModel {\n static modelName = 'Country';\n\n static instanceDefaults() {\n return {\n };\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"pa-0\"},[_c('v-menu',{attrs:{\"data-cy\":\"my-part-second-horizontal-grid-view\",\"open-on-hover\":\"\",\"bottom\":\"\",\"offset-x\":\"\",\"left\":\"\",\"z-index\":\"9999999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-sheet',_vm._g(_vm._b({staticClass:\"d-inline-block font-weight-medium mb-0 pa-1\",staticStyle:{\"border-radius\":\"5px\"},attrs:{\"tag\":\"p\",\"min-width\":\"180px\",\"min-height\":\"41px\",\"color\":_vm.isExpired(_vm.part) ? '#fbe9ec' : '#f0fdf3',\"data-cy\":\"my-part-price-range-box-grid\"}},'v-sheet',attrs,false),on),[(_vm.isExpired())?[_c('div',{staticClass:\"mt-n1 text-center\"},[_c('span',{staticClass:\"flex-nowrap align-center\",staticStyle:{\"font-size\":\"13px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.unitPriceVariation'))+\" \")])]),_c('div',{staticClass:\"mt-n4\"},[(_vm.isExpired())?_c('span',{staticClass:\"mdi mdi-alert-circle rounded d-inline-flex align-center text-left ml-1\",staticStyle:{\"color\":\"#be2a45\",\"font-size\":\"26px\"}}):_vm._e(),_c('span',{staticClass:\"shimmer font-weight-bold ma-0 caption text-center\",class:{ 'colorRed': _vm.isExpired(_vm.part), 'colorGreen': !_vm.isExpired(_vm.part) },staticStyle:{\"font-size\":\"15px\"},attrs:{\"data-cy\":\"my-part-price-range-grid\"}},[_c('span',{staticClass:\"mb-1 pl-0 text-center\",staticStyle:{\"font-size\":\"13px\",\"inline-size\":\"1px\"}},[_vm._v(\" \"+_vm._s(_vm.priceRange(_vm.internalItems))+\" \")])])])]:[_c('div',{staticClass:\"mt-n1 text-center\"},[_c('span',{staticClass:\"flex-nowrap align-center\",staticStyle:{\"font-size\":\"13px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.unitPriceVariation'))+\" \")])]),_c('div',{staticClass:\"mt-n1 pl-3 d-flex align-center justify-center\"},[_c('span',{staticClass:\"shimmer font-weight-bold ma-0 caption text-center\",class:{ 'colorRed': _vm.isExpired(_vm.part), 'colorGreen': !_vm.isExpired(_vm.part) },staticStyle:{\"font-size\":\"15px\"},attrs:{\"data-cy\":\"my-part-price-range-grid\"}},[_c('span',{staticClass:\"mb-1 pl-2 text-center\",staticStyle:{\"font-size\":\"13px\",\"inline-size\":\"1px\"}},[_vm._v(\" \"+_vm._s(_vm.priceRange(_vm.internalItems))+\" \")])]),(!_vm.isExpired(_vm.part))?_c('span',{staticClass:\"mdi mdi-magnify rounded d-inline-flex align-center justify-center ml-1 white--text \",class:{ 'colorRed': _vm.isExpired(_vm.part), 'colorGreen': !_vm.isExpired(_vm.part) },staticStyle:{\"font-size\":\"13px\",\"background-color\":\"#5FCE79\",\"color\":\"white !important\",\"width\":\"20px\",\"font-weight\":\"bold !important\"},style:([_vm.isExpired(_vm.part) ? {'background-color': '#be2a45'} : {'background-color': '#5FCE79'}])}):_vm._e()])]],2)]}}])},[_c('div',{staticClass:\"pa-2\",staticStyle:{\"background-color\":\"white\",\"z-index\":\"9999999\"}},[_c('span',{staticClass:\"body-2 font-weight-bold\"},[_vm._v(_vm._s(_vm.$t('common.unitPricePerQuantity')))]),_c('div',{staticStyle:{\"display\":\"grid\",\"width\":\"min-content\",\"grid-template-columns\":\"max-content max-content\"}},[_vm._l((_vm.sortByQuantity(_vm.internalItems)),function(item,index){return [_c('span',{key:(\"qty-\" + index),staticStyle:{\"color\":\"#8D8D8D\"}},[_vm._v(\" \"+_vm._s(item.Qty)+\": \"+_vm._s('\\xa0')+\" \")]),_c('span',{key:(\"price-\" + index)},[_vm._v(\" \"+_vm._s(_vm.$t('common.pricePerUnit', {price: item.Price}))+\" \")])]})],2)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container class=\"pa-0\">\n <v-menu\n data-cy=\"my-part-second-horizontal-grid-view\"\n open-on-hover\n bottom\n offset-x\n left\n z-index=\"9999999\"\n >\n <template v-slot:activator=\"{ on, attrs }\">\n <v-sheet\n v-bind=\"attrs\"\n tag=\"p\"\n min-width=\"180px\"\n min-height=\"41px\"\n :color=\"isExpired(part) ? '#fbe9ec' : '#f0fdf3'\"\n data-cy=\"my-part-price-range-box-grid\"\n class=\"d-inline-block font-weight-medium mb-0 pa-1\"\n style=\"border-radius:5px\"\n v-on=\"on\"\n >\n <template v-if=\"isExpired()\">\n <div class=\"mt-n1 text-center\">\n <span\n style=\"font-size: 13px\"\n class=\"flex-nowrap align-center\"\n >\n {{ $t('common.unitPriceVariation') }}\n </span>\n </div>\n\n <div class=\"mt-n4\">\n <span\n v-if=\"isExpired()\"\n style=\"color:#be2a45; font-size:26px\"\n class=\"mdi mdi-alert-circle rounded d-inline-flex align-center text-left ml-1\"\n />\n <span\n class=\"shimmer font-weight-bold ma-0 caption text-center\"\n style=\"font-size: 15px\"\n data-cy=\"my-part-price-range-grid\"\n :class=\"{ 'colorRed': isExpired(part), 'colorGreen': !isExpired(part) }\"\n >\n <span class=\"mb-1 pl-0 text-center\" style=\"font-size: 13px;inline-size: 1px;\">\n {{\n priceRange(internalItems)\n }}\n </span>\n </span>\n </div>\n </template>\n\n <template v-else>\n <div class=\"mt-n1 text-center\">\n <span\n style=\"font-size: 13px\"\n class=\"flex-nowrap align-center\"\n >\n {{ $t('common.unitPriceVariation') }}\n </span>\n </div>\n\n <div class=\"mt-n1 pl-3 d-flex align-center justify-center\">\n <span\n class=\"shimmer font-weight-bold ma-0 caption text-center\"\n style=\"font-size: 15px\"\n data-cy=\"my-part-price-range-grid\"\n :class=\"{ 'colorRed': isExpired(part), 'colorGreen': !isExpired(part) }\"\n >\n <span class=\"mb-1 pl-2 text-center\" style=\"font-size: 13px;inline-size: 1px;\">\n {{\n priceRange(internalItems)\n }}\n </span>\n </span>\n <span\n v-if=\"!isExpired(part)\"\n :class=\"{ 'colorRed': isExpired(part), 'colorGreen': !isExpired(part) }\"\n class=\"mdi mdi-magnify rounded d-inline-flex align-center justify-center ml-1 white--text \"\n :style=\"[isExpired(part) ? {'background-color': '#be2a45'} : {'background-color': '#5FCE79'}]\"\n style=\"font-size:13px ;background-color: #5FCE79; color: white !important; width: 20px; font-weight: bold !important\"\n />\n </div>\n </template>\n </v-sheet>\n </template>\n\n <div style=\"background-color: white; z-index:9999999\" class=\"pa-2\">\n <span class=\"body-2 font-weight-bold\">{{ $t('common.unitPricePerQuantity') }}</span>\n <div\n style=\"display: grid;width: min-content;grid-template-columns: max-content max-content;\"\n >\n <template v-for=\"(item,index) in sortByQuantity(internalItems)\">\n <span :key=\"`qty-${index}`\" style=\"color: #8D8D8D\">\n {{ item.Qty }}: {{ '\\xa0' }}\n </span>\n <span :key=\"`price-${index}`\">\n {{ $t('common.pricePerUnit', {price: item.Price}) }}\n </span>\n </template>\n </div>\n </div>\n </v-menu>\n </v-container>\n</template>\n\n<script>\n\nimport { models } from 'feathers-vuex';\n\nimport {\n computed, defineComponent, ref,\n} from '@vue/composition-api';\nimport currency from 'currency.js';\n\nconst { Part, Company } = models.api;\n\nexport default defineComponent({\n props: {\n /**\n * Manipulate the way field's value displays\n */\n part: {\n type: Object,\n default: () => {\n }\n },\n },\n\n setup(props, context) {\n const t = context.root.$t;\n\n const company = computed(() => Company.getFromStore(0));\n\n const currentUser = computed(() => context.root.$store.getters['auth/user']);\n\n const currencySymbol = computed(() => _.get(company.value, 'currencySymbol', '$'));\n\n const deleteDialog = ref({\n display: false,\n partToDelete: new Part(),\n });\n\n const internalItems = computed(() => {\n if (props.part) {\n return props.part;\n }\n return { ExpiryDate: Date.now() };\n });\n\n const currentOrder = computed(() => context.root.$store.state.app.currentOrder);\n\n const sortByQuantity = part => {\n if (!part) {\n return [];\n }\n\n if (part.PriceMOQ) {\n let priceMoq;\n if (typeof part.PriceMOQ === 'string') {\n priceMoq = JSON.parse(part.PriceMOQ);\n } else {\n priceMoq = [...part.PriceMOQ];\n }\n\n return priceMoq.sort((a, b) => b.Qty - a.Qty).map(moq => ({\n ...moq,\n Price: currency(moq.Price, { symbol: currencySymbol.value, precision: 4 }).format(),\n }));\n }\n\n if (part.priceMOQ) {\n let priceMoq;\n if (typeof part.priceMOQ === 'string') {\n priceMoq = JSON.parse(part.priceMOQ);\n } else {\n priceMoq = [...part.priceMOQ];\n }\n\n return priceMoq.sort((a, b) => b.Qty - a.Qty).map(moq => ({\n ...moq,\n Price: currency(moq.Price, { symbol: currencySymbol.value, precision: 4 }).format(),\n }));\n }\n return [];\n };\n\n const priceRange = part => {\n if ((part.PriceMOQ && part.PriceMOQ.length !== 0) || (part.priceMOQ && part.priceMOQ.length !== 0)) {\n let priceMoq;\n if (typeof part.PriceMOQ === 'string') {\n priceMoq = JSON.parse(part.PriceMOQ);\n // eslint-disable-next-line no-prototype-builtins\n } else if (part.hasOwnProperty('priceMOQ')) {\n priceMoq = [...part.priceMOQ];\n } else {\n priceMoq = [...part.PriceMOQ];\n }\n const parsedData = priceMoq;\n const first = parsedData[0];\n const last = parsedData.pop();\n return `${last.Price} ${currencySymbol.value} - ${first.Price}${currencySymbol.value} `;\n }\n return context.root.$t('common.nA');\n };\n\n const isExpired = () => moment().diff(props.part && props.part.ExpireDate ? props.part.ExpireDate : Date.now(), 'days') > 0;\n\n const refreshMyPartPrice = async part => {\n const query = {\n query: {\n shouldUpdatePrice: true,\n },\n notificationMessage: context.root.$t('views.myParts.refreshPriceSuccessMessage'),\n };\n\n await part.save(query);\n };\n\n const itemRowBackground = part => (this.isExpired(part) ? 'expired-row' : null);\n\n const cancelDelete = () => {\n deleteDialog.value.display = false;\n deleteDialog.value.partToDelete = new Part();\n };\n\n const addToOrder = async part => {\n // eslint-disable-next-line no-underscore-dangle\n const order = await context.root.$store._actions['app/initCurrentOrder'][0]();\n order.addItem('part', part._id, part.qtyOfPart);\n };\n\n const removeToOrder = part => {\n if (currentOrder.value) {\n currentOrder.value.items = currentOrder.value.items.filter(item => item._id !== part._id);\n }\n };\n\n const calculatePrice = computed(() => part => {\n if (!part.PriceMOQ) {\n return currency(0, { symbol: currencySymbol.value });\n }\n\n let priceMoq;\n if (typeof part.PriceMOQ === 'string') {\n priceMoq = JSON.parse(part.PriceMOQ);\n } else {\n priceMoq = [...part.PriceMOQ];\n }\n\n const findPrice = priceMoq.find(({ Qty }) => part.qtyOfPart <= Qty) || priceMoq;\n\n if (!findPrice) {\n const unitPrice = Math.min(...priceMoq.map(o => o.Qty));\n // eslint-disable-next-line consistent-return\n const price = parseFloat(unitPrice.toFixed(2)) === 0.00 ? 0.01 : findPrice.Price;\n const finalPrice = currency(price, { symbol: currencySymbol.value, precision: 4 });\n return currency(finalPrice, { symbol: '', precision: 2 }).multiply(part.qtyOfPart);\n }\n\n // eslint-disable-next-line consistent-return\n const price = parseFloat(findPrice.Price.toFixed(2)) === 0.00 ? 0.01 : findPrice.Price;\n const finalPrice = currency(price, { symbol: currencySymbol.value, precision: 4 });\n\n return currency(finalPrice, { symbol: currencySymbol.value, precision: 2 }).multiply(part.qtyOfPart);\n });\n\n const isPartPresentInCurrentOrder = computed(() => part => {\n if (currentOrder.value === null) {\n return false;\n }\n\n const currentPart = currentOrder.value.items.findIndex(item => item._id === part._id);\n\n return currentPart !== -1;\n });\n\n return {\n sortByQuantity,\n removeToOrder,\n addToOrder,\n cancelDelete,\n itemRowBackground,\n refreshMyPartPrice,\n isExpired,\n priceRange,\n deleteDialog,\n calculatePrice,\n currencySymbol,\n currentUser,\n isPartPresentInCurrentOrder,\n internalItems,\n t\n };\n },\n});\n\n</script>\n\n<style>\n.notDisplay {\n visibility: hidden;\n}\n\n.partCard:hover .displayDetail {\n visibility: visible;\n display: inline;\n position: relative;\n}\n\n.partCard:hover .shimmer {\n\n background: var(--color) -webkit-gradient(linear, 100% 0, 0 0,\n from(var(--color)), color-stop(0.5, #ffffff),\n to(var(--color)));\n\n background-position: -4rem top; /*50px*/\n background-repeat: no-repeat;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n -webkit-animation-name: shimmer;\n -webkit-animation-duration: 1.5s;\n -webkit-animation-iteration-count: infinite;\n -webkit-background-size: 4rem 100%; /*50px*/\n -webkit-animation-timing-function: linear;\n}\n\n.colorRed {\n color: #be2a45 !important;\n --color: #be2a45 !important\n}\n\n.colorGreen {\n color: #128347 !important;\n --color: #128347 !important\n}\n\n@-webkit-keyframes shimmer {\n 0% {\n background-position: -4rem top; /*50px*/\n }\n\n 70% {\n background-position: 12.5rem top; /*200px*/\n }\n\n 100% {\n background-position: 12.5rem top; /*200px*/\n }\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangPriceMoq.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangPriceMoq.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RangPriceMoq.vue?vue&type=template&id=2391016e&\"\nimport script from \"./RangPriceMoq.vue?vue&type=script&lang=js&\"\nexport * from \"./RangPriceMoq.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RangPriceMoq.vue?vue&type=style&index=0&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 null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VContainer,VMenu,VSheet})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'delivery-options';\n\nconst Model = class DeliveryOption extends BaseModel {\n static modelName = 'DeliveryOption';\n\n static instanceDefaults() {\n return {\n };\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'customers';\n\nconst Model = class Customer extends BaseModel {\n static modelName = 'Customer';\n\n static instanceDefaults() {\n return {};\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"forwarderForm\",on:{\"input\":function($event){return _vm.$emit('validityChange', $event)}},model:{value:(_vm.isAddressValid),callback:function ($$v) {_vm.isAddressValid=$$v},expression:\"isAddressValid\"}},[(_vm.value)?_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"maxlength\":\"60\",\"data-cy\":\"new-forwarder-name-input\",\"placeholder\":_vm.$t('common.name'),\"label\":_vm.$t('common.name'),\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value.CompanyName),callback:function ($$v) {_vm.$set(_vm.value, \"CompanyName\", $$v)},expression:\"value.CompanyName\"}})],1)],1),_vm._l((_vm.addressFormatted),function(r,i){return _c('v-row',{key:(\"row-\" + i)},_vm._l((r),function(c,j){return _c('v-col',{key:(\"col-\" + j),staticClass:\"py-0\"},[(['address1', 'address2', 'address3', 'address4'].includes(c))?_c('v-text-field',{attrs:{\"maxlength\":\"50\",\"data-cy\":(\"new-forwarder-\" + c + \"-input\"),\"label\":_vm.countryLabels[c],\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), c),\"rules\":[function (v) { return c === 'address2' || _vm.isRequired(v); }],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value[c]),callback:function ($$v) {_vm.$set(_vm.value, c, $$v)},expression:\"value[c]\"}}):(c === 'city')?_c('v-text-field',{attrs:{\"maxlength\":\"30\",\"data-cy\":\"new-forwarder-city-input\",\"label\":_vm.countryLabels[c],\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), c),\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value[c]),callback:function ($$v) {_vm.$set(_vm.value, c, $$v)},expression:\"value[c]\"}}):(c === 'zip')?_c('v-text-field',{attrs:{\"maxlength\":\"10\",\"data-cy\":\"new-forwarder-postal-code-input\",\"label\":_vm.countryLabels.postalCode,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), c),\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value[c]),callback:function ($$v) {_vm.$set(_vm.value, c, $$v)},expression:\"value[c]\"}}):(c === 'country')?_c('v-select',{attrs:{\"maxlength\":\"30\",\"data-cy\":\"new-forwarder-country-input\",\"label\":_vm.countryLabels.country,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'country'),\"items\":_vm.countries,\"rules\":[_vm.isRequired],\"item-text\":\"name\",\"item-value\":\"code\",\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){_vm.value.region = ''\n _vm.value.city = '';\n _vm.value.zip = '';\n _vm.$refs.forwarderForm.resetValidation();}},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('span',{attrs:{\"data-cy\":\"new-forwarder-country-option\"}},[_vm._v(_vm._s(data.item.name))])]}}],null,true),model:{value:(_vm.value.country),callback:function ($$v) {_vm.$set(_vm.value, \"country\", $$v)},expression:\"value.country\"}}):(c === 'province')?_c('v-select',{attrs:{\"maxlength\":\"5\",\"data-cy\":\"new-forwarder-region-input\",\"label\":_vm.countryLabels.zone,\"disabled\":_vm._.isEmpty(_vm.regions),\"items\":_vm.regions,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'region'),\"rules\":[_vm.isRequired],\"item-text\":\"name\",\"item-value\":\"code\",\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){_vm.value.city = '';\n _vm.value.zip = '';\n _vm.$refs.forwarderForm.resetValidation();}},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('span',{attrs:{\"data-cy\":\"new-forwarder-region-option\"}},[_vm._v(_vm._s(data.item.name))])]}}],null,true),model:{value:(_vm.value.region),callback:function ($$v) {_vm.$set(_vm.value, \"region\", $$v)},expression:\"value.region\"}}):_vm._e()],1)}),1)}),_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-text-field',{attrs:{\"maxlength\":\"25\",\"data-cy\":\"new-forwarder-phone-input\",\"label\":_vm.countryLabels.phone,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'phone'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value.phone),callback:function ($$v) {_vm.$set(_vm.value, \"phone\", $$v)},expression:\"value.phone\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-text-field',{attrs:{\"data-cy\":\"new-forwarder-contact-input\",\"maxlength\":\"100\",\"label\":_vm.$t('views.settings.tabs.forwarders.contact'),\"placeholder\":_vm.$t('views.settings.tabs.forwarders.contact'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value.name),callback:function ($$v) {_vm.$set(_vm.value, \"name\", $$v)},expression:\"value.name\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-text-field',{attrs:{\"data-cy\":\"new-forwarder-email-input\",\"maxlength\":\"128\",\"label\":_vm.$t('form.address.fields.email'),\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'email'),\"rules\":[_vm.isEmail],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value.email),callback:function ($$v) {_vm.$set(_vm.value, \"email\", $$v)},expression:\"value.email\"}})],1)],1),_vm._t(\"default\",null,{\"isAddressValid\":_vm.isAddressValid})],2)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-form\n ref=\"forwarderForm\"\n v-model=\"isAddressValid\"\n @input=\"$emit('validityChange', $event)\"\n >\n <v-row v-if=\"value\">\n <v-col class=\"py-0\">\n <v-row>\n <v-col class=\"py-0\" cols=\"12\">\n <v-text-field\n v-model=\"value.CompanyName\"\n maxlength=\"60\"\n data-cy=\"new-forwarder-name-input\"\n :placeholder=\"$t('common.name')\"\n :label=\"$t('common.name')\"\n :rules=\"[isRequired]\"\n outlined\n dense\n />\n </v-col>\n </v-row>\n\n <v-row\n v-for=\"(r, i) in addressFormatted\"\n :key=\"`row-${i}`\"\n >\n <v-col\n v-for=\"(c, j) in r\"\n :key=\"`col-${j}`\"\n class=\"py-0\"\n >\n <v-text-field\n v-if=\"['address1', 'address2', 'address3', 'address4'].includes(c)\"\n v-model=\"value[c]\"\n maxlength=\"50\"\n :data-cy=\"`new-forwarder-${c}-input`\"\n :label=\"countryLabels[c]\"\n :placeholder=\"getPlaceholder(_.get(country, 'code'), c)\"\n :rules=\"[v => c === 'address2' || isRequired(v)]\"\n outlined\n dense\n />\n <v-text-field\n v-else-if=\"c === 'city'\"\n v-model=\"value[c]\"\n maxlength=\"30\"\n data-cy=\"new-forwarder-city-input\"\n :label=\"countryLabels[c]\"\n :placeholder=\"getPlaceholder(_.get(country, 'code'), c)\"\n :rules=\"[isRequired]\"\n outlined\n dense\n />\n <v-text-field\n v-else-if=\"c === 'zip'\"\n v-model=\"value[c]\"\n maxlength=\"10\"\n data-cy=\"new-forwarder-postal-code-input\"\n :label=\"countryLabels.postalCode\"\n :placeholder=\"getPlaceholder(_.get(country, 'code'), c)\"\n :rules=\"[isRequired]\"\n outlined\n dense\n />\n <v-select\n v-else-if=\"c === 'country'\"\n v-model=\"value.country\"\n maxlength=\"30\"\n data-cy=\"new-forwarder-country-input\"\n :label=\"countryLabels.country\"\n :placeholder=\"getPlaceholder(_.get(country, 'code'), 'country')\"\n :items=\"countries\"\n :rules=\"[isRequired]\"\n item-text=\"name\"\n item-value=\"code\"\n outlined\n dense\n @change=\"\n value.region = ''\n value.city = '';\n value.zip = '';\n $refs.forwarderForm.resetValidation();\"\n >\n <template slot=\"item\" slot-scope=\"data\">\n <span data-cy=\"new-forwarder-country-option\">{{ data.item.name }}</span>\n </template>\n </v-select>\n\n <v-select\n v-else-if=\"c === 'province'\"\n v-model=\"value.region\"\n maxlength=\"5\"\n data-cy=\"new-forwarder-region-input\"\n :label=\"countryLabels.zone\"\n :disabled=\"_.isEmpty(regions)\"\n :items=\"regions\"\n :placeholder=\"getPlaceholder(_.get(country, 'code'), 'region')\"\n :rules=\"[isRequired]\"\n item-text=\"name\"\n item-value=\"code\"\n outlined\n dense\n @change=\"\n value.city = '';\n value.zip = '';\n $refs.forwarderForm.resetValidation();\"\n >\n <template slot=\"item\" slot-scope=\"data\">\n <span data-cy=\"new-forwarder-region-option\">{{ data.item.name }}</span>\n </template>\n </v-select>\n </v-col>\n </v-row>\n\n <v-row>\n <v-col class=\"py-0\">\n <v-text-field\n v-model=\"value.phone\"\n maxlength=\"25\"\n data-cy=\"new-forwarder-phone-input\"\n :label=\"countryLabels.phone\"\n :placeholder=\"getPlaceholder(_.get(country, 'code'), 'phone')\"\n outlined\n dense\n />\n </v-col>\n </v-row>\n\n <v-row>\n <v-col class=\"py-0\">\n <v-text-field\n v-model=\"value.name\"\n data-cy=\"new-forwarder-contact-input\"\n maxlength=\"100\"\n :label=\"$t('views.settings.tabs.forwarders.contact')\"\n :placeholder=\"$t('views.settings.tabs.forwarders.contact')\"\n outlined\n dense\n />\n </v-col>\n </v-row>\n\n <v-row>\n <v-col class=\"py-0\">\n <v-text-field\n v-model=\"value.email\"\n data-cy=\"new-forwarder-email-input\"\n maxlength=\"128\"\n :label=\"$t('form.address.fields.email')\"\n :placeholder=\"getPlaceholder(_.get(country, 'code'), 'email')\"\n :rules=\"[isEmail]\"\n outlined\n dense\n />\n </v-col>\n </v-row>\n\n <slot :isAddressValid=\"isAddressValid\" />\n </v-col>\n </v-row>\n </v-form>\n</template>\n\n<script>\n\nimport { mapState } from 'vuex';\nimport { models } from 'feathers-vuex';\nimport AddressFormatter from '@shopify/address';\nimport FormRules from '@/mixins/form-rules';\n\nconst { Company, Country, Regions } = models.api;\n\nexport default {\n mixins: [\n FormRules,\n ],\n\n props: {\n value: {},\n },\n\n data() {\n return {\n chineseForm: null,\n englishForm: null,\n fields: 'form.address.fields',\n placeholder: 'form.address.placeholders',\n isAddressValid: false,\n chineseJson: [],\n englishJson: [],\n };\n },\n\n computed: {\n ...mapState('app', ['locale']),\n\n fetchedCountries: () => Country.findInStore({ query: {} }).data,\n\n fetchedRegions: () => Regions.findInStore({ query: {} }).data,\n\n company: () => Company.getFromStore(0),\n\n regions: vm => _.get(vm, 'country.zones', [])\n .filter(r => vm.fetchedRegions.map(fr => fr.Code).includes(r.code)),\n\n unfilteredCountries: vm => (vm.locale === 'en-US' ? vm.englishJson : vm.chineseJson),\n\n country: vm => vm.countries.find(c => c.code === vm.value.country),\n\n countryLabels: vm => {\n if (vm.country) {\n return vm.country.labels;\n }\n if (vm.countries.length === 0 || !vm.company) {\n return {};\n }\n return vm.countries.find(c => c.code === vm.company.country).labels;\n },\n\n countries: vm => vm.unfilteredCountries.filter(c => vm.fetchedCountries.map(fc => fc.Code).includes(c.code)),\n\n addressFormatter() {\n return new AddressFormatter('CA');\n },\n\n addressFormatted() {\n // TODO: Refactor this, probably using a reduce() and simpler JS\n const DEFAULT_FORM_LAYOUT = '{firstName}{lastName}_{company}_{address1}'\n + '_{address2}_{city}_{country}{province}{zip}_{phone}';\n\n // https://regex101.com/r/SH6ovw/1\n // TODO: It seem this regex and replace was not working\n let formatString = _.get(this, 'country.formatting.edit', DEFAULT_FORM_LAYOUT)\n .replace('({firstName}(_?)|{lastName}(_?)|{company}(_?))', '');\n\n // quick and dirty\n const province = formatString.includes('{province}') ? '{province}' : '';\n formatString = formatString.replace('{country}', '');\n formatString = formatString.replace('{province}', '');\n formatString = formatString.replace('__', '_');\n\n const formatCountryProvince = formatString.replace('{company}', `{company}_{country}${province}`);\n\n return formatCountryProvince.split('_')\n .map(r => r.split('}{'))\n .map(r => {\n r[0] = r[0].replace('{', '');\n r[r.length - 1] = r[r.length - 1].replace('}', '');\n return r;\n });\n },\n },\n\n async created() {\n this.chineseForm = new AddressFormatter('ZH_CN');\n this.englishForm = new AddressFormatter('EN');\n this.chineseJson = await this.chineseForm.getCountries();\n this.englishJson = await this.englishForm.getCountries();\n },\n\n methods: {\n getPlaceholder(countryCode, fieldName) {\n const key = `${this.placeholder}.business.${countryCode}.${fieldName}`;\n\n if (this.$te(key)) {\n return this.$t(key);\n }\n\n return this.$t(`${this.placeholder}.business.default.${fieldName}`);\n },\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forwarder.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forwarder.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Forwarder.vue?vue&type=template&id=40d8cd02&\"\nimport script from \"./Forwarder.vue?vue&type=script&lang=js&\"\nexport * from \"./Forwarder.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCol,VForm,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticStyle:{\"outline\":\"1px dashed #5FCE79\",\"stroke-dasharray\":\"5 10\"},attrs:{\"rounded\":\"\",\"height\":\"250\",\"width\":\"95%\",\"color\":\"#F9F9F9\",\"outlined\":\"\"}},[_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('div',{staticClass:\"text-h5 font-weight-bold mt-2 ml-4\",staticStyle:{\"color\":\"#2E343B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenUploadFileBanner.title'))+\" \")]),_c('v-row',{staticClass:\"ml-4 mt-8\",staticStyle:{\"width\":\"350px\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-upload.svg\"}}),_c('v-divider',{staticClass:\"dashed-line pt-4\"}),_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-ruler.svg\"}})],1),_c('v-row',{staticClass:\"ml-4 mt-8\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"x-large\":\"\",\"disabled\":!_vm.userCanQuote},on:{\"click\":_vm.onActionButtonClicked}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenUploadFileBanner.uploadButton'))+\" \")])],1)],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-row',{staticClass:\"mt-6 pt-2 ml-4\"},[_c('div',{staticClass:\"mr-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenUploadFileBanner.3dFiles'))+\" \")]),_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-cube.svg\"}})]),_c('v-row',{staticClass:\"ml-4\"},[_c('div',{staticClass:\"text-body-1 font-weight-bold mt-2\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenUploadFileBanner.stp'))+\" \")])]),_c('v-row',{staticClass:\"ml-4\"},[_c('div',{staticClass:\"text-body-1 font-weight-bold\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenUploadFileBanner.step'))+\" \")])]),_c('v-row',{staticClass:\"ml-4\"},[_c('div',{staticClass:\"text-body-1 font-weight-bold\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenUploadFileBanner.sldprt'))+\" \")])]),_c('v-row',{staticClass:\"ml-4\"},[_c('p',{staticClass:\"mt-4\",staticStyle:{\"font-size\":\"12px\",\"font-weight\":\"300\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenUploadFileBanner.label1'))+\" \")])])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-card\n rounded\n height=\"250\"\n width=\"95%\"\n color=\"#F9F9F9\"\n outlined\n style=\"outline: 1px dashed #5FCE79; stroke-dasharray: 5 10;\"\n >\n <v-card-text>\n <v-row>\n <v-col cols=\"8\">\n <div class=\"text-h5 font-weight-bold mt-2 ml-4\" style=\"color: #2E343B\">\n {{ $t('views.dashboard.welcomeScreenUploadFileBanner.title') }}\n </div>\n <v-row class=\"ml-4 mt-8\" style=\"width: 350px;\">\n <img\n style=\"vertical-align:middle\"\n src=\"/img/welcomeScreen/icon-upload.svg\"\n >\n <v-divider class=\"dashed-line pt-4\" />\n <img\n style=\"vertical-align:middle\"\n src=\"/img/welcomeScreen/icon-ruler.svg\"\n >\n </v-row>\n <v-row class=\"ml-4 mt-8\" style=\"\">\n <v-btn\n color=\"primary\"\n x-large\n :disabled=\"!userCanQuote\"\n @click=\"onActionButtonClicked\"\n >\n {{ $t('views.dashboard.welcomeScreenUploadFileBanner.uploadButton') }}\n </v-btn>\n </v-row>\n </v-col>\n <v-col cols=\"4\" style=\"\">\n <v-row class=\"mt-6 pt-2 ml-4\">\n <div class=\"mr-1\">\n {{ $t('views.dashboard.welcomeScreenUploadFileBanner.3dFiles') }}\n </div>\n <img\n style=\"vertical-align:middle\"\n src=\"/img/welcomeScreen/icon-cube.svg\"\n >\n </v-row>\n <v-row class=\"ml-4\">\n <div class=\"text-body-1 font-weight-bold mt-2\" style=\"color: #4B4B4B\">\n {{ $t('views.dashboard.welcomeScreenUploadFileBanner.stp') }}\n </div>\n </v-row>\n <v-row class=\"ml-4\">\n <div class=\"text-body-1 font-weight-bold\" style=\"color: #4B4B4B\">\n {{ $t('views.dashboard.welcomeScreenUploadFileBanner.step') }}\n </div>\n </v-row>\n <v-row class=\"ml-4\">\n <div class=\"text-body-1 font-weight-bold\" style=\"color: #4B4B4B\">\n {{ $t('views.dashboard.welcomeScreenUploadFileBanner.sldprt') }}\n </div>\n </v-row>\n <!-- <v-row class=\"ml-4\">\n <div class=\"text-body-1 font-weight-bold\" style=\"color: #4B4B4B\">\n {{ $t('views.dashboard.welcomeScreenUploadFileBanner.dxf') }}\n </div>\n </v-row> -->\n <v-row class=\"ml-4\">\n <p class=\"mt-4\" style=\"font-size: 12px; font-weight: 300;\">\n {{ $t('views.dashboard.welcomeScreenUploadFileBanner.label1') }}\n </p>\n </v-row>\n </v-col>\n </v-row>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\n\nexport default {\n name: 'WelcomeScreenUploadFileBanner',\n computed: {\n ...mapGetters('auth', { loggedInUser: 'user' }),\n ...mapGetters('temp-rfqs', { getTempRfqIdInProgress: 'getTempRfqIdInProgress' }),\n userCanQuote: ({ loggedInUser }) => loggedInUser && (loggedInUser.isAdmin || _.get(loggedInUser, 'rights.instantQuote', false)),\n },\n methods: {\n onActionButtonClicked() {\n this.$router.push({ name: 'EditRFQ', params: { id: this.getTempRfqIdInProgress, openDialog: true } });\n },\n },\n};\n</script>\n\n<style scoped>\n.dashed-line {\n margin: 0 auto; /* Center the line horizontally */\n border-top: 1px dashed #5FCE79; /* You can adjust the color and thickness as needed */\n margin-top: 12px;\n width: 10px\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenUploadFileBanner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenUploadFileBanner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WelcomeScreenUploadFileBanner.vue?vue&type=template&id=6338fc10&scoped=true&\"\nimport script from \"./WelcomeScreenUploadFileBanner.vue?vue&type=script&lang=js&\"\nexport * from \"./WelcomeScreenUploadFileBanner.vue?vue&type=script&lang=js&\"\nimport style0 from \"./WelcomeScreenUploadFileBanner.vue?vue&type=style&index=0&id=6338fc10&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 \"6338fc10\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VDivider,VRow})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnBoarding.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"addressForm\",on:{\"input\":function($event){return _vm.$emit('validityChange', $event)}},model:{value:(_vm.isAddressValid),callback:function ($$v) {_vm.isAddressValid=$$v},expression:\"isAddressValid\"}},[(_vm.value)?_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"maxlength\":\"60\",\"data-cy\":\"new-address-name-input\",\"disabled\":_vm.disableName,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'name'),\"label\":_vm.$t('common.name'),\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value.CompanyName),callback:function ($$v) {_vm.$set(_vm.value, \"CompanyName\", $$v)},expression:\"value.CompanyName\"}})],1)],1),_vm._l((_vm.addressFormatted),function(r,i){return _c('v-row',{key:(\"row-\" + i)},_vm._l((r),function(c,j){return _c('v-col',{key:(\"col-\" + j),staticClass:\"py-0\"},[(['address1', 'address3', 'address4'].includes(c))?_c('v-text-field',{attrs:{\"maxlength\":\"50\",\"data-cy\":(\"new-address-\" + c + \"-input\"),\"label\":_vm.countryLabels[c],\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), c),\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value[c]),callback:function ($$v) {_vm.$set(_vm.value, c, $$v)},expression:\"value[c]\"}}):(['address2'].includes(c))?_c('v-text-field',{attrs:{\"maxlength\":\"50\",\"data-cy\":(\"new-address-\" + c + \"-input\"),\"label\":_vm.countryLabels[c],\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), c),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value[c]),callback:function ($$v) {_vm.$set(_vm.value, c, $$v)},expression:\"value[c]\"}}):(c === 'city')?_c('v-text-field',{attrs:{\"maxlength\":\"30\",\"data-cy\":\"new-address-city-input\",\"label\":_vm.countryLabels.city,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), c),\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value[c]),callback:function ($$v) {_vm.$set(_vm.value, c, $$v)},expression:\"value[c]\"}}):(c === 'zip')?_c('v-text-field',{attrs:{\"maxlength\":\"10\",\"data-cy\":\"new-address-postal-code-input\",\"label\":_vm.countryLabels.postalCode,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), c),\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value[c]),callback:function ($$v) {_vm.$set(_vm.value, c, $$v)},expression:\"value[c]\"}}):(c === 'country')?_c('v-select',{attrs:{\"maxlength\":\"30\",\"data-cy\":\"new-address-country-input\",\"label\":_vm.countryLabels.country,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'country'),\"items\":_vm.countries,\"rules\":[_vm.isRequired],\"item-text\":\"name\",\"item-value\":\"code\",\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){_vm.value.region = ''\n _vm.value.city = '';\n _vm.value.zip = '';\n _vm.$refs.addressForm.resetValidation();}},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('span',{attrs:{\"data-cy\":\"new-address-country-option\"}},[_vm._v(_vm._s(data.item.name))])]}}],null,true),model:{value:(_vm.value.country),callback:function ($$v) {_vm.$set(_vm.value, \"country\", $$v)},expression:\"value.country\"}}):(c === 'province')?_c('v-select',{attrs:{\"maxlength\":\"5\",\"data-cy\":\"new-address-region-input\",\"label\":_vm.countryLabels.zone,\"disabled\":_vm._.isEmpty(_vm.regions),\"items\":_vm.regions,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'region'),\"rules\":[_vm.isRequired],\"item-text\":\"name\",\"item-value\":\"code\",\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){_vm.value.city = '';\n _vm.value.zip = '';\n _vm.$refs.addressForm.resetValidation();}},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('span',{attrs:{\"data-cy\":\"new-address-region-option\"}},[_vm._v(_vm._s(data.item.name))])]}}],null,true),model:{value:(_vm.value.region),callback:function ($$v) {_vm.$set(_vm.value, \"region\", $$v)},expression:\"value.region\"}}):_vm._e()],1)}),1)}),_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-text-field',{attrs:{\"maxlength\":\"25\",\"data-cy\":\"new-address-phone-input\",\"label\":_vm.countryLabels.phone,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'phone'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value.phone),callback:function ($$v) {_vm.$set(_vm.value, \"phone\", $$v)},expression:\"value.phone\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[(_vm.users.length === 0)?_c('v-text-field',{attrs:{\"maxlength\":\"128\",\"data-cy\":\"new-address-email-input\",\"label\":_vm.$t('form.address.fields.email'),\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'email'),\"rules\":[_vm.isEmail],\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value.email),callback:function ($$v) {_vm.$set(_vm.value, \"email\", $$v)},expression:\"value.email\"}}):_c('v-select',{attrs:{\"maxlength\":\"128\",\"data-cy\":\"new-address-email-select\",\"label\":_vm.$t('form.address.fields.email'),\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'email'),\"items\":_vm.users,\"item-text\":\"_id\",\"item-value\":\"_id\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('span',{attrs:{\"data-cy\":\"new-address-email-option\"}},[_vm._v(_vm._s(data.item._id))])]}}],null,false,3261114358),model:{value:(_vm.value.email),callback:function ($$v) {_vm.$set(_vm.value, \"email\", $$v)},expression:\"value.email\"}})],1)],1),_vm._t(\"default\",null,{\"isAddressValid\":_vm.isAddressValid})],2)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-form\n ref=\"addressForm\"\n v-model=\"isAddressValid\"\n @input=\"$emit('validityChange', $event)\"\n >\n <v-row v-if=\"value\">\n <v-col class=\"py-0\">\n <v-row>\n <v-col class=\"py-0\" cols=\"12\">\n <v-text-field\n v-model=\"value.CompanyName\"\n maxlength=\"60\"\n data-cy=\"new-address-name-input\"\n :disabled=\"disableName\"\n :placeholder=\"getPlaceholder(_.get(country, 'code'), 'name')\"\n :label=\"$t('common.name')\"\n :rules=\"[isRequired]\"\n outlined\n dense\n />\n </v-col>\n </v-row>\n\n <v-row\n v-for=\"(r, i) in addressFormatted\"\n :key=\"`row-${i}`\"\n >\n <v-col\n v-for=\"(c, j) in r\"\n :key=\"`col-${j}`\"\n class=\"py-0\"\n >\n <v-text-field\n v-if=\"['address1', 'address3', 'address4'].includes(c)\"\n v-model=\"value[c]\"\n maxlength=\"50\"\n :data-cy=\"`new-address-${c}-input`\"\n :label=\"countryLabels[c]\"\n :placeholder=\"getPlaceholder(_.get(country, 'code'), c)\"\n :rules=\"[isRequired]\"\n outlined\n dense\n />\n <v-text-field\n v-else-if=\"['address2'].includes(c)\"\n v-model=\"value[c]\"\n maxlength=\"50\"\n :data-cy=\"`new-address-${c}-input`\"\n :label=\"countryLabels[c]\"\n :placeholder=\"getPlaceholder(_.get(country, 'code'), c)\"\n outlined\n dense\n />\n <v-text-field\n v-else-if=\"c === 'city'\"\n v-model=\"value[c]\"\n maxlength=\"30\"\n data-cy=\"new-address-city-input\"\n :label=\"countryLabels.city\"\n :placeholder=\"getPlaceholder(_.get(country, 'code'), c)\"\n :rules=\"[isRequired]\"\n outlined\n dense\n />\n <v-text-field\n v-else-if=\"c === 'zip'\"\n v-model=\"value[c]\"\n maxlength=\"10\"\n data-cy=\"new-address-postal-code-input\"\n :label=\"countryLabels.postalCode\"\n :placeholder=\"getPlaceholder(_.get(country, 'code'), c)\"\n :rules=\"[isRequired]\"\n outlined\n dense\n />\n\n <v-select\n v-else-if=\"c === 'country'\"\n v-model=\"value.country\"\n maxlength=\"30\"\n data-cy=\"new-address-country-input\"\n :label=\"countryLabels.country\"\n :placeholder=\"getPlaceholder(_.get(country, 'code'), 'country')\"\n :items=\"countries\"\n :rules=\"[isRequired]\"\n item-text=\"name\"\n item-value=\"code\"\n outlined\n dense\n @change=\"\n value.region = ''\n value.city = '';\n value.zip = '';\n $refs.addressForm.resetValidation();\"\n >\n <template slot=\"item\" slot-scope=\"data\">\n <span data-cy=\"new-address-country-option\">{{ data.item.name }}</span>\n </template>\n </v-select>\n\n <v-select\n v-else-if=\"c === 'province'\"\n v-model=\"value.region\"\n maxlength=\"5\"\n data-cy=\"new-address-region-input\"\n :label=\"countryLabels.zone\"\n :disabled=\"_.isEmpty(regions)\"\n :items=\"regions\"\n :placeholder=\"getPlaceholder(_.get(country, 'code'), 'region')\"\n :rules=\"[isRequired]\"\n item-text=\"name\"\n item-value=\"code\"\n outlined\n dense\n @change=\"\n value.city = '';\n value.zip = '';\n $refs.addressForm.resetValidation();\"\n >\n <template slot=\"item\" slot-scope=\"data\">\n <span data-cy=\"new-address-region-option\">{{ data.item.name }}</span>\n </template>\n </v-select>\n </v-col>\n </v-row>\n\n <v-row>\n <v-col class=\"py-0\">\n <v-text-field\n v-model=\"value.phone\"\n maxlength=\"25\"\n data-cy=\"new-address-phone-input\"\n :label=\"countryLabels.phone\"\n :placeholder=\"getPlaceholder(_.get(country, 'code'), 'phone')\"\n outlined\n dense\n />\n </v-col>\n </v-row>\n\n <v-row>\n <v-col class=\"py-0\">\n <v-text-field\n v-if=\"users.length === 0\"\n v-model=\"value.email\"\n maxlength=\"128\"\n data-cy=\"new-address-email-input\"\n :label=\"$t('form.address.fields.email')\"\n :placeholder=\"getPlaceholder(_.get(country, 'code'), 'email')\"\n :rules=\"[isEmail]\"\n hide-details\n outlined\n dense\n />\n <v-select\n v-else\n v-model=\"value.email\"\n maxlength=\"128\"\n data-cy=\"new-address-email-select\"\n :label=\"$t('form.address.fields.email')\"\n :placeholder=\"getPlaceholder(_.get(country, 'code'), 'email')\"\n :items=\"users\"\n item-text=\"_id\"\n item-value=\"_id\"\n outlined\n dense\n hide-details\n >\n <template slot=\"item\" slot-scope=\"data\">\n <span data-cy=\"new-address-email-option\">{{ data.item._id }}</span>\n </template>\n </v-select>\n </v-col>\n </v-row>\n\n <slot :isAddressValid=\"isAddressValid\" />\n </v-col>\n </v-row>\n </v-form>\n</template>\n\n<script>\n\nimport { mapState } from 'vuex';\nimport { models } from 'feathers-vuex';\nimport AddressFormatter from '@shopify/address';\nimport FormRules from '@/mixins/form-rules';\n\nconst { Company, Country, Regions } = models.api;\n\nexport default {\n mixins: [\n FormRules,\n ],\n\n props: {\n addressType: String,\n disableName: {\n type: Boolean,\n default: false\n },\n value: {},\n users: {\n type: Array,\n default: () => []\n }\n },\n\n data() {\n return {\n chineseForm: null,\n englishForm: null,\n fields: 'form.address.fields',\n placeholder: 'form.address.placeholders',\n isAddressValid: false,\n chineseJson: [],\n englishJson: [],\n };\n },\n\n computed: {\n ...mapState('app', ['locale']),\n\n fetchedCountries: () => Country.findInStore({ query: {} }).data,\n\n fetchedRegions: () => Regions.findInStore({ query: {} }).data,\n\n company: () => Company.getFromStore(0),\n\n regions: vm => _.get(vm, 'country.zones', [])\n .filter(r => vm.fetchedRegions.map(fr => fr.Code).includes(r.code)),\n\n unfilteredCountries: vm => (vm.locale === 'en-US' ? vm.englishJson : vm.chineseJson),\n\n country: vm => vm.countries.find(c => c.code === vm.value.country),\n\n countryLabels: vm => {\n if (vm.country) {\n return vm.country.labels;\n }\n if (vm.countries.length === 0 || !vm.company) {\n return {};\n }\n return vm.countries.find(c => c.code === vm.company.country).labels;\n },\n\n countries: vm => vm.unfilteredCountries.filter(c => vm.fetchedCountries.map(fc => fc.Code).includes(c.code)),\n\n addressFormatted() {\n // TODO: Refactor this, probably using a reduce() and simpler JS\n const DEFAULT_FORM_LAYOUT = '{firstName}{lastName}_{company}'\n + '_{country}{province}_{address1}_{address2}_{city}_{zip}_{phone}';\n\n // https://regex101.com/r/SH6ovw/1\n // TODO: It seem this regex and replace was not working\n let formatString = _.get(this, 'country.formatting.edit', DEFAULT_FORM_LAYOUT);\n\n // quick and dirty\n const province = formatString.includes('{province}') ? '{province}' : '';\n formatString = formatString.replace('{country}', '');\n formatString = formatString.replace('{province}', '');\n formatString = formatString.replace('__', '_');\n\n const formatCountryProvince = formatString.replace('{company}', `{company}_{country}${province}`);\n\n return formatCountryProvince.split('_')\n .map(r => r.split('}{'))\n .map(r => {\n r[0] = r[0].replace('{', '');\n r[r.length - 1] = r[r.length - 1].replace('}', '');\n return r;\n });\n },\n },\n\n async created() {\n this.chineseForm = new AddressFormatter('ZH_CN');\n this.englishForm = new AddressFormatter('EN');\n this.chineseJson = await this.chineseForm.getCountries();\n this.englishJson = await this.englishForm.getCountries();\n if (this.company.CurrCode === 'CNY') {\n this.englishJson = this.englishJson.filter(country => (country.code === 'CN'));\n this.chineseJson = this.chineseJson.filter(country => (country.code === 'CN'));\n } else {\n this.englishJson = this.englishJson.filter(country => (country.code !== 'CN'));\n this.chineseJson = this.chineseJson.filter(country => (country.code !== 'CN'));\n }\n },\n\n methods: {\n\n /* TODO this needs to be revised. Breaking the new locale json structure for\n * now just so the address form continues to work. But eventually it should be\n * standardized to work with the new localization json structure */\n getPlaceholder(countryCode, fieldName) {\n const key = `${this.placeholder}.${this.addressType}.${countryCode}.${fieldName}`;\n\n if (this.$te(key)) {\n return this.$t(key);\n }\n\n return this.$t(`${this.placeholder}.${this.addressType}.default.${fieldName}`);\n },\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Address.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Address.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Address.vue?vue&type=template&id=7fcca9e7&\"\nimport script from \"./Address.vue?vue&type=script&lang=js&\"\nexport * from \"./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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCol,VForm,VRow,VSelect,VTextField})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareProductGroup.vue?vue&type=style&index=0&id=09497cda&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-sheet',{staticClass:\"pa-0\"},[_c('v-menu',{attrs:{\"data-cy\":\"my-part-second-horizontal-grid-view\",\"open-on-hover\":\"\",\"bottom\":\"\",\"offset-x\":\"\",\"left\":\"\",\"z-index\":\"999999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-sheet',_vm._g(_vm._b({staticClass:\"d-inline-block pa-0 text-center px-auto font-weight-medium\",staticStyle:{\"border-radius\":\"5px\"},attrs:{\"tag\":\"span\",\"data-cy\":\"my-part-price-range-box-grid\"}},'v-sheet',attrs,false),on),[_c('span',{staticClass:\"caption text--secondary\"},[_vm._v(\" # \"+_vm._s(_vm.$t('common.items'))+\" \")]),_c('div',{staticClass:\"pa-0\"},[_c('span',{staticClass:\"font-weight-bold ma-0 pa-0 text-center\",attrs:{\"data-cy\":\"my-part-price-range-grid\"}},[_c('span',{staticStyle:{\"color\":\"#128347\"}},[_vm._v(\" \"+_vm._s(_vm.part.length))])]),_c('span',{staticClass:\"mdi mdi-magnify rounded d-inline-flex align-center justify-center ml-1 white--text\",staticStyle:{\"background-color\":\"#5FCE79\",\"color\":\"white !important\",\"width\":\"25px\",\"font-weight\":\"bold !important\"}})])])]}}])},[_c('div',{staticClass:\"pa-2\",staticStyle:{\"background-color\":\"white\"}},[_c('span',{staticClass:\"body-2 font-weight-bold\"},[_vm._v(_vm._s(_vm.$t('views.rfqs.quantity'))+\" / \"+_vm._s(_vm.$t('common.item')))]),_c('div',{staticStyle:{\"display\":\"grid\",\"width\":\"min-content\",\"grid-template-columns\":\"max-content max-content\"}},[_vm._l((_vm.part),function(item,index){return [_c('span',{key:(\"qty-\" + index),staticStyle:{\"color\":\"#8D8D8D\"}},[_vm._v(\" \"+_vm._s(item.Qty)+\" \"+_vm._s('\\xa0')+\" \")]),_c('span',{key:(\"price-\" + index)},[_vm._v(\" \"+_vm._s(_vm.getProductDescription(item.Item))+\" \")])]})],2)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-sheet class=\"pa-0\">\n <v-menu\n data-cy=\"my-part-second-horizontal-grid-view\"\n open-on-hover\n bottom\n offset-x\n left\n z-index=\"999999\"\n >\n <template v-slot:activator=\"{ on, attrs }\">\n <v-sheet\n v-bind=\"attrs\"\n tag=\"span\"\n data-cy=\"my-part-price-range-box-grid\"\n class=\"d-inline-block pa-0 text-center px-auto font-weight-medium\"\n style=\"border-radius:5px\"\n v-on=\"on\"\n >\n <span class=\"caption text--secondary\">\n # {{ $t('common.items') }}\n </span>\n\n <div class=\"pa-0\">\n <span\n class=\"font-weight-bold ma-0 pa-0 text-center\"\n data-cy=\"my-part-price-range-grid\"\n >\n <span style=\"color:#128347\"> {{ part.length }}</span>\n </span>\n <span\n class=\"mdi mdi-magnify rounded d-inline-flex align-center justify-center ml-1 white--text\"\n style=\"background-color: #5FCE79; color: white !important; width: 25px; font-weight: bold !important\"\n />\n </div>\n </v-sheet>\n </template>\n\n <div style=\"background-color: white\" class=\"pa-2\">\n <span class=\"body-2 font-weight-bold\">{{ $t('views.rfqs.quantity') }} / {{ $t('common.item') }}</span>\n <div\n style=\"display: grid;width: min-content;grid-template-columns: max-content max-content;\"\n >\n <template v-for=\"(item,index) in part\">\n <span :key=\"`qty-${index}`\" style=\"color: #8D8D8D\">\n {{ item.Qty }} {{ '\\xa0' }}\n </span>\n <span :key=\"`price-${index}`\">\n {{ getProductDescription(item.Item) }}\n </span>\n </template>\n </div>\n </div>\n </v-menu>\n </v-sheet>\n</template>\n\n<script>\n\nimport { models } from 'feathers-vuex';\n\nimport {\n defineComponent,\n} from '@vue/composition-api';\n\nconst { HardwareProduct } = models.api;\n\nexport default defineComponent({\n props: {\n /**\n * Manipulate the way field's value displays\n */\n part: {\n type: Array,\n default: () => []\n },\n },\n\n setup() {\n const getProductDescription = id => (HardwareProduct.getFromStore(id) ? HardwareProduct.getFromStore(id).description : '');\n\n return {\n getProductDescription\n };\n },\n});\n\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BagItemsList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BagItemsList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BagItemsList.vue?vue&type=template&id=bf2f82ba&\"\nimport script from \"./BagItemsList.vue?vue&type=script&lang=js&\"\nexport * from \"./BagItemsList.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VMenu,VSheet})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"ma-0 pa-0\",staticStyle:{\"display\":\"inline-grid\",\"background-color\":\"transparent\"},attrs:{\"elevation\":\"0\",\"width\":_vm.width,\"height\":_vm.height}},[(!_vm.isLoaded)?[(!_vm.hasError)?_c('v-skeleton-loader',{staticClass:\"d-flex justify-center align-center\",attrs:{\"width\":_vm.width,\"height\":_vm.height,\"type\":\"image\"}}):_c('v-tooltip',{attrs:{\"right\":\"\",\"nudge-bottom\":\"50px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-sheet',_vm._g(_vm._b({staticClass:\"d-flex justify-center align-center \",attrs:{\"color\":\"#F4F4F4\",\"max-width\":_vm.width,\"height\":_vm.height}},'v-sheet',attrs,false),on),[_c('span',{staticStyle:{\"color\":\"#8D8D8D\"}},[_vm._v(\"?\")])])]}}],null,false,2963087188)},[_c('span',[_vm._v(_vm._s(_vm.$t('common.failedToDownloadThumbnail')))])])]:_vm._e(),_c('v-fade-transition',[_c('v-img',{attrs:{\"aspect-ratio\":\"1\",\"contain\":\"\",\"src\":_vm.thumbnailUri,\"max-height\":_vm.height,\"max-width\":_vm.width,\"alt\":\"thumbnail\"},on:{\"load\":function($event){_vm.isLoaded = true},\"error\":function($event){_vm.hasError = true}}})],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-card\n elevation=\"0\"\n class=\"ma-0 pa-0\"\n :width=\"width\"\n :height=\"height\"\n style=\"display: inline-grid;background-color: transparent\"\n >\n <template v-if=\"!isLoaded\">\n <v-skeleton-loader\n v-if=\"!hasError\"\n :width=\"width\"\n :height=\"height\"\n type=\"image\"\n class=\"d-flex justify-center align-center\"\n />\n <v-tooltip v-else right nudge-bottom=\"50px\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-sheet\n color=\"#F4F4F4\"\n :max-width=\"width\"\n :height=\"height\"\n v-bind=\"attrs\"\n class=\"d-flex justify-center align-center \"\n v-on=\"on\"\n >\n <span style=\"color:#8D8D8D\">?</span>\n </v-sheet>\n </template>\n <span>{{ $t('common.failedToDownloadThumbnail') }}</span>\n </v-tooltip>\n </template>\n <v-fade-transition>\n <v-img\n aspect-ratio=\"1\"\n contain\n :src=\"thumbnailUri\"\n :max-height=\"height\"\n :max-width=\"width\"\n alt=\"thumbnail\"\n @load=\"isLoaded = true\"\n @error=\"hasError = true\"\n />\n </v-fade-transition>\n </v-card>\n</template>\n\n<script>\nimport { mapState } from 'vuex';\n\nexport default {\n /* TODO It would be nice to use Vuetify's image component (v-img), but unfortunately\n * there seems to be no simple way to display a skeleton loader until\n * a v-img loads using v-show. So we're stuck with a regular image tag */\n name: 'ThumbnailViewer',\n props: {\n imageId: { type: String },\n width: {\n type: Number,\n required: true,\n },\n height: {\n type: Number,\n required: true,\n },\n\n },\n data: () => ({\n isLoaded: false,\n hasError: false,\n }),\n computed: {\n ...mapState('auth', ['accessToken']),\n\n thumbnailUri: vm => {\n if (!vm.imageId) {\n return '/-';\n }\n return `/img/hardwareShop/${vm.imageId}.png`;\n // const host = process.env.VUE_APP_API_URL;\n // const fileName = `${vm.imageId}.PNG`;\n // return `${host}hardware/${fileName}/${vm.imageId}`;\n }\n },\n};\n</script>\n\n<style scoped>\n/* Without this, there is a random extra ~6 pixels below the image.\nAfter scrutinizing over pixels for a while, I found this: https://stackoverflow.com/a/5804278/9214972 */\nimg {\n vertical-align: middle;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareThumbnailViewer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareThumbnailViewer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HardwareThumbnailViewer.vue?vue&type=template&id=8cc35d3e&scoped=true&\"\nimport script from \"./HardwareThumbnailViewer.vue?vue&type=script&lang=js&\"\nexport * from \"./HardwareThumbnailViewer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HardwareThumbnailViewer.vue?vue&type=style&index=0&id=8cc35d3e&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 \"8cc35d3e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCard,VFadeTransition,VImg,VSheet,VSkeletonLoader,VTooltip})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nimport i18n from '../plugins/i18n';\n\nconst servicePath = 'my-parts';\nconst Model = class MyPart extends BaseModel {\n static modelName = 'MyPart';\n\n static instanceDefaults() {\n return {\n qtyOfPart: 1,\n defaultQuantity: 1\n };\n }\n\n static setupInstance(data) {\n if (data.PriceMOQ) {\n const priceMoq = JSON.parse(data.PriceMOQ);\n // eslint-disable-next-line no-underscore-dangle\n this._defaultQuantity = Math.min(...priceMoq.map(o => o.Qty));\n // eslint-disable-next-line no-underscore-dangle\n this._qtyOfPart = this._defaultQuantity;\n // eslint-disable-next-line no-underscore-dangle\n } else {\n data.PriceMOQ = [];\n // eslint-disable-next-line no-underscore-dangle\n this._defaultQuantity = 1;\n }\n\n if (data.ExpiryDate) {\n data.ExpiryDate = new Date(data.ExpiryDate);\n }\n if (data.MaterialStr && data.MaterialSeriesStr) {\n this.materialSeriesShortened = data.MaterialSeriesStr.replace(data.MaterialStr, '').trim();\n }\n return data;\n }\n\n get qtyOfPart() {\n // eslint-disable-next-line no-underscore-dangle\n return this._qtyOfPart;\n }\n\n set qtyOfPart(value) {\n // eslint-disable-next-line no-underscore-dangle\n if (value <= this.defaultQuantity) {\n // eslint-disable-next-line no-underscore-dangle\n this._qtyOfPart = this.defaultQuantity;\n return;\n }\n // eslint-disable-next-line no-underscore-dangle\n this._qtyOfPart = value;\n }\n\n get defaultQuantity() {\n // eslint-disable-next-line no-underscore-dangle\n return this._defaultQuantity;\n }\n\n set defaultQuantity(value) {\n // eslint-disable-next-line no-underscore-dangle\n this._defaultQuantity = value;\n }\n\n get materialTranslation() {\n return i18n.locale === 'en-US' ? this.MaterialStr : this.MaterialStrChs;\n }\n\n get materialThicknessTranslation() {\n return i18n.locale === 'en-US' ? this.MaterialThicknessStr : this.MaterialThicknessStrChs;\n }\n\n get materialSeriesTranslation() {\n return i18n.locale === 'en-US' ? this.materialSeriesShortened : this.MaterialSeriesStrChs;\n }\n\n get materialFinishTranslation() {\n return i18n.locale === 'en-US' ? this.MaterialFinishStr.replace(/-/g, '') : this.MaterialFinishStrChs.replace(/-/g, '');\n }\n\n get materialFinishOptionTranslation() {\n return i18n.locale === 'en-US' ? this.MaterialFinishOptionStr.replace(/-/g, '') : this.MaterialFinishOptionStrChs.replace(/-/g, '');\n }\n\n get toleranceTranslation() {\n if (!this.Tolerance) {\n return '-';\n }\n\n return i18n.t(`views.instantQuote.tolerance${this.Tolerance.replace('Precision', '').trim()}`);\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"model-viewer\",on:{\"click\":function($event){return _vm.$emit('model:clicked')}}},[(_vm.isMeshUploaded)?_c('div',[(_vm.isInteractive)?_c('v-btn-toggle',{staticStyle:{\"position\":\"absolute\",\"top\":\"63px\",\"left\":\"50%\",\"transform\":\"translateX(-50%)\"},attrs:{\"mandatory\":\"\",\"dark\":\"\",\"borderless\":\"\",\"active-class\":\"active\"},model:{value:(_vm.isUnfolded),callback:function ($$v) {_vm.isUnfolded=$$v},expression:\"isUnfolded\"}},[_c('v-btn',{staticStyle:{\"background-color\":\"#191919\"},attrs:{\"depressed\":\"\",\"value\":false,\"width\":['md','sm'].includes(_vm.$vuetify.breakpoint.name) ? 80 : 180,\"ripple\":false,\"active-class\":\"active\"}},[_c('span',{staticClass:\"mdi mdi-rotate-3d-variant pr-2\",staticStyle:{\"font-size\":\"25px\"}}),_c('span',{staticClass:\"hidden-md-and-down pr-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.3dView'))+\" \")])]),(_vm.showFlat)?_c('v-btn',{staticStyle:{\"background-color\":\"#191919\"},attrs:{\"depressed\":\"\",\"value\":true,\"width\":['md','sm'].includes(_vm.$vuetify.breakpoint.name) ? 80 : 180,\"ripple\":false,\"active-class\":\"active\"}},[_c('span',{staticClass:\"mdi mdi-gamepad pr-2\",staticStyle:{\"font-size\":\"25px\"}}),_c('span',{staticClass:\"hidden-md-and-down pr-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.flat'))+\" \")])]):_vm._e()],1):_vm._e(),(!_vm.isMeshLoaded && _vm.part.uploadProgress <= 100)?_c('v-progress-circular',{attrs:{\"rotate\":360,\"size\":_vm.width,\"width\":8,\"value\":_vm.part.uploadProgress,\"indeterminate\":!!(!_vm.isMeshLoaded && _vm.part.uploadProgress && _vm.part.uploadProgress === 100),\"color\":\"primary\"}},[(!_vm.isMeshUploaded && _vm.part.uploadProgress && _vm.part.uploadProgress === 100)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('common.analyzing'))+\" \")]):(_vm.isMeshUploaded && !_vm.isMeshLoaded)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('common.loading'))+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(Math.round(_vm.part.uploadProgress))+\" \")])]):(!_vm.isMeshLoaded && !_vm.part.uploadProgress)?_c('v-skeleton-loader',{class:{ 'skeleton-container' :!_vm.isMeshLoaded },attrs:{\"id\":(\"model-viewer-placeholder-\" + _vm.viewerId),\"type\":\"avatar\",\"width\":_vm.width,\"height\":_vm.height}}):_vm._e(),_c('v-slide-x-transition',[_c('div',_vm._g(_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isMeshLoaded),expression:\"isMeshLoaded\"}],ref:\"modelViewer\",attrs:{\"id\":(\"model-viewer-\" + _vm.viewerId)}},'div',_vm.$attrs,false),_vm.$listeners))])],1):(_vm.isSvgUploaded)?_c('div',[(!_vm.isSvgLoaded)?[_c('v-skeleton-loader',{staticClass:\"my-2\",attrs:{\"width\":_vm.width,\"height\":_vm.height,\"type\":\"image\"}})]:_vm._e(),_c('v-fade-transition',[_c('img',_vm._g(_vm._b({ref:\"modelViewer\",staticClass:\"my-2\",style:({'max-width': _vm.width + 'px', 'max-height': _vm.height + 'px', 'min-width': _vm.width + 'px'}),attrs:{\"src\":_vm.meshUrl,\"alt\":\"thumbnail\"},on:{\"load\":function($event){_vm.isSvgLoaded = true;}}},'img',_vm.$attrs,false),_vm.$listeners))])],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"model-viewer\" @click=\"$emit('model:clicked')\">\n <div v-if=\"isMeshUploaded\">\n <v-btn-toggle\n v-if=\"isInteractive\"\n v-model=\"isUnfolded\"\n style=\"position:absolute; top: 63px; left: 50%; transform: translateX(-50%);\"\n mandatory\n dark\n borderless\n active-class=\"active\"\n >\n <v-btn\n depressed\n style=\"background-color: #191919\"\n :value=\"false\"\n :width=\"['md','sm'].includes($vuetify.breakpoint.name) ? 80 : 180\"\n :ripple=\"false\"\n active-class=\"active\"\n >\n <span class=\"mdi mdi-rotate-3d-variant pr-2\" style=\"font-size: 25px\" />\n <span class=\"hidden-md-and-down pr-2\">\n {{ $t('common.3dView') }}\n </span>\n </v-btn>\n\n <v-btn\n v-if=\"showFlat\"\n depressed\n style=\"background-color: #191919\"\n :value=\"true\"\n :width=\"['md','sm'].includes($vuetify.breakpoint.name) ? 80 : 180\"\n :ripple=\"false\"\n active-class=\"active\"\n >\n <span class=\"mdi mdi-gamepad pr-2\" style=\"font-size: 25px\" />\n <span class=\"hidden-md-and-down pr-2\">\n {{ $t('common.flat') }}\n </span>\n </v-btn>\n </v-btn-toggle>\n\n <v-progress-circular\n v-if=\"!isMeshLoaded && part.uploadProgress <= 100\"\n :rotate=\"360\"\n :size=\"width\"\n :width=\"8\"\n :value=\"part.uploadProgress\"\n :indeterminate=\"!!(!isMeshLoaded && part.uploadProgress && part.uploadProgress === 100)\"\n color=\"primary\"\n >\n <span v-if=\"!isMeshUploaded && part.uploadProgress && part.uploadProgress === 100\">\n {{ $t('common.analyzing') }}\n </span>\n <span v-else-if=\"isMeshUploaded && !isMeshLoaded\">\n {{ $t('common.loading') }}\n </span>\n <span v-else>\n {{ Math.round(part.uploadProgress) }}\n </span>\n </v-progress-circular>\n\n <!-- Setting the height/width of this component does NOT change the height/width\n of the avatar, it changes the container -->\n <v-skeleton-loader\n v-else-if=\"!isMeshLoaded && !part.uploadProgress\"\n :id=\"`model-viewer-placeholder-${viewerId}`\"\n :class=\"{ 'skeleton-container' :!isMeshLoaded }\"\n type=\"avatar\"\n :width=\"width\"\n :height=\"height\"\n />\n <!-- v-show because we need the DOM element to hook onto\n https://vuejs.org/v2/guide/conditional.html#v-if-vs-v-show -->\n <v-slide-x-transition>\n <div\n v-show=\"isMeshLoaded\"\n :id=\"`model-viewer-${viewerId}`\"\n ref=\"modelViewer\"\n v-bind=\"$attrs\"\n v-on=\"$listeners\"\n />\n </v-slide-x-transition>\n </div>\n\n <div v-else-if=\"isSvgUploaded\">\n <template v-if=\"!isSvgLoaded\">\n <v-skeleton-loader\n :width=\"width\"\n :height=\"height\"\n type=\"image\"\n class=\"my-2\"\n />\n </template>\n <v-fade-transition>\n <img\n ref=\"modelViewer\"\n class=\"my-2\"\n v-bind=\"$attrs\"\n :src=\"meshUrl\"\n alt=\"thumbnail\"\n :style=\"{'max-width': width + 'px', 'max-height': height + 'px', 'min-width': width + 'px'}\"\n @load=\"isSvgLoaded = true;\"\n v-on=\"$listeners\"\n >\n </v-fade-transition>\n </div>\n </div>\n</template>\n\n<script>\nimport * as THREE from 'three';\nimport { STLLoader } from 'three/examples/jsm/loaders/STLLoader';\nimport { TrackballControls } from 'three/examples/jsm/controls/TrackballControls';\nimport { v4 as uuidv4 } from 'uuid';\nimport { mapState } from 'vuex';\n\nexport default {\n name: 'ModelViewer',\n props: {\n part: {\n type: Object,\n },\n width: {\n type: Number,\n required: true,\n },\n height: {\n type: Number,\n required: true,\n },\n viewport: null,\n isInteractive: Boolean,\n // isUnfolded: Boolean,\n isMeshUploaded: { type: Boolean, default: true },\n isSvgUploaded: { type: Boolean, default: false }\n },\n data() {\n return {\n cameraTarget: null,\n scene: null,\n mesh: null,\n controls: null,\n isMeshLoaded: false,\n viewerId: uuidv4(),\n isUnfolded: false,\n isSvgLoaded: false,\n };\n },\n computed: {\n ...mapState('auth', ['accessToken']),\n viewport3d: vm => vm.viewport || vm.$refs.modelViewer,\n meshUrl: vm => {\n const host = process.env.VUE_APP_API_URL;\n let fileName = `${vm.part.DrawingRowPointer.toLowerCase()}-${vm.isUnfolded ? 'unfolded' : 'folded'}.STL`;\n if (vm.isSvgUploaded) {\n fileName = `${vm.part.DrawingRowPointer.toLowerCase()}.SVG`;\n }\n return `${host}uploads/${fileName}/${vm.accessToken}/${vm.part.Item}/File`;\n },\n showFlat: vm => {\n const machine = _.get(vm.part, 'Machine', undefined) || _.get(vm.part, 'AnalysisData.machine', undefined);\n return machine !== 'turning';\n },\n },\n watch: {\n async isMeshUploaded(val) {\n if (val) {\n await this.init();\n this.onResize();\n }\n },\n async isUnfolded() {\n this.cleanUpThreeJs();\n await this.init();\n this.onResize();\n },\n width() {\n this.onResize();\n },\n height() {\n this.onResize();\n },\n },\n\n async mounted() {\n if (this.isMeshUploaded) {\n await this.init();\n this.onResize();\n }\n },\n beforeDestroy() {\n if (this.isSvgUploaded) {\n return;\n }\n this.cleanUpThreeJs();\n },\n methods: {\n async init() {\n if (this.isSvgUploaded) {\n return;\n }\n this.scene = new THREE.Scene();\n\n const VIEW_ANGLE = 35;\n const ASPECT = this.width / this.height;\n const NEAR = 0.1;\n const FAR = 20000;\n\n this.renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true, preserveDrawingBuffer: true });\n this.renderer.setClearColor(0x000000, 0); // the default\n this.renderer.setPixelRatio(window.devicePixelRatio * 1.5);\n this.renderer.setSize(this.width, this.height);\n\n this.viewport3d.appendChild(this.renderer.domElement);\n\n this.camera = new THREE.PerspectiveCamera(\n VIEW_ANGLE, // Field of view\n ASPECT, // Aspect ratio\n NEAR, // Near plane\n FAR, // Far plane\n );\n\n this.camera.position.set(\n -37.565773010253906,\n -25.910253524780273,\n -97.5260238647461,\n );\n\n this.scene.add(this.camera);\n\n this.createLights();\n\n if (this.isInteractive) {\n this.initControls();\n }\n\n this.loader = new STLLoader();\n\n const baseMaterial = new THREE.MeshPhongMaterial({ color: 0x777777 });\n\n // eslint-disable-next-line no-unused-vars\n const host = process.env.VUE_APP_API_URL;\n\n await this.loader.load(\n // `${host}uploads/${this.drawingRowPointer.toLowerCase()}.STL`,\n this.meshUrl,\n geometry => {\n this.mesh = new THREE.Mesh(geometry, baseMaterial);\n this.mesh.scale.set(0.5, 0.5, 0.5);\n this.mesh.position.set(0, 0, 0);\n this.mesh.rotation.set(0, 0, 0);\n\n const box = new THREE.Box3().setFromObject(this.mesh);\n const center = box.getCenter(new THREE.Vector3());\n\n this.mesh.position.x = -center.x;\n this.mesh.position.y = -center.y;\n this.mesh.position.z = -center.z;\n\n this.mesh.traverse(child => {\n if (child instanceof THREE.Mesh) {\n child.material = baseMaterial;\n child.material.side = THREE.DoubleSide;\n\n if (child.geometry !== undefined) {\n const edges = new THREE.EdgesGeometry(child.geometry);\n const line = new THREE.LineSegments(\n edges,\n new THREE.LineBasicMaterial({ color: 0x000000 }),\n );\n\n line.position.x = -center.x;\n line.position.y = -center.y;\n line.position.z = -center.z;\n\n line.scale.set(0.5, 0.5, 0.5);\n this.scene.add(line);\n }\n }\n });\n\n this.scene.add(this.mesh);\n this.$nextTick(() => {\n this.isMeshLoaded = true;\n });\n\n this.$emit('load:mesh');\n\n this.fitCameraToObject(this.camera, this.mesh, 2.8, null);\n this.animate();\n },\n null,\n error => {\n console.error(error);\n },\n );\n },\n initControls() {\n this.controls = new TrackballControls(this.camera, this.renderer.domElement);\n this.controls.rotateSpeed = 10;\n this.controls.zoomSpeed = 10;\n this.controls.noZoom = false;\n this.controls.noPan = true;\n this.controls.staticMoving = true;\n this.controls.dynamicDampingFactor = 0.3;\n /* Default control keys (I think they're arrow keys) */\n this.controls.keys = [65, 83, 68];\n },\n onResize() {\n if (this.isSvgUploaded) {\n return;\n }\n if (!this.renderer) {\n return;\n }\n this.camera.aspect = this.width / this.height;\n\n this.camera.updateProjectionMatrix();\n this.renderer.setSize(this.width, this.height);\n if (this.isInteractive) {\n this.controls.handleResize();\n }\n },\n fitCameraToObject(camera, object, offset, speed) {\n offset = offset || 1.25;\n\n const boundingBox = new THREE.Box3();\n\n // get bounding box of object - this will be used to setup controls and camera\n boundingBox.setFromObject(object);\n\n const center = boundingBox.getCenter(new THREE.Vector3());\n\n const size = boundingBox.getSize(new THREE.Vector3());\n\n // get the max side of the bounding box (fits to width OR height as needed )\n const maxDim = Math.max(size.x, size.y, size.z);\n const fov = camera.fov * (Math.PI / 180);\n // eslint-disable-next-line no-mixed-operators\n let distanceToMesh = Math.abs(maxDim / 4 * Math.tan(fov * 2));\n\n distanceToMesh *= offset; // zoom out a little so that objects don't fill the screen\n\n if (speed) {\n camera.position.x = Math.cos(speed) * distanceToMesh;\n camera.position.z = Math.sin(speed) * distanceToMesh;\n } else {\n camera.position.z = distanceToMesh;\n }\n\n const minZ = boundingBox.min.z;\n const cameraToFarEdge = (minZ < 0) ? -minZ + distanceToMesh : distanceToMesh - minZ;\n\n camera.far = cameraToFarEdge * 3;\n camera.updateProjectionMatrix();\n\n camera.lookAt(center);\n },\n cleanUpThreeJs() {\n // Removing all children...\n if (this.scene) {\n for (let i = this.scene.children.length - 1; i >= 0; i--) {\n this.scene.remove(this.scene.children[i]);\n }\n }\n\n const baseNode = this.viewport3d;\n if (baseNode) {\n while (baseNode.firstChild) {\n baseNode.removeChild(baseNode.firstChild);\n }\n }\n\n if (this.renderer) {\n this.renderer.dispose();\n // Prevents deleting the oldest context after 16 contexts\n this.renderer.forceContextLoss();\n }\n this.scene = null;\n this.camera = null;\n this.renderer = null;\n this.controls = null;\n },\n addShadowedLight(x, y, z, color, intensity) {\n const directionalLight = new THREE.DirectionalLight(color, intensity);\n directionalLight.position.set(x, y, z);\n directionalLight.lookAt(0, 0, 0);\n this.camera.add(directionalLight);\n\n directionalLight.castShadow = true;\n\n const d = 1;\n directionalLight.shadow.camera.left = -d;\n directionalLight.shadow.camera.right = d;\n directionalLight.shadow.camera.top = d;\n directionalLight.shadow.camera.bottom = -d;\n\n directionalLight.shadow.camera.near = 1;\n directionalLight.shadow.camera.far = 4;\n\n directionalLight.shadow.mapSize.width = 64;\n directionalLight.shadow.mapSize.height = 64;\n\n directionalLight.shadow.bias = 1;\n },\n createLights() {\n if (this.camera) {\n // Lights\n this.camera.add(new THREE.HemisphereLight(0x443333, 0x111122));\n this.addShadowedLight(1, 1, 1, 0xffffff, 1.35);\n }\n },\n animate() {\n // Seems to be a timing issue? requestAnimationFrame is called before animate is 'ready'??\n if (this.scene && this.animate) {\n requestAnimationFrame(this.animate);\n\n if (this.isInteractive) {\n this.controls.update();\n } else {\n // using timer as animation\n const speed = Date.now() * 0.00025;\n this.camera.position.x = Math.cos(speed) * 80;\n this.camera.position.z = Math.sin(speed) * 80;\n\n this.fitCameraToObject(this.camera, this.mesh, 2.8, speed);\n }\n this.renderer.render(this.scene, this.camera);\n }\n },\n }\n};\n</script>\n\n<style scoped>\n .skeleton-container {\n display: flex; align-items: center; justify-content: center;\n }\n\n .active {\n opacity: 1 !important;\n color:#5FCE79 !important;\n background-color:#191919 !important;\n }\n\n .active::before{\n border-bottom: 2px solid #5FCE79 !important;\n opacity: 1;\n }\n\n .v-btn:before {\n border-radius: 0;\n background-color: transparent;\n }\n\n .btn--active{\n opacity: 1 !important;\n }\n\n .v-btn-toggle > .v-btn.v-btn {\n opacity: 1;\n }\n\n .v-btn--active::before {\n color: #5FCE79;\n opacity: 1 !important;\n }\n\n .model-viewer:hover {\n cursor: pointer;\n }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModelViewer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModelViewer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ModelViewer.vue?vue&type=template&id=98f13306&scoped=true&\"\nimport script from \"./ModelViewer.vue?vue&type=script&lang=js&\"\nexport * from \"./ModelViewer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ModelViewer.vue?vue&type=style&index=0&id=98f13306&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 \"98f13306\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VSlideXTransition } from 'vuetify/lib/components/transitions';\ninstallComponents(component, {VBtn,VBtnToggle,VFadeTransition,VProgressCircular,VSkeletonLoader,VSlideXTransition})\n","const LEVEL = {\n SUCCESS: 'success',\n INFO: 'info',\n WARNING: 'warning',\n ERROR: 'error',\n};\n\nmodule.exports = {\n LEVEL,\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.$attrs.value)?_c('v-dialog',_vm._g(_vm._b({},'v-dialog',_vm.$attrs,false),_vm.$listeners),[_c('v-card',{attrs:{\"min-width\":_vm.$attrs['min-width'],\"loading\":_vm.isLoading}},[(_vm.$slots.title)?_c('v-card-title',{staticClass:\"py-4 justify-center text-h5 font-weight-bold\"},[_vm._t(\"title\"),_c('v-btn',{staticStyle:{\"right\":\"16px\"},attrs:{\"icon\":\"\",\"absolute\":\"\",\"data-cy\":\"close-dialog-button\"},on:{\"click\":function($event){return _vm.$emit('click:cancel')}}},[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\" mdi-close \")])],1)],2):_vm._e(),(_vm.$slots.content)?_c('v-card-text',{staticClass:\"pa-4\"},[_vm._t(\"content\")],2):_vm._e(),(_vm.$slots.actions || _vm.type !== _vm.types.custom)?_c('v-card-actions',{staticClass:\"pt-2 pb-8 justify-center\"},[_vm._t(\"actions\",function(){return [(_vm.type !== _vm.types.custom)?[([_vm.types.acknowledgement, _vm.types.confirmation].includes(_vm.type))?_c('v-btn',{staticClass:\"px-8\",attrs:{\"color\":\"primary\",\"loading\":_vm.isLoading,\"data-cy\":\"ok-button-dialog\",\"disabled\":_vm.isLoading || _vm.isOkDisabled},on:{\"click\":function($event){return _vm.$emit('click:ok')}}},[_vm._v(\" \"+_vm._s(_vm.okButtonText || _vm.$t('common.confirm'))+\" \")]):_vm._e(),(_vm.type === _vm.types.confirmation)?_c('v-btn',{staticClass:\"px-8\",attrs:{\"color\":\"primary\",\"text\":\"\",\"data-cy\":\"cancel-button-dialog\",\"disabled\":_vm.isLoading || _vm.isCancelDisabled,\"depressed\":\"\"},on:{\"click\":function($event){return _vm.$emit('click:cancel')}}},[_vm._v(\" \"+_vm._s(_vm.cancelButtonText || _vm.$t('common.cancel'))+\" \")]):_vm._e()]:_vm._e()]})],2):_vm._e()],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <!-- TODO ensure we always have a new instance with v-if so\n things like form validation don't show errors in a new dialog\n (similar to lazy validation)-->\n <v-dialog\n v-if=\"$attrs.value\"\n v-bind=\"$attrs\"\n v-on=\"$listeners\"\n >\n <v-card :min-width=\"$attrs['min-width']\" :loading=\"isLoading\">\n <v-card-title\n v-if=\"$slots.title\"\n class=\"py-4 justify-center text-h5 font-weight-bold\"\n >\n <slot name=\"title\" />\n <v-btn\n icon\n absolute\n style=\"right: 16px\"\n data-cy=\"close-dialog-button\"\n @click=\"$emit('click:cancel')\"\n >\n <v-icon large>\n mdi-close\n </v-icon>\n </v-btn>\n </v-card-title>\n\n <v-card-text v-if=\"$slots.content\" class=\"pa-4\">\n <slot name=\"content\" />\n </v-card-text>\n\n <v-card-actions\n v-if=\"$slots.actions || type !== types.custom\"\n class=\"pt-2 pb-8 justify-center\"\n >\n <slot name=\"actions\">\n <template v-if=\"type !== types.custom\">\n <v-btn\n v-if=\"[types.acknowledgement, types.confirmation].includes(type)\"\n color=\"primary\"\n class=\"px-8\"\n :loading=\"isLoading\"\n data-cy=\"ok-button-dialog\"\n :disabled=\"isLoading || isOkDisabled\"\n @click=\"$emit('click:ok')\"\n >\n {{ okButtonText || $t('common.confirm') }}\n </v-btn>\n <v-btn\n v-if=\"type === types.confirmation\"\n class=\"px-8\"\n color=\"primary\"\n text\n data-cy=\"cancel-button-dialog\"\n :disabled=\"isLoading || isCancelDisabled\"\n depressed\n @click=\"$emit('click:cancel')\"\n >\n {{ cancelButtonText || $t('common.cancel') }}\n </v-btn>\n </template>\n </slot>\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\n/* Must be defined externally, since prop validation doesn't have access to 'this' */\nconst types = {\n confirmation: 'confirmation',\n acknowledgement: 'acknowledgement',\n custom: 'custom',\n};\n\nexport default {\n props: {\n type: {\n type: String,\n required: false,\n default: () => types.custom,\n validator: type => Object.values(types).includes(type),\n },\n isLoading: Boolean,\n isOkDisabled: Boolean,\n okButtonText: String,\n cancelButtonText: String,\n isCancelDisabled: Boolean,\n },\n data: () => ({\n types,\n })\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Dialog.vue?vue&type=template&id=12cacff8&scoped=true&\"\nimport script from \"./Dialog.vue?vue&type=script&lang=js&\"\nexport * from \"./Dialog.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 \"12cacff8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VDialog,VIcon})\n","export default [\n '*',\n\n 'user.create',\n 'user.read',\n 'user.update',\n 'user.delete',\n\n 'role.create',\n 'role.read',\n 'role.update',\n 'role.delete',\n\n 'address.create',\n 'address.read',\n 'address.update',\n 'address.delete',\n\n 'phone.create',\n 'phone.read',\n 'phone.update',\n 'phone.delete',\n\n 'email.create',\n 'email.read',\n 'email.update',\n 'email.delete',\n\n 'contact.create',\n 'contact.read',\n 'contact.update',\n 'contact.delete',\n\n 'rfq.create',\n 'rfq.read',\n 'rfq.update',\n 'rfq.delete',\n 'order.create',\n 'order.read',\n 'order.update',\n 'order.delete',\n 'newRfq.create',\n 'newRfq.read',\n 'newRfq.update',\n 'newRfq.delete',\n];\n","import localeCn from 'dayjs/locale/zh-cn';\nimport localeEn from 'dayjs/locale/en';\nimport { models } from 'feathers-vuex';\nimport { reset, setStorage } from '../utils/vuex';\nimport rights from '../rights';\nimport vuetify from '../plugins/vuetify';\n\nconst getDefaultLanguage = () => {\n const localLanguage = (\n localStorage.locale\n || window.navigator.userLanguage\n || window.navigator.language\n || 'en-US'\n );\n return (localLanguage === 'zh' || localLanguage === 'cn') ? 'cn' : 'en-US';\n};\n\nconst state = {\n color: 'success',\n title: 'Komacute',\n sidebarBackgroundColor: 'rgba(27, 27, 27, 0.74)',\n rights,\n locale: getDefaultLanguage(),\n version: process.env.PACKAGE_VERSION || '0.0.0',\n messages: [],\n currentOrder: null,\n userAvatarUrl: null,\n};\n\nconst setLocale = async (context, { $i18n, locale, $FeathersVuex }) => {\n context.commit('SET_LOCALE', locale);\n $i18n.locale = locale;\n const translationDate = locale === 'cn' ? localeCn : localeEn;\n moment.locale(translationDate);\n vuetify.framework.lang.current = locale;\n\n if (!$FeathersVuex) {\n return;\n }\n\n const userId = context.rootState.auth.user._id;\n const user = await $FeathersVuex.api.User.getFromStore(userId);\n\n if (user.locale === locale) {\n return;\n }\n\n user.locale = locale;\n user.save();\n};\n\nexport default {\n plugin: () => {\n },\n\n store: {\n app: {\n namespaced: true,\n\n state,\n\n getters: {\n appVersion: s => s.version,\n currentOrder: s => s.currentOrder,\n currentOrderItemsCount: s => {\n if (!s.currentOrder || s.currentOrder.items.length === 0) {\n return null;\n }\n return s.currentOrder.items.length;\n }\n },\n\n mutations: {\n clearAll: reset(state),\n\n SET_IMAGE: setStorage('image'),\n SET_COLOR: setStorage('color'),\n\n SET_LOCALE: setStorage('locale'),\n\n PUSH_SNACK: (stateIn, payload) => {\n stateIn.messages.push(payload);\n },\n\n POP_SNACK: stateIn => {\n stateIn.messages.pop();\n },\n\n ACKNOWLEDGE_SNACK_BY_ID: (stateIn, id) => {\n stateIn.messages.splice(stateIn.messages.map(m => m.id).indexOf(id), 1);\n },\n\n SET_CURRENT_ORDER: (stateIn, order) => {\n stateIn.currentOrder = order;\n },\n\n SET_USER_AVATAR_URL: (stateIn, url) => {\n stateIn.userAvatarUrl = url;\n },\n },\n\n actions: {\n setColor(context, color) {\n context.commit('SET_COLOR', color);\n },\n\n setImage(context, img) {\n context.commit('SET_IMAGE', img);\n },\n\n setLocale(context, { $i18n, locale, $FeathersVuex }) {\n setLocale(context, { $i18n, locale: locale || 'en-US', $FeathersVuex });\n },\n\n toggleLocale(context, { $i18n, $FeathersVuex }) {\n const locale = context.state.locale === 'fr' ? 'en-US' : 'fr';\n setLocale(context, { $i18n, locale: locale || 'en-US', $FeathersVuex });\n },\n\n pushSnack(context, snack) {\n context.commit('PUSH_SNACK', { ...snack, id: _.uniqueId() });\n },\n\n popSnack(context) {\n context.commit('POP_SNACK');\n },\n\n /**\n * Removes the snack with the given id from the snack queue\n * @param context\n * @param id\n */\n acknowledgeSnackById(context, id) {\n context.commit('ACKNOWLEDGE_SNACK_BY_ID', id);\n },\n\n initCurrentOrder: context => {\n if (!context.getters.currentOrder) {\n context.commit('SET_CURRENT_ORDER', new models.api.Order());\n }\n\n return context.getters.currentOrder;\n },\n\n clearCurrentOrder: context => {\n context.commit('SET_CURRENT_ORDER', null);\n },\n\n setUserAvatarUrl: (context, url) => {\n context.commit('SET_USER_AVATAR_URL', url);\n },\n },\n },\n },\n};\n","import currency from 'currency.js';\nimport { models } from 'feathers-vuex';\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\nimport { BagItem } from '@/utils/types';\n\nconst servicePath = 'custom-bags';\n\nconst Model = class CustomBag extends BaseModel {\n static modelName = 'CustomBag';\n\n static instanceDefaults() {\n return {\n items: [],\n bagName: '',\n barCode: '',\n description: '',\n qty: 100\n };\n }\n\n static setupInstance() {\n }\n\n // eslint-disable-next-line class-methods-use-this\n get currencySymbol() {\n return _.get(models.api.Company.getFromStore(0), 'currencySymbol', '$');\n }\n\n get bagTotal() {\n return currency(this.items.reduce((total, item) => total.add(item.SubTotal), currency(0, { symbol: this.currencySymbol })), { symbol: this.currencySymbol });\n }\n\n get SubTotal() {\n return this.bagTotal.multiply(this.qty);\n }\n\n addItem(id, qty, currentId) {\n const items = this.items.filter(item => item._id === id);\n if (items.length) {\n items[0].ReqQty = qty;\n return;\n }\n\n this.items.push(new BagItem(id, qty, currentId));\n }\n\n removeItem(id) {\n const index = this.items.findIndex(item => item._id === id);\n this.items.splice(index, 1);\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'temp-rfqs';\n\nconst Model = class TempRfq extends BaseModel {\n static modelName = 'TempRfq';\n\n static instanceDefaults() {\n return {\n isCsi: false,\n csiRfqId: '',\n };\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n extend() {\n return {\n state: {\n tempRfqIdInProgress: 'new',\n },\n getters: {\n getTempRfqIdInProgress: state => state.tempRfqIdInProgress,\n },\n mutations: {\n setTempRfqIdInProgress: (state, id) => {\n state.tempRfqIdInProgress = id || 'new';\n },\n },\n actions: {}\n };\n },\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-container',[_c('v-card',[_c('v-card-text',[_c('img',{attrs:{\"src\":_vm.filePath}})])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <v-container>\n <v-card>\n <v-card-text>\n <img :src=\"filePath\">\n </v-card-text>\n </v-card>\n </v-container>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'SvgViewer',\n props: {\n filePath: String,\n },\n methods: {\n }\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SvgViewer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SvgViewer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SvgViewer.vue?vue&type=template&id=97a145d2&scoped=true&\"\nimport script from \"./SvgViewer.vue?vue&type=script&lang=js&\"\nexport * from \"./SvgViewer.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 \"97a145d2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VContainer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panels',{attrs:{\"accordion\":\"\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"py-1\"},[_c('div',{staticClass:\"text-subtitle-2\"},[_vm._v(\" \"+_vm._s(_vm.$t( _vm._.get(_vm.partDesignData[0], 'value')))+\" \")]),_c('v-select',{staticStyle:{\"z-index\":\"999\"},attrs:{\"solo\":\"\",\"flat\":\"\",\"dense\":\"\",\"outlined\":\"\",\"disabled\":\"\",\"label\":_vm.$t('common.metric'),\"items\":[_vm.$t('common.metric'), _vm.$t('common.imperial')],\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"mt-2\",attrs:{\"x-small\":\"\",\"dark\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-information-outline \")])]}}])},[_c('span',[_vm._v(\"Coming soon\")])])]},proxy:true}]),model:{value:(_vm.units),callback:function ($$v) {_vm.units=$$v},expression:\"units\"}})],1),_c('v-expansion-panel-content',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',_vm._l((_vm.partDesignData.slice(1)),function(item){return _c('tr',{key:item.field},[_c('td',{staticClass:\"d-flex align-center text-truncate\",staticStyle:{\"color\":\"#747474\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" \"+_vm._s(item.icon)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t(item.field))+\" \")],1),_c('td',{staticClass:\"text-truncate font-weight-medium\",staticStyle:{\"text-align\":\"right\"}},[_c('span',{staticClass:\"ml-3\"},[_vm._v(\" \"+_vm._s((_vm.locale === 'en-US') || (item.valueCHS === '-') ? _vm.$t(item.value) : item.valueCHS)+\" \")])])])}),0)]},proxy:true}])})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-expansion-panels accordion>\n <v-expansion-panel>\n <v-expansion-panel-header class=\"py-1\">\n <div class=\"text-subtitle-2\">\n {{ $t( _.get(partDesignData[0], 'value')) }}\n </div>\n <v-select\n v-model=\"units\"\n style=\"z-index:999\"\n solo\n flat\n dense\n outlined\n disabled\n :label=\"$t('common.metric')\"\n :items=\"[$t('common.metric'), $t('common.imperial')]\"\n hide-details\n @click.stop\n >\n <template #prepend>\n <v-tooltip bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon\n class=\"mt-2\"\n x-small\n dark\n v-bind=\"attrs\"\n v-on=\"on\"\n >\n mdi-information-outline\n </v-icon>\n </template>\n <span>Coming soon</span>\n </v-tooltip>\n </template>\n </v-select>\n </v-expansion-panel-header>\n <v-expansion-panel-content>\n <v-card flat>\n <v-simple-table dense>\n <template v-slot:default>\n <tbody>\n <tr\n v-for=\"(item) in partDesignData.slice(1)\"\n :key=\"item.field\"\n >\n <td class=\"d-flex align-center text-truncate\" style=\"color: #747474;\">\n <v-icon small class=\"mr-2\" color=\"green\">\n {{ item.icon }}\n </v-icon>\n {{ $t(item.field) }}\n </td>\n <td class=\"text-truncate font-weight-medium\" style=\"text-align: right\">\n <span\n class=\"ml-3\"\n >\n {{ (locale === 'en-US') || (item.valueCHS === '-') ? $t(item.value) : item.valueCHS }}\n </span>\n </td>\n </tr>\n </tbody>\n </template>\n </v-simple-table>\n </v-card>\n </v-expansion-panel-content>\n </v-expansion-panel>\n </v-expansion-panels>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapState } from 'vuex';\n\nconst { CsiAnalysis } = models.api;\nexport default {\n name: 'PartDesignTable',\n props: {\n part: Object,\n },\n data() {\n return {\n units: 'Metric',\n tableData: []\n };\n },\n computed: {\n ...mapState('app', ['locale']),\n partDesignData() {\n let tableData = [];\n if (this.part) {\n tableData = _.get(CsiAnalysis.getFromStore(this.part.Item), 'data', []);\n }\n if (_.isEmpty(tableData)) {\n tableData = [\n { field: null, value: '3dSideViewer.partsDesignData.title' },\n { field: '3dSideViewer.partsDesignData.fabricationProcesses', value: '-' },\n { field: '3dSideViewer.partsDesignData.netWeight', value: '-' },\n { field: '3dSideViewer.partsDesignData.grossWeight', value: '-' },\n { field: '3dSideViewer.partsDesignData.materialUsage', value: '-' },\n { field: '3dSideViewer.partsDesignData.quantitySheet', value: '-' },\n { field: '3dSideViewer.partsDesignData.material', value: '-' },\n ];\n } else {\n tableData = tableData.filter(datum => datum.Category === 'S2')\n .filter(datum => (datum.Description ? datum.Description.startsWith('T1') : ''))\n .sort((datum1, datum2) => +datum1.Rank - +datum2.Rank)\n .map(datum => ({ field: datum.Description.replace('T1.', ''), value: datum.Value || '-', valueCHS: datum.ValueCHS || '-' }));\n }\n\n const icons = [\n 'mdi-ticket-confirmation',\n 'mdi-dots-horizontal',\n 'mdi-lock-plus',\n 'mdi-text-box-check-outline',\n 'mdi-vibrate',\n 'mdi-chart-donut',\n ];\n return tableData.map((row, index) => ({ ...{ icon: icons[index - 1] }, ...row }));\n }\n },\n\n};\n\n</script>\n\n<style scoped>\n::v-deep .v-input__slot{\n margin-top: 2px !important;\n width: 120px;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartsDesignDataTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartsDesignDataTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PartsDesignDataTable.vue?vue&type=template&id=212b5618&scoped=true&\"\nimport script from \"./PartsDesignDataTable.vue?vue&type=script&lang=js&\"\nexport * from \"./PartsDesignDataTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PartsDesignDataTable.vue?vue&type=style&index=0&id=212b5618&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 \"212b5618\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCard,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VSelect,VSimpleTable,VTooltip})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'forwarders';\n\nconst Model = class Forwarder extends BaseModel {\n static modelName = 'Forwarder';\n\n static instanceDefaults() {\n return {\n };\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),_c('v-radio-group',{attrs:{\"row\":\"\"},model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}},_vm._l((_vm.data),function(option,i){return _c('v-radio',{key:i,attrs:{\"label\":option,\"value\":option}})}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-col cols=\"auto\">\n <span class=\"subtitle-2\"> {{ title }} </span>\n <v-radio-group\n v-model=\"model\"\n row\n >\n <v-radio\n v-for=\"(option, i) in data\"\n :key=\"i\"\n :label=\"option\"\n :value=\"option\"\n />\n </v-radio-group>\n </v-col>\n</template>\n\n<script>\nexport default {\n props: [\n 'title', 'data'\n ],\n data: () => ({\n model: ''\n })\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadCardBodyRadio.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadCardBodyRadio.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UploadCardBodyRadio.vue?vue&type=template&id=459fa7f8&\"\nimport script from \"./UploadCardBodyRadio.vue?vue&type=script&lang=js&\"\nexport * from \"./UploadCardBodyRadio.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\ninstallComponents(component, {VCol,VRadio,VRadioGroup})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"inline\"}},[(_vm.svgReady)?_c('div',{staticStyle:{\"display\":\"inline\"}},[_c('v-btn',_vm._b({staticClass:\"pr-1\",attrs:{\"text\":\"\",\"depressed\":\"\",\"loading\":_vm.isSvgRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.isSVGDownload=true}}},'v-btn',_vm.buttonAttrs,false),[_c('v-icon',_vm._b({attrs:{\"left\":\"\",\"size\":\"20\"}},'v-icon',_vm.buttonIconAttrs,false),[_vm._v(\" mdi-open-in-new \")]),_vm._v(\" \"+_vm._s(_vm.$t('svgDrawing.viewSvg'))+\" \")],1)],1):[_c('v-btn',_vm._b({attrs:{\"depressed\":\"\",\"text\":\"\",\"disabled\":!(_vm.part.DrawingRowPointer && _vm.part.Item),\"loading\":_vm.isSvgRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.display=true;}}},'v-btn',_vm.buttonAttrs,false),[_c('v-icon',_vm._b({attrs:{\"left\":\"\",\"size\":\"25\"}},'v-icon',_vm.buttonIconAttrs,false),[_vm._v(\" mdi-vector-square \")]),_vm._v(\" \"+_vm._s(_vm.$t('svgDrawing.uploadSvg'))+\" \")],1)],(_vm.display)?_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"1000px\",\"is-ok-disabled\":!_vm.isFileAdded,\"eager\":true,\"ok-button-text\":_vm.$t('common.upload'),\"is-loading\":_vm.isSvgUploadPending || _vm.isSvgUploadInProgress},on:{\"click:ok\":function($event){return _vm.uploadSvg(_vm.part)},\"click:cancel\":function($event){_vm.display = false;_vm.removeSVG()}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('svgDrawing.uploadSvg'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{ref:\"myDialog\",staticClass:\" text-center\"},[_c('v-card',{staticClass:\"mt-5\",staticStyle:{\"border\":\"dashed #D7D7D7 2px\",\"background-color\":\"#F1FDF3\",\"min-width\":\"905px\",\"max-width\":\"1000px\"},attrs:{\"height\":\"150\",\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"d-flex flex-column justify-space-between align-center\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',{attrs:{\"color\":\"green\",\"size\":\"60\"}},[_vm._v(\" mdi-cloud-upload-outline \")]),_c('span',{staticClass:\"headline mx-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.dragFilesToUpload'))+\" \")]),_c('v-btn',{staticStyle:{\"background-color\":\"#FFF\"},attrs:{\"id\":\"dropzone-click-target-svg\",\"depressed\":\"\",\"text\":\"\",\"outlined\":\"\",\"color\":\"success\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.browse'))+\" \")])],1),_c('div',{staticClass:\"d-flex body-2\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('svgDrawing.FileSupported'))+\" \")])])],1),_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.SingleFileOnly'))+\" \")],1)]},proxy:true}],null,false,6927705),model:{value:(_vm.display),callback:function ($$v) {_vm.display=$$v},expression:\"display\"}}):_vm._e(),_c('v-overlay',{attrs:{\"value\":_vm.isSVGDownload,\"z-index\":\"90\"}}),_c('v-navigation-drawer',{staticStyle:{\"background-color\":\"#ada6a6\",\"z-index\":\"99 !important\"},attrs:{\"width\":\"60%\",\"fixed\":\"\",\"stateless\":\"\",\"hide-overlay\":\"\",\"right\":\"\",\"temporary\":\"\"},model:{value:(_vm.isSVGDownload),callback:function ($$v) {_vm.isSVGDownload=$$v},expression:\"isSVGDownload\"}},[_c('div',{ref:\"rfqViewerContainer\",staticStyle:{\"height\":\"calc(100% - 52px)\"}},[_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){_vm.isSVGDownload=false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),(_vm.isSVGDownload)?_c('core-svg-viewer',{attrs:{\"file-path\":_vm.previewSVGUrl,\"item-height\":800}}):_vm._e()],1)])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div style=\"display: inline\">\n <div v-if=\"svgReady\" style=\"display: inline\">\n <v-btn\n text\n depressed\n class=\"pr-1\"\n :loading=\"isSvgRemoved\"\n color=\"primary\"\n v-bind=\"buttonAttrs\"\n @click=\"isSVGDownload=true\"\n >\n <v-icon left size=\"20\" v-bind=\"buttonIconAttrs\">\n mdi-open-in-new\n </v-icon>\n {{ $t('svgDrawing.viewSvg') }}\n </v-btn>\n </div>\n <template v-else>\n <v-btn\n depressed\n text\n :disabled=\"!(part.DrawingRowPointer && part.Item)\"\n :loading=\"isSvgRemoved\"\n color=\"primary\"\n v-bind=\"buttonAttrs\"\n @click=\"display=true;\"\n >\n <v-icon left size=\"25\" v-bind=\"buttonIconAttrs\">\n mdi-vector-square\n </v-icon>\n {{ $t('svgDrawing.uploadSvg') }}\n </v-btn>\n </template>\n <core-dialog\n v-if=\"display\"\n v-model=\"display\"\n type=\"confirmation\"\n width=\"1000px\"\n :is-ok-disabled=\"!isFileAdded\"\n :eager=\"true\"\n :ok-button-text=\"$t('common.upload')\"\n :is-loading=\"isSvgUploadPending || isSvgUploadInProgress\"\n @click:ok=\"uploadSvg(part)\"\n @click:cancel=\"display = false;removeSVG()\"\n >\n <template #title>\n {{ $t('svgDrawing.uploadSvg') }}\n </template>\n <template #content>\n <div ref=\"myDialog\" class=\" text-center\">\n <v-card\n class=\"mt-5\"\n height=\"150\"\n flat\n style=\"border: dashed #D7D7D7 2px;\n background-color: #F1FDF3;\n min-width: 905px; max-width: 1000px;\"\n >\n <v-card-text class=\"d-flex flex-column justify-space-between align-center\" style=\"height: 100%\">\n <div class=\"d-flex align-center\">\n <v-icon color=\"green\" size=\"60\">\n mdi-cloud-upload-outline\n </v-icon>\n <span class=\"headline mx-4\">\n {{ $t('views.instantQuote.dragFilesToUpload') }}\n </span>\n <v-btn\n id=\"dropzone-click-target-svg\"\n depressed\n text\n outlined\n color=\"success\"\n style=\"background-color: #FFF\"\n >\n {{ $t('views.instantQuote.browse') }}\n </v-btn>\n </div>\n <div class=\"d-flex body-2\" style=\"color:#4B4B4B\">\n {{ $t('svgDrawing.FileSupported') }}\n </div>\n </v-card-text>\n </v-card>\n {{ $t('myPartPdf.SingleFileOnly') }}\n </div>\n </template>\n </core-dialog>\n\n <v-overlay :value=\"isSVGDownload\" z-index=\"90\" />\n <v-navigation-drawer\n v-model=\"isSVGDownload\"\n width=\"60%\"\n fixed\n stateless\n hide-overlay\n right\n temporary\n style=\"background-color: #ada6a6;z-index: 99 !important;\"\n >\n <div\n ref=\"rfqViewerContainer\"\n style=\"height: calc(100% - 52px);\"\n >\n <div class=\"d-flex justify-end\">\n <v-btn\n icon\n x-large\n @click=\"isSVGDownload=false\"\n >\n <v-icon>mdi-close</v-icon>\n </v-btn>\n </div>\n\n <core-svg-viewer\n v-if=\"isSVGDownload\"\n :file-path=\"previewSVGUrl\"\n :item-height=\"800\"\n />\n </div>\n </v-navigation-drawer>\n </div>\n</template>\n\n<script>\nimport Dropzone from 'dropzone';\nimport 'dropzone/dist/dropzone.css';\nimport { mapState } from 'vuex';\n\nexport default {\n name: 'UploadSvgDrawing',\n props: {\n part: {\n type: Object\n },\n buttonAttrs: {\n type: Object,\n default: () => {},\n },\n buttonIconAttrs: {\n type: Object,\n default: () => {},\n }\n },\n data() {\n return {\n svgReady: false,\n previewSVGUrl: '',\n isSvgUploadPending: false,\n isFileAdded: false,\n showSvgRemoveDialog: false,\n myDropZone: null,\n svgPageHeight: 0,\n svgPageWidth: 0,\n display: false,\n isSvgRemoved: false,\n isSVGDownload: false,\n isSvgUploadInProgress: false,\n };\n },\n computed: {\n ...mapState('auth', ['accessToken']),\n dropzoneOptions: vm => ({\n url: '/',\n paramName: 'file',\n headers: {\n Authorization: vm.accessToken,\n },\n thumbnailWidth: 150,\n maxFilesize: 20,\n timeout: 9999999,\n maxFiles: 1,\n parallelUploads: 1,\n acceptedFiles: '.svg',\n autoProcessQueue: false,\n dictDefaultMessage: 'dropZone.dictDefaultMessage',\n dictFallbackMessage: 'dropZone.dictFallbackMessage',\n dictFallbackText: 'dropZone.dictFallbackText',\n dictFileTooBig: 'dropZone.dictFileTooBig',\n dictInvalidFileType: 'dropZone.dictInvalidFileType',\n dictResponseError: 'dropZone.dictResponseError',\n dictCancelUpload: 'dropZone.dictCancelUpload',\n dictCancelUploadConfirmation: 'dropZone.dictCancelUploadConfirmation',\n dictRemoveFile: 'dropZone.dictRemoveFile',\n dictMaxFilesExceeded: 'dropZone.dictMaxFilesExceeded',\n clickable: '#dropzone-click-target-svg',\n previewTemplate: vm.template(),\n init() {\n this.on('maxfilesexceeded', file => {\n this.removeAllFiles();\n this.addFile(file);\n });\n this.on('error', async file => {\n this.removeFile(file);\n });\n this.on('success', async () => {\n vm.isSvgUploadPending = false;\n vm.display = false;\n await vm.checkIfSvgExist();\n });\n\n this.on('sending', () => {\n vm.isSvgUploadPending = true;\n });\n\n this.on('addedfile', async file => {\n const removeButton = Dropzone.createElement('<span class=\"mdi mdi-close\" style=\"vertical-align: middle; font-size: 1.5rem; cursor: pointer\" ></span>');\n vm.previewSVGUrl = URL.createObjectURL(file);\n vm.$emit('svgUrl', vm.previewSVGUrl);\n vm.svgReady = true;\n vm.isFileAdded = true;\n removeButton.addEventListener('click', e => {\n e.preventDefault();\n e.stopPropagation();\n this.removeFile(file);\n vm.removeSVG();\n });\n\n file.previewElement.children[1].appendChild(removeButton);\n });\n }\n\n }),\n },\n watch: {\n display(newValue) {\n if (newValue) {\n setTimeout(() => {\n this.myDropZone = new Dropzone(this.$refs.myDialog, this.dropzoneOptions);\n }, 800);\n } else {\n this.myDropZone = null;\n }\n },\n svgUrl(val) {\n if (val) {\n this.svgReady = true;\n this.previewSVGUrl = this.svgUrl;\n } else {\n this.svgReady = false;\n }\n }\n },\n\n mounted() {\n const resizeObserver = new ResizeObserver(() => {\n /* 70 breathing room */\n this.svgPageWidth = this.$refs.rfqViewerContainer.getBoundingClientRect().width - 70;\n const ratio = 8.5 / 11;\n this.svgPageHeight = this.svgPageWidth / ratio;\n });\n resizeObserver.observe(this.$refs.rfqViewerContainer);\n // If file is already uploaded.\n if (this.part.SvgFile) {\n this.svgReady = true;\n const host = process.env.VUE_APP_API_URL;\n const fileName = this.part.SvgFile;\n this.svgUrl = `${host}uploads/${fileName}/${this.accessToken}/${this.part.Item}/File`;\n this.previewSVGUrl = this.svgUrl;\n }\n },\n methods: {\n async uploadSvg(part) {\n this.isSvgUploadInProgress = true;\n const file = await fetch(this.previewSVGUrl);\n const blob = await file.blob();\n const fd = new FormData();\n fd.append('file', blob, `${part.Item}-2D.svg`);\n const uploadUrl = `${process.env.VUE_APP_API_URL}upload?rowPointer=${part.DrawingRowPointer}&name=${part.Item}-2D&desc=CustomerDrawings&ext=SVG&uploadToCsi=true`;\n\n // Need to refactor the upload service.\n // Don't forget this service is also used by Dropzone\n // in order to upload the drawing file to the CSI\n await fetch(uploadUrl, {\n method: 'POST',\n headers: {\n Authorization: this.accessToken,\n },\n body: fd,\n });\n this.isSvgUploadInProgress = false;\n this.display = false;\n // maintaining state\n this.part.SvgFile = fd.get('file').name;\n this.part.commit();\n console.log(uploadUrl);\n },\n\n async onFileChanged(e) {\n const [svgFile] = e.target.files;\n this.previewSVGUrl = URL.createObjectURL(svgFile);\n this.$emit('svgUrl', this.previewSVGUrl);\n this.svgReady = true;\n },\n async removeSVG() {\n URL.revokeObjectURL(this.previewSVGUrl);\n this.svgReady = false;\n this.showSvgRemoveDialog = false;\n this.previewSVGUrl = '';\n this.$emit('svgUrl', this.previewSVGUrl);\n this.isFileAdded = false;\n },\n template() {\n return `\n <div class=\"d-flex align-start flex-column mt-16\">\n <p style=\"vertical-align: bottom\">Document selected</p>\n <p id=\"test\" class=\"pa-2\" style=\"background-color: #dee0e4; display: inline\">\n <span class=\"mdi mdi-open-in-new font-weight-medium\" style=\"vertical-align: middle; color:#2c984e; font-size:1.2rem\"></span>\n <span class=\"font-weight-bold\" style=\"vertical-align: bottom; color:#2c984e; font-size:1rem\" data-dz-name></span>\n </p>\n </div>`;\n }\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadSvgDrawing.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadSvgDrawing.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UploadSvgDrawing.vue?vue&type=template&id=4c324156&\"\nimport script from \"./UploadSvgDrawing.vue?vue&type=script&lang=js&\"\nexport * from \"./UploadSvgDrawing.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VBtn,VCard,VCardText,VIcon,VNavigationDrawer,VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"pa-0\"},[_c('v-menu',{attrs:{\"data-cy\":\"my-part-second-horizontal-grid-view\",\"open-on-hover\":\"\",\"bottom\":\"\",\"offset-x\":\"\",\"left\":\"\",\"z-index\":\"9999999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-sheet',_vm._g(_vm._b({staticClass:\"d-inline-block font-weight-medium mb-0 pa-1\",staticStyle:{\"border-radius\":\"5px\"},attrs:{\"tag\":\"p\",\"min-width\":\"180px\",\"min-height\":\"41px\",\"color\":\"#f0fdf3\",\"data-cy\":\"my-part-price-range-box-grid\"}},'v-sheet',attrs,false),on),[[_c('div',{staticClass:\"mt-n1 text-center\"},[_c('span',{staticClass:\"flex-nowrap align-center colorGreen font-weight-thin\",staticStyle:{\"font-size\":\"16px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.unitPriceVariation'))+\" \")]),_c('span',{staticClass:\"colorGreen mdi mdi-magnify rounded d-inline-flex align-center justify-center ml-1 white--text \",staticStyle:{\"font-size\":\"13px\",\"background-color\":\"#5FCE79\",\"color\":\"white !important\",\"width\":\"20px\",\"font-weight\":\"bold !important\"}})])]],2)]}}])},[_c('div',{staticClass:\"pa-2\",staticStyle:{\"background-color\":\"white\",\"z-index\":\"9999999\"}},[_c('span',{staticClass:\"body-2 font-weight-bold\"},[_vm._v(_vm._s(_vm.$t('common.unitPricePerQuantity')))]),_c('div',{staticStyle:{\"display\":\"grid\",\"width\":\"min-content\",\"grid-template-columns\":\"max-content max-content\"}},[_vm._l((_vm.sortByQuantity(_vm.internalItems)),function(item,index){return [_c('span',{key:(\"qty-\" + index),staticStyle:{\"color\":\"#8D8D8D\"}},[_vm._v(\" \"+_vm._s(item.Qty)+\": \"+_vm._s('\\xa0')+\" \")]),_c('span',{key:(\"price-\" + index)},[_vm._v(\" \"+_vm._s(_vm.$t('common.pricePerUnit', {price: item.Price}))+\" \")])]})],2)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container class=\"pa-0\">\n <v-menu\n data-cy=\"my-part-second-horizontal-grid-view\"\n open-on-hover\n bottom\n offset-x\n left\n z-index=\"9999999\"\n >\n <template v-slot:activator=\"{ on, attrs }\">\n <v-sheet\n v-bind=\"attrs\"\n tag=\"p\"\n min-width=\"180px\"\n min-height=\"41px\"\n color=\"#f0fdf3\"\n data-cy=\"my-part-price-range-box-grid\"\n class=\"d-inline-block font-weight-medium mb-0 pa-1\"\n style=\"border-radius:5px\"\n v-on=\"on\"\n >\n <template>\n <div class=\"mt-n1 text-center\">\n <span\n style=\"font-size: 16px\"\n class=\"flex-nowrap align-center colorGreen font-weight-thin\"\n >\n {{ $t('common.unitPriceVariation') }}\n </span>\n <span\n class=\"colorGreen mdi mdi-magnify rounded d-inline-flex align-center justify-center ml-1 white--text \"\n style=\"font-size:13px ;background-color: #5FCE79; color: white !important; width: 20px; font-weight: bold !important\"\n />\n </div>\n </template>\n </v-sheet>\n </template>\n\n <div style=\"background-color: white; z-index:9999999\" class=\"pa-2\">\n <span class=\"body-2 font-weight-bold\">{{ $t('common.unitPricePerQuantity') }}</span>\n <div\n style=\"display: grid;width: min-content;grid-template-columns: max-content max-content;\"\n >\n <template v-for=\"(item,index) in sortByQuantity(internalItems)\">\n <span :key=\"`qty-${index}`\" style=\"color: #8D8D8D\">\n {{ item.Qty }}: {{ '\\xa0' }}\n </span>\n <span :key=\"`price-${index}`\">\n {{ $t('common.pricePerUnit', {price: item.Price}) }}\n </span>\n </template>\n </div>\n </div>\n </v-menu>\n </v-container>\n</template>\n\n<script>\n\nimport { models } from 'feathers-vuex';\n\nimport {\n computed, defineComponent, ref,\n} from '@vue/composition-api';\nimport currency from 'currency.js';\n\nconst { Part, Company } = models.api;\n\nexport default defineComponent({\n props: {\n /**\n * Manipulate the way field's value displays\n */\n part: {\n type: Object,\n default: () => {\n }\n },\n },\n\n setup(props, context) {\n const t = context.root.$t;\n\n const company = computed(() => Company.getFromStore(0));\n\n const currentUser = computed(() => context.root.$store.getters['auth/user']);\n\n const currencySymbol = computed(() => _.get(company.value, 'currencySymbol', '$'));\n\n const deleteDialog = ref({\n display: false,\n partToDelete: new Part(),\n });\n\n const internalItems = computed(() => {\n if (props.part) {\n return props.part;\n }\n return { ExpiryDate: Date.now() };\n });\n\n const currentOrder = computed(() => context.root.$store.state.app.currentOrder);\n\n const sortByQuantity = part => {\n if (!part) {\n return [];\n }\n\n if (part.PriceMOQ) {\n let priceMoq;\n if (typeof part.PriceMOQ === 'string') {\n priceMoq = JSON.parse(part.PriceMOQ);\n } else {\n priceMoq = [...part.PriceMOQ];\n }\n\n return priceMoq.sort((a, b) => b.Qty - a.Qty).map(moq => ({\n ...moq,\n Price: currency(moq.Price, { symbol: currencySymbol.value, precision: 4 }).format(),\n }));\n }\n\n if (part.priceMOQ) {\n let priceMoq;\n if (typeof part.priceMOQ === 'string') {\n priceMoq = JSON.parse(part.priceMOQ);\n } else {\n priceMoq = [...part.priceMOQ];\n }\n\n return priceMoq.sort((a, b) => b.Qty - a.Qty).map(moq => ({\n ...moq,\n Price: currency(moq.Price, { symbol: currencySymbol.value, precision: 4 }).format(),\n }));\n }\n return [];\n };\n\n const priceRange = part => {\n if ((part.PriceMOQ && part.PriceMOQ.length !== 0) || (part.priceMOQ && part.priceMOQ.length !== 0)) {\n let priceMoq;\n if (typeof part.PriceMOQ === 'string') {\n priceMoq = JSON.parse(part.PriceMOQ);\n // eslint-disable-next-line no-prototype-builtins\n } else if (part.hasOwnProperty('priceMOQ')) {\n priceMoq = [...part.priceMOQ];\n } else {\n priceMoq = [...part.PriceMOQ];\n }\n const parsedData = priceMoq;\n const first = parsedData[0];\n const last = parsedData.pop();\n return `${last.Price} ${currencySymbol.value} - ${first.Price}${currencySymbol.value} `;\n }\n return context.root.$t('common.nA');\n };\n\n const isExpired = () => moment().diff(props.part && props.part.ExpireDate ? props.part.ExpireDate : Date.now(), 'days') > 0;\n\n const refreshMyPartPrice = async part => {\n const query = {\n query: {\n shouldUpdatePrice: true,\n },\n notificationMessage: context.root.$t('views.myParts.refreshPriceSuccessMessage'),\n };\n\n await part.save(query);\n };\n\n const itemRowBackground = part => (this.isExpired(part) ? 'expired-row' : null);\n\n const cancelDelete = () => {\n deleteDialog.value.display = false;\n deleteDialog.value.partToDelete = new Part();\n };\n\n const addToOrder = async part => {\n // eslint-disable-next-line no-underscore-dangle\n const order = await context.root.$store._actions['app/initCurrentOrder'][0]();\n order.addItem('part', part._id, part.qtyOfPart);\n };\n\n const removeToOrder = part => {\n if (currentOrder.value) {\n currentOrder.value.items = currentOrder.value.items.filter(item => item._id !== part._id);\n }\n };\n\n const calculatePrice = computed(() => part => {\n if (!part.PriceMOQ) {\n return currency(0, { symbol: currencySymbol.value });\n }\n\n let priceMoq;\n if (typeof part.PriceMOQ === 'string') {\n priceMoq = JSON.parse(part.PriceMOQ);\n } else {\n priceMoq = [...part.PriceMOQ];\n }\n\n const findPrice = priceMoq.find(({ Qty }) => part.qtyOfPart <= Qty) || priceMoq;\n\n if (!findPrice) {\n const unitPrice = Math.min(...priceMoq.map(o => o.Qty));\n // eslint-disable-next-line consistent-return\n const price = parseFloat(unitPrice.toFixed(2)) === 0.00 ? 0.01 : findPrice.Price;\n const finalPrice = currency(price, { symbol: currencySymbol.value, precision: 4 });\n return currency(finalPrice, { symbol: '', precision: 2 }).multiply(part.qtyOfPart);\n }\n\n // eslint-disable-next-line consistent-return\n const price = parseFloat(findPrice.Price.toFixed(2)) === 0.00 ? 0.01 : findPrice.Price;\n const finalPrice = currency(price, { symbol: currencySymbol.value, precision: 4 });\n\n return currency(finalPrice, { symbol: currencySymbol.value, precision: 2 }).multiply(part.qtyOfPart);\n });\n\n const isPartPresentInCurrentOrder = computed(() => part => {\n if (currentOrder.value === null) {\n return false;\n }\n\n const currentPart = currentOrder.value.items.findIndex(item => item._id === part._id);\n\n return currentPart !== -1;\n });\n\n return {\n sortByQuantity,\n removeToOrder,\n addToOrder,\n cancelDelete,\n itemRowBackground,\n refreshMyPartPrice,\n isExpired,\n priceRange,\n deleteDialog,\n calculatePrice,\n currencySymbol,\n currentUser,\n isPartPresentInCurrentOrder,\n internalItems,\n t\n };\n },\n});\n\n</script>\n\n<style>\n.notDisplay {\n visibility: hidden;\n}\n\n.partCard:hover .displayDetail {\n visibility: visible;\n display: inline;\n position: relative;\n}\n\n.partCard:hover .shimmer {\n\n background: var(--color) -webkit-gradient(linear, 100% 0, 0 0,\n from(var(--color)), color-stop(0.5, #ffffff),\n to(var(--color)));\n\n background-position: -4rem top; /*50px*/\n background-repeat: no-repeat;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n -webkit-animation-name: shimmer;\n -webkit-animation-duration: 1.5s;\n -webkit-animation-iteration-count: infinite;\n -webkit-background-size: 4rem 100%; /*50px*/\n -webkit-animation-timing-function: linear;\n}\n\n.colorRed {\n color: #be2a45 !important;\n --color: #be2a45 !important\n}\n\n.colorGreen {\n color: #128347 !important;\n --color: #128347 !important\n}\n\n@-webkit-keyframes shimmer {\n 0% {\n background-position: -4rem top; /*50px*/\n }\n\n 70% {\n background-position: 12.5rem top; /*200px*/\n }\n\n 100% {\n background-position: 12.5rem top; /*200px*/\n }\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangPriceMoqLabel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangPriceMoqLabel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RangPriceMoqLabel.vue?vue&type=template&id=fd0ff734&\"\nimport script from \"./RangPriceMoqLabel.vue?vue&type=script&lang=js&\"\nexport * from \"./RangPriceMoqLabel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RangPriceMoqLabel.vue?vue&type=style&index=0&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 null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VContainer,VMenu,VSheet})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'temp-parts';\n\nconst Model = class TempPart extends BaseModel {\n static modelName = 'TempPart';\n\n static instanceDefaults() {\n return {\n tempRfqId: null,\n csiRfqId: '',\n csiLineNumber: '',\n isCsi: false,\n uniqueFileName: '',\n CustItemName: '',\n CustItemDesc: '...',\n CustFileName: '',\n RevisionNumber: '0',\n Material: '',\n MaterialSeries: '',\n MaterialThickness: '',\n MaterialFinish: '',\n MaterialFinishOption: '',\n MaterialStr: '',\n MaterialSeriesStr: '',\n MaterialFinishStr: '',\n MaterialFinishOptionStr: '',\n MaterialThicknessStr: '',\n RawMaterial: '',\n DrawingRowPointer: '',\n DrawingNumber: '',\n Item: '',\n CsiAnalysisData: [],\n AnalysisData: {},\n SecondaryAnalysisData: {},\n ReqQty: 1,\n Status: 'Planned',\n shouldStartPreliminaryAnalysis: false,\n shouldStartFinalAnalysis: false,\n shouldCalculateCostWithoutFinalAnalysis: false,\n shouldUploadFilesToCsi: false,\n PriceMOQ: null,\n Tolerance: '',\n Roughness: '',\n EstimateLineStatus: {\n isDrawingUploaded: false,\n isDrawingUploadedCsi: false,\n isDrawingUploadedMsg: '',\n isManufacturable: false,\n isManufacturableMsg: '',\n isPreliminaryAnalysisInProgress: false,\n isPreliminaryAnalysisCompleted: false,\n isPreliminaryAnalysisCompletedMsg: false,\n isMainAnalysisInProgress: false,\n isMainAnalysisCompleted: false,\n isMainAnalysisCompletedMsg: false,\n isThumbnailUploaded: false,\n isThumbnailUploadedMsg: '',\n isObjUploaded: false,\n isObjUploadedCsi: false,\n isObjUploadedMsg: '',\n isDxfUploaded: false,\n isDxfUploadedCsi: false,\n isDxfUploadedMsg: '',\n isMeshUploaded: false,\n isMeshUploadedCsi: false,\n isMeshUploadedMsg: '',\n isThicknessCalculated: false,\n isThicknessCalculatedMsg: '',\n CsiErrorParam: ''\n },\n machine: 'sheet-metal',\n executionTime: 90,\n Threads: '',\n Countersinks: '',\n Counterbores: '',\n MaterialCategory: '',\n };\n }\n\n get materialSeriesShortened() {\n return this.MaterialSeriesStr.replace(this.MaterialStr, '').trim();\n }\n\n get isSheetMetalPart() {\n const machine = _.get(this, 'AnalysisData.machine', '');\n return machine === 'sheet-metal';\n }\n\n get isTurningPart() {\n const machine = _.get(this, 'AnalysisData.machine', '');\n return machine === 'turning';\n }\n\n get is2dModel() {\n if (this.CustFileName) {\n return this.CustFileName.split('.').pop().replaceAll(' ', '').toUpperCase() === 'DXF';\n }\n return false;\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath).hooks({\n error: {\n all: [\n context => {\n context.params.shouldShowNotification = !context.error.message.startsWith('CSIError.');\n return context;\n }\n ],\n }\n }),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib';\n// import 'vuetify/dist/vuetify.min.css';\n\nimport en from 'vuetify/src/locale/en.ts';\nimport fr from 'vuetify/src/locale/fr.ts';\n\nimport i18n from './i18n';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n\n icons: {\n iconfont: 'mdi',\n },\n\n lang: {\n locales: { en, fr },\n current: i18n.locale.slice(0, i18n.locale.indexOf('-')),\n },\n\n theme: {\n themes: {\n light: {\n // primary: '#4caf50',\n // TODO decide on color in code review. Invision design is inconsistent\n primary: '#2C984E',\n // secondary: '#4caf50',\n tertiary: '#495057',\n accent: '#82B1FF',\n error: '#B00020',\n info: '#00d3ee',\n success: '#60ce79',\n warning: '#ffa21a'\n },\n dark: {\n primary: '#f8f8ff',\n secondary: '#f8f8ff',\n tertiary: '#f8f8ff',\n accent: '#f8f8ff',\n error: '#B00020',\n info: '#00d3ee',\n success: '#60ce79',\n warning: '#ffa21a'\n },\n },\n },\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareThumbnailViewer.vue?vue&type=style&index=0&id=8cc35d3e&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('core-main',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('form.dashboard.name'))+\" \")]},proxy:true}])},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{staticClass:\"pa-2 pb-0 pl-10 transparent\",attrs:{\"elevation\":\"0\"}},[_c('v-card-text',[_c('v-row',[_c('v-col',[_c('p',{class:['text-h3', {loading :!_vm.user.firstName}],staticStyle:{\"color\":\"#afa9a9\"},attrs:{\"data-cy\":\"greeting-value\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.greeting', {name: _vm.user.firstName}))+\" \")])])],1)],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"ml-10 pa-2 pt-0\"},[_c('core-welcome-screen-upload-file-banner')],1)]),(_vm.showReferralBanner)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"ml-10 pa-2 pt-0\"},[_c('core-welcome-screen-referral')],1)]):_vm._e(),(_vm.showPromotionCountdownBanner)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"ml-10 pa-2 pt-0\"},[_c('core-welcome-screen-promotion-countdown-banner',{attrs:{\"expiry-time\":_vm.newSignUpPromoCode[0].ExpiryDate}})],1)]):_vm._e(),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-row',[_c('div',{staticClass:\"ml-12 pl-3 pa-2 text-h5 font-weight-bold text-capitalize\",staticStyle:{\"color\":\"#2E343B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.simpleProcessLabel'))+\" \")]),_c('img',{staticClass:\"pl-4 pr-2\",staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-bulb.svg\"}}),_c('div',{staticClass:\"pt-4 text-body-2 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.assistanceLabel1'))+\" \"),_c('a',{attrs:{\"href\":\"#videoTutorials\"},on:{\"click\":function($event){_vm.expandVideoTutorials = 0;}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.assistanceLabel2'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.assistanceLabel3'))+\" \"+_vm._s(_vm.$t('views.dashboard.assistanceLabel4'))+\" \"+_vm._s(_vm.$t('views.dashboard.assistanceLabel5'))+\" \"),_c('a',{attrs:{\"href\":\"mailto:feedback@komacut.com\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.assistanceLabel6'))+\" \")])])])],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"ml-10 pa-2 pt-0\"},[_c('core-welcome-screen-order-steps-banner')],1)]),_c('v-col',{attrs:{\"cols\":\"11\"}},[_c('v-expansion-panels',{staticClass:\"ml-10 pa-2 pt-0\"},[_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"elevation-0\",staticStyle:{\"background-color\":\"#F9F9F9\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"#46A55C\"}},[_vm._v(\" $expand \")])]},proxy:true}])},[_c('div',{staticClass:\"text-h6\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.whatWeCanDoForYou'))+\" \")])]),_c('v-expansion-panel-content',[_c('v-card',{staticClass:\"mb-5 pa-2 pl-10 transparent\",attrs:{\"elevation\":\"0\"}},[_c('v-card-text',[_c('v-row',{staticClass:\"mt-2\"},[_c('v-col',{staticClass:\"px-0\",attrs:{\"cols\":\"2\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"width\":\"100px\"}},[_c('img',{attrs:{\"src\":\"/img/laserCuttingIcon.svg\",\"width\":\"70\",\"height\":\"70\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.manufacturingProcesses.laserCutting'))+\" \")])])]),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"width\":\"180px\"}},[_c('img',{attrs:{\"src\":\"/img/threadingIcon.svg\",\"width\":\"70\",\"height\":\"70\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.manufacturingProcesses.threadingChamfering'))+\" \")])])]),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"width\":\"150px\"}},[_c('img',{attrs:{\"src\":\"img/bendingIcon.svg\",\"width\":\"70\",\"height\":\"70\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.manufacturingProcesses.sheetMetalBending'))+\" \")])])]),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"width\":\"130px\"}},[_c('img',{attrs:{\"src\":\"/img/surfaceFinishingIcon.svg\",\"width\":\"70\",\"height\":\"70\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.manufacturingProcesses.surfaceFinishing'))+\" \")])])]),_c('v-col',{staticClass:\"px-0\",attrs:{\"cols\":\"2\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"width\":\"100px\"}},[_c('img',{attrs:{\"src\":\"/img/icon-cnc-urning2@1x.svg\",\"width\":\"70\",\"height\":\"70\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.manufacturingProcesses.cncTurning'))+\" \")])])]),_c('v-col',{staticClass:\"px-0\",attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"width\":\"200px\"}},[_c('img',{attrs:{\"src\":\"/img/icon-bulk@1x.svg\",\"width\":\"70\",\"height\":\"70\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.manufacturingProcesses.hardwareBulk'))+\" \")])])]),_c('v-col',{staticClass:\"px-0\",attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"width\":\"170px\"}},[_c('img',{attrs:{\"src\":\"/img/icon-custom@1x.svg\",\"width\":\"70\",\"height\":\"70\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.manufacturingProcesses.hardwareCustomBags'))+\" \")])])]),_c('v-col',{staticClass:\"px-0 ml-n4\",attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"width\":\"180px\"}},[_c('img',{attrs:{\"src\":\"/img/laserEngravingIcon.svg\",\"width\":\"70\",\"height\":\"70\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.manufacturingProcesses.laserEngraving'))+\" \")])])])],1)],1)],1)],1)],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"11\"}},[_c('v-expansion-panels',{staticClass:\"ml-10 pa-2 pt-0\",model:{value:(_vm.expandVideoTutorials),callback:function ($$v) {_vm.expandVideoTutorials=$$v},expression:\"expandVideoTutorials\"}},[_c('v-expansion-panel',{model:{value:(_vm.expandVideoTutorials),callback:function ($$v) {_vm.expandVideoTutorials=$$v},expression:\"expandVideoTutorials\"}},[_c('v-expansion-panel-header',{staticClass:\"elevation-0\",staticStyle:{\"background-color\":\"#F9F9F9\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"#46A55C\"}},[_vm._v(\" $expand \")])]},proxy:true}])},[_c('div',{staticClass:\"text-h6\",attrs:{\"id\":\"videoTutorials\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.videoTutorials'))+\" \")])]),_c('v-expansion-panel-content',[_c('v-card',{staticClass:\"pa-2 transparent\",attrs:{\"elevation\":\"0\"}},[_c('v-card-text',[_c('v-row',{staticStyle:{\"max-width\":\"1100px\"}},_vm._l((_vm.tutorials),function(tutorial){return _c('v-col',{key:tutorial.text,attrs:{\"cols\":\"6\"}},[(tutorial.display)?_c('div',{staticClass:\"tutorials-container py-0 ma-0\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){_vm.tutorialDialog.tutorial = tutorial; _vm.tutorialDialog.isActive = true;}}},[_c('v-icon',{attrs:{\"left\":\"\",\"medium\":\"\",\"grey\":\"\",\"active-class\":\"active-filter\"}},[_vm._v(\" mdi-arrow-right-thin \")]),_c('span',{staticClass:\"font-weight-bold\",attrs:{\"data-cy\":(\"video-link-\" + (tutorial.text.split('.').slice(-1)))}},[_vm._v(\" \"+_vm._s(_vm.$t(tutorial.text))+\" \")]),_c('div',{staticStyle:{\"padding-left\":\"30px\"}},[_c('v-icon',{staticClass:\"video-detail\",attrs:{\"small\":\"\",\"color\":\"success\"}},[_vm._v(\" mdi-video \")]),_c('span',{staticClass:\"video-detail\",staticStyle:{\"margin-left\":\"10px\",\"color\":\"#46A55C\"}},[_vm._v(\" \"+_vm._s(_vm.$t(tutorial.duration))+\" \"+_vm._s(_vm.$t('common.minute'))+\" \")])],1)],1):_vm._e()])}),1)],1)],1)],1)],1)],1)],1)],1)],1),_c('core-dialog',{attrs:{\"width\":\"1200px\",\"persistent\":\"\"},on:{\"click:cancel\":function($event){_vm.tutorialDialog.isActive = false;_vm.isVideoLoaderShow = true}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{attrs:{\"data-cy\":\"video-title\"}},[_vm._v(_vm._s(_vm.$t(_vm.tutorialDialog.tutorial.text)))])]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-center\"},[(_vm.tutorialDialog.isActive)?_c('video',{staticClass:\"d-flex\",staticStyle:{\"min-height\":\"500px\"},attrs:{\"data-cy\":\"video-viewer\",\"controls\":\"\",\"preload\":\"auto\",\"autoplay\":\"\",\"width\":\"90%\",\"height\":\"60%\"}},[_c('source',{attrs:{\"src\":_vm.$t(_vm.tutorialDialog.tutorial.link),\"type\":\"video/mp4\"}})]):_vm._e()])]},proxy:true}]),model:{value:(_vm.tutorialDialog.isActive),callback:function ($$v) {_vm.$set(_vm.tutorialDialog, \"isActive\", $$v)},expression:\"tutorialDialog.isActive\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n methods: {\n convertCustomerNumberToInt(customerNumber) {\n let intValue = 0;\n let multiplier = 1; // To keep track of the position value\n\n // Iterate over the characters of the customer number from right to left\n for (let i = customerNumber.length - 1; i >= 0; i--) {\n const char = customerNumber[i];\n\n // Check if the character is a digit\n if (/[0-9]/.test(char)) {\n // Convert the character to its numeric value and update the integer value\n intValue += parseInt(char, 10) * multiplier;\n // Update the multiplier for the next position\n multiplier *= 10;\n } else {\n // Stop iteration if a non-numeric character is encountered\n break;\n }\n }\n\n return intValue;\n }\n },\n};\n","<template>\n <core-main>\n <template v-slot:title>\n {{ $t('form.dashboard.name') }}\n </template>\n <v-container fluid>\n <v-row>\n <v-col cols=\"12\">\n <v-card elevation=\"0\" class=\"pa-2 pb-0 pl-10 transparent\">\n <v-card-text>\n <v-row>\n <v-col>\n <p\n :class=\"['text-h3', {loading :!user.firstName}]\"\n data-cy=\"greeting-value\"\n style=\"color: #afa9a9\"\n >\n {{ $t('views.dashboard.greeting', {name: user.firstName}) }}\n </p>\n </v-col>\n </v-row>\n </v-card-text>\n </v-card>\n </v-col>\n <v-col cols=\"12\">\n <div class=\"ml-10 pa-2 pt-0\">\n <core-welcome-screen-upload-file-banner />\n </div>\n </v-col>\n <v-col v-if=\"showReferralBanner\" cols=\"12\">\n <div class=\"ml-10 pa-2 pt-0\">\n <core-welcome-screen-referral />\n </div>\n </v-col>\n <v-col v-if=\"showPromotionCountdownBanner\" cols=\"12\">\n <div class=\"ml-10 pa-2 pt-0\">\n <core-welcome-screen-promotion-countdown-banner :expiry-time=\"newSignUpPromoCode[0].ExpiryDate\" />\n </div>\n </v-col>\n <v-col cols=\"12\">\n <v-row>\n <div class=\"ml-12 pl-3 pa-2 text-h5 font-weight-bold text-capitalize\" style=\"color: #2E343B;\">\n {{ $t('views.dashboard.simpleProcessLabel') }}\n </div>\n <img\n class=\"pl-4 pr-2\"\n style=\"vertical-align:middle\"\n src=\"/img/welcomeScreen/icon-bulb.svg\"\n >\n <div class=\"pt-4 text-body-2 font-weight-bold\">\n {{ $t('views.dashboard.assistanceLabel1') }}\n <a href=\"#videoTutorials\" @click=\"expandVideoTutorials = 0;\">\n {{ $t('views.dashboard.assistanceLabel2') }}\n </a>\n {{ $t('views.dashboard.assistanceLabel3') }}\n {{ $t('views.dashboard.assistanceLabel4') }}\n {{ $t('views.dashboard.assistanceLabel5') }}\n <a href=\"mailto:feedback@komacut.com\">\n {{ $t('views.dashboard.assistanceLabel6') }}\n </a>\n </div>\n </v-row>\n </v-col>\n <v-col cols=\"12\">\n <div class=\"ml-10 pa-2 pt-0\">\n <core-welcome-screen-order-steps-banner />\n </div>\n </v-col>\n <v-col cols=\"11\">\n <v-expansion-panels class=\"ml-10 pa-2 pt-0\">\n <v-expansion-panel>\n <v-expansion-panel-header class=\"elevation-0\" style=\"background-color: #F9F9F9;\">\n <div class=\"text-h6\">\n {{ $t('views.dashboard.whatWeCanDoForYou') }}\n </div>\n <template v-slot:actions>\n <v-icon color=\"#46A55C\">\n $expand\n </v-icon>\n </template>\n </v-expansion-panel-header>\n <v-expansion-panel-content>\n <v-card elevation=\"0\" class=\"mb-5 pa-2 pl-10 transparent\">\n <v-card-text>\n <v-row class=\"mt-2\">\n <v-col class=\"px-0\" cols=\"2\">\n <div class=\"d-flex flex-column align-center\" style=\"width: 100px\">\n <img\n src=\"/img/laserCuttingIcon.svg\"\n width=\"70\"\n height=\"70\"\n >\n <span class=\"font-weight-bold\">\n {{ $t('views.dashboard.manufacturingProcesses.laserCutting') }}\n </span>\n </div>\n </v-col>\n\n <v-col cols=\"3\">\n <div class=\"d-flex flex-column align-center\" style=\"width: 180px\">\n <img\n src=\"/img/threadingIcon.svg\"\n width=\"70\"\n height=\"70\"\n >\n <span class=\"font-weight-bold\">\n {{ $t('views.dashboard.manufacturingProcesses.threadingChamfering') }}\n </span>\n </div>\n </v-col>\n\n <v-col cols=\"3\">\n <div class=\"d-flex flex-column align-center\" style=\"width: 150px\">\n <img\n src=\"img/bendingIcon.svg\"\n width=\"70\"\n height=\"70\"\n >\n <span class=\"font-weight-bold\">\n {{ $t('views.dashboard.manufacturingProcesses.sheetMetalBending') }}\n </span>\n </div>\n </v-col>\n\n <v-col cols=\"3\">\n <div class=\"d-flex flex-column align-center\" style=\"width: 130px\">\n <img\n src=\"/img/surfaceFinishingIcon.svg\"\n width=\"70\"\n height=\"70\"\n >\n <span class=\"font-weight-bold\">\n {{ $t('views.dashboard.manufacturingProcesses.surfaceFinishing') }}\n </span>\n </div>\n </v-col>\n <v-col class=\"px-0\" cols=\"2\">\n <div class=\"d-flex flex-column align-center\" style=\"width: 100px\">\n <img\n src=\"/img/icon-cnc-urning2@1x.svg\"\n width=\"70\"\n height=\"70\"\n >\n <span class=\"font-weight-bold\">\n {{ $t('views.dashboard.manufacturingProcesses.cncTurning') }}\n </span>\n </div>\n </v-col>\n <v-col class=\"px-0\" cols=\"3\">\n <div class=\"d-flex flex-column align-center\" style=\"width: 200px\">\n <img\n src=\"/img/icon-bulk@1x.svg\"\n width=\"70\"\n height=\"70\"\n >\n <span class=\"font-weight-bold\">\n {{ $t('views.dashboard.manufacturingProcesses.hardwareBulk') }}\n </span>\n </div>\n </v-col>\n <v-col class=\"px-0\" cols=\"3\">\n <div class=\"d-flex flex-column align-center\" style=\"width: 170px\">\n <img\n src=\"/img/icon-custom@1x.svg\"\n width=\"70\"\n height=\"70\"\n >\n <span class=\"font-weight-bold\">\n {{ $t('views.dashboard.manufacturingProcesses.hardwareCustomBags') }}\n </span>\n </div>\n </v-col>\n <v-col class=\"px-0 ml-n4\" cols=\"3\">\n <div class=\"d-flex flex-column align-center\" style=\"width: 180px\">\n <img\n src=\"/img/laserEngravingIcon.svg\"\n width=\"70\"\n height=\"70\"\n >\n <span class=\"font-weight-bold\">\n {{ $t('views.dashboard.manufacturingProcesses.laserEngraving') }}\n </span>\n </div>\n </v-col>\n </v-row>\n </v-card-text>\n </v-card>\n </v-expansion-panel-content>\n </v-expansion-panel>\n </v-expansion-panels>\n </v-col>\n <v-col cols=\"11\">\n <v-expansion-panels v-model=\"expandVideoTutorials\" class=\"ml-10 pa-2 pt-0\">\n <v-expansion-panel v-model=\"expandVideoTutorials\">\n <v-expansion-panel-header class=\"elevation-0\" style=\"background-color: #F9F9F9;\">\n <div id=\"videoTutorials\" class=\"text-h6\">\n {{ $t('views.dashboard.videoTutorials') }}\n </div>\n <template v-slot:actions>\n <v-icon color=\"#46A55C\">\n $expand\n </v-icon>\n </template>\n </v-expansion-panel-header>\n <v-expansion-panel-content>\n <v-card elevation=\"0\" class=\"pa-2 transparent\">\n <v-card-text>\n <v-row style=\"max-width: 1100px\">\n <v-col\n v-for=\"tutorial in tutorials\"\n :key=\"tutorial.text\"\n cols=\"6\"\n >\n <div\n v-if=\"tutorial.display\"\n class=\"tutorials-container py-0 ma-0\"\n style=\"cursor: pointer;\"\n @click=\"tutorialDialog.tutorial = tutorial; tutorialDialog.isActive = true;\"\n >\n <v-icon\n left\n medium\n grey\n active-class=\"active-filter\"\n >\n mdi-arrow-right-thin\n </v-icon>\n <span\n class=\"font-weight-bold\"\n :data-cy=\"`video-link-${tutorial.text.split('.').slice(-1)}`\"\n >\n {{ $t(tutorial.text) }}\n </span>\n <div\n style=\"padding-left: 30px;\"\n >\n <v-icon\n small\n class=\"video-detail\"\n color=\"success\"\n >\n mdi-video\n </v-icon>\n <span\n class=\"video-detail\"\n style=\"margin-left: 10px;color:#46A55C;\"\n >\n {{ $t(tutorial.duration) }} {{ $t('common.minute') }}\n </span>\n </div>\n </div>\n </v-col>\n </v-row>\n </v-card-text>\n </v-card>\n </v-expansion-panel-content>\n </v-expansion-panel>\n </v-expansion-panels>\n </v-col>\n </v-row>\n </v-container>\n\n <core-dialog\n v-model=\"tutorialDialog.isActive\"\n width=\"1200px\"\n persistent\n @click:cancel=\"tutorialDialog.isActive = false;isVideoLoaderShow = true\"\n >\n <template #title>\n <span data-cy=\"video-title\">{{ $t(tutorialDialog.tutorial.text) }}</span>\n </template>\n <template #content>\n <div class=\"d-flex justify-center\">\n <video\n v-if=\"tutorialDialog.isActive\"\n style=\"min-height: 500px\"\n data-cy=\"video-viewer\"\n class=\"d-flex\"\n controls\n preload=\"auto\"\n autoplay\n width=\"90%\"\n height=\"60%\"\n >\n <source :src=\"$t(tutorialDialog.tutorial.link)\" type=\"video/mp4\">\n </video>\n </div>\n </template>\n </core-dialog>\n </core-main>\n</template>\n\n<script>\nimport { mapState } from 'vuex';\nimport { models } from 'feathers-vuex';\n\nimport companyNumberToInt from '@/mixins/companyNumberToInt';\n\nexport default {\n mixins: [companyNumberToInt],\n data: () => ({\n isVideoLoaderShow: true,\n tutorialDialog: {\n isActive: false,\n tutorial: null,\n },\n expandVideoTutorials: undefined,\n }),\n computed: {\n ...mapState('auth', [\n 'user',\n ]),\n company: () => models.api.Company.getFromStore(0),\n User: () => models.api.User,\n currentUser: vm => vm.User.getFromStore(vm.user._id),\n showReferralBanner: vm => (\n vm.company\n && vm.company.CurrCode === 'USD'\n && (vm.convertCustomerNumberToInt(vm.company.CustNum) >= 8)\n ),\n newSignUpPromoCode: () => models.api.PromoCode.findInStore({ query: { PromoId: 'NewSignup10' } }).data,\n showPromotionCountdownBanner: vm => (\n vm.company\n && vm.company.CurrCode === 'USD'\n && vm.newSignUpPromoCode.length\n ),\n tutorials: () => [\n {\n icon: 'mdi-pencil',\n text: 'views.dashboard.getInstantQuote',\n link: 'views.dashboard.getInstantQuoteVideoUrl',\n duration: '1:45',\n display: true,\n },\n\n {\n icon: 'mdi-currency-usd',\n text: 'views.dashboard.reviewCosts',\n link: 'views.dashboard.reviewCostsVideoUrl',\n duration: '1:44',\n display: true,\n },\n {\n icon: 'mdi-format-list-bulleted',\n text: 'views.dashboard.requestForQuote',\n link: 'views.dashboard.requestForQuoteVideoUrl',\n duration: '1:13',\n display: true,\n },\n {\n icon: 'mdi-bookmark-outline',\n text: 'views.dashboard.createPartsCatalog',\n link: 'views.dashboard.createPartsCatalogVideoUrl',\n duration: '1:20',\n display: true,\n },\n {\n icon: 'mdi-ballot',\n text: 'views.dashboard.placeOrder',\n link: 'views.dashboard.placeOrderVideoUrl',\n duration: '1:29',\n display: true,\n },\n {\n icon: 'mdi-tune',\n text: 'views.dashboard.updateAccountPreferences',\n link: 'views.dashboard.updateAccountPreferencesVideoUrl',\n duration: '1:31',\n display: true,\n },\n\n {\n icon: 'mdi-tune',\n text: 'Hardware bulk',\n link: 'views.dashboard.updateAccountPreferencesVideoUrl',\n duration: '1:31',\n display: false,\n },\n {\n icon: 'mdi-tune',\n text: 'Hardware Custom Bag',\n link: 'views.dashboard.updateAccountPreferencesVideoUrl',\n duration: '1:31',\n display: false,\n },\n ],\n },\n mounted() {\n models.api.PromoCode.find();\n }\n};\n</script>\n<style>\n.tutorials-container:hover {\n background-color: #fff;\n color: #46A55C;\n}\n\n.tutorials-container:hover .video-detail {\n color: rgba(0, 0, 0, 0.54) !important\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=766198e7&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Dashboard.vue?vue&type=style&index=0&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 null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VCol,VContainer,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height px-5\",staticStyle:{\"min-width\":\"1190px\",\"max-width\":\"1400px\",\"height\":\"100%\"}},[_c('v-row',{staticClass:\"fill-height\"},[_c('v-col',{staticClass:\"rounded-xl pa-0\",staticStyle:{\"z-index\":\"99\",\"background-color\":\"white\",\"height\":\"100%\",\"min-width\":\"550px\"},attrs:{\"cols\":\"6\"}},[_c('v-row',{staticClass:\"d-flex justify-space-between align-center\"},[_c('img',{staticClass:\"ml-8 mt-4\",attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"160px\"}}),_c('v-select',{staticClass:\"mr-8 mt-2\",staticStyle:{\"max-width\":\"130px\"},attrs:{\"value\":_vm.locale,\"items\":_vm.langList,\"item-value\":\"value\",\"item-text\":\"label\",\"background-color\":\"transparent\",\"solo\":\"\",\"flat\":\"\",\"hide-details\":\"\"},on:{\"change\":function (currentLang) {_vm.setLocale({ $i18n: _vm.i18n, locale: currentLang });}},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_c('v-icon',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\"}},[_vm._v(\" mdi-web \")]),_c('span',{staticStyle:{\"color\":\"#2c984e\"}},[_vm._v(_vm._s(data.item.label))])]}}])})],1),_c('v-row',{staticClass:\"mt-16\"},[_c('v-col',{staticClass:\"d-flex flex-column align-start mt-16\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('span',{staticClass:\"text-h5 font-weight-bold my-10 mb-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.login.login'))+\" \")]),_c('span',{staticClass:\"text--secondary caption\",staticStyle:{\"color\":\"black !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.login.loginMessage'))+\" \")]),_c('v-form',{ref:\"loginForm\",staticClass:\"mt-6\",staticStyle:{\"width\":\"100%\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.loginSubmit.apply(null, arguments)}},model:{value:(_vm.isLoginFormValid),callback:function ($$v) {_vm.isLoginFormValid=$$v},expression:\"isLoginFormValid\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('common.email'),\"rules\":[_vm.isRequired, _vm.isEmail],\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\",\"data-cy\":\"email-login\"},model:{value:(_vm.user._id),callback:function ($$v) {_vm.$set(_vm.user, \"_id\", $$v)},expression:\"user._id\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('views.login.password'),\"append-icon\":_vm.isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off',\"type\":_vm.isPasswordVisible ? 'text' : 'password',\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\",\"required\":\"\",\"hide-details\":\"\",\"data-cy\":\"password-login\"},on:{\"click:append\":function($event){_vm.isPasswordVisible = !_vm.isPasswordVisible}},model:{value:(_vm.user.password),callback:function ($$v) {_vm.$set(_vm.user, \"password\", $$v)},expression:\"user.password\"}}),_c('div',{staticClass:\"d-flex justify-end mb-6 mt-1\"},[_c('router-link',{staticClass:\"caption text-decoration-none\",attrs:{\"to\":\"/forgotten_password\",\"data-cy\":\"forgotten-password-login\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.login.forgotPassword'))+\" \")])],1),_c('v-btn',{attrs:{\"loading\":_vm.isAuthenticatePending,\"disabled\":!_vm.isLoginFormValid || _vm.isAuthenticatePending,\"color\":\"success\",\"type\":\"submits\",\"large\":\"\",\"block\":\"\",\"data-cy\":\"submit-login\"}},[(_vm.isAuthenticated)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.login.login'))+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.login.login'))+\" \")])])],1)],1)],1),_c('p',{staticClass:\"text--secondary caption text-center\",staticStyle:{\"color\":\"black !important\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('views.login.loginFooter'))}}),_c('p',{staticClass:\"text--secondary caption text-center\",staticStyle:{\"margin-top\":\"300px !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.footerRight'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/about-us/contact-us/\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.contactUs')))])])],1),_c('v-col',{staticClass:\"pl-0 d-flex justify-center align-center\",attrs:{\"cols\":\"6\"}},[_c('core-promotional')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container class=\"fill-height px-5\" style=\"min-width: 1190px; max-width: 1400px; height: 100%\">\n <v-row class=\"fill-height\">\n <v-col\n class=\"rounded-xl pa-0\"\n style=\"z-index:99; background-color: white;height: 100%; min-width: 550px;\"\n cols=\"6\"\n >\n <v-row class=\"d-flex justify-space-between align-center\">\n <img\n class=\"ml-8 mt-4\"\n src=\"/img/Komacut-logo.svg\"\n width=\"160px\"\n >\n <v-select\n style=\"max-width: 130px;\"\n class=\"mr-8 mt-2\"\n :value=\"locale\"\n :items=\"langList\"\n item-value=\"value\"\n item-text=\"label\"\n background-color=\"transparent\"\n solo\n flat\n hide-details\n @change=\"(currentLang) => {setLocale({ $i18n: i18n, locale: currentLang });} \"\n >\n <template slot=\"selection\" slot-scope=\"data\">\n <v-icon class=\"mr-2\" color=\"primary\">\n mdi-web\n </v-icon>\n <span style=\"color: #2c984e;\">{{ data.item.label }}</span>\n </template>\n </v-select>\n </v-row>\n\n <v-row class=\"mt-16\">\n <v-col\n offset=\"2\"\n cols=\"8\"\n class=\"d-flex flex-column align-start mt-16\"\n >\n <span class=\"text-h5 font-weight-bold my-10 mb-0\">\n {{ $t('views.login.login') }}\n </span>\n <span class=\"text--secondary caption\" style=\"color: black !important;\">\n {{ $t('views.login.loginMessage') }}\n </span>\n\n <v-form\n ref=\"loginForm\"\n v-model=\"isLoginFormValid\"\n class=\"mt-6\"\n style=\"width: 100%;\"\n @submit.prevent=\"loginSubmit\"\n >\n <v-text-field\n v-model=\"user._id\"\n :label=\"$t('common.email')\"\n :rules=\"[isRequired, isEmail]\"\n outlined\n dense\n autofocus\n data-cy=\"email-login\"\n />\n\n <v-text-field\n v-model=\"user.password\"\n :label=\"$t('views.login.password')\"\n :append-icon=\"isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off'\"\n :type=\"isPasswordVisible ? 'text' : 'password'\"\n :rules=\"[isRequired]\"\n outlined\n dense\n required\n hide-details\n data-cy=\"password-login\"\n @click:append=\"isPasswordVisible = !isPasswordVisible\"\n />\n\n <div class=\"d-flex justify-end mb-6 mt-1\">\n <router-link to=\"/forgotten_password\" data-cy=\"forgotten-password-login\" class=\"caption text-decoration-none\">\n {{ $t('views.login.forgotPassword') }}\n </router-link>\n </div>\n\n <v-btn\n :loading=\"isAuthenticatePending\"\n :disabled=\"!isLoginFormValid || isAuthenticatePending\"\n color=\"success\"\n type=\"submits\"\n large\n block\n data-cy=\"submit-login\"\n >\n <span v-if=\"isAuthenticated\">\n {{ $t('views.login.login') }}\n </span>\n <!-- Not sure if this is ever rendered??? -->\n <span v-else>\n {{ $t('views.login.login') }}\n </span>\n </v-btn>\n </v-form>\n </v-col>\n </v-row>\n <p\n class=\"text--secondary caption text-center\"\n style=\"color: black !important;\"\n v-html=\"$t('views.login.loginFooter')\"\n />\n <p class=\"text--secondary caption text-center\" style=\"margin-top: 300px !important\">\n {{ $t('common.footerRight') }} <a href=\"https://komacut.com/about-us/contact-us/\" class=\"text-decoration-none\"> {{ $t('common.contactUs') }}</a>\n </p>\n </v-col>\n <v-col cols=\"6\" class=\"pl-0 d-flex justify-center align-center\">\n <core-promotional />\n </v-col>\n </v-row>\n </v-container>\n</template>\n\n<script>\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport FormRules from '@/mixins/form-rules';\nimport i18n from '@/plugins/i18n';\nimport { resetStores } from '../store';\nimport { LEVEL } from '../utils/log';\n\nexport default {\n name: 'login',\n\n mixins: [\n FormRules,\n ],\n\n data() {\n return {\n langList: [\n { label: 'English', value: 'en-US' },\n { label: 'ä¸æ–‡', value: 'cn' }\n ],\n i18n,\n authenticating: false,\n user: {\n _id: '',\n password: '',\n },\n isPasswordVisible: false,\n isLoginFormValid: false,\n };\n },\n\n computed: {\n ...mapState('auth', [\n 'isAuthenticatePending',\n ]),\n ...mapState('auth', { loggedInUser: 'user' }),\n ...mapState('app', ['locale']),\n ...mapGetters('auth', [\n 'isAuthenticated',\n ]),\n\n ...mapGetters('app', [\n 'appVersion'\n ]),\n\n },\n\n mounted() {\n resetStores();\n const navLang = navigator.language;\n let currentLang = navLang.split('-')[0];\n // The standard for Chinese localization is not cn but zh cf :\n // http:// www.lingoes.net/en/translator/langcode.htm\n currentLang = (currentLang === 'zh') ? 'cn' : 'en-US';\n this.setLocale({ $i18n: this.i18n, locale: currentLang });\n },\n\n methods: {\n ...mapActions('auth', { secureLogin: 'login' }),\n ...mapActions('app', ['pushSnack', 'setLocale']),\n\n async loginSubmit() {\n try {\n this.isLoginFormValid = this.$refs.loginForm.validate();\n\n localStorage.removeItem('feathers-jwt');\n\n await this.secureLogin({ user: this.user });\n // window.$chatwoot.reset();\n\n this.pushSnack({\n snack: { message: this.$t('views.login.loginSuccess') },\n level: LEVEL.SUCCESS,\n });\n if (this.loggedInUser.rights.supportUser) {\n this.$router.push('/support');\n } else {\n this.$router.push('/');\n }\n } catch (e) {\n console.error(e);\n this.pushSnack({\n snack: { message: e.code === 401 ? this.$t('views.login.loginFailure') : e.message },\n level: LEVEL.ERROR,\n });\n }\n },\n },\n};\n</script>\n\n<style scoped >\n.login-card {\n z-index: 5;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=40792b12&scoped=true&\"\nimport script from \"./Login.vue?vue&type=script&lang=js&\"\nexport * from \"./Login.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Login.vue?vue&type=style&index=0&id=40792b12&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 \"40792b12\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VContainer,VForm,VIcon,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('core-home-hero',[_c('v-row',{staticClass:\"fill-height\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-card',{staticClass:\"logout-card\",attrs:{\"color\":\"transparent\",\"flat\":\"\"}},[_c('v-card-title',{attrs:{\"align\":\"center\"}},[_c('span',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"views.logout.title\"))+\" \")])]),_c('v-card-text',[(_vm.working)?_c('v-progress-circular',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"indeterminate\":\"\"}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.working ? _vm.$t(\"views.logout.loggingOut\") : _vm.$t(\"views.logout.loggedOut\"))+\" \")],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <core-home-hero>\n <v-row\n class=\"fill-height\"\n align=\"center\"\n justify=\"center\"\n >\n <v-card\n class=\"logout-card\"\n color=\"transparent\"\n flat\n >\n <v-card-title align=\"center\">\n <span class=\"title\">\n {{ $t(\"views.logout.title\") }}\n </span>\n </v-card-title>\n\n <v-card-text>\n <v-progress-circular\n v-if=\"working\"\n class=\"mr-2\"\n color=\"primary\"\n indeterminate\n />\n\n {{ working ? $t(\"views.logout.loggingOut\") : $t(\"views.logout.loggedOut\") }}\n </v-card-text>\n </v-card>\n </v-row>\n </core-home-hero>\n</template>\n\n<script>\nimport { mapActions } from 'vuex';\n\nexport default {\n name: 'Logout',\n\n data() {\n return {\n working: false,\n };\n },\n\n mounted() {\n setTimeout(async () => {\n this.working = true;\n await this.logout();\n // window.$chatwoot.reset();\n this.working = false;\n\n localStorage.removeItem('feathers-jwt');\n this.$router.go('/');\n }, 1000);\n },\n\n methods: {\n ...mapActions('auth', ['logout'])\n }\n};\n</script>\n\n<style scoped>\n.logout-card {\n z-index: 5;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Logout.vue?vue&type=template&id=3056b065&scoped=true&\"\nimport script from \"./Logout.vue?vue&type=script&lang=js&\"\nexport * from \"./Logout.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Logout.vue?vue&type=style&index=0&id=3056b065&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 \"3056b065\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VCardTitle,VProgressCircular,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticStyle:{\"margin-top\":\"25px\",\"width\":\"900px\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('div',{staticClass:\"text-center\"},[_c('p',{staticClass:\"display-1 mb-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.welcomeToKomacut'))+\" \")]),_c('p',{staticClass:\"mb-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.enterInformation'))+\" \")])])]),_c('v-form',{ref:\"form\",model:{value:(_vm.validation),callback:function ($$v) {_vm.validation=$$v},expression:\"validation\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"data-cy\":\"email-input\",\"label\":_vm.$t('common.email'),\"disabled\":_vm.invitationMail,\"placeholder\":_vm.$t('views.signUp.sameEmailAsInvited'),\"rules\":[_vm.isRequired],\"required\":\"\",\"hide-details\":\"\"},model:{value:(_vm.userData._id),callback:function ($$v) {_vm.$set(_vm.userData, \"_id\", $$v)},expression:\"userData._id\"}})],1)],1),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"offset\":\"1\",\"cols\":\"10\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('views.signUp.password'),\"append-icon\":_vm.isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off',\"type\":_vm.isPasswordVisible ? 'text' : 'password',\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\",\"required\":\"\",\"hide-details\":\"\",\"data-cy\":\"password-input\"},on:{\"click:append\":function($event){_vm.isPasswordVisible = !_vm.isPasswordVisible}},model:{value:(_vm.userData.password),callback:function ($$v) {_vm.$set(_vm.userData, \"password\", $$v)},expression:\"userData.password\"}})],1),_c('v-col',{staticClass:\"pa-0 align-center\",attrs:{\"cols\":\"1\"}},[_c('div',{staticClass:\"text-center mt-7\",staticStyle:{\"width\":\"100px\"}},[_c('p',{staticClass:\"text-center caption \",staticStyle:{\"margin\":\"0\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.strength'))+\" \")]),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"dark\":\"\",\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-help-circle-outline \")])]}}])},[_c('p',[_vm._v(_vm._s(_vm.$t('views.resetPassword.mustContain')))]),_c('ul',[_c('li',[_vm._v(_vm._s(_vm.$t('views.resetPassword.minCharacters')))]),_c('li',[_vm._v(_vm._s(_vm.$t('views.resetPassword.oneLower')))]),_c('li',[_vm._v(_vm._s(_vm.$t('views.resetPassword.oneUpper')))]),_c('li',[_vm._v(_vm._s(_vm.$t('views.resetPassword.oneDigit')))]),_c('li',[_vm._v(_vm._s(_vm.$t('views.resetPassword.oneSpecial')))])])]),_vm._l((_vm.force),function(value){return _c('span',{key:value,staticClass:\"dot\",style:([ value < _vm.passwordStrength(_vm.userData.password) ? { 'background-color':_vm.getColor(_vm.passwordStrength(_vm.userData.password))} : { 'background-color':'#D4D8DC'}])})})],2)])],1),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-text-field',{attrs:{\"data-cy\":\"confirm-password-input\",\"label\":_vm.$t('views.signUp.confirmPassword'),\"append-icon\":_vm.isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off',\"type\":_vm.isPasswordVisible ? 'text' : 'password',\"rules\":[(_vm.userData.password === _vm.confirmPassword) || _vm.$t('views.signUp.passwordMustMatch')],\"outlined\":\"\",\"dense\":\"\",\"required\":\"\",\"hide-details\":\"\"},on:{\"click:append\":function($event){_vm.isPasswordVisible = !_vm.isPasswordVisible}},model:{value:(_vm.confirmPassword),callback:function ($$v) {_vm.confirmPassword=$$v},expression:\"confirmPassword\"}})],1)],1)],1),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-btn',{attrs:{\"loading\":_vm.statePending,\"disabled\":!_vm.isFormValid,\"color\":\"success\",\"type\":\"submits\",\"large\":\"\",\"block\":\"\",\"data-cy\":\"create-account-button\"},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.createAccount'))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container style=\"margin-top: 25px; width:900px\">\n <v-row justify=\"center\">\n <div class=\"text-center\">\n <p class=\"display-1 mb-4\">\n {{ $t('views.signUp.welcomeToKomacut') }}\n </p>\n\n <p class=\"mb-4\">\n {{ $t('views.signUp.enterInformation') }}\n </p>\n </div>\n </v-row>\n\n <v-form ref=\"form\" v-model=\"validation\">\n <v-row justify=\"center\">\n <v-col cols=\"10\">\n <v-text-field\n v-model=\"userData._id\"\n outlined\n dense\n data-cy=\"email-input\"\n :label=\"$t('common.email')\"\n :disabled=\"invitationMail\"\n :placeholder=\"$t('views.signUp.sameEmailAsInvited')\"\n :rules=\" [isRequired]\"\n required\n hide-details\n />\n </v-col>\n </v-row>\n\n <v-row justify=\"center\">\n <v-col\n offset=\"1\"\n cols=\"10\"\n >\n <v-text-field\n v-model=\"userData.password\"\n :label=\"$t('views.signUp.password')\"\n :append-icon=\"isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off'\"\n :type=\"isPasswordVisible ? 'text' : 'password'\"\n :rules=\"[isRequired]\"\n outlined\n dense\n required\n hide-details\n data-cy=\"password-input\"\n @click:append=\"isPasswordVisible = !isPasswordVisible\"\n />\n </v-col>\n <v-col cols=\"1\" class=\"pa-0 align-center\">\n <div class=\"text-center mt-7\" style=\"width: 100px\">\n <p class=\"text-center caption \" style=\"margin:0\">\n {{ $t('views.signUp.strength') }}\n </p>\n <v-tooltip bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon\n class=\"mr-2\"\n color=\"primary\"\n dark\n small\n v-bind=\"attrs\"\n v-on=\"on\"\n >\n mdi-help-circle-outline\n </v-icon>\n </template>\n <p>{{ $t('views.resetPassword.mustContain') }}</p>\n <ul>\n <li>{{ $t('views.resetPassword.minCharacters') }}</li>\n <li>{{ $t('views.resetPassword.oneLower') }}</li>\n <li>{{ $t('views.resetPassword.oneUpper') }}</li>\n <li>{{ $t('views.resetPassword.oneDigit') }}</li>\n <li>{{ $t('views.resetPassword.oneSpecial') }}</li>\n </ul>\n </v-tooltip>\n <span\n v-for=\"value in force\"\n :key=\"value\"\n class=\"dot\"\n :style=\"[ value < passwordStrength(userData.password) ? { 'background-color':getColor(passwordStrength(userData.password))} : { 'background-color':'#D4D8DC'}]\"\n />\n </div>\n </v-col>\n </v-row>\n\n <v-row justify=\"center\">\n <v-col\n cols=\"10\"\n >\n <v-text-field\n v-model=\"confirmPassword\"\n data-cy=\"confirm-password-input\"\n :label=\"$t('views.signUp.confirmPassword')\"\n :append-icon=\"isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off'\"\n :type=\"isPasswordVisible ? 'text' : 'password'\"\n :rules=\"[(userData.password === confirmPassword) || $t('views.signUp.passwordMustMatch')]\"\n outlined\n dense\n required\n hide-details\n @click:append=\"isPasswordVisible = !isPasswordVisible\"\n />\n </v-col>\n </v-row>\n </v-form>\n <v-row justify=\"center\">\n <v-col cols=\"10\">\n <v-btn\n :loading=\"statePending\"\n :disabled=\"!isFormValid\"\n color=\"success\"\n type=\"submits\"\n large\n block\n data-cy=\"create-account-button\"\n @click=\"submit\"\n >\n {{ $t('views.signUp.createAccount') }}\n </v-btn>\n </v-col>\n </v-row>\n </v-container>\n</template>\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapActions, mapState } from 'vuex';\nimport FormRules from '@/mixins/form-rules';\nimport i18n from '@/plugins/i18n';\nimport { LEVEL } from '../utils/log';\n\nconst { User } = models.api;\n\nexport default {\n name: 'OnBoarding',\n\n mixins: [\n FormRules,\n ],\n\n data() {\n return {\n force: [20, 40, 60, 80, 100],\n token: '',\n confirmPassword: '',\n isPasswordVisible: false,\n statePending: false,\n email: '',\n onBoardingUser: {},\n invitationMail: false,\n loading: false,\n confirmationPassword: '',\n validation: false,\n firstName: '',\n lastName: '',\n userData: {\n _id: '',\n FirstName: '',\n LastName: '',\n officePhone: '',\n password: '',\n ContactEmail: '',\n },\n };\n },\n\n computed: {\n ...mapState('app', ['locale']),\n isFormValid() {\n return this.validation && this.isPasswordValid;\n },\n isPasswordValid() {\n return this.passwordStrength(this.userData.password) >= 100;\n }\n },\n created() {\n const navLang = navigator.language;\n let currentLang = navLang.split('-')[0];\n // The standard for Chinese localization is not cn but zh cf :\n // http:// www.lingoes.net/en/translator/langcode.htm\n currentLang = (currentLang === 'zh') ? 'cn' : 'en-US';\n i18n.locale = currentLang;\n const { token, id, fn, ln } = this.$route.query;\n this.token = token;\n this.userData.lastName = fn;\n this.userData.firstName = ln;\n this.invitationMail = !!id;\n this.userData._id = id || '';\n },\n\n methods: {\n ...mapActions('app', ['pushSnack', 'setLocale']),\n getColor(force) {\n if (force >= 60 && force < 80) {\n return '#C77500';\n }\n if (force >= 80) {\n return '#036F35';\n }\n return '#B00020';\n },\n passwordStrength(pass) {\n let score = 0;\n if (!pass) {\n return score;\n }\n\n // award every unique letter until 5 repetitions\n const letters = {};\n for (let i = 0; i < pass.length; i++) {\n letters[pass[i]] = (letters[pass[i]] || 0) + 1;\n score += 5.0 / letters[pass[i]];\n }\n\n // bonus points for mixing it up\n const variations = {\n digits: /\\d/.test(pass),\n lower: /[a-z]/.test(pass),\n upper: /[A-Z]/.test(pass),\n nonWords: /\\W/.test(pass),\n };\n\n let variationCount = 0;\n // eslint-disable-next-line guard-for-in\n for (const check in variations) {\n variationCount += variations[check] === true ? 1 : 0;\n }\n score += (variationCount - 1) * 20;\n\n return parseInt(score, 10);\n },\n async invitationAccount(token) {\n this.statePending = true;\n try {\n await this.$feathers.service('authManagement').create({\n action: 'verifySignupSetPasswordLong',\n value: { token, password: this.userData.password }\n });\n\n // TODO logout & go to the login page or keep login & go to the dashboard\n await this.$store.dispatch('auth/logout');\n this.pushSnack({\n snack: { message: this.$t('views.signUp.signUpSuccessMessage') },\n level: LEVEL.SUCCESS,\n });\n\n this.statePending = false;\n this.$router.push('/login');\n } catch (error) {\n this.statePending = false;\n console.error('Error authenticating!', error);\n }\n },\n\n createUser() {\n this.statePending = true;\n this.userData.ContactEmail = this.userData._id;\n this.onBoardingUser = new User(this.userData);\n this.onBoardingUser.create().then(() => {\n this.statePending = false;\n });\n },\n\n onBoardingAccount() {\n if (this.token) {\n this.invitationAccount(this.token);\n } else {\n this.createUser();\n }\n },\n submit() {\n if (this.validation) {\n this.onBoardingAccount();\n } else {\n this.$refs.form.validate();\n }\n }\n },\n};\n</script>\n<style>\n.dot {\n height: 10px;\n width: 10px;\n background-color: #D4D8DC;\n border-radius: 50%;\n display: inline-block;\n margin-right: 5px;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnBoarding.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnBoarding.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OnBoarding.vue?vue&type=template&id=41a47efe&\"\nimport script from \"./OnBoarding.vue?vue&type=script&lang=js&\"\nexport * from \"./OnBoarding.vue?vue&type=script&lang=js&\"\nimport style0 from \"./OnBoarding.vue?vue&type=style&index=0&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 null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCol,VContainer,VForm,VIcon,VRow,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticStyle:{\"min-width\":\"1800px\"},attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"d-flex justify-center mt-16\"},[_c('img',{attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"200px\"}})]),_c('v-row',{staticClass:\"d-flex flex-column align-center justify-center\",staticStyle:{\"height\":\"50vh\"}},[(_vm.success)?_c('v-card',{staticStyle:{\"background-color\":\"transparent\"},attrs:{\"flat\":\"\"}},[_c('v-card-title',{staticClass:\"flex-column justify-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.title'))+\" \")]),_c('v-card-text',{staticClass:\"pa-5\",attrs:{\"align\":\"center\"}},[_c('p',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.thankYou'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.useTheLinkBelow'))+\" \")]),_c('v-card-actions',{staticClass:\"justify-center pa-5\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"depressed\":\"\"},on:{\"click\":function($event){return _vm.$router.push('/login')}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.goToLogin'))+\" \")])],1)],1):_c('v-card',{attrs:{\"color\":\"transparent\",\"flat\":\"\"}},[(_vm.accountAlreadyExist)?_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.alreadyVerified'))+\" \")]):_c('v-card-title',[_c('v-progress-circular',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"indeterminate\":\"\"}}),_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.verifying'))+\" \")],1),(_vm.accountAlreadyExist)?_c('v-card-actions',{staticClass:\"justify-center pa-5\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"depressed\":\"\"},on:{\"click\":function($event){return _vm.$router.push('/login')}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.goToLogin'))+\" \")])],1):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container fluid style=\"min-width: 1800px\">\n <div class=\"d-flex justify-center mt-16\">\n <img src=\"/img/Komacut-logo.svg\" width=\"200px\">\n </div>\n <v-row\n style=\"height: 50vh;\"\n class=\"d-flex flex-column align-center justify-center\"\n >\n <v-card\n v-if=\"success\"\n style=\"background-color: transparent;\"\n flat\n >\n <v-card-title class=\"flex-column justify-center\">\n {{ $t('views.accountActivation.title') }}\n </v-card-title>\n <v-card-text align=\"center\" class=\"pa-5\">\n <p class=\"text-center\">\n {{ $t('views.accountActivation.thankYou') }}\n </p>\n {{ $t('views.accountActivation.useTheLinkBelow') }}\n </v-card-text>\n <v-card-actions class=\"justify-center pa-5\">\n <v-btn color=\"primary\" depressed @click=\"$router.push('/login')\">\n {{ $t('views.accountActivation.goToLogin') }}\n </v-btn>\n </v-card-actions>\n </v-card>\n\n <v-card v-else color=\"transparent\" flat>\n <v-card-title v-if=\"accountAlreadyExist\">\n {{ $t('views.accountActivation.alreadyVerified') }}\n </v-card-title>\n <v-card-title v-else>\n <v-progress-circular\n class=\"mr-2\"\n color=\"primary\"\n indeterminate\n />\n {{ $t('views.accountActivation.verifying') }}\n </v-card-title>\n <v-card-actions v-if=\"accountAlreadyExist\" class=\"justify-center pa-5\">\n <v-btn color=\"primary\" depressed @click=\"$router.push('/login')\">\n {{ $t('views.accountActivation.goToLogin') }}\n </v-btn>\n </v-card-actions>\n </v-card>\n </v-row>\n </v-container>\n</template>\n\n<script>\nexport default {\n data() {\n return {\n success: false,\n accountAlreadyExist: false,\n };\n },\n mounted() {\n setTimeout(() => {\n this.verifyAccount();\n }, 1000);\n },\n methods: {\n async verifyAccount() {\n const { token } = this.$route.query;\n try {\n if (token) {\n await this.$feathers.service('authManagement').create({\n action: 'verifySignupLong',\n value: token\n });\n this.success = true;\n }\n } catch (e) {\n this.accountAlreadyExist = true;\n }\n }\n }\n};\n</script>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Confirmation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Confirmation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Confirmation.vue?vue&type=template&id=e6ad8ce2&\"\nimport script from \"./Confirmation.vue?vue&type=script&lang=js&\"\nexport * from \"./Confirmation.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VContainer,VProgressCircular,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height px-5\",staticStyle:{\"min-width\":\"1190px\",\"max-width\":\"1400px\",\"max-height\":\"100%\"}},[_c('v-row',{staticClass:\"fill-height\"},[_c('v-col',{staticClass:\"rounded-xl pa-0\",staticStyle:{\"z-index\":\"99\",\"background-color\":\"white\",\"height\":\"100%\",\"min-width\":\"550px\"},attrs:{\"cols\":\"6\"}},[_c('v-row',{staticClass:\"d-flex justify-space-between align-center\"},[_c('img',{staticClass:\"ml-8 mt-4\",attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"160px\"}}),_c('v-select',{staticClass:\"mr-8 mt-2\",staticStyle:{\"max-width\":\"130px\"},attrs:{\"value\":_vm.locale,\"items\":_vm.langList,\"item-value\":\"value\",\"item-text\":\"label\",\"background-color\":\"transparent\",\"solo\":\"\",\"flat\":\"\",\"hide-details\":\"\"},on:{\"change\":function (currentLang) {_vm.setLocale({ $i18n: _vm.i18n, locale: currentLang });}},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_c('v-icon',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\"}},[_vm._v(\" mdi-web \")]),_c('span',{staticStyle:{\"color\":\"#2c984e\"}},[_vm._v(_vm._s(data.item.label))])]}}])})],1),_c('v-row',{staticClass:\"mt-16\"},[_c('v-col',{staticClass:\"d-flex flex-column align-start mt-16\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('div',{staticClass:\"mt-16 d-flex justify-start\",staticStyle:{\"width\":\"100%\"}},[_c('v-btn',{staticClass:\"pl-0\",attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.$router.go(-1)}}},[_c('v-icon',[_vm._v(\"mdi-chevron-left\")]),_vm._v(\" \"+_vm._s(_vm.$t('common.backToLogin'))+\" \")],1)],1),_c('span',{staticClass:\"text-h5 font-weight-bold mt-8\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.forgottenPassword.forgotYourPassword'))+\" \")]),_c('span',{staticClass:\"text--secondary caption mt-1\",staticStyle:{\"color\":\"black !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.forgottenPassword.dontWorry'))+\" \")]),_c('v-form',{ref:\"loginForm\",staticClass:\"mt-6\",staticStyle:{\"width\":\"100%\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.emailSubmit.apply(null, arguments)}},model:{value:(_vm.isLoginFormValid),callback:function ($$v) {_vm.isLoginFormValid=$$v},expression:\"isLoginFormValid\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('common.email'),\"rules\":[_vm.isRequired],\"data-cy\":\"forgotten-password-email-input\",\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\"},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}}),_c('v-btn',{attrs:{\"color\":\"success\",\"type\":\"submits\",\"disabled\":_vm.isSendResetPwdPending,\"loading\":_vm.isSendResetPwdPending,\"data-cy\":\"reset-password-button\",\"large\":\"\",\"block\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.forgottenPassword.resetPassword'))+\" \")])],1)],1)],1),_c('p',{staticClass:\"text--secondary caption text-center\",staticStyle:{\"margin-top\":\"315px !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.footerRight'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/about-us/contact-us/\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.contactUs')))])])],1),_c('v-col',{staticClass:\"pl-0 d-flex justify-center align-center\",attrs:{\"cols\":\"6\"}},[_c('core-promotional')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container class=\"fill-height px-5\" style=\"min-width: 1190px; max-width: 1400px; max-height: 100%\">\n <v-row class=\"fill-height\">\n <v-col\n class=\"rounded-xl pa-0\"\n style=\"z-index:99; background-color: white;height: 100%; min-width: 550px;\"\n cols=\"6\"\n >\n <v-row class=\"d-flex justify-space-between align-center\">\n <img\n class=\"ml-8 mt-4\"\n src=\"/img/Komacut-logo.svg\"\n width=\"160px\"\n >\n <v-select\n style=\"max-width: 130px;\"\n class=\"mr-8 mt-2\"\n :value=\"locale\"\n :items=\"langList\"\n item-value=\"value\"\n item-text=\"label\"\n background-color=\"transparent\"\n solo\n flat\n hide-details\n @change=\"(currentLang) => {setLocale({ $i18n: i18n, locale: currentLang });} \"\n >\n <template slot=\"selection\" slot-scope=\"data\">\n <v-icon class=\"mr-2\" color=\"primary\">\n mdi-web\n </v-icon>\n <span style=\"color: #2c984e;\">{{ data.item.label }}</span>\n </template>\n </v-select>\n </v-row>\n <v-row class=\"mt-16\">\n <v-col\n offset=\"2\"\n cols=\"8\"\n class=\"d-flex flex-column align-start mt-16\"\n >\n <div style=\"width: 100%;\" class=\"mt-16 d-flex justify-start\">\n <v-btn\n class=\"pl-0\"\n color=\"primary\"\n text\n @click=\"$router.go(-1)\"\n >\n <v-icon>mdi-chevron-left</v-icon>\n {{ $t('common.backToLogin') }}\n </v-btn>\n </div>\n <span class=\"text-h5 font-weight-bold mt-8\">\n {{ $t('views.forgottenPassword.forgotYourPassword') }}\n </span>\n <span class=\"text--secondary caption mt-1\" style=\"color: black !important;\">\n {{ $t('views.forgottenPassword.dontWorry') }}\n </span>\n\n <v-form\n ref=\"loginForm\"\n v-model=\"isLoginFormValid\"\n style=\"width: 100%;\"\n class=\"mt-6\"\n @submit.prevent=\"emailSubmit\"\n >\n <v-text-field\n v-model=\"email\"\n :label=\"$t('common.email')\"\n :rules=\"[isRequired]\"\n data-cy=\"forgotten-password-email-input\"\n outlined\n dense\n autofocus\n />\n\n <v-btn\n color=\"success\"\n type=\"submits\"\n :disabled=\"isSendResetPwdPending\"\n :loading=\"isSendResetPwdPending\"\n data-cy=\"reset-password-button\"\n large\n block\n >\n {{ $t('views.forgottenPassword.resetPassword') }}\n </v-btn>\n </v-form>\n </v-col>\n </v-row>\n <p class=\"text--secondary caption text-center\" style=\"margin-top: 315px !important\">\n {{ $t('common.footerRight') }} <a href=\"https://komacut.com/about-us/contact-us/\" class=\"text-decoration-none\"> {{ $t('common.contactUs') }}</a>\n </p>\n </v-col>\n <v-col cols=\"6\" class=\"pl-0 d-flex justify-center align-center\">\n <core-promotional />\n </v-col>\n </v-row>\n </v-container>\n</template>\n\n<script>\n\nimport { mapActions, mapState } from 'vuex';\nimport FormRules from '@/mixins/form-rules';\nimport i18n from '@/plugins/i18n';\n\nexport default {\n name: 'login',\n\n mixins: [\n FormRules,\n ],\n\n data() {\n return {\n email: '',\n isLoginFormValid: false,\n isSendResetPwdPending: false,\n langList: [\n { label: 'English', value: 'en-US' },\n { label: 'ä¸æ–‡', value: 'cn' }\n ],\n i18n,\n };\n },\n\n computed: {\n ...mapState('app', ['locale']),\n },\n\n mounted() {\n const navLang = navigator.language;\n let currentLang = navLang.split('-')[0];\n // The standard for Chinese localization is not cn but zh cf :\n // http:// www.lingoes.net/en/translator/langcode.htm\n currentLang = (currentLang === 'zh') ? 'cn' : 'en-US';\n this.setLocale({ $i18n: this.i18n, locale: currentLang });\n },\n\n methods: {\n ...mapActions('app', ['pushSnack', 'setLocale']),\n async emailSubmit() {\n try {\n this.isSendResetPwdPending = true;\n await this.$feathers.service('authManagement').create({\n action: 'sendResetPwd',\n value: {\n _id: this.email,\n }\n });\n this.isSendResetPwdPending = false;\n this.$router.push('/resetpassword_send_email');\n } catch (e) {\n console.error(e);\n }\n },\n },\n};\n</script>\n\n<style scoped>\n.login-card {\n z-index: 5;\n}\n\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgottenPassword.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgottenPassword.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ForgottenPassword.vue?vue&type=template&id=282c8aed&scoped=true&\"\nimport script from \"./ForgottenPassword.vue?vue&type=script&lang=js&\"\nexport * from \"./ForgottenPassword.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ForgottenPassword.vue?vue&type=style&index=0&id=282c8aed&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 \"282c8aed\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VContainer,VForm,VIcon,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height px-5\",staticStyle:{\"min-width\":\"1190px\",\"max-width\":\"1400px\",\"max-height\":\"100%\"}},[_c('v-form',{ref:\"form\",staticClass:\"fill-height\",staticStyle:{\"width\":\"100%\"},model:{value:(_vm.validation),callback:function ($$v) {_vm.validation=$$v},expression:\"validation\"}},[_c('v-row',{staticClass:\"fill-height\"},[_c('v-col',{staticClass:\"rounded-xl\",staticStyle:{\"z-index\":\"99\",\"background-color\":\"white\",\"height\":\"100%\",\"min-width\":\"550px\"},attrs:{\"cols\":\"6\"}},[_c('v-row',{staticClass:\"mb-5 mt-10\"},[_c('v-col',{staticClass:\"d-flex flex-column align-center\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('img',{attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"180px\"}}),_c('span',{staticClass:\"text-h5 font-weight-bold mt-8\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.changePassword'))+\" \")]),_c('span',{staticClass:\"mt-5\"},[_vm._v(_vm._s(_vm.$t('views.resetPassword.pleaseEnterPW')))])])],1),_c('v-row',[_c('v-col',{staticClass:\"mt-16\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('views.signUp.password'),\"append-icon\":_vm.isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off',\"type\":_vm.isPasswordVisible ? 'text' : 'password',\"rules\":[function (v) { return (v && v.length >= 8); } ,\n function (v) { return /(?=.*[A-Z])/.test(v); } ,\n function (v) { return /(?=.*\\d)/.test(v); } ,\n function (v) { return /([!@$%])/.test(v); }],\"data-cy\":\"change-password-input\",\"outlined\":\"\",\"dense\":\"\",\"required\":\"\",\"hide-details\":\"\"},on:{\"click:append\":function($event){_vm.isPasswordVisible = !_vm.isPasswordVisible}},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('p',{staticClass:\"ma-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.mustContain'))+\" \")]),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': _vm.password.length >= 8 }},[(_vm.password.length >= 8)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.minCharacters'))+\" \")],1),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': /(?=.*[a-z])/.test(_vm.password)}},[(/(?=.*[a-z])/.test(_vm.password))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.oneLower'))+\" \")],1),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': /(?=.*[A-Z])/.test(_vm.password) }},[(/(?=.*[A-Z])/.test(_vm.password))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.oneUpper'))+\" \")],1),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': /(?=.*\\d)/.test(_vm.password) }},[(/(?=.*\\d)/.test(_vm.password))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.oneDigit'))+\" \")],1),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': /([@%+\\\\/'!#$^?:,(){}\\[\\]~`\\-_.])/.test(_vm.password) }},[(/([!@$%])/.test(_vm.password))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.oneSpecial'))+\" \")],1)])],1),_c('v-row',[_c('v-col',{attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('views.signUp.confirmPassword'),\"append-icon\":_vm.isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off',\"type\":_vm.isPasswordVisible ? 'text' : 'password',\"rules\":[(_vm.password === _vm.confirmPassword) || _vm.$t('views.signUp.passwordMustMatch')],\"outlined\":\"\",\"dense\":\"\",\"required\":\"\",\"data-cy\":\"change-confirm-password-input\",\"hide-details\":\"\"},on:{\"click:append\":function($event){_vm.isPasswordVisible = !_vm.isPasswordVisible}},model:{value:(_vm.confirmPassword),callback:function ($$v) {_vm.confirmPassword=$$v},expression:\"confirmPassword\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-btn',{attrs:{\"disabled\":!_vm.isFormValid || _vm.isResetPwdLongPending,\"color\":\"success\",\"large\":\"\",\"block\":\"\",\"data-cy\":\"change-password-button\",\"loading\":_vm.isResetPwdLongPending},on:{\"click\":_vm.passwordSubmit}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.changePassword'))+\" \")])])],1),_c('v-col',{attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('p',{staticClass:\"text--secondary caption\",staticStyle:{\"position\":\"relative\",\"top\":\"190px\",\"left\":\"40px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.footerRight'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/about-us/contact-us/\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.contactUs')))])])])],1)],1),_c('v-col',{staticClass:\"pl-0 d-flex justify-center align-center\",attrs:{\"cols\":\"6\"}},[_c('core-promotional')],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container class=\"fill-height px-5\" style=\"min-width: 1190px; max-width: 1400px; max-height: 100%\">\n <v-form\n ref=\"form\"\n v-model=\"validation\"\n style=\"width:100%\"\n class=\"fill-height\"\n >\n <v-row class=\"fill-height\">\n <v-col\n class=\"rounded-xl\"\n style=\"z-index:99; background-color: white;height: 100%; min-width: 550px;\"\n cols=\"6\"\n >\n <v-row class=\"mb-5 mt-10\">\n <v-col\n offset=\"2\"\n cols=\"8\"\n class=\"d-flex flex-column align-center\"\n >\n <img src=\"/img/Komacut-logo.svg\" width=\"180px\">\n\n <span class=\"text-h5 font-weight-bold mt-8\">\n {{ $t('views.resetPassword.changePassword') }}\n </span>\n <span class=\"mt-5\">{{ $t('views.resetPassword.pleaseEnterPW') }}</span>\n </v-col>\n </v-row>\n\n <v-row>\n <v-col\n offset=\"2\"\n cols=\"8\"\n class=\"mt-16\"\n >\n <v-text-field\n v-model=\"password\"\n :label=\"$t('views.signUp.password')\"\n :append-icon=\"isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off'\"\n :type=\"isPasswordVisible ? 'text' : 'password'\"\n :rules=\"[v => (v && v.length >= 8) ,\n v => /(?=.*[A-Z])/.test(v) ,\n v => /(?=.*\\d)/.test(v) ,\n v => /([!@$%])/.test(v)]\"\n data-cy=\"change-password-input\"\n outlined\n dense\n required\n hide-details\n @click:append=\"isPasswordVisible = !isPasswordVisible\"\n />\n </v-col>\n </v-row>\n <v-row>\n <v-col\n offset=\"2\"\n cols=\"8\"\n class=\"py-0\"\n >\n <p class=\"ma-0\">\n {{ $t('views.resetPassword.mustContain') }}\n </p>\n\n <p class=\"red--text ma-0\" :class=\"{ 'green--text': password.length >= 8 }\">\n <v-icon v-if=\"password.length >= 8\" small color=\"green\">\n mdi-check\n </v-icon>\n\n <v-icon v-else small color=\"red\">\n mdi-close\n </v-icon>\n {{ $t('views.resetPassword.minCharacters') }}\n </p>\n <p class=\"red--text ma-0\" :class=\"{ 'green--text': /(?=.*[a-z])/.test(password)}\">\n <v-icon v-if=\"/(?=.*[a-z])/.test(password)\" small color=\"green\">\n mdi-check\n </v-icon>\n\n <v-icon v-else small color=\"red\">\n mdi-close\n </v-icon>\n {{ $t('views.resetPassword.oneLower') }}\n </p>\n <p class=\"red--text ma-0\" :class=\"{ 'green--text': /(?=.*[A-Z])/.test(password) }\">\n <v-icon v-if=\"/(?=.*[A-Z])/.test(password)\" small color=\"green\">\n mdi-check\n </v-icon>\n\n <v-icon v-else small color=\"red\">\n mdi-close\n </v-icon>\n {{ $t('views.resetPassword.oneUpper') }}\n </p>\n <p class=\"red--text ma-0\" :class=\"{ 'green--text': /(?=.*\\d)/.test(password) }\">\n <v-icon v-if=\"/(?=.*\\d)/.test(password)\" small color=\"green\">\n mdi-check\n </v-icon>\n\n <v-icon v-else small color=\"red\">\n mdi-close\n </v-icon>\n {{ $t('views.resetPassword.oneDigit') }}\n </p>\n <p\n class=\"red--text ma-0\"\n :class=\"{ 'green--text': /([@%+\\\\/'!#$^?:,(){}\\[\\]~`\\-_.])/.test(password) }\"\n >\n <v-icon v-if=\"/([!@$%])/.test(password)\" small color=\"green\">\n mdi-check\n </v-icon>\n\n <v-icon v-else small color=\"red\">\n mdi-close\n </v-icon>\n {{ $t('views.resetPassword.oneSpecial') }}\n </p>\n </v-col>\n </v-row>\n <v-row>\n <v-col\n offset=\"2\"\n cols=\"8\"\n >\n <v-text-field\n v-model=\"confirmPassword\"\n :label=\"$t('views.signUp.confirmPassword')\"\n :append-icon=\"isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off'\"\n :type=\"isPasswordVisible ? 'text' : 'password'\"\n :rules=\"[(password === confirmPassword) || $t('views.signUp.passwordMustMatch')]\"\n outlined\n dense\n required\n data-cy=\"change-confirm-password-input\"\n hide-details\n @click:append=\"isPasswordVisible = !isPasswordVisible\"\n />\n </v-col>\n </v-row>\n\n <v-row>\n <v-col\n offset=\"2\"\n cols=\"8\"\n >\n <v-btn\n :disabled=\"!isFormValid || isResetPwdLongPending\"\n color=\"success\"\n large\n block\n data-cy=\"change-password-button\"\n :loading=\"isResetPwdLongPending\"\n @click=\"passwordSubmit\"\n >\n <span>\n {{ $t('views.resetPassword.changePassword') }}\n </span>\n </v-btn>\n </v-col>\n <v-col offset=\"2\" cols=\"8\">\n <p class=\"text--secondary caption\" style=\"position: relative; top:190px; left:40px\">\n {{ $t('common.footerRight') }} <a\n href=\"https://komacut.com/about-us/contact-us/\"\n class=\"text-decoration-none\"\n > {{ $t('common.contactUs') }}</a>\n </p>\n </v-col>\n </v-row>\n </v-col>\n <v-col cols=\"6\" class=\"pl-0 d-flex justify-center align-center\">\n <core-promotional />\n </v-col>\n </v-row>\n </v-form>\n </v-container>\n</template>\n\n<script>\nimport { mapState } from 'vuex';\nimport FormRules from '@/mixins/form-rules';\n\nexport default {\n name: 'restPassword',\n\n mixins: [\n FormRules,\n ],\n\n data() {\n return {\n validation: false,\n password: '',\n token: '',\n confirmPassword: '',\n isPasswordVisible: false,\n isResetPwdLongPending: false,\n };\n },\n computed: {\n ...mapState('app', ['locale']),\n isFormValid() {\n return this.validation;\n },\n },\n created() {\n const { token } = this.$route.query;\n this.token = token;\n },\n methods: {\n async passwordSubmit() {\n console.log('test');\n if (this.validation) {\n try {\n this.isResetPwdLongPending = true;\n await this.$feathers.service('authManagement').create({\n action: 'resetPwdLong',\n value: { token: this.token, password: this.password }\n });\n this.isResetPwdLongPending = false;\n this.$router.push('/resetpassword_success');\n } catch (e) {\n console.error(e);\n }\n } else {\n this.$refs.form.validate();\n }\n },\n },\n};\n</script>\n\n<style scoped>\n.login-card {\n z-index: 5;\n}\n\n.dot {\n height: 10px;\n width: 10px;\n background-color: #D4D8DC;\n border-radius: 50%;\n display: inline-block;\n margin-right: 5px;\n}\n\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ResetPassword.vue?vue&type=template&id=2f939555&scoped=true&\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=js&\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ResetPassword.vue?vue&type=style&index=0&id=2f939555&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 \"2f939555\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VContainer,VForm,VIcon,VRow,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height px-5\",staticStyle:{\"min-width\":\"1400px\",\"max-width\":\"1400px\",\"max-height\":\"100%\"}},[_c('v-row',{staticClass:\"fill-height\"},[_c('v-col',{staticClass:\"rounded-xl pa-0\",staticStyle:{\"z-index\":\"99\",\"background-color\":\"white\",\"height\":\"100%\",\"min-width\":\"550px\"},attrs:{\"cols\":\"6\"}},[_c('v-row',{staticClass:\"d-flex justify-space-between align-center\"},[_c('img',{staticClass:\"ml-8 mt-4\",attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"160px\"}}),_c('v-select',{staticClass:\"mr-8 mt-2\",staticStyle:{\"max-width\":\"130px\"},attrs:{\"value\":_vm.locale,\"items\":_vm.langList,\"item-value\":\"value\",\"item-text\":\"label\",\"background-color\":\"transparent\",\"solo\":\"\",\"flat\":\"\",\"hide-details\":\"\"},on:{\"change\":function (currentLang) {_vm.setLocale({ $i18n: _vm.i18n, locale: currentLang });}},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_c('v-icon',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\"}},[_vm._v(\" mdi-web \")]),_c('span',{staticStyle:{\"color\":\"#2c984e\"}},[_vm._v(_vm._s(data.item.label))])]}}])})],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex flex-column align-start mt-8\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('span',{staticClass:\"text-h5 font-weight-bold mb-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.signUpToKomacut'))+\" \")]),_c('span',{staticClass:\"text--secondary caption\",staticStyle:{\"color\":\"black !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.signUpMessage'))+\" \")])])],1),_c('v-form',{ref:\"form\",model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-row',[_c('v-col',{staticClass:\"pb-0\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-text-field',{staticStyle:{\"width\":\"800px\"},attrs:{\"outlined\":\"\",\"dense\":\"\",\"label\":_vm.$t('common.email'),\"rules\":[_vm.isRequired, _vm.isEmail],\"data-cy\":\"email-input\",\"messages\":_vm.$t('views.signUp.emailFieldInstruction'),\"required\":\"\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"])){ return null; }$event.preventDefault();}},model:{value:(_vm.user._id),callback:function ($$v) {_vm.$set(_vm.user, \"_id\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"user._id\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"offset\":\"2\",\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"maxlength\":\"15\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"data-cy\":\"first-name-input\",\"label\":_vm.$t('common.firstName'),\"rules\":[_vm.isRequired]},model:{value:(_vm.user.firstName),callback:function ($$v) {_vm.$set(_vm.user, \"firstName\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"user.firstName\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"maxlength\":\"30\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"data-cy\":\"last-name-input\",\"label\":_vm.$t('common.lastName'),\"rules\":[_vm.isRequired]},model:{value:(_vm.user.lastName),callback:function ($$v) {_vm.$set(_vm.user, \"lastName\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"user.lastName\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pb-0\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('vue-tel-input-vuetify',{attrs:{\"maxlength\":\"60\",\"label\":_vm.$t('views.signUp.phone'),\"placeholder\":_vm.$t('views.signUp.phonePlaceholder'),\"outlined\":\"\",\"dense\":\"\",\"data-cy\":\"phone-input\",\"prefix\":_vm.countryCode,\"only-countries\":_vm.getCountryCodes,\"rules\":[function (v) { return !!v && _vm.isValid; }]},on:{\"country-changed\":function (v) {_vm.countryCode = v.dialCode},\"onInput\":_vm.onInput},model:{value:(_vm.phone),callback:function ($$v) {_vm.phone=$$v},expression:\"phone\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"maxlength\":\"60\",\"label\":_vm.$t('views.signUp.companyName'),\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"data-cy\":\"company-name-input\",\"rules\":[_vm.isRequired],\"required\":\"\"},model:{value:(_vm.user.CompanyName),callback:function ($$v) {_vm.$set(_vm.user, \"CompanyName\", $$v)},expression:\"user.CompanyName\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-select',{attrs:{\"maxlength\":\"50\",\"items\":_vm.userDepartments,\"label\":_vm.$t('views.preferences.tabs.userManagement.department'),\"rules\":[_vm.isRequired],\"outlined\":\"\",\"data-cy\":\"department-input\",\"dense\":\"\",\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('span',{attrs:{\"data-cy\":\"department-option\"}},[_vm._v(_vm._s(data.item))])]}}]),model:{value:(_vm.user.Department),callback:function ($$v) {_vm.$set(_vm.user, \"Department\", $$v)},expression:\"user.Department\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-select',{attrs:{\"items\":_vm.countries,\"label\":_vm.$t('views.signUp.country'),\"item-text\":\"name\",\"item-value\":\"code\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"data-cy\":\"country-input\",\"rules\":[_vm.isRequired],\"required\":\"\"},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('span',{attrs:{\"data-cy\":\"country-option\"}},[_vm._v(_vm._s(data.item.name))])]}}]),model:{value:(_vm.user.Country),callback:function ($$v) {_vm.$set(_vm.user, \"Country\", $$v)},expression:\"user.Country\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pb-0\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('views.signUp.password'),\"append-icon\":_vm.isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off',\"type\":_vm.isPasswordVisible ? 'text' : 'password',\"outlined\":\"\",\"dense\":\"\",\"required\":\"\",\"hide-details\":\"\",\"data-cy\":\"password-input\",\"rules\":[function (v) { return (v && v.length >= 8); } ,\n function (v) { return /(?=.*[A-Z])/.test(v); } ,\n function (v) { return /(?=.*\\d)/.test(v); } ,\n function (v) { return /([@%+\\\\/'!#$^?:,(){}\\[\\]~`\\-_.])/.test(v); }]},on:{\"click:append\":function($event){_vm.isPasswordVisible = !_vm.isPasswordVisible}},model:{value:(_vm.user.password),callback:function ($$v) {_vm.$set(_vm.user, \"password\", $$v)},expression:\"user.password\"}})],1)],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('p',{staticClass:\"ma-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.mustContain'))+\" \")]),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': _vm.user.password.length >= 8 }},[(_vm.user.password.length >= 8)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.minCharacters'))+\" \")],1),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': /(?=.*[a-z])/.test(_vm.user.password)}},[(/(?=.*[a-z])/.test(_vm.user.password))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.oneLower'))+\" \")],1),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': /(?=.*[A-Z])/.test(_vm.user.password) }},[(/(?=.*[A-Z])/.test(_vm.user.password))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.oneUpper'))+\" \")],1),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': /(?=.*\\d)/.test(_vm.user.password) }},[(/(?=.*\\d)/.test(_vm.user.password))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.oneDigit'))+\" \")],1),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': /([@%+\\\\/'!#$^?:,(){}\\[\\]~`\\-_.])/.test(_vm.user.password) }},[(/([@%+\\\\/'!#$^?:,(){}\\[\\]~`\\-_.])/.test(_vm.user.password))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.oneSpecial'))+\" \")],1)]),_c('v-row',[_c('v-col',{attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('views.signUp.confirmPassword'),\"append-icon\":_vm.isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off',\"type\":_vm.isPasswordVisible ? 'text' : 'password',\"rules\":[_vm.isRequired,(_vm.user.password === _vm.confirmPassword) || _vm.$t('views.signUp.passwordMustMatch')],\"outlined\":\"\",\"dense\":\"\",\"required\":\"\",\"hide-details\":\"\",\"data-cy\":\"confirm-password-input\"},on:{\"click:append\":function($event){_vm.isPasswordVisible = !_vm.isPasswordVisible}},model:{value:(_vm.confirmPassword),callback:function ($$v) {_vm.confirmPassword=$$v},expression:\"confirmPassword\"}})],1)],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"8\",\"offset\":\"2\"}},[_c('v-btn',{attrs:{\"loading\":_vm.user.isSavePending,\"color\":\"success\",\"type\":\"submits\",\"large\":\"\",\"block\":\"\",\"data-cy\":\"sign-up-button\"},on:{\"click\":_vm.createUser}},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.signUp'))+\" \")])],1)],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex flex-column text--secondary align-center caption text-decoration-none mb-2\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"black !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.alreadyHaveAnAccount'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"/login\"}},[_vm._v(_vm._s(_vm.$t('views.login.login')))])]),_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"black !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.bySigning'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/legal/general-terms-and-conditions/\"}},[_vm._v(_vm._s(_vm.$t('views.signUp.termsAndConditions')))])])])],1),_c('p',{staticClass:\"text--secondary caption text-center mb-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.footerRight'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/about-us/contact-us/\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.contactUs')))])])],1),_c('v-col',{staticClass:\"pl-0 d-flex justify-center align-center\",attrs:{\"cols\":\"6\"}},[_c('core-promotional')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container class=\"fill-height px-5\" style=\"min-width: 1400px; max-width: 1400px; max-height: 100%\">\n <v-row class=\"fill-height\">\n <v-col\n class=\"rounded-xl pa-0\"\n style=\"z-index:99; background-color: white;height: 100%; min-width: 550px;\"\n cols=\"6\"\n >\n <v-row class=\"d-flex justify-space-between align-center\">\n <img\n class=\"ml-8 mt-4\"\n src=\"/img/Komacut-logo.svg\"\n width=\"160px\"\n >\n <v-select\n style=\"max-width: 130px;\"\n class=\"mr-8 mt-2\"\n :value=\"locale\"\n :items=\"langList\"\n item-value=\"value\"\n item-text=\"label\"\n background-color=\"transparent\"\n solo\n flat\n hide-details\n @change=\"(currentLang) => {setLocale({ $i18n: i18n, locale: currentLang });} \"\n >\n <template slot=\"selection\" slot-scope=\"data\">\n <v-icon class=\"mr-2\" color=\"primary\">\n mdi-web\n </v-icon>\n <span style=\"color: #2c984e;\">{{ data.item.label }}</span>\n </template>\n </v-select>\n </v-row>\n\n <v-row>\n <v-col\n offset=\"2\"\n cols=\"8\"\n class=\"d-flex flex-column align-start mt-8\"\n >\n <span class=\"text-h5 font-weight-bold mb-0\">\n {{ $t('views.signUp.signUpToKomacut') }}\n </span>\n <span class=\"text--secondary caption\" style=\"color: black !important;\">\n {{ $t('views.signUp.signUpMessage') }}\n </span>\n </v-col>\n </v-row>\n\n <v-form ref=\"form\" v-model=\"isFormValid\">\n <v-row>\n <v-col class=\"pb-0\" offset=\"2\" cols=\"8\">\n <v-text-field\n v-model.trim=\"user._id\"\n style=\"width: 800px\"\n outlined\n dense\n :label=\"$t('common.email')\"\n :rules=\" [isRequired, isEmail]\"\n data-cy=\"email-input\"\n :messages=\"$t('views.signUp.emailFieldInstruction')\"\n required\n @keydown.space.prevent\n />\n </v-col>\n </v-row>\n <v-row>\n <v-col offset=\"2\" cols=\"4\">\n <v-text-field\n v-model.trim=\"user.firstName\"\n maxlength=\"15\"\n outlined\n dense\n hide-details\n data-cy=\"first-name-input\"\n :label=\"$t('common.firstName')\"\n :rules=\" [isRequired]\"\n />\n </v-col>\n <v-col cols=\"4\">\n <v-text-field\n v-model.trim=\"user.lastName\"\n maxlength=\"30\"\n outlined\n dense\n hide-details\n data-cy=\"last-name-input\"\n :label=\"$t('common.lastName')\"\n :rules=\" [isRequired]\"\n />\n </v-col>\n </v-row>\n <v-row>\n <v-col class=\"pb-0\" offset=\"2\" cols=\"8\">\n <vue-tel-input-vuetify\n v-model=\"phone\"\n maxlength=\"60\"\n :label=\"$t('views.signUp.phone')\"\n :placeholder=\"$t('views.signUp.phonePlaceholder')\"\n outlined\n dense\n data-cy=\"phone-input\"\n :prefix=\"countryCode\"\n :only-countries=\"getCountryCodes\"\n :rules=\" [v => !!v && isValid]\"\n @country-changed=\"(v) => {countryCode = v.dialCode}\"\n @onInput=\"onInput\"\n />\n </v-col>\n </v-row>\n <v-row>\n <v-col offset=\"2\" cols=\"8\">\n <v-text-field\n v-model=\"user.CompanyName\"\n maxlength=\"60\"\n :label=\"$t('views.signUp.companyName')\"\n outlined\n dense\n hide-details\n data-cy=\"company-name-input\"\n :rules=\" [isRequired]\"\n required\n />\n </v-col>\n </v-row>\n <v-row>\n <v-col offset=\"2\" cols=\"8\">\n <v-select\n v-model=\"user.Department\"\n maxlength=\"50\"\n :items=\"userDepartments\"\n :label=\"$t('views.preferences.tabs.userManagement.department')\"\n :rules=\"[isRequired]\"\n outlined\n data-cy=\"department-input\"\n dense\n hide-details\n >\n <template slot=\"item\" slot-scope=\"data\">\n <span data-cy=\"department-option\">{{ data.item }}</span>\n </template>\n </v-select>\n </v-col>\n </v-row>\n <v-row>\n <v-col offset=\"2\" cols=\"8\">\n <v-select\n v-model=\"user.Country\"\n :items=\"countries\"\n :label=\"$t('views.signUp.country')\"\n item-text=\"name\"\n item-value=\"code\"\n outlined\n dense\n hide-details\n data-cy=\"country-input\"\n :rules=\" [isRequired]\"\n required\n >\n <template slot=\"item\" slot-scope=\"data\">\n <span data-cy=\"country-option\">{{ data.item.name }}</span>\n </template>\n </v-select>\n </v-col>\n </v-row>\n <v-row>\n <v-col\n offset=\"2\"\n cols=\"8\"\n class=\"pb-0\"\n >\n <v-text-field\n v-model=\"user.password\"\n :label=\"$t('views.signUp.password')\"\n :append-icon=\"isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off'\"\n :type=\"isPasswordVisible ? 'text' : 'password'\"\n outlined\n dense\n required\n hide-details\n data-cy=\"password-input\"\n :rules=\"[v => (v && v.length >= 8) ,\n v => /(?=.*[A-Z])/.test(v) ,\n v => /(?=.*\\d)/.test(v) ,\n v => /([@%+\\\\/'!#$^?:,(){}\\[\\]~`\\-_.])/.test(v)]\"\n @click:append=\"isPasswordVisible = !isPasswordVisible\"\n />\n </v-col>\n </v-row>\n <v-col\n offset=\"2\"\n cols=\"8\"\n class=\"py-0\"\n >\n <p class=\"ma-0\">\n {{ $t('views.resetPassword.mustContain') }}\n </p>\n\n <p class=\"red--text ma-0\" :class=\"{ 'green--text': user.password.length >= 8 }\">\n <v-icon v-if=\"user.password.length >= 8\" small color=\"green\">\n mdi-check\n </v-icon>\n\n <v-icon v-else small color=\"red\">\n mdi-close\n </v-icon>\n {{ $t('views.resetPassword.minCharacters') }}\n </p>\n <p class=\"red--text ma-0\" :class=\"{ 'green--text': /(?=.*[a-z])/.test(user.password)}\">\n <v-icon v-if=\"/(?=.*[a-z])/.test(user.password)\" small color=\"green\">\n mdi-check\n </v-icon>\n\n <v-icon v-else small color=\"red\">\n mdi-close\n </v-icon>\n {{ $t('views.resetPassword.oneLower') }}\n </p>\n <p class=\"red--text ma-0\" :class=\"{ 'green--text': /(?=.*[A-Z])/.test(user.password) }\">\n <v-icon v-if=\"/(?=.*[A-Z])/.test(user.password)\" small color=\"green\">\n mdi-check\n </v-icon>\n\n <v-icon v-else small color=\"red\">\n mdi-close\n </v-icon>\n {{ $t('views.resetPassword.oneUpper') }}\n </p>\n <p class=\"red--text ma-0\" :class=\"{ 'green--text': /(?=.*\\d)/.test(user.password) }\">\n <v-icon v-if=\"/(?=.*\\d)/.test(user.password)\" small color=\"green\">\n mdi-check\n </v-icon>\n\n <v-icon v-else small color=\"red\">\n mdi-close\n </v-icon>\n {{ $t('views.resetPassword.oneDigit') }}\n </p>\n <p\n class=\"red--text ma-0\"\n :class=\"{ 'green--text': /([@%+\\\\/'!#$^?:,(){}\\[\\]~`\\-_.])/.test(user.password) }\"\n >\n <v-icon v-if=\"/([@%+\\\\/'!#$^?:,(){}\\[\\]~`\\-_.])/.test(user.password)\" small color=\"green\">\n mdi-check\n </v-icon>\n\n <v-icon v-else small color=\"red\">\n mdi-close\n </v-icon>\n {{ $t('views.resetPassword.oneSpecial') }}\n </p>\n </v-col>\n <v-row>\n <v-col\n offset=\"2\"\n cols=\"8\"\n >\n <v-text-field\n v-model=\"confirmPassword\"\n :label=\"$t('views.signUp.confirmPassword')\"\n :append-icon=\"isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off'\"\n :type=\"isPasswordVisible ? 'text' : 'password'\"\n :rules=\"[isRequired,(user.password === confirmPassword) || $t('views.signUp.passwordMustMatch')]\"\n outlined\n dense\n required\n hide-details\n data-cy=\"confirm-password-input\"\n @click:append=\"isPasswordVisible = !isPasswordVisible\"\n />\n </v-col>\n </v-row>\n </v-form>\n <v-row>\n <v-col cols=\"8\" offset=\"2\">\n <v-btn\n :loading=\"user.isSavePending\"\n color=\"success\"\n type=\"submits\"\n large\n block\n data-cy=\"sign-up-button\"\n @click=\"createUser\"\n >\n {{ $t('views.signUp.signUp') }}\n </v-btn>\n </v-col>\n </v-row>\n <v-row>\n <v-col offset=\"2\" cols=\"8\" class=\"d-flex flex-column text--secondary align-center caption text-decoration-none mb-2\">\n <p class=\"mb-0\" style=\"color: black !important;\">\n {{ $t('views.signUp.alreadyHaveAnAccount') }} <a\n class=\"text-decoration-none\"\n href=\"/login\"\n >{{ $t('views.login.login') }}</a>\n </p>\n <p class=\"mb-0\" style=\"color: black !important;\">\n {{ $t('views.signUp.bySigning') }}\n <a\n class=\"text-decoration-none\"\n href=\"https://komacut.com/legal/general-terms-and-conditions/\"\n >{{\n $t('views.signUp.termsAndConditions')\n }}</a>\n </p>\n </v-col>\n </v-row>\n <p class=\"text--secondary caption text-center mb-4\">\n {{ $t('common.footerRight') }} <a\n href=\"https://komacut.com/about-us/contact-us/\"\n class=\"text-decoration-none\"\n > {{ $t('common.contactUs') }}</a>\n </p>\n </v-col>\n <v-col cols=\"6\" class=\"pl-0 d-flex justify-center align-center\">\n <core-promotional />\n </v-col>\n </v-row>\n </v-container>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapActions, mapState } from 'vuex';\nimport AddressFormatter from '@shopify/address';\nimport FormRules from '@/mixins/form-rules';\nimport i18n from '@/plugins/i18n';\n\nconst { User, Referral } = models.api;\nexport default {\n name: 'signUp',\n\n mixins: [\n FormRules,\n ],\n\n data() {\n return {\n langList: [\n { label: 'English', value: 'en-US' },\n { label: 'ä¸æ–‡', value: 'cn' }\n ],\n i18n,\n chineseForm: null,\n englishForm: null,\n user: new User(),\n confirmPassword: '',\n isPasswordVisible: false,\n isFormValid: false,\n chineseJson: [],\n englishJson: [],\n phone: '',\n countryCode: '',\n isValid: false,\n };\n },\n\n computed: {\n ...mapState('app', ['locale']),\n Country: () => models.api.Country,\n fetchedCountries: vm => vm.Country.findInStore().data,\n unfilteredCountries: vm => (vm.locale === 'en-US' ? vm.englishJson : vm.chineseJson),\n countries: vm => vm.unfilteredCountries.filter(c => vm.fetchedCountries.map(fc => fc.Code).includes(c.code)),\n\n userDepartments: vm => ([\n vm.$t('views.preferences.tabs.userManagement.departments.designAndEngineering'),\n vm.$t('views.preferences.tabs.userManagement.departments.management'),\n vm.$t('views.preferences.tabs.userManagement.departments.purchasing'),\n vm.$t('views.preferences.tabs.userManagement.departments.strategicProcurement'),\n vm.$t('views.preferences.tabs.userManagement.departments.logistics'),\n vm.$t('views.preferences.tabs.userManagement.departments.production'),\n vm.$t('views.preferences.tabs.userManagement.departments.finance'),\n ]),\n getCountryCodes: vm => vm.fetchedCountries.map(c => c.Code),\n\n },\n async created() {\n const navLang = navigator.language;\n let currentLang = navLang.split('-')[0];\n // The standard for Chinese localization is not cn but zh cf :\n // http:// www.lingoes.net/en/translator/langcode.htm\n currentLang = (currentLang === 'zh') ? 'cn' : 'en-US';\n i18n.locale = currentLang;\n this.chineseForm = new AddressFormatter('ZH_CN');\n this.englishForm = new AddressFormatter('EN');\n this.chineseJson = await this.chineseForm.getCountries();\n this.englishJson = await this.englishForm.getCountries();\n const { refCode } = this.$route.query;\n if (refCode) {\n this.user.refCode = refCode;\n const referral = await Referral.get(refCode);\n this.user.firstName = referral.firstName;\n this.user.lastName = referral.lastName;\n this.user._id = referral.email;\n this.user.CompanyName = referral.company;\n }\n },\n\n methods: {\n ...mapActions('app', ['pushSnack']),\n ...mapActions('app', ['pushSnack', 'setLocale']),\n\n onInput(e) {\n this.isValid = e.valid;\n },\n\n async createUser() {\n this.$refs.form.validate();\n if (this.isFormValid) {\n // eslint-disable-next-line no-underscore-dangle\n this.user.__id = this.user._id;\n this.user.ContactEmail = this.user._id;\n this.user.signUp = true;\n this.user.locale = this.locale;\n this.user.officePhone = `${this.countryCode} ${this.phone}`;\n await this.user.create();\n this.trackLead(this.user._id);\n this.$router.push({\n name: 'SignUpSendEmail',\n params: { id: this.user._id }\n });\n }\n },\n\n trackLead(emailId) {\n window.Mastutrack.lead({ email: emailId, uid: emailId });\n }\n\n },\n};\n</script>\n\n<style scoped>\n>>> .v-text-field__details {\n padding-left: 2px !important;\n padding-right: 4px !important;\n}\n\n.dot {\n height: 10px;\n width: 10px;\n background-color: #D4D8DC;\n border-radius: 50%;\n display: inline-block;\n margin-right: 5px;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignUp.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignUp.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SignUp.vue?vue&type=template&id=d118f208&scoped=true&\"\nimport script from \"./SignUp.vue?vue&type=script&lang=js&\"\nexport * from \"./SignUp.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SignUp.vue?vue&type=style&index=0&id=d118f208&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 \"d118f208\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VContainer,VForm,VIcon,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height d-flex align-center justify-center flex-column flex-fill\"},[_c('img',{staticClass:\"my-16\",attrs:{\"src\":\"/img/illustration@1x.svg\"},on:{\"click\":function($event){return _vm.$router.push('/')}}}),_c('p',{staticClass:\"text-h2 font-weight-bold mb-16\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.pageNotFound'))+\" \")]),_c('p',{staticClass:\"text-h5 mb-16 font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.sorryPageNotFound'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"primary mb-16\",\"x-large\":\"\",\"depressed\":\"\"},on:{\"click\":function($event){return _vm.$router.push('/')}}},[_vm._v(\" \"+_vm._s(_vm.$t('common.homePage'))+\" \")]),_c('img',{staticClass:\"mt-16\",attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"189px\",\"height\":\"59px\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container class=\"fill-height d-flex align-center justify-center flex-column flex-fill\">\n <img\n src=\"/img/illustration@1x.svg\"\n class=\"my-16\"\n @click=\"$router.push('/')\"\n >\n <p class=\"text-h2 font-weight-bold mb-16\">\n {{ $t('common.pageNotFound') }}\n </p>\n <p class=\"text-h5 mb-16 font-weight-medium\">\n {{ $t('common.sorryPageNotFound') }}\n </p>\n\n <v-btn\n color=\"primary mb-16\"\n x-large\n depressed\n @click=\"$router.push('/')\"\n >\n {{ $t('common.homePage') }}\n </v-btn>\n\n <img\n src=\"/img/Komacut-logo.svg\"\n class=\"mt-16\"\n width=\"189px\"\n height=\"59px\"\n >\n </v-container>\n</template>\n\n<script>\nexport default {\n name: 'PageNotFound'\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageNotFound.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageNotFound.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PageNotFound.vue?vue&type=template&id=04fa032e&scoped=true&\"\nimport script from \"./PageNotFound.vue?vue&type=script&lang=js&\"\nexport * from \"./PageNotFound.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 \"04fa032e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VContainer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height px-5\",staticStyle:{\"min-width\":\"1190px\",\"max-width\":\"1400px\",\"max-height\":\"100%\"}},[_c('v-row',{staticClass:\"fill-height\"},[_c('v-col',{staticClass:\"rounded-xl\",staticStyle:{\"z-index\":\"99\",\"background-color\":\"white\",\"height\":\"100%\",\"min-width\":\"550px\"},attrs:{\"cols\":\"6\"}},[_c('v-row',[_c('v-col',{staticClass:\"d-flex flex-column align-center mt-10\",staticStyle:{\"width\":\"100%\"}},[_c('div',{staticClass:\"d-flex justify-center\"},[_c('img',{attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"180px\"}})]),_c('span',{staticClass:\"text-h5 font-weight-bold mt-8\",attrs:{\"data-cy\":\"email-sent-message\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.EmailSent'))+\" \")]),_c('span',{staticClass:\"mt-4\"},[_vm._v(_vm._s(_vm.$t('views.signUp.EmailSendInstruction')))]),_c('v-card',{staticClass:\"transparent d-flex justify-center align-center mt-16\",attrs:{\"flat\":\"\"}},[_c('v-card-text',[_c('img',{attrs:{\"src\":\"/img/img_mailsent@3x.png\",\"height\":\"300px\"}})])],1),_c('v-btn',{staticClass:\"my-16\",attrs:{\"color\":\"primary\",\"depressed\":\"\",\"data-cy\":\"go-to-login-button\"},on:{\"click\":function($event){return _vm.$router.push('/login')}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.goToLogin'))+\" \")])],1)],1),_c('p',{staticClass:\"text--secondary caption text-center mb-0\",staticStyle:{\"margin-top\":\"20px !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.footerRight'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/about-us/contact-us/\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.contactUs')))])])],1),_c('v-col',{staticClass:\"pl-0 d-flex justify-center align-center\",attrs:{\"cols\":\"6\"}},[_c('core-promotional')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container class=\"fill-height px-5\" style=\"min-width: 1190px; max-width: 1400px; max-height: 100%\">\n <v-row class=\"fill-height\">\n <v-col\n class=\"rounded-xl\"\n style=\"z-index:99; background-color: white;height: 100%; min-width: 550px;\"\n cols=\"6\"\n >\n <v-row>\n <v-col\n style=\"width:100%\"\n class=\"d-flex flex-column align-center mt-10\"\n >\n <div class=\"d-flex justify-center\">\n <img src=\"/img/Komacut-logo.svg\" width=\"180px\">\n </div>\n <span class=\"text-h5 font-weight-bold mt-8\" data-cy=\"email-sent-message\">\n {{ $t('views.signUp.EmailSent') }}\n </span>\n <span class=\"mt-4\">{{ $t('views.signUp.EmailSendInstruction') }}</span>\n <v-card\n class=\"transparent d-flex justify-center align-center mt-16\"\n flat\n >\n <v-card-text>\n <img\n src=\"/img/img_mailsent@3x.png\"\n height=\"300px\"\n >\n </v-card-text>\n </v-card>\n <v-btn\n class=\"my-16\"\n color=\"primary\"\n depressed\n data-cy=\"go-to-login-button\"\n @click=\"$router.push('/login')\"\n >\n {{ $t('views.accountActivation.goToLogin') }}\n </v-btn>\n </v-col>\n </v-row>\n <p class=\"text--secondary caption text-center mb-0\" style=\"margin-top: 20px !important\">\n {{ $t('common.footerRight') }} <a\n href=\"https://komacut.com/about-us/contact-us/\"\n class=\"text-decoration-none\"\n > {{ $t('common.contactUs') }}</a>\n </p>\n </v-col>\n <v-col cols=\"6\" class=\"pl-0 d-flex justify-center align-center\">\n <core-promotional />\n </v-col>\n </v-row>\n </v-container>\n</template>\n\n<script>\nexport default {\n\n mounted() {\n window.dataLayer.push({\n event: 'Enhanced_signup',\n enhanced_conversion_data: {\n email: this.$route.params.id\n }\n });\n }\n};\n\n</script>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignUpSendEmail.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignUpSendEmail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SignUpSendEmail.vue?vue&type=template&id=e447993a&\"\nimport script from \"./SignUpSendEmail.vue?vue&type=script&lang=js&\"\nexport * from \"./SignUpSendEmail.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height px-5\",staticStyle:{\"min-width\":\"1190px\",\"max-width\":\"1400px\",\"max-height\":\"100%\"}},[_c('v-row',{staticClass:\"fill-height\"},[_c('v-col',{staticClass:\"rounded-xl\",staticStyle:{\"z-index\":\"99\",\"background-color\":\"white\",\"height\":\"100%\",\"min-width\":\"550px\"},attrs:{\"cols\":\"6\"}},[_c('v-row',[_c('v-col',{staticClass:\"d-flex flex-column align-center mt-10\",staticStyle:{\"width\":\"100%\"}},[_c('div',{staticClass:\"d-flex justify-center\"},[_c('img',{attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"180px\"}})]),_c('span',{staticClass:\"text-h5 font-weight-bold mt-8\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.forgottenPassword.resetPassword'))+\" \")]),_c('span',{staticClass:\"mt-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.forgottenPassword.successEmailSend'))+\" \")]),_c('v-card',{staticClass:\"transparent d-flex justify-center align-center mt-16\",attrs:{\"flat\":\"\"}},[_c('v-card-text',[_c('img',{attrs:{\"src\":\"/img/img_mailsent@3x.png\",\"height\":\"300px\"}})])],1),_c('v-btn',{staticClass:\"my-16\",attrs:{\"color\":\"primary\",\"depressed\":\"\"},on:{\"click\":function($event){return _vm.$router.push('/login')}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.goToLogin'))+\" \")])],1)],1),_c('p',{staticClass:\"text--secondary caption text-center mb-0\",staticStyle:{\"margin-top\":\"40px !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.footerRight'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/about-us/contact-us/\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.contactUs')))])])],1),_c('v-col',{staticClass:\"pl-0 d-flex justify-center align-center\",attrs:{\"cols\":\"6\"}},[_c('core-promotional')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ResetPasswordSendEmail.vue?vue&type=template&id=542be6f4&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height px-5\",staticStyle:{\"min-width\":\"1190px\",\"max-width\":\"1400px\",\"max-height\":\"100%\"}},[_c('v-row',{staticClass:\"fill-height\"},[_c('v-col',{staticClass:\"rounded-xl\",staticStyle:{\"z-index\":\"99\",\"background-color\":\"white\",\"height\":\"100%\",\"min-width\":\"550px\"},attrs:{\"cols\":\"6\"}},[_c('v-row',[_c('v-col',{staticClass:\"d-flex flex-column align-center mt-10\",staticStyle:{\"width\":\"100%\"}},[_c('div',{staticClass:\"d-flex justify-center\"},[_c('img',{attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"180px\"}})]),_c('span',{staticClass:\"text-h5 font-weight-bold mt-8\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.forgottenPassword.resetPassword'))+\" \")]),_c('span',{staticClass:\"mt-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.passwordChangedSuccessMessage'))+\" \")]),_c('v-card',{staticClass:\"transparent d-flex justify-center align-center mt-16\",attrs:{\"flat\":\"\"}},[_c('v-card-text',[_c('img',{attrs:{\"src\":\"/img/img_mailsent@3x.png\",\"height\":\"300px\"}})])],1),_c('v-btn',{staticClass:\"my-16\",attrs:{\"color\":\"primary\",\"depressed\":\"\",\"data-cy\":\"login-after-reset-password-button\"},on:{\"click\":function($event){return _vm.$router.push('/login')}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.goToLogin'))+\" \")])],1)],1),_c('p',{staticClass:\"text--secondary caption text-center mb-0\",staticStyle:{\"margin-top\":\"20px !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.footerRight'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/about-us/contact-us/\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.contactUs')))])])],1),_c('v-col',{staticClass:\"pl-0 d-flex justify-center align-center\",attrs:{\"cols\":\"6\"}},[_c('core-promotional')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ResetPasswordSuccess.vue?vue&type=template&id=ec7c7610&scoped=true&\"\nvar script = {}\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 \"ec7c7610\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VContainer,VRow})\n","import Vue from 'vue';\nimport Router from 'vue-router';\nimport { isJwtExpired } from 'jwt-check-expiration';\n\n/** Add/replace client's router here */\nimport Dashboard from '@/views/Dashboard.vue';\nimport Login from '@/views/Login.vue';\nimport Logout from '@/views/Logout.vue';\nimport OnBoarding from '@/views/OnBoarding.vue';\nimport Confirmation from '@/views/Confirmation.vue';\nimport ForgottenPassword from '@/views/ForgottenPassword.vue';\nimport ResetPassword from '@/views/ResetPassword.vue';\nimport SignUp from '@/views/SignUp.vue';\nimport PageNotFound from '@/views/PageNotFound.vue';\nimport SignUpSendEmail from '@/views/SignUpSendEmail.vue';\nimport ResetPasswordSendEmail from '@/views/ResetPasswordSendEmail.vue';\nimport ResetPasswordSuccess from '@/views/ResetPasswordSuccess.vue';\nimport { LEVEL } from '@/utils/log';\nimport Store from './store/index';\n\nimport ddlogger from './utils/logger';\n\nVue.use(Router);\n\nconst router = new Router({\n mode: 'history',\n base: process.env.BASE_URL,\n routes: [\n {\n path: '/',\n component: Dashboard,\n name: 'Dashboard',\n },\n {\n path: '/login',\n component: Login,\n name: 'Login',\n },\n {\n path: '/signup',\n name: 'SignUp',\n component: SignUp,\n },\n {\n path: '/logout',\n component: Logout,\n name: 'Logout',\n },\n {\n path: '/404',\n component: PageNotFound,\n name: 'PageNotFound',\n },\n {\n path: '/signup_send_email',\n component: SignUpSendEmail,\n name: 'SignUpSendEmail',\n },\n {\n path: '/resetpassword_send_email',\n component: ResetPasswordSendEmail,\n name: 'ResetPasswordSendEmail',\n },\n {\n path: '/resetpassword_success',\n component: ResetPasswordSuccess,\n name: 'ResetPasswordSuccess',\n },\n {\n path: '/on_boarding',\n component: OnBoarding,\n name: 'OnBoarding'\n },\n {\n path: '/confirmation',\n component: Confirmation,\n name: 'Confirmation',\n },\n {\n path: '/forgotten_password',\n component: ForgottenPassword,\n name: 'ForgottenPassword',\n },\n {\n path: '/reset_password',\n component: ResetPassword,\n name: 'ResetPassword',\n },\n {\n path: '/rfqs',\n name: 'RFQS',\n component: () => import(/* webpackChunkName: \"RFQS\" */ './views/RFQS.vue'),\n meta: { requiredPermission: 'rfqs' },\n },\n {\n path: '/rfqs/:id',\n name: 'EditRFQ',\n component: () => import(/* webpackChunkName: \"EditRFQ\" */ './views/EditRFQ.vue'),\n meta: { requiredPermission: 'instantQuote' },\n },\n {\n path: '/hardware_categories',\n name: 'HardwareCategories',\n component: () => import(/* webpackChunkName: \"Hardware\" */ './views/HardwareCategories.vue'),\n },\n {\n path: '/hardware_categories/:id',\n name: 'HardwareCategory',\n props: true,\n component: () => import(/* webpackChunkName: \"HardwareCategory\" */ './views/HardwareCategory.vue'),\n },\n {\n path: '/orders',\n name: 'Orders',\n component: () => import(/* webpackChunkName: \"Orders\" */ './views/Orders.vue'),\n meta: { requiredPermission: 'orders' },\n },\n {\n path: '/order/new',\n name: 'NewOrder',\n props: true,\n component: () => import(/* webpackChunkName: \"NewOrder\" */ './views/EditOrder.vue'),\n meta: { requiredPermission: 'placeOrder' },\n },\n // {\n // path: '/order/new/:type/:id',\n // name: 'NewOrderWithData',\n // props: true,\n // component: () => import(/* webpackChunkName: \"NewOrderWithData\" */ './views/EditOrder.vue'),\n // meta: { requiredPermission: 'placeOrder' },\n // },\n {\n path: '/order/confirmed',\n name: 'confirmedOrder',\n props: true,\n component: () => import(/* webpackChunkName: \"confirmedOrder\" */ './views/ConfirmedOrder.vue'),\n meta: { requiredPermission: 'placeOrder' },\n },\n {\n path: '/my_parts',\n name: 'MyParts',\n component: () => import(/* webpackChunkName: \"MyParts\" */ './views/MyParts.vue'),\n meta: { requiredPermission: 'myParts' },\n },\n {\n path: '/support',\n name: 'Support',\n props: true,\n component: () => import(/* webpackChunkName: \"Support\" */ './views/Support.vue'),\n meta: { requiredPermission: 'supportUser' },\n },\n {\n path: '/settings',\n name: 'Settings',\n component: () => import(/* webpackChunkName: \"CompanySettings\" */ './views/Settings/Index.vue'),\n children: [\n {\n path: 'profile',\n name: 'Profile',\n component: () => import(/* webpackChunkName: \"UsersPreferences\" */ './views/Preferences/UserPreferences.vue'),\n meta: { requiredPermission: 'userManagement' },\n },\n {\n path: 'company',\n name: 'CompanySettings',\n component: () => import(/* webpackChunkName: \"CompanySettings\" */ './views/Settings/CompanySettings.vue'),\n meta: { requiredPermission: 'companyManagement' },\n },\n {\n path: 'forwarders',\n name: 'ForwardersSettings',\n component: () => import(/* webpackChunkName: \"ForwardersSettings\" */ './views/Settings/Forwarders.vue'),\n meta: { requiredPermission: 'forwarderManagement' },\n },\n {\n path: 'user-management',\n name: 'UsersManagement',\n component: () => import(/* webpackChunkName: \"UsersPreferences\" */ './views/Preferences/UserManager.vue'),\n meta: { requiredPermission: 'userManagement' },\n },\n {\n path: 'account',\n name: 'AccountPreferences',\n component: () => import(/* webpackChunkName: \"AccountPreferences\" */ './views/Preferences/AccountStatementTab.vue'),\n },\n {\n path: 'billing',\n name: 'BillingPreferences',\n component: () => import(/* webpackChunkName: \"BillingPreferences\" */ './views/Preferences/BillingTab.vue'),\n meta: { requiredPermission: 'companyManagement' },\n },\n {\n path: 'statements',\n name: 'StatementPreferences',\n component: () => import(/* webpackChunkName: \"StatementPreferences\" */ './views/Preferences/AccountStatementTab.vue'),\n meta: { requiredPermission: 'accountStatement' },\n },\n ],\n },\n {\n path: '/preferences',\n name: 'Preferences',\n component: () => import(/* webpackChunkName: \"UsersPreferences\" */ './views/Preferences/Index.vue'),\n children: [\n {\n path: 'users',\n name: 'UsersPreferences',\n component: () => import(/* webpackChunkName: \"UsersPreferences\" */ './views/Preferences/UserManager.vue'),\n meta: { requiredPermission: 'userManagement' },\n },\n {\n path: 'account',\n name: 'AccountPreferences',\n component: () => import(/* webpackChunkName: \"AccountPreferences\" */ './views/Preferences/UserPreferences.vue'),\n },\n {\n path: 'billing',\n name: 'BillingPreferences',\n component: () => import(/* webpackChunkName: \"BillingPreferences\" */ './views/Preferences/BillingTab.vue'),\n meta: { requiredPermission: 'companyManagement' },\n },\n {\n path: 'statements',\n name: 'StatementPreferences',\n component: () => import(/* webpackChunkName: \"StatementPreferences\" */ './views/Preferences/AccountStatementTab.vue'),\n meta: { requiredPermission: 'accountStatement' },\n },\n ],\n },\n {\n path: '/tools',\n name: 'EngineeringTools',\n component: () => import(/* webpackChunkName: \"EngineeringTools\" */ './views/Tools/Index.vue'),\n children: [\n {\n path: '/tools/materials',\n name: 'MaterialsTools',\n component: () => import(/* webpackChunkName: \"MaterialsTool\" */ './views/Tools/MaterialProperties.vue'),\n },\n {\n path: '/tools/surface',\n name: 'SurfaceTools',\n component: () => import(/* webpackChunkName: \"FinishingTool\" */ './views/Tools/SurfaceFinish.vue'),\n },\n {\n path: '/tools/process',\n name: 'ToleranceTools',\n component: () => import(/* webpackChunkName: \"ToleranceTool\" */ './views/Tools/ProcessTolerances.vue'),\n },\n {\n path: '/tools/finish',\n name: 'FinishTools',\n component: () => import(/* webpackChunkName: \"ToleranceTool\" */ './views/Tools/FinishColor.vue'),\n },\n {\n path: '/tools/design',\n name: 'DesignTools',\n component: () => import(/* webpackChunkName: \"ToleranceTool\" */ './views/Tools/DesignForManufacturing.vue'),\n },\n {\n path: '/tools/guideline',\n name: 'GuideLine',\n component: () => import(/* webpackChunkName: \"ToleranceTool\" */ './views/Tools/GuideLine.vue'),\n },\n ],\n },\n {\n path: '/internal/3d-packaging-tool',\n component: () => import(/* webpackChunkName: \"ThreeDPackagingTool\" */ './views/ThreeDPackagingTool.vue'),\n name: 'ThreeDPackagingTool',\n },\n {\n path: '/internal/3d-to-2d',\n component: () => import(/* webpackChunkName: \"DrawingApp\" */ './views/DrawingApp.vue'),\n name: 'DrawingApp',\n },\n ],\n});\n\n// Must check string value\nif (process.env.VUE_APP_DO_SHOW_SANDBOX === 'true') {\n router.addRoute({\n path: '/sandbox',\n name: 'Sandbox',\n component: () => import(/* webpackChunkName: \"Sandbox\" */ './views/Sandbox.vue'),\n });\n}\n\n// Global session route dispatching\nrouter.beforeEach(async (to, from, next) => {\n const jwtToken = localStorage.getItem('feathers-jwt');\n if (jwtToken) {\n if (isJwtExpired(jwtToken)) {\n localStorage.removeItem('feathers-jwt');\n router.push('/login');\n }\n }\n\n // validate URL\n const link = router.resolve(to.path);\n if (link.resolved.matched.length === 0) {\n next('/404');\n return;\n }\n\n if (to.name === 'DrawingApp' || to.name === 'ThreeDPackagingTool') {\n if (!to.query.sessionId) {\n next('/404');\n return;\n }\n localStorage.removeItem('feathers-jwt');\n await router.app.$store.dispatch(\n 'auth/login',\n {\n user: {\n _id: process.env.VUE_APP_DRAWING_APP_AUTOLOGIN_USER_ID,\n password: process.env.VUE_APP_DRAWING_APP_AUTOLOGIN_PASSWORD,\n },\n },\n );\n next();\n }\n\n // Authenticate with the local email/password strategy\n const isOnLoginPage = ['SignUp', 'Login', 'Confirmation', 'OnBoarding', 'ForgottenPassword', 'ResetPassword', 'SignUpSendEmail', 'ResetPasswordSendEmail', 'ResetPasswordSuccess'].includes(to.name);\n try {\n /* TODO Implement JWT expiry validation */\n const auth = await router.app.$store.dispatch('auth/authenticate');\n let user;\n if (_.get(auth, 'user._id', false)) {\n user = router.app.$store.getters['users/get'](auth.user._id);\n if (!user.hasCsiData) {\n user = await router.app.$store.dispatch('users/get', [auth.user._id]);\n // No need to fetch company as for support user session token not set to CSI.\n if (to.name !== 'Support') {\n await router.app.$store.dispatch('company/find');\n }\n }\n }\n\n ddlogger.logger.debug('navigation', {\n route: to.name,\n author: _.get(auth, 'user._id', 'anonymous')\n });\n\n if (to.meta.requiredPermission && !_.get(user, 'isAdmin', false)) {\n const required = Array.isArray(to.meta.requiredPermission) ? to.meta.requiredPermission : [to.meta.requiredPermission];\n const rights = _.get(user, 'rights', {});\n if (required.length > 0) {\n if (!required.some(req => rights[req]) && to.name !== 'Dashboard') {\n Store.dispatch('app/pushSnack', {\n snack: { message: 'rightError' },\n level: LEVEL.ERROR,\n });\n ddlogger.logger.error('unauthorized', {\n route: to.name,\n author: _.get(auth, 'user._id', 'anonymous')\n });\n router.push('/');\n }\n }\n }\n next();\n } catch (e) {\n if (!isOnLoginPage) {\n router.push('/login');\n } else {\n next();\n }\n }\n const nbrCountries = Store.getters['countries/list'].length;\n if (!nbrCountries) {\n await Store.dispatch('countries/find');\n }\n next();\n});\n\nexport default router;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FooterButtonActions.vue?vue&type=style&index=0&id=2f7b9d9b&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadPartCard.vue?vue&type=style&index=0&id=0f966d25&scoped=true&lang=css&\"","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport { FeathersVuex, models } from '@/plugins/feathers-client';\n\nVue.use(Vuex);\nVue.use(FeathersVuex);\n\nconst requireModule = require.context('./', false, /.js$/);\nconst appModules = requireModule.keys().filter(path => path !== './index.js').map(path => requireModule(path).default);\n\nconst modules = {\n ...appModules.reduce((acc, mod) => ({ ...acc, ...mod.store }), {}),\n};\nconst plugins = [...appModules.map(mod => mod.plugin)];\n\nconst store = new Vuex.Store({\n modules,\n plugins,\n});\n\nconst resetStore = name => {\n const model = models.api.byServicePath[name];\n if (model.namespace) {\n model.store.commit(`${model.namespace}/clearAll`);\n }\n};\n\nconst resetStores = () => {\n store.commit('app/clearAll');\n store.commit('auth/clearAll');\n // store.commit('tabs/clearAll');\n\n for (const name of Object.keys(models.api.byServicePath)) {\n if (!['countries', 'regions'].includes(name)) {\n resetStore(name);\n }\n }\n};\n\nexport {\n modules,\n plugins,\n resetStore,\n resetStores,\n};\n\nexport default store;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{attrs:{\"no-gutters\":\"\",\"align\":\"center\"}},[(_vm.product.myItem.ProductCode === 'HW-Bag')?_c('div',{staticClass:\"body-2\"},[_c('span',{staticClass:\"font-weight-bold ml-2\",attrs:{\"data-cy\":\"purchase-order-option\"}},[_vm._v(\" \"+_vm._s(_vm.product.myItem.CustItemName || 'Bag Name Missing')+\" - \"+_vm._s(_vm.product.myItem.CustItemDesc || 'Bag Description Missing')+\" \")]),_c('span',{staticClass:\"ml-2 pa-2\",staticStyle:{\"background-color\":\"#FFFADA\"}},[_vm._v(\" \"+_vm._s(_vm.product.myItem.FactoryName)+\" \")])]):_vm._e(),(_vm.product.myItem.ProductCode === 'FG')?_c('div',{staticClass:\"body-2\"},[_c('span',{staticClass:\"font-weight-bold ml-2\",attrs:{\"data-cy\":\"purchase-order-option\"}},[_vm._v(\" \"+_vm._s(_vm.product.myItem.CustItemName)+\" - \"+_vm._s(_vm.$t('common.revision', {revision: _vm.product.myItem.CustItemRevision}))+\" \")]),_vm._v(\" \"+_vm._s(_vm.product.materialTranslation ? (\"- \" + (_vm.product.materialTranslation)) : '')+\" \"+_vm._s(_vm.product.materialFinishTranslation || _vm.product.materialFinishOptionTranslation ? (\"- \" + (_vm.product.materialFinishTranslation || _vm.product.materialFinishOptionTranslation)) : '')+\" \"+_vm._s(_vm.product.materialSeriesTranslation ? (\"- \" + (_vm.product.materialSeriesTranslation)) : '')+\" \"+_vm._s(_vm.product.myItem.MaterialThicknessStr ? (\"- \" + (_vm.product.myItem.MaterialThicknessStr)) : '')+\" \"+_vm._s(_vm.product.toleranceTranslation ? (\"- \" + (_vm.product.toleranceTranslation)) : '')+\" \"),_c('span',{staticClass:\"ml-2 pa-2\",staticStyle:{\"background-color\":\"#FFFADA\"}},[_vm._v(\" \"+_vm._s(_vm.product.myItem.FactoryName)+\" \")])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-row no-gutters align=\"center\">\n <div v-if=\"product.myItem.ProductCode === 'HW-Bag'\" class=\"body-2\">\n <span class=\"font-weight-bold ml-2\" data-cy=\"purchase-order-option\">\n {{\n product.myItem.CustItemName || 'Bag Name Missing'\n }} - {{ product.myItem.CustItemDesc || 'Bag Description Missing' }}\n </span>\n <span class=\"ml-2 pa-2\" style=\"background-color: #FFFADA\">\n {{ product.myItem.FactoryName }}\n </span>\n </div>\n\n <div v-if=\"product.myItem.ProductCode === 'FG'\" class=\"body-2\">\n <span class=\"font-weight-bold ml-2\" data-cy=\"purchase-order-option\">\n {{ product.myItem.CustItemName }} - {{ $t('common.revision', {revision: product.myItem.CustItemRevision}) }}\n </span>\n\n {{ product.materialTranslation ? `- ${product.materialTranslation}` : '' }}\n {{\n product.materialFinishTranslation || product.materialFinishOptionTranslation ? `- ${product.materialFinishTranslation || product.materialFinishOptionTranslation}` : ''\n }}\n {{ product.materialSeriesTranslation ? `- ${product.materialSeriesTranslation}` : '' }}\n {{ product.myItem.MaterialThicknessStr ? `- ${product.myItem.MaterialThicknessStr}` : '' }}\n {{ product.toleranceTranslation ? `- ${product.toleranceTranslation}` : '' }}\n <span class=\"ml-2 pa-2\" style=\"background-color: #FFFADA\">\n {{ product.myItem.FactoryName }}\n </span>\n </div>\n </v-row>\n</template>\n\n<script>\nexport default {\n name: 'EditOrderDropDownInformation.vue',\n props: {\n product: {\n type: Object,\n default: () => {\n }\n }\n }\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditOrderDropDownInformation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditOrderDropDownInformation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditOrderDropDownInformation.vue?vue&type=template&id=01707129&scoped=true&\"\nimport script from \"./EditOrderDropDownInformation.vue?vue&type=script&lang=js&\"\nexport * from \"./EditOrderDropDownInformation.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 \"01707129\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VRow})\n","import feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'roles';\n\nconst Model = class Role extends BaseModel {\n static modelName = 'Role';\n\n static instanceDefaults() {\n return {\n name: '',\n rights: [],\n inactive: false,\n };\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","import feathers from '@feathersjs/feathers';\nimport socketio from '@feathersjs/socketio-client';\nimport authClient from '@feathersjs/authentication-client';\nimport io from 'socket.io-client';\nimport feathersVuex from 'feathers-vuex';\n\nimport { LEVEL } from '@/utils/log';\nimport ddlogger from '@/utils/logger';\n\nconst errorHandler = async context => {\n const { error, params } = context;\n console.error('errorHandler', error);\n console.error('Error feathers-client', error);\n\n if (_.get(error, 'code') === 401) {\n const availablePathsWithoutJwt = [\n '/login',\n '/signup',\n '/on_boarding',\n '/confirmation',\n '/forgotten_password',\n '/reset_password',\n '/signup_send_email',\n '/resetpassword_send_email',\n '/resetpassword_success'\n ];\n if (!availablePathsWithoutJwt.some(v => window.location.href.includes(v))) {\n window.location.href = '/login';\n }\n return context;\n }\n const errorMessage = _.omit(error, 'hook');\n console.error(errorMessage);\n if (params.shouldShowNotification === false) {\n return context;\n }\n\n // eslint-disable-next-line no-use-before-define\n BaseModel.store.dispatch('app/pushSnack', {\n snack: errorMessage,\n level: LEVEL.ERROR,\n });\n\n return context;\n};\n\nconst notifyViaSnackbar = async context => {\n const { params, method } = context;\n if (params.notificationMessage) {\n params.shouldShowNotification = true;\n }\n\n if (!params.shouldShowNotification) {\n return context;\n }\n let message = params.notificationMessage;\n if (!message) {\n switch (method) {\n case 'create':\n case 'patch':\n message = 'common.saveSuccess';\n break;\n case 'remove':\n message = 'common.deleteSuccess';\n break;\n default:\n break;\n }\n }\n\n // eslint-disable-next-line no-use-before-define\n BaseModel.store.dispatch('app/pushSnack', {\n snack: { message },\n level: LEVEL.SUCCESS,\n });\n return context;\n};\n\nconst host = process.env.VUE_APP_API_URL;\nconst socket = io(host, { transports: ['websocket'] });\n\nconst feathersClient = feathers()\n .configure(socketio(socket, { timeout: 1000 * 60 }))\n // .configure(socketio(socket, { timeout: 1000 * 60 * 5 }))\n .configure(authClient({ storage: window.localStorage }))\n .hooks({\n after: {\n create: [\n notifyViaSnackbar,\n ],\n patch: [\n notifyViaSnackbar,\n ],\n remove: [\n notifyViaSnackbar,\n ],\n },\n error: {\n all: [\n context => {\n console.error(context);\n },\n errorHandler,\n ],\n },\n });\n// TODO fix the duplicate item (temp and save) when the analysis engin time up change the backend algo\nfeathersClient.service('temp-parts').timeout = 70 * 1000;\n\nconst {\n makeServicePlugin,\n makeAuthPlugin,\n BaseModel: CoreModel,\n models,\n clients,\n FeathersVuex,\n} = feathersVuex(feathersClient, {\n serverAlias: 'api',\n idField: '_id',\n});\n\nclass BaseModel extends CoreModel {\n async create(...data) {\n const start = performance.now();\n try {\n await super.create(...data);\n ddlogger.logger.debug('action', {\n action: 'create',\n type: this.constructor.name,\n author: this.createdById,\n perfMetric: (performance.now() - start),\n });\n } catch (err) {\n console.error(err);\n ddlogger.logger.error('error', {\n action: 'create',\n error: err,\n type: this.constructor.name,\n author: this.createdById,\n perfMetric: (performance.now() - start),\n });\n throw err;\n }\n return this;\n }\n\n async save(...data) {\n const start = performance.now();\n try {\n await super.save(...data);\n ddlogger.logger.debug('action', {\n action: 'save',\n type: this.constructor.name,\n author: this.createdById,\n perfMetric: (performance.now() - start),\n });\n } catch (err) {\n console.error(err);\n ddlogger.logger.error('error', {\n action: 'save',\n error: err,\n type: this.constructor.name,\n author: this.createdById,\n perfMetric: (performance.now() - start),\n });\n throw err;\n }\n return this;\n }\n}\n\nfunction makeServiceStore(options, rest) {\n return {\n [options.servicePath]: {\n namespaced: true,\n\n ...(rest || {}),\n },\n };\n}\n\nexport {\n makeAuthPlugin,\n makeServicePlugin,\n makeServiceStore,\n BaseModel,\n models,\n clients,\n FeathersVuex,\n};\n\nexport default feathersClient;\n","const requireComponent = require.context('./', true, /\\.js$/);\n\nrequireComponent.keys().forEach(fileName => {\n if (fileName === './index.js') { return; }\n\n requireComponent(fileName);\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstantQuoteGuideLine.vue?vue&type=style&index=0&id=26360ced&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[_c('v-col',[_c('v-list',{attrs:{\"color\":\"transparent\"}},[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s('Filters')+\" \")])],1),_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('v-icon',[_vm._v(\" mdi-close \")])],1)],1)],1)],1),_c('v-divider'),_vm._l((_vm.localValue),function(filter,i){return [_c('v-list',{key:(\"list-\" + i),attrs:{\"color\":\"transparent\"}},[_c('v-subheader',[_vm._v(\" \"+_vm._s(filter.section)+\" \")]),_c(_vm.getFilter(filter.type),_vm._b({tag:\"component\",model:{value:(filter.value),callback:function ($$v) {_vm.$set(filter, \"value\", $$v)},expression:\"filter.value\"}},'component',filter,false))],1),((i + 1) !== Object.keys(_vm.localValue).length)?_c('v-divider',{key:(\"divider-\" + i)}):_vm._e()]})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-row>\n <v-col>\n <v-list color=\"transparent\">\n <v-list-item>\n <v-list-item-content>\n <v-list-item-title\n class=\"title\"\n >\n {{ 'Filters' }}\n </v-list-item-title>\n </v-list-item-content>\n\n <v-list-item-action>\n <v-btn\n icon\n >\n <v-icon>\n mdi-close\n </v-icon>\n </v-btn>\n </v-list-item-action>\n </v-list-item>\n </v-list>\n\n <v-divider />\n\n <template v-for=\"(filter, i) in localValue\">\n <v-list\n :key=\"`list-${i}`\"\n color=\"transparent\"\n >\n <v-subheader>\n {{ filter.section }}\n </v-subheader>\n\n <component\n :is=\"getFilter(filter.type)\"\n v-model=\"filter.value\"\n v-bind=\"filter\"\n />\n </v-list>\n\n <v-divider\n v-if=\"(i + 1) !== Object.keys(localValue).length\"\n :key=\"`divider-${i}`\"\n />\n </template>\n </v-col>\n </v-row>\n</template>\n\n<script>\nexport default {\n props: ['show', 'onclose', 'value'],\n\n computed: {\n\n filterTypes() {\n return new Map([\n ['checkbox', 'core-filter-checkbox-group'],\n ['switch', 'core-filter-switch-group'],\n ['radio', 'core-filter-radio-group'],\n ['rangeSlider', 'core-filter-range-slider'],\n ]);\n },\n\n localValue: {\n get() {\n return this.value;\n },\n\n set(value) {\n this.$emit('input', value);\n },\n },\n },\n\n methods: {\n getFilter(filterType) {\n if (this.filterTypes.has(filterType)) {\n return this.filterTypes.get(filterType);\n }\n return 'span';\n },\n },\n};\n</script>\n\n<style scoped>\n .v-list-item {\n min-height: 30px;\n}\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Filter.vue?vue&type=template&id=3ebbc123&scoped=true&\"\nimport script from \"./Filter.vue?vue&type=script&lang=js&\"\nexport * from \"./Filter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Filter.vue?vue&type=style&index=0&id=3ebbc123&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 \"3ebbc123\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCol,VDivider,VIcon,VList,VListItem,VListItemAction,VListItemContent,VListItemTitle,VRow,VSubheader})\n","var map = {\n\t\"./cn.json\": \"f4a5\",\n\t\"./en-US.json\": \"e0e1\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"49f8\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignUp.vue?vue&type=style&index=0&id=d118f208&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('v-card-title',{staticStyle:{\"background-color\":\"#4fb052\",\"color\":\"white\"}},[_vm._v(\" \"+_vm._s(_vm._.get(_vm.analysisData[0], 'value'))+\" \")]),_c('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',_vm._l((_vm.analysisData.slice(1)),function(item,i){return _c('tr',{key:item.field,class:{'dark': (i % 2 !== 0)}},[_c('td',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('img',{staticClass:\"mr-1\",attrs:{\"src\":(\"/img/\" + (item.icon) + \".svg\"),\"width\":\"21px\",\"height\":\"21px\"}}),_vm._v(\" \"+_vm._s(item.field)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.value)+\" \")])])}),0)]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-card>\n <v-card-title\n style=\"background-color: #4fb052; color: white;\"\n >\n {{ _.get(analysisData[0], 'value') }}\n </v-card-title>\n\n <v-simple-table dense>\n <template v-slot:default>\n <tbody>\n <tr\n v-for=\"(item, i) in analysisData.slice(1)\"\n :key=\"item.field\"\n :class=\"{'dark': (i % 2 !== 0)}\"\n >\n <td style=\"display: flex; align-items: center;\">\n <img\n :src=\"`/img/${item.icon}.svg`\"\n class=\"mr-1\"\n width=\"21px\"\n height=\"21px\"\n >\n {{ item.field }}\n </td>\n <td>\n {{ item.value }}\n </td>\n </tr>\n </tbody>\n </template>\n </v-simple-table>\n </v-card>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\n\nconst { CsiAnalysis } = models.api;\nexport default {\n name: 'PartAnalysisTable',\n props: {\n part: Object,\n },\n computed: {\n analysisData() {\n let tableData = [];\n\n if (this.part) {\n tableData = _.get(CsiAnalysis.getFromStore(this.part.Item), 'data', []);\n }\n\n if (_.isEmpty(tableData)) {\n tableData = [\n { field: null, value: 'Manufacturability & Design' },\n { field: 'Unfolding', value: '-' },\n { field: 'Bend to Hole', value: '-' },\n { field: 'Hole to Edge', value: '-' },\n { field: 'Bend Radius', value: '-' },\n { field: 'Bend to Edge', value: '-' },\n { field: 'Hole Size vs Thickness', value: '-' },\n ];\n } else {\n tableData = tableData.filter(datum => datum.Category === 'T1')\n .sort((datum1, datum2) => +datum1.Rank - +datum2.Rank)\n .map(datum => ({ field: datum.Description, value: datum.Value }));\n }\n\n const message = _.get(this.part, 'EstimateLineStatus.isManufacturableMsg', '-');\n const isManufacturable = _.get(this.part, 'EstimateLineStatus.isManufacturable');\n tableData.push({\n field: 'Warnings', value: (isManufacturable ? message : '-'), color: 'error',\n });\n tableData.push({\n field: 'Errors', value: (isManufacturable ? '-' : message), icon: 'clock', color: 'grey',\n });\n\n const icons = { Pass: 'check-mark', Fail: 'error' };\n return tableData.map(row => ({ ...{ icon: _.get(icons, row.value, 'error') }, ...row }));\n },\n }\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartAnalysisTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartAnalysisTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PartAnalysisTable.vue?vue&type=template&id=4e550506&scoped=true&\"\nimport script from \"./PartAnalysisTable.vue?vue&type=script&lang=js&\"\nexport * from \"./PartAnalysisTable.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 \"4e550506\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VCardTitle,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"1070px\"}},[(!(_vm.status.isMeshUploaded || _vm.status.isSvgUploaded) || _vm.currentErrorMessage)?_c('v-card',{staticClass:\"pa-4\"},[_c('v-container',{staticClass:\"py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',[(_vm.showWaitingInfoLabel)?_c('v-alert',{staticClass:\"ma-0\",attrs:{\"color\":\"#E7F1F8\"}},[_c('div',{staticClass:\"body-2\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"9999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"color\":\"#1479BD\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-information-outline \")])]}}],null,false,132282453)},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.infoTooltip'))}})]),_vm._v(\" \"+_vm._s(_vm.$t('common.Info'))+\" - \"+_vm._s(_vm.$t('common.infoWaitingTooltip'))+\" \")],1)]):_vm._e(),_vm._l((_vm._.get(_vm.part, 'AnalysisData.errors_and_warnings', [])),function(we,index){return _c('v-alert',{key:index,attrs:{\"close\":\"ma-0\",\"color\":_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#F3D9DE' : '#f8f2ec'}},[_c('div',{staticClass:\"body-2 font-weight-bold text-uppercase\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"9999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"color\":_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#B00020' :'#C77500'}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' ? 'mdi-alert-circle-outline' : 'mdi-alert-outline')+\" \")])]}}],null,true)},[(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error')?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.errorTooltip'))}}):_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.errorTooltip'))}})]),_vm._v(\" \"+_vm._s(_vm.$t((\"common.\" + (_vm.ErrorAndWarningCodeMapping[we.code]))))+\" - \"+_vm._s(_vm.$t((\"errorAndWarning.\" + (we.code))))+\" \")],1),(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' && we.code === 202)?_c('span',{staticClass:\"text--secondary caption\"},[_vm._v(\" \"+_vm._s(_vm.$t('errorAndWarning.unsupportedSldprtVersionCaption'))+\" \")]):(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error')?_c('span',{staticClass:\"text--secondary caption\"},[_vm._v(\" \"+_vm._s(_vm.$t('errorAndWarning.errorThicknessCaption'))+\" \")]):(_vm.ErrorAndWarningCodeMapping[we.code] === 'Warning' && (we.code !== '301'))?_c('span',{staticClass:\"text--secondary caption\"},[_vm._v(\" \"+_vm._s(_vm.$t('errorAndWarning.warningCaption'))+\" \")]):_c('span',{staticClass:\"text--secondary caption\"},[_vm._v(\" \"+_vm._s(_vm.$t('errorAndWarning.warningThicknessCaption'))+\" \")]),_c('a',{staticClass:\"caption font-weight-bold mr-0\",on:{\"click\":function($event){_vm.isGuideLineVisible = true}}},[_vm._v(_vm._s(_vm.$t('errorAndWarning.reviewGuidelines'))),_c('span',{staticClass:\" mdi mdi-chevron-right\",staticStyle:{\"font-size\":\"20px\",\"vertical-align\":\"bottom\"}})])])}),(_vm.currentErrorMessage)?_c('v-alert',{attrs:{\"color\":\"#F3D9DE\"}},[_c('div',{staticClass:\"body-2 font-weight-bold\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"9999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"mr-1\",staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"color\":\"#B00020\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-alert-circle-outline \")])]}}],null,false,1649899894)},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.errorTooltip'))}})]),_c('div',{staticClass:\"d-inline\"},[_c('span',{staticClass:\"text-uppercase\"},[(_vm.$te(_vm.currentErrorMessage))?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('common.Error'))+\" - \"+_vm._s(_vm.$t(_vm.currentErrorMessage))+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('common.Error'))+\" - \"+_vm._s(_vm.$t('common.serverResponseError'))+\" \"),(_vm.part.is2dModel)?_c('p',{staticClass:\"text--secondary caption mb-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.pleaseCheckUploadedDxfFilesErrorMessage'))+\" \"),_c('a',{attrs:{\"href\":\"https://www.komacut.com/resources/drawing-guidelines/\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.drawingGuidelines'))+\" \")])]):_c('p',{staticClass:\"text--secondary caption mb-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('errorAndWarning.modelIsBrokenCaption'))+\" \")])])])])],1)]):_vm._e()],2)],1),_c('v-row',[_c('v-col',{staticClass:\"text-left d-flex\"},[_c('v-icon',{attrs:{\"color\":_vm.currentErrorMessage ? 'error' : 'primary',\"x-large\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.currentErrorMessage ? 'mdi-alert-circle-outline' : 'mdi-file-image-outline')+\" \")]),_c('div',{staticClass:\"ml-5 d-flex justify-center flex-column\"},[_c('span',{class:[{ 'error--text': _vm.currentErrorMessage }, 'font-weight-bold d-flex']},[_vm._v(\" \"+_vm._s(_vm.part.CustFileName)+\" \")]),(!_vm.currentErrorMessage)?_c('span',{staticClass:\"font-weight-light\",attrs:{\"data-cy\":\"status-upload\"}},[_vm._v(\" \"+_vm._s(_vm.currentUploadStatus)+\" \")]):_vm._e()])],1),(_vm.currentErrorMessage)?_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"cols\":\"3\"}},[(_vm.isEngineDetectionError || _vm.showReRunAsTurningButton)?[_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.retryUpload(_vm.part, 'sheet-metal')}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" mdi-reload \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.retryUploadAsSheetMetal'))+\" \")],1),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.retryUpload(_vm.part, 'turning')}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" mdi-reload \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.retryUploadAsTurning'))+\" \")],1)]:[_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.retryUpload(_vm.part)}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" mdi-reload \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.retryUpload'))+\" \")],1)]],2):_vm._e(),_c('v-col',{staticClass:\"d-flex justify-end align-center\"},[(!_vm.currentErrorMessage)?_c('span',{staticClass:\"mr-10\"},[_vm._v(\" \"+_vm._s(Math.round(_vm.part.uploadProgress))+\"% \"+_vm._s(_vm.$t('common.of'))+\" \"+_vm._s(_vm.part.fileSize === 'NaNundefined' ? '0kB' : _vm.part.fileSize)+\" \"+_vm._s(_vm.$t('common.uploaded'))+\" \")]):_vm._e(),_c('v-btn',{attrs:{\"icon\":\"\",\"color\":!_vm.currentErrorMessage ? 'primary' : 'error'},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('remove', _vm.part)}}},[_c('v-icon',[_vm._v(\" mdi-close \")])],1)],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pt-0\"},[_c('v-progress-linear',{attrs:{\"value\":_vm.currentErrorMessage ? 100 : _vm.uploadProgress,\"height\":\"10\",\"rounded\":\"\",\"indeterminate\":!_vm.currentErrorMessage && _vm.uploadProgress === 100,\"color\":_vm.currentErrorMessage ? 'error' : 'primary'}})],1)],1)],1)],1):(_vm.part.Status === 'Working')?_c('v-card',[_c('core-compact-part-card',{attrs:{\"part\":_vm.part,\"customer-price-range\":_vm.customerPriceRange,\"upload-thumbnail\":_vm.uploadThumbnail,\"is-mesh-visible\":_vm.isMeshVisible,\"on-thumb-click\":function () { return _vm.$emit('thumbnail:clicked', _vm.part); }}})],1):_c('v-card',{staticClass:\"pa-5\",attrs:{\"max-width\":\"1170px\"}},[(!_vm._.isEmpty(_vm.infoLabels))?_c('v-alert',{attrs:{\"color\":\"#E7F1F8\"}},[_c('div',{staticClass:\"body-2\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"9999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"color\":\"#1479BD\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-information-outline \")])]}}],null,false,132282453)},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.infoTooltip'))}})]),_vm._v(\" \"+_vm._s(_vm.$t('common.Info'))+\" - \"),_vm._l((_vm.infoLabels),function(value,key,index){return _c('span',{key:key},[(key === 'bendsInfoLabel' && value === 0)?_c('span',[(Object.keys(_vm.infoLabels).length - 1 !== index)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('infoLabels.noBendDetectedLabel'))+\", \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('infoLabels.noBendDetectedLabel'))+\" \")])]):(Object.keys(_vm.infoLabels).length - 1 !== index)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t((\"infoLabels.\" + key), { 'Param': value }))+\", \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t((\"infoLabels.\" + key), { 'Param': value }))+\" \")])])}),_vm._v(\" \"+_vm._s(_vm.$t('common.detected'))+\" \")],2)]):_vm._e(),(_vm._.get(_vm.part, 'AnalysisData.errors_and_warnings', []).filter(function (e) { return _vm.ErrorAndWarningCodeMapping[e.code] === 'Warning'; }).length)?_c('v-alert',{attrs:{\"color\":\"#f8f2ec\"}},_vm._l((_vm._.get(_vm.part, 'AnalysisData.errors_and_warnings', []).filter(function (e) { return _vm.ErrorAndWarningCodeMapping[e.code] === 'Warning'; })),function(we,index){return _c('span',{key:index},[_c('div',{staticClass:\"body-2\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"9999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"color\":_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#B00020' :'#C77500'}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' ? 'mdi-alert-circle-outline' : 'mdi-alert-outline')+\" \")])]}}],null,true)},[(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error')?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.errorTooltip'))}}):_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.waringTooltip'))}})]),_vm._v(\" \"+_vm._s(_vm.$t((\"common.\" + (_vm.ErrorAndWarningCodeMapping[we.code]))))+\" - \"+_vm._s(_vm.$t((\"errorAndWarning.\" + (we.code))))+\" \")],1)])}),0):_vm._e(),_vm._l((_vm._.get(_vm.part, 'AnalysisData.errors_and_warnings', []).filter(function (e) { return _vm.ErrorAndWarningCodeMapping[e.code] === 'Error'; })),function(we,index){return _c('v-alert',{key:index,attrs:{\"color\":_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#F3D9DE' :'#f8f2ec'}},[_c('div',{staticClass:\"body-2 font-weight-bold text-uppercase\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"9999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"color\":_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#B00020' :'#C77500'}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' ? 'mdi-alert-circle-outline' : 'mdi-alert-outline')+\" \")])]}}],null,true)},[(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error')?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.errorTooltip'))}}):_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.waringTooltip'))}})]),_vm._v(\" \"+_vm._s(_vm.$t((\"common.\" + (_vm.ErrorAndWarningCodeMapping[we.code]))))+\" - \"+_vm._s(_vm.$t((\"errorAndWarning.\" + (we.code))))+\" \"),(_vm.showReRunAsTurningButton)?_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.retryUpload(_vm.part, 'turning')}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" mdi-reload \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.retryUploadAsTurning'))+\" \")],1):_vm._e()],1),(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error')?_c('span',{staticClass:\"text--secondary caption\"},[_vm._v(\" \"+_vm._s(_vm.$t('errorAndWarning.errorCaption'))+\" \")]):_vm._e(),(_vm.ErrorAndWarningCodeMapping[we.code] === 'Warning' && (we.code !== 301))?_c('span',{staticClass:\"text--secondary caption\"},[_vm._v(\" \"+_vm._s(_vm.$t('errorAndWarning.warningCaption'))+\" \")]):_vm._e(),(_vm.ErrorAndWarningCodeMapping[we.code] === 'Warning' && (we.code === 301))?_c('span',{staticClass:\"text--secondary caption\"},[_vm._v(\" \"+_vm._s(_vm.$t('errorAndWarning.warningThicknessCaption'))+\" \")]):_vm._e(),_c('a',{staticClass:\"caption font-weight-bold mr-0\",on:{\"click\":function($event){_vm.isGuideLineVisible = true}}},[_vm._v(_vm._s(_vm.$t('errorAndWarning.reviewGuidelines'))),_c('span',{staticClass:\" mdi mdi-chevron-right\",staticStyle:{\"font-size\":\"20px\",\"vertical-align\":\"bottom\"}})])])}),(_vm.part.EstimateLineStatus.isMainAnalysisCompletedMsg)?_c('v-alert',{attrs:{\"color\":\"#F3D9DE\"}},[_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"9999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"mr-1\",staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"color\":\"#B00020\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-alert-circle-outline \")])]}}],null,false,1649899894)},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.errorTooltip'))}})]),(_vm.isOdooError)?[_c('span',{staticClass:\"body-2 font-weight-bold text-uppercase\"},[_vm._v(_vm._s(_vm.$t('common.Error')))]),_vm._v(\" - \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.odooErrorMessage)}}),_c('a',{staticClass:\"mr-0\",on:{\"click\":function($event){return _vm.$router.push('/tools/process')}}},[_vm._v(\" \"+_vm._s(_vm.$t('CSIError.ProcessLimitations.LinkLabel'))+\" \")])]:(_vm.checkErrorMessage(_vm.status.isMainAnalysisCompletedMsg))?[_c('span',{staticClass:\"body-2 font-weight-bold text-uppercase\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.Error'))+\" \")]),_c('br'),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.errorFormat(_vm.status.isMainAnalysisCompletedMsg))}})]:[(_vm.checkTranslation(_vm.$t(_vm.status.isMainAnalysisCompletedMsg)))?[_c('span',{staticClass:\"body-2 font-weight-bold text-uppercase\"},[_vm._v(_vm._s(_vm.$t('common.Error')))]),_vm._v(\" - \"+_vm._s(_vm.removeLinklabel(_vm.$t(_vm.status.isMainAnalysisCompletedMsg)))+\" \"),_c('a',{staticClass:\"mr-0\",on:{\"click\":function($event){return _vm.$router.push('/tools/process')}}},[_vm._v(_vm._s(_vm.$t('CSIError.ProcessLimitations.LinkLabel')))])]:[_c('span',{staticClass:\"body-2 font-weight-bold text-uppercase\"},[_vm._v(_vm._s(_vm.$t('common.Error')))]),_vm._v(\" - \"+_vm._s(_vm.$t(_vm.status.isMainAnalysisCompletedMsg, {Param1: _vm.status.CsiErrorParam}))+\" \")]]],2):_vm._e(),_c('div',{staticStyle:{\"display\":\"grid\",\"grid-template-columns\":\"min-content auto\"}},[_c('div',{staticStyle:{\"width\":\"174px\",\"display\":\"flex\",\"flex-direction\":\"column\",\"align-items\":\"center\"}},[_c('core-model-viewer',{class:{ 'blip-3d': _vm.isMeshVisible },attrs:{\"part\":_vm.part,\"width\":150,\"height\":150,\"is-mesh-uploaded\":_vm.status.isMeshUploaded,\"is-svg-uploaded\":_vm.status.isSvgUploaded},on:{\"click\":function($event){$event.stopPropagation();return (function () {\n _vm.$emit('thumbnail:clicked', _vm.part);\n }).apply(null, arguments)},\"load:mesh\":_vm.uploadThumbnail}}),(_vm.isSheetMetalMachine && !_vm.part.is2dModel)?[(!_vm.status.isManufacturableMsg)?_c('div',{staticClass:\"caption font-weight-light grey--text\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.detectedThickness'))+\" \")]):_vm._e(),_c('div',{staticClass:\"font-weight-bold\"},[(_vm.checkThickness)?_c('v-icon',{staticStyle:{\"vertical-align\":\"unset\"},attrs:{\"color\":\"#C77500\"}},[_vm._v(\" mdi-alert-outline \")]):_vm._e(),_c('span',{style:(_vm.checkThickness ? {'color':'#C77500'} : {})},[_vm._v(\" \"+_vm._s(_vm.detectedThickness === 0 ? _vm.$t('views.instantQuote.detectingThickness') : _vm.detectedThickness ? (\" \" + _vm.detectedThickness + \"mm\") : '-')+\" \")])],1)]:(!_vm.isSheetMetalMachine)?[(!_vm.status.isManufacturableMsg)?_c('div',{staticClass:\"caption font-weight-light grey--text\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.detectedOuterDia'))+\" \")]):_vm._e(),_c('div',{staticClass:\"font-weight-bold\"},[(_vm.checkOuterDia)?_c('v-icon',{staticStyle:{\"vertical-align\":\"unset\"},attrs:{\"color\":\"#C77500\"}},[_vm._v(\" mdi-alert-outline \")]):_vm._e(),_c('span',{style:(_vm.checkOuterDia ? {'color':'#C77500'} : {})},[_vm._v(\" \"+_vm._s(_vm.detectedOuterDia === 0 ? _vm.$t('views.instantQuote.detectingOuterDia') : _vm.detectedOuterDia ? (\" \" + _vm.detectedOuterDia + \"mm\") : '-')+\" \")])],1)]:_vm._e(),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\",\"data-cy\":\"view-details-upload\"},on:{\"click\":function($event){$event.stopPropagation();return (function () {\n _vm.$emit('thumbnail:clicked', _vm.part);\n }).apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('common.viewDetails'))+\" \"),_c('v-icon',{attrs:{\"small\":\"\",\"right\":\"\"}},[_vm._v(\" mdi-arrow-right \")])],1)],2),_c('div',[_c('div',{staticClass:\"pb-2\",staticStyle:{\"display\":\"flex\",\"width\":\"725px\"}},[_c('span',{staticClass:\"text-h6 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.part.CustFileName)+\" \")]),_c('v-spacer'),_c('div',{staticClass:\"font-weight-light text-uppercase\",class:{\n 'grey--text': !_vm.status.isMainAnalysisCompleted,\n calculateCostOk : _vm.status.isMainAnalysisCompleted\n }},[_vm._v(\" \"+_vm._s(_vm.$t(_vm.status.isMainAnalysisCompleted ? 'views.instantQuote.calculated' : 'views.instantQuote.notCalculated'))+\" \"),_c('v-icon',{class:{ calculateCostOk : _vm.status.isMainAnalysisCompleted },attrs:{\"right\":\"\",\"size\":\"30\"}},[_vm._v(\" mdi-check \")])],1)],1),_c('v-form',{ref:\"partOptions\",model:{value:(_vm.arePartOptionsValid),callback:function ($$v) {_vm.arePartOptionsValid=$$v},expression:\"arePartOptionsValid\"}},[_c('div',{staticClass:\"pb-2\",staticStyle:{\"display\":\"grid\",\"grid-template-columns\":\"3fr 1fr 3fr 2.8fr\",\"grid-column-gap\":\"10px\"}},[_c('v-text-field',{staticClass:\"inputHeight\",attrs:{\"maxlength\":\"21\",\"data-cy\":\"part-input-upload\",\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"placeholder\":_vm.$t('views.instantQuote.partNumberPlaceholder'),\"label\":_vm.$t('views.instantQuote.partNumber'),\"rules\":[_vm.isRequired,_vm.maxLength(20),_vm.containAlphabetsNumbersHyphensUnderscoreSpace],\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){_vm.status.isMainAnalysisCompleted = false;}},model:{value:(_vm.part.CustItemName),callback:function ($$v) {_vm.$set(_vm.part, \"CustItemName\", $$v)},expression:\"part.CustItemName\"}}),_c('v-text-field',{staticClass:\"inputHeight\",attrs:{\"min\":\"0\",\"max\":\"99\",\"data-cy\":\"revision-input-upload\",\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"rules\":[_vm.isZeroOrGreaterInteger],\"type\":\"number\",\"label\":_vm.$t('views.instantQuote.revision'),\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},nativeOn:{\"input\":function($event){_vm.part.RevisionNumber = Math.abs(Math.trunc($event.target.value));\n _vm.part.RevisionNumber = _vm.part.RevisionNumber > 99 ? 99 : _vm.part.RevisionNumber\n _vm.status.isMainAnalysisCompleted = false;}},model:{value:(_vm.part.RevisionNumber),callback:function ($$v) {_vm.$set(_vm.part, \"RevisionNumber\", $$v)},expression:\"part.RevisionNumber\"}}),_c('v-text-field',{staticClass:\"inputHeight\",attrs:{\"maxlength\":\"40\",\"data-cy\":\"description-input-upload\",\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"placeholder\":_vm.$t('views.instantQuote.descriptionPlaceholder'),\"rules\":[_vm.isRequired],\"label\":_vm.$t('common.description'),\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"change\":function($event){_vm.status.isMainAnalysisCompleted = false;}},model:{value:(_vm.part.CustItemDesc),callback:function ($$v) {_vm.$set(_vm.part, \"CustItemDesc\", $$v)},expression:\"part.CustItemDesc\"}}),_c('v-radio-group',{staticClass:\"mt-n1\",attrs:{\"row\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.resetPartFormFields},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-subtitle-2\"},[_vm._v(\"Select Production Location \"),_c('span',{staticClass:\"font-weight-bold\",staticStyle:{\"color\":\"black\",\"background-color\":\"#95FC91\",\"border\":\"1px solid #95FC91\",\"border-radius\":\"5px\",\"padding\":\"0px 2px\"}},[_vm._v(\"NEW\")])])]},proxy:true}]),model:{value:(_vm.part.FactoryId),callback:function ($$v) {_vm.$set(_vm.part, \"FactoryId\", $$v)},expression:\"part.FactoryId\"}},[_c('v-radio',{attrs:{\"value\":_vm.chinaFactoryId},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-subtitle-1\"},[_vm._v(\"China\")])]},proxy:true}])}),(_vm.isMexicoQuotationAllowed)?_c('v-radio',{attrs:{\"value\":_vm.mexicoFactoryId},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-subtitle-1\"},[_vm._v(\"Mexico\")])]},proxy:true}],null,false,1671111355)}):_vm._e()],1)],1),_c('div',{staticStyle:{\"display\":\"grid\",\"grid-template-columns\":\"200px 200px 190px auto\",\"grid-gap\":\"10px\"}},[_c('div',[_c('v-select',{ref:\"materialSelector\",staticClass:\"pb-2\",attrs:{\"data-cy\":\"material-input-upload\",\"items\":_vm.materials,\"label\":_vm.$t('views.instantQuote.material'),\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"rules\":[_vm.isRequired],\"item-text\":_vm.locale === 'en-US' ? 'Description' : 'DescriptionCHS',\"item-value\":\"RowPointer\",\"persistent-hint\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"change\":function($event){_vm.part.MaterialStr = _vm.materials.find(function (m) { return m.RowPointer === $event; }).Description;\n _vm.part.MaterialStrCHS = _vm.materials.find(function (m) { return m.RowPointer === $event; }).DescriptionCHS;\n _vm.part.MaterialCategory = _vm.materials.find(function (m) { return m.RowPointer === $event; }).Category;\n _vm.part.MaterialSeries = '';\n _vm.part.MaterialSeriesStr = '';\n _vm.part.MaterialThickness = '';\n _vm.part.MaterialThicknessValue = null;\n _vm.part.MaterialThicknessStr = '';\n _vm.part.MaterialFinish = '';\n _vm.part.MaterialFinishStr = '';\n _vm.part.MaterialFinishOption = '';\n _vm.part.MaterialFinishOptionStr = '';\n _vm.status.isMainAnalysisCompleted = false;\n _vm.part.MaterialDimensions = {};\n _vm.part.PriceMOQ ? _vm.part.PriceMOQ = null : '';}},model:{value:(_vm.part.Material),callback:function ($$v) {_vm.$set(_vm.part, \"Material\", $$v)},expression:\"part.Material\"}}),_c('v-select',{ref:\"finishSelector\",staticClass:\"pb-2\",attrs:{\"data-cy\":\"finish-input-upload\",\"items\":_vm.finishes,\"rules\":[_vm.isRequired],\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected || !_vm.part.MaterialThickness || _vm.isFinishesFindPending,\"item-disabled\":function (finish) { return !_vm.legalFinishes.some(function (lf) { return lf.RowPointer === finish.RowPointer; }); },\"loading\":_vm.isFinishesFindPending,\"label\":_vm.$t('views.instantQuote.finish'),\"item-text\":_vm.locale === 'en-US' ? 'Description' : 'DescriptionCHS',\"item-value\":\"_id\",\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"change\":function($event){_vm.$refs.partOptions.validate();\n _vm.part.MaterialFinishStr = _vm.finishes.find(function (m) { return m._id === $event; }).Description\n _vm.part.MaterialFinishStrCHS = _vm.finishes.find(function (m) { return m._id === $event; }).DescriptionCHS\n _vm.part.MaterialFinishOption = '';\n _vm.part.MaterialFinishOptionStr = '';\n _vm.status.isMainAnalysisCompleted = false;\n _vm.part.PriceMOQ ? _vm.part.PriceMOQ = null : '';}},model:{value:(_vm.part.MaterialFinish),callback:function ($$v) {_vm.$set(_vm.part, \"MaterialFinish\", $$v)},expression:\"part.MaterialFinish\"}}),_c('v-text-field',{staticClass:\"d-flex pb-2\",attrs:{\"data-cy\":\"quantity-input-upload\",\"min\":_vm.minReqQty,\"label\":_vm.$t('views.instantQuote.quantity'),\"rules\":[_vm.isPositiveInteger],\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()}},nativeOn:{\"input\":function($event){_vm.part.ReqQty = Math.max(Math.abs(Math.trunc($event.target.value)), 0);_vm.status.isMainAnalysisCompleted = false;}},model:{value:(_vm.part.ReqQty),callback:function ($$v) {_vm.$set(_vm.part, \"ReqQty\", _vm._n($$v))},expression:\"part.ReqQty\"}}),(_vm.showCountersinkField)?_c('v-text-field',{staticClass:\"d-flex pb-2\",attrs:{\"data-cy\":\"countersinks-input-upload\",\"min\":\"0\",\"max\":_vm.noOfHoles,\"label\":_vm.$t('views.instantQuote.countersinks'),\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()}},nativeOn:{\"input\":function($event){_vm.part.Countersinks = Math.max(Math.abs(Math.trunc($event.target.value)), 0);_vm.status.isMainAnalysisCompleted = false; _vm.addCountersinks();}},model:{value:(_vm.part.Countersinks),callback:function ($$v) {_vm.$set(_vm.part, \"Countersinks\", _vm._n($$v))},expression:\"part.Countersinks\"}}):_vm._e()],1),_c('div',[_c('v-select',{staticClass:\"pb-2\",attrs:{\"data-cy\":\"series-input-upload\",\"items\":_vm.series,\"label\":_vm.$t('views.instantQuote.series'),\"rules\":[_vm.isRequired],\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected || !_vm.part.Material,\"item-text\":_vm.locale === 'en-US' ? _vm.getTranslationSeries('Description') : _vm.getTranslationSeries('DescriptionCHS'),\"item-value\":\"RowPointer\",\"persistent-hint\":\"\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){_vm.part.MaterialSeriesStr = _vm.series.find(function (m) { return m.RowPointer === $event; }).Description;\n _vm.part.MaterialSeriesStrCHS = _vm.series.find(function (m) { return m.RowPointer === $event; }).DescriptionCHS;\n _vm.part.MaterialFinish = '';\n _vm.part.MaterialFinishOption = '';\n _vm.status.isMainAnalysisCompleted = false;\n _vm.part.MaterialDimensions = {};\n _vm.part.PriceMOQ ? _vm.part.PriceMOQ = null : '';}},model:{value:(_vm.part.MaterialSeries),callback:function ($$v) {_vm.$set(_vm.part, \"MaterialSeries\", $$v)},expression:\"part.MaterialSeries\"}}),_c('v-select',{staticClass:\"pb-2\",attrs:{\"data-cy\":\"finish-options-input-upload\",\"items\":_vm.options,\"rules\":[function (v) { return _vm.options.length === 0 || _vm.isRequired(v); }],\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected || !_vm.part.MaterialFinish || _vm.options.length === 0,\"label\":_vm.$t('views.instantQuote.finishOption'),\"item-text\":_vm.locale === 'en-US' ? _vm.getTranslationFinish('Description') : _vm.getTranslationFinish('DescriptionCHS'),\"item-value\":\"RowPointer\",\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"change\":function($event){_vm.part.MaterialFinishOptionStr = _vm.options.find(function (m) { return m.RowPointer === $event; }).Description;\n _vm.status.isMainAnalysisCompleted = false;\n _vm.part.PriceMOQ ? _vm.part.PriceMOQ = null : '';}},model:{value:(_vm.part.MaterialFinishOption),callback:function ($$v) {_vm.$set(_vm.part, \"MaterialFinishOption\", $$v)},expression:\"part.MaterialFinishOption\"}}),(_vm.showThreadField)?_c('v-text-field',{staticClass:\"d-flex\",attrs:{\"data-cy\":\"thread-input-upload\",\"min\":\"0\",\"max\":_vm.noOfHoles,\"label\":_vm.$t('views.instantQuote.threads'),\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()}},nativeOn:{\"input\":function($event){_vm.part.Threads = Math.max(Math.abs(Math.trunc($event.target.value)), 0);_vm.status.isMainAnalysisCompleted = false; _vm.addThreads();}},model:{value:(_vm.part.Threads),callback:function ($$v) {_vm.$set(_vm.part, \"Threads\", _vm._n($$v))},expression:\"part.Threads\"}}):_vm._e(),(_vm.showCounterboreField)?_c('v-text-field',{staticClass:\"d-flex pb-2 mt-2\",attrs:{\"data-cy\":\"counterbores-input-upload\",\"min\":\"0\",\"max\":_vm.noOfHoles,\"label\":_vm.$t('views.instantQuote.counterbores'),\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()}},nativeOn:{\"input\":function($event){_vm.part.Counterbores = Math.max(Math.abs(Math.trunc($event.target.value)), 0);_vm.status.isMainAnalysisCompleted = false; _vm.addCounterbores();}},model:{value:(_vm.part.Counterbores),callback:function ($$v) {_vm.$set(_vm.part, \"Counterbores\", _vm._n($$v))},expression:\"part.Counterbores\"}}):_vm._e()],1),_c('div',[_c('div',{staticClass:\"pb-3\"},[(_vm.isSheetMetalMachine || _vm.isDebugModeEnabled)?_c('v-select',{attrs:{\"value\":_vm.part.MaterialThickness,\"items\":_vm.thicknesses,\"rules\":[_vm.isRequired],\"disabled\":_vm.isCalculatingCost || !_vm.part.MaterialSeries || _vm.isErrorDetected,\"label\":_vm.$t('views.instantQuote.thickness'),\"item-text\":_vm.locale === 'en-US' ? 'Description' : 'DescriptionCHS',\"item-value\":\"_id\",\"data-cy\":\"thickness-input-upload\",\"dense\":\"\",\"return-object\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"change\":function($event){_vm.part.MaterialThickness = $event._id;\n _vm.part.MaterialThicknessValue = _vm.generateThicknessFromCode($event.Code);\n _vm.part.MaterialThicknessStr = _vm.selectedThickness.Description;\n _vm.part.MaterialThicknessStrCHS = _vm.selectedThickness.DescriptionCHS;\n _vm.part.MaterialDimensions = {\n SheetLength: $event.SheetLength,\n SheetWidth: $event.SheetWidth,\n };\n _vm.part.MaterialFinish = '';\n _vm.part.MaterialFinishOption = '';\n _vm.status.isMainAnalysisCompleted = false;\n _vm.part.PriceMOQ ? _vm.part.PriceMOQ = null : '';}}}):_vm._e(),(_vm.isTurningMachine)?_c('v-select',{attrs:{\"data-cy\":\"roughness-input-upload\",\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"items\":_vm.roughnessValues,\"item-text\":\"label\",\"item-value\":\"value\",\"label\":(\"\" + (_vm.$t('views.instantQuote.roughness'))),\"rules\":[_vm.isRequired],\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"change\":function($event){_vm.status.isMainAnalysisCompleted = false;\n _vm.part.PriceMOQ ? _vm.part.PriceMOQ = null : '';}},model:{value:(_vm.part.Roughness),callback:function ($$v) {_vm.$set(_vm.part, \"Roughness\", $$v)},expression:\"part.Roughness\"}}):_vm._e(),_c('v-select',{staticClass:\"pb-2 mt-2\",attrs:{\"data-cy\":\"tolerances-input-upload\",\"full-width\":false,\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"items\":_vm.toleranceValues,\"item-text\":\"label\",\"item-value\":\"value\",\"label\":((_vm.$t('views.instantQuote.tolerances')) + \"     \"),\"rules\":[_vm.isRequired],\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"change\":function($event){_vm.status.isMainAnalysisCompleted = false;\n _vm.part.PriceMOQ ? _vm.part.PriceMOQ = null : '';}},model:{value:(_vm.part.Tolerance),callback:function ($$v) {_vm.$set(_vm.part, \"Tolerance\", $$v)},expression:\"part.Tolerance\"}}),_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"5\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"mb-2\",staticStyle:{\"position\":\"relative\",\"top\":\"-62px\",\"right\":\"-72px\",\"cursor\":\"pointer\"},attrs:{\"color\":\"primary\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-information \")])]}}])},[(_vm.isSheetMetalMachine)?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('views.instantQuote.toleranceTooltip'))}}):_c('span',[_c('v-simple-table',{staticStyle:{\"background-color\":\"transparent\",\"color\":\"inherit\"},attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',{staticClass:\"text-uppercase text-center\",staticStyle:{\"color\":\"inherit\"},attrs:{\"colspan\":\"4\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.linearDimensions'))+\" \")])])]),_c('tbody',{staticClass:\"text-center\"},[_c('tr',[_c('td',{staticClass:\"header\",staticStyle:{\"width\":\"180px\"},attrs:{\"rowspan\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.deviations'))+\" \")]),_c('td',{staticClass:\"header\",staticStyle:{\"width\":\"250px\"},attrs:{\"colspan\":\"3\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.toleranceClass'))+\" \")])]),_c('tr',[_c('td',{staticClass:\"header\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.fineIso'))),_c('br'),_vm._v(\" (\"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.fine'))+\") \")]),_c('td',{staticClass:\"header\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.mediumIso'))),_c('br'),_vm._v(\" (\"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.medium'))+\") \")]),_c('td',{staticClass:\"header\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.coarseIso'))),_c('br'),_vm._v(\" (\"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.coarse'))+\") \")])]),_vm._l((_vm.cncTurningLinearDimensions),function(item,index){return _c('tr',{key:index},[_c('td',{staticClass:\"font-weight-bold text-left\"},[_vm._v(\" \"+_vm._s(item.deviations)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.fine)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.medium)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.coarse)+\" \")])])})],2)]},proxy:true}])}),_c('i',[_vm._v(\"More details, please see Engineering tools/Process Detail\")])],1)]),_c('v-btn',{staticStyle:{\"margin-top\":\"-30px\"},attrs:{\"color\":\"primary\",\"data-cy\":\"calculate-upload\",\"disabled\":!_vm.canCalculateCost,\"loading\":_vm.isCalculatingCost,\"outlined\":\"\",\"block\":\"\"},on:{\"click\":function($event){$event.stopPropagation();_vm.errorArray;_vm.part.EstimateLineStatus.isMainAnalysisCompletedMsg = ''; _vm.part.need2dDrawing = _vm.needPdf; _vm.$emit('calculatecost', _vm.part)}}},[_vm._v(\" \"+_vm._s(_vm.$t(_vm.part.EstimateLineStatus.isMainAnalysisEverCalled ? 'views.instantQuote.recalculateThis' : 'views.instantQuote.calculateThis'))+\" \")])],1)]),_c('div',[_c('core-price-moq-table-unit-price-variation',{attrs:{\"part\":_vm.part}})],1)])])],1)]),_c('div',{staticStyle:{\"display\":\"grid\",\"grid-template-columns\":\"550px auto\"}},[_c('div',[_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\",\"data-cy\":\"delete-upload\"},on:{\"click\":function($event){$event.stopPropagation();_vm.deleteDialog = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-delete \")]),_vm._v(\" \"+_vm._s(_vm.$t('common.delete'))+\" \")],1),(_vm.needSvg)?_c('core-upload-svg-drawing',{attrs:{\"part\":_vm.part}}):_vm._e(),(_vm.needPdf)?_c('core-technical-drawing-pdf',{attrs:{\"part\":_vm.part}}):_vm._e()],1)]),(_vm.isDebugModeEnabled)?_c('div',[_c('span',{staticClass:\"text-h6 font-weight-bold\"},[_vm._v(\"Add Custom Data to Engine Response\")]),_c('v-form',{ref:\"customDataToAddForm\",staticClass:\"ma-2\",on:{\"submit\":function($event){$event.preventDefault();return _vm.addCustomDataToEngineResponse.apply(null, arguments)}}},[_c('v-row',[_c('v-text-field',{staticClass:\"mt-4\",attrs:{\"min\":\"0\",\"type\":\"number\",\"rules\":[_vm.isPositiveInteger],\"outlined\":\"\",\"dense\":\"\",\"label\":\"Total Threads\",\"placeholder\":\"Enter total number of threaded holes\",\"hide-details\":\"\"},model:{value:(_vm.customThreadCountToAdd),callback:function ($$v) {_vm.customThreadCountToAdd=$$v},expression:\"customThreadCountToAdd\"}})],1),_c('v-row',[_c('v-spacer'),_c('v-btn',{staticClass:\"my-4\",attrs:{\"color\":\"primary\",\"type\":\"submit\",\"disabled\":_vm.isPatchPending,\"loading\":_vm.isPatchPending,\"outlined\":\"\"}},[_vm._v(\" Add Custom Data \")])],1)],1),_c('v-divider'),_c('pre',[_vm._v(\" \"+_vm._s(_vm._.get(_vm.part, 'AnalysisData', 'No results'))+\"\\n \")]),_c('v-divider'),_c('pre',[_vm._v(\" \"+_vm._s(_vm._.get(_vm.part, 'PricingData', '{}'))+\"\\n \")]),_c('v-divider'),_c('pre',[_vm._v(\" \"+_vm._s(_vm._.get(_vm.part, 'SecondaryAnalysisData', 'No results'))+\"\\n \")]),(_vm.twoDNestingResultSvgUrl)?_c('img',{staticClass:\"my-2\",staticStyle:{\"min-width\":\"100%\"},attrs:{\"src\":_vm.twoDNestingResultSvgUrl,\"alt\":\"nestingEngineOutput\"}}):_vm._e()],1):_vm._e()],2),(_vm.deleteDialog)?_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"500px\",\"data-cy\":\"delete-dialog-upload\",\"ok-button-text\":_vm.$t('common.delete')},on:{\"click:ok\":function($event){_vm.part.remove();\n _vm.deleteDialog = false;},\"click:cancel\":function($event){_vm.deleteDialog = false}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.deleteDialogTitle'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"pa-10 text-center\"},[_c('span',{staticClass:\"d-block\",domProps:{\"innerHTML\":_vm._s(_vm.$t('common.deleteDialogText', { name: _vm.part.CustFileName }))}})])]},proxy:true}],null,false,3342648333),model:{value:(_vm.deleteDialog),callback:function ($$v) {_vm.deleteDialog=$$v},expression:\"deleteDialog\"}}):_vm._e(),_c('v-navigation-drawer',{staticClass:\"px-4\",staticStyle:{\"background-color\":\"#f5f5f5\",\"overflow-x\":\"visible !important\",\"z-index\":\"199 !important\"},attrs:{\"width\":\"860\",\"fixed\":\"\",\"right\":\"\",\"temporary\":\"\"},model:{value:(_vm.isGuideLineVisible),callback:function ($$v) {_vm.isGuideLineVisible=$$v},expression:\"isGuideLineVisible\"}},[_c('div',{staticClass:\"mt-3\",staticStyle:{\"min-width\":\"800px\",\"overflow-x\":\"visible !important\"}},[_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('span',{staticClass:\"d-flex mr-9 font-weight-medium\",staticStyle:{\"font-size\":\"16px\"}},[_vm._v(_vm._s(_vm.$t(\"sidePanelErrorAndWarning.title\")))]),_c('div',{staticClass:\"caption mb-3\",staticStyle:{\"width\":\"450px\",\"line-height\":\"0 !important\"}},[_c('v-icon',{staticStyle:{\"vertical-align\":\"baseline\"},attrs:{\"left\":\"\",\"color\":\"#B00020\"}},[_vm._v(\" mdi-alert-circle-outline \")]),_c('div',{staticClass:\"d-inline mb-0\"},[_c('span',{staticStyle:{\"vertical-align\":\"super\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.errors'))}})]),_c('p',{staticClass:\"mb-1 mt-0\"},[_c('v-icon',{staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"left\":\"\",\"color\":\"#C77500\"}},[_vm._v(\" mdi-alert-outline \")]),_c('span',{staticStyle:{\"vertical-align\":\"sub\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.warnings'))}})],1)],1),_c('v-btn',{staticClass:\"justify-end ml-5 mt-0\",attrs:{\"icon\":\"\",\"plain\":\"\",\"text\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){_vm.isGuideLineVisible = false}}},[_c('v-icon',{staticClass:\"mb-7\",attrs:{\"left\":\"\"}},[_vm._v(\" mdi-close \")])],1)],1),_c('div',[_c('instantQuoteGuideLine')],1)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div style=\"width: 1070px;\">\n <v-card\n v-if=\"!(status.isMeshUploaded || status.isSvgUploaded) || currentErrorMessage\"\n class=\"pa-4\"\n >\n <v-container fluid class=\"py-0\">\n <v-row>\n <v-col>\n <v-alert\n v-if=\"showWaitingInfoLabel\"\n color=\"#E7F1F8\"\n class=\"ma-0\"\n >\n <div class=\"body-2\">\n <v-tooltip top z-index=\"9999\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon\n v-bind=\"attrs\"\n color=\"#1479BD\"\n style=\"vertical-align: sub\"\n v-on=\"on\"\n >\n mdi-information-outline\n </v-icon>\n </template>\n <span v-html=\"$t('sidePanelErrorAndWarning.infoTooltip')\" />\n </v-tooltip>\n {{ $t('common.Info') }} -\n {{ $t('common.infoWaitingTooltip') }}\n </div>\n </v-alert>\n <v-alert\n v-for=\"(we, index) in _.get(part, 'AnalysisData.errors_and_warnings', []) \"\n :key=\"index\"\n close=\"ma-0\"\n :color=\"ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#F3D9DE' : '#f8f2ec'\"\n >\n <div class=\"body-2 font-weight-bold text-uppercase\">\n <v-tooltip top z-index=\"9999\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon\n v-bind=\"attrs\"\n :color=\"ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#B00020' :'#C77500'\"\n style=\"vertical-align: sub\"\n v-on=\"on\"\n >\n {{\n ErrorAndWarningCodeMapping[we.code] === 'Error' ? 'mdi-alert-circle-outline' : 'mdi-alert-outline'\n }}\n </v-icon>\n </template>\n <span\n v-if=\"ErrorAndWarningCodeMapping[we.code] === 'Error'\"\n v-html=\"$t('sidePanelErrorAndWarning.errorTooltip')\"\n />\n <span v-else v-html=\"$t('sidePanelErrorAndWarning.errorTooltip')\" />\n </v-tooltip>\n {{ $t(`common.${ErrorAndWarningCodeMapping[we.code]}`) }} - {{ $t(`errorAndWarning.${we.code}`) }}\n </div>\n <span v-if=\"ErrorAndWarningCodeMapping[we.code] === 'Error' && we.code === 202\" class=\"text--secondary caption\">\n {{ $t('errorAndWarning.unsupportedSldprtVersionCaption') }}\n </span>\n <span\n v-else-if=\"ErrorAndWarningCodeMapping[we.code] === 'Error'\"\n class=\"text--secondary caption\"\n >\n {{ $t('errorAndWarning.errorThicknessCaption') }}\n </span>\n <span\n v-else-if=\"ErrorAndWarningCodeMapping[we.code] === 'Warning' && (we.code !== '301')\"\n class=\"text--secondary caption\"\n >\n {{ $t('errorAndWarning.warningCaption') }}\n </span>\n <span v-else class=\"text--secondary caption\">\n {{ $t('errorAndWarning.warningThicknessCaption') }}\n </span>\n <a\n class=\"caption font-weight-bold mr-0\"\n @click=\"isGuideLineVisible = true\"\n >{{ $t('errorAndWarning.reviewGuidelines') }}<span\n style=\"font-size: 20px; vertical-align: bottom\"\n class=\" mdi mdi-chevron-right\"\n /> </a>\n </v-alert>\n\n <v-alert\n v-if=\"currentErrorMessage\"\n color=\"#F3D9DE\"\n >\n <div class=\"body-2 font-weight-bold\">\n <v-tooltip top z-index=\"9999\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon\n v-bind=\"attrs\"\n class=\"mr-1\"\n color=\"#B00020\"\n style=\"vertical-align: sub\"\n v-on=\"on\"\n >\n mdi-alert-circle-outline\n </v-icon>\n </template>\n <span v-html=\"$t('sidePanelErrorAndWarning.errorTooltip')\" />\n </v-tooltip>\n <div class=\"d-inline\">\n <span class=\"text-uppercase\">\n <span v-if=\"$te(currentErrorMessage)\">\n {{ $t('common.Error') }} - {{ $t(currentErrorMessage) }}\n </span>\n <span v-else>\n {{ $t('common.Error') }} - {{ $t('common.serverResponseError') }}\n <p v-if=\"part.is2dModel\" class=\"text--secondary caption mb-0\">\n {{ $t('common.pleaseCheckUploadedDxfFilesErrorMessage') }}\n <a href=\"https://www.komacut.com/resources/drawing-guidelines/\" target=\"_blank\">\n {{ $t('common.drawingGuidelines') }}\n </a>\n </p>\n <p v-else class=\"text--secondary caption mb-0\">\n {{ $t('errorAndWarning.modelIsBrokenCaption') }}\n </p>\n </span>\n </span>\n </div>\n </div>\n </v-alert>\n </v-col>\n </v-row>\n <v-row>\n <v-col class=\"text-left d-flex\">\n <v-icon\n :color=\"currentErrorMessage ? 'error' : 'primary'\"\n x-large\n >\n {{ currentErrorMessage ? 'mdi-alert-circle-outline' : 'mdi-file-image-outline' }}\n </v-icon>\n\n <div class=\"ml-5 d-flex justify-center flex-column\">\n <span :class=\"[{ 'error--text': currentErrorMessage }, 'font-weight-bold d-flex']\">\n {{ part.CustFileName }}\n </span>\n\n <span v-if=\"!currentErrorMessage\" class=\"font-weight-light\" data-cy=\"status-upload\">\n {{ currentUploadStatus }}\n </span>\n </div>\n </v-col>\n\n <v-col\n v-if=\"currentErrorMessage\"\n cols=\"3\"\n class=\"d-flex align-center\"\n >\n <template v-if=\"isEngineDetectionError || showReRunAsTurningButton\">\n <v-btn color=\"primary\" text @click=\"retryUpload(part, 'sheet-metal')\">\n <v-icon small left>\n mdi-reload\n </v-icon>\n {{ $t('views.instantQuote.retryUploadAsSheetMetal') }}\n </v-btn>\n <v-btn color=\"primary\" text @click=\"retryUpload(part, 'turning')\">\n <v-icon small left>\n mdi-reload\n </v-icon>\n {{ $t('views.instantQuote.retryUploadAsTurning') }}\n </v-btn>\n </template>\n <template v-else>\n <v-btn color=\"primary\" text @click=\"retryUpload(part)\">\n <v-icon small left>\n mdi-reload\n </v-icon>\n {{ $t('views.instantQuote.retryUpload') }}\n </v-btn>\n </template>\n </v-col>\n\n <v-col class=\"d-flex justify-end align-center\">\n <span v-if=\"!currentErrorMessage\" class=\"mr-10\">\n <!-- TODO localization -->\n <!-- Need to explicitely check for string value 'NaNundefined' -->\n {{ Math.round(part.uploadProgress) }}% {{\n $t('common.of')\n }} {{ part.fileSize === 'NaNundefined' ? '0kB' : part.fileSize }} {{ $t('common.uploaded') }}\n </span>\n\n <v-btn\n icon\n :color=\"!currentErrorMessage ? 'primary' : 'error'\"\n @click.stop=\"$emit('remove', part)\"\n >\n <v-icon>\n mdi-close\n </v-icon>\n </v-btn>\n </v-col>\n </v-row>\n <v-row>\n <v-col class=\"pt-0\">\n <v-progress-linear\n :value=\"currentErrorMessage ? 100 : uploadProgress\"\n height=\"10\"\n rounded\n :indeterminate=\"!currentErrorMessage && uploadProgress === 100\"\n :color=\"currentErrorMessage ? 'error' : 'primary'\"\n />\n </v-col>\n </v-row>\n </v-container>\n </v-card>\n\n <v-card v-else-if=\"part.Status === 'Working'\">\n <core-compact-part-card\n :part=\"part\"\n :customer-price-range=\"customerPriceRange\"\n :upload-thumbnail=\"uploadThumbnail\"\n :is-mesh-visible=\"isMeshVisible\"\n :on-thumb-click=\"() => $emit('thumbnail:clicked', part)\"\n />\n </v-card>\n\n <v-card v-else class=\"pa-5\" max-width=\"1170px\">\n <!-- Info labels -->\n <v-alert\n v-if=\"!_.isEmpty(infoLabels)\"\n color=\"#E7F1F8\"\n >\n <div class=\"body-2\">\n <v-tooltip top z-index=\"9999\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon\n v-bind=\"attrs\"\n color=\"#1479BD\"\n style=\"vertical-align: sub\"\n v-on=\"on\"\n >\n mdi-information-outline\n </v-icon>\n </template>\n <span v-html=\"$t('sidePanelErrorAndWarning.infoTooltip')\" />\n </v-tooltip>\n {{ $t('common.Info') }} -\n <span\n v-for=\"(value, key, index) in infoLabels\"\n :key=\"key\"\n >\n <span v-if=\"key === 'bendsInfoLabel' && value === 0\">\n <span v-if=\"Object.keys(infoLabels).length - 1 !== index\">\n {{ $t('infoLabels.noBendDetectedLabel') }},\n </span>\n <span v-else>\n {{ $t('infoLabels.noBendDetectedLabel') }}\n </span>\n </span>\n <span v-else-if=\"Object.keys(infoLabels).length - 1 !== index\">\n {{ $t(`infoLabels.${key}`, { 'Param': value }) }},\n </span>\n <span v-else>\n {{ $t(`infoLabels.${key}`, { 'Param': value }) }}\n </span>\n </span>\n {{ $t('common.detected') }}\n </div>\n </v-alert>\n\n <!-- Warnings -->\n <v-alert\n v-if=\"_.get(part, 'AnalysisData.errors_and_warnings', []).filter(e => ErrorAndWarningCodeMapping[e.code] === 'Warning').length\"\n color=\"#f8f2ec\"\n >\n <span\n v-for=\"(we, index) in _.get(part, 'AnalysisData.errors_and_warnings', []).filter(e => ErrorAndWarningCodeMapping[e.code] === 'Warning')\"\n :key=\"index\"\n >\n <div class=\"body-2\">\n <v-tooltip top z-index=\"9999\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon\n v-bind=\"attrs\"\n :color=\"ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#B00020' :'#C77500'\"\n style=\"vertical-align: sub\"\n v-on=\"on\"\n >\n {{ ErrorAndWarningCodeMapping[we.code] === 'Error' ? 'mdi-alert-circle-outline' : 'mdi-alert-outline' }}\n </v-icon>\n </template>\n <span\n v-if=\"ErrorAndWarningCodeMapping[we.code] === 'Error'\"\n v-html=\"$t('sidePanelErrorAndWarning.errorTooltip')\"\n />\n <span v-else v-html=\"$t('sidePanelErrorAndWarning.waringTooltip')\" />\n </v-tooltip>\n {{ $t(`common.${ErrorAndWarningCodeMapping[we.code]}`) }} - {{ $t(`errorAndWarning.${we.code}`) }}\n </div>\n </span>\n </v-alert>\n <!-- Errors -->\n <v-alert\n v-for=\"(we, index) in _.get(part, 'AnalysisData.errors_and_warnings', []).filter(e => ErrorAndWarningCodeMapping[e.code] === 'Error')\"\n :key=\"index\"\n :color=\"ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#F3D9DE' :'#f8f2ec' \"\n >\n <div class=\"body-2 font-weight-bold text-uppercase\">\n <v-tooltip top z-index=\"9999\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon\n v-bind=\"attrs\"\n :color=\"ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#B00020' :'#C77500'\"\n style=\"vertical-align: sub\"\n v-on=\"on\"\n >\n {{ ErrorAndWarningCodeMapping[we.code] === 'Error' ? 'mdi-alert-circle-outline' : 'mdi-alert-outline' }}\n </v-icon>\n </template>\n <span\n v-if=\"ErrorAndWarningCodeMapping[we.code] === 'Error'\"\n v-html=\"$t('sidePanelErrorAndWarning.errorTooltip')\"\n />\n <span v-else v-html=\"$t('sidePanelErrorAndWarning.waringTooltip')\" />\n </v-tooltip>\n {{ $t(`common.${ErrorAndWarningCodeMapping[we.code]}`) }} - {{ $t(`errorAndWarning.${we.code}`) }}\n <v-btn\n v-if=\"showReRunAsTurningButton\"\n color=\"primary\"\n text\n @click=\"retryUpload(part, 'turning')\"\n >\n <v-icon small left>\n mdi-reload\n </v-icon>\n {{ $t('views.instantQuote.retryUploadAsTurning') }}\n </v-btn>\n </div>\n <span v-if=\"ErrorAndWarningCodeMapping[we.code] === 'Error'\" class=\"text--secondary caption\">\n {{ $t('errorAndWarning.errorCaption') }}\n </span>\n <span\n v-if=\"ErrorAndWarningCodeMapping[we.code] === 'Warning' && (we.code !== 301)\"\n class=\"text--secondary caption\"\n >\n {{ $t('errorAndWarning.warningCaption') }}\n </span>\n <span\n v-if=\"ErrorAndWarningCodeMapping[we.code] === 'Warning' && (we.code === 301)\"\n class=\"text--secondary caption\"\n >\n {{ $t('errorAndWarning.warningThicknessCaption') }}\n </span>\n <a\n class=\"caption font-weight-bold mr-0\"\n @click=\"isGuideLineVisible = true\"\n >{{ $t('errorAndWarning.reviewGuidelines') }}<span\n style=\"font-size: 20px; vertical-align: bottom\"\n class=\" mdi mdi-chevron-right\"\n /> </a>\n </v-alert>\n <v-alert\n v-if=\"part.EstimateLineStatus.isMainAnalysisCompletedMsg\"\n color=\"#F3D9DE\"\n >\n <v-tooltip top z-index=\"9999\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon\n v-bind=\"attrs\"\n class=\"mr-1\"\n color=\"#B00020\"\n style=\"vertical-align: sub\"\n v-on=\"on\"\n >\n mdi-alert-circle-outline\n </v-icon>\n </template>\n <span v-html=\"$t('sidePanelErrorAndWarning.errorTooltip')\" />\n </v-tooltip>\n <template v-if=\"isOdooError\">\n <span class=\"body-2 font-weight-bold text-uppercase\">{{ $t('common.Error') }}</span> -\n <span v-html=\"odooErrorMessage\" />\n <a class=\"mr-0\" @click=\"$router.push('/tools/process') \">\n {{ $t('CSIError.ProcessLimitations.LinkLabel') }}\n </a>\n </template>\n <template v-else-if=\"checkErrorMessage(status.isMainAnalysisCompletedMsg)\">\n <span class=\"body-2 font-weight-bold text-uppercase\">\n {{ $t('common.Error') }}\n </span>\n <br>\n <span v-html=\"errorFormat(status.isMainAnalysisCompletedMsg)\" />\n </template>\n <template v-else>\n <template v-if=\"checkTranslation($t(status.isMainAnalysisCompletedMsg))\">\n <span class=\"body-2 font-weight-bold text-uppercase\">{{ $t('common.Error') }}</span> -\n {{ removeLinklabel($t(status.isMainAnalysisCompletedMsg)) }}\n <a class=\"mr-0\" @click=\"$router.push('/tools/process') \">{{\n $t('CSIError.ProcessLimitations.LinkLabel')\n }}</a>\n </template>\n <template v-else>\n <span class=\"body-2 font-weight-bold text-uppercase\">{{ $t('common.Error') }}</span> -\n {{ $t(status.isMainAnalysisCompletedMsg, {Param1: status.CsiErrorParam}) }}\n </template>\n </template>\n </v-alert>\n <div style=\"display: grid; grid-template-columns: min-content auto;\">\n <div style=\"width: 174px; display:flex; flex-direction: column; align-items: center;\">\n <core-model-viewer\n :part=\"part\"\n :width=\"150\"\n :height=\"150\"\n :is-mesh-uploaded=\"status.isMeshUploaded\"\n :is-svg-uploaded=\"status.isSvgUploaded\"\n :class=\"{ 'blip-3d': isMeshVisible }\"\n @click.stop=\"() => {\n $emit('thumbnail:clicked', part);\n }\"\n @load:mesh=\"uploadThumbnail\"\n />\n\n <template v-if=\"isSheetMetalMachine && !part.is2dModel\">\n <div\n v-if=\"!status.isManufacturableMsg\"\n class=\"caption font-weight-light grey--text\"\n >\n {{ $t('views.instantQuote.detectedThickness') }}\n </div>\n <div class=\"font-weight-bold\">\n <v-icon v-if=\"checkThickness\" color=\"#C77500\" style=\"vertical-align: unset\">\n mdi-alert-outline\n </v-icon>\n <span :style=\"checkThickness ? {'color':'#C77500'} : {}\">\n {{\n detectedThickness === 0 ? $t('views.instantQuote.detectingThickness') : detectedThickness ? ` ${detectedThickness}mm` : '-'\n }}\n </span>\n </div>\n </template>\n <template v-else-if=\"!isSheetMetalMachine\">\n <div\n v-if=\"!status.isManufacturableMsg\"\n class=\"caption font-weight-light grey--text\"\n >\n {{ $t('views.instantQuote.detectedOuterDia') }}\n </div>\n <div class=\"font-weight-bold\">\n <v-icon v-if=\"checkOuterDia\" color=\"#C77500\" style=\"vertical-align: unset\">\n mdi-alert-outline\n </v-icon>\n <span :style=\"checkOuterDia ? {'color':'#C77500'} : {}\">\n {{\n detectedOuterDia === 0 ? $t('views.instantQuote.detectingOuterDia') : detectedOuterDia ? ` ${detectedOuterDia}mm` : '-'\n }}\n </span>\n </div>\n </template>\n\n <v-btn\n text\n color=\"primary\"\n data-cy=\"view-details-upload\"\n @click.stop=\"() => {\n $emit('thumbnail:clicked', part);\n }\"\n >\n {{ $t('common.viewDetails') }}\n <v-icon small right>\n mdi-arrow-right\n </v-icon>\n </v-btn>\n </div>\n <div>\n <div\n style=\"display: flex; width: 725px;\"\n class=\"pb-2\"\n >\n <span class=\"text-h6 font-weight-bold\">\n {{ part.CustFileName }}\n </span>\n\n <v-spacer />\n\n <div\n :class=\"{\n 'grey--text': !status.isMainAnalysisCompleted,\n calculateCostOk : status.isMainAnalysisCompleted\n }\"\n class=\"font-weight-light text-uppercase\"\n >\n {{\n $t(status.isMainAnalysisCompleted ? 'views.instantQuote.calculated' : 'views.instantQuote.notCalculated')\n }}\n <v-icon\n right\n size=\"30\"\n :class=\"{ calculateCostOk : status.isMainAnalysisCompleted }\"\n >\n mdi-check\n </v-icon>\n </div>\n </div>\n <v-form ref=\"partOptions\" v-model=\"arePartOptionsValid\">\n <div\n style=\"display: grid;\n grid-template-columns: 3fr 1fr 3fr 2.8fr;\n grid-column-gap: 10px;\"\n class=\"pb-2\"\n >\n <v-text-field\n v-model=\"part.CustItemName\"\n maxlength=\"21\"\n class=\"inputHeight\"\n data-cy=\"part-input-upload\"\n :disabled=\"isCalculatingCost || isErrorDetected\"\n :placeholder=\"$t('views.instantQuote.partNumberPlaceholder')\"\n :label=\"$t('views.instantQuote.partNumber')\"\n :rules=\"[isRequired,maxLength(20),containAlphabetsNumbersHyphensUnderscoreSpace]\"\n outlined\n dense\n @change=\"status.isMainAnalysisCompleted = false;\"\n />\n <v-text-field\n v-model=\"part.RevisionNumber\"\n min=\"0\"\n max=\"99\"\n data-cy=\"revision-input-upload\"\n :disabled=\"isCalculatingCost || isErrorDetected\"\n :rules=\"[isZeroOrGreaterInteger]\"\n type=\"number\"\n class=\"inputHeight\"\n :label=\"$t('views.instantQuote.revision')\"\n outlined\n dense\n hide-details\n @input.native=\"\n part.RevisionNumber = Math.abs(Math.trunc($event.target.value));\n part.RevisionNumber = part.RevisionNumber > 99 ? 99 : part.RevisionNumber\n status.isMainAnalysisCompleted = false;\"\n />\n <v-text-field\n v-model=\"part.CustItemDesc\"\n maxlength=\"40\"\n class=\"inputHeight\"\n data-cy=\"description-input-upload\"\n :disabled=\"isCalculatingCost || isErrorDetected\"\n :placeholder=\"$t('views.instantQuote.descriptionPlaceholder')\"\n :rules=\"[isRequired]\"\n :label=\"$t('common.description')\"\n outlined\n dense\n hide-details\n @change=\"status.isMainAnalysisCompleted = false;\"\n />\n <v-radio-group\n v-model=\"part.FactoryId\"\n class=\"mt-n1\"\n row\n hide-details\n @change=\"resetPartFormFields\"\n >\n <template #label>\n <span class=\"text-subtitle-2\">Select Production Location <span class=\"font-weight-bold\" style=\"color: black; background-color: #95FC91; border: 1px solid #95FC91; border-radius: 5px; padding: 0px 2px;\">NEW</span></span>\n </template>\n <v-radio\n :value=\"chinaFactoryId\"\n >\n <template #label>\n <span class=\"text-subtitle-1\">China</span>\n </template>\n </v-radio>\n <v-radio\n v-if=\"isMexicoQuotationAllowed\"\n :value=\"mexicoFactoryId\"\n >\n <template #label>\n <span class=\"text-subtitle-1\">Mexico</span>\n </template>\n </v-radio>\n </v-radio-group>\n </div>\n\n <div\n style=\"display: grid;\n grid-template-columns: 200px 200px 190px auto;\n grid-gap: 10px;\"\n >\n <div>\n <v-select\n ref=\"materialSelector\"\n v-model=\"part.Material\"\n class=\"pb-2\"\n data-cy=\"material-input-upload\"\n :items=\"materials\"\n :label=\"$t('views.instantQuote.material')\"\n :disabled=\"isCalculatingCost || isErrorDetected\"\n :rules=\"[isRequired]\"\n :item-text=\"locale === 'en-US' ? 'Description' : 'DescriptionCHS'\"\n item-value=\"RowPointer\"\n persistent-hint\n dense\n hide-details\n outlined\n @change=\"\n part.MaterialStr = materials.find(m => m.RowPointer === $event).Description;\n part.MaterialStrCHS = materials.find(m => m.RowPointer === $event).DescriptionCHS;\n part.MaterialCategory = materials.find(m => m.RowPointer === $event).Category;\n part.MaterialSeries = '';\n part.MaterialSeriesStr = '';\n part.MaterialThickness = '';\n part.MaterialThicknessValue = null;\n part.MaterialThicknessStr = '';\n part.MaterialFinish = '';\n part.MaterialFinishStr = '';\n part.MaterialFinishOption = '';\n part.MaterialFinishOptionStr = '';\n status.isMainAnalysisCompleted = false;\n part.MaterialDimensions = {};\n part.PriceMOQ ? part.PriceMOQ = null : '';\n \"\n />\n\n <v-select\n ref=\"finishSelector\"\n v-model=\"part.MaterialFinish\"\n class=\"pb-2\"\n data-cy=\"finish-input-upload\"\n :items=\"finishes\"\n :rules=\"[isRequired]\"\n :disabled=\"isCalculatingCost || isErrorDetected || !part.MaterialThickness || isFinishesFindPending\"\n :item-disabled=\"finish => !legalFinishes.some(lf => lf.RowPointer === finish.RowPointer)\"\n :loading=\"isFinishesFindPending\"\n :label=\"$t('views.instantQuote.finish')\"\n :item-text=\"locale === 'en-US' ? 'Description' : 'DescriptionCHS'\"\n item-value=\"_id\"\n dense\n hide-details\n outlined\n @change=\"\n $refs.partOptions.validate();\n part.MaterialFinishStr = finishes.find(m => m._id === $event).Description\n part.MaterialFinishStrCHS = finishes.find(m => m._id === $event).DescriptionCHS\n part.MaterialFinishOption = '';\n part.MaterialFinishOptionStr = '';\n status.isMainAnalysisCompleted = false;\n part.PriceMOQ ? part.PriceMOQ = null : '';\n \"\n />\n <v-text-field\n v-model.number=\"part.ReqQty\"\n class=\"d-flex pb-2\"\n data-cy=\"quantity-input-upload\"\n :min=\"minReqQty\"\n :label=\"$t('views.instantQuote.quantity')\"\n :rules=\"[isPositiveInteger]\"\n :disabled=\"isCalculatingCost || isErrorDetected\"\n type=\"number\"\n hide-details\n outlined\n dense\n @input.native=\"part.ReqQty = Math.max(Math.abs(Math.trunc($event.target.value)), 0);status.isMainAnalysisCompleted = false;\"\n @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n />\n <v-text-field\n v-if=\"showCountersinkField\"\n v-model.number=\"part.Countersinks\"\n class=\"d-flex pb-2\"\n data-cy=\"countersinks-input-upload\"\n min=\"0\"\n :max=\"noOfHoles\"\n :label=\"$t('views.instantQuote.countersinks')\"\n :disabled=\"isCalculatingCost || isErrorDetected\"\n type=\"number\"\n hide-details\n outlined\n dense\n @input.native=\"part.Countersinks = Math.max(Math.abs(Math.trunc($event.target.value)), 0);status.isMainAnalysisCompleted = false; addCountersinks();\"\n @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n />\n </div>\n\n <div>\n <v-select\n v-model=\"part.MaterialSeries\"\n data-cy=\"series-input-upload\"\n :items=\"series\"\n :label=\"$t('views.instantQuote.series')\"\n :rules=\"[isRequired]\"\n :disabled=\"isCalculatingCost || isErrorDetected || !part.Material\"\n :item-text=\"locale === 'en-US' ? getTranslationSeries('Description') : getTranslationSeries('DescriptionCHS')\"\n class=\"pb-2\"\n item-value=\"RowPointer\"\n persistent-hint\n hide-details\n outlined\n dense\n @change=\"\n part.MaterialSeriesStr = series.find(m => m.RowPointer === $event).Description;\n part.MaterialSeriesStrCHS = series.find(m => m.RowPointer === $event).DescriptionCHS;\n part.MaterialFinish = '';\n part.MaterialFinishOption = '';\n status.isMainAnalysisCompleted = false;\n part.MaterialDimensions = {};\n part.PriceMOQ ? part.PriceMOQ = null : '';\n \"\n />\n <v-select\n v-model=\"part.MaterialFinishOption\"\n data-cy=\"finish-options-input-upload\"\n class=\"pb-2\"\n :items=\"options\"\n :rules=\"[v => options.length === 0 || isRequired(v)]\"\n :disabled=\"isCalculatingCost || isErrorDetected || !part.MaterialFinish || options.length === 0\"\n :label=\"$t('views.instantQuote.finishOption')\"\n :item-text=\"locale === 'en-US' ? getTranslationFinish('Description') : getTranslationFinish('DescriptionCHS')\"\n item-value=\"RowPointer\"\n dense\n hide-details\n outlined\n @change=\"\n part.MaterialFinishOptionStr = options.find(m => m.RowPointer === $event).Description;\n status.isMainAnalysisCompleted = false;\n part.PriceMOQ ? part.PriceMOQ = null : '';\n \"\n />\n <v-text-field\n v-if=\"showThreadField\"\n v-model.number=\"part.Threads\"\n class=\"d-flex\"\n data-cy=\"thread-input-upload\"\n min=\"0\"\n :max=\"noOfHoles\"\n :label=\"$t('views.instantQuote.threads')\"\n :disabled=\"isCalculatingCost || isErrorDetected\"\n type=\"number\"\n hide-details\n outlined\n dense\n @input.native=\"part.Threads = Math.max(Math.abs(Math.trunc($event.target.value)), 0);status.isMainAnalysisCompleted = false; addThreads(); \"\n @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n />\n <v-text-field\n v-if=\"showCounterboreField\"\n v-model.number=\"part.Counterbores\"\n class=\"d-flex pb-2 mt-2\"\n data-cy=\"counterbores-input-upload\"\n min=\"0\"\n :max=\"noOfHoles\"\n :label=\"$t('views.instantQuote.counterbores')\"\n :disabled=\"isCalculatingCost || isErrorDetected\"\n type=\"number\"\n hide-details\n outlined\n dense\n @input.native=\"part.Counterbores = Math.max(Math.abs(Math.trunc($event.target.value)), 0);status.isMainAnalysisCompleted = false; addCounterbores();\"\n @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n />\n </div>\n\n <div>\n <div class=\"pb-3\">\n <v-select\n v-if=\"isSheetMetalMachine || isDebugModeEnabled\"\n :value=\"part.MaterialThickness\"\n :items=\"thicknesses\"\n :rules=\"[isRequired]\"\n :disabled=\"isCalculatingCost || !part.MaterialSeries || isErrorDetected\"\n :label=\"$t('views.instantQuote.thickness')\"\n :item-text=\"locale === 'en-US' ? 'Description' : 'DescriptionCHS'\"\n item-value=\"_id\"\n data-cy=\"thickness-input-upload\"\n dense\n return-object\n hide-details\n outlined\n @change=\"\n part.MaterialThickness = $event._id;\n part.MaterialThicknessValue = generateThicknessFromCode($event.Code);\n part.MaterialThicknessStr = selectedThickness.Description;\n part.MaterialThicknessStrCHS = selectedThickness.DescriptionCHS;\n part.MaterialDimensions = {\n SheetLength: $event.SheetLength,\n SheetWidth: $event.SheetWidth,\n };\n part.MaterialFinish = '';\n part.MaterialFinishOption = '';\n status.isMainAnalysisCompleted = false;\n part.PriceMOQ ? part.PriceMOQ = null : '';\n \"\n />\n <v-select\n v-if=\"isTurningMachine\"\n v-model=\"part.Roughness\"\n data-cy=\"roughness-input-upload\"\n :disabled=\"isCalculatingCost || isErrorDetected\"\n :items=\"roughnessValues\"\n item-text=\"label\"\n item-value=\"value\"\n :label=\"`${$t('views.instantQuote.roughness')}`\"\n :rules=\"[isRequired]\"\n dense\n hide-details\n outlined\n @change=\"\n status.isMainAnalysisCompleted = false;\n part.PriceMOQ ? part.PriceMOQ = null : '';\n \"\n />\n <v-select\n v-model=\"part.Tolerance\"\n class=\"pb-2 mt-2\"\n data-cy=\"tolerances-input-upload\"\n :full-width=\"false\"\n :disabled=\"isCalculatingCost || isErrorDetected\"\n :items=\"toleranceValues\"\n item-text=\"label\"\n item-value=\"value\"\n :label=\"`${$t('views.instantQuote.tolerances')} \\xa0 \\xa0 \\xa0 \\xa0`\"\n :rules=\"[isRequired]\"\n dense\n hide-details\n outlined\n @change=\"\n status.isMainAnalysisCompleted = false;\n part.PriceMOQ ? part.PriceMOQ = null : '';\n \"\n />\n <v-tooltip top z-index=\"5\">\n <span v-if=\"isSheetMetalMachine\" v-html=\"$t('views.instantQuote.toleranceTooltip')\" />\n <span v-else>\n <v-simple-table dense style=\"background-color: transparent; color: inherit;\">\n <template v-slot:default>\n <thead>\n <tr>\n <th colspan=\"4\" class=\"text-uppercase text-center\" style=\"color: inherit;\">\n {{ $t('views.engineeringTools.tabs.processLimitations.linearDimensions') }}\n </th>\n </tr>\n </thead>\n <tbody class=\"text-center\">\n <tr>\n <td rowspan=\"2\" class=\"header\" style=\"width: 180px;\">\n {{ $t('views.engineeringTools.tabs.processLimitations.deviations') }}\n </td>\n <td colspan=\"3\" class=\"header\" style=\"width: 250px;\">\n {{ $t('views.engineeringTools.tabs.processLimitations.toleranceClass') }}\n </td>\n </tr>\n <tr>\n <td class=\"header\">\n {{ $t('views.engineeringTools.tabs.processLimitations.fineIso') }}<br>\n ({{ $t('views.engineeringTools.tabs.processLimitations.fine') }})\n </td>\n <td class=\"header\">\n {{ $t('views.engineeringTools.tabs.processLimitations.mediumIso') }}<br>\n ({{ $t('views.engineeringTools.tabs.processLimitations.medium') }})\n </td>\n <td class=\"header\">\n {{ $t('views.engineeringTools.tabs.processLimitations.coarseIso') }}<br>\n ({{ $t('views.engineeringTools.tabs.processLimitations.coarse') }})\n </td>\n </tr>\n <tr v-for=\"(item, index) in cncTurningLinearDimensions\" :key=\"index\">\n <td class=\"font-weight-bold text-left\">\n {{ item.deviations }}\n </td>\n <td>\n {{ item.fine }}\n </td>\n <td>\n {{ item.medium }}\n </td>\n <td>\n {{ item.coarse }}\n </td>\n </tr>\n </tbody>\n </template>\n </v-simple-table>\n <i>More details, please see Engineering tools/Process Detail</i>\n </span>\n <template #activator=\"{ on, attrs }\">\n <v-icon\n style=\"position: relative; top:-62px; right: -72px; cursor: pointer;\"\n class=\"mb-2\"\n v-bind=\"attrs\"\n color=\"primary\"\n v-on=\"on\"\n >\n mdi-information\n </v-icon>\n </template>\n </v-tooltip>\n <v-btn\n color=\"primary\"\n style=\"margin-top: -30px;\"\n data-cy=\"calculate-upload\"\n :disabled=\"!canCalculateCost\"\n :loading=\"isCalculatingCost\"\n outlined\n block\n @click.stop=\"errorArray;part.EstimateLineStatus.isMainAnalysisCompletedMsg = ''; part.need2dDrawing = needPdf; $emit('calculatecost', part)\"\n >\n {{ $t(part.EstimateLineStatus.isMainAnalysisEverCalled ? 'views.instantQuote.recalculateThis' : 'views.instantQuote.calculateThis') }}\n </v-btn>\n </div>\n </div>\n\n <div>\n <core-price-moq-table-unit-price-variation :part=\"part\" />\n </div>\n </div>\n </v-form>\n </div>\n </div>\n\n <div style=\"display: grid; grid-template-columns: 550px auto;\">\n <div>\n <v-btn\n color=\"primary\"\n text\n data-cy=\"delete-upload\"\n @click.stop=\"deleteDialog = true\"\n >\n <v-icon left>\n mdi-delete\n </v-icon>\n {{ $t('common.delete') }}\n </v-btn>\n <core-upload-svg-drawing\n v-if=\"needSvg\"\n :part=\"part\"\n />\n <core-technical-drawing-pdf\n v-if=\"needPdf\"\n :part=\"part\"\n />\n </div>\n </div>\n\n <div v-if=\"isDebugModeEnabled\">\n <span class=\"text-h6 font-weight-bold\">Add Custom Data to Engine Response</span>\n <v-form ref=\"customDataToAddForm\" class=\"ma-2\" @submit.prevent=\"addCustomDataToEngineResponse\">\n <v-row>\n <v-text-field\n v-model=\"customThreadCountToAdd\"\n min=\"0\"\n type=\"number\"\n :rules=\"[isPositiveInteger]\"\n class=\"mt-4\"\n outlined\n dense\n label=\"Total Threads\"\n placeholder=\"Enter total number of threaded holes\"\n hide-details\n />\n </v-row>\n <v-row>\n <v-spacer />\n <v-btn\n color=\"primary\"\n class=\"my-4\"\n type=\"submit\"\n :disabled=\"isPatchPending\"\n :loading=\"isPatchPending\"\n outlined\n >\n Add Custom Data\n </v-btn>\n </v-row>\n </v-form>\n <v-divider />\n <pre>\n {{ _.get(part, 'AnalysisData', 'No results') }}\n </pre>\n <v-divider />\n <pre>\n {{ _.get(part, 'PricingData', '{}') }}\n </pre>\n <v-divider />\n <pre>\n {{ _.get(part, 'SecondaryAnalysisData', 'No results') }}\n </pre>\n <img\n v-if=\"twoDNestingResultSvgUrl\"\n class=\"my-2\"\n :src=\"twoDNestingResultSvgUrl\"\n style=\"min-width: 100%;\"\n alt=\"nestingEngineOutput\"\n >\n </div>\n </v-card>\n\n <core-dialog\n v-if=\"deleteDialog\"\n v-model=\"deleteDialog\"\n type=\"confirmation\"\n width=\"500px\"\n data-cy=\"delete-dialog-upload\"\n :ok-button-text=\"$t('common.delete')\"\n @click:ok=\"part.remove();\n deleteDialog = false;\"\n @click:cancel=\"deleteDialog = false\"\n >\n <template #title>\n {{ $t('views.instantQuote.deleteDialogTitle') }}\n </template>\n <template #content>\n <div class=\"pa-10 text-center\">\n <!-- There's gotta be a better way to handle linebreaks other than 'line1 <br> line2' -->\n <span\n class=\"d-block\"\n v-html=\"$t('common.deleteDialogText', { name: part.CustFileName })\"\n />\n </div>\n </template>\n </core-dialog>\n\n <v-navigation-drawer\n v-model=\"isGuideLineVisible\"\n class=\"px-4\"\n width=\"860\"\n fixed\n right\n temporary\n style=\"background-color:#f5f5f5; overflow-x: visible !important; z-index: 199 !important;\"\n >\n <div class=\"mt-3\" style=\"min-width:800px; overflow-x: visible !important;\">\n <div class=\"d-flex justify-space-between\">\n <span style=\"font-size: 16px\" class=\"d-flex mr-9 font-weight-medium\">{{\n $t(\"sidePanelErrorAndWarning.title\")\n }}</span>\n <div class=\"caption mb-3\" style=\"width: 450px; line-height: 0 !important;\">\n <v-icon left color=\"#B00020\" style=\"vertical-align: baseline\">\n mdi-alert-circle-outline\n </v-icon>\n <div class=\"d-inline mb-0\">\n <span style=\"vertical-align: super\" v-html=\"$t('sidePanelErrorAndWarning.errors')\" />\n </div>\n\n <p class=\"mb-1 mt-0\">\n <v-icon style=\"vertical-align: sub\" left color=\"#C77500\">\n mdi-alert-outline\n </v-icon>\n <span style=\"vertical-align: sub\" v-html=\"$t('sidePanelErrorAndWarning.warnings')\" />\n </p>\n </div>\n <v-btn\n class=\"justify-end ml-5 mt-0\"\n icon\n plain\n text\n x-large\n @click=\"isGuideLineVisible = false\"\n >\n <v-icon left class=\"mb-7\">\n mdi-close\n </v-icon>\n </v-btn>\n </div>\n <div>\n <instantQuoteGuideLine />\n </div>\n </div>\n </v-navigation-drawer>\n </div>\n</template>\n\n<script>\nimport { mapGetters, mapActions, mapState } from 'vuex';\nimport { models } from 'feathers-vuex';\nimport ddlogger from '@/utils/logger';\nimport FormRules from '@/mixins/form-rules';\nimport instantQuoteGuideLine from '@/components/core/InstantQuoteGuideLine.vue';\nimport cncTurningLinearDimensionsTableValues from '@/mixins/cncTurningLinearDimensionsTableValues';\nimport countriesAllowForMexicoQuotation from '@/constants/countries';\n\nconst { Material, Finish, Company } = models.api;\n\nconst BEND_ERROR_CODE = 509;\n\nexport default {\n name: 'UploadPartCard',\n mixins: [\n FormRules, cncTurningLinearDimensionsTableValues\n ],\n components: { instantQuoteGuideLine },\n\n props: {\n isDebugModeEnabled: Boolean,\n part: Object,\n retryUpload: Function,\n minReqQty: { type: Number, default: 1 },\n },\n\n data() {\n return {\n errorArray: [],\n\n isGuideLineVisible: false,\n isMeshVisible: false,\n fullScreen: false,\n deleteDialog: false,\n arePartOptionsValid: false,\n ErrorAndWarningCodeMapping: {\n 200: 'Error',\n 201: 'Error',\n 202: 'Error',\n 203: 'Error',\n 401: 'Error',\n 301: 'Warning',\n 302: 'Warning',\n 303: 'Warning',\n 304: 'Warning',\n 410: 'Error',\n 413: 'Error',\n 414: 'Error',\n 415: 'Error',\n 402: 'Error',\n 411: 'Error',\n 412: 'Error',\n 420: 'Error',\n 322: 'Warning',\n 323: 'Warning',\n 321: 'Warning',\n 451: 'Warning',\n 450: 'Error',\n 416: 'Error',\n 417: 'Error',\n 418: 'Error',\n 306: 'Warning',\n 307: 'Warning',\n 500: 'Error',\n 501: 'Error',\n 502: 'Error',\n 503: 'Error',\n 504: 'Error',\n 505: 'Error',\n 506: 'Error',\n 507: 'Error',\n 508: 'Error',\n 509: 'Error',\n 419: 'Error',\n },\n customThreadCountToAdd: null,\n timer: null,\n currentTime: new Date(),\n };\n },\n\n computed: {\n ...mapState('app', ['locale']),\n ...mapState('auth', ['accessToken']),\n ...mapState('temp-parts', ['isPatchPending']),\n ...mapGetters('finishes', { findFinishes: 'find' }),\n ...mapState('finishes', { isFinishesFindPending: 'isFindPending' }),\n\n chinaFactoryId: () => parseInt(process.env.VUE_APP_CHINA_FACTORY_ID, 10),\n mexicoFactoryId: () => parseInt(process.env.VUE_APP_MEXICO_FACTORY_ID, 10),\n\n company: () => Company.getFromStore(0),\n\n isMexicoQuotationAllowed: vm => countriesAllowForMexicoQuotation.includes(vm.company.country),\n\n status: vm => vm.part.EstimateLineStatus,\n\n toleranceValues: vm => {\n if (vm.isSheetMetalMachine) {\n return [\n {\n label: vm.$t('views.instantQuote.tolerancestandard'),\n value: 'Standard'\n },\n {\n label: vm.$t('views.instantQuote.tolerancehigh'),\n value: 'High Precision'\n }\n ];\n }\n return [\n {\n label: vm.$t('views.instantQuote.toleranceISO2768F'),\n value: 'ISO2768F'\n },\n {\n label: vm.$t('views.instantQuote.toleranceISO2768M'),\n value: 'ISO2768M'\n },\n {\n label: vm.$t('views.instantQuote.toleranceISO2768C'),\n value: 'ISO2768C'\n },\n ];\n },\n\n roughnessValues: vm => [\n {\n label: vm.$t('views.instantQuote.roughnessMilled'),\n value: '6.0'\n },\n {\n label: vm.$t('views.instantQuote.roughnessStandard'),\n value: '3.2'\n },\n {\n label: vm.$t('views.instantQuote.roughnessFine'),\n value: '1.6'\n },\n {\n label: vm.$t('views.instantQuote.roughnessGrade'),\n value: '0.8'\n },\n ],\n\n detectedThickness: vm => {\n if ((!vm.status.isManufacturable && !vm.status.isThicknessCalculated)) {\n return 0;\n }\n return vm.part.AnalysisData.thickness;\n },\n checkThickness() {\n return this.detectedThickness > 20;\n },\n detectedOuterDia: vm => {\n if ((!vm.status.isManufacturable && !vm.status.isOuterDiaCalculated)) {\n return 0;\n }\n return vm.part.AnalysisData.major_dia;\n },\n checkOuterDia() {\n return !(this.detectedOuterDia > 5 && this.detectedOuterDia < 300);\n },\n\n isErrorDetected() {\n const errorAndWarning = _.get(this.part, 'AnalysisData.errors_and_warnings', []);\n return errorAndWarning.some(EandW => this.ErrorAndWarningCodeMapping[EandW.code] === 'Error');\n },\n\n canCalculateCost: vm => !vm.isErrorDetected\n && vm.arePartOptionsValid\n && !vm.isCalculatingCost\n && vm.status.isManufacturable\n && !vm.status.isMainAnalysisComplete,\n\n // isCalculatingCost: ({ part, status }) => (part.isSavePending && !status.isMainAnalysisCompleted) || part.isMainAnalysisInProgress,\n isCalculatingCost: ({ status }) => status.isMainAnalysisInProgress,\n\n selectedThickness: vm => vm.thicknesses.find(t => t._id === vm.part.MaterialThickness),\n\n uploadProgress: vm => _.get(vm.part, 'uploadProgress', 100),\n\n isSheetMetalMachine: vm => vm.part.AnalysisData.machine === 'sheet-metal',\n\n isTurningMachine: vm => vm.part.AnalysisData.machine === 'turning',\n\n cncItems: vm => Material.findInStore({\n query: {\n IsHidden: false,\n Process: 'RM-TURNING',\n OutDia: { $gte: vm.part.AnalysisData.major_dia + 1 },\n },\n }).data,\n\n cncSeries: vm => {\n const uniqueParentRowPointers = new Set();\n // Iterate through the data and add unique ParentRowPointers to the Set\n vm.cncItems.forEach(item => {\n uniqueParentRowPointers.add(item.ParentRowPointer);\n });\n return Material.findInStore({\n query: {\n RowPointer: {\n $in: Array.from(uniqueParentRowPointers)\n }\n }\n }).data;\n },\n\n cncMaterials: vm => {\n const uniqueMaterialsRowPointers = new Set();\n vm.cncSeries.forEach(item => {\n uniqueMaterialsRowPointers.add(item.ParentRowPointer);\n });\n return Material.findInStore({\n query: {\n RowPointer: {\n $in: Array.from(uniqueMaterialsRowPointers)\n }\n }\n }).data;\n },\n\n materials: vm => {\n if (vm.isSheetMetalMachine) {\n return Material.findInStore({\n query: {\n FactoryId: vm.part.FactoryId,\n ParentRowPointer: null,\n IsHidden: false,\n Process: 'LASER-RM'\n },\n }).data;\n }\n return vm.cncMaterials;\n },\n\n series: vm => {\n if (!vm.part.Material) {\n return [];\n }\n return Material.findInStore({\n query: {\n FactoryId: vm.part.FactoryId,\n ParentRowPointer: vm.part.Material,\n IsHidden: false,\n $sort: { Rank: 1 },\n },\n }).data;\n },\n\n thicknesses() {\n let additionalQuery = {};\n if (!this.isSheetMetalMachine) {\n additionalQuery = {\n OutDia: { $gte: this.part.AnalysisData.major_dia + 1 },\n InDia: null,\n $sort: { OutDia: 1, Rank: 1 },\n ParentRowPointer: this.part.MaterialSeries,\n };\n }\n return this.part.MaterialSeries\n ? Material.findInStore({\n query: {\n FactoryId: this.part.FactoryId,\n ParentRowPointer: this.part.MaterialSeries,\n IsHidden: false,\n $sort: { Rank: 1 },\n ...additionalQuery\n },\n }).data : [];\n },\n\n finishes() {\n return Finish.findInStore({\n query: {\n FactoryId: this.part.FactoryId,\n ParentRowPointer: this.part.MaterialThickness,\n },\n }).data;\n },\n\n legalFinishes() {\n const legalFinishes = Finish.findInStore({\n query: {\n FactoryId: this.part.FactoryId,\n ParentRowPointer: this.part.MaterialThickness,\n },\n }).data;\n\n return this.finishes.filter(f => legalFinishes.find(lf => lf._id.endsWith(f._id)));\n },\n\n options() {\n return this.part.MaterialThickness && this.part.MaterialFinish\n ? Finish.findInStore({\n query: {\n FactoryId: this.part.FactoryId,\n ParentRowPointer: this.part.MaterialFinish,\n // _id: this.part.MaterialFinish,\n IsHidden: false,\n },\n }).data\n : [];\n },\n\n currentUploadStatus(vm) {\n if (!(this.status.isMeshUploaded || this.status.isSvgUploaded) && this.part.uploadProgress && this.part.uploadProgress === 100) {\n return `${vm.$t('common.analyzing')}...`;\n }\n if ((this.status.isMeshUploaded || this.status.isSvgUploaded) && !this.status.isMeshLoaded) {\n return `${vm.$t('common.loading')}...`;\n }\n return `${vm.$t('common.uploading')}...`;\n },\n\n currentErrorMessage: vm => {\n const { isDrawingUploadedMsg, isMeshUploadedMsg, isSvgUploadedMsg, isManufacturableMsg } = vm.status;\n return isDrawingUploadedMsg || isMeshUploadedMsg || isManufacturableMsg || isSvgUploadedMsg;\n },\n\n priceRange() {\n let returnData;\n try {\n returnData = JSON.parse(this.part.PriceMOQ);\n } catch {\n returnData = false;\n }\n return returnData;\n },\n\n customerPriceRange() {\n if (!this.priceRange) {\n return [];\n }\n\n const reqQtyPriceIndex = this.priceRange\n .findIndex(range => range.Qty > this.part.ReqQty) - 1;\n\n if (reqQtyPriceIndex < 0) {\n return this.priceRange.slice(-1);\n }\n return this.priceRange\n .slice(reqQtyPriceIndex, Math.min(reqQtyPriceIndex + 3, this.priceRange.length));\n },\n\n sheetMetalInfoLabels(vm) {\n const labels = {};\n if (this.part) {\n const bends = _.get(this.part, 'AnalysisData.no_of_bends', 0);\n const holes = _.get(this.part, 'AnalysisData.no_of_holes', 0);\n const threads = _.get(this.part, 'AnalysisData.threads', []);\n const countersink = _.get(this.part, 'AnalysisData.countersink_sizes', []);\n const counterbore = _.get(this.part, 'AnalysisData.counterbore_sizes', []);\n const laserEngraved = _.get(this.part, 'AnalysisData.laser_engraved_holes', []);\n const laserEngravedDepth = _.get(this.part, 'AnalysisData.laser_engraved_hole_depth', undefined);\n\n if (bends) {\n labels.bendsInfoLabel = bends;\n }\n if (this.part.is2dModel && bends === 0) {\n labels.bendsInfoLabel = bends;\n }\n\n if (holes) {\n labels.holesInfoLabel = holes;\n }\n if (threads.length) {\n if (this.part.Threads) {\n // For custom threads, no need to show Thread type, only show thread count\n const threadCount = threads.reduce((accumulator, item) => accumulator + item[1], 0);\n labels.threadsInfoLabel = threadCount;\n } else {\n const supportedThreads = threads.filter(th => !(th[0] === 0 || th[0] === 1 || th[0] === -1));\n const unsupportedThreads = threads.filter(th => (th[0] === 0 || th[0] === 1 || th[0] === -1));\n const threadLabel = supportedThreads.map(([item, count]) => `${count} ${vm.$t('common.pieces')} ${item.split(' ')[0]}`);\n if (unsupportedThreads.length) {\n threadLabel.push(`${unsupportedThreads.length} ${vm.$t('common.pieces')} ${vm.$t('common.unsupported')}`);\n }\n labels.threadsInfoLabel = threadLabel.join(', ').replace(/, ([^,]*)$/, ` ${vm.$t('common.andSymbol')} $1`);\n }\n }\n if (countersink.length) {\n labels.countersinkInfoLabel = countersink.reduce((accumulator, item) => accumulator + item[2], 0);\n }\n if (counterbore.length) {\n labels.counterboreInfoLabel = counterbore.reduce((accumulator, item) => accumulator + item[2], 0);\n }\n if (laserEngraved.length) {\n labels.laserEngravedInfoLabel = laserEngravedDepth ? `${parseFloat(laserEngravedDepth).toFixed(2)}mm` : '';\n }\n }\n return labels;\n },\n\n turningInfoLabels() {\n const labels = {};\n if (this.part) {\n const holes = _.get(this.part, 'AnalysisData.holes', 0);\n if (holes) {\n labels.holesInfoLabel = holes;\n }\n const chamfer = _.get(this.part, 'AnalysisData.chamfer', 0);\n if (chamfer) {\n labels.chamfersInfoLabel = chamfer;\n }\n\n const internalFillets = _.get(this.part, 'AnalysisData.internal_fillets', 0);\n const externalFillets = _.get(this.part, 'AnalysisData.external_fillets', 0);\n if (internalFillets || externalFillets) {\n labels.filletsInfoLabel = parseInt(internalFillets, 10) + parseInt(externalFillets, 10);\n }\n\n const millings = _.get(this.part, 'AnalysisData.machine_millings', 0);\n if (millings) {\n labels.millingsInfoLabel = millings;\n }\n\n const threadsOnXAxis = _.get(this.part, 'AnalysisData.threads_on_x_axis', 0);\n const threadsOnYAxis = _.get(this.part, 'AnalysisData.threads_on_y_axis', 0);\n if (threadsOnXAxis || threadsOnYAxis) {\n labels.threadsInfoLabel = parseInt(threadsOnXAxis, 10) + parseInt(threadsOnYAxis, 10);\n }\n }\n\n const counterbore = _.get(this.part, 'AnalysisData.counterbore', 0);\n if (counterbore) {\n labels.counterboreInfoLabel = counterbore;\n }\n\n const countersink = _.get(this.part, 'AnalysisData.countersink', 0);\n if (countersink) {\n labels.countersinkInfoLabel = countersink;\n }\n\n return labels;\n },\n\n infoLabels(vm) {\n if (vm.isSheetMetalMachine) {\n return vm.sheetMetalInfoLabels;\n }\n if (vm.isTurningMachine) {\n return vm.turningInfoLabels;\n }\n return {};\n },\n\n needSvg(vm) {\n const laserEngraving = _.get(this.part, 'AnalysisData.laser_engraved_holes', []);\n return vm.isSheetMetalMachine && laserEngraving.length > 0;\n },\n\n needPdf() {\n if (!this.part.isSheetMetalPart) {\n return false;\n }\n if (this.part.is2dModel && (this.part.Threads > 0 || this.part.Countersinks > 0 || this.part.Counterbores > 0)) {\n return true;\n }\n return this.part.Threads !== this.part.OriginalThreadsFound;\n },\n noOfHoles: vm => _.get(vm.part, 'AnalysisData.no_of_holes', 0),\n showBendField() {\n return this.part.isSheetMetalPart && this.part.is2dModel;\n },\n showThreadField() {\n return this.part.isSheetMetalPart && this.noOfHoles > 0;\n },\n showCountersinkField() {\n return this.part.isSheetMetalPart && this.part.is2dModel && this.noOfHoles > 0;\n },\n showCounterboreField() {\n return this.part.isSheetMetalPart && this.part.is2dModel && this.noOfHoles > 0;\n },\n\n isEngineDetectionError() {\n const errorsAndWarnings = _.get(this.part, 'AnalysisData.errors_and_warnings', []);\n return errorsAndWarnings.some(item => item.code === 203);\n },\n isMaxBendError() {\n const errorsAndWarnings = _.get(this.part, 'AnalysisData.errors_and_warnings', []);\n return errorsAndWarnings.some(item => item.code === BEND_ERROR_CODE);\n },\n\n isOdooError() {\n return this.status.isMainAnalysisCompletedMsg && this.status.isMainAnalysisCompletedMsg.startsWith('Odoo.Error.');\n },\n\n odooErrorMessage() {\n if (!this.isOdooError) {\n return '';\n }\n // eslint-disable-next-line camelcase\n const { message, message_cn, parameters, parameters_cn } = this.status.OdooError;\n // eslint-disable-next-line camelcase\n const msg = this.locale === 'cn' ? message_cn : message;\n // eslint-disable-next-line camelcase\n const prms = this.locale === 'cn' ? parameters_cn : parameters;\n\n const newParameters = {};\n\n for (const [key, value] of Object.entries(prms)) {\n if (Array.isArray(value)) {\n newParameters[key] = `<ul>${value.map(error => `<li>${error}</li>`).join('')}</ul>`;\n } else {\n newParameters[key] = value;\n }\n }\n\n // Use a regular expression to find placeholders in the form of {key}\n return msg.replace(/{(.*?)}/g, (match, key) =>\n // Return the corresponding value from parameters or the original match if not found\n // eslint-disable-next-line implicit-arrow-linebreak\n (newParameters[key] !== undefined ? newParameters[key] : match));\n },\n\n twoDNestingResultSvgUrl: vm => {\n const host = process.env.VUE_APP_API_URL;\n if (vm.status.isSvgNestedUploadedCsi) {\n const fileName = `${vm.part.DrawingRowPointer.toLowerCase()}-2dNested.SVG`;\n return `${host}uploads/${fileName}/${vm.accessToken}/${vm.part.Item}/File?updatedAt=${vm.part.updatedAt}`;\n }\n return null;\n },\n\n showWaitingInfoLabel() {\n const createdAtString = this.part.createdAt;\n const createdAt = new Date(createdAtString);\n const now = this.currentTime;\n const timeDifference = now - createdAt;\n const threeMinutesInMilliseconds = 3 * 60 * 1000;\n\n const isOlderThanThreeMinutes = timeDifference > threeMinutesInMilliseconds;\n const isStatusIncomplete = !(this.status.isMeshUploaded || this.status.isSvgUploaded || this.currentErrorMessage);\n if (this.timer) {\n if (!isStatusIncomplete || isOlderThanThreeMinutes) {\n this.clearTimer();\n }\n }\n\n return isOlderThanThreeMinutes && isStatusIncomplete;\n },\n\n showReRunAsTurningButton() {\n const errors = _.get(this.part, 'AnalysisData.errors_and_warnings', []);\n return errors.some(error => [412, 416].includes(error.code));\n }\n },\n\n watch: {\n selectedThickness: {\n immediate: true,\n handler(thickness) {\n if (thickness) {\n this.part.MaterialThicknessStr = thickness.Description;\n this.part.MaterialThicknessStrCHS = thickness.DescriptionCHS;\n this.part.RawMaterial = thickness ? thickness.Item : '';\n this.fetchFinishes();\n }\n },\n },\n\n 'part.MaterialSeries': {\n handler() {\n if (this.part.is2dModel) {\n return;\n }\n this.selectClosestAvailableThickness();\n },\n },\n\n currentErrorMessage: {\n immediate: true,\n handler(newMsg, oldMsg) {\n if (!(newMsg && !oldMsg)) {\n return;\n }\n ddlogger.logger.error('error', {\n action: 'uploadpart',\n error: newMsg,\n type: 'TempPart',\n author: this.createdById,\n });\n }\n },\n\n 'part.AnalysisData.no_of_bends': {\n immediate: true,\n handler(newVal) {\n if (process.env.VUE_APP_API_URL.includes('b2b-api') && this.part.is2dModel) {\n if (newVal > 0) {\n const currentErrors = _.get(this.part, 'AnalysisData.errors_and_warnings', []);\n if (!currentErrors.some(error => error.code === BEND_ERROR_CODE)) {\n this.$set(this.part.AnalysisData, 'errors_and_warnings', [\n ...currentErrors,\n {\n code: BEND_ERROR_CODE,\n details: 'Not allowed to have more than 2 bends for DXF files'\n }\n ]);\n }\n } else {\n this.$set(\n this.part.AnalysisData,\n 'errors_and_warnings',\n this.part.AnalysisData.errors_and_warnings.filter(error => error.code !== BEND_ERROR_CODE)\n );\n }\n }\n },\n },\n },\n\n mounted() {\n this.timer = setInterval(() => {\n this.currentTime = new Date();\n }, 10000);\n },\n\n beforeDestroy() {\n this.clearTimer();\n },\n\n methods: {\n ...mapActions('parts', { updatePart: 'update' }),\n\n checkTranslation(translation) {\n const words = ['Process', '请查看工艺细节指å—'];\n return words.some(word => translation.includes(word));\n },\n removeLinklabel(string) {\n return string.replace(this.$t('CSIError.ProcessLimitations.LinkLabel'), '');\n },\n checkErrorMessage(errorValue) {\n const error = errorValue.replace(' - ', ' ').trim();\n const errorArray = error.split(' ');\n return errorArray.length > 1;\n },\n errorFormat(errorValue) {\n const errorArray = errorValue.replace(' - ', ' ').trim().split(' ');\n const errorTitle = this.$t(errorArray.shift());\n let bulletError = '';\n errorArray.forEach(errorElt => {\n bulletError += `<li>${this.$t(errorElt.trim())}</li>`;\n });\n return `${errorTitle}<ul>${bulletError}</ul>`;\n },\n getTranslationSeries(value) {\n return v => v[value].replace(this.$refs.materialSelector.selectedItems[0].Description, '');\n },\n getTranslationFinish(value) {\n return v => v[value].replace(`${this.$refs.finishSelector.selectedItems[0][value]}} - `, '');\n },\n fetchFinishes() {\n Finish.find({\n query: {\n FactoryId: this.part.FactoryId,\n Item: this.selectedThickness.Item,\n thicknessId: this.selectedThickness._id,\n },\n });\n },\n uploadThumbnail() {\n if (this.status.isThumbnailUploaded) {\n return;\n }\n\n try {\n this.$nextTick(async () => {\n this.isMeshVisible = true;\n const canvas = this.$el.getElementsByTagName('canvas')[0];\n const image = await new Promise(resolve => canvas.toBlob(resolve, 'image/png'));\n\n const fd = new FormData();\n fd.append('file', image, `${this.part.DrawingRowPointer}.PNG`);\n const uploadUrl = `${process.env.VUE_APP_API_URL}upload`;\n\n await fetch(uploadUrl, {\n method: 'POST',\n headers: {\n Authorization: this.accessToken,\n },\n body: fd,\n });\n\n await this.part.save({\n data: {\n 'EstimateLineStatus.isThumbnailUploaded': true,\n },\n });\n });\n } catch (e) {\n console.error(e);\n }\n },\n generateCodeFromThickness(thickness) {\n /**\n * Mapping of thickness codes to their descriptions:\n * T1500 -> T=15.00mm\n * T1350 -> T=13.50mm\n * T1200 -> T=12.00mm\n * T800 -> T=8.00mm\n * T1000 -> T=10.00mm\n * T950 -> T=9.50mm\n * T020 -> T=0.20mm\n * T150 -> T=1.50mm\n * T550 -> T=5.50mm\n * T635 -> T=6.35mm\n * T1270 -> T=12.70mm\n * T1587 -> T=15.87mm\n * T200 -> T=2.00mm\n * T235 -> T=2.35mm\n * T650 -> T=6.50mm\n * T160 -> T=1.60mm\n * T180 -> T=1.80mm\n * T2000 -> T=20.00mm\n * T1600 -> T=16.00mm\n * T275 -> T=2.75mm\n * T020 -> T=0.20mm\n * T700 -> T=7.00mm\n * T350 -> T=3.5mm\n * T060 -> T=0.60mm\n * T070 -> T=0.70mm\n * T080 -> T=0.80mm\n * T090 -> T=0.90mm\n * T100 -> T=1.00mm\n * T120 -> T=1.20mm\n * T130 -> T=1.30mm\n * T250 -> T=2.50mm\n * T300 -> T=3.00mm\n * T320 -> T=3.20mm\n * T500 -> T=5.00mm\n * T575 -> T=5.75mm\n * T600 -> T=6.00mm\n * T375 -> T=3.75mm\n * T400 -> T=4.00mm\n * T450 -> T=4.50mm\n * T476 -> T=4.76mm\n * T050 -> T=0.50mm\n */\n const thicknessValue = Math.round(thickness * 100);\n const digits = thicknessValue < 1000 ? 3 : 4;\n const code = `T${thicknessValue.toString().padStart(digits, '0')}`;\n return code;\n },\n generateThicknessFromCode(code) {\n // Remove the leading 'T' and parse the remaining string as a float\n const thicknessValue = parseFloat(code.slice(1)) / 100;\n return thicknessValue;\n },\n selectClosestAvailableThickness() {\n if (this.detectedThickness === 0 || _.isEmpty(this.thicknesses)) {\n return;\n }\n if (this.isSheetMetalMachine) {\n const code = this.generateCodeFromThickness(this.detectedThickness);\n const matchedThickness = this.thicknesses.find(t => t.Code === code);\n if (matchedThickness) {\n this.part.MaterialThickness = matchedThickness._id;\n this.part.MaterialThicknessStr = matchedThickness.Description;\n this.part.MaterialDimensions = {\n SheetWidth: matchedThickness.SheetWidth,\n SheetLength: matchedThickness.SheetLength\n };\n this.part.MaterialThicknessValue = this.generateThicknessFromCode(matchedThickness.Code);\n }\n } else {\n const [closestToDetected] = this.thicknesses\n .map(t => {\n const thickness = parseFloat(t.OutDia);\n return { thickness, ...t };\n })\n .sort(th => th.thickness);\n this.part.MaterialThickness = closestToDetected._id;\n this.part.MaterialThicknessStr = closestToDetected.Description;\n }\n },\n checkIfErrorIsExiste(errorCode) {\n return _.get(this.part, 'AnalysisData.errors_and_warnings', []).some(i => i.code === errorCode);\n },\n\n addCustomDataToEngineResponse() {\n const valid = this.$refs.customDataToAddForm.validate();\n if (!valid) {\n return;\n }\n const threadToAdd = 'M3x0.5';\n const threads = [[threadToAdd, parseInt(this.customThreadCountToAdd, 10)]];\n this.part.patch({ data: { 'AnalysisData.threads': threads } });\n },\n\n addThreads() {\n const threadToAdd = 'M3x0.5';\n let threads = [];\n if (this.part.Threads > 0) {\n threads = [[threadToAdd, this.part.Threads]];\n }\n this.part.AnalysisData = { ...this.part.AnalysisData, threads };\n },\n\n addCountersinks() {\n let countersinks = [];\n if (this.part.Countersinks > 0) {\n countersinks = [[0, 0, this.part.Countersinks]];\n }\n this.part.AnalysisData = { ...this.part.AnalysisData, countersink_sizes: countersinks };\n },\n\n addCounterbores() {\n let counterbores = [];\n if (this.part.Counterbores) {\n counterbores = [[[0, 0], [0, 0], this.part.Counterbores]];\n }\n this.part.AnalysisData = { ...this.part.AnalysisData, counterbores_sizes: counterbores };\n },\n\n clearTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n },\n\n resetPartFormFields() {\n this.part.Material = '';\n this.part.MaterialStr = '';\n this.part.MaterialStrCHS = '';\n this.part.MaterialCategory = '';\n this.part.MaterialSeries = '';\n this.part.MaterialSeriesStr = '';\n this.part.MaterialThickness = '';\n this.part.MaterialThicknessValue = null;\n this.part.MaterialThicknessStr = '';\n this.part.MaterialFinish = '';\n this.part.MaterialFinishStr = '';\n this.part.MaterialFinishOption = '';\n this.part.MaterialFinishOptionStr = '';\n this.status.isMainAnalysisCompleted = false;\n this.part.MaterialDimensions = {};\n }\n\n },\n};\n</script>\n\n<style scoped>\n.calculateCostOk {\n color: #2c984e;\n}\n\n.center-right {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n justify-content: center;\n}\n\npre {\n white-space: pre-wrap;\n}\n\nth {\n height: auto;\n}\n\n.inputHeight::v-deep .v-input__control {\n min-height: 20px !important;\n}\n\n::v-deep .v-text-field__details {\n margin-bottom: 0 !important;\n}\n\n::v-deep .v-input__prepend-outer {\n margin: 4px 4px 4px 0 !important;\n}\n\n::v-deep .v-list-item {\n min-height: 30px;\n}\n\n.text-field ::v-deep .v-input__slot input {\n padding: 0 !important;\n}\n\n.text-field ::v-deep .v-input__slot {\n padding-left: 0 !important;\n padding-right: 0 !important;\n}\n\n.v-input__control {\n min-height: 10px !important;\n}\n\n.hidden {\n visibility: hidden;\n}\n\n.slide-fade-enter-active {\n transition: all .3s ease;\n}\n\n.slide-fade-leave-active {\n transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0);\n}\n\n.slide-fade-enter, .slide-fade-leave-to {\n transform: translateX(10px);\n opacity: 0;\n}\n\n.part-thumbnail:hover {\n cursor: pointer;\n}\n\n::v-deep .v-skeleton-loader__avatar {\n width: 150px !important;\n height: 150px !important;\n}\n\n::v-deep .v-input--radio-group__input {\n display: flex;\n justify-content: center;\n}\n\n.blip {\n border-radius: 50%;\n box-shadow: 0 0 0 0 rgba(51, 217, 178, 1);\n height: 20px;\n width: 20px;\n transform: scale(1);\n animation: pulse-green 2s infinite;\n}\n\n.blip-3d {\n border-radius: 50%;\n box-shadow: 0 0 0 0 rgba(51, 217, 178, 1);\n height: 150px;\n width: 150px;\n animation: pulse-green 2s infinite;\n}\n\n@keyframes pulse-green {\n 0% {\n box-shadow: 0 0 0 0 rgba(51, 217, 178, 0.7);\n }\n\n 70% {\n box-shadow: 0 0 0 10px rgba(51, 217, 178, 0);\n }\n\n 100% {\n box-shadow: 0 0 0 0 rgba(51, 217, 178, 0);\n }\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadPartCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadPartCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UploadPartCard.vue?vue&type=template&id=0f966d25&scoped=true&\"\nimport script from \"./UploadPartCard.vue?vue&type=script&lang=js&\"\nexport * from \"./UploadPartCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UploadPartCard.vue?vue&type=style&index=0&id=0f966d25&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 \"0f966d25\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAlert,VBtn,VCard,VCol,VContainer,VDivider,VForm,VIcon,VNavigationDrawer,VProgressLinear,VRadio,VRadioGroup,VRow,VSelect,VSimpleTable,VSpacer,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticStyle:{\"background-color\":\"#616161\"},attrs:{\"rounded\":\"\",\"width\":\"95%\",\"min-width\":\"1118\",\"height\":\"101px\",\"color\":\"#F9F9F9\",\"outlined\":\"\"}},[_c('v-card-text',{staticStyle:{\"color\":\"#FFFFFF\"}},[_c('v-row',[_c('img',{staticClass:\"mt-n8 ml-1\",attrs:{\"src\":\"/img/welcomeScreen/icon-referral-speaker.svg\"}}),_c('div',{staticClass:\"ml-4 mt-2 text-h5 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenReferralBanner.titleLabel1'))+\" \")]),_c('div',{staticClass:\"mx-4 mt-1 text-h4 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenReferralBanner.titleLabel2'))+\" \")]),_c('div',{staticClass:\"mt-2 text-h5 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenReferralBanner.titleLabel3'))+\" \")]),_c('v-btn',{staticClass:\"ml-4 mt-1\",attrs:{\"color\":\"primary\",\"large\":\"\"},on:{\"click\":function($event){$event.stopPropagation();_vm.dialog=true}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenReferralBanner.referNow'))+\" \")])],1),_c('v-row',{staticClass:\"ml-12 mt-n4\"},[_c('div',{staticClass:\"ml-12 pl-8 text-body-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenReferralBanner.referNote'))+\" \")])])],1),_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"ok-button-text\":'Refer Now',\"width\":\"619px\",\"persistent\":\"\",\"is-loading\":_vm.isCreatePending},on:{\"click:ok\":_vm.onActionButtonClicked,\"click:cancel\":_vm.cancelReferralDialog},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.referralScreenDialog.heading'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"text-body-1\",staticStyle:{\"text-align\":\"center\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.referralScreenDialog.subHeading1'))),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.referralScreenDialog.subHeading2'))+\" \")]),_c('v-form',{ref:\"referralForm\",on:{\"input\":function($event){return _vm.$emit('validityChange', $event)}},model:{value:(_vm.isReferralValid),callback:function ($$v) {_vm.isReferralValid=$$v},expression:\"isReferralValid\"}},[_c('v-row',[_c('v-col',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"maxlength\":\"60\",\"data-cy\":\"new-address-name-input\",\"placeholder\":_vm.$t('common.firstName'),\"label\":_vm.$t('common.firstName'),\"rules\":[_vm.isRequired],\"outlined\":\"\"},model:{value:(_vm.referral.firstName),callback:function ($$v) {_vm.$set(_vm.referral, \"firstName\", $$v)},expression:\"referral.firstName\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"maxlength\":\"60\",\"data-cy\":\"new-address-name-input\",\"placeholder\":_vm.$t('common.lastName'),\"label\":_vm.$t('common.lastName'),\"rules\":[_vm.isRequired],\"outlined\":\"\"},model:{value:(_vm.referral.lastName),callback:function ($$v) {_vm.$set(_vm.referral, \"lastName\", $$v)},expression:\"referral.lastName\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"maxlength\":\"128\",\"data-cy\":\"new-address-email-input\",\"placeholder\":_vm.$t('form.address.fields.email'),\"label\":_vm.$t('form.address.fields.email'),\"rules\":[_vm.isRequired, _vm.isEmail],\"outlined\":\"\"},model:{value:(_vm.referral.email),callback:function ($$v) {_vm.$set(_vm.referral, \"email\", $$v)},expression:\"referral.email\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.isRequired],\"label\":_vm.$t('views.settings.tabs.company.name'),\"placeholder\":_vm.$t('views.settings.tabs.company.name'),\"outlined\":\"\"},model:{value:(_vm.referral.company),callback:function ($$v) {_vm.$set(_vm.referral, \"company\", $$v)},expression:\"referral.company\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.termsAndConditions'))+\" \")]),_c('ul',{staticClass:\"caption font-italic\"},[_c('li',[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.referralScreenDialog.t&cPoint1'))+\" \")]),_c('li',[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.referralScreenDialog.t&cPoint2'))+\" \")]),_c('li',[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.referralScreenDialog.t&cPoint3'))+\" \")]),_c('li',[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.referralScreenDialog.t&cPoint4'))+\" \")]),_c('li',[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.referralScreenDialog.t&cPoint5'))+\" \")])])])],1)],1)],1)],1)]},proxy:true}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-card\n rounded\n width=\"95%\"\n min-width=\"1118\"\n height=\"101px\"\n color=\"#F9F9F9\"\n outlined\n style=\"background-color: #616161\"\n >\n <v-card-text style=\"color: #FFFFFF\">\n <v-row>\n <img\n class=\"mt-n8 ml-1\"\n src=\"/img/welcomeScreen/icon-referral-speaker.svg\"\n >\n <div class=\"ml-4 mt-2 text-h5 font-weight-bold\">\n {{ $t('views.dashboard.welcomeScreenReferralBanner.titleLabel1') }}\n </div>\n <div class=\"mx-4 mt-1 text-h4 font-weight-bold\">\n {{ $t('views.dashboard.welcomeScreenReferralBanner.titleLabel2') }}\n </div>\n <div class=\"mt-2 text-h5 font-weight-bold\">\n {{ $t('views.dashboard.welcomeScreenReferralBanner.titleLabel3') }}\n </div>\n <v-btn\n class=\"ml-4 mt-1\"\n color=\"primary\"\n large\n @click.stop=\"dialog=true\"\n >\n {{ $t('views.dashboard.welcomeScreenReferralBanner.referNow') }}\n </v-btn>\n </v-row>\n <v-row class=\"ml-12 mt-n4\">\n <div class=\"ml-12 pl-8 text-body-2\">\n {{ $t('views.dashboard.welcomeScreenReferralBanner.referNote') }}\n </div>\n </v-row>\n </v-card-text>\n <core-dialog\n v-model=\"dialog\"\n type=\"confirmation\"\n :ok-button-text=\"'Refer Now'\"\n width=\"619px\"\n persistent\n :is-loading=\"isCreatePending\"\n @click:ok=\"onActionButtonClicked\"\n @click:cancel=\"cancelReferralDialog\"\n >\n <template #title>\n {{ $t('views.dashboard.referralScreenDialog.heading') }}\n </template>\n\n <template #content>\n <div class=\"text-body-1\" style=\"text-align: center;\">\n {{ $t('views.dashboard.referralScreenDialog.subHeading1') }}<br>\n {{ $t('views.dashboard.referralScreenDialog.subHeading2') }}\n </div>\n <v-form\n ref=\"referralForm\"\n v-model=\"isReferralValid\"\n @input=\"$emit('validityChange', $event)\"\n >\n <v-row>\n <v-col>\n <v-row>\n <v-col cols=\"6\">\n <v-text-field\n v-model=\"referral.firstName\"\n maxlength=\"60\"\n data-cy=\"new-address-name-input\"\n :placeholder=\"$t('common.firstName')\"\n :label=\"$t('common.firstName')\"\n :rules=\"[isRequired]\"\n outlined\n />\n </v-col>\n <v-col cols=\"6\">\n <v-text-field\n v-model=\"referral.lastName\"\n maxlength=\"60\"\n data-cy=\"new-address-name-input\"\n :placeholder=\"$t('common.lastName')\"\n :label=\"$t('common.lastName')\"\n :rules=\"[isRequired]\"\n outlined\n />\n </v-col>\n </v-row>\n <v-row>\n <v-col cols=\"12\">\n <v-text-field\n v-model=\"referral.email\"\n maxlength=\"128\"\n data-cy=\"new-address-email-input\"\n :placeholder=\"$t('form.address.fields.email')\"\n :label=\"$t('form.address.fields.email')\"\n :rules=\"[isRequired, isEmail]\"\n outlined\n />\n </v-col>\n </v-row>\n <v-row>\n <v-col cols=\"12\">\n <v-text-field\n v-model=\"referral.company\"\n :rules=\"[isRequired]\"\n :label=\"$t('views.settings.tabs.company.name')\"\n :placeholder=\"$t('views.settings.tabs.company.name')\"\n outlined\n />\n </v-col>\n </v-row>\n <v-row>\n <v-col cols=\"12\">\n <div class=\"font-weight-bold\">\n {{ $t('views.signUp.termsAndConditions') }}\n </div>\n <ul class=\"caption font-italic\">\n <li>\n {{ $t('views.dashboard.referralScreenDialog.t&cPoint1') }}\n </li>\n <li>\n {{ $t('views.dashboard.referralScreenDialog.t&cPoint2') }}\n </li>\n <li>\n {{ $t('views.dashboard.referralScreenDialog.t&cPoint3') }}\n </li>\n <li>\n {{ $t('views.dashboard.referralScreenDialog.t&cPoint4') }}\n </li>\n <li>\n {{ $t('views.dashboard.referralScreenDialog.t&cPoint5') }}\n </li>\n </ul>\n </v-col>\n </v-row>\n </v-col>\n </v-row>\n </v-form>\n </template>\n </core-dialog>\n </v-card>\n</template>\n\n<script>\nimport { mapGetters, mapState } from 'vuex';\nimport { models } from 'feathers-vuex';\nimport FormRules from '@/mixins/form-rules';\n\nconst { Referral } = models.api;\n\nexport default {\n name: 'WelcomeScreenReferral',\n mixins: [\n FormRules,\n ],\n data: () => ({\n dialog: false,\n isReferralValid: false,\n referral: new Referral(),\n }),\n computed: {\n ...mapGetters('auth', { loggedInUser: 'user' }),\n ...mapGetters('temp-rfqs', { getTempRfqIdInProgress: 'getTempRfqIdInProgress' }),\n ...mapState('referrals', ['isCreatePending']),\n userCanQuote: ({ loggedInUser }) => loggedInUser && (loggedInUser.isAdmin || _.get(loggedInUser, 'rights.instantQuote', false)),\n },\n methods: {\n async onActionButtonClicked() {\n const valid = this.$refs.referralForm.validate();\n if (valid) {\n await this.referral.save({ notificationMessage: this.$t('views.dashboard.referralScreenDialog.referralSentMessage') });\n this.cancelReferralDialog();\n }\n },\n cancelReferralDialog() {\n this.dialog = false;\n this.referral = new Referral();\n }\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenReferral.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenReferral.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WelcomeScreenReferral.vue?vue&type=template&id=2e69ff57&scoped=true&\"\nimport script from \"./WelcomeScreenReferral.vue?vue&type=script&lang=js&\"\nexport * from \"./WelcomeScreenReferral.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 \"2e69ff57\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VForm,VRow,VTextField})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'rfqs';\n\nconst Model = class Rfq extends BaseModel {\n static modelName = 'Rfq';\n\n static instanceDefaults() {\n return {\n };\n }\n\n static setupInstance(data) {\n if (data.ExpiryDate) {\n data.ExpiryDate = new Date(data.ExpiryDate);\n }\n if (data.CreateDate) {\n data.CreateDate = new Date(data.CreateDate);\n }\n return data;\n }\n\n get formattedCreateDate() {\n return moment(this.CreateDate).format('MMM D, YYYY');\n }\n\n get formattedExpiryDate() {\n return moment(this.ExpiryDate).format('MMM D, YYYY');\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-col',{staticClass:\"py-0\"},[_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-text-field',{directives:[{name:\"mask\",rawName:\"v-mask\",value:('(###) ###-####'),expression:\"'(###) ###-####'\"}],attrs:{\"label\":_vm.$t('common.number'),\"placeholder\":_vm.$t(\"form.phone.placeholders.number\"),\"rules\":[_vm.notEmptyRules]},on:{\"change\":function($event){return _vm.$emit('change')}},model:{value:(_vm.data.PhoneOffice),callback:function ($$v) {_vm.$set(_vm.data, \"PhoneOffice\", $$v)},expression:\"data.PhoneOffice\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-col class=\"py-0\">\n <v-row>\n <v-col class=\"py-0\">\n <v-text-field\n v-model=\"data.PhoneOffice\"\n v-mask=\"'(###) ###-####'\"\n :label=\"$t('common.number')\"\n :placeholder=\"$t(`form.phone.placeholders.number`)\"\n :rules=\"[notEmptyRules]\"\n @change=\"$emit('change')\"\n />\n </v-col>\n\n <!-- <v-col class=\"py-0\" cols=\"3\">\n <v-text-field\n v-model=\"data.phoneExt\"\n :label=\"$t('form.phone.fields.ext')\"\n :placeholder=\"$t(`form.phone.placeholders.extension`)\"\n />\n </v-col> -->\n </v-row>\n </v-col>\n</template>\n\n<script>\nimport EditFormMixin from '../../mixins/editForm';\n\nexport default {\n mixins: [\n EditFormMixin,\n ],\n\n data() {\n return {\n notEmptyRules: value => (!!value || 'Cannot be empty'),\n };\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Phone.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Phone.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Phone.vue?vue&type=template&id=70aadae4&\"\nimport script from \"./Phone.vue?vue&type=script&lang=js&\"\nexport * from \"./Phone.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCol,VRow,VTextField})\n","var map = {\n\t\"./account-statements.js\": \"84ab\",\n\t\"./app.js\": \"3800\",\n\t\"./auth.js\": \"889e\",\n\t\"./company.js\": \"111e\",\n\t\"./contacts.js\": \"00c3\",\n\t\"./countries.js\": \"229d\",\n\t\"./csi-analysis.js\": \"cce8\",\n\t\"./customBag.js\": \"3896\",\n\t\"./customers.js\": \"2927\",\n\t\"./delivery-options.js\": \"2865\",\n\t\"./finishes.js\": \"1fb1\",\n\t\"./forwarders.js\": \"3bed\",\n\t\"./hardware-categories.js\": \"eca5\",\n\t\"./hardware-products.js\": \"60b6\",\n\t\"./index.js\": \"4360\",\n\t\"./internal-products.js\": \"156b\",\n\t\"./materials.js\": \"dab8\",\n\t\"./my-parts.js\": \"354d\",\n\t\"./my-products.js\": \"1faa\",\n\t\"./order-lines.js\": \"c266\",\n\t\"./orders.js\": \"81d8\",\n\t\"./packaging-tools.js\": \"d611\",\n\t\"./parts.js\": \"dcb5\",\n\t\"./payment-results.js\": \"c2c9\",\n\t\"./payments.js\": \"7940\",\n\t\"./promo-codes.js\": \"5cf8\",\n\t\"./referrals.js\": \"d407\",\n\t\"./regions.js\": \"87a7\",\n\t\"./rfqs.js\": \"5002\",\n\t\"./roles.js\": \"44ce\",\n\t\"./shipping-addresses.js\": \"6338\",\n\t\"./temp-parts.js\": \"3f03\",\n\t\"./temp-rfqs.js\": \"3a90\",\n\t\"./thumbnails.js\": \"ea90\",\n\t\"./user.js\": \"2147\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"50ea\";","import i18n from '../plugins/i18n';\n\nexport default {\n methods: {\n isRequired: value => !!value || i18n.t('common.thisFieldIsRequired'),\n isPositiveInteger: value => /^[1-9][0-9]*$/.test(value),\n isPositiveIntegerOrFloat: value => /^(0|[1-9]\\d*)(\\.\\d+)?$/.test(value),\n isZeroOrGreaterInteger: value => /^[0-9][0-9]*$/.test(value),\n isEmail: value => /^[A-Za-z.0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[A-Za-z.0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z.0-9](?:[A-Za-z.0-9-]*[A-Za-z.0-9])?\\.)+[A-Za-z.0-9](?:[A-Za-z.0-9-]*[A-Za-z.0-9])?/.test(value),\n maxLength(maxlen) {\n return v => (v || '').length <= maxlen || i18n.t('common.errorStringLength', { maxlength: maxlen });\n },\n containAlphabetsNumbersHyphensUnderscoreSpace: value => /^[a-zA-Z0-9-_\\s]*$/.test(value) || i18n.t('common.containAlphabetsNumbersHyphensUnderscoreSpace'),\n isPhoneNumberIsValid: value => /((?:\\+|00)[17](?: |-)?|(?:\\+|00)[1-9]\\d{0,2}(?: |-)?|(?:\\+|00)1-\\d{3}(?: |-)?)?(0\\d|\\([0-9]{3}\\)|[1-9]{0,3})(?:((?: |-)[0-9]{2}){4}|((?:[0-9]{2}){4})|((?: |-)[0-9]{3}(?: |-)[0-9]{4})|([0-9]{7}))/.test(value)\n }\n};\n","var map = {\n\t\"./index.js\": \"4657\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"551f\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',{attrs:{\"id\":\"vue-app\"}},[_c('core-snack'),_c('core-dialog',{attrs:{\"width\":\"500\",\"persistent\":\"\",\"type\":\"acknowledgement\",\"ok-button-text\":_vm.$t('common.updateToNewVersion'),\"cancel-button-text\":_vm.$t('common.notNow')},on:{\"click:ok\":_vm.refreshApp,\"click:cancel\":function($event){_vm.updateExists = false}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('common.newVersion'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('common.releaseNote'))+\" \")]},proxy:true}]),model:{value:(_vm.updateExists),callback:function ($$v) {_vm.updateExists=$$v},expression:\"updateExists\"}}),_c('core-payment-dialog'),_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(_vm.shouldSkipMainRender)?_c('div',{staticClass:\"fill-height\"},[_c('router-view')],1):_c('div',{staticClass:\"fill-height\"},[(_vm.showNavigationBar)?_c('v-navigation-drawer',{staticClass:\"text-center elevation-10\",attrs:{\"id\":\"navigation-drawer\",\"width\":\"220px\",\"app\":\"\",\"permanent\":\"\",\"clipped-left\":\"\"},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('img',{staticClass:\"logo\",staticStyle:{\"z-index\":\"9999\",\"position\":\"absolute !important\",\"top\":\"-5px\",\"right\":\"180px\"},attrs:{\"src\":\"/img/BETA@1x.svg\",\"width\":\"45px\",\"height\":\"45px\"},on:{\"click\":function($event){return _vm.$router.push('/')}}}),_c('img',{staticClass:\"logo toHover\",staticStyle:{\"margin-top\":\"-27px\"},attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"175px\",\"height\":\"130px\"},on:{\"click\":function($event){return _vm.$router.push('/')}}}),_c('v-btn',{staticClass:\"ml-1 justify-center\",attrs:{\"id\":\"instantQuote\",\"width\":\"190\",\"color\":\"primary\",\"x-large\":\"\",\"data-cy\":\"instant-quote-link\",\"disabled\":!_vm.userCanQuote},on:{\"click\":_vm.onActionButtonClicked}},[_vm._v(\" \"+_vm._s(_vm.$t('menus.instantQuote'))+\" \")]),(_vm.isFindHardwareCategoriesPending || _vm.hardwareCategories.length===0)?_c('v-list',{attrs:{\"width\":\"250px\",\"dense\":\"\"}},[_c('v-list-group',{staticClass:\"menu-icons\",class:{'disable-icons': _vm.isFindHardwareCategoriesPending || _vm.hardwareCategories.length===0},on:{\"click\":function($event){_vm.isHardwareShopMenuExpanded = !_vm.isHardwareShopMenuExpanded}},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"text-left\",staticStyle:{\"font-size\":\"16px\"}},[_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"width\":\"190\",\"height\":\"10\"}})],1)],1)]},proxy:true}],null,false,492752937)},[_vm._l((4),function(n){return [_c('v-list-item',{key:n,staticClass:\"text-left\",staticStyle:{\"height\":\"auto\",\"padding-left\":\"50px\"}},[_c('v-list-item-content',[_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"max-width\":\"130\",\"height\":\"10\"}})],1)],1),_c('v-divider',{key:(\"divider-\" + n),staticClass:\"ml-10\",staticStyle:{\"width\":\"170px\"}})]})],2),_c('v-divider',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isHardwareShopMenuExpanded),expression:\"!isHardwareShopMenuExpanded\"}],staticClass:\"mx-2\"})],1):_c('v-list',{attrs:{\"width\":\"250px\",\"dense\":\"\"}},[_c('v-list-group',{staticClass:\"menu-icons\",class:{'disable-icons': _vm.isFindHardwareCategoriesPending},on:{\"click\":function($event){_vm.isHardwareShopMenuExpanded = !_vm.isHardwareShopMenuExpanded}},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [(_vm.hardwareCategories.length !==0)?_c('v-list-item-content',{on:{\"click\":function($event){_vm.$router.push({\n path: '/hardware_categories',\n query: { timestamp: Date.now() } //Avoid NavigationDuplicated: Avoided redundant navigation error\n })}}},[_c('v-list-item-title',{staticClass:\"text-uppercase green--text font-weight-bold justify-center d-flex\",staticStyle:{\"font-size\":\"16px\"},attrs:{\"data-cy\":\"shop-hardware-button\"}},[_vm._v(\" \"+_vm._s(_vm.$t('menus.shopHardware'))+\" \")])],1):_vm._e()]},proxy:true}],null,false,1906690421)},[(_vm.hardwareCategories.length===0)?[_vm._l((4),function(n){return [_c('v-list-item',{key:n,staticClass:\"text-left\",staticStyle:{\"height\":\"auto\",\"padding-left\":\"50px\"}},[_c('v-list-item-content',[_vm._v(\" test \"),_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"max-width\":\"130\",\"height\":\"10\"}})],1)],1),_c('v-divider',{key:(\"divider-\" + n),staticClass:\"ml-10\",staticStyle:{\"width\":\"170px\"}})]})]:_vm._e(),_vm._l((_vm.hardwareCategories),function(category){return [_c('v-list-item',{key:category.id,staticClass:\"text-left\",staticStyle:{\"height\":\"auto\",\"padding-left\":\"50px\"},attrs:{\"data-cy\":((category.name.toLowerCase().trim().replaceAll(' ', '-')) + \"-hardware-option\"),\"to\":{ name: 'HardwareCategory', params: { id: category.id } },\"link\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(category[_vm.locale === 'cn' ? 'nameCHS' : 'name'])+\" \")])],1)],1),_c('v-divider',{key:(\"divider-\" + (category.id)),staticClass:\"ml-10\",staticStyle:{\"width\":\"170px\"}})]})],2),_c('v-divider',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isHardwareShopMenuExpanded),expression:\"!isHardwareShopMenuExpanded\"}],staticClass:\"mx-2\"})],1)]},proxy:true},{key:\"append\",fn:function(){return [_c('v-hover',{scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var hover = ref.hover;\nreturn [_c('div',[_c('div',{staticClass:\"d-flex justify-space-between ml-4\",class:{ 'on-hover': hover },staticStyle:{\"width\":\"150px\"},on:{\"click\":function($event){_vm.emailDialogIsActive = true}}},[_c('img',{staticClass:\"d-flex\",attrs:{\"src\":\"/img/iconHelp@1x.svg\"}}),_c('div',{staticClass:\"caption\"},[_c('p',{staticClass:\"mb-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.helpUsImprove'))+\" \")]),_c('span',{staticClass:\"caption grey--text font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.sendFeedbackMenu'))+\" \")])])]),_c('p',{staticClass:\"caption text-center mt-1 mr-2\"},[_vm._v(\" Komacut v.\"+_vm._s(_vm.version)+\" \")])])]}}],null,false,3947814459)})]},proxy:true}],null,false,3731703548)},[_c('div',{staticClass:\"d-flex align-center justify-center\",staticStyle:{\"min-height\":\"500px\",\"height\":\"100%\"}},[_c('v-list',{staticClass:\"d-flex flex-column\",staticStyle:{\"height\":\"500px\",\"width\":\"220px\"}},[(_vm.currentOrderItemsCount)?_c('v-list-item',{attrs:{\"data-cy\":\"go-to-the-order-form-left-nav-bar\",\"to\":\"/order/new\"}},[_c('v-badge',{attrs:{\"data-cy\":\"current_order-items-count-left-nav-bar\",\"left\":\"\",\"overlap\":\"\",\"color\":\"error\",\"content\":_vm.currentOrderItemsCount}},[_c('v-list-item-title',{staticClass:\"toHover flex\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',{attrs:{\"left\":\"\",\"x-large\":\"\"}},[_vm._v(\" mdi-view-list-outline \")]),_c('span',{staticStyle:{\"font-size\":\"15px\"}},[_vm._v(_vm._s(_vm.$t('views.confirmedOrder.title')))])],1)])],1)],1):_vm._e(),_vm._l((_vm.links),function(link,i){return _c('v-list-item',{key:i,attrs:{\"data-cy\":link.label.toLowerCase() + '-link',\"disabled\":!link.enabled,\"to\":link.to}},[_c('v-list-item-title',{staticClass:\"toHover\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-img',{staticClass:\"mb-2 mr-2\",attrs:{\"id\":\"selectedItem\",\"src\":link.src,\"max-width\":\"40\",\"max-height\":\"40\"}}),_c('span',{staticStyle:{\"font-size\":\"15px\"}},[_vm._v(_vm._s(link.label))])],1)])],1)})],2)],1)]):_vm._e(),_c('v-main',{staticClass:\"fill-height\",staticStyle:{\"padding-bottom\":\"90px\"}},[_c('keep-alive',[_c('router-view')],1)],1)],1)]),_c('v-dialog',{staticClass:\"px-16\",attrs:{\"width\":\"700\",\"persistent\":\"\"},model:{value:(_vm.emailDialogIsActive),callback:function ($$v) {_vm.emailDialogIsActive=$$v},expression:\"emailDialogIsActive\"}},[_c('div',{staticClass:\"d-flex justify-end elevation-5\",staticStyle:{\"background-color\":\"white\"}},[_c('v-btn',{staticClass:\"d-flex mt-3\",attrs:{\"plain\":\"\",\"text\":\"\",\"small\":\"\"},on:{\"click\":_vm.cleanFeedback}},[_c('v-icon',{attrs:{\"color\":\"#7e7e7e\"}},[_vm._v(\" mdi-close \")])],1)],1),_c('v-card',{staticClass:\"pb-8 pt-0 mt-0 rounded-tl-0 rounded-tr-0\",staticStyle:{\"padding-right\":\"95px\",\"padding-left\":\"95px\"},attrs:{\"elevation\":\"0\"}},[_c('v-card-title',{staticClass:\"text-h5 justify-center px-0 pt-0\"},[_c('span',{staticClass:\"text-center font-weight-bold\"},[_vm._v(_vm._s(_vm.$t('feedBack.title')))])]),_c('v-card-text',{staticClass:\"px-0 text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.body'))+\" \")]),_c('v-textarea',{attrs:{\"label\":_vm.$t('views.rfqs.emailDialogPlaceholder'),\"outlined\":\"\",\"placeholder\":_vm.$t('views.rfqs.emailDialogPlaceholder'),\"hide-details\":\"\"},model:{value:(_vm.userCommentFeedback),callback:function ($$v) {_vm.userCommentFeedback=$$v},expression:\"userCommentFeedback\"}}),(_vm.isExeFile)?_c('p',{staticClass:\"caption red--text mt-3 text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.noExeFile'))+\" : \"+_vm._s(_vm.errorFileName)+\" \")]):(_vm.maxFileSize)?_c('p',{staticClass:\"caption red--text mt-3 text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.maxFileWarning'))+\" \")]):_c('p',{staticClass:\"caption text--secondary mt-3 text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.maxFile'))+\" \")]),_c('v-row',{staticStyle:{\"width\":\"500px !important\"}},[_c('v-col',{staticClass:\"mr-0\",attrs:{\"cols\":\"4\"}},[_c('v-btn',{staticClass:\"mr-5\",attrs:{\"outlined\":\"\",\"color\":\"primary\",\"disabled\":_vm.feedbackUploadFile.length === 5 || _vm.userCommentFeedback === ''},on:{\"click\":function($event){return _vm.$refs.uploader.click();}}},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.uploadFile'))+\" \")]),_c('input',{ref:\"uploader\",staticClass:\"d-none\",attrs:{\"id\":\"uploader\",\"type\":\"file\",\"multiple\":\"multiple\",\"accept\":\"*/*\"},on:{\"change\":_vm.onFileChanged}}),(_vm.feedbackUploadFile.length !== 0)?_c('span',{staticClass:\"caption text--secondary\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.size'))+\" : \"+_vm._s(_vm.bytesToSize(_vm.totalSizeInMb, 2))+\" \")]):_vm._e()],1),_c('v-col',{staticClass:\"ml-0\",attrs:{\"cols\":\"3\"}},[(_vm.feedbackUploadFile.length === 0)?_c('span',{staticClass:\"text--secondary caption justify-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.noFileChosen'))+\" \")]):_vm._l((_vm.feedbackUploadFile),function(selectedFile,index){return [_c('div',{key:index},[_c('p',{staticClass:\"d-flex justify-center mb-0 fileUpdateHover\",staticStyle:{\"width\":\"300px !important\"}},[_c('span',{staticClass:\"text-truncate\",staticStyle:{\"width\":\"300px !important\"},attrs:{\"title\":selectedFile.filename}},[_vm._v(_vm._s(selectedFile.filename))]),_c('v-icon',{staticClass:\"d-flex\",attrs:{\"small\":\"\",\"right\":\"\"},on:{\"click\":function($event){return _vm.removeFile(selectedFile.fileSize, index);}}},[_vm._v(\" mdi-close \")])],1)])]})],2)],1),_c('v-btn',{staticClass:\"mt-6\",attrs:{\"disabled\":_vm.isSendEmailPending || _vm.userCommentFeedback === '',\"loading\":_vm.isSendEmailPending,\"color\":\"primary\",\"block\":\"\"},on:{\"click\":_vm.sendFeedBackEmail}},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.sendFeedback'))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n data() {\n return {\n // refresh variables\n refreshing: false,\n registration: null,\n updateExists: false,\n };\n },\n\n created() {\n // Listen for our custom event from the SW registration\n document.addEventListener('swUpdated', this.updateAvailable, { once: true });\n\n // Prevent multiple refreshes\n navigator.serviceWorker.addEventListener('controllerchange', () => {\n if (this.refreshing) {\n return;\n }\n this.refreshing = true;\n // Here the actual reload of the page occurs\n window.location.reload();\n });\n },\n\n methods: {\n updateAvailable(event) {\n console.log(event);\n // TODO: Add a fetch to get release data + severity (prevents cancelling if severity = high)\n this.registration = event.detail;\n this.updateExists = true;\n },\n\n // Called when the user accepts the update\n refreshApp() {\n this.updateExists = false;\n // Make sure we only send a 'skip waiting' message if the SW is waiting\n if (!this.registration || !this.registration.waiting) {\n return;\n }\n // send message to SW to skip the waiting and activate the new SW\n this.registration.waiting.postMessage({ type: 'SKIP_WAITING' });\n },\n },\n};\n","<template>\n <v-app id=\"vue-app\">\n <core-snack />\n\n <core-dialog\n v-model=\"updateExists\"\n width=\"500\"\n persistent\n type=\"acknowledgement\"\n :ok-button-text=\"$t('common.updateToNewVersion')\"\n :cancel-button-text=\"$t('common.notNow')\"\n @click:ok=\"refreshApp\"\n @click:cancel=\"updateExists = false\"\n >\n <template #title>\n {{ $t('common.newVersion') }}\n </template>\n\n <template #content>\n {{ $t('common.releaseNote') }}\n </template>\n </core-dialog>\n\n <core-payment-dialog />\n\n <transition\n name=\"fade\"\n mode=\"out-in\"\n >\n <div\n v-if=\"shouldSkipMainRender\"\n class=\"fill-height\"\n >\n <router-view />\n </div>\n\n <div\n v-else\n class=\"fill-height\"\n >\n <v-navigation-drawer\n v-if=\"showNavigationBar\"\n id=\"navigation-drawer\"\n class=\"text-center elevation-10\"\n width=\"220px\"\n app\n permanent\n clipped-left\n >\n <template\n #prepend\n >\n <img\n src=\"/img/BETA@1x.svg\"\n width=\"45px\"\n height=\"45px\"\n class=\"logo\"\n style=\"z-index: 9999; position: absolute !important; top:-5px; right: 180px\"\n @click=\"$router.push('/')\"\n >\n\n <img\n src=\"/img/Komacut-logo.svg\"\n width=\"175px\"\n height=\"130px\"\n style=\"margin-top: -27px;\"\n class=\"logo toHover\"\n @click=\"$router.push('/')\"\n >\n <v-btn\n id=\"instantQuote\"\n width=\"190\"\n class=\"ml-1 justify-center\"\n color=\"primary\"\n x-large\n data-cy=\"instant-quote-link\"\n :disabled=\"!userCanQuote\"\n @click=\"onActionButtonClicked\"\n >\n {{ $t('menus.instantQuote') }}\n </v-btn>\n\n <v-list\n v-if=\"isFindHardwareCategoriesPending || hardwareCategories.length===0\"\n width=\"250px\"\n dense\n >\n <v-list-group\n class=\"menu-icons\"\n :class=\"{'disable-icons': isFindHardwareCategoriesPending || hardwareCategories.length===0}\"\n @click=\"isHardwareShopMenuExpanded = !isHardwareShopMenuExpanded\"\n >\n <template #activator>\n <v-list-item-content>\n <v-list-item-title\n class=\"text-left\"\n style=\"font-size: 16px \"\n >\n <v-skeleton-loader\n type=\"image\"\n width=\"190\"\n height=\"10\"\n />\n </v-list-item-title>\n </v-list-item-content>\n </template>\n\n <template v-for=\"n in 4\">\n <v-list-item\n :key=\"n\"\n class=\"text-left\"\n style=\"height: auto; padding-left: 50px\"\n >\n <v-list-item-content>\n <v-skeleton-loader\n type=\"image\"\n max-width=\"130\"\n height=\"10\"\n />\n </v-list-item-content>\n </v-list-item>\n <v-divider :key=\"`divider-${n}`\" style=\"width: 170px\" class=\"ml-10\" />\n </template>\n </v-list-group>\n <v-divider v-show=\"!isHardwareShopMenuExpanded\" class=\"mx-2\" />\n </v-list>\n\n <v-list v-else width=\"250px\" dense>\n <v-list-group\n class=\"menu-icons\"\n :class=\"{'disable-icons': isFindHardwareCategoriesPending}\"\n @click=\"isHardwareShopMenuExpanded = !isHardwareShopMenuExpanded\"\n >\n <template #activator>\n <!-- <v-list-item-content-->\n <!-- v-if=\" hardwareCategories.length===0\"-->\n <!-- >-->\n <!-- <v-list-item-title-->\n <!-- class=\"text-left\"-->\n <!-- style=\"font-size: 16px \"-->\n <!-- >-->\n <!-- <v-skeleton-loader-->\n <!-- type=\"image\"-->\n <!-- width=\"190\"-->\n <!-- height=\"10\"-->\n <!-- />-->\n <!-- </v-list-item-title>-->\n <!-- </v-list-item-content>-->\n\n <v-list-item-content\n v-if=\"hardwareCategories.length !==0\"\n @click=\"$router.push({\n path: '/hardware_categories',\n query: { timestamp: Date.now() } //Avoid NavigationDuplicated: Avoided redundant navigation error\n })\"\n >\n <v-list-item-title\n class=\"text-uppercase green--text font-weight-bold justify-center d-flex\"\n data-cy=\"shop-hardware-button\"\n style=\"font-size: 16px \"\n >\n {{ $t('menus.shopHardware') }}\n </v-list-item-title>\n </v-list-item-content>\n </template>\n\n <template v-if=\"hardwareCategories.length===0\">\n <template v-for=\"n in 4\">\n <v-list-item\n :key=\"n\"\n class=\"text-left\"\n style=\"height: auto; padding-left: 50px\"\n >\n <v-list-item-content>\n test\n <v-skeleton-loader\n type=\"image\"\n max-width=\"130\"\n height=\"10\"\n />\n </v-list-item-content>\n </v-list-item>\n <v-divider :key=\"`divider-${n}`\" style=\"width: 170px\" class=\"ml-10\" />\n </template>\n </template>\n <template\n v-for=\"category in hardwareCategories\"\n >\n <v-list-item\n :key=\"category.id\"\n :data-cy=\"`${category.name.toLowerCase().trim().replaceAll(' ', '-')}-hardware-option`\"\n class=\"text-left\"\n :to=\"{ name: 'HardwareCategory', params: { id: category.id } }\"\n style=\"height: auto; padding-left: 50px\"\n link\n >\n <v-list-item-content>\n <v-list-item-title>\n {{ category[locale === 'cn' ? 'nameCHS' : 'name'] }}\n </v-list-item-title>\n </v-list-item-content>\n </v-list-item>\n <v-divider :key=\"`divider-${category.id}`\" style=\"width: 170px\" class=\"ml-10\" />\n </template>\n </v-list-group>\n <v-divider v-show=\"!isHardwareShopMenuExpanded\" class=\"mx-2\" />\n </v-list>\n </template>\n\n <!--â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”»»ICONS SECTION««â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”┓-->\n\n <div style=\"min-height:500px; height: 100%; \" class=\"d-flex align-center justify-center\">\n <v-list style=\"height: 500px; width: 220px;\" class=\"d-flex flex-column\">\n <v-list-item\n v-if=\"currentOrderItemsCount\"\n data-cy=\"go-to-the-order-form-left-nav-bar\"\n to=\"/order/new\"\n >\n <v-badge\n data-cy=\"current_order-items-count-left-nav-bar\"\n left\n overlap\n color=\"error\"\n :content=\"currentOrderItemsCount\"\n >\n <v-list-item-title class=\"toHover flex\">\n <div class=\"d-flex align-center\">\n <v-icon\n left\n x-large\n >\n mdi-view-list-outline\n </v-icon>\n <span style=\"font-size: 15px\">{{ $t('views.confirmedOrder.title') }}</span>\n </div>\n </v-list-item-title>\n </v-badge>\n </v-list-item>\n <v-list-item\n v-for=\"(link, i) in links\"\n :key=\"i\"\n\n :data-cy=\"link.label.toLowerCase() + '-link'\"\n :disabled=\"!link.enabled\"\n :to=\"link.to\"\n >\n <v-list-item-title class=\"toHover\">\n <div class=\"d-flex align-center\">\n <v-img\n id=\"selectedItem\"\n class=\"mb-2 mr-2\"\n :src=\"link.src\"\n max-width=\"40\"\n max-height=\"40\"\n />\n <span style=\"font-size: 15px\">{{ link.label }}</span>\n </div>\n </v-list-item-title>\n </v-list-item>\n </v-list>\n </div>\n\n <template #append>\n <v-hover v-slot=\"{ hover }\">\n <div>\n <div\n :class=\"{ 'on-hover': hover }\"\n class=\"d-flex justify-space-between ml-4\"\n style=\"width: 150px;\"\n @click=\"emailDialogIsActive = true\"\n >\n <img class=\"d-flex\" src=\"/img/iconHelp@1x.svg\">\n <div class=\"caption\">\n <p class=\"mb-0\">\n {{ $t('feedBack.helpUsImprove') }}\n </p>\n <span class=\"caption grey--text font-weight-bold\">\n {{ $t('feedBack.sendFeedbackMenu') }}\n </span>\n </div>\n </div>\n <p class=\"caption text-center mt-1 mr-2\">\n Komacut v.{{ version }}\n </p>\n </div>\n </v-hover>\n </template>\n </v-navigation-drawer>\n\n <v-main class=\"fill-height\" style=\"padding-bottom: 90px\">\n <keep-alive>\n <router-view />\n </keep-alive>\n </v-main>\n </div>\n </transition>\n <v-dialog\n v-model=\"emailDialogIsActive\"\n width=\"700\"\n persistent\n class=\"px-16\"\n >\n <div class=\"d-flex justify-end elevation-5\" style=\"background-color: white\">\n <v-btn\n plain\n class=\"d-flex mt-3\"\n text\n small\n @click=\"cleanFeedback\"\n >\n <v-icon color=\"#7e7e7e\">\n mdi-close\n </v-icon>\n </v-btn>\n </div>\n <v-card\n elevation=\"0\"\n style=\"padding-right: 95px;padding-left: 95px\"\n class=\"pb-8 pt-0 mt-0 rounded-tl-0 rounded-tr-0\"\n >\n <v-card-title class=\"text-h5 justify-center px-0 pt-0\">\n <span class=\"text-center font-weight-bold\">{{ $t('feedBack.title') }}</span>\n </v-card-title>\n\n <v-card-text class=\"px-0 text-center\">\n {{ $t('feedBack.body') }}\n </v-card-text>\n\n <v-textarea\n v-model=\"userCommentFeedback\"\n :label=\"$t('views.rfqs.emailDialogPlaceholder')\"\n outlined\n :placeholder=\"$t('views.rfqs.emailDialogPlaceholder')\"\n hide-details\n />\n <p v-if=\"isExeFile\" class=\"caption red--text mt-3 text-center\">\n {{ $t('feedBack.noExeFile') }} : {{ errorFileName }}\n </p>\n\n <p v-else-if=\"maxFileSize\" class=\"caption red--text mt-3 text-center\">\n {{ $t('feedBack.maxFileWarning') }}\n </p>\n\n <p v-else class=\"caption text--secondary mt-3 text-center\">\n {{ $t('feedBack.maxFile') }}\n </p>\n <v-row style=\"width: 500px !important;\">\n <v-col cols=\"4\" class=\"mr-0\">\n <v-btn\n outlined\n color=\"primary\"\n class=\"mr-5\"\n :disabled=\"feedbackUploadFile.length === 5 || userCommentFeedback === ''\"\n @click=\"$refs.uploader.click();\"\n >\n {{ $t('feedBack.uploadFile') }}\n </v-btn>\n <input\n id=\"uploader\"\n ref=\"uploader\"\n class=\"d-none\"\n type=\"file\"\n multiple=\"multiple\"\n accept=\"*/*\"\n @change=\"onFileChanged\"\n >\n <span v-if=\"feedbackUploadFile.length !== 0\" class=\"caption text--secondary\">\n {{ $t('common.size') }} : {{ bytesToSize(totalSizeInMb, 2) }}\n </span>\n </v-col>\n\n <v-col cols=\"3\" class=\"ml-0\">\n <span v-if=\"feedbackUploadFile.length === 0\" class=\"text--secondary caption justify-center\">\n {{ $t('feedBack.noFileChosen') }}\n </span>\n <template v-for=\"(selectedFile,index) in feedbackUploadFile\" v-else>\n <div :key=\"index\" class=\"\">\n <p class=\"d-flex justify-center mb-0 fileUpdateHover\" style=\"width: 300px !important;\">\n <span\n :title=\"selectedFile.filename\"\n style=\"width: 300px !important;\"\n class=\"text-truncate\"\n >{{ selectedFile.filename }}</span>\n <v-icon\n class=\"d-flex\"\n small\n right\n @click=\"removeFile(selectedFile.fileSize, index);\"\n >\n mdi-close\n </v-icon>\n </p>\n </div>\n </template>\n </v-col>\n </v-row>\n <v-btn\n :disabled=\"isSendEmailPending || userCommentFeedback === ''\"\n :loading=\"isSendEmailPending \"\n class=\"mt-6\"\n color=\"primary\"\n block\n @click=\"sendFeedBackEmail\"\n >\n {{ $t('feedBack.sendFeedback') }}\n </v-btn>\n </v-card>\n </v-dialog>\n </v-app>\n</template>\n\n<script>\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport { models } from 'feathers-vuex';\nimport { datadogRum } from '@datadog/browser-rum';\nimport localeCn from 'dayjs/locale/zh-cn';\nimport localeEn from 'dayjs/locale/en';\nimport update from './mixins/swupdate';\n\nexport default {\n name: 'App',\n\n mixins: [\n update,\n ],\n\n data() {\n return {\n isHardwareShopMenuExpanded: false,\n totalSizeInMb: 0,\n isExeFile: false,\n maxFileSize: false,\n errorFileName: '',\n feedbackUploadFile: [],\n file: {},\n userCommentFeedback: '',\n menuItemState: {},\n isSendEmailPending: false,\n emailDialogIsActive: false,\n createUserFeedBack: null,\n };\n },\n\n computed: {\n ...mapState('app', [\n 'image', 'sidebarBackgroundColor', 'title', 'logo', 'locale', 'version'\n ]),\n ...mapState('hardware-categories', {\n isFindHardwareCategoriesPending: 'isFindPending',\n }),\n ...mapState('hardware-categories', {\n isFindCategoriesPending: 'isFindPending',\n }),\n ...mapState('countries', { countriesStateIds: 'ids' }),\n ...mapState('regions', { regionsStateIds: 'ids' }),\n ...mapGetters('temp-rfqs', { getTempRfqIdInProgress: 'getTempRfqIdInProgress' }),\n ...mapGetters('auth', { authUser: 'user' }),\n ...mapState('auth', ['accessToken']),\n ...mapGetters('app', ['currentOrderItemsCount']),\n Country: () => models.api.Country,\n Regions: () => models.api.Regions,\n HardwareCategory: () => models.api.HardwareCategory,\n HardwareProduct: () => models.api.HardwareProduct,\n ...mapGetters('auth', { loggedInUser: 'user' }),\n\n hardwareCategories: vm => vm.HardwareCategory.findInStore().data,\n company: () => models.api.Company.getFromStore(0),\n\n userCanQuote: ({ loggedInUser }) => loggedInUser && (loggedInUser.isAdmin || _.get(loggedInUser, 'rights.instantQuote', false)),\n\n links({ loggedInUser }) {\n const links = [\n {\n to: '/rfqs',\n src: '/img/rfqs.svg',\n label: this.$t('menus.rfqs'),\n enabled: loggedInUser && (loggedInUser.isAdmin || loggedInUser.rights.rfqs),\n },\n {\n to: '/orders',\n src: '/img/orders.svg',\n label: this.$t('menus.orders'),\n enabled: loggedInUser && (loggedInUser.isAdmin || loggedInUser.rights.orders),\n },\n {\n to: '/my_parts',\n src: '/img/myparts.svg',\n label: this.$t('menus.myParts'),\n enabled: loggedInUser && (loggedInUser.isAdmin || loggedInUser.rights.myParts),\n },\n {\n to: '/tools/materials',\n src: '/img/engineeringtools.svg',\n label: this.$t('menus.engineeringTools'),\n enabled: true,\n },\n ];\n\n // Must check string value\n if (process.env.VUE_APP_DO_SHOW_SANDBOX === 'true') {\n links.push({\n to: '/sandbox',\n src: '/img/settings.svg',\n label: 'Sandbox',\n enabled: process.env.VUE_APP_DO_SHOW_SANDBOX,\n });\n }\n return links;\n },\n\n restrictedFileExtensions: () => [\n 'ade',\n 'adp',\n 'apk',\n 'appx',\n 'appxbundle',\n 'bat',\n 'cab',\n 'chm',\n 'cmd',\n 'com',\n 'cpl',\n 'dll',\n 'dmg',\n 'ex',\n 'ex_',\n 'exe',\n 'hta',\n 'ins',\n 'isp',\n 'iso',\n 'jar',\n 'js',\n 'jse',\n 'lib',\n 'lnk',\n 'mde',\n 'msc',\n 'msi',\n 'msix',\n 'msixbundle',\n 'msp',\n 'mst',\n 'nsh',\n 'pif',\n 'ps1',\n 'scr',\n 'sct',\n 'shb',\n 'sys',\n 'vb',\n 'vbe',\n 'vbs',\n 'vxd',\n 'wsc',\n 'wsf',\n 'wsh',\n 'zip'\n ],\n\n isLogin() {\n return this.$route.fullPath === '/login';\n },\n\n isLogout() {\n return this.$route.fullPath === '/logout';\n },\n\n shouldSkipMainRender() {\n /**\n * During the initial render, the $route instance is not available, so we have to use the raw\n * History object instance.\n * NOTE: If we don't use a reactive ($route) in this compute, it will not be recomputed\n */\n return this.isLogin || this.isLogout || [\n /^\\/404/,\n /^\\/login/,\n /^\\/logout/,\n /^\\/on_boarding/,\n /^\\/confirmation/,\n /^\\/forgotten_password/,\n /^\\/reset_password/,\n /^\\/signup/,\n /^\\/resetpassword_send_email/,\n /^\\/resetpassword_success/,\n ].some(url => _.get(window, 'location.pathname', '').match(url));\n },\n\n showNavigationBar() {\n return (\n this.$route.name !== 'Support'\n && this.$route.name !== 'DrawingApp'\n && this.$route.name !== 'ThreeDPackagingTool'\n );\n },\n\n },\n\n watch: {\n loggedInUser: {\n deep: true,\n handler(newUser) {\n if (newUser) {\n datadogRum.setUser({\n id: newUser._id,\n fullName: newUser.fullName,\n });\n // For ODOO live chat\n window.setLiveChatUser(newUser._id, this.accessToken);\n }\n },\n },\n },\n\n mounted() {\n this.createUserFeedBack = this.$feathers.service('feedback');\n this.$nextTick(() => {\n this.$i18n.locale = this.locale;\n });\n this.autoLoadGeographicData();\n const translationDate = this.locale === 'cn' ? localeCn : localeEn;\n moment.locale(translationDate);\n // const that = this;\n // // eslint-disable-next-line func-names\n // (function (d, t) {\n // const BASE_URL = 'https://chat.komacut.com';\n // const g = d.createElement(t);\n // const s = d.getElementsByTagName(t)[0];\n // g.src = `${BASE_URL}/packs/js/sdk.js`;\n // g.defer = true;\n // g.async = true;\n // s.parentNode.insertBefore(g, s);\n // // eslint-disable-next-line func-names\n // g.onload = function () {\n // window.chatwootSDK.run({\n // websiteToken: 'PN2n9TJBxGDsp2wJcVvqWP9q',\n // baseUrl: BASE_URL\n // });\n // };\n // const timer = setInterval(() => {\n // const arrayOfElement = document.getElementsByClassName('woot-widget-bubble');\n // const element = Array.from(arrayOfElement);\n // if (element[0]) {\n // const div = element[0];\n // const showTip = () => {\n // const tip = document.createElement('span');\n // tip.id = 'tip';\n // tip.innerHTML = that.$t('menus.chatWithUs');\n // div.appendChild(tip);\n // tip.style.cssText = `\n // opacity:1;\n // width:100px;\n // bottom:30px;\n // right:70px;\n // position:absolute;\n // font-size:14px;\n // font-family:\"Nunito Sans\";\n // background:rgba(97,97,97,.9);\n // color:white;\n // padding:5px;\n // border-radius:4px;`;\n // };\n // const hideTip = () => {\n // const tip = document.getElementById('tip');\n // tip.remove();\n // };\n //\n // div.addEventListener('mouseover', showTip, false);\n // div.addEventListener('mouseout', hideTip, false);\n // clearInterval(timer);\n // }\n // }, 1000);\n // }(document, 'script'));\n },\n\n methods: {\n ...mapActions('app', ['pushSnack']),\n\n bytesToSize(bytes, decimals) {\n if (bytes === 0) {\n return '0 Bytes';\n }\n const k = 1000;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n // eslint-disable-next-line no-restricted-properties\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n },\n removeFile(fileSize, index) {\n this.maxFileSize = false;\n this.totalSizeInMb -= parseInt(fileSize, 10);\n this.feedbackUploadFile.splice(index, 1);\n },\n\n async sendFeedBackEmail() {\n this.isSendEmailPending = true;\n try {\n await this.createUserFeedBack.create(\n {\n comment: this.userCommentFeedback,\n fileArray: this.feedbackUploadFile\n }\n );\n } catch (e) {\n console.error(e);\n }\n this.cleanFeedback();\n },\n\n cleanFeedback() {\n this.feedbackUploadFile = [];\n this.userCommentFeedback = '';\n this.emailDialogIsActive = false;\n this.isSendEmailPending = false;\n this.errorFileName = '';\n this.isExeFile = false;\n this.maxFileSize = false;\n this.totalSizeInMb = 0;\n document.getElementById('uploader').value = '';\n },\n\n onFileChanged(e) {\n const currentFiles = e.target.files;\n this.isExeFile = false;\n this.maxFileSize = false;\n this.errorFileName = '';\n\n for (let i = 0; i < 5 - this.feedbackUploadFile.length; i++) {\n const file = currentFiles[i];\n\n const extensionFile = file ? file.name.split('.').pop() : '';\n\n if (this.restrictedFileExtensions.includes(extensionFile.toLowerCase())) {\n this.errorFileName = file.name;\n this.isExeFile = true;\n document.getElementById('uploader').value = '';\n return;\n }\n\n const bytes = file ? file.size : 0;\n const totalFileSize = this.totalSizeInMb + bytes;\n const sizeLimitInBytes = 1024 * 1000 * 5;\n if (totalFileSize > sizeLimitInBytes) {\n this.maxFileSize = true;\n document.getElementById('uploader').value = '';\n return;\n }\n this.totalSizeInMb = totalFileSize;\n\n const reader = new FileReader();\n reader.onloadend = () => {\n const readFile = reader.result;\n this.feedbackUploadFile.push({ path: readFile, filename: file.name, fileSize: file.size });\n };\n if (file) {\n reader.readAsDataURL(file);\n }\n }\n document.getElementById('uploader').value = '';\n },\n\n async autoLoadGeographicData() {\n const countryCount = this.Country.countInStore({ query: {} });\n if (countryCount === 0) {\n this.Country.find({ query: {} });\n }\n\n const regionCount = this.Regions.countInStore({ query: {} });\n if (regionCount === 0) {\n this.Regions.find({ query: {} });\n }\n },\n\n settingPathRights(user) {\n if (_.get(user, 'isAdmin', false) || _.get(user, 'rights.companyManagement', false)) {\n return '/settings/company';\n }\n return '/settings/forwarders';\n },\n\n onActionButtonClicked() {\n this.$router.push(`/rfqs/${this.getTempRfqIdInProgress}`);\n },\n },\n};\n</script>\n\n<style scoped>\n\n>>> .menu-icons .v-list-item__icon:last-of-type:not(:only-child) {\n margin-left: 0 !important;\n justify-content: unset;\n}\n\n>>> .disable-icons .v-list-item__icon:last-of-type:not(:only-child) {\n display: none;\n}\n\n>>> .menu-icons .theme--light.v-icon {\n color: #2C984E !important;\n}\n\n.v-list-item {\n font-size: 12px;\n height: 100px;\n}\n\n.on-hover {\n cursor: pointer;\n opacity: 0.6\n}\n\n.tiny-font {\n font-size: 10px;\n}\n\n.tiny-font-bold {\n font-size: 10px;\n font-weight: bold;\n}\n\n.toHover:hover {\n color: #6cb043;\n filter: invert(0.4) sepia(1) saturate(4) hue-rotate(75.6deg) brightness(1);\n}\n\n.fileUpdateHover:hover {\n cursor: pointer;\n background-color: rgba(192, 192, 192, 0.3);\n}\n\n.v-navigation-drawer__content .v-list-item--active {\n color: #6cb043;\n filter: invert(0.4) sepia(1) saturate(4) hue-rotate(75.6deg) brightness(1);\n}\n\n.v-image__image--contain {\n top: 9px;\n height: 60%;\n}\n\n.search-input {\n margin-bottom: 30px !important;\n padding-left: 15px;\n padding-right: 15px;\n}\n\ndiv.v-responsive.v-image > div.v-responsive__content {\n overflow-y: auto;\n}\n\n.logo:hover {\n cursor: pointer;\n}\n\n.menu {\n max-height: calc(100vh - 120px);\n overflow-y: auto;\n}\n\n.fade-enter-active,\n.fade-leave-active {\n transition-duration: 0.3s;\n transition-property: opacity;\n transition-timing-function: ease;\n}\n\n.fade-enter,\n.fade-leave-active {\n opacity: 0;\n}\n</style>\n\n<style>\nhtml {\n overflow-y: auto !important;\n overflow-x: overlay !important;\n height: 100%;\n}\n\n.row {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.v-data-table tbody tr.v-data-table__expanded__content {\n box-shadow: none !important;\n -webkit-box-shadow: none !important;\n}\n\n.v-data-table td, .v-data-table th {\n padding: 0 !important;\n}\n\n.v-data-table tr td {\n cursor: default !important;\n}\n\nheader.v-sheet.v-toolbar.v-toolbar--flat.v-app-bar {\n background-color: #f8f8ff !important;\n}\n\n.theme--light.v-application {\n background: #f8f8ff !important;\n}\n\n.v-navigation-drawer {\n z-index: 11 !important;\n}\n\n.v-content {\n padding-top: 64px !important;\n}\n\n.v-toolbar__content {\n height: 64px !important;\n}\n\n.v-app-bar.v-app-bar--fixed {\n z-index: 7 !important;\n}\n\n.v-list-item__action {\n margin: 6px 0 !important;\n}\n\n.v-list--dense .v-list-item, .v-list-item--dense {\n min-height: 32px !important;\n}\n\n.v-input__slot {\n margin-bottom: 2px !important;\n}\n\n.v-expansion-panel-header {\n padding: 8px 16px !important;\n}\n\n.flex-vcenter {\n display: flex;\n align-items: center;\n}\n\n.v-tabs-slider-wrapper {\n height: 3px !important;\n\n}\n\n.loading:after {\n overflow: hidden;\n display: inline-block;\n vertical-align: bottom;\n -webkit-animation: ellipsis steps(4, end) 900ms infinite;\n animation: ellipsis steps(4, end) 900ms infinite;\n content: \"\\2026\";\n width: 0;\n}\n\n@keyframes ellipsis {\n to {\n width: 1.25em;\n }\n}\n\n@-webkit-keyframes ellipsis {\n to {\n width: 1.25em;\n }\n}\n\n.menu-offset-class {\n margin: -10px 0 0 0;\n}\n\n</style>\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=d808bbbc&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=d808bbbc&scoped=true&lang=css&\"\nimport style1 from \"./App.vue?vue&type=style&index=1&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 \"d808bbbc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VHover } from 'vuetify/lib/components/VHover';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListGroup } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VApp,VBadge,VBtn,VCard,VCardText,VCardTitle,VCol,VDialog,VDivider,VHover,VIcon,VImg,VList,VListGroup,VListItem,VListItemContent,VListItemTitle,VMain,VNavigationDrawer,VRow,VSkeletonLoader,VTextarea})\n","import Vue from 'vue';\nimport _ from '@/plugins/simulateLodash';\n\nconst requireComponent = require.context('./', true, /\\.vue$/);\n\nrequireComponent.keys().forEach(fileName => {\n const componentConfig = requireComponent(fileName);\n\n const componentName = _.upperFirst(\n _.camelCase(fileName.replace(/^\\.\\//, '').replace(/\\.\\w+$/, ''))\n );\n\n Vue.component(componentName, componentConfig.default || componentConfig);\n});\n","import { datadogRum } from '@datadog/browser-rum';\n\ndatadogRum.init({\n applicationId: process.env.VUE_APP_DATADOG_RUM_APP_ID,\n clientToken: process.env.VUE_APP_DATADOG_RUM_CLIENT_TOKEN,\n site: 'datadoghq.com',\n service: `komacut-${process.env.NODE_ENV}`,\n // Specify a version number to identify the deployed version of your application in Datadog\n // version: '1.0.0',\n sampleRate: 100,\n sessionReplaySampleRate: 100,\n trackResources: true,\n trackLongTasks: true,\n trackInteractions: true\n});\n\ndatadogRum.startSessionReplayRecording();\n","import Vue from 'vue';\nimport VueCompositionAPI from '@vue/composition-api';\n// TODO : See if we can eliminate this, it's only used twice, is there an alternative in those cases?\nimport AsyncComputed from 'vue-async-computed';\nimport mask from 'vue-the-mask';\nimport '@babel/polyfill';\nimport vueFeathers from 'vue-feathers';\n\nimport dayjs from 'dayjs';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport VueTelInputVuetify from 'vue-tel-input-vuetify/lib';\n\n// import '@/sass/variables.scss';\nimport App from './App.vue';\nimport router from './router';\nimport store from './store';\nimport i18n from './plugins/i18n';\nimport './directives';\nimport './components';\nimport './registerServiceWorker';\nimport './plugins/datadog-rum';\n// import ddlogger from './utils/logger';\nimport vuetify from './plugins/vuetify';\nimport _ from './plugins/simulateLodash';\nimport feathersClient from './plugins/feathers-client';\n\ndayjs.extend(relativeTime);\nwindow._ = _;\nwindow.moment = dayjs;\n\nVue.config.productionTip = false;\n\n// Make sure lodash works in templates too\nVue.prototype._ = _;\nVue.prototype.moment = dayjs;\n\nVue.use(AsyncComputed);\nVue.use(VueCompositionAPI);\nVue.use(mask);\nVue.use(vueFeathers, feathersClient);\n\ndayjs.locale(i18n.locale);\n\n// Vue.config.errorHandler = (err, _vm, info) => {\n// console.log('Uncaught FE Error', err);\n// ddlogger.logger.error('uncaught fe error', {\n// message: err.message,\n// stack: err.stack,\n// type: info,\n// });\n// };\nVue.use(VueTelInputVuetify, {\n vuetify,\n});\n\nnew Vue({\n router,\n i18n,\n store,\n vuetify,\n render: h => h(App),\n}).$mount('#app');\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgottenPassword.vue?vue&type=style&index=0&id=282c8aed&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinishColor.vue?vue&type=style&index=0&id=0e2299e1&scoped=true&lang=css&\"","const PAYMENT_STATUS = Object.freeze({\n INITIATED: 'initiated',\n IN_PROGRESS: 'inProgress',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n});\n\nmodule.exports = {\n PAYMENT_STATUS\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('v-toolbar',{staticClass:\"mb-4\",attrs:{\"color\":\"primary\",\"flat\":\"\"}},[_c('v-card-title',{staticClass:\"white--text\"},[_vm._v(\" User \")])],1),_c('v-card-text',[_c('v-col',{staticClass:\"py-0\"},[_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('form-email',{attrs:{\"is-disabled\":!!_vm.localValue._id,\"types-locale-key\":\"form.email.types\"},model:{value:(_vm.localValue.email),callback:function ($$v) {_vm.$set(_vm.localValue, \"email\", $$v)},expression:\"localValue.email\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-text-field',{directives:[{name:\"mask\",rawName:\"v-mask\",value:('(###) ###-####'),expression:\"'(###) ###-####'\"}],attrs:{\"label\":_vm.$t('common.number'),\"placeholder\":_vm.$t(\"form.phone.placeholders.number\")},model:{value:(_vm.localValue.PhoneOffice),callback:function ($$v) {_vm.$set(_vm.localValue, \"PhoneOffice\", $$v)},expression:\"localValue.PhoneOffice\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('common.firstName'),\"placeholder\":_vm.$t('common.firstName')},model:{value:(_vm.localValue.firstName),callback:function ($$v) {_vm.$set(_vm.localValue, \"firstName\", $$v)},expression:\"localValue.firstName\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('common.lastName'),\"placeholder\":_vm.$t('common.lastName')},model:{value:(_vm.localValue.lastName),callback:function ($$v) {_vm.$set(_vm.localValue, \"lastName\", $$v)},expression:\"localValue.lastName\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"4\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('common.position'),\"placeholder\":_vm.$t(\"form.contact.placeholders.position\")},model:{value:(_vm.localValue.JobTitle),callback:function ($$v) {_vm.$set(_vm.localValue, \"JobTitle\", $$v)},expression:\"localValue.JobTitle\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[(_vm.isAdmin)?_c('v-select',{attrs:{\"label\":_vm.$t('form.user.fields.roles'),\"items\":_vm.roles,\"item-text\":'name',\"item-value\":\"_id\",\"item-disabled\":\"inactive\",\"chips\":\"\",\"clearable\":\"\",\"small-chips\":\"\",\"deletable-chips\":\"\",\"multiple\":\"\"},model:{value:(_vm.localValue.roleIds),callback:function ($$v) {_vm.$set(_vm.localValue, \"roleIds\", $$v)},expression:\"localValue.roleIds\"}}):_vm._e()],1)],1)],1),_vm._t(\"default\")],2)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"depressed\":\"\",\"color\":\"primary\",\"disabled\":!_vm.originalFormDataChanged || _vm.loading,\"loading\":_vm.loading},on:{\"click\":function($event){return _vm.save()}}},[_vm._v(\" Save \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { mapState, mapGetters, mapActions } from 'vuex';\n\nexport default {\n computed: {\n ...mapState('roles', {\n rolesLoading: 'isFindPending',\n }),\n\n ...mapGetters('roles', {\n roles: 'list',\n getRole: 'get',\n findRoles: 'find',\n }),\n },\n\n methods: {\n ...mapActions('roles', {\n fetchRoles: 'find',\n removeRole: 'remove'\n }),\n\n getRoleName(id) {\n return _.get(this.getRole(id), 'name', '?');\n },\n\n getRoleInactive(id) {\n return _.get(this.getRole(id), 'inactive', false);\n },\n }\n};\n","<template>\n <v-card>\n <v-toolbar\n color=\"primary\"\n class=\"mb-4\"\n flat\n >\n <v-card-title class=\"white--text\">\n User\n </v-card-title>\n </v-toolbar>\n\n <v-card-text>\n <v-col class=\"py-0\">\n <v-container>\n <v-row>\n <v-col\n class=\"py-0\"\n md=\"6\"\n cols=\"12\"\n >\n <form-email\n v-model=\"localValue.email\"\n :is-disabled=\"!!localValue._id\"\n types-locale-key=\"form.email.types\"\n />\n </v-col>\n <v-col\n class=\"py-0\"\n cols=\"12\"\n md=\"6\"\n >\n <v-text-field\n v-model=\"localValue.PhoneOffice\"\n v-mask=\"'(###) ###-####'\"\n :label=\"$t('common.number')\"\n :placeholder=\"$t(`form.phone.placeholders.number`)\"\n />\n </v-col>\n </v-row>\n <v-row>\n <v-col\n class=\"py-0\"\n cols=\"12\"\n md=\"4\"\n >\n <v-text-field\n v-model=\"localValue.firstName\"\n :label=\"$t('common.firstName')\"\n :placeholder=\"$t('common.firstName')\"\n />\n </v-col>\n\n <v-col\n class=\"py-0\"\n cols=\"12\"\n md=\"4\"\n >\n <v-text-field\n v-model=\"localValue.lastName\"\n :label=\"$t('common.lastName')\"\n :placeholder=\"$t('common.lastName')\"\n />\n </v-col>\n\n <v-col\n class=\"py-0\"\n md=\"4\"\n cols=\"12\"\n >\n <v-text-field\n v-model=\"localValue.JobTitle\"\n :label=\"$t('common.position')\"\n :placeholder=\"$t(`form.contact.placeholders.position`)\"\n />\n </v-col>\n <v-col\n class=\"py-0\"\n cols=\"12\"\n >\n <v-select\n v-if=\"isAdmin\"\n v-model=\"localValue.roleIds\"\n :label=\"$t('form.user.fields.roles')\"\n :items=\"roles\"\n :item-text=\"'name'\"\n item-value=\"_id\"\n item-disabled=\"inactive\"\n chips\n clearable\n small-chips\n deletable-chips\n multiple\n />\n </v-col>\n </v-row>\n </v-container>\n\n <slot />\n </v-col>\n\n <!-- Will eventually be used -->\n <!-- <v-select-->\n <!-- v-if=\"isAdmin\"-->\n <!-- v-model=\"localValue.locale\"-->\n <!-- :label=\"$t('form.userPreferences.fields.lang')\"-->\n <!-- :items=\"locales\"-->\n <!-- :item-text=\"'text'\"-->\n <!-- item-value=\"value\"-->\n <!-- chips-->\n <!-- clearable-->\n <!-- small-chips-->\n <!-- deletable-chips-->\n <!-- />-->\n </v-card-text>\n\n <v-card-actions>\n <v-spacer />\n <v-btn\n depressed\n color=\"primary\"\n :disabled=\"!originalFormDataChanged || loading\"\n :loading=\"loading\"\n @click=\"save()\"\n >\n Save\n </v-btn>\n </v-card-actions>\n </v-card>\n</template>\n\n<script>\nimport { mapGetters, mapActions, mapState } from 'vuex';\nimport RolesMixin from '../../mixins/roles';\nimport FormMixin from '../../mixins/form';\nimport EditFormMixin from '../../mixins/editForm';\nimport { LEVEL } from '../../utils/log';\n\nexport default {\n mixins: [\n RolesMixin,\n FormMixin,\n EditFormMixin\n ],\n\n props: {\n loading: Boolean,\n },\n\n data() {\n return {\n isColorPickerActive: false,\n };\n },\n\n computed: {\n ...mapGetters('contacts', {\n findContacts: 'find'\n }),\n ...mapState('auth', [\n 'user',\n ]),\n },\n\n methods: {\n ...mapActions('app', [\n 'pushSnack'\n ]),\n refresh() {\n this.fetchRoles();\n },\n\n save() {\n const contact = this.findContacts({ query: { ContactId: this.localValue.ContactId } }).data;\n if (contact.length > 0 && contact[0].ContactId) {\n this.localValue.ContactId = contact[0].ContactId;\n this.$emit('save', this.localValue);\n } else if (this.localValue._id) {\n this.pushSnack({\n snack: { message: 'This user is not linked to any contacts.' },\n level: LEVEL.ERROR,\n });\n } else {\n this.$emit('save', this.localValue);\n }\n }\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./User.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./User.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./User.vue?vue&type=template&id=2583a725&\"\nimport script from \"./User.vue?vue&type=script&lang=js&\"\nexport * from \"./User.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VRow,VSelect,VSpacer,VTextField,VToolbar})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'promo-codes';\n\nconst Model = class PromoCode extends BaseModel {\n static modelName = 'PromoCode';\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[_c('v-col',[_c('v-list',{attrs:{\"color\":\"transparent\"}},[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s('Filters')+\" \")])],1),_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('v-icon',{on:{\"click\":function($event){return _vm.$emit('filter:close')}}},[_vm._v(\" mdi-close \")])],1)],1)],1)],1),_c('v-divider',{staticClass:\"ml-4\"}),_c('v-list',{attrs:{\"color\":\"transparent\"}},[_vm._t(\"default\")],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Main.vue?vue&type=template&id=2a371c1e&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VDivider,VIcon,VList,VListItem,VListItemAction,VListItemContent,VListItemTitle,VRow})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Main.vue?vue&type=style&index=0&id=3e54cacc&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareDrawingTable.vue?vue&type=style&index=0&id=fd018ce0&scoped=true&lang=css&\"","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'hardware-products';\nconst Model = class HardwareProduct extends BaseModel {\n static modelName = 'HardwareProduct';\n\n static instanceDefaults() {\n return {};\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"pa-0\"},[_c('v-row',{staticClass:\"ml-4\"},[_c('v-col',{staticClass:\"mr-2\",attrs:{\"cols\":\"2\"}},[_c('v-btn',{attrs:{\"depressed\":\"\",\"text\":\"\",\"color\":\"primary\",\"x-large\":\"\",\"width\":\"128px\"},on:{\"click\":function($event){return _vm.$emit('openDrawingPanel')}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-vector-square \")]),_vm._v(\" Drawings \")],1)],1),_vm._l((_vm.productOptions),function(productOption,index){return [(productOption.attributeTypes[0].fieldType === 'dropdown')?_c('v-col',{key:(\"dropdown-\" + (productOption.id))},[_c('v-select',{attrs:{\"label\":productOption[_vm.locale === 'en-US' ? 'label' : 'labelChs' ],\"items\":_vm.filteredItems(index),\"attach\":\"\",\"item-text\":_vm.locale === 'en-US' ? 'text' : 'textChs',\"item-value\":\"id\",\"outlined\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectedOptions[productOption.id]),callback:function ($$v) {_vm.$set(_vm.selectedOptions, productOption.id, $$v)},expression:\"selectedOptions[productOption.id]\"}})],1):(productOption.attributeTypes[0].fieldType === 'checkbox')?_c('v-col',{key:(\"checkbox-\" + (productOption.id)),staticClass:\"pl-0\"},[_c('v-checkbox',{attrs:{\"label\":productOption[_vm.locale === 'en-US' ? 'label' : 'labelChs' ],\"true-value\":productOption.options[1].id,\"false-value\":productOption.options[0].id,\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectedOptions[productOption.id]),callback:function ($$v) {_vm.$set(_vm.selectedOptions, productOption.id, $$v)},expression:\"selectedOptions[productOption.id]\"}})],1):_vm._e(),(productOption.attributeTypes[0].fieldType === 'readonly')?_c('v-col',{key:(\"plainText-\" + (productOption.id))},[_c('div',{staticClass:\"caption\",staticStyle:{\"color\":\"rgba(0,0,0,0.6)\"}},[_vm._v(\" \"+_vm._s(productOption[_vm.locale === 'en-US' ? 'label' : 'labelChs'])+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.getReadOnlyProduct[_vm.locale === 'en-US' ? 'text' : 'textChs'])+\" \")])]):_vm._e()]})],2),_c('v-row',{staticClass:\"ml-4\"},[_c('v-col',{staticClass:\"pr-0\",attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"d-flex justify-center\"},[_c('v-text-field',{staticClass:\"mr-2\",staticStyle:{\"max-width\":\"80px\",\"display\":\"inline-block !important\"},attrs:{\"height\":\"56px\",\"data-cy\":\"quantity-input-upload\",\"label\":_vm.$t('views.instantQuote.quantity'),\"rules\":[_vm.isPositiveInteger],\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()},\"click\":function($event){$event.stopPropagation();}},nativeOn:{\"input\":function($event){_vm.reqQty = Math.max(Math.abs(Math.trunc($event.target.value)), 0);}},model:{value:(_vm.reqQty),callback:function ($$v) {_vm.reqQty=_vm._n($$v)},expression:\"reqQty\"}}),_c('v-sheet',{staticClass:\"rounded text-center pa-1 text-truncate\",attrs:{\"color\":\"#f0fdf3\",\"height\":\"56px\",\"width\":\"110px\"}},[_c('p',{staticClass:\"subtitle-2 mb-0\",staticStyle:{\"color\":\"#8D8D8D\"}},[_vm._v(\" Total Price ($) \")]),_c('span',[_vm._v(_vm._s(_vm.calculatePrice))])])],1)]),_c('v-col',[_c('v-btn',{attrs:{\"outlined\":\"\",\"x-large\":\"\",\"color\":\"primary\",\"disabled\":!_vm.selectedProduct},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('add-to-bag', _vm.selectedProduct)}}},[_vm._v(\" Add to custom bag \")]),_c('v-btn',{staticClass:\"ml-6\",attrs:{\"color\":\"primary\",\"x-large\":\"\",\"disabled\":!_vm.selectedProduct},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToOrder()}}},[_vm._v(\" Add to order \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container class=\"pa-0\">\n <v-row class=\"ml-4\">\n <v-col\n cols=\"2\"\n class=\"mr-2\"\n >\n <v-btn\n depressed\n text\n color=\"primary\"\n x-large\n width=\"128px\"\n @click=\"$emit('openDrawingPanel')\"\n >\n <v-icon\n left\n >\n mdi-vector-square\n </v-icon>\n Drawings\n </v-btn>\n </v-col>\n <template v-for=\"(productOption, index) in productOptions\">\n <v-col\n v-if=\"productOption.attributeTypes[0].fieldType === 'dropdown'\"\n :key=\"`dropdown-${productOption.id}`\"\n >\n <v-select\n v-model=\"selectedOptions[productOption.id]\"\n :label=\"productOption[locale === 'en-US' ? 'label' : 'labelChs' ]\"\n :items=\"filteredItems(index)\"\n attach\n :item-text=\"locale === 'en-US' ? 'text' : 'textChs'\"\n item-value=\"id\"\n outlined\n hide-details\n @click.stop\n />\n </v-col>\n <v-col\n v-else-if=\"productOption.attributeTypes[0].fieldType === 'checkbox'\"\n :key=\"`checkbox-${productOption.id}`\"\n class=\"pl-0\"\n >\n <v-checkbox\n v-model=\"selectedOptions[productOption.id]\"\n :label=\"productOption[locale === 'en-US' ? 'label' : 'labelChs' ]\"\n :true-value=\"productOption.options[1].id\"\n :false-value=\"productOption.options[0].id\"\n hide-details\n @click.stop\n />\n </v-col>\n <v-col\n v-if=\"productOption.attributeTypes[0].fieldType === 'readonly'\"\n :key=\"`plainText-${productOption.id}`\"\n >\n <div\n style=\"color:rgba(0,0,0,0.6);\"\n class=\"caption\"\n >\n {{ productOption[locale === 'en-US' ? 'label' : 'labelChs'] }}\n </div>\n <div>\n {{\n getReadOnlyProduct[locale === 'en-US' ? 'text' : 'textChs']\n }}\n </div>\n </v-col>\n </template>\n </v-row>\n <v-row class=\"ml-4\">\n <v-col cols=\"3\" class=\"pr-0\">\n <div class=\"d-flex justify-center\">\n <v-text-field\n v-model.number=\"reqQty\"\n style=\"max-width: 80px;display: inline-block !important;\"\n class=\"mr-2\"\n height=\"56px\"\n data-cy=\"quantity-input-upload\"\n :label=\"$t('views.instantQuote.quantity')\"\n :rules=\"[isPositiveInteger]\"\n type=\"number\"\n hide-details\n outlined\n @input.native=\"reqQty = Math.max(Math.abs(Math.trunc($event.target.value)), 0);\"\n @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n @click.stop\n />\n <v-sheet\n color=\"#f0fdf3\"\n class=\"rounded text-center pa-1 text-truncate\"\n height=\"56px\"\n width=\"110px\"\n >\n <p class=\"subtitle-2 mb-0\" style=\"color: #8D8D8D\">\n Total Price ($)\n </p>\n <span>{{ calculatePrice }}</span>\n </v-sheet>\n </div>\n </v-col>\n\n <v-col>\n <v-btn\n outlined\n x-large\n color=\"primary\"\n :disabled=\"!selectedProduct\"\n @click.stop=\"$emit('add-to-bag', selectedProduct)\"\n >\n Add to custom bag\n </v-btn>\n\n <v-btn\n color=\"primary\"\n x-large\n class=\"ml-6\"\n :disabled=\"!selectedProduct\"\n @click.stop=\"addToOrder()\"\n >\n Add to order\n </v-btn>\n </v-col>\n </v-row>\n </v-container>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapActions, mapState } from 'vuex';\nimport FormRules from '@/mixins/form-rules';\n\nexport default {\n name: 'ProductOption',\n\n mixins: [\n FormRules,\n ],\n\n props: {\n productGroupId: {\n type: String,\n default: ''\n },\n productGroupKey: {\n type: String,\n default: ''\n },\n productOptions: {\n type: Array,\n default: () => []\n },\n productQuery: {\n type: Object,\n default: () => {\n },\n },\n },\n data() {\n return {\n isDrawingsDialogOpen: false,\n selectedOptions: {},\n reqQty: 1,\n customBag: [],\n forceUpdateField: Date.now()\n };\n },\n\n computed: {\n ...mapState('app', ['locale']),\n HardwareProduct: () => models.api.HardwareProduct,\n\n filteredItems: vm => index => {\n const currentOption = vm.productOptions[index];\n if (!currentOption) {\n return [];\n }\n\n const optionsFilter = vm.productOptions.slice(0, index).map(o => ({ [o.id]: vm.selectedOptions[o.id] || '' }));\n\n const query = {\n query: {\n $sort: vm.productQuery.query.$sort,\n [vm.productGroupKey]: vm.productGroupId\n }\n };\n Object.assign(query.query, ...optionsFilter);\n\n const productValue = vm.HardwareProduct.findInStore(query).data;\n\n if (productValue.length === 0) {\n return [];\n }\n\n vm.productReadOnlyOptions.forEach(option => {\n vm.selectedOptions[option.id] = productValue[0][option.id];\n });\n\n vm.productCheckBoxOptions.forEach(option => {\n vm.selectedOptions[option.id] = productValue[0][option.id];\n });\n\n const res = productValue.map(o => (o[currentOption.id]));\n if (res.length === 0) {\n return [];\n }\n\n return res.map(value => currentOption.options.find(option => option.id === value)) || [];\n },\n\n selectedProduct: vm => {\n const query = {\n query: {\n $sort: vm.productQuery.query.$sort,\n [vm.productGroupKey]: vm.productGroupId,\n ...vm.selectedOptions\n }\n };\n\n const product = vm.HardwareProduct.findInStore(query).data;\n if (product.length === 0 || product.length > 1) {\n return null;\n }\n\n return product[0];\n },\n\n calculatePrice: vm => {\n if (!vm.selectedProduct) {\n return '';\n }\n\n const findPrice = vm.selectedProduct.priceMOQ.reverse().find(({ Qty }) => Qty < vm.reqQty) || vm.selectedProduct.priceMOQ[0];\n\n if (!findPrice) {\n return '';\n }\n\n return Math.round((findPrice.Price * vm.reqQty) * 100) / 100;\n },\n\n productReadOnlyOptions: vm => (vm.productOptions ? vm.productOptions\n .filter(option => option.attributeTypes[0].fieldType === 'readonly') : []),\n\n productCheckBoxOptions: vm => (vm.productOptions ? vm.productOptions\n .filter(option => option.attributeTypes[0].fieldType === 'checkbox') : []),\n\n getReadOnlyProduct: vm => {\n const product = vm.HardwareProduct.findInStore({\n query: {\n $sort: vm.productQuery.query.$sort,\n [vm.productGroupKey]: vm.productGroupId\n }\n }).data[0];\n if (!product) {\n return {};\n }\n\n return vm.productReadOnlyOptions[0].options.find(value => value.id === product[vm.productReadOnlyOptions[0].id]) || {};\n },\n\n selectedOption: vm => {\n if (vm.HardwareProduct.store.state['hardware-products'].ids.length > 0) {\n vm.productOptions.forEach(fil => {\n if (!vm.selectedOptions[fil.id]) {\n vm.$set(vm.selectedOptions, fil.id, '');\n }\n });\n }\n return vm.selectedOptions;\n },\n },\n\n watch: {\n selectedProduct() { // watch it\n this.forceUpdateField = Date.now();\n }\n },\n\n methods: {\n ...mapActions('app', ['initCurrentOrder']),\n\n async addToOrder() {\n const order = await this.initCurrentOrder();\n order.addItem('hardware', this.selectedProduct._id, this.reqQty);\n }\n }\n};\n</script>\n\n<style scoped>\n\n>>> .v-skeleton-loader__image {\n height: 600px !important;\n}\n\n.v-data-table > .v-data-table__wrapper > table > tbody {\n padding-left: 55px !important;\n width: 50px\n}\n\n::v-deep .warningStyle {\n background-color: #fbe9ec !important;\n}\n\n.warningFontColor {\n color: #B71C1C;\n}\n\n::v-deep .v-data-table__expand-icon--active {\n color: green;\n transform: rotate(90deg) !important;\n}\n\n::v-deep .v-icon.notranslate.v-data-table__expand-icon {\n color: green;\n margin: 0 10px;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > thead > tr > th {\n background-color: #beebc9;\n padding: 0 0 0 15px !important;\n height: 25px;\n font-size: 12px;\n}\n\n::v-deep thead th:first-child {\n border-radius: 5px 0 0 0;\n}\n\n::v-deep thead th:last-child {\n border-radius: 0 5px 0 0;\n}\n\n.active {\n background-color: green !important;\n color: white !important;\n opacity: 1;\n}\n\n.active-filter {\n background-color: #f5f5f5 !important;\n color: green !important;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > tbody > tr:first-child:hover > td:first-child {\n border-top-left-radius: 0 !important;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > tbody > tr:first-child:hover > td:last-child {\n border-top-right-radius: 0 !important;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > tbody > tr.v-data-table__expanded > td {\n border-bottom: none !important;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper tbody tr.v-data-table__expanded {\n background-color: #fafffb !important;\n}\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductDrawingTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductDrawingTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductDrawingTable.vue?vue&type=template&id=1e25196b&scoped=true&\"\nimport script from \"./ProductDrawingTable.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductDrawingTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProductDrawingTable.vue?vue&type=style&index=0&id=1e25196b&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 \"1e25196b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCheckbox,VCol,VContainer,VIcon,VRow,VSelect,VSheet,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"inline\"}},[(_vm.stlReady)?_c('div',{staticStyle:{\"display\":\"inline\"}},[_c('v-btn',{staticClass:\"pr-1\",attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isStlRemoved,\"color\":\"primary\"}},[_vm._v(\" STL file uploaded \")]),(!_vm.isStlRemoved)?_c('v-icon',{attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showStlRemoveDialog = true}}},[_vm._v(\" mdi-close \")]):_vm._e()],1):[_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isStlRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.display=true;}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"25\"}},[_vm._v(\" mdi-file-cad \")]),_vm._v(\" Upload STL File \")],1)],_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"500px\",\"is-loading\":_vm.isStlRemoved,\"ok-button-text\":_vm.$t('common.delete')},on:{\"click:ok\":_vm.removeSTL,\"click:cancel\":function($event){_vm.showStlRemoveDialog =false}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Delete STL File? \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"pa-10 text-center\"},[_c('span',{staticClass:\"d-block\",domProps:{\"innerHTML\":_vm._s(_vm.$t('common.deleteDialogText', { name: 'STL File' }))}})])]},proxy:true}]),model:{value:(_vm.showStlRemoveDialog),callback:function ($$v) {_vm.showStlRemoveDialog=$$v},expression:\"showStlRemoveDialog\"}}),(_vm.display)?_c('core-dialog',{attrs:{\"type\":\"custom\",\"width\":\"1000px\",\"eager\":true,\"is-loading\":_vm.isStlUploadPending,\"is-ok-disabled\":!_vm.isFileAdded},on:{\"click:ok\":function($event){_vm.display = false;},\"click:cancel\":function($event){_vm.display = false;_vm.removeSTL()}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Upload STL File \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{ref:\"myDialog\",staticClass:\" text-center\"},[_c('v-card',{staticClass:\"mt-5\",staticStyle:{\"border\":\"dashed #D7D7D7 2px\",\"background-color\":\"#F1FDF3\",\"min-width\":\"905px\",\"max-width\":\"1000px\"},attrs:{\"height\":\"150\",\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"d-flex flex-column justify-space-between align-center\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',{attrs:{\"color\":\"green\",\"size\":\"60\"}},[_vm._v(\" mdi-cloud-upload-outline \")]),_c('span',{staticClass:\"headline mx-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.dragFilesToUpload'))+\" \")]),_c('v-btn',{staticStyle:{\"background-color\":\"#FFF\"},attrs:{\"id\":\"dropzone-click-target-stl\",\"depressed\":\"\",\"text\":\"\",\"outlined\":\"\",\"color\":\"success\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.browse'))+\" \")])],1),_c('div',{staticClass:\"d-flex body-2\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" File Supported: STL \")])])],1),_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.SingleFileOnly'))+\" \")],1)]},proxy:true}],null,false,1032472910),model:{value:(_vm.display),callback:function ($$v) {_vm.display=$$v},expression:\"display\"}}):_vm._e(),_c('v-overlay',{attrs:{\"value\":_vm.isSTLDownload,\"z-index\":\"90\"}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div style=\"display: inline\">\n <div v-if=\"stlReady\" style=\"display: inline\">\n <v-btn\n text\n small\n class=\"pr-1\"\n :loading=\"isStlRemoved\"\n color=\"primary\"\n >\n STL file uploaded\n </v-btn>\n <v-icon v-if=\"!isStlRemoved\" small @click=\"showStlRemoveDialog = true\">\n mdi-close\n </v-icon>\n </div>\n <template v-else>\n <v-btn\n text\n small\n :loading=\"isStlRemoved\"\n color=\"primary\"\n @click=\"display=true;\"\n >\n <v-icon left size=\"25\">\n mdi-file-cad\n </v-icon>\n Upload STL File\n </v-btn>\n </template>\n\n <core-dialog\n v-model=\"showStlRemoveDialog\"\n type=\"confirmation\"\n width=\"500px\"\n :is-loading=\"isStlRemoved\"\n :ok-button-text=\"$t('common.delete')\"\n @click:ok=\"removeSTL\"\n @click:cancel=\"showStlRemoveDialog =false\"\n >\n <template #title>\n Delete STL File?\n </template>\n <template #content>\n <div class=\"pa-10 text-center\">\n <span\n class=\"d-block\"\n v-html=\"$t('common.deleteDialogText', { name: 'STL File' })\"\n />\n </div>\n </template>\n </core-dialog>\n <core-dialog\n v-if=\"display\"\n v-model=\"display\"\n type=\"custom\"\n width=\"1000px\"\n :eager=\"true\"\n :is-loading=\"isStlUploadPending\"\n :is-ok-disabled=\"!isFileAdded\"\n @click:ok=\"display = false;\"\n @click:cancel=\"display = false;removeSTL()\"\n >\n <template #title>\n Upload STL File\n </template>\n <template #content>\n <div ref=\"myDialog\" class=\" text-center\">\n <v-card\n class=\"mt-5\"\n height=\"150\"\n flat\n style=\"border: dashed #D7D7D7 2px;\n background-color: #F1FDF3;\n min-width: 905px; max-width: 1000px;\"\n >\n <v-card-text class=\"d-flex flex-column justify-space-between align-center\" style=\"height: 100%\">\n <div class=\"d-flex align-center\">\n <v-icon color=\"green\" size=\"60\">\n mdi-cloud-upload-outline\n </v-icon>\n <span class=\"headline mx-4\">\n {{ $t('views.instantQuote.dragFilesToUpload') }}\n </span>\n <v-btn\n id=\"dropzone-click-target-stl\"\n depressed\n text\n outlined\n color=\"success\"\n style=\"background-color: #FFF\"\n >\n {{ $t('views.instantQuote.browse') }}\n </v-btn>\n </div>\n <div class=\"d-flex body-2\" style=\"color:#4B4B4B\">\n File Supported: STL\n </div>\n </v-card-text>\n </v-card>\n {{ $t('myPartPdf.SingleFileOnly') }}\n </div>\n </template>\n </core-dialog>\n\n <v-overlay :value=\"isSTLDownload\" z-index=\"90\" />\n </div>\n</template>\n\n<script>\nimport Dropzone from 'dropzone';\nimport 'dropzone/dist/dropzone.css';\nimport { mapState } from 'vuex';\nimport { v4 as uuidv4 } from 'uuid';\n\nexport default {\n name: 'StlFileUpload',\n props: {\n stlUrl: {\n type: String,\n },\n },\n data() {\n return {\n stlReady: false,\n previewSTLUrl: '',\n isStlUploadPending: false,\n isFileAdded: false,\n showStlRemoveDialog: false,\n myDropZone: null,\n display: false,\n isStlRemoved: false,\n isSTLDownload: false\n };\n },\n computed: {\n ...mapState('auth', ['accessToken']),\n dropzoneOptions: vm => ({\n url: `${process.env.VUE_APP_API_URL}upload`,\n paramName: 'file',\n headers: {\n Authorization: vm.accessToken,\n },\n thumbnailWidth: 150,\n maxFilesize: 20,\n timeout: 9999999,\n maxFiles: 1,\n parallelUploads: 1,\n acceptedFiles: '.stl,.STL',\n dictDefaultMessage: 'dropZone.dictDefaultMessage',\n dictFallbackMessage: 'dropZone.dictFallbackMessage',\n dictFallbackText: 'dropZone.dictFallbackText',\n dictFileTooBig: 'dropZone.dictFileTooBig',\n dictInvalidFileType: 'dropZone.dictInvalidFileType',\n dictResponseError: 'dropZone.dictResponseError',\n dictCancelUpload: 'dropZone.dictCancelUpload',\n dictCancelUploadConfirmation: 'dropZone.dictCancelUploadConfirmation',\n dictRemoveFile: 'dropZone.dictRemoveFile',\n dictMaxFilesExceeded: 'dropZone.dictMaxFilesExceeded',\n clickable: '#dropzone-click-target-stl',\n previewTemplate: vm.template(),\n renameFile: file => `${vm.getNewUuid()}.${_.last(file.name.split('.'))}`,\n init() {\n this.on('error', async file => {\n this.removeFile(file);\n });\n this.on('success', async file => {\n if (file.upload) {\n vm.previewSTLUrl = `${process.env.VUE_APP_API_URL}uploads/${file.upload.filename}`;\n vm.$emit('stlFileUploaded', vm.previewSTLUrl);\n }\n vm.isStlUploadPending = false;\n vm.display = false;\n });\n\n this.on('sending', () => {\n vm.isStlUploadPending = true;\n });\n\n this.on('addedfile', () => {\n vm.stlReady = true;\n vm.isFileAdded = true;\n });\n }\n\n }),\n },\n watch: {\n display(newValue) {\n if (newValue) {\n setTimeout(() => {\n this.myDropZone = new Dropzone(this.$refs.myDialog, this.dropzoneOptions);\n }, 800);\n } else {\n this.myDropZone = null;\n }\n },\n stlUrl(val) {\n if (val) {\n this.stlReady = true;\n this.previewSTLUrl = this.stlUrl;\n } else {\n this.stlReady = false;\n }\n }\n },\n\n methods: {\n getNewUuid() {\n return uuidv4();\n },\n async onFileChanged(e) {\n const [pdfFile] = e.target.files;\n this.previewSTLUrl = URL.createObjectURL(pdfFile);\n this.$emit('stlFileUploaded', this.previewSTLUrl);\n this.stlReady = true;\n },\n async removeSTL() {\n URL.revokeObjectURL(this.previewSTLUrl);\n this.stlReady = false;\n this.showStlRemoveDialog = false;\n this.previewSTLUrl = '';\n this.$emit('stlFileUploaded', this.previewSTLUrl);\n this.isFileAdded = false;\n },\n template() {\n return `\n <div class=\"d-flex align-start flex-column mt-16\">\n <p style=\"vertical-align: bottom\">Document selected</p>\n <p id=\"test\" class=\"pa-2\" style=\"background-color: #dee0e4; display: inline\">\n <span class=\"mdi mdi-open-in-new font-weight-medium\" style=\"vertical-align: middle; color:#2c984e; font-size:1.2rem\"></span>\n <span class=\"font-weight-bold\" style=\"vertical-align: bottom; color:#2c984e; font-size:1rem\" data-dz-name></span>\n </p>\n </div>`;\n }\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StlFileUpload.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StlFileUpload.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StlFileUpload.vue?vue&type=template&id=df715fc0&\"\nimport script from \"./StlFileUpload.vue?vue&type=script&lang=js&\"\nexport * from \"./StlFileUpload.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VBtn,VCard,VCardText,VIcon,VOverlay})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'shipping-addresses';\n\nconst Model = class ShippingAddress extends BaseModel {\n static modelName = 'ShippingAddress';\n\n static instanceDefaults() {\n return {\n };\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=style&index=0&id=3ebbc123&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"inline\"}},[(_vm.isPdfAlreadyUpload)?_c('div',{staticStyle:{\"display\":\"inline\"}},[_c('v-btn',{staticClass:\"px-0\",attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){$event.stopPropagation();_vm.isPDFDownload=true}}},[_c('v-icon',[_vm._v(\" mdi-file-pdf-box \")])],1)],1):_c('v-icon',{attrs:{\"color\":\"primary\",\"size\":\"20\"}},[_vm._v(\" mdi-note-off \")]),_c('v-overlay',{attrs:{\"value\":_vm.isPDFDownload,\"z-index\":\"90\"},on:{\"click\":function($event){$event.stopPropagation();}}}),_c('v-navigation-drawer',{staticStyle:{\"background-color\":\"#ada6a6\",\"z-index\":\"99 !important\"},attrs:{\"width\":\"70%\",\"fixed\":\"\",\"stateless\":\"\",\"hide-overlay\":\"\",\"right\":\"\",\"temporary\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.isPDFDownload),callback:function ($$v) {_vm.isPDFDownload=$$v},expression:\"isPDFDownload\"}},[_c('div',{ref:\"rfqViewerContainer\",staticStyle:{\"height\":\"calc(100% - 52px)\",\"z-index\":\"99 !important\"},on:{\"click\":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){_vm.isPDFDownload=false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),(_vm.isPDFDownload)?_c('core-pdf-viewer',{attrs:{\"file-name\":_vm.part.Item,\"file-path\":_vm.pdfUri,\"item-height\":800},on:{\"click\":function($event){$event.stopPropagation();}}}):_vm._e()],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div style=\"display: inline;\">\n <div v-if=\"isPdfAlreadyUpload\" style=\"display: inline\">\n <v-btn\n text\n small\n class=\"px-0\"\n :loading=\"isPdfRemoved\"\n color=\"primary\"\n\n @click.stop=\"isPDFDownload=true\"\n >\n <v-icon>\n mdi-file-pdf-box\n </v-icon>\n </v-btn>\n </div>\n\n <v-icon v-else color=\"primary\" size=\"20\">\n mdi-note-off\n </v-icon>\n <v-overlay :value=\"isPDFDownload\" z-index=\"90\" @click.stop />\n <v-navigation-drawer\n v-model=\"isPDFDownload\"\n width=\"70%\"\n fixed\n stateless\n hide-overlay\n right\n temporary\n style=\"background-color: #ada6a6; z-index: 99 !important;\"\n @click.stop\n >\n <div\n ref=\"rfqViewerContainer\"\n style=\"height: calc(100% - 52px);z-index: 99 !important;\"\n @click.stop\n >\n <div class=\"d-flex justify-end\">\n <v-btn\n icon\n x-large\n @click=\"isPDFDownload=false\"\n >\n <v-icon>mdi-close</v-icon>\n </v-btn>\n </div>\n\n <core-pdf-viewer\n v-if=\"isPDFDownload\"\n :file-name=\"part.Item\"\n :file-path=\"pdfUri\"\n :item-height=\"800\"\n @click.stop\n />\n </div>\n </v-navigation-drawer>\n </div>\n</template>\n\n<script>\n\nimport { mapState } from 'vuex';\n\nexport default {\n name: 'MyPartPdfViewer',\n props: {\n part: {\n type: Object,\n },\n },\n data() {\n return {\n myDropZone: null,\n pdfPageHeight: 0,\n pdfPageWidth: 0,\n display: false,\n isPdfAlreadyUpload: false,\n isPDFDownload: false,\n isPdfUploadPending: false,\n isFileAdded: true,\n isPdfRemoved: false\n };\n },\n computed: {\n ...mapState('auth', ['accessToken']),\n\n pdfUri: vm => {\n if (!vm.part) {\n return '';\n }\n const host = process.env.VUE_APP_API_URL;\n const fileName = `${_.get(vm.part, 'DrawingRowPointer', '').toLowerCase()}.pdf`;\n return `${host}uploads/${fileName}/${vm.accessToken}/${vm.part.Item}`;\n }\n },\n\n async created() {\n await this.checkIfPdfExist();\n },\n mounted() {\n const resizeObserver = new ResizeObserver(() => {\n /* 70 breathing room */\n this.pdfPageWidth = this.$refs.rfqViewerContainer.getBoundingClientRect().width - 70;\n const ratio = 8.5 / 11;\n this.pdfPageHeight = this.pdfPageWidth / ratio;\n });\n resizeObserver.observe(this.$refs.rfqViewerContainer);\n },\n methods: {\n async checkIfPdfExist() {\n const response = await fetch(\n this.pdfUri,\n );\n this.isPdfAlreadyUpload = response.status === 200;\n }\n },\n\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyPartPdfViewer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyPartPdfViewer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MyPartPdfViewer.vue?vue&type=template&id=29ab7252&scoped=true&\"\nimport script from \"./MyPartPdfViewer.vue?vue&type=script&lang=js&\"\nexport * from \"./MyPartPdfViewer.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 \"29ab7252\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VBtn,VIcon,VNavigationDrawer,VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fill-height\"},[_c('v-app-bar',{staticClass:\"elevation-0\",attrs:{\"app\":\"\"},scopedSlots:_vm._u([(_vm.needAppBarExtension)?{key:\"extension\",fn:function(){return [_vm._t(\"extension\")]},proxy:true}:null],null,true)},[_c('v-toolbar-title',{staticClass:\"font-weight-light\"},[_c('div',{staticStyle:{\"display\":\"flex\"}},[_vm._t(\"toolbar-title\"),(_vm.user.rights.supportUser)?_c('v-btn',{staticClass:\"secondary ml-2\",attrs:{\"disabled\":_vm.isPatchPending,\"loading\":_vm.isPatchPending},on:{\"click\":function($event){$event.stopPropagation();return _vm.logoutFromCompany.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('common.logoutFromCompany'))+\" \")]):_vm._e()],2)]),_c('v-spacer'),_c('v-toolbar-items',{staticClass:\"justify-center align-center\"},[_vm._t(\"toolbar-icons\"),_c('v-select',{staticClass:\"d-flex \",staticStyle:{\"min-width\":\"130px!important\",\"max-width\":\"130px\",\"padding-left\":\"0 !important\"},attrs:{\"value\":_vm.locale,\"items\":_vm.langList,\"item-value\":\"value\",\"item-text\":\"label\",\"solo\":\"\",\"flat\":\"\",\"hide-details\":\"\",\"single-line\":\"\"},on:{\"change\":function (currentLang) {_vm.setLocale({ $i18n: _vm.i18n, locale: currentLang });}},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"ma-0\",attrs:{\"color\":\"primary\"}},[_vm._v(\" mdi-web \")])]},proxy:true},{key:\"selection\",fn:function(data){return [_c('span',{staticStyle:{\"color\":\"#2c984e\"}},[_vm._v(_vm._s(data.item.label))])]}}])}),_c('v-menu',{staticClass:\"justify-center align-center\",attrs:{\"open-on-hover\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-list-item',_vm._g({staticStyle:{\"min-width\":\"300px !important\",\"max-width\":\"300px\"}},on),[_c('core-avatar',{staticClass:\"mr-3\",attrs:{\"data-cy\":\"main-menu\",\"hide-avatar\":_vm.currentUser.isAvatarIsHidden,\"user\":_vm.currentUser,\"url-preview\":_vm.currentUser.avatarUrl || _vm.userAvatarUrl,\"size\":60,\"display-border\":true,\"is-img-loading\":_vm.currentUser.isAvatarLoading}}),_c('v-list-item-content',[_c('v-list-item-title',{class:[{loading: !_vm.currentUser.firstName && !_vm.currentUser.lastName}],attrs:{\"data-cy\":\"user-name-main-menu\"}},[_vm._v(\" \"+_vm._s(_vm.currentUser.firstName + ' ' + _vm.currentUser.lastName)+\" \")]),_c('v-list-item-subtitle',{class:[{loading: !_vm._.get(_vm.company, 'CompanyName')}],attrs:{\"data-cy\":\"company-name-main-menu\"}},[_vm._v(\" \"+_vm._s(_vm._.get(_vm.company, 'CompanyName'))+\" \")])],1),_c('v-list-item-action',[_c('v-icon',[_vm._v(\" mdi-menu-down \")])],1)],1)]}}])},[_c('v-card',[_c('v-list',{attrs:{\"data-cy\":\"company-name-main-menu-options\"}},_vm._l((_vm.preferenceMenuOptions),function(option,i){return _c('v-list-item',{key:i,attrs:{\"data-cy\":(\"main-menu-\" + (option.text.replace(' ', '-').toLowerCase()) + \"-option\"),\"disabled\":!option.enabled},on:{\"click\":function($event){return _vm.$router.push({ path: option.to })}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(option.icon)+\" \")]),_c('v-list-item-content',[_vm._v(\" \"+_vm._s(option.text)+\" \")])],1)}),1)],1)],1),_c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('v-badge',{attrs:{\"data-cy\":\"current-order-items-count\",\"value\":_vm.currentOrderItemsCount,\"color\":\"error\",\"overlap\":\"\",\"left\":\"\",\"content\":_vm.currentOrderItemsCount}},[_c('v-btn',{attrs:{\"data-cy\":\"go-to-the-order-form\",\"color\":\"primary\",\"small\":\"\",\"to\":\"/order/new\"}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"25\"}},[_vm._v(\" mdi-view-list-outline \")]),_c('span',[_vm._v(_vm._s(_vm.$t('views.confirmedOrder.title')))])],1)],1),_c('span',{staticClass:\"caption\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.locationLabel', { location: (_vm.currentOrder && _vm.currentOrder.factoryName) || '---' }))+\" \")])],1)],2)],1),_vm._t(\"default\"),_c('v-footer',{staticClass:\"pr-3 pa-0 grey--text caption\",staticStyle:{\"background-color\":\"#F8F8FF\"},attrs:{\"height\":\"80px\",\"fixed\":\"\"}},[_c('v-row',{staticClass:\"align-center justify-center fill-height text-center\",staticStyle:{\"min-width\":\"1000px\",\"margin-left\":\"220px\"}},[_c('v-col',{staticStyle:{\"overflow\":\"hidden\",\"text-overflow\":\"ellipsis\",\"width\":\"1px\"}},[_c('span',{staticStyle:{\"white-space\":\"nowrap\"}},[_vm._v(\" Komacut® www.komacut.com © \"+_vm._s(new Date().getFullYear())+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://www.komacut.com/\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.allRights'))+\" \")]),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('common.footerRight'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/legal/privacy-policy/\",\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t('common.privacy')))]),_vm._v(\" \"+_vm._s(_vm.$t('common.and'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/legal/platform-terms/\",\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t('common.terms'))+\".\")])])])],1)],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n props: {\n // Service name. This will automate fetching, pagination, etc...\n modelName: String,\n },\n\n computed: {\n /**\n * Returns the model from the modelName property.\n *\n * @returns {BaseModel}\n */\n model() {\n // ***************** TODO : Uncomment when backend needed\n return this.$FeathersVuex.api[this.modelName];\n // return true;\n },\n\n /**\n * Returns the model service namespace.\n *\n * @returns {string}\n */\n namespace() {\n return _.get(this.model, 'namespace');\n },\n\n /**\n * Returns the store.\n *\n * @returns {object}\n */\n store() {\n return _.get(this.model, 'store');\n },\n\n /**\n * Returns the service's store state.\n *\n * @returns {object}\n */\n storeState() {\n return _.get(this.store, ['state', this.namespace]);\n },\n\n /**\n * Returns all store's getters.\n *\n * @returns {[string]}\n */\n storeGetters() {\n return _.get(this.store, 'getters');\n },\n\n /**\n * Returns list of all documents in the store.\n *\n * @returns {array}\n */\n list() {\n return this.storeGetter('list');\n },\n },\n\n methods: {\n /**\n * Generate a service action or getter store path.\n *\n * @param {string} name Name of getter or action.\n *\n * @returns {string}\n */\n ns(name) {\n return `${this.namespace}/${name}`;\n },\n\n /**\n * Retrieve a specific getter from the service store.\n *\n * @param {string} name Name of the getter.\n *\n * @returns {any}\n */\n storeGetter(name) {\n return _.get(this.storeGetters, this.ns(name));\n },\n\n /**\n * Dispatch the service store action.\n *\n * @param {string} name Name of the action to dispatch.\n * @param {...any} args\n *\n * @returns {Promise}\n */\n storeDispatch(name, ...args) {\n return this.store.dispatch(this.ns(name), ...args);\n },\n\n /**\n * Find a store entity by it's id\n */\n getById(_id) {\n return this.store && this.storeDispatch('get', _id);\n },\n\n /**\n * Get documents from the service store.\n *\n * @param {object} params Find action params to pass.\n *\n * @returns {array}\n */\n find(params) {\n return this.store\n ? this.storeGetter('find')(params).data\n : [];\n },\n\n /**\n * Fetch documents from the server.\n *\n * @param {object} params Find action params to pass.\n *\n * @returns {Promise}\n */\n fetch(params) {\n return this.store\n ? this.storeDispatch('find', params)\n : {\n data: [],\n total: 0,\n };\n },\n\n /**\n * Generate a mongo query object.\n *\n * @param {object} options To build the mongo query.\n * {boolean} local If the query if generated for local store or server use.\n * {string|[string]} sortKey Key or keys to sort by.\n * {boolean|[boolean]} sortDesc Sort descending order or not.\n * {number} limit Maximum number of documents to retrieve.\n * {number} page Current page of documents to retrieve.\n * {string} search Full text (almost) search value.\n * {[string]} searchFields Fields to use for the text search.\n *\n * @returns {string}\n */\n generateQuery(options) {\n const keys = options.sortKey;\n const orders = options.sortDesc;\n const sort = {};\n\n if (Array.isArray(keys)) {\n for (let x = 0; x < keys.length; x++) {\n const k = keys[x];\n const o = orders === false || _.get(orders, x) === false;\n if (o !== undefined) {\n sort[k] = o === false ? 1 : -1;\n }\n }\n } else if (keys && orders !== undefined) {\n sort[keys] = orders === false ? 1 : -1;\n }\n\n let query = {\n $skip: options.limit * Math.max(0, options.page - 1),\n $limit: options.limit,\n $sort: sort,\n };\n\n if (!_.isEmpty(options.search)) {\n // Documents should already be aggregated from the server here\n // Just do a query on searchFields and newly aggregated fields\n if (options.local) {\n const aggregateFields = [];\n\n const re = new RegExp(options.search, 'i');\n\n const instancePaths = _.get(this.model, 'instanceDefaults', () => undefined)();\n\n // Get only fields of type string\n const stringFields = options.searchFields.filter(f => _.isString(_.get(instancePaths, f)));\n const fields = [\n ...stringFields.map(field => ({ [field]: re })),\n { 'createdBy.displayName': re },\n { 'createdBy.email': re },\n { 'updatedBy.displayName': re },\n { 'updatedBy.email': re },\n ];\n\n if (options.searchAggregate) {\n for (const a of options.searchAggregate) {\n const { searchFields } = a;\n\n const searchFieldsPaths = {};\n searchFields.map(f => _.set(searchFieldsPaths, [f], ''));\n\n const servicePaths = {\n ..._.get(\n this.$FeathersVuex.api.byServicePath,\n [a.from || '', 'instanceDefaults'],\n () => {}\n )(),\n ...searchFieldsPaths,\n };\n\n // Get only fields of type string\n const serviceStringFields = searchFields.filter(f => _.isString(_.get(servicePaths, [f])));\n\n serviceStringFields.forEach(f => {\n aggregateFields.push({ [f]: re });\n });\n }\n }\n\n query.$or = [\n ...fields,\n ...aggregateFields,\n ];\n } else {\n query.search = options.search;\n query.searchFields = [...options.searchFields, 'createdBy', 'updatedBy'];\n query.searchAggregate = _.compact([\n ...(options.searchAggregate || []),\n {\n from: 'users',\n localField: 'updatedById',\n foreignField: '_id',\n as: 'updatedByDetail',\n project: { displayName: 1, email: 1 },\n searchFields: [\n 'updatedByDetail.displayName',\n 'updatedByDetail.email',\n ],\n },\n {\n from: 'users',\n localField: 'createdById',\n foreignField: '_id',\n as: 'createdByDetail',\n project: { displayName: 1, email: 1 },\n searchFields: [\n 'createdByDetail.displayName',\n 'createdByDetail.email',\n ],\n },\n ]);\n }\n }\n\n const filterField = _.get(options.filter, 'field');\n const filterValue = _.get(options.filter, 'value');\n if (!_.isEmpty(filterField) && !_.isEmpty(filterValue) && filterValue !== '*') {\n if (filterValue.startsWith('*')) {\n query[filterField] = new RegExp(`^${filterValue.substr(1)}`);\n } else if (filterValue.endsWith('*')) {\n query[filterField] = new RegExp(`${filterValue.substr(-1)}$`);\n } else {\n query[filterField] = filterValue;\n }\n }\n\n query = { ...query, ...(options.query || {}) };\n\n return query;\n },\n\n /**\n * Remove a document from store and server.\n *\n * @param {string} _id Id of document to remove.\n *\n * @returns {Promise}\n */\n removeDoc(_id) {\n return this.store\n ? this.storeDispatch('remove', _id).then(() => this.$refs.tabs.removeTab(-1, _id))\n : Promise.resolve(() => {});\n },\n\n /**\n * Remove multiple documents from store and server.\n *\n * @param {[string]} docIds Array of document ids.\n *\n * @returns {Promise}\n */\n remove(docIds) {\n const promises = [];\n for (const _id of docIds) {\n promises.push(this.removeDoc(_id));\n }\n return Promise.all(promises);\n },\n },\n};\n","export default {\n props: {\n /** Columns to display from items/entities in the table\n * text: string\n * value: string\n * align?: 'start' | 'center' | 'end'\n * sortable?: boolean\n * filterable?: boolean\n * divider?: boolean\n * class?: string | string[]\n * width?: string | number\n * filter?: (value: any, search: string, item: any) => boolean\n * sort?: (a: any, b: any) => number\n */\n headers: { type: Array, default: () => [] },\n\n // Radial menu items to display when table row is clicked\n menuItems: { type: Array, default: () => [] },\n\n // Name of the entity key for the table\n itemKey: { type: String, default: '_id' },\n\n // Name of the default sort entity key for the table\n sortKey: { type: [String, Array], default: 'name' },\n\n // Wheter the sorting is descending or not in the table\n sortDesc: { type: [Boolean, Array], default: false },\n\n // Items/entities to display in the table\n items: { type: Array, default: () => [] },\n\n // Are items/entities still loading\n loading: { type: Boolean, default: false },\n\n // Text to display while loading\n loadingText: String,\n\n // Selected items/entities in the table\n selected: { type: Array, default: () => [] },\n\n // Hovered row index in the table\n hovered: { type: Number, default: () => -1 },\n\n // Table page being displayed\n page: { type: Number, default: 1 },\n\n // Table number of records being displayed\n limit: { type: Number, default: -1 },\n\n // Total number of items on the server\n total: { type: Number, default: 0 },\n\n // Should we hide the search text field\n hideSearch: Boolean,\n\n // Default search text\n search: String,\n\n // Current entity selected when opening the radial menu\n entity: Object,\n\n // Default filter value\n filter: String,\n\n // Default remote + local filter value\n query: Object,\n\n // Default local filter value\n localQuery: Object,\n\n // Default remote filter value\n remoteQuery: Object,\n\n // Delay before search is triggered when changing currentSearch\n searchDelay: { type: Number, default: 500 },\n },\n\n data() {\n return {\n currentPage: 1,\n currentLimit: 10,\n currentTotal: 0,\n currentEntity: undefined,\n currentSortKey: '',\n currentSortDesc: false,\n currentSelected: [],\n currentHovered: -1,\n currentSearch: undefined,\n currentFilter: undefined,\n currentQuery: undefined,\n currentRemoteQuery: undefined,\n currentLocalQuery: undefined,\n delayedSearch: undefined,\n delayedSearchTimeout: 0,\n };\n },\n\n watch: {\n entity(newValue) {\n this.currentEntity = newValue;\n },\n\n page(newValue) {\n this.currentPage = newValue;\n },\n\n limit(newValue) {\n this.currentLimit = newValue;\n },\n\n total(newValue) {\n this.currentTotal = newValue;\n },\n\n sortKey(newValue) {\n this.currentSortKey = newValue;\n },\n\n sortDesc(newValue) {\n this.currentSortDesc = newValue;\n },\n\n selected(newValue) {\n this.currentSelected = newValue;\n },\n\n hovered(newValue) {\n this.currentHovered = newValue;\n },\n\n filter(newValue) {\n this.currentFilter = newValue;\n },\n\n query(newValue) {\n this.currentQuery = newValue;\n },\n\n remoteQuery(newValue) {\n this.currentRemoteQuery = newValue;\n },\n\n localQuery(newValue) {\n this.currentLocalQuery = newValue;\n },\n\n search(newValue) {\n this.currentSearch = newValue;\n },\n\n currentEntity(newValue) {\n this.$emit('update:entity', newValue);\n },\n\n currentPage(newValue) {\n this.$emit('update:page', newValue);\n this.refresh();\n },\n\n currentLimit(newValue) {\n this.$emit('update:limit', newValue);\n this.refresh();\n },\n\n currentSortKey(newValue) {\n this.$emit('update:sort-key', newValue);\n this.refresh();\n },\n\n currentSortDesc(newValue) {\n this.$emit('update:sort-desc', newValue);\n this.refresh();\n },\n\n currentSelected(newValue) {\n this.$emit('update:selected', newValue);\n },\n\n currentHovered(newValue) {\n this.$emit('update:hovered', newValue);\n },\n\n currentFilter(newValue) {\n this.$emit('update:filter', newValue);\n this.refresh();\n },\n\n currentQuery(newValue) {\n this.$emit('update:query', newValue);\n this.refresh();\n },\n\n currentRemoteQuery(newValue) {\n this.$emit('update:remote-query', newValue);\n this.refresh();\n },\n\n currentLocalQuery(newValue) {\n this.$emit('update:local-query', newValue);\n this.refresh();\n },\n\n currentSearch(newValue) {\n this.$emit('update:search', newValue);\n\n clearTimeout(this.delayedSearchTimeout);\n this.delayedSearchTimeout = setTimeout(() => {\n this.delayedSearch = this.currentSearch;\n this.refresh();\n }, this.searchDelay);\n },\n },\n\n mounted() {\n this.currentSortKey = this.sortKey;\n this.currentSortDesc = this.sortDesc;\n this.currentEntity = this.entity;\n this.currentPage = this.page;\n this.currentLimit = this.limit;\n this.currentSelected = this.selected;\n this.currentHovered = this.hovered;\n this.currentSearch = this.search;\n this.currentFilter = this.filter;\n this.currentQuery = this.query;\n this.currentRemoteQuery = this.remoteQuery;\n this.currentLocalQuery = this.localQuery;\n },\n\n methods: {\n refresh() {\n // override if need be\n },\n },\n};\n","<template>\n <!-- TODO handle scrolling - style=\"overflow-x: scroll;\" -->\n <div class=\"fill-height\">\n <v-app-bar\n class=\"elevation-0\"\n app\n >\n <v-toolbar-title class=\"font-weight-light\">\n <div style=\"display: flex;\">\n <slot name=\"toolbar-title\" />\n <v-btn\n v-if=\"user.rights.supportUser\"\n class=\"secondary ml-2\"\n :disabled=\"isPatchPending\"\n :loading=\"isPatchPending\"\n @click.stop=\"logoutFromCompany\"\n >\n {{ $t('common.logoutFromCompany') }}\n </v-btn>\n </div>\n </v-toolbar-title>\n\n <v-spacer />\n <v-toolbar-items class=\"justify-center align-center\">\n <slot name=\"toolbar-icons\" />\n <v-select\n :value=\"locale\"\n class=\"d-flex \"\n style=\"min-width:130px!important; max-width: 130px; padding-left: 0 !important;\"\n :items=\"langList\"\n item-value=\"value\"\n item-text=\"label\"\n solo\n flat\n hide-details\n single-line\n @change=\"(currentLang) => {setLocale({ $i18n: i18n, locale: currentLang });} \"\n >\n <template #prepend>\n <v-icon class=\"ma-0\" color=\"primary\">\n mdi-web\n </v-icon>\n </template>\n <template slot=\"selection\" slot-scope=\"data\">\n <span style=\"color: #2c984e\">{{ data.item.label }}</span>\n </template>\n </v-select>\n <v-menu\n open-on-hover\n offset-y\n class=\"justify-center align-center\"\n >\n <template v-slot:activator=\"{ on }\">\n <v-list-item style=\"min-width: 300px !important;max-width: 300px\" v-on=\"on\">\n <core-avatar\n class=\"mr-3\"\n data-cy=\"main-menu\"\n :hide-avatar=\"currentUser.isAvatarIsHidden\"\n :user=\"currentUser\"\n :url-preview=\"currentUser.avatarUrl || userAvatarUrl\"\n :size=\"60\"\n :display-border=\"true\"\n :is-img-loading=\"currentUser.isAvatarLoading\"\n />\n <v-list-item-content>\n <v-list-item-title\n data-cy=\"user-name-main-menu\"\n :class=\"[{loading: !currentUser.firstName && !currentUser.lastName}]\"\n >\n {{ currentUser.firstName + ' ' + currentUser.lastName }}\n </v-list-item-title>\n <v-list-item-subtitle\n data-cy=\"company-name-main-menu\"\n :class=\"[{loading: !_.get(company, 'CompanyName')}]\"\n >\n {{ _.get(company, 'CompanyName') }}\n </v-list-item-subtitle>\n </v-list-item-content>\n\n <v-list-item-action>\n <v-icon>\n mdi-menu-down\n </v-icon>\n </v-list-item-action>\n </v-list-item>\n </template>\n\n <v-card>\n <v-list data-cy=\"company-name-main-menu-options\">\n <v-list-item\n v-for=\"(option, i) in preferenceMenuOptions\"\n :key=\"i\"\n :data-cy=\"`main-menu-${option.text.replace(' ', '-').toLowerCase()}-option`\"\n :disabled=\"!option.enabled\"\n @click=\"$router.push({ path: option.to })\"\n >\n <v-icon left>\n {{ option.icon }}\n </v-icon>\n <v-list-item-content>\n {{ option.text }}\n </v-list-item-content>\n </v-list-item>\n </v-list>\n </v-card>\n </v-menu>\n\n <div class=\"d-flex flex-column align-center\">\n <v-badge\n data-cy=\"current-order-items-count\"\n :value=\"currentOrderItemsCount\"\n color=\"error\"\n overlap\n left\n :content=\"currentOrderItemsCount\"\n >\n <v-btn\n data-cy=\"go-to-the-order-form\"\n color=\"primary\"\n small\n to=\"/order/new\"\n >\n <v-icon left size=\"25\">\n mdi-view-list-outline\n </v-icon>\n <span>{{ $t('views.confirmedOrder.title') }}</span>\n </v-btn>\n </v-badge>\n <span class=\"caption\">\n {{ $t('common.locationLabel', { location: (currentOrder && currentOrder.factoryName) || '---' }) }}\n </span>\n </div>\n </v-toolbar-items>\n\n <template v-if=\"needAppBarExtension\" #extension>\n <slot name=\"extension\" />\n </template>\n </v-app-bar>\n\n <slot />\n\n <v-footer\n class=\"pr-3 pa-0 grey--text caption\"\n height=\"80px\"\n fixed\n style=\"background-color: #F8F8FF;\"\n >\n <v-row class=\"align-center justify-center fill-height text-center\" style=\"min-width:1000px; margin-left: 220px;\">\n <v-col style=\"overflow: hidden; text-overflow: ellipsis; width:1px\">\n <span style=\"white-space: nowrap;\">\n Komacut® www.komacut.com\n ©\n {{ new Date().getFullYear() }}\n <a class=\"text-decoration-none\" href=\"https://www.komacut.com/\" target=\"_blank\">\n {{ $t('common.allRights') }}\n </a>\n <br>\n {{ $t('common.footerRight') }}\n <a\n class=\"text-decoration-none\"\n href=\"https://komacut.com/legal/privacy-policy/\"\n target=\"_blank\"\n >{{ $t('common.privacy') }}</a>\n {{ $t('common.and') }}\n <a\n class=\"text-decoration-none\"\n href=\"https://komacut.com/legal/platform-terms/\"\n target=\"_blank\"\n >{{ $t('common.terms') }}.</a>\n </span>\n </v-col>\n </v-row>\n </v-footer>\n </div>\n</template>\n\n<script>\nimport { mapGetters, mapState, mapActions } from 'vuex';\nimport { models } from 'feathers-vuex';\nimport i18n from '@/plugins/i18n';\nimport UpdateEntityMixin from '../../mixins/update-entity';\nimport ServiceMixin from '../../mixins/service';\nimport TableMixin from '../../mixins/table';\n\nconst { Company, User } = models.api;\n\nexport default {\n mixins: [\n UpdateEntityMixin,\n ServiceMixin,\n TableMixin,\n ],\n props: {\n needAppBarExtension: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n langList: [\n { label: 'English', value: 'en-US' },\n { label: 'ä¸æ–‡', value: 'cn' }\n ],\n i18n,\n };\n },\n\n computed: {\n ...mapGetters('app', [\n 'appVersion',\n 'currentOrder',\n 'currentOrderItemsCount',\n ]),\n ...mapState('app', ['locale', 'userAvatarUrl']),\n ...mapState('auth', [\n 'user',\n ]),\n ...mapState('users', ['isPatchPending']),\n HardwareCategory: () => models.api.HardwareCategory,\n\n HardwareProduct: () => models.api.HardwareProduct,\n\n currentUser: vm => User.getFromStore(vm.user._id),\n\n company: () => Company.getFromStore(0),\n\n preferenceMenuOptions: vm => {\n const { rights = {} } = vm.currentUser;\n return [\n {\n icon: 'mdi-cog',\n text: vm.$t('menus.settings'),\n to: '/settings/profile',\n enabled: (vm.currentUser.isAdmin || rights.userManagement)\n },\n\n { icon: 'mdi-logout', text: vm.$t('menus.logout'), to: '/logout', enabled: true },\n ];\n },\n },\n created() {\n // No need to fetch Hardware items as for support user session token not set to CSI.\n // and also we disable left side navigation bar.\n if (this.$route.name === 'Support') {\n return;\n }\n const categoriesInStore = this.HardwareCategory.store.state['hardware-categories'].ids.length;\n\n if (categoriesInStore === 0) {\n this.HardwareCategory.find();\n }\n\n const productInStore = this.HardwareProduct.store.state['hardware-products'].ids.length;\n\n if (productInStore === 0) {\n this.HardwareProduct.find();\n }\n },\n methods: {\n ...mapActions('app', ['setLocale']),\n async logoutFromCompany() {\n await this.user.patch({ data: { shouldLogoutFromCustomerSession: true } });\n await this.$router.push('/logout');\n }\n },\n};\n</script>\n<style scoped>\n::v-deep .v-input__append-inner > .v-input__icon--append > .v-icon {\n color: green !important;\n}\n\n::v-deep .v-input__prepend-outer {\n margin-right: 0;\n}\n\nheader.v-sheet.v-toolbar {\n background-color: #ffffff !important;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Main.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Main.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Main.vue?vue&type=template&id=3e54cacc&scoped=true&\"\nimport script from \"./Main.vue?vue&type=script&lang=js&\"\nexport * from \"./Main.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Main.vue?vue&type=style&index=0&id=3e54cacc&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 \"3e54cacc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbarItems } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAppBar,VBadge,VBtn,VCard,VCol,VFooter,VIcon,VList,VListItem,VListItemAction,VListItemContent,VListItemSubtitle,VListItemTitle,VMenu,VRow,VSelect,VSpacer,VToolbarItems,VToolbarTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"inline\"}},[(_vm.pdfReady)?_c('div',{staticStyle:{\"display\":\"inline\"}},[_c('v-btn',{staticClass:\"pr-1\",attrs:{\"text\":\"\",\"depressed\":\"\",\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.isPDFDownload=true}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"20\"}},[_vm._v(\" mdi-open-in-new \")]),_vm._v(\" \"+_vm._s(_vm.$t('technicalDrawingPdf.view2DDrawing'))+\" \")],1)],1):[_c('v-btn',{attrs:{\"depressed\":\"\",\"text\":\"\",\"disabled\":!(_vm.part.DrawingRowPointer && _vm.part.Item),\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.display=true;}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"25\"}},[_vm._v(\" mdi-vector-square \")]),_vm._v(\" \"+_vm._s(_vm.$t('technicalDrawingPdf.upload2DDrawing'))+\" \")],1)],(_vm.display)?_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"1000px\",\"is-ok-disabled\":!_vm.isFileAdded,\"eager\":true,\"ok-button-text\":_vm.$t('common.upload'),\"is-loading\":_vm.isPdfUploadPending || _vm.isPdfUploadInProgress},on:{\"click:ok\":function($event){return _vm.uploadPdf(_vm.part)},\"click:cancel\":function($event){_vm.display = false;_vm.removePDF()}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('technicalDrawingPdf.upload2DDrawing'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{ref:\"myDialog\",staticClass:\" text-center\"},[_c('v-card',{staticClass:\"mt-5\",staticStyle:{\"border\":\"dashed #D7D7D7 2px\",\"background-color\":\"#F1FDF3\",\"min-width\":\"905px\",\"max-width\":\"1000px\"},attrs:{\"height\":\"150\",\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"d-flex flex-column justify-space-between align-center\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',{attrs:{\"color\":\"green\",\"size\":\"60\"}},[_vm._v(\" mdi-cloud-upload-outline \")]),_c('span',{staticClass:\"headline mx-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.dragFilesToUpload'))+\" \")]),_c('v-btn',{staticStyle:{\"background-color\":\"#FFF\"},attrs:{\"id\":\"dropzone-click-target-pdf\",\"depressed\":\"\",\"text\":\"\",\"outlined\":\"\",\"color\":\"success\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.browse'))+\" \")])],1),_c('div',{staticClass:\"d-flex body-2\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.FileSupported'))+\" \")])])],1),_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.SingleFileOnly'))+\" \")],1)]},proxy:true}],null,false,2163002605),model:{value:(_vm.display),callback:function ($$v) {_vm.display=$$v},expression:\"display\"}}):_vm._e(),_c('v-overlay',{attrs:{\"value\":_vm.isPDFDownload,\"z-index\":\"90\"}}),_c('v-navigation-drawer',{staticStyle:{\"background-color\":\"#ada6a6\",\"z-index\":\"99 !important\"},attrs:{\"width\":\"60%\",\"fixed\":\"\",\"stateless\":\"\",\"hide-overlay\":\"\",\"right\":\"\",\"temporary\":\"\"},model:{value:(_vm.isPDFDownload),callback:function ($$v) {_vm.isPDFDownload=$$v},expression:\"isPDFDownload\"}},[_c('div',{ref:\"rfqViewerContainer\",staticStyle:{\"height\":\"calc(100% - 52px)\"}},[_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){_vm.isPDFDownload=false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),(_vm.isPDFDownload)?_c('core-pdf-viewer',{attrs:{\"file-path\":_vm.previewPDFUrl,\"item-height\":800}}):_vm._e()],1)])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div style=\"display: inline\">\n <div v-if=\"pdfReady\" style=\"display: inline\">\n <v-btn\n text\n depressed\n class=\"pr-1\"\n :loading=\"isPdfRemoved\"\n color=\"primary\"\n @click=\"isPDFDownload=true\"\n >\n <v-icon left size=\"20\">\n mdi-open-in-new\n </v-icon>\n {{ $t('technicalDrawingPdf.view2DDrawing') }}\n </v-btn>\n </div>\n <template v-else>\n <v-btn\n depressed\n text\n :disabled=\"!(part.DrawingRowPointer && part.Item)\"\n :loading=\"isPdfRemoved\"\n color=\"primary\"\n @click=\"display=true;\"\n >\n <v-icon left size=\"25\">\n mdi-vector-square\n </v-icon>\n {{ $t('technicalDrawingPdf.upload2DDrawing') }}\n </v-btn>\n </template>\n <core-dialog\n v-if=\"display\"\n v-model=\"display\"\n type=\"confirmation\"\n width=\"1000px\"\n :is-ok-disabled=\"!isFileAdded\"\n :eager=\"true\"\n :ok-button-text=\"$t('common.upload')\"\n :is-loading=\"isPdfUploadPending || isPdfUploadInProgress\"\n @click:ok=\"uploadPdf(part)\"\n @click:cancel=\"display = false;removePDF()\"\n >\n <template #title>\n {{ $t('technicalDrawingPdf.upload2DDrawing') }}\n </template>\n <template #content>\n <div ref=\"myDialog\" class=\" text-center\">\n <v-card\n class=\"mt-5\"\n height=\"150\"\n flat\n style=\"border: dashed #D7D7D7 2px;\n background-color: #F1FDF3;\n min-width: 905px; max-width: 1000px;\"\n >\n <v-card-text class=\"d-flex flex-column justify-space-between align-center\" style=\"height: 100%\">\n <div class=\"d-flex align-center\">\n <v-icon color=\"green\" size=\"60\">\n mdi-cloud-upload-outline\n </v-icon>\n <span class=\"headline mx-4\">\n {{ $t('views.instantQuote.dragFilesToUpload') }}\n </span>\n <v-btn\n id=\"dropzone-click-target-pdf\"\n depressed\n text\n outlined\n color=\"success\"\n style=\"background-color: #FFF\"\n >\n {{ $t('views.instantQuote.browse') }}\n </v-btn>\n </div>\n <div class=\"d-flex body-2\" style=\"color:#4B4B4B\">\n {{ $t('myPartPdf.FileSupported') }}\n </div>\n </v-card-text>\n </v-card>\n {{ $t('myPartPdf.SingleFileOnly') }}\n </div>\n </template>\n </core-dialog>\n\n <v-overlay :value=\"isPDFDownload\" z-index=\"90\" />\n <v-navigation-drawer\n v-model=\"isPDFDownload\"\n width=\"60%\"\n fixed\n stateless\n hide-overlay\n right\n temporary\n style=\"background-color: #ada6a6;z-index: 99 !important;\"\n >\n <div\n ref=\"rfqViewerContainer\"\n style=\"height: calc(100% - 52px);\"\n >\n <div class=\"d-flex justify-end\">\n <v-btn\n icon\n x-large\n @click=\"isPDFDownload=false\"\n >\n <v-icon>mdi-close</v-icon>\n </v-btn>\n </div>\n\n <core-pdf-viewer\n v-if=\"isPDFDownload\"\n :file-path=\"previewPDFUrl\"\n :item-height=\"800\"\n />\n </div>\n </v-navigation-drawer>\n </div>\n</template>\n\n<script>\nimport Dropzone from 'dropzone';\nimport 'dropzone/dist/dropzone.css';\nimport { mapState } from 'vuex';\n\nexport default {\n name: 'TechnicalDrawingPdf',\n props: {\n part: {\n type: Object\n },\n },\n data() {\n return {\n pdfReady: false,\n previewPDFUrl: '',\n isPdfUploadPending: false,\n isFileAdded: false,\n showPdfRemoveDialog: false,\n myDropZone: null,\n pdfPageHeight: 0,\n pdfPageWidth: 0,\n display: false,\n isPdfRemoved: false,\n isPDFDownload: false,\n isPdfUploadInProgress: false,\n };\n },\n computed: {\n ...mapState('auth', ['accessToken']),\n dropzoneOptions: vm => ({\n url: '/',\n paramName: 'file',\n headers: {\n Authorization: vm.accessToken,\n },\n thumbnailWidth: 150,\n maxFilesize: 20,\n timeout: 9999999,\n maxFiles: 1,\n parallelUploads: 1,\n acceptedFiles: '.pdf',\n autoProcessQueue: false,\n dictDefaultMessage: 'dropZone.dictDefaultMessage',\n dictFallbackMessage: 'dropZone.dictFallbackMessage',\n dictFallbackText: 'dropZone.dictFallbackText',\n dictFileTooBig: 'dropZone.dictFileTooBig',\n dictInvalidFileType: 'dropZone.dictInvalidFileType',\n dictResponseError: 'dropZone.dictResponseError',\n dictCancelUpload: 'dropZone.dictCancelUpload',\n dictCancelUploadConfirmation: 'dropZone.dictCancelUploadConfirmation',\n dictRemoveFile: 'dropZone.dictRemoveFile',\n dictMaxFilesExceeded: 'dropZone.dictMaxFilesExceeded',\n clickable: '#dropzone-click-target-pdf',\n previewTemplate: vm.template(),\n init() {\n this.on('maxfilesexceeded', file => {\n this.removeAllFiles();\n this.addFile(file);\n });\n this.on('error', async file => {\n this.removeFile(file);\n });\n this.on('success', async () => {\n vm.isPdfUploadPending = false;\n vm.display = false;\n await vm.checkIfPdfExist();\n });\n\n this.on('sending', () => {\n vm.isPdfUploadPending = true;\n });\n\n this.on('addedfile', async file => {\n const removeButton = Dropzone.createElement('<span class=\"mdi mdi-close\" style=\"vertical-align: middle; font-size: 1.5rem; cursor: pointer\" ></span>');\n vm.previewPDFUrl = URL.createObjectURL(file);\n vm.$emit('pdfUrl', vm.previewPDFUrl);\n vm.pdfReady = true;\n vm.isFileAdded = true;\n removeButton.addEventListener('click', e => {\n e.preventDefault();\n e.stopPropagation();\n this.removeFile(file);\n vm.removePDF();\n });\n\n file.previewElement.children[1].appendChild(removeButton);\n });\n }\n\n }),\n },\n watch: {\n display(newValue) {\n if (newValue) {\n setTimeout(() => {\n this.myDropZone = new Dropzone(this.$refs.myDialog, this.dropzoneOptions);\n }, 800);\n } else {\n this.myDropZone = null;\n }\n },\n pdfUrl(val) {\n if (val) {\n this.pdfReady = true;\n this.previewPDFUrl = this.pdfUrl;\n } else {\n this.pdfReady = false;\n }\n }\n },\n\n mounted() {\n const resizeObserver = new ResizeObserver(() => {\n /* 70 breathing room */\n this.pdfPageWidth = this.$refs.rfqViewerContainer.getBoundingClientRect().width - 70;\n const ratio = 8.5 / 11;\n this.pdfPageHeight = this.pdfPageWidth / ratio;\n });\n resizeObserver.observe(this.$refs.rfqViewerContainer);\n // If file is already uploaded.\n if (this.part.TwoDFile) {\n this.pdfReady = true;\n const host = process.env.VUE_APP_API_URL;\n const fileName = this.part.TwoDFile;\n this.pdfUrl = `${host}2dDrawing/${fileName}/${this.part.DrawingRowPointer.toLowerCase()}/${this.accessToken}`;\n this.previewPDFUrl = this.pdfUrl;\n }\n },\n methods: {\n async uploadPdf(part) {\n this.isPdfUploadInProgress = true;\n const file = await fetch(this.previewPDFUrl);\n const blob = await file.blob();\n const fd = new FormData();\n fd.append('file', blob, `${part.Item}-2D.PDF`);\n const uploadUrl = `${process.env.VUE_APP_API_URL}upload?rowPointer=${part.DrawingRowPointer}&name=${part.Item}-2D&desc=CustomerDrawings&ext=PDF&uploadToCsi=true`;\n\n // Need to refactor the upload service.\n // Don't forget this service is also used by Dropzone\n // in order to upload the drawing file to the CSI\n await fetch(uploadUrl, {\n method: 'POST',\n headers: {\n Authorization: this.accessToken,\n },\n body: fd,\n });\n this.isPdfUploadInProgress = false;\n this.display = false;\n // maintaining state\n this.part.TwoDFile = fd.get('file').name;\n this.part.commit();\n },\n\n async onFileChanged(e) {\n const [pdfFile] = e.target.files;\n this.previewPDFUrl = URL.createObjectURL(pdfFile);\n this.$emit('pdfUrl', this.previewPDFUrl);\n this.pdfReady = true;\n },\n async removePDF() {\n URL.revokeObjectURL(this.previewPDFUrl);\n this.pdfReady = false;\n this.showPdfRemoveDialog = false;\n this.previewPDFUrl = '';\n this.$emit('pdfUrl', this.previewPDFUrl);\n this.isFileAdded = false;\n },\n template() {\n return `\n <div class=\"d-flex align-start flex-column mt-16\">\n <p style=\"vertical-align: bottom\">Document selected</p>\n <p id=\"test\" class=\"pa-2\" style=\"background-color: #dee0e4; display: inline\">\n <span class=\"mdi mdi-open-in-new font-weight-medium\" style=\"vertical-align: middle; color:#2c984e; font-size:1.2rem\"></span>\n <span class=\"font-weight-bold\" style=\"vertical-align: bottom; color:#2c984e; font-size:1rem\" data-dz-name></span>\n </p>\n </div>`;\n }\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TechnicalDrawingPdf.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TechnicalDrawingPdf.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TechnicalDrawingPdf.vue?vue&type=template&id=3ea72904&\"\nimport script from \"./TechnicalDrawingPdf.vue?vue&type=script&lang=js&\"\nexport * from \"./TechnicalDrawingPdf.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VBtn,VCard,VCardText,VIcon,VNavigationDrawer,VOverlay})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModelViewer.vue?vue&type=style&index=0&id=98f13306&scoped=true&lang=css&\"","// eslint-disable-next-line max-classes-per-file\nimport { models } from 'feathers-vuex';\nimport currency from 'currency.js';\nimport i18n from '@/plugins/i18n';\n\nclass OrderItem {\n constructor(type, id, ReqQty, drawingConsultancyPdf = null) {\n this.type = type;\n this._id = id;\n this.ReqQty = ReqQty;\n this.drawingConsultancyPdf = drawingConsultancyPdf;\n this.FactoryId = parseInt(process.env.VUE_APP_CHINA_FACTORY_ID, 10);\n\n if (this.type === 'customBag') {\n this.myItem = models.api.CustomBag.getFromStore(this._id);\n }\n if (this.type === 'myproduct') {\n this.myItem = models.api.MyProduct.getFromStore(this._id);\n\n if (this.myItem.ProductCode === 'FG') {\n this.myItem = { ...this.myItem, ...this.myItem.PropertiesFG[0] };\n this.FactoryId = this.myItem.FactoryId;\n }\n\n if (this.myItem.ProductCode === 'HW-Bag') {\n this.myItem = { ...this.myItem, ...this.myItem.PropertiesHWBag[0] };\n this.FactoryId = this.myItem.FactoryId;\n }\n }\n // if (this.type === 'part') {\n // this.myItem = models.api.MyPart.getFromStore(this._id);\n // }\n\n if (this.type === 'estimate') {\n this.myItem = models.api.Part.getFromStore(this._id);\n this.FactoryId = this.myItem.FactoryId;\n }\n\n if (this.type === 'orderLine') {\n this.myItem = models.api.OrderLine.getFromStore(this._id);\n }\n\n if (this.type === 'hardware') {\n this.myItem = models.api.HardwareProduct.getFromStore(this._id);\n this.FactoryId = this.myItem.FactoryId;\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n get currencySymbol() {\n return _.get(models.api.Company.getFromStore(0), 'currencySymbol', '$');\n }\n\n get CustItemName() {\n return this.myItem.CustItemName;\n }\n\n get Revision() {\n if (this.type === 'part' || this.type === 'estimate') {\n return this.myItem.Revision;\n }\n return '';\n }\n\n get CustItemDesc() {\n switch (this.type) {\n case 'hardware':\n return this.myItem.description;\n case 'part':\n return this.myItem.CustItemDesc;\n case 'estimate':\n return this.myItem.CustItemDesc;\n default:\n return '';\n }\n }\n\n get SubTotal() {\n return currency(this.UnitPrice.multiply(this.ReqQty).value, { symbol: this.currencySymbol, precision: 2 });\n }\n\n get materialTranslation() {\n if (this.type === 'part' || this.type === 'estimate' || this.type === 'myproduct') {\n return i18n.locale === 'en-US' ? this.myItem.MaterialStr : this.myItem.MaterialStrChs;\n }\n return '';\n }\n\n get materialSeriesTranslation() {\n if (this.type === 'part' || this.type === 'estimate' || this.type === 'myproduct') {\n return i18n.locale === 'en-US' ? this.myItem.materialSeriesShortened : this.myItem.MaterialSeriesStrChs;\n }\n return '';\n }\n\n get materialThicknessTranslation() {\n if (this.type === 'part' || this.type === 'estimate' || this.type === 'myproduct') {\n return i18n.locale === 'en-US' ? this.myItem.MaterialThicknessStr : this.myItem.MaterialThicknessStrChs;\n }\n return '';\n }\n\n get materialFinishTranslation() {\n if (this.type === 'part' || this.type === 'estimate' || this.type === 'myproduct') {\n if (this.myItem.MaterialFinishStr) {\n return i18n.locale === 'en-US' ? this.myItem.MaterialFinishStr.replace(/-/g, '') : this.myItem.MaterialFinishStrChs.replace(/-/g, '');\n }\n }\n return '';\n }\n\n get materialFinishOptionTranslation() {\n if (this.type === 'part' || this.type === 'estimate' || this.type === 'myproduct') {\n if (this.myItem.MaterialFinishOptionStr) {\n return i18n.locale === 'en-US' ? this.myItem.MaterialFinishOptionStr.replace(/-/g, '') : this.myItem.MaterialFinishOptionStrChs.replace(/-/g, '');\n }\n }\n return '';\n }\n\n get toleranceTranslation() {\n if (this.type === 'part' || this.type === 'estimate' || this.type === 'myproduct') {\n if (!this.myItem.Tolerance) {\n return '';\n }\n return i18n.t(`views.instantQuote.tolerance${this.myItem.Tolerance.replace('Precision', '').trim()}`);\n }\n return '';\n }\n\n get MaterialStr() {\n if (this.type === 'part' || this.type === 'estimate') {\n return this.myItem.MaterialStr;\n }\n return '';\n }\n\n get materialSeriesShortened() {\n if (this.type === 'part' || this.type === 'estimate') {\n return this.myItem.materialSeriesShortened;\n }\n return '';\n }\n\n get MaterialThicknessStr() {\n if (this.type === 'part' || this.type === 'estimate') {\n return this.myItem.MaterialThicknessStr;\n }\n return '';\n }\n\n get MaterialFinishStr() {\n if (this.type === 'part' || this.type === 'estimate') {\n return this.myItem.MaterialFinishStr;\n }\n return '';\n }\n\n get Tolerance() {\n if (this.type === 'part' || this.type === 'estimate') {\n return this.myItem.Tolerance;\n }\n return '';\n }\n\n get DrawingRowPointer() {\n return this.myItem.DrawingRowPointer;\n }\n\n get UnitPrice() {\n const getPriceMoq = JSON.parse(JSON.stringify(this.myItem).toLowerCase()).pricemoq;\n\n let priceMoq;\n if (typeof getPriceMoq === 'string') {\n priceMoq = JSON.parse(getPriceMoq);\n } else {\n priceMoq = getPriceMoq;\n }\n\n const priceMOQ = [...priceMoq].sort(({ qty: a }, { qty: b }) => b - a);\n\n const findPrice = priceMOQ.find(({ qty }) => qty <= this.ReqQty) || Math.min(...priceMOQ.map(o => o.qty));\n\n if (!findPrice) {\n return currency(0, { symbol: this.currencySymbol });\n }\n\n return currency(findPrice.price, { symbol: this.currencySymbol, precision: 4 });\n }\n\n get is2dModel() {\n if (this.myItem.CustFileName) {\n return this.myItem.CustFileName.split('.').pop().replaceAll(' ', '').toUpperCase() === 'DXF';\n }\n return false;\n }\n\n // get UnitPrice() {\n // let priceMoq;\n // if (typeof this.myItem.PriceMOQ === 'string') {\n // priceMoq = JSON.parse(this.myItem.PriceMOQ);\n // } else {\n // priceMoq = this.myItem.priceMOQ;\n // }\n //\n // /* Technically not needed as the next loop will catch this case anyway */\n // const maxDiscountRange = _.last(priceMoq);\n // if (this.ReqQty >= maxDiscountRange.Qty) {\n // return currency(maxDiscountRange.Price, { symbol: this.currencySymbol });\n // }\n //\n // /* If we are not eligible for the NEXT discounted quantity, or one does not exist, return the 'current' one */\n // let nextPriceRange;\n // for (let i = 0; i < priceMoq.length; i++) {\n // nextPriceRange = priceMoq[i + 1];\n // if (!nextPriceRange || nextPriceRange.Qty > this.ReqQty) {\n // return currency(priceMoq[i].Price, { symbol: this.currencySymbol });\n // }\n // }\n //\n // return currency(0, { symbol: this.currencySymbol });\n // }\n}\n\nclass BagItem {\n constructor(id, ReqQty, categoryId) {\n this._id = id;\n this.categoryId = categoryId;\n this.ReqQty = ReqQty;\n this.myItem = models.api.HardwareProduct.getFromStore(this._id);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get currencySymbol() {\n return _.get(models.api.Company.getFromStore(0), 'currencySymbol', '$');\n }\n\n get SubTotal() {\n return this.UnitPrice.multiply(this.ReqQty);\n }\n\n get UnitPrice() {\n let priceMoq;\n\n if (typeof this.myItem.PriceMOQ === 'string') {\n priceMoq = JSON.parse(this.myItem.PriceMOQ);\n } else {\n priceMoq = this.myItem.priceMOQ;\n }\n\n /* Technically not needed as the next loop will catch this case anyway */\n const maxDiscountRange = _.last(priceMoq);\n if (this.ReqQty >= maxDiscountRange.Qty) {\n return currency(maxDiscountRange.Price, { symbol: this.currencySymbol });\n }\n\n /* If we are not eligible for the NEXT discounted quantity, or one does not exist, return the 'current' one */\n let nextPriceRange;\n for (let i = 0; i < priceMoq.length; i++) {\n nextPriceRange = priceMoq[i + 1];\n if (!nextPriceRange || nextPriceRange.Qty > this.ReqQty) {\n return currency(priceMoq[i].Price, { symbol: this.currencySymbol });\n }\n }\n\n return currency(0, { symbol: this.currencySymbol });\n }\n}\n\nexport { OrderItem, BagItem };\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThumbnailViewer.vue?vue&type=style&index=0&id=ee3ba56c&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"1000px\"}},[_c('span',{staticClass:\"text-h5 mb-4\"},[_vm._v(\"Finishing Colors\")]),_c('v-expansion-panels',{staticClass:\"mt-4\",staticStyle:{\"border-radius\":\"5px\"},attrs:{\"multiple\":\"\"}},_vm._l((_vm.content),function(item,index){return _c('v-expansion-panel',{key:index,attrs:{\"disabled\":item.disabled}},[_c('v-expansion-panel-header',[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(item.title))])]),_c('v-expansion-panel-content',[_vm._l((item.finish),function(finish,i){return [_c('div',{key:i,staticClass:\"d-flex flex-row d-inline-flex\",staticStyle:{\"width\":\"90px\"}},[_c('div',{staticClass:\"text-center\"},[_c('v-avatar',{attrs:{\"color\":finish.color,\"size\":\"45\"}},[_c('span',{style:({ color: _vm.getContrast(finish.color) })},[_vm._v(_vm._s(finish.code))])]),_c('p',{staticClass:\"caption font-weight-thin\"},[_vm._v(\" \"+_vm._s(finish.label)+\" \")])],1)])]})],2)],1)}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div style=\"width: 1000px\">\n <span class=\"text-h5 mb-4\">Finishing Colors</span>\n <v-expansion-panels class=\"mt-4\" multiple style=\"border-radius: 5px\">\n <v-expansion-panel\n v-for=\"(item,index) in content\"\n :key=\"index\"\n :disabled=\"item.disabled\"\n >\n <v-expansion-panel-header>\n <span class=\"font-weight-bold\">{{ item.title }}</span>\n </v-expansion-panel-header>\n <v-expansion-panel-content>\n <template v-for=\"(finish,i) in item.finish\">\n <div\n :key=\"i\"\n class=\"d-flex flex-row d-inline-flex\"\n style=\"width:90px\"\n >\n <div class=\"text-center\">\n <v-avatar\n :color=\"finish.color\"\n size=\"45\"\n >\n <span :style=\"{ color: getContrast(finish.color) }\">{{ finish.code }}</span>\n </v-avatar>\n <p class=\"caption font-weight-thin\">\n {{ finish.label }}\n </p>\n </div>\n </div>\n </template>\n </v-expansion-panel-content>\n </v-expansion-panel>\n </v-expansion-panels>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'FinishColor',\n data() {\n return {\n content: [\n { title: 'Mill Finish', finish: [{ code: 'AL', label: 'Aluminium', color: '#D3D3D3' }, { code: 'ST', label: 'Steel', color: '#616161' }, { code: 'SS', label: 'Stainless Steel', color: '#A2A2A2' }], disabled: false },\n { title: 'Antirust Oiling', finish: [{ code: 'ST', label: 'Steel', color: '#616161' }], disabled: false },\n { title: 'Brushed', disabled: true },\n { title: 'Anodized', disabled: true },\n { title: 'Micro-Polishing', disabled: true },\n { title: 'Passivation', disabled: true },\n { title: 'Zinc Plating', disabled: true },\n { title: 'E-Coating', disabled: true },\n { title: 'Powder Coating', disabled: true },\n ]\n };\n },\n\n methods: {\n getContrast(hexcolor) {\n // If a leading # is provided, remove it\n if (hexcolor.slice(0, 1) === '#') {\n hexcolor = hexcolor.slice(1);\n }\n\n // If a three-character hexcode, make six-character\n if (hexcolor.length === 3) {\n hexcolor = hexcolor.split('').map(hex => hex + hex).join('');\n }\n\n // Convert to RGB value\n const r = parseInt(hexcolor.substr(0, 2), 16);\n const g = parseInt(hexcolor.substr(2, 2), 16);\n const b = parseInt(hexcolor.substr(4, 2), 16);\n\n // Get YIQ ratio\n const yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;\n\n // Check contrast\n return (yiq >= 128) ? 'black' : 'white';\n }\n }\n};\n</script>\n\n<style scoped>\n::v-deep .v-expansion-panel::before{border-radius: 10px}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinishColor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinishColor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FinishColor.vue?vue&type=template&id=0e2299e1&scoped=true&\"\nimport script from \"./FinishColor.vue?vue&type=script&lang=js&\"\nexport * from \"./FinishColor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FinishColor.vue?vue&type=style&index=0&id=0e2299e1&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 \"0e2299e1\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\ninstallComponents(component, {VAvatar,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels})\n","import feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\nimport { PAYMENT_STATUS } from '@/shared/types/paymentStatuses';\nimport router from '@/router';\n\nconst servicePath = 'payments';\n\nconst Model = class Payment extends BaseModel {\n static modelName = 'Payment';\n\n static instanceDefaults() {\n return {\n paymentUrl: '',\n };\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n // eslint-disable-next-line no-unused-vars\n extend({ store, module }) {\n return {\n state: {\n activePayment: null,\n isPaymentDialogOpen: false,\n isQrCodeDialogOpen: false,\n },\n getters: {\n activePayment: state => state.activePayment,\n isPaymentDialogOpen: state => state.isPaymentDialogOpen,\n isQrCodeDialogOpen: state => state.isQrCodeDialogOpen,\n },\n mutations: {\n setActivePayment: (state, payment) => {\n state.activePayment = payment;\n },\n setIsPaymentDialogOpen: (state, isPaymentDialogOpen) => {\n state.isPaymentDialogOpen = isPaymentDialogOpen;\n },\n setIsQrCodeDialogOpen: (state, isQrCodeDialogOpen) => {\n state.isQrCodeDialogOpen = isQrCodeDialogOpen;\n },\n },\n actions: {\n initPayment: (context, { payment, paymentData }) => {\n const clone = _.merge(payment, paymentData);\n context.commit('setIsPaymentDialogOpen', true);\n context.commit('setActivePayment', clone);\n },\n setIsPaymentDialogOpen: (context, isPaymentDialogOpen) => {\n context.commit('setIsPaymentDialogOpen', isPaymentDialogOpen);\n },\n setIsQrCodeDialogOpen: (context, isQrCodeDialogOpen) => {\n context.commit('setIsQrCodeDialogOpen', isQrCodeDialogOpen);\n },\n cancelActivePayment: context => {\n context.commit('setIsPaymentDialogOpen', false);\n context.commit('setIsQrCodeDialogOpen', false);\n context.commit('setActivePayment', null);\n },\n },\n };\n },\n handleEvents: {\n patched: (payment, utils) => {\n const activePayment = utils.model.store.getters['payments/activePayment'] || {};\n\n const { provider, status } = payment;\n if (\n provider.name === 'lian-lian'\n && provider.options.type === 'I'\n && status === PAYMENT_STATUS.SUCCEEDED\n && activePayment._id === payment._id\n ) {\n utils.model.store.dispatch(`${servicePath}/cancelActivePayment`);\n router.push({\n path: new URL(provider.options.redirectUrl).pathname,\n query: {\n orderNo: payment._id,\n },\n });\n }\n return true;\n }\n }\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"filter-checkbox-group\"},[_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.section)+\" \")]),_vm._l((_vm.$attrs.options),function(option,i){return _c('v-list-item',{key:i,attrs:{\"dense\":\"\"}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"value\":option},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(option)+\" \")])],1)],1)})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"filter-checkbox-group\">\n <v-subheader>\n {{ section }}\n </v-subheader>\n\n <v-list-item\n v-for=\"(option, i) in $attrs.options\"\n :key=\"i\"\n dense\n >\n <v-list-item-action>\n <v-checkbox\n v-model=\"localValue\"\n :value=\"option\"\n />\n </v-list-item-action>\n <v-list-item-content>\n <v-list-item-title>\n {{ option }}\n </v-list-item-title>\n </v-list-item-content>\n </v-list-item>\n </div>\n</template>\n\n<script>\nimport FilterMixin from '../../../mixins/filter';\n\nexport default {\n name: 'CheckboxGroup',\n\n mixins: [\n FilterMixin,\n ],\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckboxGroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckboxGroup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CheckboxGroup.vue?vue&type=template&id=f0cd8c5c&scoped=true&\"\nimport script from \"./CheckboxGroup.vue?vue&type=script&lang=js&\"\nexport * from \"./CheckboxGroup.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 \"f0cd8c5c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VCheckbox,VListItem,VListItemAction,VListItemContent,VListItemTitle,VSubheader})\n","// eslint-disable-next-line max-len\n/* eslint-disable no-underscore-dangle */\nimport currency from 'currency.js';\nimport { models } from 'feathers-vuex';\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\nimport { OrderItem } from '@/utils/types';\nimport { getGstTaxRate, getQstTaxRate, getPstTaxRate, getHstTaxRate } from '../constants/taxes';\n\nconst servicePath = 'orders';\n\nconst Model = class Order extends BaseModel {\n static modelName = 'Order';\n\n static instanceDefaults() {\n return {\n items: [],\n expediteOption: null,\n shippingAddress: null,\n forwarder: null,\n promoCodeObject: null,\n PaymentTransaction: [],\n FactoryId: null,\n };\n }\n\n static setupInstance(data) {\n if (data.OrderDate) {\n data.formattedOrderDate = new Date(data.OrderDate);\n this._formattedOrderDate = moment(data.OrderDate).format('MMM D, YYYY');\n }\n if (data.ShipmentDate) {\n data.formattedShipmentDate = new Date(data.ShipmentDate);\n this._formattedShipmentDate = moment(data.ShipmentDate).format('MMM D, YYYY');\n }\n if (data.RequestDate) {\n data.formattedRequestDate = new Date(data.RequestDate);\n this._formattedRequestDate = moment(data.RequestDate).format('MMM D, YYYY');\n }\n\n return data;\n }\n\n get orderItems() {\n return this.items;\n }\n\n set orderItems(newItems) {\n if (newItems.length) {\n if (this.FactoryId === null) {\n this.FactoryId = this.getFactoryId(newItems);\n }\n this.items = newItems.filter(item => item.FactoryId === -1 || item.FactoryId === this.FactoryId);\n this.FactoryId = this.getFactoryId(newItems);\n } else {\n this.items = [];\n this.FactoryId = null;\n }\n }\n\n spliceItem(start, deleteCount, ...items) {\n this.items.splice(start, deleteCount, ...items);\n this.FactoryId = this.getFactoryId(this.items);\n }\n\n /**\n * Gets the factory ID for a list of order items\n * @param {Array} orderItems - List of order items to check\n * @returns {number|null} Factory ID, or null if all items belong to global location (-1)\n */\n getFactoryId = orderItems => {\n let orderFactoryId = null;\n for (const item of orderItems) {\n const factoryId = _.get(item.myItem, 'FactoryId', parseInt(process.env.VUE_APP_CHINA_FACTORY_ID, 10));\n if (factoryId !== -1) {\n orderFactoryId = factoryId;\n break;\n }\n }\n return orderFactoryId;\n }\n\n get formattedOrderDate() {\n return moment(this._formattedOrderDate).format('MMM D, YYYY');\n }\n\n set formattedOrderDate(value) {\n this._formattedOrderDate = this.OrderDate;\n }\n\n get formattedShipmentDate() {\n return moment(this._formattedShipmentDate).format('MMM D, YYYY');\n }\n\n set formattedShipmentDate(value) {\n this._formattedShipmentDate = this.ShipmentDate;\n }\n\n get formattedRequestDate() {\n return moment(this._formattedRequestDate).format('MMM D, YYYY');\n }\n\n set formattedRequestDate(value) {\n this._formattedRequestDate = this.RequestDate;\n }\n\n get formattedTotal() {\n return currency(this.Total ? this.Total : this.grandTotal, { symbol: this.currencySymbol }).format();\n }\n\n get orderItemsTotal() {\n return currency(this.items.reduce((total, item) => total.add(item.SubTotal), currency(0, { symbol: this.currencySymbol })), { symbol: this.currencySymbol });\n }\n\n get discountAmount() {\n let discount = currency(0, { symbol: this.currencySymbol });\n if (this.promoCodeObject) {\n if (this.promoCodeObject.PromoType === 'Amount') {\n if (this.orderItemsTotal.value >= parseFloat(this.promoCodeObject.PromoMinOrderAmount)) {\n discount = currency(this.promoCodeObject.PromoDiscountAmount, { symbol: this.currencySymbol });\n }\n } else if (this.promoCodeObject.PromoType === 'Percentage') {\n if (this.orderItemsTotal.value >= parseFloat(this.promoCodeObject.PromoMinOrderAmount)) {\n discount = currency(this.orderItemsTotal.multiply(parseFloat(this.promoCodeObject.PromoRate)), { symbol: this.currencySymbol });\n }\n if (this.orderItemsTotal.value > parseFloat(this.promoCodeObject.PromoMaxOrderAmount)) {\n const discountOrderAmount = currency(parseFloat(this.promoCodeObject.PromoMaxOrderAmount), { symbol: this.currencySymbol });\n return currency(discountOrderAmount.multiply(parseFloat(this.promoCodeObject.PromoRate)), { symbol: this.currencySymbol });\n }\n }\n }\n return discount;\n }\n\n get expediteFees() {\n const multiplier = parseFloat(_.get(this.expediteOption, 'Rate', 0));\n return this.orderItemsTotal.multiply(multiplier);\n }\n\n get orderSubtotal() {\n return this.orderItemsTotal.add(this.expediteFees).subtract(this.discountAmount);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get taxPercentage() {\n const company = models.api.Company.getFromStore(0);\n return company && company.TaxRate1 ? company.TaxRate1 / 100 : 0;\n }\n\n get estimatedTax() {\n if (this.isCanadaProvinceTaxApplicable) {\n return currency(0, { symbol: this.currencySymbol });\n }\n const company = models.api.Company.getFromStore(0);\n if (company.IncludeTaxInPrice === '0') {\n return this.orderSubtotal.multiply(this.taxPercentage);\n }\n return currency(0, { symbol: this.currencySymbol });\n }\n\n get grandTotal() {\n return this.orderSubtotal\n .add(this.estimatedTax)\n .add(this.estimatedGstTax)\n .add(this.estimatedQstTax)\n .add(this.estimatedPstTax)\n .add(this.estimatedHstTax);\n }\n\n get taxIncludedInPrice() {\n if (this.isCanadaProvinceTaxApplicable) {\n return currency(0, { symbol: this.currencySymbol });\n }\n const company = models.api.Company.getFromStore(0);\n if (company.IncludeTaxInPrice === '1') {\n const includeTaxOnExpedite = this.expediteFees - this.expediteFees / (1 + this.taxPercentage);\n return currency(\n this.items.reduce(\n (total, item) => total.add(item.SubTotal - item.SubTotal / (1 + this.taxPercentage)), currency(includeTaxOnExpedite, { symbol: this.currencySymbol })\n ), { symbol: this.currencySymbol }\n );\n }\n return currency(0, { symbol: this.currencySymbol });\n }\n\n // eslint-disable-next-line class-methods-use-this\n get currencySymbol() {\n return _.get(models.api.Company.getFromStore(0), 'currencySymbol', '$');\n }\n\n get factoryName() {\n if (this.FactoryId === parseInt(process.env.VUE_APP_CHINA_FACTORY_ID, 10)) {\n return 'China';\n }\n if (this.FactoryId === parseInt(process.env.VUE_APP_MEXICO_FACTORY_ID, 10)) {\n return 'Mexico';\n }\n return '---';\n }\n\n get isMexicoOrder() {\n return this.FactoryId === parseInt(process.env.VUE_APP_MEXICO_FACTORY_ID, 10);\n }\n\n get isCanadaProvinceTaxApplicable() {\n if (!this.shippingAddress) {\n return false;\n }\n const { country } = this.shippingAddress;\n return country === 'CA' && this.isMexicoOrder;\n }\n\n get estimatedGstTax() {\n if (this.isCanadaProvinceTaxApplicable) {\n const { region } = this.shippingAddress;\n const taxRate = getGstTaxRate(region);\n if (taxRate) {\n return this.orderSubtotal.multiply(taxRate / 100);\n }\n }\n return currency(0, { symbol: this.currencySymbol });\n }\n\n get estimatedQstTax() {\n if (this.isCanadaProvinceTaxApplicable) {\n const { region } = this.shippingAddress;\n const taxRate = getQstTaxRate(region);\n if (taxRate) {\n return this.orderSubtotal.multiply(taxRate / 100);\n }\n }\n return currency(0, { symbol: this.currencySymbol });\n }\n\n get estimatedPstTax() {\n if (this.isCanadaProvinceTaxApplicable) {\n const { region } = this.shippingAddress;\n const taxRate = getPstTaxRate(region);\n if (taxRate) {\n return this.orderSubtotal.multiply(taxRate / 100);\n }\n }\n return currency(0, { symbol: this.currencySymbol });\n }\n\n get estimatedHstTax() {\n if (this.isCanadaProvinceTaxApplicable) {\n const { region } = this.shippingAddress;\n const taxRate = getHstTaxRate(region);\n if (taxRate) {\n return this.orderSubtotal.multiply(taxRate / 100);\n }\n }\n return currency(0, { symbol: this.currencySymbol });\n }\n\n addItem(type, id, qty, drawingConsultancyPdf = null) {\n const items = this.items.filter(item => item._id === id);\n if (items.length) {\n items[0].ReqQty = qty;\n return;\n }\n\n const orderItem = new OrderItem(type, id, qty, drawingConsultancyPdf);\n if (this.FactoryId) {\n const factoryId = _.get(orderItem.myItem, 'FactoryId', parseInt(process.env.VUE_APP_CHINA_FACTORY_ID, 10));\n if (factoryId !== -1 && factoryId !== this.FactoryId) {\n return;\n }\n }\n\n this.orderItems.push(orderItem);\n\n if (this.FactoryId === null) {\n this.FactoryId = this.getFactoryId(this.items);\n }\n }\n\n canAddItem(item) {\n if (item === null) {\n return false;\n }\n const factoryId = _.get(item, 'FactoryId', parseInt(process.env.VUE_APP_CHINA_FACTORY_ID, 10));\n return this.FactoryId === null || factoryId === -1 || factoryId === this.FactoryId;\n }\n\n canAddHardwareProduct(item) {\n if (item === null) {\n return false;\n }\n const factoryId = _.get(item, 'FactoryId', parseInt(process.env.VUE_APP_CHINA_FACTORY_ID, 10));\n return this.FactoryId === null || factoryId === -1 || factoryId === this.FactoryId;\n }\n\n canAddCustomBag() {\n return this.FactoryId === null || this.FactoryId === parseInt(process.env.VUE_APP_CHINA_FACTORY_ID, 10);\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","import { datadogLogs } from '@datadog/browser-logs';\nimport { version } from '../../package.json';\n\ndatadogLogs.init({\n clientToken: process.env.VUE_APP_DATADOG_LOGGER_CLIENT_TOKEN,\n service: 'komacut',\n version,\n env: process.env.NODE_ENV,\n forwardErrorsToLogs: true,\n sampleRate: 100\n});\n\nexport default datadogLogs;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"pa-2\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"text-center px-2 py-2\",staticStyle:{\"min-width\":\"175px\",\"max-width\":\"175px\"},attrs:{\"cols\":\"3\"}},[_c('core-model-viewer',{class:{ 'blip-3d': _vm.isMeshVisible },attrs:{\"part\":_vm.part,\"width\":_vm.part.EstimateLineStatus.isMeshUploaded ? 100: 160,\"height\":_vm.part.EstimateLineStatus.isMeshUploaded ? 100: 160,\"is-mesh-uploaded\":_vm.part.EstimateLineStatus.isMeshUploaded,\"is-svg-uploaded\":_vm.part.EstimateLineStatus.isSvgUploaded},on:{\"click\":function($event){$event.stopPropagation();return _vm.onThumbClick.apply(null, arguments)},\"load:mesh\":_vm.uploadThumbnail}}),_c('v-btn',{attrs:{\"text\":\"\",\"x-small\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onThumbClick.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('common.viewDetails'))+\" \"),_c('v-icon',{attrs:{\"x-small\":\"\",\"right\":\"\"}},[_vm._v(\" mdi-arrow-right \")])],1)],1),_c('v-col',{staticClass:\"px-1 ma-0\"},[_c('v-row',{staticClass:\"text-h5 pa-1 ma-0\"},[_vm._v(\" \"+_vm._s(_vm.part.CustItemName)+\" \"+_vm._s(_vm.$t('views.rfqs.revision'))+\". \"+_vm._s(_vm.part.RevisionNumber)+\" \")]),_c('v-row',{staticClass:\"px-1 ma-0\"},[_vm._v(\" \"+_vm._s(_vm.part.CustItemDesc)+\" \")]),_c('v-row',{staticClass:\"pa-0 ma-0\"},[_c('v-col',{staticClass:\"px-1 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.material'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.locale === 'en-US' ? _vm.partMaterial.Description : _vm.partMaterial.DescriptionCHS)+\" \")]),(_vm.part.AnalysisData.machine === 'sheet-metal')?_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.thickness'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.locale === 'en-US' ? _vm.getThickness.Description : _vm.getThickness.DescriptionCHS)+\" \")]):_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.outerDiameter'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.getOuterDiameter)+\" \")]),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.series'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.locale === 'en-US' ? _vm.getSeries.Description.replace(_vm.partMaterial.Description, '').trim() : _vm.getSeries.DescriptionCHS)+\" \")]),(_vm.part.AnalysisData.machine === 'turning')?_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.roughness'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.getRoughness)+\" \")]):_vm._e(),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.finish'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.locale === 'en-US' ? _vm.getFinish.Description : _vm.getFinish.DescriptionCHS)+\" \")]),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.tolerances'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.toleranceTranslation(_vm.part))+\" \")])],1)],1),_c('v-col',{staticClass:\"py-2 px-1\",staticStyle:{\"min-width\":\"190px\",\"display\":\"flex\",\"align-items\":\"center\"},attrs:{\"cols\":\"2\"}},[_c('core-price-moq-table',{staticClass:\"mr-5\",attrs:{\"part\":_vm.part}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container class=\"pa-2\" fluid>\n <v-row>\n <v-col cols=\"3\" class=\"text-center px-2 py-2\" style=\"min-width: 175px; max-width: 175px;\">\n <core-model-viewer\n :part=\"part\"\n :width=\"part.EstimateLineStatus.isMeshUploaded ? 100: 160\"\n :height=\"part.EstimateLineStatus.isMeshUploaded ? 100: 160\"\n :is-mesh-uploaded=\"part.EstimateLineStatus.isMeshUploaded\"\n :is-svg-uploaded=\"part.EstimateLineStatus.isSvgUploaded\"\n :class=\"{ 'blip-3d': isMeshVisible }\"\n @click.stop=\"onThumbClick\"\n @load:mesh=\"uploadThumbnail\"\n />\n <v-btn\n text\n x-small\n color=\"primary\"\n @click.stop=\"onThumbClick\"\n >\n {{ $t('common.viewDetails') }}\n <v-icon x-small right>\n mdi-arrow-right\n </v-icon>\n </v-btn>\n </v-col>\n <v-col class=\"px-1 ma-0\">\n <v-row class=\"text-h5 pa-1 ma-0\">\n {{ part.CustItemName }} {{ $t('views.rfqs.revision') }}. {{ part.RevisionNumber }}\n </v-row>\n <v-row class=\"px-1 ma-0\">\n {{ part.CustItemDesc }}\n </v-row>\n <v-row class=\"pa-0 ma-0\">\n <v-col class=\"px-1 ma-0\">\n <span class=\"caption\" style=\"display:block;\">\n {{ $t('views.rfqs.material') }}\n </span>\n {{ locale === 'en-US' ? partMaterial.Description : partMaterial.DescriptionCHS }}\n </v-col>\n <v-col v-if=\"part.AnalysisData.machine === 'sheet-metal'\" class=\"px-3 ma-0\">\n <span class=\"caption\" style=\"display:block;\">\n {{ $t('views.rfqs.thickness') }}\n </span>\n {{ locale === 'en-US' ? getThickness.Description : getThickness.DescriptionCHS }}\n </v-col>\n <v-col v-else class=\"px-3 ma-0\">\n <span class=\"caption\" style=\"display:block;\">\n {{ $t('views.rfqs.outerDiameter') }}\n </span>\n {{ getOuterDiameter }}\n </v-col>\n <v-col class=\"px-3 ma-0\">\n <span class=\"caption\" style=\"display:block;\">\n {{ $t('views.rfqs.series') }}\n </span>\n {{\n locale === 'en-US' ? getSeries.Description.replace(partMaterial.Description, '').trim() : getSeries.DescriptionCHS\n }}\n </v-col>\n <v-col v-if=\"part.AnalysisData.machine === 'turning'\" class=\"px-3 ma-0\">\n <span class=\"caption\" style=\"display:block;\">\n {{ $t('views.instantQuote.roughness') }}\n </span>\n {{ getRoughness }}\n </v-col>\n <v-col class=\"px-3 ma-0\">\n <span class=\"caption\" style=\"display:block;\">\n {{ $t('views.rfqs.finish') }}\n </span>\n {{ locale === 'en-US' ? getFinish.Description : getFinish.DescriptionCHS }}\n </v-col>\n <v-col class=\"px-3 ma-0\">\n <span class=\"caption\" style=\"display:block;\">\n {{ $t('views.instantQuote.tolerances') }}\n </span>\n {{\n toleranceTranslation(part)\n }}\n </v-col>\n </v-row>\n </v-col>\n <v-col cols=\"2\" class=\"py-2 px-1\" style=\"min-width: 190px; display:flex; align-items:center;\">\n <core-price-moq-table :part=\"part\" class=\"mr-5\" />\n </v-col>\n </v-row>\n </v-container>\n</template>\n\n<script>\nimport { mapGetters, mapState } from 'vuex';\nimport { models } from 'feathers-vuex';\n\nconst { Material, Finish } = models.api;\n\nexport default {\n name: 'CompactPartCard',\n props: {\n part: Object,\n customerPriceRange: Array,\n uploadThumbnail: Function,\n isMeshVisible: Boolean,\n onThumbClick: Function,\n },\n computed: {\n ...mapState('app', ['locale']),\n ...mapGetters('materials', {\n findMaterials: 'find',\n }),\n\n toleranceTranslation: vm => item => {\n if (!item.Tolerance) {\n return '-';\n }\n return vm.$t(`views.instantQuote.tolerance${item.Tolerance.replace('Precision', '').trim()}`);\n },\n\n /* TODO revisit this. Why are we not simply using the part\n * properties? Need to investigate later if we can simply\n * do that */\n partMaterial() {\n const material = _.get(Material.findInStore({\n query: {\n RowPointer: this.part.Material,\n IsHidden: false,\n $sort: { Rank: 1 },\n },\n }), 'data[0]');\n return material || 'N/A';\n },\n\n getThickness() {\n const thickness = _.get(this.findMaterials({\n query: {\n _id: this.part.MaterialThickness,\n IsHidden: false,\n $sort: { Rank: 1 },\n },\n }), 'data[0]');\n return thickness || 'N/A';\n },\n\n getOuterDiameter() {\n if (this.part.AnalysisData.major_dia) {\n const diameter = parseFloat(this.part.AnalysisData.major_dia).toFixed(2);\n return `${diameter} ${this.$t('views.rfqs.mm')}`;\n }\n return 'N/A';\n },\n\n getRoughness() {\n switch (this.part.Roughness) {\n case '6.0':\n return this.$t('views.instantQuote.roughnessMilled');\n case '3.2':\n return this.$t('views.instantQuote.roughnessMilled');\n case '1.6':\n return this.$t('views.instantQuote.roughnessFine');\n case '0.8':\n return this.$t('views.instantQuote.roughnessGrade');\n default:\n return 'N/A';\n }\n },\n\n getSeries() {\n const series = _.get(Material.findInStore({\n query: {\n RowPointer: this.part.MaterialSeries,\n },\n }), 'data[0]');\n return series || 'N/A';\n },\n\n getFinish() {\n const finish = _.get(Finish.findInStore({\n query: {\n RowPointer: this.part.MaterialFinish,\n IsHidden: false,\n $sort: { Rank: 1 },\n },\n }), 'data[0]');\n return finish || 'N/A';\n },\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompactPartCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompactPartCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CompactPartCard.vue?vue&type=template&id=63bcf2ec&\"\nimport script from \"./CompactPartCard.vue?vue&type=script&lang=js&\"\nexport * from \"./CompactPartCard.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VContainer,VIcon,VRow})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'account-statements';\n\nconst Model = class AccountStatement extends BaseModel {\n static modelName = 'AccountStatement';\n\n static instanceDefaults() {\n return {\n };\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'regions';\n\nconst Model = class Regions extends BaseModel {\n // TODO rename to singular 'region'\n static modelName = 'Regions';\n\n static instanceDefaults() {\n return {\n };\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","import Store from './index';\nimport i18n from '../plugins/i18n';\nimport { reset } from '../utils/vuex';\nimport { makeAuthPlugin } from '../plugins/feathers-client';\n\nexport default {\n plugin: makeAuthPlugin({\n userService: 'users',\n }),\n\n store: {\n auth: {\n namespaced: true,\n\n mutations: {\n clearAll: reset(),\n },\n\n actions: {\n async login({ dispatch }, { user }) {\n await dispatch('auth/authenticate', {\n strategy: 'local',\n ...user,\n }, { root: true });\n\n const locale = (Store.state.auth.user.locale === 'cn') ? 'cn' : 'en-US';\n await Store.dispatch('app/setLocale', { $i18n: i18n, locale });\n },\n },\n },\n },\n};\n","const canadaProvinceTaxes = {\n AB: { gst: 5 },\n BC: { gst: 5, pst: 7 },\n MB: { gst: 5, pst: 7 },\n NB: { hst: 15 },\n NL: { hst: 15 },\n NS: { hst: 15 },\n ON: { hst: 13 },\n PE: { hst: 15 },\n QC: { gst: 5, qst: 9.975 },\n SK: { gst: 5, pst: 6 },\n NT: { gst: 5 },\n NU: { gst: 5 },\n YT: { gst: 5 }\n};\n\nconst getGstTaxRate = province => {\n if (!canadaProvinceTaxes[province]) {\n return null;\n }\n return canadaProvinceTaxes[province].gst || null;\n};\n\nconst getPstTaxRate = province => {\n if (!canadaProvinceTaxes[province]) {\n return null;\n }\n return canadaProvinceTaxes[province].pst || null;\n};\n\nconst getHstTaxRate = province => {\n if (!canadaProvinceTaxes[province]) {\n return null;\n }\n return canadaProvinceTaxes[province].hst || null;\n};\n\nconst getQstTaxRate = province => {\n if (!canadaProvinceTaxes[province]) {\n return null;\n }\n return canadaProvinceTaxes[province].qst || null;\n};\n\nexport {\n getGstTaxRate,\n getPstTaxRate,\n getHstTaxRate,\n getQstTaxRate\n};\n\n// export default canadaProvinceTaxes;\n","export default {\n methods: {\n formatCurrency(amount, allowNone) {\n if (isNaN(amount)) {\n if (allowNone) {\n return 'TBD';\n }\n amount = 0;\n }\n const options = { maximumFractionDigits: 2, minimumFractionDigits: 2 };\n return `$${(amount).toLocaleString('en', options)}`;\n },\n },\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card-text',{class:['ownerships', 'mt-1', 'pa-0', _vm.alignLeft ? 'left' : '']},[(_vm.value.createdBy)?_c('span',{staticClass:\"created\"},[_c('span',[_vm._v(_vm._s(_vm.$t('common.createdBy')))]),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-avatar',_vm._g({class:{ avatar: true, small: !_vm.large }},on))]}}],null,false,3896419212)},[_c('span',[_vm._v(_vm._s(_vm.value.createdBy))])]),_vm._v(\" \"+_vm._s(_vm.moment().to(_vm.moment(_vm.value.createdAt)))+\" \")],1):_vm._e(),(_vm.value.updatedBy)?_c('span',{staticClass:\"updated\"},[(_vm.value.createdBy)?_c('span',{staticClass:\"ownershipsSeparator\"},[_vm._v(\"-\")]):_vm._e(),_c('span',[_vm._v(_vm._s(_vm.$t('common.updatedBy')))]),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-avatar',_vm._g({class:{ avatar: true, small: !_vm.large }},on),[_c('v-gravatar',{attrs:{\"email\":_vm.value.updatedBy}})],1)]}}],null,false,470631858)},[_c('span',[_vm._v(_vm._s(_vm.value.updatedBy)+\" \"+_vm._s(_vm.value.updatedBy))])]),_vm._v(\" \"+_vm._s(_vm.moment().to(_vm.moment(_vm.value.updatedAt)))+\" \")],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-card-text :class=\"['ownerships', 'mt-1', 'pa-0', alignLeft ? 'left' : '']\">\n <span v-if=\"value.createdBy\" class=\"created\">\n <span>{{ $t('common.createdBy') }}</span>\n\n <v-tooltip top>\n <template v-slot:activator=\"{ on }\">\n <v-avatar :class=\"{ avatar: true, small: !large }\" v-on=\"on\">\n <!-- <v-gravatar :email=\"value.createdBy\" />-->\n </v-avatar>\n </template>\n <span>{{ value.createdBy }}</span>\n </v-tooltip>\n {{ moment().to(moment(value.createdAt)) }}\n </span>\n\n <span v-if=\"value.updatedBy\" class=\"updated\">\n <span v-if=\"value.createdBy\" class=\"ownershipsSeparator\">-</span>\n <span>{{ $t('common.updatedBy') }}</span>\n\n <v-tooltip top>\n <template v-slot:activator=\"{ on }\">\n <v-avatar :class=\"{ avatar: true, small: !large }\" v-on=\"on\">\n <v-gravatar :email=\"value.updatedBy\" />\n </v-avatar>\n </template>\n <span>{{ value.updatedBy }} {{ value.updatedBy }}</span>\n </v-tooltip>\n {{ moment().to(moment(value.updatedAt)) }}\n </span>\n </v-card-text>\n</template>\n\n<script>\n\nimport { mapState } from 'vuex';\n\nexport default {\n props: {\n value: Object,\n large: Boolean,\n alignLeft: Boolean,\n },\n computed: {\n ...mapState('auth', ['users']),\n }\n};\n</script>\n\n<style scoped>\n.ownerships {\n color: rgba(0, 0, 0, .54);\n width: 100%;\n text-align: end;\n}\n\n.ownerships.left {\n margin-left: -6px;\n text-align: start;\n}\n\n.created,\n.updated {\n font-weight: normal;\n font-size: smaller;\n font-style: oblique;\n}\n\n.ownershipsSeparator {\n margin: 0 .5em;\n}\n\n.avatar {\n margin: 0em .5em !important;\n width: 24px !important;\n min-width: 24px !important;\n height: 24px !important;\n}\n\n.avatar.small {\n width: 16px !important;\n min-width: 16px !important;\n height: 16px !important;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ownerships.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ownerships.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Ownerships.vue?vue&type=template&id=07802151&scoped=true&\"\nimport script from \"./Ownerships.vue?vue&type=script&lang=js&\"\nexport * from \"./Ownerships.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Ownerships.vue?vue&type=style&index=0&id=07802151&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 \"07802151\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAvatar,VCardText,VTooltip})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenUploadFileBanner.vue?vue&type=style&index=0&id=6338fc10&scoped=true&lang=css&\"","const countriesAllowForMexicoQuotation = [\n 'AR',\n 'BR',\n 'CA',\n 'CL',\n 'MX',\n 'US',\n 'UY',\n];\n\nexport default countriesAllowForMexicoQuotation;\n","// TODO this is the exact same as the filter mixin\n// TODO It's generic enough to be renamed and used everywhere\nexport default {\n props: {\n value: {},\n },\n\n computed: {\n localValue: {\n get() {\n return this.value;\n },\n\n set(value) {\n this.$emit('input', value);\n },\n }\n },\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"d-flex justify-center\"},[_c('v-btn',{staticStyle:{\"position\":\"absolute\",\"top\":\"15px\",\"left\":\"50%\",\"transform\":\"translateX(-50%)\"},attrs:{\"x-small\":\"\",\"depressed\":\"\",\"fab\":\"\",\"data-cy\":\"download-pdf-button\",\"disabled\":_vm.isPDFDownloadPending},on:{\"click\":_vm.downloadPdf}},[_c('v-icon',[_vm._v(\" mdi-download \")])],1)],1),_c('v-container',{staticClass:\"fill-height pr-0\",attrs:{\"fluid\":\"\"}},[_c('v-virtual-scroll',{ref:\"containerRef\",staticStyle:{\"overflow-y\":\"scroll\"},attrs:{\"bench\":2,\"items\":_vm.loadedPages,\"height\":_vm.itemHeight,\"width\":_vm.itemHeight,\"item-height\":_vm.itemHeight},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{style:((\"min-width: \" + (1.4*_vm.itemHeight) + \"px\"))},[_c('core-pdf-canvas',{key:item.id,ref:item.id,attrs:{\"page\":item,\"container-ref\":_vm.$refs.containerRef,\"item-height\":_vm.itemHeight},on:{\"enterViewport\":function($event){(Math.abs($event - _vm.currentPage) === 1) ? _vm.currentPage = $event : function () {}}}})],1)]}}])}),_c('v-chip',{staticClass:\"my-2\",staticStyle:{\"position\":\"absolute\",\"bottom\":\"15px\",\"left\":\"50%\",\"transform\":\"translateX(-50%)\"}},[_vm._v(\" \"+_vm._s(_vm.currentPage)+\" / \"+_vm._s(_vm._.get(_vm.pdf, 'numPages', '?'))+\" \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <div class=\"d-flex justify-center\">\n <v-btn\n x-small\n depressed\n fab\n style=\"position: absolute; top: 15px; left: 50%; transform: translateX(-50%);\"\n data-cy=\"download-pdf-button\"\n :disabled=\"isPDFDownloadPending\"\n @click=\"downloadPdf\"\n >\n <v-icon>\n mdi-download\n </v-icon>\n </v-btn>\n </div>\n <v-container class=\"fill-height pr-0\" fluid>\n <v-virtual-scroll\n ref=\"containerRef\"\n :bench=\"2\"\n :items=\"loadedPages\"\n :height=\"itemHeight\"\n :width=\"itemHeight\"\n :item-height=\"itemHeight\"\n style=\"overflow-y: scroll;\"\n >\n <template #default=\"{ item }\">\n <div class=\"\" :style=\"`min-width: ${1.4*itemHeight}px`\">\n <core-pdf-canvas\n :ref=\"item.id\"\n :key=\"item.id\"\n :page=\"item\"\n :container-ref=\"$refs.containerRef\"\n :item-height=\"itemHeight\"\n @enterViewport=\"(Math.abs($event - currentPage) === 1) ? currentPage = $event : () => {}\"\n />\n </div>\n </template>\n </v-virtual-scroll>\n\n <v-chip class=\"my-2\" style=\"position: absolute; bottom: 15px; left: 50%; transform: translateX(-50%);\">\n {{ currentPage }} / {{ _.get(pdf, 'numPages', '?') }}\n </v-chip>\n </v-container>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n fileName: {\n type: String,\n default: 'KomacutPdf'\n },\n filePath: String,\n itemHeight: {\n required: false,\n },\n viewerHeight: {\n required: false,\n }\n },\n\n data: () => ({\n pdf: null,\n PDFjs: null,\n pdfCdn: 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.7.570/pdf.min.js',\n pdfWorkerCdn: 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.7.570/pdf.worker.min.js',\n pageCount: 0,\n pageBuffer: 4,\n currentPage: 1,\n isPDFDownloadPending: false\n }),\n computed: {\n from: vm => vm.currentPage,\n to: vm => vm.currentPage + vm.pageBuffer,\n loadedPages: vm => {\n if (!vm.pdf) {\n return [{ id: 'fake' }];\n }\n\n return new Array(vm.pdf.numPages)\n .fill(undefined)\n .map((v, i) => ({\n pageNumber: i + 1,\n pdf: vm.pdf,\n id: `${vm.pdf.fingerprint}-${i}`,\n }));\n }\n },\n\n created() {\n document.getElementsByTagName('html')[0].style.overflow = 'hidden';\n this.initPDF();\n },\n destroyed() {\n document.getElementsByTagName('html')[0].style.overflow = 'visible';\n },\n methods: {\n importPDF() {\n return new Promise(resolve => {\n const script = document.createElement('script');\n script.onload = () => {\n resolve(window['pdfjs-dist/build/pdf']);\n };\n script.async = true;\n script.src = this.pdfCdn;\n document.head.appendChild(script);\n });\n },\n async initPDF() {\n this.PDFjs = await this.importPDF();\n this.PDFjs.GlobalWorkerOptions.workerSrc = this.pdfWorkerCdn;\n this.loadPDF();\n },\n loadPDF() {\n // Asynchronous download of PDF\n this.isPDFDownloadPending = true;\n const loadingTask = this.PDFjs.getDocument(this.filePath);\n loadingTask.promise.then(pdf => {\n this.pdf = pdf;\n this.isPDFDownloadPending = false;\n });\n },\n saveByteArray(reportName, byte) {\n const blob = new Blob([byte], { type: 'application/pdf' });\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n const fileName = reportName;\n link.download = fileName;\n link.click();\n },\n downloadPdf() {\n this.pdf.saveDocument().then(save => {\n this.saveByteArray(this.fileName, save);\n });\n }\n }\n};\n\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfViewer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfViewer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PdfViewer.vue?vue&type=template&id=02c22e54&\"\nimport script from \"./PdfViewer.vue?vue&type=script&lang=js&\"\nexport * from \"./PdfViewer.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VVirtualScroll } from 'vuetify/lib/components/VVirtualScroll';\ninstallComponents(component, {VBtn,VChip,VContainer,VIcon,VVirtualScroll})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductOption.vue?vue&type=style&index=0&id=65dbd852&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"rounded d-flex flex-column align-center py-0 my-0 text-truncate\",staticStyle:{\"background-color\":\"#E9F4ED\",\"font-size\":\"15px\"}},[_c('div',[_c('span',{staticClass:\"body-2 text-right\"},[_vm._v(_vm._s(_vm.$t('views.instantQuote.quantity'))+\": \"+_vm._s('\\xa0')+\" \")]),_c('span',{staticClass:\"body-2\"},[_vm._v(_vm._s(_vm.$t('common.customizedBagPrice')))])]),_c('v-container',{staticClass:\"py-0\"},[_c('v-row',{staticClass:\"flex-nowrap\"},[_vm._l((_vm.customerPriceRange),function(bracket,i){return [(i>0)?_c('v-spacer',{key:(\"space-\" + i)}):_vm._e(),_c('v-col',{key:i,staticClass:\"text-center pa-0\"},[_c('span',{key:(\"qty-\" + i),staticStyle:{\"color\":\"#8D8D8D\",\"text-overflow\":\"ellipsis\",\"style\":\"15px\"},attrs:{\"data-cy\":(\"unit-price-qty-\" + i)}},[_vm._v(\" \"+_vm._s(i === 0 ? _vm.quantity : bracket.Qty)+\": \")]),_c('span',{key:(\"price-\" + i),staticClass:\"text-truncate\",attrs:{\"data-cy\":(\"unit-price-amount-\" + i)}},[_vm._v(\" \"+_vm._s(_vm.currency(bracket.Price, { symbol: _vm.company.currencySymbol, precision: 4 }).format())+\" \"+_vm._s('\\xa0')+\" \")])])]})],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div\n style=\"background-color: #E9F4ED; font-size: 15px\"\n class=\"rounded d-flex flex-column align-center py-0 my-0 text-truncate\"\n >\n <div>\n <span class=\"body-2 text-right\">{{ $t('views.instantQuote.quantity') }}: {{ '\\xa0' }} </span>\n <span class=\"body-2\">{{ $t('common.customizedBagPrice') }}</span>\n </div>\n\n <v-container class=\"py-0\">\n <v-row class=\"flex-nowrap\">\n <template v-for=\"(bracket, i) in customerPriceRange\">\n <v-spacer v-if=\"i>0\" :key=\"`space-${i}`\" />\n <v-col :key=\"i\" class=\"text-center pa-0\">\n <span\n :key=\"`qty-${i}`\"\n style=\"color: #8D8D8D;text-overflow: ellipsis; style:15px\"\n :data-cy=\"`unit-price-qty-${i}`\"\n >\n {{ i === 0 ? quantity : bracket.Qty }}:\n </span>\n <span\n :key=\"`price-${i}`\"\n class=\"text-truncate\"\n :data-cy=\"`unit-price-amount-${i}`\"\n >\n {{\n\n currency(bracket.Price, {\n symbol: company.currencySymbol,\n precision: 4\n }).format()\n\n }} {{ '\\xa0' }}\n </span>\n </v-col>\n </template>\n </v-row>\n </v-container>\n </div>\n</template>\n\n<script>\nimport currency from 'currency.js';\nimport { models } from 'feathers-vuex';\n\nconst { Company } = models.api;\n\nexport default {\n name: 'CustomBagPriceMoqTable',\n props: {\n part: Object,\n },\n data: () => ({\n currency,\n }),\n computed: {\n company: () => Company.getFromStore(0),\n\n priceRange: vm => vm.part.priceMoq,\n\n quantity: vm => {\n if (!vm.part.ReqQty || vm.part.ReqQty <= 0) {\n return 1;\n }\n if (!vm.part.ReqQty || vm.part.ReqQty <= 100) {\n return 100;\n }\n if (vm.part.ReqQty >= 1000000) {\n return 1000000;\n }\n return vm.part.ReqQty;\n },\n customerPriceRange() {\n if (!this.priceRange || this.quantity <= 0) {\n return [];\n }\n\n const reqQtyPriceIndex = this.priceRange\n .findIndex(range => range.Qty > this.quantity) - 1;\n\n if (reqQtyPriceIndex < 0) {\n return this.priceRange.slice(-1);\n }\n return this.priceRange\n .slice(reqQtyPriceIndex, Math.min(reqQtyPriceIndex + 3, this.priceRange.length));\n },\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomBagPriceMoqTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomBagPriceMoqTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CustomBagPriceMoqTable.vue?vue&type=template&id=ce857dd8&\"\nimport script from \"./CustomBagPriceMoqTable.vue?vue&type=script&lang=js&\"\nexport * from \"./CustomBagPriceMoqTable.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('core-dialog',{attrs:{\"value\":_vm.isPaymentDialogOpen,\"is-loading\":_vm.activePayment && _vm.activePayment.isSavePending,\"width\":(_vm.company && _vm.company.CurrCode === 'CNY') ? 750 : 600,\"type\":\"confirmation\",\"persistent\":\"\",\"ok-button-text\":_vm.$t('views.editOrder.acceptAndProcess')},on:{\"click:cancel\":_vm.cancelActivePayment},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.$t('views.editOrder.termsAcceptance')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.$t('views.editOrder.termsAcceptance1'))}}),_c('br'),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.$t('views.editOrder.termsAcceptance2'))}}),_c('br'),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.$t('views.editOrder.termsAcceptance3'))}}),_c('br'),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.$t('views.editOrder.termsAcceptance4'))}})])]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.currentOrder && _vm.currentOrder.isMexicoOrder || _vm.isMexicoPayment)?[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.activePayment.isSavePending || _vm.isIntBankTransferPending,\"data-cy\":\"stripe-usd-payment-button\"},on:{\"click\":function($event){return _vm.generatePaymentUrl('stripe')}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-credit-card-outline \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.creditCard'))+\" \")],1),_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.isIntBankTransferPending || _vm.activePayment.isSavePending,\"loading\":_vm.isIntBankTransferPending,\"data-cy\":\"usd-payment-button\"},on:{\"click\":_vm.goToComfirmationPage}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-bank \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.intBankTransfer'))+\" \")],1)]:[(_vm.company.CurrCode === 'CNY' && _vm.company.PaymentTerms === 'Ful')?[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.activePayment.isSavePending || _vm.isIntBankTransferPending,\"data-cy\":\"bank-card-payment-button\"},on:{\"click\":function($event){return _vm.generatePaymentUrl('0')}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-credit-card-outline \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.bankCard'))+\" \")],1),_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.activePayment.isSavePending || _vm.isIntBankTransferPending,\"data-cy\":\"ebank-payment-button\"},on:{\"click\":function($event){return _vm.generatePaymentUrl('2')}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-bank \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.eBank'))+\" \")],1),_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.activePayment.isSavePending || _vm.isIntBankTransferPending,\"data-cy\":\"wechat-payment-button\"},on:{\"click\":function($event){return _vm.generatePaymentUrl('I')}}},[_c('img',{staticStyle:{\"margin-right\":\"8px\"},attrs:{\"src\":\"/img/wechat_logo.svg\",\"height\":\"18\",\"width\":\"18\"}}),_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.weChat'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.isIntBankTransferPending || _vm.activePayment.isSavePending,\"loading\":_vm.isIntBankTransferPending,\"data-cy\":\"usd-payment-button\"},on:{\"click\":_vm.goToComfirmationPage}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-bank \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.bankTransfer'))+\" \")],1)]:[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.activePayment.isSavePending || _vm.isIntBankTransferPending,\"data-cy\":\"usd-payment-button\"},on:{\"click\":_vm.generatePaymentUrl}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-credit-card-outline \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.creditCard'))+\" \")],1),_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.isIntBankTransferPending || _vm.activePayment.isSavePending,\"loading\":_vm.isIntBankTransferPending,\"data-cy\":\"usd-payment-button\"},on:{\"click\":_vm.goToComfirmationPage}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-bank \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.intBankTransfer'))+\" \")],1)]],_c('v-btn',{staticClass:\"px-8\",attrs:{\"color\":\"primary\",\"text\":\"\",\"depressed\":\"\",\"disabled\":_vm.activePayment.isSavePending || _vm.isIntBankTransferPending},on:{\"click\":_vm.cancelActivePayment}},[_vm._v(\" \"+_vm._s(_vm.$t('common.cancel'))+\" \")])]},proxy:true}])}),_c('core-dialog',{attrs:{\"value\":_vm.isQrCodeDialogOpen,\"type\":\"custom\",\"width\":\"380px\",\"height\":\"500px\",\"persistent\":\"\",\"eager\":\"\"},on:{\"click:cancel\":_vm.cancelActivePayment},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',[_vm._v(\" \")])]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-space-between text-uppercase px-6 py-3\",staticStyle:{\"background-color\":\"#F1FDF3\",\"font-size\":\"18px\"}},[_c('span',{staticClass:\"d-flex font-weight-medium\"},[_vm._v(_vm._s(_vm.$t('views.orders.total', {currency: _vm.$t((\"currency.\" + (_vm.company.CurrCode)))})))]),_c('span',{staticClass:\"d-flex font-weight-bold black--text\"},[_vm._v(\" \"+_vm._s(_vm.currency(_vm.activePayment.openBalance, {symbol: _vm.company.currencySymbol}).format())+\" \")])]),_c('div',{staticClass:\"d-flex justify-center mt-6\"},[_c('span',{staticClass:\"d-flex caption text--secondary\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.pleaseScanTheWeChatQRCode'))+\" \")])]),_c('div',{staticClass:\"pa-10 text-center\",attrs:{\"id\":\"qrCodeContainer\"}},[_c('canvas',{attrs:{\"id\":\"qrCodeCanvas\"}})]),_c('div',{staticClass:\"d-flex justify-center\"},[_c('img',{attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"175px\",\"height\":\"80px\"}})])]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <core-dialog\n :value=\"isPaymentDialogOpen\"\n :is-loading=\"activePayment && activePayment.isSavePending\"\n :width=\"(company && company.CurrCode === 'CNY') ? 750 : 600\"\n type=\"confirmation\"\n persistent\n :ok-button-text=\"$t('views.editOrder.acceptAndProcess')\"\n @click:cancel=\"cancelActivePayment\"\n >\n <template #title>\n <span>{{ $t('views.editOrder.termsAcceptance') }}</span>\n </template>\n\n <template #content>\n <div class=\"text-center\">\n <div v-html=\"$t('views.editOrder.termsAcceptance1')\" />\n <br>\n <div v-html=\"$t('views.editOrder.termsAcceptance2')\" />\n <br>\n <div v-html=\"$t('views.editOrder.termsAcceptance3')\" />\n <br>\n <div v-html=\"$t('views.editOrder.termsAcceptance4')\" />\n </div>\n </template>\n\n <template #actions>\n <template v-if=\"currentOrder && currentOrder.isMexicoOrder || isMexicoPayment\">\n <v-btn\n color=\"primary\"\n :disabled=\"activePayment.isSavePending || isIntBankTransferPending\"\n data-cy=\"stripe-usd-payment-button\"\n @click=\"generatePaymentUrl('stripe')\"\n >\n <v-icon left>\n mdi-credit-card-outline\n </v-icon>\n {{ $t('views.editOrder.creditCard') }}\n </v-btn>\n <v-btn\n color=\"primary\"\n :disabled=\"isIntBankTransferPending || activePayment.isSavePending\"\n :loading=\"isIntBankTransferPending\"\n data-cy=\"usd-payment-button\"\n @click=\"goToComfirmationPage\"\n >\n <v-icon left>\n mdi-bank\n </v-icon>\n {{ $t('views.editOrder.intBankTransfer') }}\n </v-btn>\n </template>\n <template v-else>\n <template v-if=\"company.CurrCode === 'CNY' && company.PaymentTerms === 'Ful'\">\n <v-btn\n color=\"primary\"\n :disabled=\"activePayment.isSavePending || isIntBankTransferPending\"\n data-cy=\"bank-card-payment-button\"\n @click=\"generatePaymentUrl('0')\"\n >\n <v-icon left>\n mdi-credit-card-outline\n </v-icon>\n {{ $t('views.editOrder.bankCard') }}\n </v-btn>\n <v-btn\n color=\"primary\"\n :disabled=\"activePayment.isSavePending || isIntBankTransferPending\"\n data-cy=\"ebank-payment-button\"\n @click=\"generatePaymentUrl('2')\"\n >\n <v-icon left>\n mdi-bank\n </v-icon>\n {{ $t('views.editOrder.eBank') }}\n </v-btn>\n <v-btn\n color=\"primary\"\n :disabled=\"activePayment.isSavePending || isIntBankTransferPending\"\n data-cy=\"wechat-payment-button\"\n @click=\"generatePaymentUrl('I')\"\n >\n <img\n src=\"/img/wechat_logo.svg\"\n height=\"18\"\n width=\"18\"\n style=\"margin-right: 8px;\"\n >\n {{ $t('views.editOrder.weChat') }}\n </v-btn>\n <v-btn\n color=\"primary\"\n :disabled=\"isIntBankTransferPending || activePayment.isSavePending\"\n :loading=\"isIntBankTransferPending\"\n data-cy=\"usd-payment-button\"\n @click=\"goToComfirmationPage\"\n >\n <v-icon left>\n mdi-bank\n </v-icon>\n {{ $t('views.editOrder.bankTransfer') }}\n </v-btn>\n </template>\n <template v-else>\n <v-btn\n color=\"primary\"\n :disabled=\"activePayment.isSavePending || isIntBankTransferPending\"\n data-cy=\"usd-payment-button\"\n @click=\"generatePaymentUrl\"\n >\n <v-icon left>\n mdi-credit-card-outline\n </v-icon>\n {{ $t('views.editOrder.creditCard') }}\n </v-btn>\n\n <v-btn\n color=\"primary\"\n :disabled=\"isIntBankTransferPending || activePayment.isSavePending\"\n :loading=\"isIntBankTransferPending\"\n data-cy=\"usd-payment-button\"\n @click=\"goToComfirmationPage\"\n >\n <v-icon left>\n mdi-bank\n </v-icon>\n {{ $t('views.editOrder.intBankTransfer') }}\n </v-btn>\n </template>\n </template>\n <v-btn\n class=\"px-8\"\n color=\"primary\"\n text\n depressed\n :disabled=\"activePayment.isSavePending || isIntBankTransferPending\"\n @click=\"cancelActivePayment\"\n >\n {{ $t('common.cancel') }}\n </v-btn>\n </template>\n </core-dialog>\n\n <core-dialog\n :value=\"isQrCodeDialogOpen\"\n type=\"custom\"\n width=\"380px\"\n height=\"500px\"\n persistent\n eager\n @click:cancel=\"cancelActivePayment\"\n >\n <template #title>\n <span> </span>\n </template>\n\n <template #content class=\"justify-center\">\n <div\n class=\"d-flex justify-space-between text-uppercase px-6 py-3\"\n style=\"background-color:#F1FDF3; font-size: 18px\"\n >\n <span class=\"d-flex font-weight-medium\">{{\n $t('views.orders.total', {currency: $t(`currency.${company.CurrCode}`)})\n }}</span>\n <span class=\"d-flex font-weight-bold black--text\">\n {{ currency(activePayment.openBalance, {symbol: company.currencySymbol}).format() }}\n </span>\n </div>\n <div class=\"d-flex justify-center mt-6\">\n <span class=\"d-flex caption text--secondary\">\n {{ $t('views.editOrder.pleaseScanTheWeChatQRCode') }}\n </span>\n </div>\n <div id=\"qrCodeContainer\" class=\"pa-10 text-center\">\n <canvas id=\"qrCodeCanvas\" />\n </div>\n <div class=\"d-flex justify-center\">\n <img\n src=\"/img/Komacut-logo.svg\"\n width=\"175px\"\n height=\"80px\"\n >\n </div>\n </template>\n </core-dialog>\n </div>\n</template>\n\n<script>\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport { models } from 'feathers-vuex';\nimport currency from 'currency.js';\nimport QRCode from 'qrcode';\n\nconst { Company, Order } = models.api;\n\nexport default {\n name: 'PaymentDialog',\n\n data() {\n return {\n currency,\n isIntBankTransferPending: false,\n };\n },\n\n computed: {\n ...mapGetters('payments', {\n isPaymentDialogOpen: 'isPaymentDialogOpen',\n isQrCodeDialogOpen: 'isQrCodeDialogOpen',\n activePayment: 'activePayment',\n }),\n ...mapState('auth', [\n 'user',\n ]),\n ...mapState('app', ['currentOrder']),\n company: () => Company.getFromStore(0),\n isMexicoPayment: vm => vm.activePayment && vm.activePayment.FactoryId === parseInt(process.env.VUE_APP_MEXICO_FACTORY_ID, 10),\n },\n\n methods: {\n ...mapActions('payments', {\n cancelActivePayment: 'cancelActivePayment',\n setIsPaymentDialogOpen: 'setIsPaymentDialogOpen',\n setIsQrCodeDialogOpen: 'setIsQrCodeDialogOpen',\n }),\n ...mapActions('app', [\n 'initCurrentOrder',\n 'clearCurrentOrder'\n ]),\n\n // TODO: Handle logic for non upfront payments\n async generatePaymentUrl(paymentMethod) {\n if (paymentMethod === 'stripe') {\n this.activePayment.provider = {\n name: 'stripe',\n options: {\n redirectUrl: `${window.location.origin}${this.$router.getRoutes().find(route => route.name === 'confirmedOrder').path}`,\n cancelUrl: `${window.location.origin}`,\n }\n };\n } else {\n this.activePayment.provider = {\n name: 'lian-lian',\n options: {\n notificationUrl: `${process.env.VUE_APP_API_URL}lianlian-gateway/`,\n // notificationUrl: 'https://e695-49-156-82-29.ngrok-free.app/lianlian-gateway/',\n redirectUrl: `${window.location.origin}${this.$router.getRoutes().find(route => route.name === 'confirmedOrder').path}`,\n }\n };\n }\n const validPaymentTypes = ['0', '2', 'I'];\n if (validPaymentTypes.includes(paymentMethod)) {\n this.activePayment.provider.options.type = paymentMethod;\n\n if (paymentMethod !== 'I') {\n const { redirectUrl } = this.activePayment.provider.options;\n let updatedRedirectUrl = '';\n if (redirectUrl.includes('statements')) {\n updatedRedirectUrl = `${process.env.VUE_APP_API_URL}payment-redirect/statements/`;\n } else if (redirectUrl.includes('orders')) {\n updatedRedirectUrl = `${process.env.VUE_APP_API_URL}payment-redirect/orders/`;\n } else if (redirectUrl.includes('confirmed')) {\n updatedRedirectUrl = `${process.env.VUE_APP_API_URL}payment-redirect/confirmed/`;\n }\n this.activePayment.provider.options.redirectUrl = updatedRedirectUrl;\n }\n }\n\n await this.activePayment.save();\n if (paymentMethod === 'I') {\n this.setIsPaymentDialogOpen(false);\n this.setIsQrCodeDialogOpen(true);\n requestAnimationFrame(() => QRCode.toCanvas(\n document.getElementById('qrCodeCanvas'),\n this.activePayment.paymentUrl,\n { errorCorrectionLevel: 'H' },\n (err, canvas) => {\n if (err) {\n throw err;\n }\n const container = document.getElementById('qrCodeContainer');\n container.appendChild(canvas);\n }\n ));\n } else {\n window.open(this.activePayment.paymentUrl, '_self').focus();\n }\n },\n\n async goToComfirmationPage() {\n this.isIntBankTransferPending = true;\n await this.$feathers.service('email').create({\n EmailToValue: this.user._id,\n CommentValue: '',\n ReportTypeValue: 'DepositInvoice',\n EstimateValue: this.activePayment.CoNum,\n });\n await Order.find();\n this.isIntBankTransferPending = false;\n this.setIsPaymentDialogOpen(false);\n await this.$router.push({ path: `/order/confirmed?skipPaymentOrderId=${this.activePayment.CoNum}` });\n await this.clearCurrentOrder();\n this.initCurrentOrder();\n }\n },\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PaymentDialog.vue?vue&type=template&id=16eb87fe&scoped=true&\"\nimport script from \"./PaymentDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./PaymentDialog.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 \"16eb87fe\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list',{attrs:{\"two-line\":\"\"}},[_c('v-list-item',[_c('v-list-item-avatar',[_c('v-skeleton-loader',{attrs:{\"type\":\"avatar\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.part.partNo)+\" \"),_c('v-btn',{staticClass:\"mb-1\",attrs:{\"icon\":\"\",\"text\":\"\",\"small\":\"\"}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" mdi-pencil \")])],1)],1),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.part.filename))])],1),_c('v-list-item-action',[_c('v-btn',{staticStyle:{\"position\":\"absolute\",\"bottom\":\"60%\"},attrs:{\"icon\":\"\"},on:{\"click\":_vm.action}},[_c('v-icon',[_vm._v(_vm._s(_vm.expanded ? 'mdi-chevron-up' : 'mdi-chevron-down'))])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-list two-line>\n <v-list-item>\n <v-list-item-avatar>\n <v-skeleton-loader type=\"avatar\" />\n </v-list-item-avatar>\n\n <v-list-item-content>\n <v-list-item-title>\n {{ part.partNo }}\n <v-btn\n icon\n text\n small\n class=\"mb-1\"\n >\n <v-icon small>\n mdi-pencil\n </v-icon>\n </v-btn>\n </v-list-item-title>\n\n <v-list-item-subtitle>{{ part.filename }}</v-list-item-subtitle>\n </v-list-item-content>\n\n <v-list-item-action>\n <v-btn\n style=\"position:absolute; bottom: 60%;\"\n icon\n @click=\"action\"\n >\n <v-icon>{{ expanded ? 'mdi-chevron-up' : 'mdi-chevron-down' }}</v-icon>\n </v-btn>\n </v-list-item-action>\n </v-list-item>\n </v-list>\n</template>\n\n<script>\nexport default {\n props: ['name', 'part', 'expanded', 'action']\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadPartHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadPartHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UploadPartHeader.vue?vue&type=template&id=124ace5a&\"\nimport script from \"./UploadPartHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./UploadPartHeader.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemAvatar } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VBtn,VIcon,VList,VListItem,VListItemAction,VListItemAvatar,VListItemContent,VListItemSubtitle,VListItemTitle,VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"inline\"}},[(_vm.pdfReady)?_c('div',{staticStyle:{\"display\":\"inline\"}},[_c('v-btn',{staticClass:\"pr-1\",attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.isPDFDownload=true}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"20\"}},[_vm._v(\" mdi-open-in-new \")]),_vm._v(\" \"+_vm._s(_vm.$t('drawingConsultancyPdf.view2DDrawing'))+\" \")],1),(!_vm.isPdfRemoved)?_c('v-icon',{attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showPdfRemoveDialog = true}}},[_vm._v(\" mdi-close \")]):_vm._e()],1):[_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.display=true;}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"25\"}},[_vm._v(\" mdi-file-pdf-box \")]),_vm._v(\" \"+_vm._s(_vm.$t('drawingConsultancyPdf.upload2DDrawing'))+\" \")],1)],_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"500px\",\"is-loading\":_vm.isPdfRemoved,\"ok-button-text\":_vm.$t('common.delete')},on:{\"click:ok\":_vm.removePDF,\"click:cancel\":function($event){_vm.showPdfRemoveDialog =false}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.DeletePdfDrawing'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"pa-10 text-center\"},[_c('span',{staticClass:\"d-block\",domProps:{\"innerHTML\":_vm._s(_vm.$t('common.deleteDialogText', { name: _vm.$t('myPartPdf.PdfDrawingFile') }))}})])]},proxy:true}]),model:{value:(_vm.showPdfRemoveDialog),callback:function ($$v) {_vm.showPdfRemoveDialog=$$v},expression:\"showPdfRemoveDialog\"}}),(_vm.display)?_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"1000px\",\"eager\":true,\"is-loading\":_vm.isPdfUploadPending,\"is-ok-disabled\":!_vm.isFileAdded,\"ok-button-text\":_vm.$t('common.submit')},on:{\"click:ok\":function($event){_vm.display = false;},\"click:cancel\":function($event){_vm.display = false;_vm.removePDF()}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('drawingConsultancyPdf.uploadDrawingConsultancy'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{ref:\"myDialog\",staticClass:\" text-center\"},[_c('v-card',{staticClass:\"mt-5\",staticStyle:{\"border\":\"dashed #D7D7D7 2px\",\"background-color\":\"#F1FDF3\",\"min-width\":\"905px\",\"max-width\":\"1000px\"},attrs:{\"height\":\"150\",\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"d-flex flex-column justify-space-between align-center\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',{attrs:{\"color\":\"green\",\"size\":\"60\"}},[_vm._v(\" mdi-cloud-upload-outline \")]),_c('span',{staticClass:\"headline mx-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.dragFilesToUpload'))+\" \")]),_c('v-btn',{staticStyle:{\"background-color\":\"#FFF\"},attrs:{\"id\":\"dropzone-click-target-pdf\",\"depressed\":\"\",\"text\":\"\",\"outlined\":\"\",\"color\":\"success\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.browse'))+\" \")])],1),_c('div',{staticClass:\"d-flex body-2\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.FileSupported'))+\" \")])])],1),_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.SingleFileOnly'))+\" \")],1)]},proxy:true}],null,false,2162167336),model:{value:(_vm.display),callback:function ($$v) {_vm.display=$$v},expression:\"display\"}}):_vm._e(),_c('v-overlay',{attrs:{\"value\":_vm.isPDFDownload,\"z-index\":\"90\"}}),_c('v-navigation-drawer',{staticStyle:{\"background-color\":\"#ada6a6\",\"z-index\":\"99 !important\"},attrs:{\"width\":\"60%\",\"fixed\":\"\",\"stateless\":\"\",\"hide-overlay\":\"\",\"right\":\"\",\"temporary\":\"\"},model:{value:(_vm.isPDFDownload),callback:function ($$v) {_vm.isPDFDownload=$$v},expression:\"isPDFDownload\"}},[_c('div',{ref:\"rfqViewerContainer\",staticStyle:{\"height\":\"calc(100% - 52px)\"}},[_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){_vm.isPDFDownload=false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),(_vm.isPDFDownload)?_c('core-pdf-viewer',{attrs:{\"file-path\":_vm.previewPDFUrl,\"item-height\":800}}):_vm._e()],1)])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div style=\"display: inline\">\n <div v-if=\"pdfReady\" style=\"display: inline\">\n <v-btn\n text\n small\n class=\"pr-1\"\n :loading=\"isPdfRemoved\"\n color=\"primary\"\n @click=\"isPDFDownload=true\"\n >\n <v-icon left size=\"20\">\n mdi-open-in-new\n </v-icon>\n {{ $t('drawingConsultancyPdf.view2DDrawing') }}\n </v-btn>\n <v-icon v-if=\"!isPdfRemoved\" small @click=\"showPdfRemoveDialog = true\">\n mdi-close\n </v-icon>\n </div>\n <template v-else>\n <v-btn\n text\n small\n :loading=\"isPdfRemoved\"\n color=\"primary\"\n @click=\"display=true;\"\n >\n <v-icon left size=\"25\">\n mdi-file-pdf-box\n </v-icon>\n {{ $t('drawingConsultancyPdf.upload2DDrawing') }}\n </v-btn>\n </template>\n\n <core-dialog\n v-model=\"showPdfRemoveDialog\"\n type=\"confirmation\"\n width=\"500px\"\n :is-loading=\"isPdfRemoved\"\n :ok-button-text=\"$t('common.delete')\"\n @click:ok=\"removePDF\"\n @click:cancel=\"showPdfRemoveDialog =false\"\n >\n <template #title>\n {{ $t('myPartPdf.DeletePdfDrawing') }}\n </template>\n <template #content>\n <div class=\"pa-10 text-center\">\n <span\n class=\"d-block\"\n v-html=\"$t('common.deleteDialogText', { name: $t('myPartPdf.PdfDrawingFile') })\"\n />\n </div>\n </template>\n </core-dialog>\n <core-dialog\n v-if=\"display\"\n v-model=\"display\"\n type=\"confirmation\"\n width=\"1000px\"\n :eager=\"true\"\n :is-loading=\"isPdfUploadPending\"\n :is-ok-disabled=\"!isFileAdded\"\n :ok-button-text=\"$t('common.submit')\"\n @click:ok=\"display = false;\"\n @click:cancel=\"display = false;removePDF()\"\n >\n <template #title>\n {{ $t('drawingConsultancyPdf.uploadDrawingConsultancy') }}\n </template>\n <template #content>\n <div ref=\"myDialog\" class=\" text-center\">\n <v-card\n class=\"mt-5\"\n height=\"150\"\n flat\n style=\"border: dashed #D7D7D7 2px;\n background-color: #F1FDF3;\n min-width: 905px; max-width: 1000px;\"\n >\n <v-card-text class=\"d-flex flex-column justify-space-between align-center\" style=\"height: 100%\">\n <div class=\"d-flex align-center\">\n <v-icon color=\"green\" size=\"60\">\n mdi-cloud-upload-outline\n </v-icon>\n <span class=\"headline mx-4\">\n {{ $t('views.instantQuote.dragFilesToUpload') }}\n </span>\n <v-btn\n id=\"dropzone-click-target-pdf\"\n depressed\n text\n outlined\n color=\"success\"\n style=\"background-color: #FFF\"\n >\n {{ $t('views.instantQuote.browse') }}\n </v-btn>\n </div>\n <div class=\"d-flex body-2\" style=\"color:#4B4B4B\">\n {{ $t('myPartPdf.FileSupported') }}\n </div>\n </v-card-text>\n </v-card>\n {{ $t('myPartPdf.SingleFileOnly') }}\n </div>\n </template>\n </core-dialog>\n\n <v-overlay :value=\"isPDFDownload\" z-index=\"90\" />\n <v-navigation-drawer\n v-model=\"isPDFDownload\"\n width=\"60%\"\n fixed\n stateless\n hide-overlay\n right\n temporary\n style=\"background-color: #ada6a6;z-index: 99 !important;\"\n >\n <div\n ref=\"rfqViewerContainer\"\n style=\"height: calc(100% - 52px);\"\n >\n <div class=\"d-flex justify-end\">\n <v-btn\n icon\n x-large\n @click=\"isPDFDownload=false\"\n >\n <v-icon>mdi-close</v-icon>\n </v-btn>\n </div>\n\n <core-pdf-viewer\n v-if=\"isPDFDownload\"\n :file-path=\"previewPDFUrl\"\n :item-height=\"800\"\n />\n </div>\n </v-navigation-drawer>\n </div>\n</template>\n\n<script>\nimport Dropzone from 'dropzone';\nimport 'dropzone/dist/dropzone.css';\nimport { mapState } from 'vuex';\n\nexport default {\n name: 'DrawingConsultancyPdf',\n props: {\n pdfUrl: {\n type: String,\n },\n },\n data() {\n return {\n pdfReady: false,\n previewPDFUrl: '',\n isPdfUploadPending: false,\n isFileAdded: false,\n showPdfRemoveDialog: false,\n myDropZone: null,\n pdfPageHeight: 0,\n pdfPageWidth: 0,\n display: false,\n isPdfRemoved: false,\n isPDFDownload: false\n };\n },\n computed: {\n ...mapState('auth', ['accessToken']),\n dropzoneOptions: vm => ({\n url: '/',\n paramName: 'file',\n headers: {\n Authorization: vm.accessToken,\n },\n thumbnailWidth: 150,\n maxFilesize: 20,\n timeout: 9999999,\n maxFiles: 1,\n parallelUploads: 1,\n acceptedFiles: '.pdf',\n autoProcessQueue: false,\n dictDefaultMessage: 'dropZone.dictDefaultMessage',\n dictFallbackMessage: 'dropZone.dictFallbackMessage',\n dictFallbackText: 'dropZone.dictFallbackText',\n dictFileTooBig: 'dropZone.dictFileTooBig',\n dictInvalidFileType: 'dropZone.dictInvalidFileType',\n dictResponseError: 'dropZone.dictResponseError',\n dictCancelUpload: 'dropZone.dictCancelUpload',\n dictCancelUploadConfirmation: 'dropZone.dictCancelUploadConfirmation',\n dictRemoveFile: 'dropZone.dictRemoveFile',\n dictMaxFilesExceeded: 'dropZone.dictMaxFilesExceeded',\n clickable: '#dropzone-click-target-pdf',\n previewTemplate: vm.template(),\n init() {\n this.on('maxfilesexceeded', file => {\n this.removeAllFiles();\n this.addFile(file);\n });\n this.on('error', async file => {\n this.removeFile(file);\n });\n this.on('success', async () => {\n vm.isPdfUploadPending = false;\n vm.display = false;\n await vm.checkIfPdfExist();\n });\n\n this.on('sending', () => {\n vm.isPdfUploadPending = true;\n });\n\n this.on('addedfile', async file => {\n const removeButton = Dropzone.createElement('<span class=\"mdi mdi-close\" style=\"vertical-align: middle; font-size: 1.5rem; cursor: pointer\" ></span>');\n vm.previewPDFUrl = URL.createObjectURL(file);\n vm.$emit('pdfUrl', vm.previewPDFUrl);\n vm.pdfReady = true;\n vm.isFileAdded = true;\n removeButton.addEventListener('click', e => {\n e.preventDefault();\n e.stopPropagation();\n this.removeFile(file);\n vm.removePDF();\n });\n\n file.previewElement.children[1].appendChild(removeButton);\n });\n }\n\n }),\n },\n watch: {\n display(newValue) {\n if (newValue) {\n setTimeout(() => {\n this.myDropZone = new Dropzone(this.$refs.myDialog, this.dropzoneOptions);\n }, 800);\n } else {\n this.myDropZone = null;\n }\n },\n pdfUrl(val) {\n if (val) {\n this.pdfReady = true;\n this.previewPDFUrl = this.pdfUrl;\n } else {\n this.pdfReady = false;\n }\n }\n },\n\n mounted() {\n const resizeObserver = new ResizeObserver(() => {\n /* 70 breathing room */\n this.pdfPageWidth = this.$refs.rfqViewerContainer.getBoundingClientRect().width - 70;\n const ratio = 8.5 / 11;\n this.pdfPageHeight = this.pdfPageWidth / ratio;\n });\n resizeObserver.observe(this.$refs.rfqViewerContainer);\n },\n methods: {\n\n async onFileChanged(e) {\n const [pdfFile] = e.target.files;\n this.previewPDFUrl = URL.createObjectURL(pdfFile);\n this.$emit('pdfUrl', this.previewPDFUrl);\n this.pdfReady = true;\n },\n async removePDF() {\n URL.revokeObjectURL(this.previewPDFUrl);\n this.pdfReady = false;\n this.showPdfRemoveDialog = false;\n this.previewPDFUrl = '';\n this.$emit('pdfUrl', this.previewPDFUrl);\n this.isFileAdded = false;\n },\n template() {\n return `\n <div class=\"d-flex align-start flex-column mt-16\">\n <p style=\"vertical-align: bottom\">Document selected</p>\n <p id=\"test\" class=\"pa-2\" style=\"background-color: #dee0e4; display: inline\">\n <span class=\"mdi mdi-open-in-new font-weight-medium\" style=\"vertical-align: middle; color:#2c984e; font-size:1.2rem\"></span>\n <span class=\"font-weight-bold\" style=\"vertical-align: bottom; color:#2c984e; font-size:1rem\" data-dz-name></span>\n </p>\n </div>`;\n }\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawingConsultancyPdf.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawingConsultancyPdf.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DrawingConsultancyPdf.vue?vue&type=template&id=28aba8bf&\"\nimport script from \"./DrawingConsultancyPdf.vue?vue&type=script&lang=js&\"\nexport * from \"./DrawingConsultancyPdf.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VBtn,VCard,VCardText,VIcon,VNavigationDrawer,VOverlay})\n","export default {\n props: {\n value: {},\n section: String,\n },\n\n computed: {\n localValue: {\n get() {\n return this.value;\n },\n\n set(value) {\n this.$emit('input', value);\n },\n }\n },\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panels',[_c('v-expansion-panel',[_c('v-expansion-panel-header',[_c('div',{staticClass:\"text-subtitle-2\"},[_vm._v(\" \"+_vm._s(_vm.$t(_vm._.get(_vm.analysisData[0], 'value')))+\" \")])]),_c('v-expansion-panel-content',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',_vm._l((_vm.analysisData.slice(1)),function(item,i){return _c('tr',{key:item.field,class:{ 'dark': (i % 2 !== 0) }},[_c('td',{staticClass:\"d-flex align-center\",staticStyle:{\"color\":\"#747474\"}},[(_vm.$t(item.value) === _vm.$t('3dSideViewer.pass'))?_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check-circle-outline \")]):(_vm.$t(item.value) === _vm.$t('3dSideViewer.fail'))?_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close-circle-outline \")]):_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\" mdi-cancel \")]),_vm._v(\" \"+_vm._s(_vm.$t(item.field))+\" \")],1),_c('td',{staticClass:\"text-truncate font-weight-medium\",staticStyle:{\"text-align\":\"right\"}},[_c('span',{staticClass:\"ml-3\",style:([{color :_vm.getTextColor(item.value)}])},[_vm._v(\" \"+_vm._s(_vm.$t(item.value))+\" \")])])])}),0)]},proxy:true}])})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-expansion-panels>\n <v-expansion-panel>\n <v-expansion-panel-header>\n <div class=\"text-subtitle-2\">\n {{ $t(_.get(analysisData[0], 'value')) }}\n </div>\n </v-expansion-panel-header>\n <v-expansion-panel-content>\n <v-card flat>\n <v-simple-table dense>\n <template v-slot:default>\n <tbody>\n <tr\n v-for=\"(item, i) in analysisData.slice(1)\"\n :key=\"item.field\"\n :class=\"{ 'dark': (i % 2 !== 0) }\"\n >\n <td class=\"d-flex align-center\" style=\"color: #747474;\">\n <v-icon\n v-if=\"$t(item.value) === $t('3dSideViewer.pass')\"\n small\n class=\"mr-2\"\n color=\"green\"\n >\n mdi-check-circle-outline\n </v-icon>\n <v-icon\n v-else-if=\"$t(item.value) === $t('3dSideViewer.fail')\"\n small\n class=\"mr-2\"\n color=\"red\"\n >\n mdi-close-circle-outline\n </v-icon>\n <v-icon\n v-else\n small\n class=\"mr-2\"\n >\n mdi-cancel\n </v-icon>\n {{ $t(item.field) }}\n </td>\n <td class=\"text-truncate font-weight-medium\" style=\"text-align: right\">\n <span\n class=\"ml-3\"\n :style=\"[{color :getTextColor(item.value)}]\"\n >\n {{ $t(item.value) }}\n </span>\n </td>\n </tr>\n </tbody>\n </template>\n </v-simple-table>\n </v-card>\n </v-expansion-panel-content>\n </v-expansion-panel>\n </v-expansion-panels>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\n\nconst { CsiAnalysis } = models.api;\nexport default {\n name: 'PartAnalysisTable',\n props: {\n part: Object,\n },\n computed: {\n analysisData() {\n let tableData = [];\n if (this.part) {\n tableData = _.get(CsiAnalysis.getFromStore(this.part.Item), 'data', []);\n }\n if (_.isEmpty(tableData)) {\n tableData = [\n { field: null, value: '3dSideViewer.dfm.title' },\n { field: '3dSideViewer.dfm.holeSizeVsThickness', value: '-' },\n { field: '3dSideViewer.dfm.holeToEdge', value: '-' },\n { field: '3dSideViewer.dfm.bendToRadius', value: '-' },\n { field: '3dSideViewer.dfm.bendToEdge', value: '-' },\n { field: '3dSideViewer.dfm.bendToHole', value: '-' },\n { field: '3dSideViewer.dfm.holeToHole', value: '-' },\n { field: '3dSideViewer.dfm.hems', value: '-' },\n { field: '3dSideViewer.dfm.countersink', value: '-' },\n { field: '3dSideViewer.dfm.cornerFillets', value: '-' },\n { field: '3dSideViewer.dfm.bendReliefs', value: '-' },\n ];\n } else {\n tableData = tableData.filter(datum => datum.Category === 'S1')\n .filter(datum => (datum.Description ? datum.Description.startsWith('T1') : ''))\n .sort((datum1, datum2) => +datum1.Rank - +datum2.Rank)\n .map(datum => ({ field: datum.Description.replace('T1.', ''), value: datum.Value || '-' }));\n }\n return tableData;\n }\n },\n methods: {\n getTextColor(value) {\n value = value.split('.').pop();\n switch (value) {\n case 'pass':\n case 'yes':\n return 'green';\n case 'fail':\n case 'no':\n return 'red';\n default:\n return '';\n }\n }\n }\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DfmTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DfmTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DfmTable.vue?vue&type=template&id=02ee063f&scoped=true&\"\nimport script from \"./DfmTable.vue?vue&type=script&lang=js&\"\nexport * from \"./DfmTable.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 \"02ee063f\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-avatar',{style:((\"border: solid \" + (_vm.displayBorder ? _vm.size/20 : 0) + \"px white ;background-color: #E8E8E8\")),attrs:{\"size\":_vm.size}},[(_vm.isImgLoading)?_c('v-progress-circular',{attrs:{\"indeterminate\":\"\"}}):[(!_vm.hideAvatar && _vm.imgLoad && _vm.imgSrcUrl)?_c('v-img',{attrs:{\"eager\":\"\",\"src\":_vm.imgSrcUrl},on:{\"error\":function($event){_vm.imgLoad=false},\"load\":function($event){_vm.imgLoad=true}},scopedSlots:_vm._u([{key:\"placeholder\",fn:function(){return [_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"size\":\"10\",\"width\":\"2\",\"color\":\"#C8C8C8\"}})]},proxy:true}],null,false,1491913249)}):(!_vm.user)?_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"size\":\"10\",\"width\":\"2\",\"color\":\"red\"}}):_c('span',{staticClass:\"text-uppercase font-weight-bold d-flex\",staticStyle:{\"color\":\"rgba(0,0,0,0.86)\"},style:({'font-size': _vm.fontSize})},[_vm._v(\" \"+_vm._s(_vm.initial)+\" \")])]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-avatar\n :size=\"size\"\n :style=\"`border: solid ${displayBorder ? size/20 : 0}px white ;background-color: #E8E8E8`\"\n >\n <v-progress-circular v-if=\"isImgLoading\" indeterminate />\n <template v-else>\n <v-img\n v-if=\"!hideAvatar && imgLoad && imgSrcUrl\"\n eager\n :src=\"imgSrcUrl\"\n @error=\"imgLoad=false\"\n @load=\"imgLoad=true\"\n >\n <template v-slot:placeholder class=\"d-flex align-center justify-center\">\n <v-progress-circular\n indeterminate\n size=\"10\"\n width=\"2\"\n color=\"#C8C8C8\"\n />\n </template>\n </v-img>\n <v-progress-circular\n v-else-if=\"!user\"\n indeterminate\n size=\"10\"\n width=\"2\"\n color=\"red\"\n />\n <span\n v-else\n class=\"text-uppercase font-weight-bold d-flex\"\n :style=\"{'font-size': fontSize}\"\n style=\" color: rgba(0,0,0,0.86); \"\n >\n {{ initial }}\n </span>\n </template>\n </v-avatar>\n</template>\n\n<script>\nimport { mapState } from 'vuex';\n\nexport default {\n name: 'Avatar',\n props: {\n displayBorder: {\n type: Boolean,\n default: false\n },\n user: {\n required: true,\n },\n imgSrc: {\n type: String,\n default: ''\n },\n hideAvatar: {\n type: Boolean,\n default: false\n },\n urlPreview: {\n type: String,\n default: ''\n },\n isImgLoading: {\n type: Boolean,\n default: false\n },\n isContactsFindPending: {\n type: Boolean,\n default: false\n },\n size: {\n type: Number,\n default: 40,\n },\n },\n data() {\n return {\n host: '',\n fileName: '',\n timestamp: '',\n imgLoad: true,\n };\n },\n computed: {\n ...mapState('auth', ['accessToken']),\n\n // eslint-disable-next-line no-mixed-operators\n fontSize: vm => `${vm.size / 40.0 * 17}px`,\n initial: vm => (vm.user.firstName && vm.user.lastName ? (vm.user.firstName[0] + vm.user.lastName[0]) : '...'),\n imgSrcUrl: vm => {\n let url = null;\n if (vm.urlPreview) {\n url = `${vm.host}avatar/${vm.accessToken}/${encodeURIComponent(vm.urlPreview)}`;\n } else if (vm.user && vm.user.avatarUrl) {\n url = `${vm.host}avatar/${vm.accessToken}/${encodeURIComponent(vm.user.avatarUrl)}`;\n }\n return url;\n }\n },\n watch: {\n isImgLoading() {\n this.imgLoad = true;\n }\n },\n created() {\n this.host = process.env.VUE_APP_API_URL;\n this.fileName = _.get(this.user, 'ContactEmail', '') || _.get(this.user, '_id', '');\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Avatar.vue?vue&type=template&id=242e85c9&\"\nimport script from \"./Avatar.vue?vue&type=script&lang=js&\"\nexport * from \"./Avatar.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VAvatar,VImg,VProgressCircular})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartsDesignDataTable.vue?vue&type=style&index=0&id=212b5618&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panels',{attrs:{\"accordion\":\"\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',[_c('div',{staticClass:\"text-subtitle-2\"},[_vm._v(\" \"+_vm._s(_vm.$t(_vm._.get(_vm.partDesignData[0], 'value')))+\" \")])]),_c('v-expansion-panel-content',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',_vm._l((_vm.partDesignData.slice(1)),function(item){return _c('tr',{key:item.field},[_c('td',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"color\":\"#747474\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" \"+_vm._s(item.icon)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t(item.field))+\" \")],1),_c('td',{staticClass:\"text-truncate font-weight-medium\",staticStyle:{\"text-align\":\"right\"}},[_c('span',{staticClass:\"ml-3\",style:([{ color: _vm.getTextColor(item.value) }])},[_vm._v(\" \"+_vm._s((_vm.locale === 'en-US') || (item.valueCHS === '-') ? _vm.$t(item.value) : item.valueCHS)+\" \")])])])}),0)]},proxy:true}])})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-expansion-panels accordion>\n <v-expansion-panel>\n <v-expansion-panel-header>\n <div class=\"text-subtitle-2\">\n {{ $t(_.get(partDesignData[0], 'value')) }}\n </div>\n </v-expansion-panel-header>\n <v-expansion-panel-content>\n <v-card flat>\n <v-simple-table dense>\n <template v-slot:default>\n <tbody>\n <tr\n v-for=\"(item) in partDesignData.slice(1)\"\n :key=\"item.field\"\n >\n <td style=\"display: flex; align-items: center; color: #747474\">\n <v-icon small class=\"mr-2\" color=\"green\">\n {{ item.icon }}\n </v-icon>\n {{ $t(item.field) }}\n </td>\n <td class=\"text-truncate font-weight-medium\" style=\"text-align: right\">\n <span\n class=\"ml-3\"\n :style=\"[{ color: getTextColor(item.value) }]\"\n >\n {{ (locale === 'en-US') || (item.valueCHS === '-') ? $t(item.value) : item.valueCHS }}\n </span>\n </td>\n </tr>\n </tbody>\n </template>\n </v-simple-table>\n </v-card>\n </v-expansion-panel-content>\n </v-expansion-panel>\n </v-expansion-panels>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapState } from 'vuex';\n\nconst { CsiAnalysis } = models.api;\nexport default {\n name: 'ManufacturingProcessTable',\n props: {\n part: Object,\n },\n computed: {\n ...mapState('app', ['locale']),\n partDesignData() {\n let tableData = [];\n if (this.part) {\n tableData = _.get(CsiAnalysis.getFromStore(this.part.Item), 'data', []);\n }\n if (_.isEmpty(tableData)) {\n tableData = [\n { field: null, value: '3dSideViewer.manufacturingProcesses.title' },\n { field: '3dSideViewer.manufacturingProcesses.productType', value: '-' },\n { field: '3dSideViewer.manufacturingProcesses.laserCutting', value: '-' },\n { field: '3dSideViewer.manufacturingProcesses.deburring', value: '-' },\n { field: '3dSideViewer.manufacturingProcesses.threadChamfer', value: '-' },\n { field: '3dSideViewer.manufacturingProcesses.cncBending', value: '-' },\n { field: '3dSideViewer.manufacturingProcesses.surfaceFinish', value: '-' },\n ];\n } else {\n tableData = tableData.filter(datum => datum.Category === 'S2')\n .filter(datum => (datum.Description ? datum.Description.startsWith('T2') : ''))\n .sort((datum1, datum2) => +datum1.Rank - +datum2.Rank)\n .map(datum => ({ field: datum.Description.replace('T2.', ''), value: datum.Value || '-', valueCHS: datum.ValueCHS || '-' }));\n }\n let icons = [\n 'mdi-aspect-ratio',\n 'mdi-content-cut',\n 'mdi-inbox-arrow-down',\n 'mdi-record-circle',\n 'mdi-crop-free',\n 'mdi-filter-variant',\n 'mdi-flip-v mdi-chart-multiline',\n 'mdi-select-all',\n ];\n if (this.part.isTurningPart || this.part.Machine === 'turning') {\n icons = [\n 'mdi-aspect-ratio',\n 'mdi-vibrate',\n 'mdi-inbox-arrow-down',\n 'mdi-dots-horizontal',\n 'mdi-record-circle',\n 'mdi-record-circle',\n 'mdi-record-circle',\n 'mdi-record-circle',\n 'mdi-crop-free',\n 'mdi-ticket-confirmation',\n 'mdi-ticket-confirmation',\n 'mdi-filter-variant',\n 'mdi-select-all',\n ];\n }\n return tableData.map((row, index) => ({ ...{ icon: icons[index - 1] }, ...row }));\n },\n },\n methods: {\n getTextColor(value) {\n value = value.split('.').pop();\n switch (value) {\n case 'Pass':\n case 'Yes':\n return 'green';\n case 'Fail':\n case 'No':\n return 'red';\n default:\n return '';\n }\n }\n }\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManufacturingProcessTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManufacturingProcessTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ManufacturingProcessTable.vue?vue&type=template&id=92f076f2&\"\nimport script from \"./ManufacturingProcessTable.vue?vue&type=script&lang=js&\"\nexport * from \"./ManufacturingProcessTable.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"pa-1\",staticStyle:{\"height\":\"1000px !important\",\"width\":\"800px\"},attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"ml-4\"},[_c('span',{staticClass:\"d-flex align-center justify-center text-h6 mr-8\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.selectSpecs')))]),_vm._l((_vm.productOptions),function(productOption,index){return [(productOption.attributeTypes[0].fieldType === 'dropdown')?_c('v-col',{key:(\"dropdown-\" + (productOption.id)),attrs:{\"cols\":\"auto\"}},[_c('v-select',{staticStyle:{\"max-width\":\"120px\"},attrs:{\"label\":productOption[_vm.locale === 'cn' ? 'labelChs' : 'label' ],\"items\":_vm.filteredItems(index,_vm.productQuery),\"item-text\":_vm.locale === 'cn' ? 'textChs' : 'text',\"data-cy\":(\"drawing-dropdown-\" + (productOption.id)),\"attach\":\"\",\"dense\":\"\",\"item-value\":\"id\",\"outlined\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.optionVmodel[productOption.id]),callback:function ($$v) {_vm.$set(_vm.optionVmodel, productOption.id, $$v)},expression:\"optionVmodel[productOption.id]\"}})],1):(productOption.attributeTypes[0].fieldType === 'checkbox')?_c('v-col',{key:(\"drawing-checkbox-\" + (productOption.id)),staticClass:\"pl-0\"},[_c('v-checkbox',{attrs:{\"label\":productOption[_vm.locale === 'cn' ? 'labelChs' : 'label' ],\"true-value\":productOption.options[1].id,\"data-cy\":(\"checkbox-\" + (productOption.id)),\"false-value\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.optionVmodel[productOption.id]),callback:function ($$v) {_vm.$set(_vm.optionVmodel, productOption.id, $$v)},expression:\"optionVmodel[productOption.id]\"}})],1):_vm._e(),(productOption.attributeTypes[0].fieldType === 'readonly')?_c('v-col',{key:(\"plainText-\" + (productOption.id)),attrs:{\"data-cy\":(\"plainText-\" + (productOption.id))}},[_c('div',{staticClass:\"caption\",staticStyle:{\"color\":\"rgba(0,0,0,0.6)\"}},[_vm._v(\" \"+_vm._s(productOption[_vm.locale === 'cn' ? 'labelChs' : 'label'])+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.getReadOnlyProduct[_vm.locale === 'cn' ? 'textChs' : 'text'])+\" \")])]):_vm._e()]})],2),_c('v-row',[_c('v-data-table',{staticClass:\"my-4\",staticStyle:{\"width\":\"100%\"},attrs:{\"fixed-header\":\"\",\"height\":\"1000\",\"headers\":_vm.drawingTableHeaders,\"items\":_vm.filteredProduct,\"no-data-text\":_vm.$t('common.noDataAvailable'),\"loading-text\":_vm.$t('common.loadingItems'),\"hide-default-footer\":\"\",\"disable-pagination\":\"\"},scopedSlots:_vm._u([_vm._l((_vm.productOptionsId),function(productId){return {key:(\"item.\" + productId),fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',{key:productId},[_vm._v(\" \"+_vm._s(_vm.findTranslation(productId, item[productId]))+\" \")])]}}}),{key:\"item.download\",fn:function(item){return [_c('v-btn',{staticClass:\"my-1\",attrs:{\"text\":\"\",\"data-cy\":(\"2d-drawing-download-\" + _vm.productGroupKey),\"color\":\"primary\"},on:{\"click\":function($event){return _vm.downloadDrawingFiles('itemSpec2d', item.item.specFile2d, ((item.item._id) + \".pdf\"))}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-vector-square \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.2DDrawing'))+\" \")],1),_c('v-btn',{staticClass:\"my-1\",attrs:{\"data-cy\":(\"3d-drawing-download-\" + _vm.productGroupKey),\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.downloadDrawingFiles('itemSpec3d', item.item.specFile3d, ((item.item._id) + \".stp\"))}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-cube-outline \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.3DDrawing'))+\" \")],1)]}}],null,true)})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container fluid class=\"pa-1\" style=\"height: 1000px !important; width: 800px\">\n <v-row class=\"ml-4\">\n <span class=\"d-flex align-center justify-center text-h6 mr-8\"> {{ $t('views.productOption.selectSpecs') }}</span>\n <template v-for=\"(productOption, index) in productOptions\">\n <v-col\n v-if=\"productOption.attributeTypes[0].fieldType === 'dropdown'\"\n :key=\"`dropdown-${productOption.id}`\"\n cols=\"auto\"\n >\n <v-select\n v-model=\"optionVmodel[productOption.id]\"\n :label=\"productOption[locale === 'cn' ? 'labelChs' : 'label' ]\"\n :items=\"filteredItems(index,productQuery)\"\n :item-text=\"locale === 'cn' ? 'textChs' : 'text'\"\n style=\"max-width: 120px\"\n :data-cy=\"`drawing-dropdown-${productOption.id}`\"\n attach\n dense\n item-value=\"id\"\n outlined\n hide-details\n @click.stop\n />\n </v-col>\n <v-col\n v-else-if=\"productOption.attributeTypes[0].fieldType === 'checkbox'\"\n :key=\"`drawing-checkbox-${productOption.id}`\"\n class=\"pl-0\"\n >\n <v-checkbox\n v-model=\"optionVmodel[productOption.id]\"\n :label=\"productOption[locale === 'cn' ? 'labelChs' : 'label' ]\"\n :true-value=\"productOption.options[1].id\"\n :data-cy=\"`checkbox-${productOption.id}`\"\n false-value=\"\"\n hide-details\n @click.stop\n />\n </v-col>\n <v-col\n v-if=\"productOption.attributeTypes[0].fieldType === 'readonly'\"\n :key=\"`plainText-${productOption.id}`\"\n :data-cy=\"`plainText-${productOption.id}`\"\n >\n <div\n style=\"color:rgba(0,0,0,0.6);\"\n class=\"caption\"\n >\n {{ productOption[locale === 'cn' ? 'labelChs' : 'label'] }}\n </div>\n <div>\n {{\n getReadOnlyProduct[locale === 'cn' ? 'textChs' : 'text']\n }}\n </div>\n </v-col>\n </template>\n </v-row>\n <v-row>\n <v-data-table\n style=\"width: 100%\"\n fixed-header\n height=\"1000\"\n :headers=\"drawingTableHeaders\"\n :items=\"filteredProduct\"\n class=\"my-4\"\n :no-data-text=\"$t('common.noDataAvailable')\"\n :loading-text=\"$t('common.loadingItems')\"\n hide-default-footer\n disable-pagination\n >\n <template v-for=\"productId in productOptionsId\" v-slot:[`item.${productId}`]=\"{item}\">\n <span :key=\"productId\">\n {{ findTranslation(productId, item[productId]) }}\n </span>\n </template>\n\n <template #item.download=\"item\">\n <v-btn\n text\n :data-cy=\"`2d-drawing-download-${productGroupKey}`\"\n color=\"primary\"\n class=\"my-1\"\n @click=\"downloadDrawingFiles('itemSpec2d', item.item.specFile2d, `${item.item._id}.pdf`)\"\n >\n <v-icon left>\n mdi-vector-square\n </v-icon>\n {{ $t('views.productOption.2DDrawing') }}\n </v-btn>\n <v-btn\n :data-cy=\"`3d-drawing-download-${productGroupKey}`\"\n text\n color=\"primary\"\n class=\"my-1\"\n @click=\"downloadDrawingFiles('itemSpec3d', item.item.specFile3d, `${item.item._id}.stp`)\"\n >\n <v-icon left>\n mdi-cube-outline\n </v-icon>\n {{ $t('views.productOption.3DDrawing') }}\n </v-btn>\n </template>\n </v-data-table>\n </v-row>\n </v-container>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapActions, mapState } from 'vuex';\nimport { LEVEL } from '@/utils/log';\n\nexport default {\n name: 'HardwareDrawingTable',\n\n props: {\n productGroupId: {\n type: String,\n default: ''\n },\n productGroupKey: {\n type: String,\n default: ''\n },\n productOptions: {\n type: Array,\n default: () => []\n },\n productQuery: {\n type: Object,\n default: () => {\n },\n },\n productSelected: {\n type: Object,\n default: () => {\n }\n }\n },\n data() {\n return {\n isDrawingsDialogOpen: false,\n selectedOptions: {},\n isDownloadPending: false\n };\n },\n\n computed: {\n ...mapState('app', ['locale']),\n ...mapState('auth', ['accessToken']),\n\n HardwareProduct: () => models.api.HardwareProduct,\n\n drawingTableHeaders: vm => {\n const optionHeader = vm.productOptions.map(productOption => ({\n text: vm.locale === 'cn' ? productOption.labelChs : productOption.label,\n value: productOption.id,\n align: 'center',\n }));\n optionHeader.push({ text: vm.$t('common.download'), value: 'download' });\n return optionHeader;\n },\n\n productOptionsId: vm => {\n if (vm.productOptions.length === 0) {\n return [];\n }\n return vm.productOptions.map(option => option.id);\n },\n\n filteredItems: vm => (index, pquery) => {\n const currentColumn = vm.productOptions[index];\n\n if (!currentColumn) {\n return [];\n }\n // Please figure what it does, it's cool !;\n const query = {\n query: {\n ..._.get(pquery, 'query', {}),\n }\n };\n const productValue = vm.HardwareProduct.findInStore(query).data;\n\n if (productValue.length === 0) {\n return [];\n }\n\n const res = productValue.map(o => (o[currentColumn.id]));\n if (res.length === 0) {\n return [];\n }\n\n return [{\n text: 'All',\n textChs: 'AllChs',\n id: ''\n }, ...res.map(value => currentColumn.options.find(option => option.id === value)) || []];\n },\n\n filteredProduct: vm => {\n const query = {\n query: {\n ...vm.productQuery.query,\n ...vm.filterQuery\n }\n };\n return vm.HardwareProduct.findInStore(query).data;\n },\n\n productReadOnlyOptions: vm => (vm.productOptions ? vm.productOptions\n .filter(option => option.attributeTypes[0].fieldType === 'readonly') : []),\n\n productCheckBoxOptions: vm => (vm.productOptions ? vm.productOptions\n .filter(option => option.attributeTypes[0].fieldType === 'checkbox') : []),\n\n getReadOnlyProduct: vm => {\n const product = vm.HardwareProduct.findInStore({\n query: {\n $sort: vm.productQuery.query.$sort,\n [vm.productGroupKey]: vm.productGroupId\n }\n }).data[0];\n if (!product) {\n return {};\n }\n\n return vm.productReadOnlyOptions[0].options.find(value => value.id === product[vm.productReadOnlyOptions[0].id]) || {};\n },\n\n optionVmodel: vm => {\n // Here we setup the default values\n if (vm.HardwareProduct.store.state['hardware-products'].ids.length > 0) {\n vm.productOptions.forEach(fil => {\n if (!vm.selectedOptions[fil.id]) {\n if (fil.attributeTypes[0].fieldType === 'readonly') {\n vm.$set(vm.selectedOptions, fil.id, vm.filteredProduct[0][fil.id]);\n } else {\n vm.$set(vm.selectedOptions, fil.id, '');\n }\n }\n });\n }\n return vm.selectedOptions;\n },\n // eslint-disable-next-line no-unused-vars\n filterQuery: vm => Object.fromEntries(Object.entries(vm.selectedOptions).filter(([_, v]) => v !== '')),\n\n },\n\n watch: {\n productSelected: {\n handler() {\n if (this.productSelected) {\n this.productOptions.forEach(product => {\n this.$set(this.selectedOptions, product.id, this.productSelected[product.id]);\n });\n }\n },\n // force eager callback execution\n immediate: true\n }\n },\n\n methods: {\n ...mapActions('app', ['pushSnack']),\n async downloadDrawingFiles(fileType, fileUrl, fileName) {\n const downloadUrl = `${process.env.VUE_APP_API_URL}downloadDrawingFiles/${encodeURIComponent(fileUrl)}/${fileType}`;\n this.isDownloadPending = true;\n\n try {\n const response = await fetch(\n downloadUrl, {\n method: 'GET',\n headers: {\n Authorization: this.accessToken,\n },\n }\n );\n\n if (!response.ok) {\n throw response.statusText;\n }\n const blob = await response.blob();\n\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n a.remove();\n this.isDownloadPending = false;\n } catch (e) {\n this.pushSnack({\n snack: { message: e },\n level: LEVEL.ERROR,\n });\n }\n },\n\n findTranslation(productId, option) {\n if (!this.productOptions) {\n return '';\n }\n const optionValue = this.productOptions.filter(productOption => productOption.id === productId)[0].options.filter(opt => opt.id === option);\n\n if (!optionValue.length) {\n return '';\n }\n return optionValue[0][[this.locale === 'cn' ? 'textChs' : 'text']];\n }\n }\n};\n</script>\n\n<style scoped>\n\n>>> .v-skeleton-loader__image {\n height: 600px !important;\n}\n\n.v-data-table > .v-data-table__wrapper > table > tbody {\n padding-left: 55px !important;\n width: 50px\n}\n\n::v-deep .warningStyle {\n background-color: #fbe9ec !important;\n}\n\n.warningFontColor {\n color: #B71C1C;\n}\n\n::v-deep .v-data-table__expand-icon--active {\n color: green;\n transform: rotate(90deg) !important;\n}\n\n::v-deep .v-icon.notranslate.v-data-table__expand-icon {\n color: green;\n margin: 0 10px;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > thead > tr > th {\n background-color: #beebc9;\n padding: 0 0 0 15px !important;\n height: 25px;\n font-size: 12px;\n}\n\n::v-deep thead th:first-child {\n border-radius: 5px 0 0 0;\n}\n\n::v-deep thead th:last-child {\n border-radius: 0 5px 0 0;\n}\n\n.active {\n background-color: green !important;\n color: white !important;\n opacity: 1;\n}\n\n.active-filter {\n background-color: #f5f5f5 !important;\n color: green !important;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > tbody > tr:first-child:hover > td:first-child {\n border-top-left-radius: 0 !important;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > tbody > tr:first-child:hover > td:last-child {\n border-top-right-radius: 0 !important;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > tbody > tr.v-data-table__expanded > td {\n border-bottom: none !important;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper tbody tr.v-data-table__expanded {\n background-color: #fafffb !important;\n}\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareDrawingTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareDrawingTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HardwareDrawingTable.vue?vue&type=template&id=fd018ce0&scoped=true&\"\nimport script from \"./HardwareDrawingTable.vue?vue&type=script&lang=js&\"\nexport * from \"./HardwareDrawingTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HardwareDrawingTable.vue?vue&type=style&index=0&id=fd018ce0&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 \"fd018ce0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VCheckbox,VCol,VContainer,VDataTable,VIcon,VRow,VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height\",attrs:{\"data-cy\":\"no-content\"}},[_c('v-row',{attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('v-img',{staticClass:\"mb-8\",attrs:{\"src\":'/img/empty.png',\"width\":\"573\",\"height\":\"328\"}}),_c('span',{staticClass:\"title font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),_c('span',{staticClass:\"subtitle-1\"},[_vm._v(\" \"+_vm._s(_vm.description)+\" \")])],1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container class=\"fill-height\" data-cy=\"no-content\">\n <v-row justify=\"center\" align=\"center\">\n <v-col cols=\"auto\">\n <div class=\"d-flex flex-column align-center\">\n <v-img\n :src=\"'/img/empty.png'\"\n width=\"573\"\n height=\"328\"\n class=\"mb-8\"\n />\n\n <span class=\"title font-weight-bold\">\n {{ title }}\n </span>\n\n <span class=\"subtitle-1\">\n {{ description }}\n </span>\n </div>\n </v-col>\n </v-row>\n </v-container>\n</template>\n\n<script>\nexport default {\n name: 'NoContent',\n\n props: {\n title: {\n type: String,\n default: 'No content',\n },\n\n description: {\n type: String,\n default: 'This page is empty',\n },\n },\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NoContent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NoContent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NoContent.vue?vue&type=template&id=70efcbb4&scoped=true&\"\nimport script from \"./NoContent.vue?vue&type=script&lang=js&\"\nexport * from \"./NoContent.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 \"70efcbb4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VImg,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"filter-switch-group\"},[_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.section)+\" \")]),_vm._l((_vm.$attrs.options),function(option,i){return _c('v-list-item',{key:i,attrs:{\"dense\":\"\"}},[_c('v-list-item-action',[_c('v-switch',{attrs:{\"value\":option},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(option)+\" \")])],1)],1)})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"filter-switch-group\">\n <v-subheader>\n {{ section }}\n </v-subheader>\n\n <v-list-item\n v-for=\"(option, i) in $attrs.options\"\n :key=\"i\"\n dense\n >\n <v-list-item-action>\n <v-switch\n v-model=\"localValue\"\n :value=\"option\"\n />\n </v-list-item-action>\n <v-list-item-content>\n <v-list-item-title>\n {{ option }}\n </v-list-item-title>\n </v-list-item-content>\n </v-list-item>\n </div>\n</template>\n\n<script>\nimport FilterMixin from '../../../mixins/filter';\n\nexport default {\n name: 'SwitchGroup',\n\n mixins: [\n FilterMixin,\n ],\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchGroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchGroup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SwitchGroup.vue?vue&type=template&id=712d30d8&scoped=true&\"\nimport script from \"./SwitchGroup.vue?vue&type=script&lang=js&\"\nexport * from \"./SwitchGroup.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 \"712d30d8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\ninstallComponents(component, {VListItem,VListItemAction,VListItemContent,VListItemTitle,VSubheader,VSwitch})\n","import { mapActions } from 'vuex';\nimport { LEVEL } from '../utils/log';\n\nexport default {\n methods: {\n ...mapActions('app', ['pushSnack']),\n\n /**\n * Update an entity (data) and update tab content.\n *\n * @param {Object} tab Tab to update.\n * @param {BaseModel} data FeathersVuex model to update.\n */\n async updateEntity(tab, data) {\n const field = _.isEmpty(data._id) ? 'create' : 'update';\n try {\n const newEntity = await data.save();\n if (tab) {\n tab.entity = newEntity;\n }\n this.pushSnack({\n snack: { message: this.$t(`common.success.${field}`) },\n level: LEVEL.SUCCESS,\n });\n } catch (e) {\n console.error(e);\n this.pushSnack({\n snack: { message: this.$t(`${this.$t(`common.error.${field}`)}\\n<i>${e.message}</i>`) },\n level: LEVEL.ERROR,\n });\n }\n },\n }\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductDrawingTable.vue?vue&type=style&index=0&id=1e25196b&scoped=true&lang=css&\"","export default {\n props: {\n value: { type: Object, default: () => {} },\n },\n\n data() {\n return {\n data: {},\n };\n },\n\n watch: {\n value: {\n deep: true,\n\n handler(newValue) {\n this.data = _.clone(newValue);\n },\n },\n\n data: {\n deep: true,\n\n handler(newValue) {\n if (!_.isEqual(this.value, newValue)) {\n this.$emit('input', newValue);\n }\n },\n },\n },\n\n mounted() {\n this.data = _.clone(this.value);\n },\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"inline\"}},[[_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.display=true;}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"25\"}},[_vm._v(\" mdi-file-cad \")]),_vm._v(\" Upload Files \")],1)],(_vm.display)?_c('core-dialog',{attrs:{\"type\":\"custom\",\"width\":\"1000px\",\"eager\":true},on:{\"click:ok\":function($event){_vm.display = false;},\"click:cancel\":function($event){_vm.display = false;}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Upload Files \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"d-flex align-start flex-row\"},_vm._l((_vm.uploadedFiles),function(file){return _c('p',{key:file.name,staticClass:\"mx-1 pa-2\",staticStyle:{\"background-color\":\"#dee0e4\",\"display\":\"inline\"}},[_c('span',[_c('a',{style:(file.upload && file.status === 'uploading' ? 'pointer-events: none; opacity: 0.5;' : ''),attrs:{\"href\":_vm.generateUrl(file),\"target\":\"_blank\"}},[_c('v-icon',[_vm._v(\"mdi-open-in-new\")])],1)]),_c('span',{staticStyle:{\"vertical-align\":\"bottom\"}},[_vm._v(_vm._s(file.name))]),(file.status === 'uploading')?_c('v-progress-circular',{staticClass:\"ml-2\",staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"indeterminate\":\"\",\"color\":\"primary\",\"size\":\"20\",\"width\":\"2\"}}):(file.status === 'success')?_c('span',[_c('v-icon',{attrs:{\"color\":\"green\"}},[_vm._v(\" mdi-check-circle-outline \")])],1):(file.status === 'error')?_c('span',[_c('v-icon',{attrs:{\"color\":\"red\"}},[_vm._v(\" mdi-close-circle-outline \")])],1):_vm._e()],1)}),0),_c('div',{ref:\"myDialog\",staticClass:\" text-center\"},[_c('v-card',{staticClass:\"mt-5\",staticStyle:{\"border\":\"dashed #D7D7D7 2px\",\"background-color\":\"#F1FDF3\",\"min-width\":\"905px\",\"max-width\":\"1000px\"},attrs:{\"height\":\"150\",\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"d-flex flex-column justify-space-between align-center\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',{attrs:{\"color\":\"green\",\"size\":\"60\"}},[_vm._v(\" mdi-cloud-upload-outline \")]),_c('span',{staticClass:\"headline mx-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.dragFilesToUpload'))+\" \")]),_c('v-btn',{staticStyle:{\"background-color\":\"#FFF\"},attrs:{\"id\":\"dropzone-click-target-stl\",\"depressed\":\"\",\"text\":\"\",\"outlined\":\"\",\"color\":\"success\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.browse'))+\" \")])],1),_c('div',{staticClass:\"d-flex body-2\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" File Supported: Any \")])])],1)],1)]},proxy:true}],null,false,87219919),model:{value:(_vm.display),callback:function ($$v) {_vm.display=$$v},expression:\"display\"}}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div style=\"display: inline\">\n <template>\n <v-btn\n text\n small\n color=\"primary\"\n @click=\"display=true;\"\n >\n <v-icon left size=\"25\">\n mdi-file-cad\n </v-icon>\n Upload Files\n </v-btn>\n </template>\n\n <core-dialog\n v-if=\"display\"\n v-model=\"display\"\n type=\"custom\"\n width=\"1000px\"\n :eager=\"true\"\n @click:ok=\"display = false;\"\n @click:cancel=\"display = false;\"\n >\n <template #title>\n Upload Files\n </template>\n <template #content>\n <div class=\"d-flex align-start flex-row\">\n <p\n v-for=\"file in uploadedFiles\"\n :key=\"file.name\"\n class=\"mx-1 pa-2\"\n style=\"background-color: #dee0e4; display: inline\"\n >\n <span>\n <a\n :href=\"generateUrl(file)\"\n target=\"_blank\"\n :style=\"file.upload && file.status === 'uploading' ? 'pointer-events: none; opacity: 0.5;' : ''\"\n >\n <v-icon>mdi-open-in-new</v-icon>\n </a>\n </span>\n <span style=\"vertical-align: bottom\">{{ file.name }}</span>\n <v-progress-circular\n v-if=\"file.status === 'uploading'\"\n indeterminate\n color=\"primary\"\n size=\"20\"\n width=\"2\"\n class=\"ml-2\"\n style=\"vertical-align: middle\"\n />\n <span v-else-if=\"file.status === 'success'\">\n <v-icon color=\"green\">\n mdi-check-circle-outline\n </v-icon>\n </span>\n <span v-else-if=\"file.status === 'error'\">\n <v-icon color=\"red\">\n mdi-close-circle-outline\n </v-icon>\n </span>\n </p>\n </div>\n <div ref=\"myDialog\" class=\" text-center\">\n <v-card\n class=\"mt-5\"\n height=\"150\"\n flat\n style=\"border: dashed #D7D7D7 2px;\n background-color: #F1FDF3;\n min-width: 905px; max-width: 1000px;\"\n >\n <v-card-text class=\"d-flex flex-column justify-space-between align-center\" style=\"height: 100%\">\n <div class=\"d-flex align-center\">\n <v-icon color=\"green\" size=\"60\">\n mdi-cloud-upload-outline\n </v-icon>\n <span class=\"headline mx-4\">\n {{ $t('views.instantQuote.dragFilesToUpload') }}\n </span>\n <v-btn\n id=\"dropzone-click-target-stl\"\n depressed\n text\n outlined\n color=\"success\"\n style=\"background-color: #FFF\"\n >\n {{ $t('views.instantQuote.browse') }}\n </v-btn>\n </div>\n <div class=\"d-flex body-2\" style=\"color:#4B4B4B\">\n File Supported: Any\n </div>\n </v-card-text>\n </v-card>\n </div>\n </template>\n </core-dialog>\n </div>\n</template>\n\n<script>\nimport Dropzone from 'dropzone';\nimport 'dropzone/dist/dropzone.css';\nimport { mapState } from 'vuex';\nimport { v4 as uuidv4 } from 'uuid';\n\nexport default {\n name: 'DrawingEngineFilesUpload',\n props: {\n internalProduct: Object,\n },\n data() {\n return {\n myDropZone: null,\n display: false,\n uploadedFiles: [],\n };\n },\n computed: {\n ...mapState('auth', ['accessToken']),\n dropzoneOptions: vm => ({\n url: `${process.env.VUE_APP_API_URL}upload?uploadToCsi=true`,\n paramName: 'file',\n headers: {\n Authorization: vm.accessToken,\n },\n thumbnailWidth: 150,\n maxFilesize: 20,\n timeout: 9999999,\n maxFiles: 10,\n parallelUploads: 1,\n acceptedFiles: null,\n dictDefaultMessage: 'dropZone.dictDefaultMessage',\n dictFallbackMessage: 'dropZone.dictFallbackMessage',\n dictFallbackText: 'dropZone.dictFallbackText',\n dictFileTooBig: 'dropZone.dictFileTooBig',\n dictInvalidFileType: 'dropZone.dictInvalidFileType',\n dictResponseError: 'dropZone.dictResponseError',\n dictCancelUpload: 'dropZone.dictCancelUpload',\n dictCancelUploadConfirmation: 'dropZone.dictCancelUploadConfirmation',\n dictRemoveFile: 'dropZone.dictRemoveFile',\n dictMaxFilesExceeded: 'dropZone.dictMaxFilesExceeded',\n clickable: '#dropzone-click-target-stl',\n previewTemplate: vm.template(),\n renameFile: file => `${vm.internalProduct.DrawingRowPointer}-Drafter-${file.name}`,\n init() {\n this.on('error', async file => {\n const existingFileIndex = vm.uploadedFiles.findIndex(f => f.upload.uuid === file.upload.uuid);\n if (existingFileIndex >= 0) {\n vm.uploadedFiles.splice(existingFileIndex, 1, file);\n }\n });\n this.on('success', async file => {\n const existingFileIndex = vm.uploadedFiles.findIndex(f => f.upload.uuid === file.upload.uuid);\n if (existingFileIndex >= 0) {\n vm.uploadedFiles.splice(existingFileIndex, 1, file);\n }\n });\n\n this.on('sending', async (file, xhr, formData) => {\n formData.append('rowPointer', vm.internalProduct.DrawingRowPointer);\n formData.append('desc', 'CustomerDrawings');\n formData.append('ext', _.last(file.name.split('.')));\n\n const existingFileIndex = vm.uploadedFiles.findIndex(f => f.upload.uuid === file.upload.uuid);\n if (existingFileIndex >= 0) {\n vm.uploadedFiles.splice(existingFileIndex, 1, file);\n }\n });\n\n this.on('addedfile', async file => {\n vm.uploadedFiles.push(file);\n });\n }\n }),\n },\n watch: {\n display(newValue) {\n if (newValue) {\n setTimeout(() => {\n this.myDropZone = new Dropzone(this.$refs.myDialog, this.dropzoneOptions);\n }, 800);\n } else {\n this.myDropZone = null;\n }\n },\n },\n methods: {\n getNewUuid() {\n return uuidv4();\n },\n generateUrl(file) {\n const host = process.env.VUE_APP_API_URL;\n return `${host}uploads/${file.upload.filename}/${this.accessToken}/<item>/File/${file.name}`;\n },\n template() {\n return `<div class=\"dz-preview dz-file-preview\" style=\"display: none;\">\n <div class=\"dz-details\">\n <div class=\"dz-filename\"><span data-dz-name></span></div>\n <div class=\"dz-size\" data-dz-size></div>\n <img data-dz-thumbnail />\n </div>\n <div class=\"dz-progress\"><span class=\"dz-upload\" data-dz-uploadprogress></span></div>\n <div class=\"dz-success-mark\"><span></span></div>\n <div class=\"dz-error-mark\"><span></span></div>\n <div class=\"dz-error-message\"><span data-dz-errormessage></span></div>\n </div>\n `;\n }\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawingEngineFilesUpload.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawingEngineFilesUpload.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DrawingEngineFilesUpload.vue?vue&type=template&id=78a88a06&\"\nimport script from \"./DrawingEngineFilesUpload.vue?vue&type=script&lang=js&\"\nexport * from \"./DrawingEngineFilesUpload.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VCard,VCardText,VIcon,VProgressCircular})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"filter-range-slider\"},[_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.section)+\" \")]),_c('v-list-item',{attrs:{\"dense\":\"\"}},[_c('v-list-item-content',{staticClass:\"pt-10 px-4\"},[_c('v-range-slider',{attrs:{\"min\":_vm.$attrs.min,\"max\":_vm.$attrs.max,\"thumb-label\":true},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"filter-range-slider\">\n <v-subheader>\n {{ section }}\n </v-subheader>\n\n <v-list-item dense>\n <v-list-item-content class=\"pt-10 px-4\">\n <v-range-slider\n v-model=\"localValue\"\n :min=\"$attrs.min\"\n :max=\"$attrs.max\"\n :thumb-label=\"true\"\n />\n </v-list-item-content>\n </v-list-item>\n </div>\n</template>\n\n<script>\nimport FilterMixin from '../../../mixins/filter';\n\nexport default {\n name: 'RangeSlider',\n\n mixins: [\n FilterMixin,\n ],\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeSlider.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeSlider.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RangeSlider.vue?vue&type=template&id=6cef3a44&scoped=true&\"\nimport script from \"./RangeSlider.vue?vue&type=script&lang=js&\"\nexport * from \"./RangeSlider.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 \"6cef3a44\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VRangeSlider } from 'vuetify/lib/components/VRangeSlider';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VListItem,VListItemContent,VRangeSlider,VSubheader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.showBanner)?_c('v-card',{staticStyle:{\"background-color\":\"#616161\"},attrs:{\"rounded\":\"\",\"width\":\"95%\",\"min-width\":\"1118\",\"height\":\"101px\",\"color\":\"#F9F9F9\",\"outlined\":\"\"}},[_c('v-card-text',{staticStyle:{\"color\":\"#FFFFFF\"}},[_c('v-row',{attrs:{\"clas\":\"d-flex\"}},[_c('img',{staticClass:\"mt-n8 ml-1\",attrs:{\"src\":\"/img/welcomeScreen/icon-referral-speaker.svg\"}}),_c('div',{staticClass:\"ml-4 mt-3 text-h4 font-weight-bold text-uppercase\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.tenPercentOff'))+\" \")]),_c('v-col',{staticStyle:{\"max-width\":\"230px\"}},[_c('v-row',[_c('div',{staticClass:\"mt-n3 ml-4 text-h6 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.forNewCustomer'))+\" \")])]),_c('v-row',[_c('div',{staticClass:\"ml-4 text-h6 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.onInitialPurchase'))+\" \")])])],1),_c('v-col',{staticStyle:{\"max-width\":\"100px\"}},[_c('v-row',{staticClass:\"mt-n2\"},[_c('div',{staticClass:\"ml-4 text-body-2 font-weight-bold\",staticStyle:{\"color\":\"#C5FDCB\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.promotion'))+\" \")])]),_c('v-row',[_c('div',{staticClass:\"ml-4 text-body-2 font-weight-bold\",staticStyle:{\"color\":\"#C5FDCB\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.endingIn'))+\" \")])])],1),_c('v-col',{staticClass:\"pa-0\",staticStyle:{\"max-width\":\"260px\"}},[_c('v-row',{staticClass:\"ml-2\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticStyle:{\"max-width\":\"60px\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-sheet',{attrs:{\"elevation\":\"1\",\"height\":\"50\",\"rounded\":\"\",\"shaped\":\"\",\"width\":\"47\",\"color\":\"#323232\"}},[_c('div',{staticClass:\"text-h6 font-weight-bold pt-2 pl-3\",staticStyle:{\"color\":\"#FFFFFF\"}},[_vm._v(\" \"+_vm._s(_vm.remainingTime.days)+\" \")])])],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('span',{staticClass:\"text-caption ml-2 font-weight-bold\",staticStyle:{\"color\":\"#C5FDCB\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.days'))+\" \")])])],1),_c('v-col',{staticStyle:{\"max-width\":\"60px\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-sheet',{attrs:{\"elevation\":\"1\",\"height\":\"50\",\"rounded\":\"\",\"shaped\":\"\",\"width\":\"47\",\"color\":\"#323232\"}},[_c('div',{staticClass:\"text-h6 font-weight-bold pt-2 pl-3\",staticStyle:{\"color\":\"#FFFFFF\"}},[_vm._v(\" \"+_vm._s(_vm.remainingTime.hours)+\" \")])])],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('span',{staticClass:\"text-caption ml-2 font-weight-bold\",staticStyle:{\"color\":\"#C5FDCB\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.hours'))+\" \")])])],1),_c('v-col',{staticStyle:{\"max-width\":\"60px\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-sheet',{attrs:{\"elevation\":\"1\",\"height\":\"50\",\"rounded\":\"\",\"shaped\":\"\",\"width\":\"47\",\"color\":\"#323232\"}},[_c('div',{staticClass:\"text-h6 font-weight-bold pt-2 pl-3\",staticStyle:{\"color\":\"#FFFFFF\"}},[_vm._v(\" \"+_vm._s(_vm.remainingTime.minutes)+\" \")])])],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('span',{staticClass:\"text-caption font-weight-bold\",staticStyle:{\"color\":\"#C5FDCB\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.minutes'))+\" \")])])],1),_c('v-col',{staticStyle:{\"max-width\":\"60px\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-sheet',{attrs:{\"elevation\":\"1\",\"height\":\"50\",\"rounded\":\"\",\"shaped\":\"\",\"width\":\"47\",\"color\":\"#323232\"}},[_c('div',{staticClass:\"text-h6 font-weight-bold pt-2 pl-3\",staticStyle:{\"color\":\"#FFFFFF\"}},[_vm._v(\" \"+_vm._s(_vm.remainingTime.seconds)+\" \")])])],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('span',{staticClass:\"text-caption font-weight-bold\",staticStyle:{\"color\":\"#C5FDCB\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.seconds'))+\" \")])])],1)],1)],1),_c('div',{staticClass:\"d-flex flex-column ml-6\"},[_c('v-btn',{staticClass:\"mt-2\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.onActionButtonClicked}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.getYourDiscount'))+\" \")]),_c('span',{staticClass:\"mt-1 text-caption text-decoration-underline font-weight-bold d-flex justify-center\"},[_c('a',{staticStyle:{\"color\":\"#C5FDCB\"},attrs:{\"href\":\"https://www.komacut.com/legal/discount-on-first-order/\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.viewTerms'))+\" \")])])],1)],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-card\n v-if=\"showBanner\"\n rounded\n width=\"95%\"\n min-width=\"1118\"\n height=\"101px\"\n color=\"#F9F9F9\"\n outlined\n style=\"background-color: #616161\"\n >\n <v-card-text style=\"color: #FFFFFF\">\n <v-row clas=\"d-flex\">\n <img\n class=\"mt-n8 ml-1\"\n src=\"/img/welcomeScreen/icon-referral-speaker.svg\"\n >\n <div class=\"ml-4 mt-3 text-h4 font-weight-bold text-uppercase\">\n {{ $t('views.dashboard.promotionCountdownBanner.tenPercentOff') }}\n </div>\n <v-col style=\"max-width: 230px;\">\n <v-row>\n <div class=\"mt-n3 ml-4 text-h6 font-weight-bold\">\n {{ $t('views.dashboard.promotionCountdownBanner.forNewCustomer') }}\n </div>\n </v-row>\n <v-row>\n <div class=\"ml-4 text-h6 font-weight-bold\">\n {{ $t('views.dashboard.promotionCountdownBanner.onInitialPurchase') }}\n </div>\n </v-row>\n </v-col>\n <v-col style=\"max-width: 100px;\">\n <v-row class=\"mt-n2\">\n <div class=\"ml-4 text-body-2 font-weight-bold\" style=\"color: #C5FDCB\">\n {{ $t('views.dashboard.promotionCountdownBanner.promotion') }}\n </div>\n </v-row>\n <v-row>\n <div class=\"ml-4 text-body-2 font-weight-bold\" style=\"color: #C5FDCB\">\n {{ $t('views.dashboard.promotionCountdownBanner.endingIn') }}\n </div>\n </v-row>\n </v-col>\n <v-col class=\"pa-0\" style=\"max-width: 260px;\">\n <v-row class=\"ml-2\" no-gutters>\n <v-col style=\"max-width: 60px;\">\n <v-row no-gutters>\n <v-sheet\n elevation=\"1\"\n height=\"50\"\n rounded\n shaped\n width=\"47\"\n color=\"#323232\"\n >\n <div\n class=\"text-h6 font-weight-bold pt-2 pl-3\"\n style=\"color: #FFFFFF;\"\n >\n {{ remainingTime.days }}\n </div>\n </v-sheet>\n </v-row>\n <v-row no-gutters>\n <span\n class=\"text-caption ml-2 font-weight-bold\"\n style=\"color: #C5FDCB\"\n >\n {{ $t('views.dashboard.promotionCountdownBanner.days') }}\n </span>\n </v-row>\n </v-col>\n <v-col style=\"max-width: 60px;\">\n <v-row no-gutters>\n <v-sheet\n elevation=\"1\"\n height=\"50\"\n rounded\n shaped\n width=\"47\"\n color=\"#323232\"\n >\n <div\n class=\"text-h6 font-weight-bold pt-2 pl-3\"\n style=\"color: #FFFFFF;\"\n >\n {{ remainingTime.hours }}\n </div>\n </v-sheet>\n </v-row>\n <v-row no-gutters>\n <span\n class=\"text-caption ml-2 font-weight-bold\"\n style=\"color: #C5FDCB\"\n >\n {{ $t('views.dashboard.promotionCountdownBanner.hours') }}\n </span>\n </v-row>\n </v-col>\n <v-col style=\"max-width: 60px;\">\n <v-row no-gutters>\n <v-sheet\n elevation=\"1\"\n height=\"50\"\n rounded\n shaped\n width=\"47\"\n color=\"#323232\"\n >\n <div\n class=\"text-h6 font-weight-bold pt-2 pl-3\"\n style=\"color: #FFFFFF;\"\n >\n {{ remainingTime.minutes }}\n </div>\n </v-sheet>\n </v-row>\n <v-row no-gutters>\n <span\n class=\"text-caption font-weight-bold\"\n style=\"color: #C5FDCB\"\n >\n {{ $t('views.dashboard.promotionCountdownBanner.minutes') }}\n </span>\n </v-row>\n </v-col>\n <v-col style=\"max-width: 60px;\">\n <v-row no-gutters>\n <v-sheet\n elevation=\"1\"\n height=\"50\"\n rounded\n shaped\n width=\"47\"\n color=\"#323232\"\n >\n <div\n class=\"text-h6 font-weight-bold pt-2 pl-3\"\n style=\"color: #FFFFFF;\"\n >\n {{ remainingTime.seconds }}\n </div>\n </v-sheet>\n </v-row>\n <v-row no-gutters>\n <span\n class=\"text-caption font-weight-bold\"\n style=\"color: #C5FDCB\"\n >\n {{ $t('views.dashboard.promotionCountdownBanner.seconds') }}\n </span>\n </v-row>\n </v-col>\n </v-row>\n </v-col>\n <div class=\"d-flex flex-column ml-6\">\n <v-btn\n class=\"mt-2\"\n color=\"primary\"\n @click=\"onActionButtonClicked\"\n >\n {{ $t('views.dashboard.promotionCountdownBanner.getYourDiscount') }}\n </v-btn>\n <span class=\"mt-1 text-caption text-decoration-underline font-weight-bold d-flex justify-center\">\n <a href=\"https://www.komacut.com/legal/discount-on-first-order/\" target=\"_blank\" style=\"color: #C5FDCB\">\n {{ $t('views.dashboard.promotionCountdownBanner.viewTerms') }}\n </a>\n </span>\n </div>\n </v-row>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\n\nexport default {\n name: 'WelcomeScreenPromotionCountdownBanner',\n props: {\n expiryTime: { type: String },\n },\n data() {\n return {\n showBanner: false,\n targetTime: new Date(),\n remainingTime: {\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0,\n },\n };\n },\n computed: {\n ...mapGetters('temp-rfqs', { getTempRfqIdInProgress: 'getTempRfqIdInProgress' }),\n },\n mounted() {\n this.targetTime = moment(this.expiryTime, 'YYYYMMDD HH:mm:ss.SSS').toDate();\n\n this.updateCountdown();\n // Update the countdown every second\n this.countdownInterval = setInterval(this.updateCountdown, 1000);\n },\n beforeDestroy() {\n clearInterval(this.countdownInterval);\n },\n methods: {\n updateCountdown() {\n const now = new Date();\n const timeDiff = this.targetTime - now;\n\n if (timeDiff > 0) {\n this.remainingTime.days = Math.floor(timeDiff / (24 * 3600000));\n this.remainingTime.hours = Math.floor((timeDiff % (24 * 3600000)) / 3600000);\n this.remainingTime.minutes = Math.floor((timeDiff % 3600000) / 60000);\n this.remainingTime.seconds = Math.floor((timeDiff % 60000) / 1000);\n if (!this.showBanner) {\n this.showBanner = true;\n }\n } else {\n this.showBanner = false;\n // Countdown has ended, you can add logic here\n clearInterval(this.countdownInterval);\n }\n },\n onActionButtonClicked() {\n this.$router.push(`/rfqs/${this.getTempRfqIdInProgress}`);\n },\n },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenPromotionCountdownBanner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenPromotionCountdownBanner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WelcomeScreenPromotionCountdownBanner.vue?vue&type=template&id=56a0f8b2&scoped=true&\"\nimport script from \"./WelcomeScreenPromotionCountdownBanner.vue?vue&type=script&lang=js&\"\nexport * from \"./WelcomeScreenPromotionCountdownBanner.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 \"56a0f8b2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VRow,VSheet})\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=1&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-snackbar',_vm._b({class:[{ 'offset-app-bar': !['SignUp', 'Login', 'Confirmation', 'OnBoarding', 'ForgottenPassword', 'ResetPassword', 'DrawingApp', 'ThreeDPackagingTool'].includes(_vm.$route.name) }],staticStyle:{\"z-index\":\"99999\"},attrs:{\"value\":_vm.isOpen,\"color\":_vm.type,\"multi-line\":_vm.multi,\"timeout\":-1,\"app\":\"\",\"top\":\"\"}},'v-snackbar',_vm.$attrs,false),[_c('div',{staticClass:\"d-flex align-center\",attrs:{\"data-cy\":\"snack-message\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icon)+\" \")]),(_vm.isOdooError)?[_vm._v(\" \"+_vm._s(_vm.message)+\" \")]:[_vm._v(\" \"+_vm._s(_vm.$t(_vm.message, {Param1: _vm.param1, Param2: _vm.param2}))+\" \")]],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <!-- 100px offset to account for the sidebar menu, which is 200px (so half) -->\n <v-snackbar\n :value=\"isOpen\"\n v-bind=\"$attrs\"\n :color=\"type\"\n :multi-line=\"multi\"\n :timeout=\"-1\"\n app\n style=\"z-index: 99999;\"\n :class=\"[{ 'offset-app-bar': !['SignUp', 'Login', 'Confirmation', 'OnBoarding', 'ForgottenPassword', 'ResetPassword', 'DrawingApp', 'ThreeDPackagingTool'].includes($route.name) }]\"\n top\n >\n <div class=\"d-flex align-center\" data-cy=\"snack-message\">\n <v-icon left>\n {{ icon }}\n </v-icon>\n <template v-if=\"isOdooError\">\n {{ message }}\n </template>\n <template v-else>\n {{ $t(message, {Param1: param1, Param2: param2}) }}\n </template>\n </div>\n </v-snackbar>\n</template>\n\n<script>\nimport { mapState, mapActions } from 'vuex';\nimport { LEVEL } from '@/utils/log';\n\nexport default {\n data() {\n return {\n param1: '',\n param2: '',\n isOpen: false,\n type: LEVEL.INFO,\n message: '',\n multi: false,\n icon: 'mdi-information',\n isOdooError: false\n };\n },\n\n computed: {\n ...mapState('app', [\n 'messages', 'locale'\n ]),\n },\n\n watch: {\n messages(messages) {\n if (this.isOpen || messages.length === 0) {\n return;\n }\n const { snack, level, id } = _.last(messages);\n this.isOdooError = snack.message.includes('Odoo.Error');\n\n this.type = level;\n switch (level) {\n case LEVEL.SUCCESS:\n this.icon = 'mdi-checkbox-marked-circle';\n break;\n case LEVEL.WARNING:\n this.icon = 'mdi-alert';\n break;\n case LEVEL.INFO:\n case LEVEL.ERROR:\n this.icon = 'mdi-information';\n break;\n default:\n // ESLint forces me to write a default case so... easter egg?\n this.icon = 'mdi-heart';\n break;\n }\n if (this.isOdooError) {\n this.message = this.odooErrorMessage(snack.data);\n this.param1 = '';\n this.param2 = '';\n } else {\n this.multi = snack.message.indexOf('\\n') !== -1;\n this.message = snack.message.replace('\\n', '<br>');\n this.param1 = snack.data ? snack.data.param1 : '';\n this.param2 = snack.data ? snack.data.param2 : '';\n }\n\n this.isOpen = true;\n const duration = level === LEVEL.ERROR ? 5000 : 4000;\n setTimeout(() => {\n this.isOpen = false;\n // Allow for delay between messages\n setTimeout(() => {\n this.acknowledgeSnackById(id);\n }, 225);\n }, duration);\n },\n },\n\n methods: {\n ...mapActions('app', {\n acknowledgeSnackById: 'acknowledgeSnackById',\n }),\n odooErrorMessage(odooErrorData) {\n // eslint-disable-next-line camelcase\n const { message, message_cn, parameters, parameters_cn } = odooErrorData;\n // eslint-disable-next-line camelcase\n const msg = this.locale === 'cn' ? message_cn : message;\n // eslint-disable-next-line camelcase\n const prms = this.locale === 'cn' ? parameters_cn : parameters;\n\n const newParameters = {};\n\n for (const [key, value] of Object.entries(prms)) {\n if (Array.isArray(value)) {\n newParameters[key] = `<ul>${value.map(error => `<li>${error}</li>`).join('')}</ul>`;\n } else {\n newParameters[key] = value;\n }\n }\n\n // Use a regular expression to find placeholders in the form of {key}\n return msg.replace(/{(.*?)}/g, (match, key) =>\n // Return the corresponding value from parameters or the original match if not found\n // eslint-disable-next-line implicit-arrow-linebreak\n (newParameters[key] !== undefined ? newParameters[key] : match));\n }\n },\n};\n</script>\n\n<style scoped>\n.offset-app-bar {\n top: -64px;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Snack.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Snack.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Snack.vue?vue&type=template&id=4b72d003&scoped=true&\"\nimport script from \"./Snack.vue?vue&type=script&lang=js&\"\nexport * from \"./Snack.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Snack.vue?vue&type=style&index=0&id=4b72d003&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 \"4b72d003\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\ninstallComponents(component, {VIcon,VSnackbar})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"rounded d-flex flex-column align-center py-0\",staticStyle:{\"background-color\":\"#E9F4ED\"}},[_c('span',{staticClass:\"body-2\",attrs:{\"data-cy\":\"price-per-unit-text\"}},[_vm._v(_vm._s(_vm.$t('common.unitPricePerQuantity')))]),_c('div',{staticStyle:{\"display\":\"grid\",\"width\":\"min-content\",\"grid-template-columns\":\"max-content max-content\"}},[_vm._l((_vm.customerPriceRange),function(bracket,i){return [_c('span',{key:(\"qty-\" + i),staticClass:\"text-right\",staticStyle:{\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":(\"unit-price-qty-\" + i)}},[_vm._v(\" \"+_vm._s(i === 0 ? _vm.quantity : bracket.Qty)+\": \"+_vm._s('\\xa0')+\" \")]),_c('span',{key:(\"price-\" + i),attrs:{\"data-cy\":(\"unit-price-amount-\" + i)}},[_vm._v(\" \"+_vm._s(_vm.currency(bracket.Price, {symbol: _vm.company.currencySymbol}).format())+\" \")])]})],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container\n style=\"background-color: #E9F4ED;\"\n class=\"rounded d-flex flex-column align-center py-0\"\n >\n <span class=\"body-2\" data-cy=\"price-per-unit-text\">{{ $t('common.unitPricePerQuantity') }}</span>\n\n <div\n style=\"\n display: grid;\n width: min-content;\n grid-template-columns: max-content max-content;\n \"\n >\n <template v-for=\"(bracket, i) in customerPriceRange\">\n <span\n :key=\"`qty-${i}`\"\n style=\"color: #8D8D8D\"\n class=\"text-right\"\n :data-cy=\"`unit-price-qty-${i}`\"\n >\n {{ i === 0 ? quantity : bracket.Qty }}: {{ '\\xa0' }}\n </span>\n <span :key=\"`price-${i}`\" :data-cy=\"`unit-price-amount-${i}`\">\n {{ currency(bracket.Price, {symbol: company.currencySymbol}).format() }}\n </span>\n </template>\n </div>\n </v-container>\n</template>\n\n<script>\nimport currency from 'currency.js';\nimport { models } from 'feathers-vuex';\n\nconst { Company } = models.api;\n\nexport default {\n name: 'PriceMoqTable',\n props: {\n part: Object,\n },\n data: () => ({\n currency,\n }),\n computed: {\n company: () => Company.getFromStore(0),\n\n priceRange: vm => JSON.parse(_.get(vm, 'part.PriceMOQ', null)),\n\n quantity: vm => {\n if (!vm.part.ReqQty || vm.part.ReqQty <= 0) {\n return 1;\n }\n if (vm.part.ReqQty >= 1000000) {\n return 1000000;\n }\n return vm.part.ReqQty;\n },\n customerPriceRange() {\n if (!this.priceRange || this.quantity <= 0) {\n return [];\n }\n\n const reqQtyPriceIndex = this.priceRange\n .findIndex(range => range.Qty > this.quantity) - 1;\n\n if (reqQtyPriceIndex < 0) {\n return this.priceRange.slice(-1);\n }\n return this.priceRange\n .slice(reqQtyPriceIndex, Math.min(reqQtyPriceIndex + 3, this.priceRange.length));\n },\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceMoqTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceMoqTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PriceMoqTable.vue?vue&type=template&id=0cfbb585&\"\nimport script from \"./PriceMoqTable.vue?vue&type=script&lang=js&\"\nexport * from \"./PriceMoqTable.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VContainer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',_vm._l((_vm.productOptions),function(productOption){return _c('v-col',{key:(\"\" + (productOption.id)),staticClass:\"pa-0 text-truncate\",attrs:{\"align-self\":\"end\"}},[_c('div',{staticClass:\"caption flex-nowrap d-flex justify-center align-center\",attrs:{\"data-cy\":(\"product-option-readonly-label-\" + (productOption.id))}},[_c('span',{staticClass:\"text-truncate\",staticStyle:{\"color\":\"rgba(0,0,0,0.6)\"}},[_vm._v(\" \"+_vm._s(productOption[_vm.locale === 'cn' ? 'labelChs' : 'label'].split('(')[0])+\" \")])]),_c('div',{staticClass:\"text-truncate d-flex justify-center align-center\",attrs:{\"data-cy\":(\"product-option-readonly-value-\" + (productOption.id))}},[_c('span',{attrs:{\"data-cy\":(\"product-\" + (productOption.label.split(' ')[0].toLowerCase()) + \"-value\")}},[_vm._v(\" \"+_vm._s(_vm.getReadOnlyProduct(productOption)[_vm.locale === 'cn' ? 'textChs' : 'text'].slice(0, 10))+\" \"),(_vm.getReadOnlyProduct(productOption)[_vm.locale === 'cn' ? 'textChs' : 'text'].length >10)?[_c('br'),_c('span',[_vm._v(\" \"+_vm._s(_vm.getReadOnlyProduct(productOption)[_vm.locale === 'cn' ? 'textChs' : 'text'].slice(10))+\" \")])]:_vm._e()],2)])])}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-row>\n <v-col\n v-for=\"(productOption) in productOptions\"\n :key=\"`${productOption.id}`\"\n align-self=\"end\"\n class=\"pa-0 text-truncate\"\n >\n <div\n :data-cy=\"`product-option-readonly-label-${productOption.id}`\"\n class=\"caption flex-nowrap d-flex justify-center align-center\"\n >\n <span\n style=\"color:rgba(0,0,0,0.6);\"\n class=\"text-truncate\"\n >\n {{ productOption[locale === 'cn' ? 'labelChs' : 'label'].split('(')[0] }}\n </span>\n </div>\n <div\n :data-cy=\"`product-option-readonly-value-${productOption.id}`\"\n class=\"text-truncate d-flex justify-center align-center\"\n >\n <span :data-cy=\"`product-${productOption.label.split(' ')[0].toLowerCase()}-value`\">\n {{\n getReadOnlyProduct(productOption)[locale === 'cn' ? 'textChs' : 'text'].slice(0, 10)\n }}\n <template v-if=\"getReadOnlyProduct(productOption)[locale === 'cn' ? 'textChs' : 'text'].length >10\">\n <br>\n <span>\n {{\n getReadOnlyProduct(productOption)[locale === 'cn' ? 'textChs' : 'text'].slice(10)\n }}\n </span>\n </template>\n </span>\n </div>\n </v-col>\n </v-row>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapState } from 'vuex';\n\nexport default {\n name: 'ProductOptionReadOnly',\n\n props: {\n itemProduct: {\n type: Object,\n required: true\n },\n\n currentCategoryId: {\n type: String,\n default: ''\n },\n },\n data() {\n return {\n reqQty: 1,\n customBag: [],\n };\n },\n\n computed: {\n ...mapState('app', ['locale']),\n\n products: () => models.api.HardwareProduct,\n\n HardwareCategory: () => models.api.HardwareCategory,\n\n currentCategory: vm => vm.HardwareCategory.getFromStore(vm.currentCategoryId),\n\n productOptions: vm => (vm.currentCategory ? vm.currentCategory\n .attributes\n .filter(attribute => attribute.attributeTypes[0].attributeType === 'productgroupAttribute')\n .sort((option1, option2) => parseInt(option1.rank, 10) - parseInt(option2.rank, 10)) : []),\n\n productReadOnlyOptions: vm => (vm.productOptions ? vm.productOptions\n .filter(option => option.attributeTypes[0].fieldType === 'readonly') : []),\n\n getReadOnlyProduct: vm => productOption => {\n const product = vm.products.getFromStore(vm.itemProduct._id);\n if (!product) {\n return {};\n }\n return productOption.options.find(value => value.id === product[productOption.id]) || {};\n },\n\n },\n\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductOptionReadOnly.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductOptionReadOnly.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductOptionReadOnly.vue?vue&type=template&id=b7705434&\"\nimport script from \"./ProductOptionReadOnly.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductOptionReadOnly.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VRow})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeHero.vue?vue&type=style&index=0&id=5b62d34e&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panels',[_c('v-expansion-panel',[_c('v-expansion-panel-header',[_c('div',{staticClass:\"text-subtitle-2\"},[_vm._v(\" \"+_vm._s(_vm.$t( _vm._.get(_vm.analysisData, '0.value')))+\" \")])]),_c('v-expansion-panel-content',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',_vm._l((_vm.analysisData.slice(1)),function(item,i){return _c('tr',{key:item.field,class:{ 'dark': (i % 2 !== 0) }},[_c('td',{staticClass:\"d-flex align-center text-truncate\",staticStyle:{\"color\":\"#747474\"}},[(_vm.$t(item.value) === _vm.$t('3dSideViewer.pass'))?_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check-circle-outline \")]):_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close-circle-outline \")]),_vm._v(\" \"+_vm._s(_vm.$t(item.field))+\" \")],1),_c('td',{staticClass:\"text-truncate font-weight-medium\",staticStyle:{\"text-align\":\"right\"}},[_c('span',{staticClass:\"ml-3\",style:([{ color: _vm.getTextColor(item.value) }])},[_vm._v(\" \"+_vm._s(_vm.$t(item.value))+\" \")])])])}),0)]},proxy:true}])})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-expansion-panels>\n <v-expansion-panel>\n <v-expansion-panel-header>\n <div class=\"text-subtitle-2\">\n {{ $t( _.get(analysisData, '0.value')) }}\n </div>\n </v-expansion-panel-header>\n <v-expansion-panel-content>\n <v-card flat>\n <v-simple-table dense>\n <template v-slot:default>\n <tbody>\n <tr\n v-for=\"(item, i) in analysisData.slice(1)\"\n :key=\"item.field\"\n :class=\"{ 'dark': (i % 2 !== 0) }\"\n >\n <td class=\"d-flex align-center text-truncate\" style=\"color: #747474;\">\n <v-icon\n v-if=\"$t(item.value) === $t('3dSideViewer.pass')\"\n small\n class=\"mr-2\"\n color=\"green\"\n >\n mdi-check-circle-outline\n </v-icon>\n <v-icon\n v-else\n small\n class=\"mr-2\"\n color=\"red\"\n >\n mdi-close-circle-outline\n </v-icon>\n {{ $t(item.field) }}\n </td>\n <td class=\"text-truncate font-weight-medium\" style=\"text-align: right\">\n <span\n class=\"ml-3\"\n :style=\"[{ color: getTextColor(item.value) }]\"\n >\n {{ $t(item.value) }}\n </span>\n </td>\n </tr>\n </tbody>\n </template>\n </v-simple-table>\n </v-card>\n </v-expansion-panel-content>\n </v-expansion-panel>\n </v-expansion-panels>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\n\nconst { CsiAnalysis } = models.api;\nexport default {\n name: 'ProcessLimitationsTable',\n props: {\n part: Object,\n },\n computed: {\n analysisData() {\n let tableData = [];\n if (this.part) {\n tableData = _.get(CsiAnalysis.getFromStore(this.part.Item), 'data', []);\n }\n if (_.isEmpty(tableData)) {\n tableData = [\n { field: null, value: '3dSideViewer.processLimitations.title' },\n { field: '3dSideViewer.processLimitations.maxProductSizeLaserCutting', value: '-' },\n { field: '3dSideViewer.processLimitations.maxBendLength', value: '-' },\n { field: '3dSideViewer.processLimitations.minMaxThreadSize', value: '-' },\n ];\n } else {\n tableData = tableData.filter(datum => datum.Category === 'S1')\n .filter(datum => (datum.Description ? datum.Description.startsWith('T2') : ''))\n .sort((datum1, datum2) => +datum1.Rank - +datum2.Rank)\n .map(datum => ({ field: datum.Description.replace('T2.', ''), value: datum.Value || '-' }));\n }\n return tableData;\n },\n },\n methods: {\n getTextColor(value) {\n value = value.split('.').pop();\n switch (value) {\n case 'pass':\n case 'yes':\n return 'green';\n case 'fail':\n case 'no':\n return 'red';\n default:\n return '';\n }\n }\n }\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProcessLimitationsTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProcessLimitationsTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProcessLimitationsTable.vue?vue&type=template&id=09076c4d&\"\nimport script from \"./ProcessLimitationsTable.vue?vue&type=script&lang=js&\"\nexport * from \"./ProcessLimitationsTable.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"ma-1 px-2 fill-height flex-column align-content-space-between partCard\",attrs:{\"hover\":\"\",\"height\":\"100%\",\"width\":\"510px\",\"min-width\":\"510px\",\"loading\":_vm.part.isRemovePending,\"data-cy\":\"my-part-card-grid\",\"ripple\":false}},[_c('v-row',{attrs:{\"no-gutters\":\"\",\"data-cy\":\"my-part-first-horizontal-grid-view\"}},[_c('v-col',{staticClass:\"py-0 pl-1 d-flex flex-row\",attrs:{\"cols\":\"2\"}},[_c('div',{staticClass:\" d-flex flex-column \",on:{\"click\":function($event){_vm.partViewerPart = _vm.part; _vm.isPartViewerActive = true;}}},[_c('core-thumbnail-viewer',{staticClass:\"pa-0\",attrs:{\"part\":_vm.part,\"width\":90,\"height\":90,\"file-url\":\"/img/HW-Bag-Thumbnail.png\",\"data-cy\":\"my-part-image-grid\",\"is-display-border\":true}})],1)]),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-row',{staticClass:\"pl-7\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"11\",\"align-self\":\"start\"}},[_c('div',{staticClass:\"flex-row text-truncate\"},[_c('span',{staticClass:\"text-truncate\",staticStyle:{\"font-size\":\"25px\",\"font-weight\":\"500\"},attrs:{\"data-cy\":\"my-part-part-grid\",\"title\":_vm.part.CustItemName}},[_vm._v(\" \"+_vm._s(_vm.part.CustItemName)+\" \")])])]),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"1\",\"align-self\":\"start\"}},[_c('v-btn',{staticClass:\"align-self-start ml-auto\",attrs:{\"right\":\"\",\"loading\":_vm.part.isRemovePending,\"color\":\"primary\",\"icon\":\"\",\"data-cy\":\"my-part-remove-button-grid\"},on:{\"click\":function($event){_vm.deleteDialog.display = true;\n _vm.deleteDialog.partToDelete = _vm.part;}}},[_c('v-icon',[_vm._v(\" mdi-delete \")])],1)],1)],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex justify-end pr-0\",attrs:{\"offset\":\"5\",\"cols\":\"6\"}},[_c('v-sheet',{staticClass:\"d-flex flex-column rounded-lg\",attrs:{\"height\":\"48px\",\"width\":\"134px\",\"color\":\"#FFFADA\"}},[_c('span',{staticClass:\"caption text--secondary text-left px-2 pt-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.myParts.productionLocation'))+\" \")]),_c('span',{staticClass:\"px-2\",staticStyle:{\"color\":\"black\"},attrs:{\"data-cy\":\"my-part-production-location-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.FactoryName)+\" \")])])],1)],1)],1)],1),_c('v-row',[_c('v-row',{staticClass:\"px-3 flex-nowrap\",staticStyle:{\"width\":\"100%\"}},[_c('v-col',{staticClass:\"pb-0 flex-nowrap\",attrs:{\"cols\":\"7\"}},[_c('div',{staticClass:\"caption text--secondary \"},[_vm._v(\" \"+_vm._s(_vm.$t('common.description'))+\"    \")]),_c('div',{attrs:{\"data-cy\":\"my-part-finish-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.CustItemDesc === '' || _vm.part.CustItemDesc === null ? '-' : _vm.part.CustItemDesc)+\" \")])]),_c('v-col',{staticClass:\"ml-3\",attrs:{\"cols\":\"auto\"}},[_c('core-rang-price-moq',{staticClass:\"ml-auto align-content-end\",attrs:{\"part\":_vm.part}})],1)],1),_c('v-row',{staticClass:\"px-3\"},[_c('v-col',{staticClass:\"text-truncate pt-2 pb-0\",attrs:{\"cols\":\"3\"}},[_c('div',{staticStyle:{\"width\":\"45px\"}},[_c('div',{staticClass:\"caption text--secondary\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.hardwareCategory.barcode'))+\" \")]),_c('span',[_c('span',{attrs:{\"data-cy\":\"my-part-tolerances-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.BarCode || '-')+\" \")])])])]),_c('v-col',{staticClass:\"d-flex justify-center pt-1 pb-0\",attrs:{\"cols\":\"3\"}},[_c('core-bag-items-list',{attrs:{\"part\":_vm.part.Items}})],1),_c('v-spacer'),_c('v-col',{staticClass:\"pb-0\",attrs:{\"cols\":\"3\"}},[_c('v-text-field',{staticClass:\"d-inline-block\",attrs:{\"min\":Math.min.apply(Math, _vm.part.PriceMOQ.map(function (o) { return o.Qty; })),\"max\":9999999,\"data-cy\":\"quantity-input-upload\",\"label\":_vm.$t('views.rfqs.quantity'),\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"blur\":function($event){_vm.ReqQty < Math.min.apply(Math, _vm.part.PriceMOQ.map(function (o) { return o.Qty; })) ? _vm.ReqQty = Math.min.apply(Math, _vm.part.PriceMOQ.map(function (o) { return o.Qty; })) : _vm.ReqQty = _vm.ReqQty;},\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()}},nativeOn:{\"input\":function($event){_vm.part.qtyOfPart = _vm.updateValue($event)}},model:{value:(_vm.ReqQty),callback:function ($$v) {_vm.ReqQty=_vm._n($$v)},expression:\"ReqQty\"}})],1),_c('v-col',{staticClass:\"pb-0 pt-2\",attrs:{\"align-self\":\"start\",\"cols\":\"3\"}},[_c('v-sheet',{staticClass:\"pa-2 py-0 rounded-lg\",attrs:{\"height\":\"48px\",\"color\":_vm.isExpired() ? '#FBE9EC': '#f0fdf3'}},[_c('span',{staticClass:\"caption text--secondary text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.totalPrice', {currencySymbol: _vm.currencySymbol}))+\" \")]),_c('span',{staticClass:\"mt-2\",style:([_vm.isExpired() ? {'color': '#be2a45'} : {'color': ''}])},[_vm._v(\" \"+_vm._s(_vm.calculatePrice(_vm.part).multiply(_vm.ReqQty))+\" \")])])],1)],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticStyle:{\"height\":\"100%\"}},[_vm._v(\"  \")])],1),_c('v-card-actions',{staticClass:\"mt-8 pa-0 align-end\",attrs:{\"data-cy\":\"my-part-card-actions-grid\"}},[_c('v-tooltip',{attrs:{\"right\":\"\",\"data-cy\":\"my-part-information-tooltip-grid\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"color\":\"primary\",\"data-cy\":\"my-part-information-grid\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-information-outline \")])]}}])},[_c('span',{staticClass:\"white--text\",attrs:{\"data-cy\":\"my-part-user-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.PortalUserId)+\" \")]),_c('br'),_c('span',{attrs:{\"data-cy\":\"my-part-expiration-date-grid\"}},[_vm._v(\" \"+_vm._s(_vm.isExpired() ? 'Is expired since' : _vm.$t('common.validUntil'))+\": \"+_vm._s(_vm.moment(_vm.part.ExpireDate).format('YYYY-MM-DD'))+\" \")])]),_c('v-spacer'),(_vm._.get(_vm.currentUser, 'isAdmin') || _vm._.get(_vm.currentUser, ['rights', 'placeOrder']))?[(_vm.isExpired(_vm.part))?[_c('v-btn',{attrs:{\"loading\":_vm.part.isSavePending,\"color\":\"primary\",\"data-cy\":\"refresh-quote-button-grid\"},on:{\"click\":function($event){return _vm.refreshMyPartPrice(_vm.part)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-autorenew \")]),_vm._v(\" \"+_vm._s(_vm.t('views.myParts.refreshQuote'))+\" \")],1)]:(_vm.currentOrder && !_vm.currentOrder.canAddHardwareProduct(_vm.part))?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('div',_vm._g({},on),[_c('v-btn',_vm._b({staticClass:\"ml-6\",attrs:{\"color\":\"primary\",\"data-cy\":\"order-this-button-grid\",\"disabled\":_vm.currentOrder && !_vm.currentOrder.canAddHardwareProduct(_vm.part)},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToOrder.apply(null, arguments)}}},'v-btn',attrs,false),[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrder'))+\" \")])],1)]}}],null,false,1278635570)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrderSingleLocationToolTip'))+\" \")])]):[(_vm.isPartPresentInCurrentOrder(_vm.part))?_c('v-btn',{staticClass:\"ml-6\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.removeToOrder(_vm.part)}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.removeToOrder'))+\" \")]):_c('v-btn',{staticClass:\"ml-6\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToOrder.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrder'))+\" \")])]]:_vm._e()],2),(_vm.deleteDialog.display)?_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"500px\",\"data-cy\":\"delete-dialogue\",\"ok-button-text\":_vm.$t('common.delete')},on:{\"click:ok\":function($event){_vm.deleteDialog.display = false; _vm.part.remove() ; _vm.removeToOrder(_vm.part)},\"click:cancel\":_vm.cancelDelete},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('views.myParts.deleteDialogBagTitle'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"pa-10 text-center\"},[_c('span',{staticClass:\"d-block\"},[_c('span',{staticClass:\"d-block\",attrs:{\"data-cy\":\"delete-dialogue-2\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('common.deleteDialogText', { name: _vm.deleteDialog.partToDelete.CustItemName }))}})])])]},proxy:true}],null,false,1496911381),model:{value:(_vm.deleteDialog.display),callback:function ($$v) {_vm.$set(_vm.deleteDialog, \"display\", $$v)},expression:\"deleteDialog.display\"}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-card\n hover\n height=\"100%\"\n width=\"510px\"\n min-width=\"510px\"\n :loading=\"part.isRemovePending\"\n class=\"ma-1 px-2 fill-height flex-column align-content-space-between partCard\"\n data-cy=\"my-part-card-grid\"\n :ripple=\"false\"\n >\n <v-row no-gutters data-cy=\"my-part-first-horizontal-grid-view\">\n <v-col cols=\"2\" class=\"py-0 pl-1 d-flex flex-row\">\n <div\n class=\" d-flex flex-column \"\n @click=\"partViewerPart = part; isPartViewerActive = true;\"\n >\n <core-thumbnail-viewer\n :part=\"part\"\n :width=\"90\"\n :height=\"90\"\n file-url=\"/img/HW-Bag-Thumbnail.png\"\n class=\"pa-0\"\n data-cy=\"my-part-image-grid\"\n :is-display-border=\"true\"\n />\n </div>\n </v-col>\n <v-col cols=\"10\">\n <v-row no-gutters class=\"pl-7\">\n <v-col cols=\"11\" align-self=\"start\" class=\"pa-0\">\n <div class=\"flex-row text-truncate\">\n <span\n class=\"text-truncate\"\n style=\"font-size: 25px;font-weight: 500;\"\n data-cy=\"my-part-part-grid\"\n :title=\"part.CustItemName\"\n >\n {{ part.CustItemName }}\n </span>\n </div>\n </v-col>\n\n <v-col cols=\"1\" align-self=\"start\" class=\"pa-0\">\n <v-btn\n right\n class=\"align-self-start ml-auto\"\n :loading=\"part.isRemovePending\"\n color=\"primary\"\n icon\n data-cy=\"my-part-remove-button-grid\"\n @click=\"\n deleteDialog.display = true;\n deleteDialog.partToDelete = part;\"\n >\n <v-icon>\n mdi-delete\n </v-icon>\n </v-btn>\n </v-col>\n </v-row>\n <v-row>\n <v-col offset=\"5\" cols=\"6\" class=\"d-flex justify-end pr-0\">\n <v-sheet\n height=\"48px\"\n width=\"134px\"\n color=\"#FFFADA\"\n class=\"d-flex flex-column rounded-lg\"\n >\n <span class=\"caption text--secondary text-left px-2 pt-1\">\n {{ $t('views.myParts.productionLocation') }}\n </span>\n <span\n class=\"px-2\"\n style=\"color: black;\"\n data-cy=\"my-part-production-location-grid\"\n >\n {{ part.FactoryName }}\n </span>\n </v-sheet>\n </v-col>\n </v-row>\n </v-col>\n </v-row>\n\n <v-row>\n <v-row class=\"px-3 flex-nowrap\" style=\"width:100%\">\n <v-col cols=\"7\" class=\"pb-0 flex-nowrap\">\n <div class=\"caption text--secondary \">\n {{ $t('common.description') }} \n </div>\n <div data-cy=\"my-part-finish-grid\">\n {{ part.CustItemDesc === '' || part.CustItemDesc === null ? '-' : part.CustItemDesc }}\n </div>\n </v-col>\n <v-col cols=\"auto\" class=\"ml-3\">\n <core-rang-price-moq class=\"ml-auto align-content-end\" :part=\"part\" />\n </v-col>\n </v-row>\n <v-row class=\"px-3\">\n <v-col cols=\"3\" class=\"text-truncate pt-2 pb-0\">\n <div style=\"width: 45px\">\n <div class=\"caption text--secondary\">\n {{ $t('views.hardwareCategory.barcode') }}\n </div>\n <span>\n <span data-cy=\"my-part-tolerances-grid\">\n {{ part.BarCode || '-' }}\n </span>\n </span>\n </div>\n </v-col>\n <v-col cols=\"3\" class=\"d-flex justify-center pt-1 pb-0\">\n <core-bag-items-list :part=\"part.Items\" />\n </v-col>\n <v-spacer />\n <v-col cols=\"3\" class=\"pb-0\">\n <v-text-field\n v-model.number=\"ReqQty\"\n :min=\"Math.min(...part.PriceMOQ.map(o => o.Qty))\"\n :max=\"9999999\"\n class=\"d-inline-block\"\n data-cy=\"quantity-input-upload\"\n :label=\"$t('views.rfqs.quantity')\"\n type=\"number\"\n hide-details\n outlined\n dense\n @blur=\"ReqQty < Math.min(...part.PriceMOQ.map(o => o.Qty)) ? ReqQty = Math.min(...part.PriceMOQ.map(o => o.Qty)) : ReqQty = ReqQty;\"\n @input.native=\"part.qtyOfPart = updateValue($event)\"\n @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n />\n </v-col>\n\n <v-col align-self=\"start\" cols=\"3\" class=\"pb-0 pt-2\">\n <v-sheet height=\"48px\" :color=\"isExpired() ? '#FBE9EC': '#f0fdf3' \" class=\"pa-2 py-0 rounded-lg\">\n <span class=\"caption text--secondary text-left\">\n {{ $t('views.productOption.totalPrice', {currencySymbol: currencySymbol}) }}\n </span>\n <span class=\"mt-2\" :style=\"[isExpired() ? {'color': '#be2a45'} : {'color': ''}]\">\n {{ calculatePrice(part).multiply(ReqQty) }}\n </span>\n </v-sheet>\n </v-col>\n </v-row>\n </v-row>\n\n <v-row dense>\n <v-col style=\"height: 100%\">\n \n </v-col>\n </v-row>\n <v-card-actions class=\"mt-8 pa-0 align-end\" data-cy=\"my-part-card-actions-grid\">\n <v-tooltip right data-cy=\"my-part-information-tooltip-grid\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon\n v-bind=\"attrs\"\n color=\"primary\"\n data-cy=\"my-part-information-grid\"\n v-on=\"on\"\n >\n mdi-information-outline\n </v-icon>\n </template>\n <span class=\"white--text\" data-cy=\"my-part-user-grid\">\n {{ part.PortalUserId }}\n </span>\n <br>\n <span data-cy=\"my-part-expiration-date-grid\">\n {{\n isExpired() ? 'Is expired since' : $t('common.validUntil')\n }}: {{ moment(part.ExpireDate).format('YYYY-MM-DD') }}\n </span>\n </v-tooltip>\n <v-spacer />\n\n <template v-if=\"_.get(currentUser, 'isAdmin') || _.get(currentUser, ['rights', 'placeOrder'])\">\n <template v-if=\"isExpired(part)\">\n <v-btn\n :loading=\"part.isSavePending\"\n color=\"primary\"\n data-cy=\"refresh-quote-button-grid\"\n @click=\"refreshMyPartPrice(part)\"\n >\n <v-icon left>\n mdi-autorenew\n </v-icon>\n {{ t('views.myParts.refreshQuote') }}\n </v-btn>\n </template>\n <v-tooltip v-else-if=\"currentOrder && !currentOrder.canAddHardwareProduct(part)\" bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\">\n <v-btn\n v-bind=\"attrs\"\n color=\"primary\"\n class=\"ml-6\"\n data-cy=\"order-this-button-grid\"\n :disabled=\"currentOrder && !currentOrder.canAddHardwareProduct(part)\"\n @click.stop=\"addToOrder\"\n >\n {{ $t('views.productOption.addToOrder') }}\n </v-btn>\n </div>\n </template>\n <span>\n {{ $t('views.productOption.addToOrderSingleLocationToolTip') }}\n </span>\n </v-tooltip>\n <template v-else>\n <v-btn\n v-if=\"isPartPresentInCurrentOrder(part)\"\n color=\"primary\"\n class=\"ml-6\"\n @click.stop=\"removeToOrder(part)\"\n >\n {{ $t('views.productOption.removeToOrder') }}\n </v-btn>\n <v-btn\n v-else\n color=\"primary\"\n class=\"ml-6\"\n @click.stop=\"addToOrder\"\n >\n {{ $t('views.productOption.addToOrder') }}\n </v-btn>\n </template>\n </template>\n </v-card-actions>\n <core-dialog\n v-if=\"deleteDialog.display\"\n v-model=\"deleteDialog.display\"\n type=\"confirmation\"\n width=\"500px\"\n data-cy=\"delete-dialogue\"\n :ok-button-text=\"$t('common.delete')\"\n @click:ok=\"\n deleteDialog.display = false; part.remove() ; removeToOrder(part)\"\n @click:cancel=\"cancelDelete\"\n >\n <template #title>\n {{ $t('views.myParts.deleteDialogBagTitle') }}\n </template>\n <template #content>\n <div class=\"pa-10 text-center\">\n <span class=\"d-block\">\n <span\n class=\"d-block\"\n data-cy=\"delete-dialogue-2\"\n v-html=\"$t('common.deleteDialogText', { name: deleteDialog.partToDelete.CustItemName })\"\n />\n </span>\n </div>\n </template>\n </core-dialog>\n </v-card>\n</template>\n<script>\nimport { models } from 'feathers-vuex';\n\nimport {\n computed, defineComponent, ref,\n} from '@vue/composition-api';\nimport currency from 'currency.js';\n\nconst { Part, Company, HardwareProduct } = models.api;\n\nexport default defineComponent({\n props: {\n /**\n * Manipulate the way field's value displays\n */\n part: {\n type: Object,\n default: () => {\n }\n },\n },\n\n setup(props, context) {\n const t = context.root.$t;\n\n const currentProduct = ref({});\n\n const company = computed(() => Company.getFromStore(0));\n\n const currentUser = computed(() => context.root.$store.getters['auth/user']);\n\n const currencySymbol = computed(() => _.get(company.value, 'currencySymbol', '$'));\n\n const defaultQty = computed(() => Math.min(...props.part.PriceMOQ.map(o => o.Qty)));\n\n const ReqQty = ref(defaultQty.value);\n\n const deleteDialog = ref({\n display: false,\n partToDelete: new Part(),\n });\n\n // const currentOrder = computed(() => context.root.$store.state.app.currentOrder);\n const currentOrder = computed(() => context.root.$store.getters['app/currentOrder']);\n\n const isExpired = () => moment().diff(props.part.ExpireDate, 'days') > 0;\n\n const refreshMyPartPrice = async part => {\n const query = {\n query: {\n shouldUpdatePrice: true,\n },\n notificationMessage: context.root.$t('views.myParts.refreshPriceSuccessMessage'),\n };\n\n await part.save(query);\n };\n\n const itemRowBackground = part => (this.isExpired(part) ? 'expired-row' : null);\n\n const cancelDelete = () => {\n deleteDialog.value.display = false;\n deleteDialog.value.partToDelete = new Part();\n };\n\n const addToOrder = async () => {\n // eslint-disable-next-line no-underscore-dangle\n const order = await context.root.$store._actions['app/initCurrentOrder'][0]();\n\n order.addItem('myproduct', props.part._id, ReqQty.value);\n };\n\n const removeToOrder = part => {\n if (currentOrder.value) {\n currentOrder.value.spliceItem(currentOrder.value.orderItems.indexOf(part), 1);\n }\n };\n\n const calculatePrice = computed(() => part => {\n if (!part.PriceMOQ) {\n return currency(0, { symbol: currencySymbol.value });\n }\n\n let priceMoq;\n if (typeof part.PriceMOQ === 'string') {\n priceMoq = JSON.parse(part.PriceMOQ);\n } else {\n priceMoq = [...part.PriceMOQ];\n }\n\n const priceMOQ = [...priceMoq].sort(({ Qty: a }, { Qty: b }) => b - a);\n\n const findPrice = priceMOQ.find(({ Qty }) => Qty <= ReqQty.value) || Math.min(...priceMOQ.map(o => o.Qty));\n\n if (!findPrice) {\n return currency(0, { symbol: currencySymbol.value });\n }\n\n return currency(findPrice.Price, { symbol: currencySymbol.value });\n });\n\n const isPartPresentInCurrentOrder = computed(() => part => {\n if (currentOrder.value === null) {\n return false;\n }\n\n const currentPart = currentOrder.value.items.findIndex(item => item._id === part._id);\n\n return currentPart !== -1;\n });\n\n const getProductDescription = id => HardwareProduct.getFromStore(id).description;\n\n const removeBag = async () => {\n currentProduct.value = new Part({ ...props.part });\n\n currentProduct.value.remove({ shouldShowNotification: true });\n };\n\n const updateValue = () => event => {\n if (parseInt(event.target.value, 10) <= parseInt(event.target.min, 10)) {\n return event.target.min;\n }\n if (parseInt(event.target.max, 10) < parseInt(event.target.value, 10)) {\n return event.target.max;\n }\n return event.target.value;\n };\n\n return {\n removeToOrder,\n addToOrder,\n cancelDelete,\n itemRowBackground,\n refreshMyPartPrice,\n isExpired,\n deleteDialog,\n calculatePrice,\n currencySymbol,\n currentUser,\n isPartPresentInCurrentOrder,\n t,\n ReqQty,\n getProductDescription,\n removeBag,\n currentProduct,\n updateValue,\n currentOrder,\n };\n },\n});\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BagCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BagCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BagCard.vue?vue&type=template&id=cbf10c80&scoped=true&\"\nimport script from \"./BagCard.vue?vue&type=script&lang=js&\"\nexport * from \"./BagCard.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 \"cbf10c80\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCol,VIcon,VRow,VSheet,VSpacer,VTextField,VTooltip})\n","import { mapGetters, mapActions } from 'vuex';\n\nexport default {\n props: {\n // Tabs associated with the form\n tabs: Object,\n\n // Tab associated with the form\n tab: Object,\n\n // Parent tab associated with the form\n parentTab: Object,\n\n // Force embedded mode\n embedded: Boolean,\n\n // paths to watch in tab.entity\n paths: Array,\n\n // Disable updates\n disabled: Boolean,\n\n // Force disable the update button\n updateDisabled: Boolean,\n\n // Sync data to a parent model\n value: Object,\n\n // When the data of new document is empty apply these values\n defaultValue: { type: Object, default: () => {} },\n\n // Custom modified data check function\n modifiedFunction: Function,\n },\n\n data() {\n return {\n data: {},\n recomputeOriginalData: false,\n };\n },\n\n computed: {\n ...mapGetters('tabs', { isTabModified: 'isModified' }),\n\n /**\n * Returns if there is a parentTab associated with this form.\n */\n isEmbedded() {\n return !_.isUndefined(this.parentTab) || this.embedded;\n },\n\n /**\n * In creation mode when tab's entity has no _id value.\n */\n creationMode() {\n return _.get(this.tab, 'entity._id') === undefined;\n },\n\n /**\n * Returns tab entity value.\n */\n originalData() {\n const p = this.paths ? ['entity', ...this.paths] : 'entity';\n const v = !_.isEmpty(this.value) ? this.value : this.defaultValue || {};\n // to ensure originalData will get recomputed\n if (this.recomputeOriginalData) {\n this.recomputeOriginalData = false;\n }\n return _.get(this.tab, p, v);\n },\n\n /**\n * Deep compares data to originalData.\n * Update tab modified value when data is modified.\n */\n isDataModified() {\n const m = this.modifiedFunction\n ? !this.modifiedFunction(this.data, this.originalData)\n : !_.isEqual(this.data, this.originalData);\n if (this.tab && this.isTabModified(this.tab._id) !== m) {\n this.setTabModified({ _id: this.tab._id, modified: m });\n }\n return m;\n },\n\n isUpdateDisabled() {\n return this.updateDisabled || !this.isDataModified;\n },\n },\n\n watch: {\n 'tab.entity': {\n deep: true,\n\n handler() {\n this.recomputeOriginalData = true;\n this.$nextTick(() => {\n this.data = this.cloneOriginalData();\n this.$emit('input', this.data);\n this.updateTab({\n _id: this.tab._id,\n entityId: this.tab.entity._id,\n });\n });\n }\n },\n\n value: {\n deep: true,\n\n handler(newValue) {\n this.data = !this.tab && this.isDataModified\n ? this.cloneOriginalData()\n : newValue;\n }\n },\n\n data: {\n deep: true,\n\n handler(newValue) {\n if (this.isDataModified) {\n this.$emit('input', newValue);\n }\n }\n },\n },\n\n mounted() {\n this.data = this.cloneOriginalData();\n this.$emit('input', this.data);\n },\n\n methods: {\n ...mapActions('tabs', {\n setTabModified: 'setModified',\n updateTab: 'updateTab',\n }),\n\n // clones originalData model instance.\n cloneOriginalData() {\n return _.cloneDeep(this.originalData);\n },\n\n /**\n * Emits the update-entity event to parent component.\n */\n async updateData() {\n this.$emit('update-entity', this.tab, this.data);\n },\n }\n};\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\nimport i18n from '@/plugins/i18n';\n\nconst servicePath = 'order-lines';\n\nconst Model = class OrderLine extends BaseModel {\n static modelName = 'OrderLine';\n\n static instanceDefaults() {\n return {\n CoNum: '',\n CoLine: '',\n Item: '',\n CustItemName: '',\n CustItemDesc: '',\n Quantity: 0,\n Price: 0,\n MaterialStr: '',\n MaterialSeriesStr: '',\n MaterialThicknessStr: '',\n MaterialFinishStr: '',\n MaterialFinishOptionStr: '',\n Status: '',\n DrawingRowPointer: '',\n ThumbnailItemId: '',\n CreatedByUserName: '',\n CreateDate: null,\n DrawingNumber: '',\n DueDate: null,\n };\n }\n\n static setupInstance(data) {\n if (data.MaterialStr) {\n this.materialSeriesShortened = data.MaterialSeriesStr.replace(data.MaterialStr, '').trim();\n }\n }\n\n get materialTranslation() {\n return i18n.locale === 'en-US' ? this.MaterialStr : this.MaterialStrChs;\n }\n\n get materialThicknessTranslation() {\n return i18n.locale === 'en-US' ? this.MaterialThicknessStr : this.MaterialThicknessStrChs;\n }\n\n get materialSeriesTranslation() {\n return i18n.locale === 'en-US' ? this.materialSeriesShortened : this.MaterialSeriesStrChs;\n }\n\n get materialFinishTranslation() {\n return i18n.locale === 'en-US' ? this.MaterialFinishStr.replace(/-/g, '') : this.MaterialFinishStrChs.replace(/-/g, '');\n }\n\n get materialFinishOptionTranslation() {\n return i18n.locale === 'en-US' ? this.MaterialFinishOptionStr.replace(/-/g, '') : this.MaterialFinishOptionStrChs.replace(/-/g, '');\n }\n\n get toleranceTranslation() {\n if (!this.Tolerance) {\n return '-';\n }\n return i18n.t(`views.instantQuote.tolerance${this.Tolerance.replace('Precision', '').trim()}`);\n }\n\n get is2dModel() {\n if (this.CustFileName) {\n return this.CustFileName.split('.').pop().replaceAll(' ', '').toUpperCase() === 'DXF';\n }\n return false;\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'payment-results';\n\nconst Model = class PaymentResult extends BaseModel {\n static modelName = 'PaymentResult';\n\n static instanceDefaults() {\n return {\n merchant_transaction_id: ''\n };\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-text-field',{attrs:{\"append-icon\":\"mdi-magnify\",\"label\":_vm.$t('common.search'),\"single-line\":\"\",\"hide-details\":\"\",\"flat\":\"\",\"solo-inverted\":\"\",\"dense\":\"\"},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-text-field\n v-model=\"localValue\"\n append-icon=\"mdi-magnify\"\n :label=\"$t('common.search')\"\n single-line\n hide-details\n flat\n solo-inverted\n dense\n />\n</template>\n\n<script>\nimport ModelableMixin from '../../mixins/modelable';\n\nexport default {\n name: 'SearchBar',\n\n mixins: [\n ModelableMixin,\n ],\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SearchBar.vue?vue&type=template&id=4dd8f8a6&scoped=true&\"\nimport script from \"./SearchBar.vue?vue&type=script&lang=js&\"\nexport * from \"./SearchBar.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 \"4dd8f8a6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RfqPartsTable.vue?vue&type=style&index=0&id=378ca4d1&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.isLoaded)?[(!_vm.hasError)?_c('v-skeleton-loader',{staticClass:\"my-2\",attrs:{\"width\":_vm.width,\"height\":_vm.height,\"type\":\"image\"}}):_c('v-tooltip',{attrs:{\"right\":\"\",\"nudge-bottom\":\"50px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-sheet',_vm._g(_vm._b({staticClass:\"d-flex justify-center align-center my-2\",attrs:{\"color\":\"#F4F4F4\",\"width\":_vm.width,\"height\":_vm.height}},'v-sheet',attrs,false),on),[_c('span',{staticStyle:{\"color\":\"#8D8D8D\"}},[_vm._v(\"?\")])])]}}],null,false,2884949286)},[_c('span',[_vm._v(_vm._s(_vm.$t('common.failedToDownloadThumbnail')))])])]:_vm._e(),_c('v-fade-transition',[_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isLoaded),expression:\"isLoaded\"}],staticClass:\"my-2 \",attrs:{\"src\":_vm.thumbnailUri,\"height\":_vm.height,\"width\":_vm.width,\"alt\":\"thumbnail\"},on:{\"load\":function($event){_vm.isLoaded = true},\"error\":function($event){_vm.hasError = true}}})])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <template v-if=\"!isLoaded\">\n <v-skeleton-loader\n v-if=\"!hasError\"\n :width=\"width\"\n :height=\"height\"\n type=\"image\"\n class=\"my-2\"\n />\n <v-tooltip v-else right nudge-bottom=\"50px\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-sheet\n color=\"#F4F4F4\"\n :width=\"width\"\n :height=\"height\"\n v-bind=\"attrs\"\n class=\"d-flex justify-center align-center my-2\"\n v-on=\"on\"\n >\n <span style=\"color:#8D8D8D\">?</span>\n </v-sheet>\n </template>\n <span>{{ $t('common.failedToDownloadThumbnail') }}</span>\n </v-tooltip>\n </template>\n <v-fade-transition>\n <img\n v-show=\"isLoaded\"\n class=\"my-2 \"\n :src=\"thumbnailUri\"\n :height=\"height\"\n :width=\"width\"\n alt=\"thumbnail\"\n @load=\"isLoaded = true\"\n @error=\"hasError = true\"\n >\n </v-fade-transition>\n </div>\n</template>\n\n<script>\nimport { mapState } from 'vuex';\n\nexport default {\n /* TODO It would be nice to use Vuetify's image component (v-img), but unfortunately\n * there seems to be no simple way to display a skeleton loader until\n * a v-img loads using v-show. So we're stuck with a regular image tag */\n name: 'ThumbnailViewer',\n props: {\n part: Object,\n width: {\n type: Number,\n required: true,\n },\n height: {\n type: Number,\n required: true,\n },\n partLookupKey: {\n type: String,\n required: false,\n },\n fileUrl: {\n type: String,\n required: false,\n },\n },\n data: () => ({\n isLoaded: false,\n hasError: false,\n }),\n computed: {\n ...mapState('auth', ['accessToken']),\n\n thumbnailUri: vm => {\n if (vm.fileUrl) {\n return vm.fileUrl;\n }\n if (!vm.part) {\n return '';\n }\n const host = process.env.VUE_APP_API_URL;\n const extension = vm.part.is2dModel ? 'SVG' : 'PNG';\n const fileType = extension === 'PNG' ? 'Image' : 'File';\n const fileName = `${_.get(vm.part, 'DrawingRowPointer', '').toLowerCase()}.${extension}`;\n if (vm.partLookupKey) {\n return `${host}uploads/${fileName}/${vm.accessToken}/${vm.part[vm.partLookupKey]}/${fileType}`;\n }\n return `${host}uploads/${fileName}/${vm.accessToken}/${vm.part._id}/${fileType}`;\n }\n },\n};\n</script>\n\n<style scoped>\n/* Without this, there is a random extra ~6 pixels below the image.\n After scrutinizing over pixels for a while, I found this: https://stackoverflow.com/a/5804278/9214972 */\nimg {\n vertical-align: middle;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThumbnailViewer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThumbnailViewer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ThumbnailViewer.vue?vue&type=template&id=ee3ba56c&scoped=true&\"\nimport script from \"./ThumbnailViewer.vue?vue&type=script&lang=js&\"\nexport * from \"./ThumbnailViewer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ThumbnailViewer.vue?vue&type=style&index=0&id=ee3ba56c&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 \"ee3ba56c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VFadeTransition,VSheet,VSkeletonLoader,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"home-hero\",attrs:{\"fill-height\":\"\"}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./HomeHero.vue?vue&type=template&id=5b62d34e&scoped=true&\"\nvar script = {}\nimport style0 from \"./HomeHero.vue?vue&type=style&index=0&id=5b62d34e&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 \"5b62d34e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VContainer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"primary px-15 rounded-r-xl\",staticStyle:{\"color\":\"white\",\"min-height\":\"650px\",\"height\":\"96%\",\"min-width\":\"650px\"}},[_c('v-sheet',{staticClass:\"white--text primary\",attrs:{\"tag\":\"div\",\"tile\":\"\"}},[_c('v-row',{staticClass:\"font-weight-bold text-h5 mb-8 mt-10\"},[_vm._v(\" \"+_vm._s(_vm.$t('promotional.title'))+\" \")]),_c('v-row',{staticClass:\"body-1 mb-8\"},[_vm._v(\" \"+_vm._s(_vm.$t('promotional.caption'))+\" \")]),_c('v-row',{staticClass:\"font-weight-bold text-h6 mb-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('promotional.subTitle'))+\" \")]),_c('v-row',{staticClass:\"d-flex justify-center align-center mb-5\"},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"width\":\"40px\",\"src\":\"/img/icon-lasercutting@1x.svg\"}}),_c('span',{staticClass:\"caption-2 pl-4\",domProps:{\"innerHTML\":_vm._s(_vm.$t('promotional.expertise.laserCutting'))}})])],1),_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"width\":\"40px\",\"src\":\"/img/icon-threading@1x.svg\"}}),_c('span',{staticClass:\"caption-2 pl-4\",domProps:{\"innerHTML\":_vm._s(_vm.$t('promotional.expertise.threadingChamfering'))}})])],1),_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"width\":\"40px\",\"src\":\"/img/icon-bending@1x.svg\"}}),_c('span',{staticClass:\"caption-2 pl-4\",domProps:{\"innerHTML\":_vm._s(_vm.$t('promotional.expertise.sheetMetal'))}})])],1),_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"width\":\"40px\",\"src\":\"/img/icon-bulk@1x.svg\"}}),_c('span',{staticClass:\"caption-2 pl-4\",domProps:{\"innerHTML\":_vm._s(_vm.$t('promotional.expertise.bulkFasteners'))}})])],1)],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"width\":\"40px\",\"src\":\"/img/Surface Finishing icon@1x.svg\"}}),_c('span',{staticClass:\"caption-2 pl-3\",domProps:{\"innerHTML\":_vm._s(_vm.$t('promotional.expertise.surfaceFinish'))}})])],1),_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"width\":\"38px\",\"src\":\"/img/icon-custom@1x.svg\"}}),_c('span',{staticClass:\"caption-2 pl-4\",domProps:{\"innerHTML\":_vm._s(_vm.$t('promotional.expertise.customFastenersBag'))}})])],1),_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"width\":\"38px\",\"src\":\"/img/laserEngravingIcon.svg\"}}),_c('span',{staticClass:\"caption-2 pl-4\",domProps:{\"innerHTML\":_vm._s(_vm.$t('promotional.expertise.laserEngraving'))}})])],1),_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"width\":\"40px\",\"src\":\"/img/icon-cnc-turning@1x.svg\"}}),_c('span',{staticClass:\"caption-2 pl-4\",domProps:{\"innerHTML\":_vm._s(_vm.$t('promotional.expertise.cncTurning'))}})])],1)],1)],1),_c('v-carousel',{staticClass:\"primary rounded-r-xl\",attrs:{\"show-arrows\":false,\"height\":\"320px\",\"hide-delimiter-background\":\"\",\"hide-delimiters\":\"\"}},[_c('v-carousel-item',[_c('div',{staticClass:\"font-weight-bold text-center white--text\"},[_c('v-avatar',{attrs:{\"color\":\"blue\",\"size\":\"80\"}},[_c('img',{attrs:{\"src\":\"/img/client.png\"}})]),_c('p',{staticClass:\"mb-0 mt-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('promotional.clientComment'))+\" \")])],1),_c('div',{staticClass:\"text-center white--text mt-4\"},[_c('p',{staticClass:\"mb-0 text-h6\"},[_vm._v(\" Jonathan D. \")]),_c('p',{staticClass:\"mb-0 font-weight-medium body-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('promotional.clientPosition'))+\", \")]),_c('p',{staticClass:\"mb-0 font-weight-medium body-2\"},[_vm._v(\" HivelQ / Form Studio \")])])])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container\n style=\"color: white; min-height: 650px; height: 96%; min-width: 650px;\"\n class=\"primary px-15 rounded-r-xl\"\n >\n <v-sheet\n tag=\"div\"\n class=\"white--text primary\"\n tile\n >\n <v-row class=\"font-weight-bold text-h5 mb-8 mt-10\">\n {{ $t('promotional.title') }}\n </v-row>\n\n <v-row class=\"body-1 mb-8\">\n {{ $t('promotional.caption') }}\n </v-row>\n\n <v-row class=\"font-weight-bold text-h6 mb-4\">\n {{ $t('promotional.subTitle') }}\n </v-row>\n\n <v-row class=\"d-flex justify-center align-center mb-5\">\n <v-col cols=\"6\">\n <v-row class=\"d-flex align-center\">\n <v-col class=\"pt-0\" cols=\"12\">\n <img\n style=\"vertical-align:middle\"\n width=\"40px\"\n src=\"/img/icon-lasercutting@1x.svg\"\n >\n <span\n class=\"caption-2 pl-4\"\n v-html=\"$t('promotional.expertise.laserCutting')\"\n />\n </v-col>\n </v-row>\n <v-row class=\"d-flex align-center\">\n <v-col class=\"pt-0\" cols=\"12\">\n <img\n style=\"vertical-align:middle\"\n width=\"40px\"\n src=\"/img/icon-threading@1x.svg\"\n >\n <span\n class=\"caption-2 pl-4\"\n v-html=\"$t('promotional.expertise.threadingChamfering')\"\n />\n </v-col>\n </v-row>\n <v-row class=\"d-flex align-center\">\n <v-col class=\"pt-0\" cols=\"12\">\n <img\n style=\"vertical-align:middle\"\n width=\"40px\"\n src=\"/img/icon-bending@1x.svg\"\n >\n <span\n class=\"caption-2 pl-4\"\n v-html=\"$t('promotional.expertise.sheetMetal')\"\n />\n </v-col>\n </v-row>\n <v-row class=\"d-flex align-center\">\n <v-col class=\"pt-0\" cols=\"12\">\n <img\n style=\"vertical-align:middle\"\n width=\"40px\"\n src=\"/img/icon-bulk@1x.svg\"\n >\n <span\n class=\"caption-2 pl-4\"\n v-html=\"$t('promotional.expertise.bulkFasteners')\"\n />\n </v-col>\n </v-row>\n </v-col>\n <v-col cols=\"6\">\n <v-row class=\"d-flex align-center\">\n <v-col class=\"pt-0\" cols=\"12\">\n <img\n style=\"vertical-align:middle\"\n width=\"40px\"\n src=\"/img/Surface Finishing icon@1x.svg\"\n >\n <span\n class=\"caption-2 pl-3\"\n v-html=\"$t('promotional.expertise.surfaceFinish')\"\n />\n </v-col>\n </v-row>\n\n <v-row class=\"d-flex align-center\">\n <v-col class=\"pt-0\" cols=\"12\">\n <img\n style=\"vertical-align:middle\"\n width=\"38px\"\n src=\"/img/icon-custom@1x.svg\"\n >\n\n <span\n class=\"caption-2 pl-4\"\n v-html=\"$t('promotional.expertise.customFastenersBag')\"\n />\n </v-col>\n </v-row>\n <v-row class=\"d-flex align-center\">\n <v-col class=\"pt-0\" cols=\"12\">\n <img\n style=\"vertical-align:middle\"\n width=\"38px\"\n src=\"/img/laserEngravingIcon.svg\"\n >\n\n <span\n class=\"caption-2 pl-4\"\n v-html=\"$t('promotional.expertise.laserEngraving')\"\n />\n </v-col>\n </v-row>\n <v-row class=\"d-flex align-center\">\n <v-col class=\"pt-0\" cols=\"12\">\n <img\n style=\"vertical-align:middle\"\n width=\"40px\"\n src=\"/img/icon-cnc-turning@1x.svg\"\n >\n\n <span\n class=\"caption-2 pl-4\"\n v-html=\"$t('promotional.expertise.cncTurning')\"\n />\n </v-col>\n </v-row>\n </v-col>\n </v-row>\n <v-carousel\n :show-arrows=\"false\"\n height=\"320px\"\n class=\"primary rounded-r-xl\"\n hide-delimiter-background\n hide-delimiters\n >\n <v-carousel-item>\n <div class=\"font-weight-bold text-center white--text\">\n <v-avatar color=\"blue\" size=\"80\">\n <img src=\"/img/client.png\">\n </v-avatar>\n <p class=\"mb-0 mt-4\">\n {{ $t('promotional.clientComment') }}\n </p>\n </div>\n\n <div class=\"text-center white--text mt-4\">\n <p class=\"mb-0 text-h6\">\n Jonathan D.\n </p>\n <p class=\"mb-0 font-weight-medium body-2\">\n {{ $t('promotional.clientPosition') }},\n </p>\n <p class=\"mb-0 font-weight-medium body-2\">\n HivelQ / Form Studio\n </p>\n </div>\n </v-carousel-item>\n </v-carousel>\n </v-sheet>\n </v-container>\n</template>\n\n<script>\nexport default {\n name: 'promotional',\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Promotional.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Promotional.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Promotional.vue?vue&type=template&id=9f3348a0&\"\nimport script from \"./Promotional.vue?vue&type=script&lang=js&\"\nexport * from \"./Promotional.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VCarousel } from 'vuetify/lib/components/VCarousel';\nimport { VCarouselItem } from 'vuetify/lib/components/VCarousel';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VAvatar,VCarousel,VCarouselItem,VCol,VContainer,VRow,VSheet})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=40792b12&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"inline\"}},[(_vm.pdfReady)?_c('div',{staticStyle:{\"display\":\"inline\"}},[_c('v-btn',{staticClass:\"pr-1\",attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.isPDFDownload=true}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"20\"}},[_vm._v(\" mdi-open-in-new \")]),_vm._v(\" \"+_vm._s(_vm.$t('purchaseOrdersPdf.viewPurchaseOrder'))+\" \")],1),(!_vm.isPdfRemoved)?_c('v-icon',{attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showPdfRemoveDialog = true}}},[_vm._v(\" mdi-close \")]):_vm._e()],1):[_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.display=true;}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"25\"}},[_vm._v(\" mdi-file-pdf-box \")]),_vm._v(\" \"+_vm._s(_vm.$t('purchaseOrdersPdf.uploadPurchaseOrder'))+\" \")],1)],_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"500px\",\"is-loading\":_vm.isPdfRemoved,\"ok-button-text\":_vm.$t('common.delete')},on:{\"click:ok\":_vm.removePDF,\"click:cancel\":function($event){_vm.showPdfRemoveDialog =false}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.DeletePdfDrawing'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"pa-10 text-center\"},[_c('span',{staticClass:\"d-block\",domProps:{\"innerHTML\":_vm._s(_vm.$t('common.deleteDialogText', { name: _vm.$t('myPartPdf.PdfDrawingFile') }))}})])]},proxy:true}]),model:{value:(_vm.showPdfRemoveDialog),callback:function ($$v) {_vm.showPdfRemoveDialog=$$v},expression:\"showPdfRemoveDialog\"}}),(_vm.display)?_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"1000px\",\"eager\":true,\"is-loading\":_vm.isPdfUploadPending,\"is-ok-disabled\":!_vm.isFileAdded,\"ok-button-text\":_vm.$t('common.submit')},on:{\"click:ok\":function($event){_vm.display = false;},\"click:cancel\":function($event){_vm.display = false;_vm.removePDF()}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('purchaseOrdersPdf.uploadPurchaseOrder'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{ref:\"myDialog\",staticClass:\" text-center\"},[_c('v-card',{staticClass:\"mt-5\",staticStyle:{\"border\":\"dashed #D7D7D7 2px\",\"background-color\":\"#F1FDF3\",\"min-width\":\"905px\",\"max-width\":\"1000px\"},attrs:{\"height\":\"150\",\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"d-flex flex-column justify-space-between align-center\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',{attrs:{\"color\":\"green\",\"size\":\"60\"}},[_vm._v(\" mdi-cloud-upload-outline \")]),_c('span',{staticClass:\"headline mx-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.dragFilesToUpload'))+\" \")]),_c('v-btn',{staticStyle:{\"background-color\":\"#FFF\"},attrs:{\"id\":\"dropzone-click-target-pdf\",\"depressed\":\"\",\"text\":\"\",\"outlined\":\"\",\"color\":\"success\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.browse'))+\" \")])],1),_c('div',{staticClass:\"d-flex body-2\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.FileSupported'))+\" \")])])],1),_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.SingleFileOnly'))+\" \")],1)]},proxy:true}],null,false,3043183035),model:{value:(_vm.display),callback:function ($$v) {_vm.display=$$v},expression:\"display\"}}):_vm._e(),_c('v-overlay',{attrs:{\"value\":_vm.isPDFDownload,\"z-index\":\"90\"}}),_c('v-navigation-drawer',{staticStyle:{\"background-color\":\"#ada6a6\",\"z-index\":\"99 !important\"},attrs:{\"width\":\"60%\",\"fixed\":\"\",\"stateless\":\"\",\"hide-overlay\":\"\",\"right\":\"\",\"temporary\":\"\"},model:{value:(_vm.isPDFDownload),callback:function ($$v) {_vm.isPDFDownload=$$v},expression:\"isPDFDownload\"}},[_c('div',{ref:\"rfqViewerContainer\",staticStyle:{\"height\":\"calc(100% - 52px)\"}},[_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){_vm.isPDFDownload=false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),(_vm.isPDFDownload)?_c('core-pdf-viewer',{attrs:{\"file-path\":_vm.previewPDFUrl,\"item-height\":800}}):_vm._e()],1)])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div style=\"display: inline\">\n <div v-if=\"pdfReady\" style=\"display: inline\">\n <v-btn\n text\n small\n class=\"pr-1\"\n :loading=\"isPdfRemoved\"\n color=\"primary\"\n @click=\"isPDFDownload=true\"\n >\n <v-icon left size=\"20\">\n mdi-open-in-new\n </v-icon>\n {{ $t('purchaseOrdersPdf.viewPurchaseOrder') }}\n </v-btn>\n <v-icon v-if=\"!isPdfRemoved\" small @click=\"showPdfRemoveDialog = true\">\n mdi-close\n </v-icon>\n </div>\n <template v-else>\n <v-btn\n text\n small\n :loading=\"isPdfRemoved\"\n color=\"primary\"\n @click=\"display=true;\"\n >\n <v-icon left size=\"25\">\n mdi-file-pdf-box\n </v-icon>\n {{ $t('purchaseOrdersPdf.uploadPurchaseOrder') }}\n </v-btn>\n </template>\n\n <core-dialog\n v-model=\"showPdfRemoveDialog\"\n type=\"confirmation\"\n width=\"500px\"\n :is-loading=\"isPdfRemoved\"\n :ok-button-text=\"$t('common.delete')\"\n @click:ok=\"removePDF\"\n @click:cancel=\"showPdfRemoveDialog =false\"\n >\n <template #title>\n {{ $t('myPartPdf.DeletePdfDrawing') }}\n </template>\n <template #content>\n <div class=\"pa-10 text-center\">\n <span\n class=\"d-block\"\n v-html=\"$t('common.deleteDialogText', { name: $t('myPartPdf.PdfDrawingFile') })\"\n />\n </div>\n </template>\n </core-dialog>\n <core-dialog\n v-if=\"display\"\n v-model=\"display\"\n type=\"confirmation\"\n width=\"1000px\"\n :eager=\"true\"\n :is-loading=\"isPdfUploadPending\"\n :is-ok-disabled=\"!isFileAdded\"\n :ok-button-text=\"$t('common.submit')\"\n @click:ok=\"display = false;\"\n @click:cancel=\"display = false;removePDF()\"\n >\n <template #title>\n {{ $t('purchaseOrdersPdf.uploadPurchaseOrder') }}\n </template>\n <template #content>\n <div ref=\"myDialog\" class=\" text-center\">\n <v-card\n class=\"mt-5\"\n height=\"150\"\n flat\n style=\"border: dashed #D7D7D7 2px;\n background-color: #F1FDF3;\n min-width: 905px; max-width: 1000px;\"\n >\n <v-card-text class=\"d-flex flex-column justify-space-between align-center\" style=\"height: 100%\">\n <div class=\"d-flex align-center\">\n <v-icon color=\"green\" size=\"60\">\n mdi-cloud-upload-outline\n </v-icon>\n <span class=\"headline mx-4\">\n {{ $t('views.instantQuote.dragFilesToUpload') }}\n </span>\n <v-btn\n id=\"dropzone-click-target-pdf\"\n depressed\n text\n outlined\n color=\"success\"\n style=\"background-color: #FFF\"\n >\n {{ $t('views.instantQuote.browse') }}\n </v-btn>\n </div>\n <div class=\"d-flex body-2\" style=\"color:#4B4B4B\">\n {{ $t('myPartPdf.FileSupported') }}\n </div>\n </v-card-text>\n </v-card>\n {{ $t('myPartPdf.SingleFileOnly') }}\n </div>\n </template>\n </core-dialog>\n\n <v-overlay :value=\"isPDFDownload\" z-index=\"90\" />\n <v-navigation-drawer\n v-model=\"isPDFDownload\"\n width=\"60%\"\n fixed\n stateless\n hide-overlay\n right\n temporary\n style=\"background-color: #ada6a6;z-index: 99 !important;\"\n >\n <div\n ref=\"rfqViewerContainer\"\n style=\"height: calc(100% - 52px);\"\n >\n <div class=\"d-flex justify-end\">\n <v-btn\n icon\n x-large\n @click=\"isPDFDownload=false\"\n >\n <v-icon>mdi-close</v-icon>\n </v-btn>\n </div>\n\n <core-pdf-viewer\n v-if=\"isPDFDownload\"\n :file-path=\"previewPDFUrl\"\n :item-height=\"800\"\n />\n </div>\n </v-navigation-drawer>\n </div>\n</template>\n\n<script>\nimport Dropzone from 'dropzone';\nimport 'dropzone/dist/dropzone.css';\nimport { mapState } from 'vuex';\n\nexport default {\n name: 'PurchaseOrdersPdf',\n props: {\n pdfUrl: {\n type: String,\n },\n },\n data() {\n return {\n pdfReady: false,\n previewPDFUrl: '',\n isPdfUploadPending: false,\n isFileAdded: false,\n showPdfRemoveDialog: false,\n myDropZone: null,\n pdfPageHeight: 0,\n pdfPageWidth: 0,\n display: false,\n isPdfRemoved: false,\n isPDFDownload: false\n };\n },\n computed: {\n ...mapState('auth', ['accessToken']),\n dropzoneOptions: vm => ({\n url: '/',\n paramName: 'file',\n headers: {\n Authorization: vm.accessToken,\n },\n thumbnailWidth: 150,\n maxFilesize: 20,\n timeout: 9999999,\n maxFiles: 1,\n parallelUploads: 1,\n acceptedFiles: '.pdf',\n autoProcessQueue: false,\n dictDefaultMessage: 'dropZone.dictDefaultMessage',\n dictFallbackMessage: 'dropZone.dictFallbackMessage',\n dictFallbackText: 'dropZone.dictFallbackText',\n dictFileTooBig: 'dropZone.dictFileTooBig',\n dictInvalidFileType: 'dropZone.dictInvalidFileType',\n dictResponseError: 'dropZone.dictResponseError',\n dictCancelUpload: 'dropZone.dictCancelUpload',\n dictCancelUploadConfirmation: 'dropZone.dictCancelUploadConfirmation',\n dictRemoveFile: 'dropZone.dictRemoveFile',\n dictMaxFilesExceeded: 'dropZone.dictMaxFilesExceeded',\n clickable: '#dropzone-click-target-pdf',\n previewTemplate: vm.template(),\n init() {\n this.on('maxfilesexceeded', file => {\n this.removeAllFiles();\n this.addFile(file);\n });\n this.on('error', async file => {\n this.removeFile(file);\n });\n this.on('success', async () => {\n vm.isPdfUploadPending = false;\n vm.display = false;\n await vm.checkIfPdfExist();\n });\n\n this.on('sending', () => {\n vm.isPdfUploadPending = true;\n });\n\n this.on('addedfile', async file => {\n const removeButton = Dropzone.createElement('<span class=\"mdi mdi-close\" style=\"vertical-align: middle; font-size: 1.5rem; cursor: pointer\" ></span>');\n vm.previewPDFUrl = URL.createObjectURL(file);\n vm.$emit('pdfUrl', vm.previewPDFUrl);\n vm.pdfReady = true;\n vm.isFileAdded = true;\n removeButton.addEventListener('click', e => {\n e.preventDefault();\n e.stopPropagation();\n this.removeFile(file);\n vm.removePDF();\n });\n\n file.previewElement.children[1].appendChild(removeButton);\n });\n }\n\n }),\n },\n watch: {\n display(newValue) {\n if (newValue) {\n setTimeout(() => {\n this.myDropZone = new Dropzone(this.$refs.myDialog, this.dropzoneOptions);\n }, 800);\n } else {\n this.myDropZone = null;\n }\n },\n pdfUrl(val) {\n if (val) {\n this.pdfReady = true;\n this.previewPDFUrl = this.pdfUrl;\n } else {\n this.pdfReady = false;\n }\n }\n },\n\n mounted() {\n const resizeObserver = new ResizeObserver(() => {\n /* 70 breathing room */\n this.pdfPageWidth = this.$refs.rfqViewerContainer.getBoundingClientRect().width - 70;\n const ratio = 8.5 / 11;\n this.pdfPageHeight = this.pdfPageWidth / ratio;\n });\n resizeObserver.observe(this.$refs.rfqViewerContainer);\n },\n methods: {\n\n async onFileChanged(e) {\n const [pdfFile] = e.target.files;\n this.previewPDFUrl = URL.createObjectURL(pdfFile);\n this.$emit('pdfUrl', this.previewPDFUrl);\n this.pdfReady = true;\n },\n async removePDF() {\n URL.revokeObjectURL(this.previewPDFUrl);\n this.pdfReady = false;\n this.showPdfRemoveDialog = false;\n this.previewPDFUrl = '';\n this.$emit('pdfUrl', this.previewPDFUrl);\n this.isFileAdded = false;\n },\n template() {\n return `\n <div class=\"d-flex align-start flex-column mt-16\">\n <p style=\"vertical-align: bottom\">Document selected</p>\n <p id=\"test\" class=\"pa-2\" style=\"background-color: #dee0e4; display: inline\">\n <span class=\"mdi mdi-open-in-new font-weight-medium\" style=\"vertical-align: middle; color:#2c984e; font-size:1.2rem\"></span>\n <span class=\"font-weight-bold\" style=\"vertical-align: bottom; color:#2c984e; font-size:1rem\" data-dz-name></span>\n </p>\n </div>`;\n }\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PurchaseOrdersPdf.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PurchaseOrdersPdf.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PurchaseOrdersPdf.vue?vue&type=template&id=a6977b18&\"\nimport script from \"./PurchaseOrdersPdf.vue?vue&type=script&lang=js&\"\nexport * from \"./PurchaseOrdersPdf.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VBtn,VCard,VCardText,VIcon,VNavigationDrawer,VOverlay})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=style&index=0&id=2f939555&scoped=true&lang=css&\"","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'csi-analysis';\n\nconst Model = class CsiAnalysis extends BaseModel {\n static modelName = 'CsiAnalysis';\n\n static instanceDefaults() {\n return {\n };\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenOrderStepsBanner.vue?vue&type=style&index=0&id=21b21687&scoped=true&lang=css&\"","function loadLocaleMessages() {\n const locales = require.context('./', true, /[A-Za-z0-9-_,\\s]+\\.json$/i);\n const messages = {};\n locales.keys().forEach(key => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i);\n if (matched && matched.length > 1) {\n const locale = matched[1];\n messages[locale] = locales(key);\n }\n });\n return messages;\n}\n\nexport default loadLocaleMessages();\n","import Vue from 'vue';\nimport VueI18n from 'vue-i18n';\nimport appMessages from '../locales';\nimport _ from './simulateLodash';\n\n/** Add/replace client's i18n translations */\n// import komacutMessages from '../_komacut/locales';\n\nVue.use(VueI18n);\n\nexport default new VueI18n({\n fallbackLocale: 'en-US',\n messages: _.defaultsDeep(\n {},\n appMessages,\n ),\n});\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'referrals';\n\nconst Model = class Referral extends BaseModel {\n static modelName = 'Referral';\n\n static instanceDefaults() {\n return {\n firstName: '',\n lastName: '',\n email: '',\n company: '',\n };\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('v-card-title',{staticClass:\"py-1\",staticStyle:{\"background-color\":\"#4fb052\",\"color\":\"white\"}},[_vm._v(\" \"+_vm._s(_vm._.get(_vm.partDesignData[0], 'value'))+\" \")]),_c('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',_vm._l((_vm.partDesignData.slice(1)),function(item,i){return _c('tr',{key:item.field,class:{'dark': (i % 2 !== 0)}},[_c('td',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('img',{staticClass:\"mr-1\",attrs:{\"src\":(\"/img/\" + (item.icon) + \".svg\"),\"width\":\"21px\",\"height\":\"21px\"}}),_vm._v(\" \"+_vm._s(item.field)+\" \")]),_c('td',[_c('span',{style:([{ color: _vm.getTextColor(item.value) }])},[_vm._v(\" \"+_vm._s(item.value)+\" \")])])])}),0)]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-card>\n <v-card-title\n class=\"py-1\"\n style=\"background-color: #4fb052; color: white;\"\n >\n {{ _.get(partDesignData[0], 'value') }}\n </v-card-title>\n\n <v-simple-table dense>\n <template v-slot:default>\n <tbody>\n <tr\n v-for=\"(item, i) in partDesignData.slice(1)\"\n :key=\"item.field\"\n :class=\"{'dark': (i % 2 !== 0)}\"\n >\n <td style=\"display: flex; align-items: center;\">\n <img\n :src=\"`/img/${item.icon}.svg`\"\n class=\"mr-1\"\n width=\"21px\"\n height=\"21px\"\n >\n {{ item.field }}\n </td>\n <td>\n <span :style=\"[{ color: getTextColor(item.value) }]\">\n {{ item.value }}\n </span>\n </td>\n </tr>\n </tbody>\n </template>\n </v-simple-table>\n </v-card>\n</template>\n\n<script>\nexport default {\n name: 'PartDesignTable',\n props: {\n part: Object,\n },\n computed: {\n partDesignData() {\n let tableData = [];\n\n const analysisData = _.get(this.partViewerPart, 'CsiAnalysisData', []);\n\n if (_.isEmpty(analysisData)) {\n tableData = [\n { field: null, value: 'Parts Design Data' },\n { field: 'Net Weight (kg)', value: '-' },\n { field: 'Gross Weight (kg)', value: '-' },\n { field: 'Material usage (%)', value: '-' },\n { field: '# of Fabrication Processes', value: '-' },\n { field: 'Quantity / sheet', value: '-' },\n { field: 'Material', value: '-' },\n ];\n } else {\n tableData = analysisData.filter(datum => datum.Category === 'T2')\n .sort((datum1, datum2) => +datum1.Rank - +datum2.Rank)\n .map(datum => ({ field: datum.Description, value: datum.Value }));\n }\n\n const icons = [\n 'dumbbell',\n 'dumbbell',\n 'lightning-bolt',\n 'gear',\n 'scale',\n 'material',\n ];\n return tableData.map((row, index) => ({ ...{ icon: icons[index - 1] }, ...row }));\n },\n },\n methods: {\n getTextColor(value) {\n switch (value) {\n case 'Pass':\n case 'Yes':\n return 'green';\n case 'Fail':\n case 'No':\n return 'red';\n default:\n return '';\n }\n }\n }\n};\n</script>\n\n<style scoped>\n::v-deep .v-label {\n font-size: 12px !important\n}\n::v-deep .v-input__slot {\n padding: 0 !important;\n}\n::v-deep .v-input__slot label{\n margin-top: 2px !important;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartDesignTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartDesignTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PartDesignTable.vue?vue&type=template&id=82313dcc&scoped=true&\"\nimport script from \"./PartDesignTable.vue?vue&type=script&lang=js&\"\nexport * from \"./PartDesignTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PartDesignTable.vue?vue&type=style&index=0&id=82313dcc&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 \"82313dcc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VCardTitle,VSimpleTable})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'packaging-tools';\n\nconst Model = class PackagingTool extends BaseModel {\n static modelName = 'PackagingTool';\n\n static instanceDefaults() {\n return {\n stlFile: '',\n qty: 1000,\n spacing: 1,\n unitWeight: 1,\n width: 800,\n length: 470,\n height: 400,\n maxWeight: 1000,\n maxTime: 300,\n engineResult: null,\n };\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-card',{staticStyle:{\"border-radius\":\"0\",\"background-color\":\"#fafffb\"},attrs:{\"flat\":\"\"}},[(_vm.isCardView )?[_c('v-data-table',{attrs:{\"headers\":_vm.partsTableHeaders,\"items\":_vm.parts,\"loading\":_vm._.isEmpty(_vm.parts),\"hide-default-footer\":\"\",\"no-data-text\":_vm.$t('common.noDataAvailable'),\"loading-text\":_vm.$t('common.loadingItems'),\"disable-pagination\":\"\",\"data-cy\":\"table-list\",\"footer-props\":{ 'items-per-page-text': _vm.$t('common.rowPerPageText'),\n 'page-text': (\"{0}-{1} \" + (_vm.$t('common.of')) + \" {2}\") }},scopedSlots:_vm._u([{key:\"loading\",fn:function(){return [_c('v-skeleton-loader',{staticClass:\"pa-5 d-flex justify-space-between\",attrs:{\"width\":\"100%\",\"loading\":\"\",\"type\":\"komacutLine@10\",\"types\":{komacutLine:(\"table-cell@\" + _vm.nbrOfPart)}}})]},proxy:true},{key:\"item.CustItemName\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',{staticClass:\"ml-3\",staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('core-thumbnail-viewer',{staticClass:\"mr-5\",attrs:{\"part\":item,\"part-lookup-key\":'Item',\"width\":60,\"height\":60,\"data-cy\":\"image-list\"}}),_c('span',[_c('span',{attrs:{\"data-cy\":\"part-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.CustItemName))}})])],1)]}},{key:\"item.Revision\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"revision-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.Revision))}})]}},{key:\"item.CustItemDesc\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"description-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.CustItemDesc))}})]}},{key:\"item.ReqQty\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"qty-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.ReqQty))}})]}},{key:\"item.Tolerance\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"tolerance-list\"}},[_vm._v(_vm._s(item.toleranceTranslation)+\" \")])]}},{key:\"item.PriceMOQ\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"unit-list\"}},[_vm._v(_vm._s(_vm.currency(_vm.customerPriceRange(item)[0].Price, {symbol: _vm.company.currencySymbol}).format()))])]}},{key:\"item.MaterialStr\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"material-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.materialTranslation))}})]}},{key:\"item.materialSeriesShortened\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"series-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.materialSeriesTranslation))}})]}},{key:\"item.MaterialThicknessStr\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"thickness-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.materialThicknessTranslation))}})]}},{key:\"item.Roughness\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"roughness-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(_vm.getRoughnessName(item.Roughness)))}})]}},{key:\"item.MaterialFinishStr\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"finish-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.materialFinishTranslation))}})]}},{key:\"item.Net\",fn:function(ref){\n var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"net-list\"}},[_vm._v(_vm._s(_vm.currency(parseFloat(_vm.customerPriceRange(item)[0].Price, 10) * item.ReqQty, {symbol: _vm.company.currencySymbol}).format()))])]}}],null,false,3876298955)}),((_vm.loadingParts || (_vm.isLoadingPartsRfqId===_vm.rfqId) && !_vm._.isEmpty(_vm.parts)))?_vm._l(((_vm.nbrOfPart - _vm.partsIdInStore.length)),function(index){return _c('v-skeleton-loader',{key:(\"table-\" + index),staticClass:\"mx-3\",attrs:{\"width\":\"100%\",\"loading\":\"\",\"type\":\"table-row-divider\"}})}):_vm._e(),(!_vm._.isEmpty(_vm.filteredPartItems) && (_vm.nbrOfPart >1) && (_vm.filteredPartItems.length !== _vm.nbrOfPart))?_c('v-card',{staticClass:\"grey lighten-2 text-center pa-0 text-uppercase\",attrs:{\"flat\":\"\"},on:{\"click\":_vm.getAllMissingPart}},[_c('span',{staticStyle:{\"font-size\":\"12px\"}},[_vm._v(\" \"+_vm._s((\"\" + (_vm.displayAll ? _vm.$t('views.rfqs.hidePart') : _vm.$t('views.rfqs.showAllParts'))))+\" \")]),_c('br'),_c('div',{staticClass:\"mdi mdi-chevron-down mt-n2\",class:{'mdi-rotate-180':_vm.displayAll},staticStyle:{\"font-size\":\"20px\",\"height\":\"25px\"}})]):_vm._e()]:_c('v-sheet',{staticClass:\"pt-0 px-2\",attrs:{\"color\":\"#fafffb\"}},[_vm._l((_vm.parts),function(part){return _c('core-rfq-part-card',{key:(\"card-\" + (part._id)),attrs:{\"filter-part\":_vm.filteredPartItems,\"search-value\":_vm.searchValue,\"customer-price-range\":_vm.customerPriceRange(part),\"part\":part,\"is-mesh-visible\":true},on:{\"click:sideView\":function($event){return _vm.onClickChild(part)}}})}),(_vm.loadingParts || (_vm.isLoadingPartsRfqId===_vm.rfqId))?_vm._l(((_vm.nbrOfPart - _vm.partsIdInStore.length)),function(index){return _c('core-rfq-card-skeleton',{key:(\"skeleton-\" + index)})}):_vm._e(),(!_vm._.isEmpty(_vm.filteredPartItems) && (_vm.nbrOfPart >1) && (_vm.filteredPartItems.length !== _vm.nbrOfPart))?_c('v-card',{staticClass:\"grey lighten-2 text-center pa-0 text-uppercase\",attrs:{\"flat\":\"\"},on:{\"click\":_vm.getAllMissingPart}},[_c('span',{staticStyle:{\"font-size\":\"12px\"}},[_vm._v(\" \"+_vm._s((\"\" + (_vm.displayAll ? _vm.$t('views.rfqs.hidePart') : _vm.$t('views.rfqs.showAllParts'))))+\" \")]),_c('br'),_c('div',{staticClass:\"mdi mdi-chevron-down mt-n2\",class:{'mdi-rotate-180':_vm.displayAll},staticStyle:{\"font-size\":\"20px\",\"height\":\"25px\"}})]):_vm._e()],2),_c('v-card-actions',{staticClass:\"pb-3 px-0 d-flex justify-end\",staticStyle:{\"background-color\":\"#fafffb\"}},[(_vm.isExpired)?_c('v-btn',{staticClass:\"mr-2\",attrs:{\"depressed\":\"\",\"width\":\"242\",\"color\":\"primary\",\"data-cy\":\"refresh-rfq-button\"},on:{\"click\":function($event){return _vm.$emit('refresh-rfq', _vm.rfqId)}}},[_vm._v(\" \"+_vm._s(_vm.$t('common.refreshQuote'))+\" \")]):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"disabled\":!(_vm.isSvgPending || _vm.is2dDrawingPending)},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('div',_vm._g({},on),[(_vm._.get(_vm.user, 'isAdmin') || _vm._.get(_vm.user, ['rights', 'placeOrder']))?_c('v-btn',_vm._b({attrs:{\"disabled\":_vm.isExpired || _vm.isSvgPending || _vm.is2dDrawingPending || (_vm.currentOrder && !_vm.currentOrder.canAddItem(_vm.parts[0])),\"depressed\":\"\",\"width\":\"242\",\"color\":\"primary\",\"data-cy\":\"place-order-button\"},on:{\"click\":function($event){return _vm.addEstimateToOrder()}}},'v-btn',attrs,false),[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrder'))+\" \")]):_vm._e()],1)]}}])},[(_vm.is2dDrawingPending)?[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrderToolTip'))+\" \")]:[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrderSvgToolTip'))+\" \")]],2)],1)],2)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container fluid class=\"py-0\">\n <v-row>\n <v-col\n cols=\"12\"\n class=\"py-0\"\n >\n <v-card flat style=\"border-radius:0; background-color: #fafffb\">\n <template v-if=\"isCardView \">\n <v-data-table\n :headers=\"partsTableHeaders\"\n :items=\"parts\"\n :loading=\"_.isEmpty(parts)\"\n hide-default-footer\n :no-data-text=\"$t('common.noDataAvailable')\"\n :loading-text=\"$t('common.loadingItems')\"\n disable-pagination\n data-cy=\"table-list\"\n :footer-props=\"{ 'items-per-page-text': $t('common.rowPerPageText'),\n 'page-text': `{0}-{1} ${$t('common.of')} {2}` }\"\n >\n <template #loading>\n <v-skeleton-loader\n class=\"pa-5 d-flex justify-space-between\"\n width=\"100%\"\n loading\n :type=\"`komacutLine@10`\"\n :types=\"{komacutLine:`table-cell@${nbrOfPart}`}\"\n />\n </template>\n <template #item.CustItemName=\"{ item }\">\n <div class=\"ml-3\" style=\"display: flex; align-items: center;\">\n <core-thumbnail-viewer\n :part=\"item\"\n :part-lookup-key=\"'Item'\"\n :width=\"60\"\n :height=\"60\"\n class=\"mr-5\"\n data-cy=\"image-list\"\n />\n <span>\n <span data-cy=\"part-list\" v-html=\"highlight(item.CustItemName)\" />\n </span>\n </div>\n </template>\n <template #item.Revision=\"{ item }\">\n <span data-cy=\"revision-list\" v-html=\"highlight(item.Revision)\" />\n </template>\n <template #item.CustItemDesc=\"{ item }\">\n <span data-cy=\"description-list\" v-html=\"highlight(item.CustItemDesc)\" />\n </template>\n <template #item.ReqQty=\"{ item }\">\n <span data-cy=\"qty-list\" v-html=\"highlight(item.ReqQty)\" />\n </template>\n <template #item.Tolerance=\"{item}\">\n <span data-cy=\"tolerance-list\">{{\n item.toleranceTranslation\n }}\n </span>\n </template>\n <template #item.PriceMOQ=\"{ item }\">\n <span data-cy=\"unit-list\">{{\n currency(customerPriceRange(item)[0].Price, {symbol: company.currencySymbol}).format()\n }}</span>\n </template>\n <template #item.MaterialStr=\"{ item }\">\n <span\n data-cy=\"material-list\"\n v-html=\"highlight(item.materialTranslation)\"\n />\n </template>\n <!-- <template #item.PDF=\"{item}\">-->\n <!-- <core-my-part-pdf-viewer :part=\"item\" />-->\n <!-- </template>-->\n <template #item.materialSeriesShortened=\"{ item }\">\n <span\n data-cy=\"series-list\"\n v-html=\"highlight(item.materialSeriesTranslation)\"\n />\n </template>\n\n <template #item.MaterialThicknessStr=\"{ item }\">\n <span\n data-cy=\"thickness-list\"\n v-html=\"highlight(item.materialThicknessTranslation)\"\n />\n </template>\n\n <template #item.Roughness=\"{ item }\">\n <span\n data-cy=\"roughness-list\"\n v-html=\"highlight(getRoughnessName(item.Roughness))\"\n />\n </template>\n\n <template #item.MaterialFinishStr=\"{ item }\">\n <span\n data-cy=\"finish-list\"\n v-html=\"highlight(item.materialFinishTranslation)\"\n />\n </template>\n\n <template #item.Net=\"{ item }\">\n <span data-cy=\"net-list\">{{\n currency(parseFloat(customerPriceRange(item)[0].Price, 10) * item.ReqQty, {symbol: company.currencySymbol}).format()\n }}</span>\n </template>\n </v-data-table>\n\n <template v-if=\"(loadingParts || (isLoadingPartsRfqId===rfqId) && !_.isEmpty(parts))\">\n <v-skeleton-loader\n v-for=\"index in (nbrOfPart - partsIdInStore.length)\"\n :key=\"`table-${index}`\"\n class=\"mx-3\"\n width=\"100%\"\n loading\n :type=\"`table-row-divider`\"\n />\n </template>\n <v-card\n v-if=\"!_.isEmpty(filteredPartItems) && (nbrOfPart >1) && (filteredPartItems.length !== nbrOfPart)\"\n flat\n class=\"grey lighten-2 text-center pa-0 text-uppercase\"\n @click=\"getAllMissingPart\"\n >\n <span style=\" font-size: 12px\">\n {{ `${displayAll ? $t('views.rfqs.hidePart') : $t('views.rfqs.showAllParts')}` }}\n </span>\n <br>\n <div\n class=\"mdi mdi-chevron-down mt-n2\"\n style=\"font-size: 20px; height:25px\"\n :class=\"{'mdi-rotate-180':displayAll}\"\n />\n </v-card>\n </template>\n\n <v-sheet v-else color=\"#fafffb\" class=\"pt-0 px-2\">\n <core-rfq-part-card\n v-for=\"(part) in parts\"\n :key=\"`card-${part._id}`\"\n :filter-part=\"filteredPartItems\"\n :search-value=\"searchValue\"\n :customer-price-range=\"customerPriceRange(part)\"\n :part=\"part\"\n :is-mesh-visible=\"true\"\n @click:sideView=\"onClickChild(part)\"\n />\n <template v-if=\"loadingParts || (isLoadingPartsRfqId===rfqId)\">\n <core-rfq-card-skeleton v-for=\"index in (nbrOfPart - partsIdInStore.length)\" :key=\"`skeleton-${index}`\" />\n </template>\n <v-card\n v-if=\"!_.isEmpty(filteredPartItems) && (nbrOfPart >1) && (filteredPartItems.length !== nbrOfPart)\"\n flat\n class=\"grey lighten-2 text-center pa-0 text-uppercase\"\n @click=\"getAllMissingPart\"\n >\n <span style=\" font-size: 12px\">\n {{ `${displayAll ? $t('views.rfqs.hidePart') : $t('views.rfqs.showAllParts')}` }}\n </span>\n <br>\n <div\n class=\"mdi mdi-chevron-down mt-n2\"\n style=\"font-size: 20px; height:25px\"\n :class=\"{'mdi-rotate-180':displayAll}\"\n />\n </v-card>\n </v-sheet>\n\n <v-card-actions style=\"background-color: #fafffb\" class=\"pb-3 px-0 d-flex justify-end\">\n <v-btn\n v-if=\"isExpired\"\n class=\"mr-2\"\n depressed\n width=\"242\"\n color=\"primary\"\n data-cy=\"refresh-rfq-button\"\n @click=\"$emit('refresh-rfq', rfqId)\"\n >\n {{ $t('common.refreshQuote') }}\n </v-btn>\n <v-tooltip bottom :disabled=\"!(isSvgPending || is2dDrawingPending)\">\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\">\n <v-btn\n v-if=\"_.get(user, 'isAdmin') || _.get(user, ['rights', 'placeOrder'])\"\n v-bind=\"attrs\"\n :disabled=\"isExpired || isSvgPending || is2dDrawingPending || (currentOrder && !currentOrder.canAddItem(parts[0]))\"\n depressed\n width=\"242\"\n color=\"primary\"\n data-cy=\"place-order-button\"\n @click=\"addEstimateToOrder()\"\n >\n {{ $t('views.productOption.addToOrder') }}\n </v-btn>\n </div>\n </template>\n <template v-if=\"is2dDrawingPending\">\n {{ $t('views.productOption.addToOrderToolTip') }}\n </template>\n <template v-else>\n {{ $t('views.productOption.addToOrderSvgToolTip') }}\n </template>\n </v-tooltip>\n </v-card-actions>\n </v-card>\n </v-col>\n </v-row>\n </v-container>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport currency from 'currency.js';\nimport { mapState, mapGetters, mapActions } from 'vuex';\nimport CurrencyFormatterMixin from '@/mixins/currencyFormatter';\n\nconst { Part, Company } = models.api;\n\nexport default {\n name: 'RfqPartsTable',\n mixins: [CurrencyFormatterMixin],\n props: {\n rfqId: { type: String },\n isLoadingPartsRfqId: { type: String },\n nbrOfPart: { type: Number },\n isCardView: { type: Boolean },\n searchValue: { type: String },\n isExpired: { type: Boolean },\n filteredPartItems: { type: Array, default: () => [] }\n },\n data() {\n return {\n currency,\n displayAll: false,\n orderId: '',\n loadingParts: false\n };\n },\n computed: {\n ...mapState('app', ['locale', 'currentOrder']),\n ...mapGetters('auth', ['user']),\n partsIdInStore() {\n return Part.findInStore({\n query: {\n EstimateID: this.rfqId,\n },\n }).data.map(part => part._id);\n },\n\n parts() {\n const queryFilter = {\n query: {\n EstimateID: this.rfqId,\n }\n };\n\n if (!this.displayAll && !_.isEmpty(this.filteredPartItems)) {\n queryFilter.query._id = { $in: this.filteredPartItems };\n }\n\n return Part.findInStore(queryFilter).data;\n },\n\n isSvgPending: vm => vm.parts.some(part => part.Machine === 'sheet-metal' && part.LaserEngraving === '1' && !part.SvgFile),\n\n is2dDrawingPending: vm => vm.parts.some(part => {\n const need2dDrawing = _.get(part, 'Others.need2dDrawing', false);\n return part.Machine === 'sheet-metal' && need2dDrawing && !part.TwoDFile;\n }),\n\n company: () => Company.getFromStore(0),\n\n partsTableHeaders: vm => [\n {\n text: vm.$t('views.rfqs.partNumber'),\n value: 'CustItemName',\n },\n {\n text: vm.$t('views.rfqs.revision'),\n value: 'Revision',\n },\n {\n text: vm.$t('common.description'),\n value: 'CustItemDesc',\n },\n {\n text: vm.$t('views.rfqs.material'),\n value: 'MaterialStr',\n },\n {\n text: vm.$t('views.rfqs.series'),\n value: 'materialSeriesShortened',\n },\n {\n text: vm.$t('views.rfqs.thickness'),\n value: 'MaterialThicknessStr',\n },\n {\n text: vm.$t('views.rfqs.roughness'),\n value: 'Roughness',\n },\n {\n text: vm.$t('views.rfqs.finish'),\n value: 'MaterialFinishStr',\n },\n {\n text: vm.$t('views.instantQuote.tolerances'),\n value: 'Tolerance',\n },\n {\n text: vm.$t('views.myParts.productLocation'),\n value: 'FactoryName',\n },\n\n {\n text: vm.$t('views.rfqs.unitPrice', { currencySymbol: vm.company.currencySymbol }),\n value: 'PriceMOQ',\n sortable: false,\n },\n {\n text: vm.$t('views.rfqs.quantity'),\n value: 'ReqQty',\n },\n {\n text: vm.$t('views.rfqs.netPrice', { currencySymbol: vm.company.currencySymbol }),\n value: 'Net',\n sortable: false,\n },\n ].map(h => ({\n align: 'center',\n class: ['text-uppercase'],\n ...h,\n })),\n },\n\n methods: {\n ...mapActions('app', ['initCurrentOrder']),\n\n onClickChild(value) {\n this.$emit('click:openSideView', value);\n },\n priceRange(part) {\n try {\n return JSON.parse(part.PriceMOQ);\n } catch {\n return false;\n }\n },\n async getAllMissingPart() {\n this.displayAll = !this.displayAll;\n if (!this.displayAll) {\n return;\n }\n\n if (this.partsIdInStore.length === this.nbrOfPart) {\n return;\n }\n this.loadingParts = true;\n await Part.find({\n query: {\n EstimateID: this.rfqId,\n _id: { $nin: this.partsIdInStore }\n }\n });\n this.loadingParts = false;\n },\n customerPriceRange(part) {\n if (!this.priceRange(part)) {\n return [];\n }\n const reqQtyPriceIndex = this.priceRange(part)\n .findIndex(range => range.Qty > part.ReqQty) - 1;\n if (reqQtyPriceIndex < 0) {\n return this.priceRange(part).slice(-1);\n }\n return this.priceRange(part)\n .slice(reqQtyPriceIndex, Math.min(reqQtyPriceIndex + 3, this.priceRange(part).length));\n },\n highlight(value) {\n const escapedStringRegEx = _.escapeRegExp(this.searchValue);\n const re = new RegExp(`(${escapedStringRegEx})`, 'gi');\n if (!_.isEmpty(this.filteredPartItems)) {\n return value.replace(\n re,\n '<span style=\"background-color: yellow\">$1</span>'\n );\n }\n return value;\n },\n getPrice(estimateLine) {\n if (!estimateLine.PriceMOQ) {\n return currency(0, { symbol: this.company.currencySymbol });\n }\n const pricePerMoq = JSON.parse(estimateLine.PriceMOQ)[0];\n if (!pricePerMoq) {\n return currency(0, { symbol: this.company.currencySymbol });\n }\n return currency(pricePerMoq.Price, { symbol: this.company.currencySymbol });\n },\n\n async addEstimateToOrder() {\n const order = await this.initCurrentOrder();\n\n this.parts.forEach(part => order.addItem('estimate', part._id, part.ReqQty));\n },\n\n getRoughnessName(roughnessValue) {\n switch (roughnessValue) {\n case '6.0':\n return this.$t('views.rfqs.roughnessMilled');\n case '3.2':\n return this.$t('views.rfqs.roughnessStandard');\n case '1.6':\n return this.$t('views.rfqs.roughnessFine');\n case '0.8':\n return this.$t('views.rfqs.roughnessGrade');\n default:\n return '-';\n }\n },\n }\n};\n</script>\n\n<style scoped>\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > thead > tr > th {\n height: 25px !important;\n margin-top: 10px;\n}\n\n>>> .v-data-table__wrapper > table > thead > tr > th {\n color: #9f9f9f !important;;\n background-color: #f4f4f4 !important;\n height: 15px !important;\n}\n\n::v-deep thead th:first-child {\n border-radius: 0 !important;\n}\n\n::v-deep thead th:last-child {\n border-radius: 0 !important;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RfqPartsTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RfqPartsTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RfqPartsTable.vue?vue&type=template&id=378ca4d1&scoped=true&\"\nimport script from \"./RfqPartsTable.vue?vue&type=script&lang=js&\"\nexport * from \"./RfqPartsTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RfqPartsTable.vue?vue&type=style&index=0&id=378ca4d1&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 \"378ca4d1\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCol,VContainer,VDataTable,VRow,VSheet,VSkeletonLoader,VTooltip})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableUnitPricing.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expand-transition',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.computedExpanded),expression:\"computedExpanded\"}]},[_c('v-card-text',{staticClass:\"overflow-y-auto\",staticStyle:{\"max-height\":\"200px\"},attrs:{\"id\":\"scroll-target\"}},[(_vm._.get(_vm.data[0], 'pricing'))?_c('core-rfq-parts-table',{attrs:{\"parts\":_vm.data,\"dense\":true}}):_c('core-order-items-table',{attrs:{\"items\":_vm.data,\"dense\":true}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-expand-transition v-show=\"computedExpanded\">\n <v-card-text\n id=\"scroll-target\"\n style=\"max-height: 200px\"\n class=\"overflow-y-auto\"\n >\n <core-rfq-parts-table\n v-if=\"_.get(data[0], 'pricing')\"\n :parts=\"data\"\n :dense=\"true\"\n />\n <core-order-items-table\n v-else\n :items=\"data\"\n :dense=\"true\"\n />\n <!-- <v-list-->\n <!-- v-scroll:#scroll-target=\"onScroll\"-->\n <!-- dense-->\n <!-- align=\"center\"-->\n <!-- justify=\"center\"-->\n <!-- >-->\n <!-- <v-list-item-->\n <!-- v-for=\"(part, i) in data\"-->\n <!-- :key=\"i\"-->\n <!-- @click=\"()=>{}\"-->\n <!-- >-->\n <!-- <v-list-item-content>-->\n <!-- {{ part.clientPartNo || part.part.clientPartNo }}-->\n <!-- </v-list-item-content>-->\n <!-- <v-list-item-content>-->\n <!-- {{ part.material || part.part.material }}-->\n <!-- </v-list-item-content>-->\n <!-- </v-list-item>-->\n <!-- </v-list>-->\n </v-card-text>\n </v-expand-transition>\n</template>\n\n<script>\nexport default {\n props: ['expanded', 'data', 'toggleaction'],\n computed: {\n computedExpanded: {\n get() {\n return this.toggleExpanded;\n },\n set() {\n this.toggleaction();\n }\n }\n },\n methods: {\n onScroll(e) {\n this.offsetTop = e.target.scrollTop;\n },\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RFQCardTransition.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RFQCardTransition.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RFQCardTransition.vue?vue&type=template&id=2828f4ca&\"\nimport script from \"./RFQCardTransition.vue?vue&type=script&lang=js&\"\nexport * from \"./RFQCardTransition.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\ninstallComponents(component, {VCardText,VExpandTransition})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'materials';\n\nconst Model = class Material extends BaseModel {\n static modelName = 'Material';\n\n static instanceDefaults() {\n return {\n };\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ownerships.vue?vue&type=style&index=0&id=07802151&scoped=true&lang=css&\"","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\nimport i18n from '@/plugins/i18n';\n\nconst servicePath = 'parts';\n\nconst Model = class Part extends BaseModel {\n static modelName = 'Part';\n\n static instanceDefaults() {\n return {\n MaterialStr: '',\n MaterialSeriesStr: '',\n EstimateLineStatus: {\n isDrawingUploaded: false,\n isDrawingUploadedMsg: '',\n isManufacturable: false,\n isManufacturableMsg: '',\n isThumbnailUploaded: false,\n isThumbnailUploadedMsg: '',\n isObjUploaded: false,\n isObjUploadedMsg: '',\n isDxfUploaded: false,\n isDxfUploadedMsg: '',\n isMeshUploaded: false,\n isMeshUploadedMsg: '',\n isThicknessCalculated: false,\n isThicknessCalculatedMsg: ''\n }\n };\n }\n\n static setupInstance(data) {\n if (data.ExpiryDate) {\n data.ExpiryDate = new Date(data.ExpiryDate);\n }\n if (data.MaterialStr && data.MaterialSeriesStr) {\n this.materialSeriesShortened = data.MaterialSeriesStr.replace(data.MaterialStr, '').trim();\n }\n return data;\n }\n\n get materialTranslation() {\n return i18n.locale === 'en-US' ? this.MaterialStr : this.MaterialStrChs;\n }\n\n get materialThicknessTranslation() {\n return i18n.locale === 'en-US' ? this.MaterialThicknessStr : this.MaterialThicknessStrChs;\n }\n\n get materialSeriesTranslation() {\n return i18n.locale === 'en-US' ? this.materialSeriesShortened : this.MaterialSeriesStrChs;\n }\n\n get materialFinishTranslation() {\n return i18n.locale === 'en-US' ? this.MaterialFinishStr.replace(/-/g, '') : this.MaterialFinishStrChs.replace(/-/g, '');\n }\n\n get materialFinishOptionTranslation() {\n return i18n.locale === 'en-US' ? this.MaterialFinishOptionStr.replace(/-/g, '') : this.MaterialFinishOptionStrChs.replace(/-/g, '');\n }\n\n get toleranceTranslation() {\n if (!this.Tolerance) {\n return '-';\n }\n\n return i18n.t(`views.instantQuote.tolerance${this.Tolerance.replace('Precision', '').trim()}`);\n }\n\n get is2dModel() {\n if (this.CustFileName) {\n return this.CustFileName.split('.').pop().replaceAll(' ', '').toUpperCase() === 'DXF';\n }\n return false;\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-navigation-drawer',{staticStyle:{\"overflow-y\":\"hidden !important\",\"width\":\"100%\",\"background-color\":\"rgba(25, 25, 25, .9)\"},attrs:{\"fixed\":\"\",\"stateless\":\"\",\"hide-overlay\":\"\",\"right\":\"\",\"temporary\":\"\"},model:{value:(_vm.isSidePanelOpen),callback:function ($$v) {_vm.isSidePanelOpen=$$v},expression:\"isSidePanelOpen\"}},[_c('div',{staticClass:\"d-flex justify-end\",staticStyle:{\"background-color\":\"transparent\",\"width\":\"100%\",\"z-index\":\"99\",\"height\":\"112px\"}},[_c('v-btn',{attrs:{\"icon\":\"\",\"dark\":\"\"},on:{\"click\":function($event){_vm.$emit('closeSidePanel', false); _vm.isSidePanelOpen=false; _vm.activeTab = 0;}}},[_c('v-icon',{attrs:{\"x-large\":\"\"}},[_vm._v(\" mdi-close \")])],1)],1),(_vm.isMeshUploaded)?_c('div',{staticStyle:{\"position\":\"absolute\",\"top\":\"136px\",\"left\":\"50%\",\"transform\":\"translateX(-50%)\",\"z-index\":\"999\"}},[_c('v-icon',{staticClass:\"mr-12\",attrs:{\"large\":\"\",\"color\":\"#5FCE79\"}},[_vm._v(\" mdi-rotate-3d \")]),_c('v-icon',{attrs:{\"large\":\"\",\"color\":\"#5FCE79\"}},[_vm._v(\" mdi-magnify-minus-outline \")])],1):_vm._e(),_c('div',[_c('v-sheet',{staticClass:\"pa-3\",staticStyle:{\"position\":\"fixed\",\"top\":\"50px\",\"right\":\"0\"},attrs:{\"rounded\":\"\"}},[(_vm.part && _vm.part.Item)?_c('div',{staticStyle:{\"height\":\"100%\"}},[_c('v-tabs',{staticClass:\"flex-grow-1\",staticStyle:{\"width\":\"400px\"},attrs:{\"centered\":\"\",\"grow\":\"\"},model:{value:(_vm.activeTab),callback:function ($$v) {_vm.activeTab=$$v},expression:\"activeTab\"}},[_c('v-tab',{attrs:{\"disabled\":_vm.analysisDataRankOne && _vm.analysisDataRankOne.Description === '3dSideViewer.error'}},[_c('v-icon',{staticClass:\"mr-2\"},[_vm._v(\" mdi-file-document \")]),_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('common.specifications'))+\" \")])],1),_c('v-tab',{attrs:{\"disabled\":_vm.analysisDataRankOne && _vm.analysisDataRankOne.Description === '3dSideViewer.error'}},[_c('v-icon',{staticClass:\"mr-2\"},[_vm._v(\" mdi-text-box-check-outline \")]),_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('common.analysis'))+\" \")])],1)],1),(_vm.isAnalysisPending)?_c('div',{staticClass:\"d-flex align-center justify-center\",staticStyle:{\"width\":\"400px\",\"z-index\":\"99\",\"height\":\"calc(100vh - 250px)\",\"overflow-y\":\"auto\"}},[_c('v-progress-circular',{attrs:{\"size\":90,\"width\":5,\"indeterminate\":\"\",\"color\":\"primary\"}})],1):_c('v-tabs-items',{staticStyle:{\"max-width\":\"450px\",\"z-index\":\"99\",\"height\":\"calc(100vh - 250px)\",\"overflow-y\":\"auto\"},model:{value:(_vm.activeTab),callback:function ($$v) {_vm.activeTab=$$v},expression:\"activeTab\"}},[(_vm.analysisDataRankOne && _vm.analysisDataRankOne.Description === '3dSideViewer.error')?[_c('v-tab-item',{staticClass:\"pt-5\"},[_c('v-alert',{attrs:{\"color\":\"#F3D9DE\"}},[_c('div',{staticClass:\"body-2 font-weight-bold\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"9999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"mr-1\",staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"color\":\"#B00020\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-alert-circle-outline \")])]}}],null,false,1649899894)},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.errorTooltip'))}})]),_c('div',{staticClass:\"d-inline\"},[_c('span',{staticClass:\"text-uppercase\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('common.Sorry'))),_c('p',{staticClass:\"text--secondary caption mb-0 mt-2\"},[_vm._v(\" \"+_vm._s(_vm.$t(_vm.analysisDataRankOne.Value))+\" \")])])])])],1)])],1)]:[_c('v-tab-item',{staticClass:\"pt-5\"},[_c('core-parts-design-data-table',{attrs:{\"part\":_vm.part}}),_c('core-manufacturing-process-table',{staticClass:\"my-2\",attrs:{\"part\":_vm.part}}),(_vm.twoDNestingResultSvgUrl)?_c('img',{staticClass:\"my-2\",attrs:{\"src\":_vm.twoDNestingResultSvgUrl,\"width\":\"400px\",\"alt\":\"nestingEngineOutput\"}}):_vm._e()],1),_c('v-tab-item',{staticClass:\"pt-5\"},[_c('core-dfm-table',{staticClass:\"my-2\",attrs:{\"part\":_vm.part}}),_c('core-process-limitations-table',{staticClass:\"my-2\",attrs:{\"part\":_vm.part}}),_c('core-warning-error-table',{staticClass:\"my-2\",attrs:{\"part\":_vm.part}})],1)]],2)],1):_c('div',{staticClass:\"d-flex font-weight-bold justify-end align-center\",staticStyle:{\"height\":\"500px\"}},[_c('span',{staticClass:\"mx-12\"},[(_vm.analysisDataRankOne && _vm.analysisDataRankOne.Description === '3dSideViewer.error')?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(_vm.analysisDataRankOne.Value))+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('common.calculateCostToViewDetails'))+\" \")])])])]),_c('div',{ref:\"largeInspector\"}),(_vm.isOpen && !_vm.isAnalysisPending && !_vm.isMountedPending)?_c('core-model-viewer',{attrs:{\"part\":_vm.part,\"height\":_vm.modelViewerHeight,\"width\":_vm.modelViewerWidth,\"viewport\":_vm.$refs.largeInspector,\"is-svg-uploaded\":_vm.isSvgUploaded,\"is-mesh-uploaded\":_vm.isMeshUploaded,\"is-interactive\":\"\"}}):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-navigation-drawer\n v-model=\"isSidePanelOpen\"\n style=\";\n overflow-y: hidden !important;\n width: 100%;\n background-color: rgba(25, 25, 25, .9);\"\n fixed\n stateless\n hide-overlay\n right\n temporary\n >\n <div\n class=\"d-flex justify-end\"\n style=\"background-color: transparent;width:100%; z-index: 99; height: 112px\"\n >\n <v-btn\n icon\n dark\n @click=\"$emit('closeSidePanel', false); isSidePanelOpen=false; activeTab = 0;\"\n >\n <v-icon x-large>\n mdi-close\n </v-icon>\n </v-btn>\n </div>\n <div\n v-if=\"isMeshUploaded\"\n style=\"position:absolute; top: 136px; left: 50%; transform: translateX(-50%); z-index: 999\"\n >\n <v-icon large class=\"mr-12\" color=\"#5FCE79\">\n mdi-rotate-3d\n </v-icon>\n <v-icon large color=\"#5FCE79\">\n mdi-magnify-minus-outline\n </v-icon>\n </div>\n <div>\n <v-sheet\n style=\"position: fixed; top: 50px; right: 0;\"\n rounded\n class=\"pa-3\"\n >\n <div v-if=\"part && part.Item\" style=\"height: 100%;\">\n <v-tabs\n v-model=\"activeTab\"\n class=\"flex-grow-1\"\n centered\n grow\n style=\"width:400px;\"\n >\n <v-tab :disabled=\"analysisDataRankOne && analysisDataRankOne.Description === '3dSideViewer.error'\">\n <v-icon class=\"mr-2\">\n mdi-file-document\n </v-icon>\n <span>\n {{ $t('common.specifications') }}\n </span>\n </v-tab>\n\n <v-tab :disabled=\"analysisDataRankOne && analysisDataRankOne.Description === '3dSideViewer.error'\">\n <v-icon class=\"mr-2\">\n mdi-text-box-check-outline\n </v-icon>\n <span>\n {{ $t('common.analysis') }}\n </span>\n </v-tab>\n </v-tabs>\n <div\n v-if=\"isAnalysisPending\"\n class=\"d-flex align-center justify-center\"\n style=\"width: 400px; z-index: 99; height: calc(100vh - 250px); overflow-y: auto;\"\n >\n <v-progress-circular\n :size=\"90\"\n :width=\"5\"\n indeterminate\n color=\"primary\"\n />\n </div>\n <!-- TODO no need for components, bring them up to top level -->\n <v-tabs-items\n v-else\n v-model=\"activeTab\"\n style=\"max-width: 450px; z-index: 99; height: calc(100vh - 250px); overflow-y: auto;\"\n >\n <template\n v-if=\"analysisDataRankOne && analysisDataRankOne.Description === '3dSideViewer.error'\"\n >\n <v-tab-item class=\"pt-5\">\n <v-alert\n color=\"#F3D9DE\"\n >\n <div class=\"body-2 font-weight-bold\">\n <v-tooltip top z-index=\"9999\">\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon\n v-bind=\"attrs\"\n class=\"mr-1\"\n color=\"#B00020\"\n style=\"vertical-align: sub\"\n v-on=\"on\"\n >\n mdi-alert-circle-outline\n </v-icon>\n </template>\n <span v-html=\"$t('sidePanelErrorAndWarning.errorTooltip')\" />\n </v-tooltip>\n <div class=\"d-inline\">\n <span class=\"text-uppercase\">\n <span>\n <!-- {{ $t('common.Error') }}<!– - {{ $t('common.serverResponseError') }}–>-->\n {{ $t('common.Sorry') }}<!-- - {{ $t('common.serverResponseError') }}-->\n <p class=\"text--secondary caption mb-0 mt-2\">\n {{ $t(analysisDataRankOne.Value) }}\n </p>\n </span>\n </span>\n </div>\n </div>\n </v-alert>\n </v-tab-item>\n </template>\n <template v-else>\n <v-tab-item class=\"pt-5\">\n <core-parts-design-data-table :part=\"part\" />\n <core-manufacturing-process-table :part=\"part\" class=\"my-2\" />\n <img\n v-if=\"twoDNestingResultSvgUrl\"\n class=\"my-2\"\n :src=\"twoDNestingResultSvgUrl\"\n width=\"400px\"\n alt=\"nestingEngineOutput\"\n >\n </v-tab-item>\n <v-tab-item class=\"pt-5\">\n <core-dfm-table :part=\"part\" class=\"my-2\" />\n <core-process-limitations-table :part=\"part\" class=\"my-2\" />\n <core-warning-error-table :part=\"part\" class=\"my-2\" />\n </v-tab-item>\n </template>\n </v-tabs-items>\n </div>\n <div v-else class=\"d-flex font-weight-bold justify-end align-center\" style=\"height:500px;\">\n <span class=\"mx-12\">\n <span v-if=\"analysisDataRankOne && analysisDataRankOne.Description === '3dSideViewer.error'\">\n {{ $t(analysisDataRankOne.Value) }}\n </span>\n <span v-else>\n {{ $t('common.calculateCostToViewDetails') }}\n </span>\n </span>\n </div>\n </v-sheet>\n <div ref=\"largeInspector\" />\n <core-model-viewer\n v-if=\"isOpen && !isAnalysisPending && !isMountedPending\"\n :part=\"part\"\n :height=\"modelViewerHeight\"\n :width=\"modelViewerWidth\"\n :viewport=\"$refs.largeInspector\"\n :is-svg-uploaded=\"isSvgUploaded\"\n :is-mesh-uploaded=\"isMeshUploaded\"\n is-interactive\n />\n </div>\n </v-navigation-drawer>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapState } from 'vuex';\n\nconst { CsiAnalysis } = models.api;\nexport default {\n name: 'PartViewerDrawer',\n props: {\n part: Object,\n isOpen: { type: Boolean, default: false },\n },\n data() {\n return {\n isLoadingSidePanelValues: false,\n modelViewerWidth: 0,\n modelViewerHeight: 0,\n activeTab: 0,\n isSidePanelOpen: this.isOpen,\n isMountedPending: true,\n };\n },\n computed: {\n ...mapState('csi-analysis', { isAnalysisPending: 'isGetPending' }),\n ...mapState('auth', ['accessToken']),\n isMeshUploaded() {\n const estimateLineStatus = _.get(this.part, 'EstimateLineStatus', null);\n if (estimateLineStatus && estimateLineStatus.isMeshUploaded !== undefined) {\n return estimateLineStatus.isMeshUploaded;\n }\n return !this.part.is2dModel;\n },\n isSvgUploaded() {\n const estimateLineStatus = _.get(this.part, 'EstimateLineStatus', null);\n if (estimateLineStatus && estimateLineStatus.isSvgUploaded !== undefined) {\n return estimateLineStatus.isSvgUploaded;\n }\n return this.part.is2dModel;\n },\n analysisDataRankOne() {\n if (this.part) {\n const data = _.get(CsiAnalysis.getFromStore(this.part.Item), 'data', []);\n return data.find(d => d.Rank === '1');\n }\n return null;\n },\n twoDNestingResultSvgUrl() {\n const host = process.env.VUE_APP_API_URL;\n const is2dSvgNestedUploaded = _.get(this.part, 'Others.is2dSvgNestedUploaded', false);\n if (is2dSvgNestedUploaded) {\n const { DrawingRowPointer } = this.part;\n const fileName = `${DrawingRowPointer.toLowerCase()}-2dNested.SVG`;\n return `${host}uploads/${fileName}/${this.accessToken}/${this.part.Item}/File`;\n }\n const estimateLineStatus = _.get(this.part, 'EstimateLineStatus', null);\n if (estimateLineStatus && estimateLineStatus.isSvgNestedUploadedCsi) {\n const fileName = `${this.part.DrawingRowPointer.toLowerCase()}-2dNested.SVG`;\n return `${host}uploads/${fileName}/${this.accessToken}/${this.part.Item}/File?updatedAt=${this.part.updatedAt}`;\n }\n return null;\n },\n\n },\n watch: {\n isOpen(val) {\n this.isSidePanelOpen = val;\n if (val) {\n document.documentElement.style.overflowY = 'hidden';\n } else {\n document.documentElement.style.overflowY = 'visible';\n }\n },\n },\n beforeDestroy() {\n window.removeEventListener('resize', this.handleResize);\n },\n\n mounted() {\n window.addEventListener('resize', this.handleResize);\n this.handleResize();\n this.isMountedPending = false;\n },\n created() {\n if (this.part && this.part.Item) { CsiAnalysis.get(this.part.Item); }\n },\n methods: {\n\n handleResize() {\n if (this.isOpen) {\n if (this.isSvgUploaded) {\n this.modelViewerWidth = window.innerWidth - 425;\n } else {\n this.modelViewerWidth = window.innerWidth - 200;\n }\n this.modelViewerHeight = window.innerHeight - 112;\n } else {\n this.modelViewerWidth = 0;\n this.modelViewerHeight = 0;\n }\n },\n }\n};\n</script>\n<style scoped>\n>>> .v-navigation-drawer__content {\n overflow-y: hidden;\n min-width: 900px;\n}\n\n.part-viewer {\n position: fixed;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n z-index: 20;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartViewerDrawer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartViewerDrawer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PartViewerDrawer.vue?vue&type=template&id=a8ec6348&scoped=true&\"\nimport script from \"./PartViewerDrawer.vue?vue&type=script&lang=js&\"\nexport * from \"./PartViewerDrawer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PartViewerDrawer.vue?vue&type=style&index=0&id=a8ec6348&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 \"a8ec6348\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAlert,VBtn,VIcon,VNavigationDrawer,VProgressCircular,VSheet,VTab,VTabItem,VTabs,VTabsItems,VTooltip})\n","export default {\n methods: {\n formatAddressText(address) {\n const addressFields = [\n 'address1',\n 'address2',\n 'city',\n 'region',\n 'zip',\n 'country',\n ];\n\n return addressFields\n .map(field => address[field])\n .filter(field => !!field)\n .join(', ');\n },\n },\n};\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logout.vue?vue&type=style&index=0&id=3056b065&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('v-sheet',{directives:[{name:\"intersect\",rawName:\"v-intersect\",value:({\n handler: _vm.onIntersect,\n options: {\n threshold: [1.0]\n }\n }),expression:\"{\\n handler: onIntersect,\\n options: {\\n threshold: [1.0]\\n }\\n }\"}],staticClass:\"pdfCanvas\",attrs:{\"tag\":\"div\",\"elevation\":\"10\",\"width\":_vm.pageWidth,\"height\":_vm.pageHeight}},[_c('canvas',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isLoaded),expression:\"isLoaded\"}],ref:\"pdfCanvas\",staticStyle:{\"direction\":\"ltr\"},attrs:{\"id\":\"pdfCanvas\",\"data-cy\":\"pdf-canvas\",\"width\":_vm.pageWidth,\"height\":_vm.pageHeight}}),(!_vm.isLoaded)?_c('v-skeleton-loader',{attrs:{\"height\":_vm.pageHeight,\"type\":\"article,\\n list-item-three-line,\\n list-item-avatar-two-line,\\n list-item-three-line,\\n list-item-avatar-three-line\"}}):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"d-flex flex-column align-center\">\n <v-sheet\n v-intersect=\"{\n handler: onIntersect,\n options: {\n threshold: [1.0]\n }\n }\"\n tag=\"div\"\n elevation=\"10\"\n :width=\"pageWidth\"\n :height=\"pageHeight\"\n class=\"pdfCanvas\"\n >\n <canvas\n v-show=\"isLoaded\"\n id=\"pdfCanvas\"\n ref=\"pdfCanvas\"\n style=\"direction: ltr;\"\n data-cy=\"pdf-canvas\"\n :width=\"pageWidth\"\n :height=\"pageHeight\"\n />\n\n <v-skeleton-loader\n v-if=\"!isLoaded\"\n :height=\"pageHeight\"\n type=\"article,\n list-item-three-line,\n list-item-avatar-two-line,\n list-item-three-line,\n list-item-avatar-three-line\"\n />\n </v-sheet>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n page: {\n type: Object,\n required: true\n },\n itemHeight: {\n type: Number,\n required: true\n },\n containerRef: {\n type: Object\n },\n },\n\n data: () => ({\n height: 0,\n width: 0,\n isLoaded: false,\n }),\n\n computed: {\n pageHeight: vm => (vm.height ? vm.height : vm.itemHeight - vm.margin),\n pageWidth: vm => (vm.width ? vm.width : (vm.itemHeight - vm.margin) * (vm.baseRatio)),\n margin: () => 40,\n baseRatio: () => (8 / 11),\n },\n\n watch: {\n pageHeight() {\n this.getPage();\n },\n },\n\n created() {\n this.getPage();\n },\n\n methods: {\n\n onIntersect() {\n this.$emit('enterViewport', this.page.pageNumber);\n },\n\n async getPage() {\n try {\n if (!this.page.pdf) {\n return;\n }\n\n const page = await this.page.pdf.getPage(this.page.pageNumber);\n let viewport = page.getViewport({ scale: 1 });\n const scale = (this.itemHeight - this.margin) / viewport.height;\n viewport = page.getViewport({ scale }); // Prepare canvas using PDF page dimensions\n const canvas = this.$refs.pdfCanvas;\n const context = canvas.getContext('2d');\n this.height = viewport.height;\n this.width = viewport.width;\n // Render PDF page into canvas context\n const renderContext = { canvasContext: context, viewport };\n const renderTask = page.render(renderContext);\n renderTask.promise.then(() => {\n this.isLoaded = true;\n });\n } catch (e) {\n console.error(e);\n }\n }\n },\n};\n</script>\n\n<style>\n.pdfCanvas {\n transition: all 0.5s ease-in-out;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfCanvas.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfCanvas.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PdfCanvas.vue?vue&type=template&id=665923de&\"\nimport script from \"./PdfCanvas.vue?vue&type=script&lang=js&\"\nexport * from \"./PdfCanvas.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PdfCanvas.vue?vue&type=style&index=0&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 null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSheet,VSkeletonLoader})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Intersect from 'vuetify/lib/directives/intersect'\ninstallDirectives(component, {Intersect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"rounded d-flex flex-column align-center py-0\",staticStyle:{\"background-color\":\"#f0fdf3\",\"min-height\":\"130px\"}},[_c('span',{staticClass:\"text-subtitle-1 mt-1\",staticStyle:{\"color\":\"rgba(0, 0, 0, 0.6)\"},attrs:{\"data-cy\":\"price-per-unit-text\"}},[_vm._v(_vm._s(_vm.$t('common.unitPricePerQuantity')))]),_c('div',{staticStyle:{\"display\":\"grid\",\"width\":\"min-content\",\"height\":\"80px\",\"grid-template-columns\":\"max-content max-content\",\"grid-template-rows\":\"25px 25px\"}},[_vm._l((_vm.customerPriceRange),function(bracket,i){return [_c('span',{key:(\"qty-\" + i),staticClass:\"text-right\",staticStyle:{\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":(\"unit-price-qty-\" + i)}},[_vm._v(\" \"+_vm._s(i === 0 ? _vm.quantity : bracket.Qty)+\": \"+_vm._s('\\xa0')+\" \")]),_c('span',{key:(\"price-\" + i),attrs:{\"data-cy\":(\"unit-price-amount-\" + i)}},[_vm._v(\" \"+_vm._s(_vm.currency(bracket.Price, {symbol: _vm.company.currencySymbol}).format())+\" \")])]}),(!_vm.customerPriceRange.length)?[_c('span',{staticClass:\"text-h6 pt-2\",staticStyle:{\"width\":\"170px\",\"color\":\"#128347\"}},[_vm._v(\" Enter details to calculate \")])]:_vm._e()],2),_c('core-rang-price-moq-label',{staticStyle:{\"width\":\"180px\"},attrs:{\"part\":_vm.part}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container\n style=\"background-color: #f0fdf3; min-height: 130px;\"\n class=\"rounded d-flex flex-column align-center py-0\"\n >\n <span class=\"text-subtitle-1 mt-1\" data-cy=\"price-per-unit-text\" style=\"color: rgba(0, 0, 0, 0.6)\">{{ $t('common.unitPricePerQuantity') }}</span>\n\n <div\n style=\"\n display: grid;\n width: min-content;\n height: 80px;\n grid-template-columns: max-content max-content;\n grid-template-rows: 25px 25px;\n \"\n >\n <template v-for=\"(bracket, i) in customerPriceRange\">\n <span\n :key=\"`qty-${i}`\"\n style=\"color: #8D8D8D\"\n class=\"text-right\"\n :data-cy=\"`unit-price-qty-${i}`\"\n >\n {{ i === 0 ? quantity : bracket.Qty }}: {{ '\\xa0' }}\n </span>\n <span :key=\"`price-${i}`\" :data-cy=\"`unit-price-amount-${i}`\">\n {{ currency(bracket.Price, {symbol: company.currencySymbol}).format() }}\n </span>\n </template>\n <template v-if=\"!customerPriceRange.length\">\n <span class=\"text-h6 pt-2\" style=\"width: 170px; color: #128347;\">\n Enter details to calculate\n </span>\n </template>\n </div>\n <core-rang-price-moq-label\n style=\"width: 180px;\"\n :part=\"part\"\n />\n </v-container>\n</template>\n\n<script>\nimport currency from 'currency.js';\nimport { models } from 'feathers-vuex';\n\nconst { Company } = models.api;\n\nexport default {\n name: 'PriceMoqTableUnitPriceVariation',\n props: {\n part: Object,\n },\n data: () => ({\n currency,\n }),\n computed: {\n company: () => Company.getFromStore(0),\n\n priceRange: vm => JSON.parse(_.get(vm, 'part.PriceMOQ', null)),\n\n quantity: vm => {\n if (!vm.part.ReqQty || vm.part.ReqQty <= 0) {\n return 1;\n }\n if (vm.part.ReqQty >= 1000000) {\n return 1000000;\n }\n return vm.part.ReqQty;\n },\n customerPriceRange() {\n if (!this.priceRange || this.quantity <= 0) {\n return [];\n }\n\n const reqQtyPriceIndex = this.priceRange\n .findIndex(range => range.Qty > this.quantity) - 1;\n\n if (reqQtyPriceIndex < 0) {\n return this.priceRange.slice(-1);\n }\n return this.priceRange\n .slice(reqQtyPriceIndex, Math.min(reqQtyPriceIndex + 3, this.priceRange.length));\n },\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceMoqTableUnitPriceVariation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceMoqTableUnitPriceVariation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PriceMoqTableUnitPriceVariation.vue?vue&type=template&id=80b0a86e&\"\nimport script from \"./PriceMoqTableUnitPriceVariation.vue?vue&type=script&lang=js&\"\nexport * from \"./PriceMoqTableUnitPriceVariation.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VContainer})\n","import ModelableMixin from './modelable';\n\nexport default {\n mixins: [\n ModelableMixin,\n ],\n\n props: {\n value: {},\n },\n\n mounted() {\n this.originalFormData = _.cloneDeep(this.value);\n },\n\n data() {\n return {\n originalFormData: {},\n };\n },\n\n computed: {\n localValue: {\n get() {\n return this.value;\n },\n\n set(value) {\n this.$emit('input', value);\n },\n },\n\n originalFormDataChanged() {\n return !_.isEqual(this.localValue, this.originalFormData);\n },\n },\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"partCard pa-1\",attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"flex-nowrap\",attrs:{\"no-gutters\":\"\"}},[(_vm.productGroup.HideDrawingsLink !== 1)?_c('v-col',{staticClass:\"pt-1\",staticStyle:{\"width\":\"140px\"},attrs:{\"cols\":\"auto\",\"align-self\":\"start\"}},[_c('v-btn',{attrs:{\"depressed\":\"\",\"text\":\"\",\"color\":\"primary\",\"data-cy\":\"drawing-table-btn\"},on:{\"click\":function($event){_vm.isDrawingsDialogOpen = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-vector-square \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.drawings'))+\" \")],1)],1):_vm._e(),_c('v-col',[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_vm._l((_vm.productOptions),function(productOption,index){return [(productOption.attributeTypes[0].fieldType === 'dropdown')?_c('v-col',{key:(\"dropdown-\" + (productOption.id)),staticClass:\"px-1 pb-2\",attrs:{\"cols\":\"auto\",\"align-self\":\"end\"}},[_c('v-select',{staticClass:\"fit\",attrs:{\"dense\":\"\",\"attach\":\"\",\"persistent-placeholder\":\"\",\"no-data-text\":_vm.$t('common.noDataAvailableListType'),\"label\":productOption[_vm.locale === 'en-US' ? 'label' : 'labelChs' ],\"items\":_vm.filteredItems(index),\"item-text\":_vm.locale === 'cn' ? 'textChs' : 'text',\"data-cy\":(\"dropdown-\" + (productOption.id)),\"data-cy-2\":((productOption.label.toLowerCase().replaceAll(' ', '-')) + \"-select\"),\"item-value\":\"id\",\"outlined\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('span',{attrs:{\"data-cy\":\"diameter-option\"}},[_vm._v(_vm._s(_vm.locale === 'en-US' ? data.item.text : data.item.textChs))])]}}],null,true),model:{value:(_vm.selectedOption[productOption.id]),callback:function ($$v) {_vm.$set(_vm.selectedOption, productOption.id, $$v)},expression:\"selectedOption[productOption.id]\"}})],1):(productOption.attributeTypes[0].fieldType === 'checkbox')?_c('v-col',{key:(\"checkbox-\" + (productOption.id)),staticClass:\"pl-0\",attrs:{\"align-self\":\"end\"}},[_c('v-checkbox',{attrs:{\"label\":productOption[_vm.locale === 'cn' ? 'labelChs' : 'label' ],\"true-value\":productOption.options[1].id,\"false-value\":productOption.options[0].id,\"data-cy\":(\"checkbox-\" + (productOption.id)),\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectedOption[productOption.id]),callback:function ($$v) {_vm.$set(_vm.selectedOption, productOption.id, $$v)},expression:\"selectedOption[productOption.id]\"}})],1):_vm._e(),(productOption.attributeTypes[0].fieldType === 'readonly')?_c('v-col',{key:(\"plainText-\" + (productOption.id)),attrs:{\"data-cy\":(\"plainText-\" + (productOption.id))}},[_c('div',{staticClass:\"caption\",staticStyle:{\"color\":\"rgba(0,0,0,0.6)\"}},[_vm._v(\" \"+_vm._s(productOption[_vm.locale === 'cn' ? 'labelChs' : 'label'])+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.getReadOnlyProduct[_vm.locale === 'cn' ? 'textChs' : 'text'])+\" \")])]):_vm._e()]})],2)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[(_vm.productGroup.HidePriceMOQ !== 1)?_c('core-rang-price-moq',{staticClass:\"ml-auto mt-auto align-content-end align-self-end\",attrs:{\"part\":_vm.selectedProduct}}):_vm._e()],1)],1),_c('v-row',{staticClass:\"flex-nowrap\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pr-2\",staticStyle:{\"width\":\"140px\"},attrs:{\"align-self\":\"end\",\"cols\":\"auto\"}},[_c('v-text-field',{staticClass:\"mb-0\",attrs:{\"dense\":\"\",\"data-cy\":\"quantity-input-upload\",\"label\":_vm.$t('views.rfqs.quantity'),\"rules\":[_vm.isPositiveInteger],\"min\":\"1\",\"max\":\"9999999\",\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()},\"click\":function($event){$event.stopPropagation();}},nativeOn:{\"input\":function($event){_vm.reqQty = _vm.updateValue($event);}},model:{value:(_vm.reqQty),callback:function ($$v) {_vm.reqQty=$$v},expression:\"reqQty\"}})],1),_c('v-col',{staticClass:\"pr-2\",attrs:{\"align-self\":\"end\",\"cols\":\"auto\"}},[_c('v-sheet',{staticClass:\"pa-2 py-0 rounded-lg \",attrs:{\"color\":\"#F1FDF3\"}},[_c('div',{staticClass:\"caption text--secondary text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.unitPrice', {currencySymbol: _vm.currencySymbol}))+\" \")]),_c('span',[_vm._v(\" \"+_vm._s((_vm.UnitPrice * 1).toFixed(5))+\" \")])])],1),_c('v-col',{staticClass:\"pr-2\",attrs:{\"align-self\":\"end\",\"cols\":\"auto\"}},[_c('v-sheet',{staticClass:\"pa-2 py-0 rounded-lg \",attrs:{\"color\":\"#F1FDF3\"}},[_c('div',{staticClass:\"caption text--secondary text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.totalPrice', {currencySymbol: _vm.currencySymbol}))+\" \")]),_c('span',[_vm._v(\" \"+_vm._s((_vm.UnitPrice * _vm.reqQty).toFixed(2))+\" \")])])],1),(_vm.productGroup.ShowUploadFile === 1)?_c('v-col',{staticClass:\"pr-2\",attrs:{\"align-self\":\"end\",\"cols\":\"auto\"}},[_c('core-drawing-consultancy-pdf',{attrs:{\"pdf-url\":_vm.drawingConsultancyPdfBlobUrl},on:{\"pdfUrl\":function (event) { return _vm.drawingConsultancyPdfBlobUrl = event; }}})],1):_vm._e(),_c('v-spacer'),_c('v-col',{staticClass:\"pr-2 text-right\",attrs:{\"cols\":\"auto\",\"align-self\":\"end\"}},[(_vm.productGroup.HideAddToBag !== 1)?_c('v-btn',{attrs:{\"outlined\":\"\",\"color\":\"primary\",\"disabled\":!_vm.selectedProduct || !_vm.reqQty,\"data-cy\":\"add-product-to-custom-bag\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('add-to-bag', {product:_vm.selectedProduct, quantity: _vm.reqQty})}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToCustomBag'))+\" \")]):_vm._e()],1),_c('v-col',{staticClass:\"text-left\",attrs:{\"align-self\":\"end\",\"cols\":\"auto\"}},[(_vm.currentOrder && !_vm.currentOrder.canAddHardwareProduct(_vm.selectedProduct))?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g({},on),[_c('v-btn',_vm._b({attrs:{\"color\":\"primary\",\"data-cy\":\"add-product-to-order\",\"disabled\":!_vm.canOrder},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToOrder()}}},'v-btn',attrs,false),[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrder'))+\" \")])],1)]}}],null,false,1386607774)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrderHardwareToolTip'))+\" \")])]):_c('v-btn',{attrs:{\"color\":\"primary\",\"data-cy\":\"add-product-to-order\",\"disabled\":!_vm.canOrder},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToOrder()}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrder'))+\" \")])],1)],1),(_vm.selectedProduct && _vm.reqQty < _vm.minQty)?_c('v-row',{staticClass:\"flex-nowrap\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pa-0 pt-1\",attrs:{\"cols\":\"12\"}},[_c('v-alert',{staticClass:\"text-center mb-0 mr-0\",attrs:{\"dense\":\"\",\"color\":\"#f8f2ec\",\"data-cy\":\"minimum-order-message\"}},[_c('v-icon',{attrs:{\"color\":\"#C77500\"}},[_vm._v(\" mdi-alert-outline \")]),_vm._v(\" \"+_vm._s(_vm.$t('common.toAddToOrderMinimum', {qty: _vm.minQty}))+\" \")],1)],1)],1):_vm._e(),_c('v-dialog',{staticClass:\"overflow-hidden pa-0\",staticStyle:{\"height\":\"1000px !important\",\"overflow-y\":\"hidden !important\"},attrs:{\"value\":_vm.isDrawingsDialogOpen,\"width\":\"unset\",\"scrollable\":\"\"}},[_c('v-card',{staticClass:\"pa-0\"},[_c('v-card-title',{staticClass:\"pb-0\"},[_c('v-container',{staticClass:\"fill-height pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"align-self\":\"end\",\"cols\":\"10\"}},[_c('div',{staticClass:\"text-h5 text-left font-weight-bold\"},[_c('core-hardware-thumbnail-viewer',{attrs:{\"image-id\":_vm.productGroup.imageId,\"width\":50,\"height\":50}}),_vm._v(\" \"+_vm._s(_vm.productGroup[_vm.locale === 'cn' ? 'textChs' : 'text'])+\" \")],1)]),_c('v-spacer'),_c('v-col',{attrs:{\"align-self\":\"start\",\"cols\":\"1\"}},[_c('v-btn',{attrs:{\"icon\":\"\",\"data-cy\":\"close-drawing-table\"},on:{\"click\":function($event){_vm.isDrawingsDialogOpen = false;}}},[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\" mdi-close \")])],1)],1)],1)],1)],1),_c('v-card-text',{staticClass:\"overflow-hidden px-6 pt-0\",staticStyle:{\"height\":\"1000px !important\"}},[_c('core-hardware-drawing-table',{attrs:{\"product-group-key\":_vm.productGroupKey,\"product-group-id\":_vm.productGroupId,\"product-options\":_vm.productOptions,\"product-query\":_vm.pQuery,\"product-selected\":_vm.selectedProduct}})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container fluid class=\"partCard pa-1\">\n <v-row class=\"flex-nowrap\" no-gutters>\n <v-col\n v-if=\"productGroup.HideDrawingsLink !== 1\"\n cols=\"auto\"\n class=\"pt-1\"\n style=\"width: 140px\"\n align-self=\"start\"\n >\n <v-btn\n depressed\n text\n color=\"primary\"\n data-cy=\"drawing-table-btn\"\n @click=\"isDrawingsDialogOpen = true\"\n >\n <v-icon\n left\n >\n mdi-vector-square\n </v-icon>\n {{ $t('views.productOption.drawings') }}\n </v-btn>\n </v-col>\n <v-col>\n <v-row no-gutters>\n <template v-for=\"(productOption, index) in productOptions\">\n <v-col\n v-if=\"productOption.attributeTypes[0].fieldType === 'dropdown'\"\n :key=\"`dropdown-${productOption.id}`\"\n cols=\"auto\"\n class=\"px-1 pb-2\"\n align-self=\"end\"\n >\n <v-select\n v-model=\"selectedOption[productOption.id]\"\n dense\n attach\n class=\"fit\"\n persistent-placeholder\n :no-data-text=\"$t('common.noDataAvailableListType')\"\n :label=\"productOption[locale === 'en-US' ? 'label' : 'labelChs' ]\"\n :items=\"filteredItems(index)\"\n :item-text=\"locale === 'cn' ? 'textChs' : 'text'\"\n :data-cy=\"`dropdown-${productOption.id}`\"\n :data-cy-2=\"`${productOption.label.toLowerCase().replaceAll(' ', '-')}-select`\"\n item-value=\"id\"\n outlined\n hide-details\n @click.stop\n >\n <template slot=\"item\" slot-scope=\"data\">\n <span data-cy=\"diameter-option\">{{ locale === 'en-US' ? data.item.text : data.item.textChs }}</span>\n </template>\n </v-select>\n </v-col>\n <v-col\n v-else-if=\"productOption.attributeTypes[0].fieldType === 'checkbox'\"\n :key=\"`checkbox-${productOption.id}`\"\n class=\"pl-0\"\n align-self=\"end\"\n >\n <v-checkbox\n v-model=\"selectedOption[productOption.id]\"\n :label=\"productOption[locale === 'cn' ? 'labelChs' : 'label' ]\"\n :true-value=\"productOption.options[1].id\"\n :false-value=\"productOption.options[0].id\"\n :data-cy=\"`checkbox-${productOption.id}`\"\n hide-details\n @click.stop\n />\n </v-col>\n <v-col\n v-if=\"productOption.attributeTypes[0].fieldType === 'readonly'\"\n :key=\"`plainText-${productOption.id}`\"\n :data-cy=\"`plainText-${productOption.id}`\"\n >\n <div\n style=\"color:rgba(0,0,0,0.6);\"\n class=\"caption\"\n >\n {{ productOption[locale === 'cn' ? 'labelChs' : 'label'] }}\n </div>\n <div>\n {{\n getReadOnlyProduct[locale === 'cn' ? 'textChs' : 'text']\n }}\n </div>\n </v-col>\n </template>\n </v-row>\n </v-col>\n\n <v-col cols=\"auto\">\n <core-rang-price-moq\n v-if=\"productGroup.HidePriceMOQ !== 1\"\n class=\"ml-auto mt-auto align-content-end align-self-end\"\n :part=\"selectedProduct\"\n />\n </v-col>\n </v-row>\n <v-row no-gutters class=\"flex-nowrap\">\n <v-col\n style=\"width:140px\"\n align-self=\"end\"\n cols=\"auto\"\n class=\"pr-2\"\n >\n <v-text-field\n v-model=\"reqQty\"\n class=\"mb-0\"\n dense\n data-cy=\"quantity-input-upload\"\n :label=\"$t('views.rfqs.quantity')\"\n :rules=\"[isPositiveInteger]\"\n min=\"1\"\n max=\"9999999\"\n type=\"number\"\n hide-details\n outlined\n @input.native=\"reqQty = updateValue($event); \"\n @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n @click.stop\n />\n </v-col>\n <v-col align-self=\"end\" cols=\"auto\" class=\"pr-2\">\n <v-sheet color=\"#F1FDF3\" class=\"pa-2 py-0 rounded-lg \">\n <div class=\"caption text--secondary text-left\">\n {{ $t('views.productOption.unitPrice', {currencySymbol: currencySymbol}) }}\n </div>\n <span>\n {{ (UnitPrice * 1).toFixed(5) }}\n </span>\n </v-sheet>\n </v-col>\n <v-col align-self=\"end\" cols=\"auto\" class=\"pr-2\">\n <v-sheet color=\"#F1FDF3\" class=\"pa-2 py-0 rounded-lg \">\n <div class=\"caption text--secondary text-left\">\n {{ $t('views.productOption.totalPrice', {currencySymbol: currencySymbol}) }}\n </div>\n <span>\n {{ (UnitPrice * reqQty).toFixed(2) }}\n </span>\n </v-sheet>\n </v-col>\n <v-col\n v-if=\"productGroup.ShowUploadFile === 1\"\n align-self=\"end\"\n cols=\"auto\"\n class=\"pr-2\"\n >\n <core-drawing-consultancy-pdf\n :pdf-url=\"drawingConsultancyPdfBlobUrl\"\n @pdfUrl=\"(event) => drawingConsultancyPdfBlobUrl = event\"\n />\n </v-col>\n <v-spacer />\n <v-col\n cols=\"auto\"\n align-self=\"end\"\n class=\"pr-2 text-right\"\n >\n <v-btn\n v-if=\"productGroup.HideAddToBag !== 1\"\n outlined\n color=\"primary\"\n :disabled=\"!selectedProduct || !reqQty\"\n data-cy=\"add-product-to-custom-bag\"\n @click.stop=\"$emit('add-to-bag', {product:selectedProduct, quantity: reqQty})\"\n >\n {{ $t('views.productOption.addToCustomBag') }}\n </v-btn>\n </v-col>\n <v-col align-self=\"end\" class=\"text-left\" cols=\"auto\">\n <v-tooltip v-if=\"currentOrder && !currentOrder.canAddHardwareProduct(selectedProduct)\" bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-on=\"on\">\n <v-btn\n v-bind=\"attrs\"\n color=\"primary\"\n data-cy=\"add-product-to-order\"\n :disabled=\"!canOrder\"\n @click.stop=\"addToOrder()\"\n >\n {{ $t('views.productOption.addToOrder') }}\n </v-btn>\n </div>\n </template>\n <span>\n {{ $t('views.productOption.addToOrderHardwareToolTip') }}\n </span>\n </v-tooltip>\n <v-btn\n v-else\n color=\"primary\"\n data-cy=\"add-product-to-order\"\n :disabled=\"!canOrder\"\n @click.stop=\"addToOrder()\"\n >\n {{ $t('views.productOption.addToOrder') }}\n </v-btn>\n </v-col>\n </v-row>\n <v-row v-if=\"selectedProduct && reqQty < minQty\" class=\"flex-nowrap\" no-gutters>\n <v-col class=\"pa-0 pt-1\" cols=\"12\">\n <v-alert\n dense\n color=\"#f8f2ec\"\n class=\"text-center mb-0 mr-0\"\n data-cy=\"minimum-order-message\"\n >\n <v-icon\n color=\"#C77500\"\n >\n mdi-alert-outline\n </v-icon>\n {{ $t('common.toAddToOrderMinimum', {qty: minQty}) }}\n </v-alert>\n </v-col>\n </v-row>\n\n <v-dialog\n style=\"height: 1000px !important; overflow-y: hidden !important; \"\n :value=\"isDrawingsDialogOpen\"\n width=\"unset\"\n scrollable\n class=\"overflow-hidden pa-0\"\n >\n <v-card class=\"pa-0\">\n <v-card-title class=\"pb-0\">\n <v-container fluid class=\"fill-height pa-0\">\n <v-row>\n <v-col align-self=\"end\" cols=\"10\">\n <div class=\"text-h5 text-left font-weight-bold\">\n <core-hardware-thumbnail-viewer\n :image-id=\"productGroup.imageId\"\n :width=\"50\"\n :height=\"50\"\n />\n {{ productGroup[locale === 'cn' ? 'textChs' : 'text'] }}\n </div>\n </v-col>\n <v-spacer />\n <v-col align-self=\"start\" cols=\"1\">\n <v-btn\n icon\n data-cy=\"close-drawing-table\"\n @click=\"isDrawingsDialogOpen = false;\"\n >\n <v-icon large>\n mdi-close\n </v-icon>\n </v-btn>\n </v-col>\n </v-row>\n </v-container>\n </v-card-title>\n <v-card-text class=\"overflow-hidden px-6 pt-0\" style=\"height: 1000px !important; \">\n <core-hardware-drawing-table\n :product-group-key=\"productGroupKey\"\n :product-group-id=\"productGroupId\"\n :product-options=\"productOptions\"\n :product-query=\"pQuery\"\n :product-selected=\"selectedProduct\"\n />\n </v-card-text>\n </v-card>\n </v-dialog>\n </v-container>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapActions, mapState, mapGetters } from 'vuex';\nimport currency from 'currency.js';\nimport FormRules from '@/mixins/form-rules';\n\nexport default {\n name: 'ProductOption',\n\n mixins: [\n FormRules,\n ],\n\n props: {\n productGroupId: {\n type: String,\n default: ''\n },\n productGroupKey: {\n type: String,\n default: ''\n },\n productOptions: {\n type: Array,\n default: () => []\n },\n productQuery: {\n type: Object,\n default: () => {\n },\n },\n productGroup: {\n type: Object,\n default: () => {\n },\n },\n },\n data() {\n return {\n priceProduct: {},\n isDrawingsDialogOpen: false,\n selectedOptions: {},\n reqQty: 1,\n customBag: [],\n currency,\n forceUpdateField: Date.now(),\n drawingConsultancyPdfBlobUrl: null,\n };\n },\n\n computed: {\n ...mapState('app', ['locale']),\n ...mapGetters('app', ['currentOrder']),\n HardwareProduct: () => models.api.HardwareProduct,\n\n minQty: vm => {\n if (vm.selectedProduct.PriceMOQ.length === 0) {\n return 1;\n }\n return Math.min(...vm.selectedProduct.PriceMOQ.map(o => o.Qty));\n },\n\n filteredItems: vm => index => {\n const currentOption = vm.productOptions[index];\n if (!currentOption) {\n return [];\n }\n\n const optionsFilter = vm.productOptions.slice(0, index).map(o => ({ [o.id]: vm.selectedOptions[o.id] || '' }));\n // Please figure what it does, it's cool !\n const query = {\n query: {\n ...vm.pQuery.query,\n ...Object.fromEntries(optionsFilter.map(value => Object.entries(value)[0]))\n }\n };\n\n const productValue = vm.HardwareProduct.findInStore(query).data;\n\n if (productValue.length === 0) {\n return [];\n }\n\n const res = productValue.map(o => (o[currentOption.id]));\n if (res.length === 0) {\n return [];\n }\n\n const data = res.map(value => currentOption.options.find(option => option.id === value)) || [];\n\n // Important: remove undefined items, otherwise frontend v-select crash\n return data.filter(d => d !== undefined);\n },\n\n pQuery: vm => {\n const query = {\n query: {\n ...vm.productQuery.query,\n [vm.productGroupKey]:\n vm.productGroupId\n }\n };\n return query;\n },\n\n filteredProduct: vm => vm.HardwareProduct.findInStore(vm.pQuery).data,\n // const query = {\n // query: {\n // ...vm.pQuery.query,\n // }\n // };\n\n // vm.HardwareProduct.findInStore(vm.pQuery).data,\n\n selectedProduct: vm => {\n const query = {\n query: {\n ...vm.pQuery.query,\n ...vm.selectedOptions\n }\n };\n\n const product = vm.HardwareProduct.findInStore(query).data;\n if (product.length === 0 || product.length > 1) {\n return null;\n }\n\n // if (product[0]) {\n // this.priceProduct = { ...product[0], ReqQty: vm.reqQty };\n // }\n return product[0];\n },\n\n UnitPrice: vm => {\n if (!vm.selectedProduct) {\n return currency(0, { symbol: vm.currencySymbol, precision: 2 });\n }\n const priceTable = [...vm.selectedProduct.PriceMOQ];\n priceTable.sort((a, b) => parseInt(a.Qty, 10) - parseInt(b.Qty, 10));\n\n // Check if quantity is less than the lowest available quantity\n if (vm.reqQty < parseInt(priceTable[0].Qty, 10)) {\n return currency(0, { symbol: vm.currencySymbol, precision: 2 });\n }\n for (let i = 0; i < priceTable.length - 1; i++) {\n const minQty = parseInt(priceTable[i].Qty, 10);\n const maxQty = parseInt(priceTable[i + 1].Qty, 10);\n\n if (vm.reqQty >= minQty && vm.reqQty < maxQty) {\n return priceTable[i].Price;\n }\n }\n return priceTable[priceTable.length - 1].Price;\n },\n\n updateValue: () => event => {\n if (parseInt(event.target.value, 10) <= parseInt(event.target.min, 10)) {\n return event.target.min;\n }\n if (parseInt(event.target.max, 10) < parseInt(event.target.value, 10)) {\n return event.target.max;\n }\n return event.target.value;\n },\n\n productReadOnlyOptions: vm => (vm.productOptions ? vm.productOptions\n .filter(option => option.attributeTypes[0].fieldType === 'readonly') : []),\n\n productCheckBoxOptions: vm => (vm.productOptions ? vm.productOptions\n .filter(option => option.attributeTypes[0].fieldType === 'checkbox') : []),\n\n getReadOnlyProduct: vm => {\n const product = vm.HardwareProduct.findInStore(vm.pQuery).data[0];\n if (!product) {\n return {};\n }\n\n return vm.productReadOnlyOptions[0].options.find(value => value.id === product[vm.productReadOnlyOptions[0].id]) || {};\n },\n\n selectedOption: vm => {\n if (vm.HardwareProduct.store.state['hardware-products'].ids.length > 0) {\n vm.productOptions.forEach((fil, index) => {\n if (!vm.selectedOptions[fil.id]) {\n if (['readonly', 'checkbox'].includes(fil.attributeTypes[0].fieldType)) {\n vm.$set(vm.selectedOptions, fil.id, vm.filteredProduct[0][fil.id]);\n } else if (vm.filteredItems(index).length === 1) {\n vm.$set(vm.selectedOptions, fil.id, vm.filteredItems(index)[0].id);\n } else {\n vm.$set(vm.selectedOptions, fil.id, '');\n }\n }\n });\n }\n\n return vm.selectedOptions;\n },\n currencySymbol() {\n return _.get(models.api.Company.getFromStore(0), 'currencySymbol', '$');\n },\n canOrder() {\n return !(\n !this.selectedProduct\n || this.reqQty < this.minQty\n || (this.productGroup.ShowUploadFile === 1 && !this.drawingConsultancyPdfBlobUrl)\n ) && (\n !this.currentOrder\n || this.currentOrder.canAddHardwareProduct(this.selectedProduct)\n );\n }\n },\n\n watch: {\n currentOrder(value) {\n // Clear drawing consultancy pdf document when currentOrder is Null\n if (!value) {\n this.drawingConsultancyPdfBlobUrl = '';\n }\n },\n },\n\n methods: {\n ...mapActions('app', ['initCurrentOrder']),\n\n async addToOrder() {\n const order = await this.initCurrentOrder();\n order.addItem('hardware', this.selectedProduct._id, this.reqQty, this.drawingConsultancyPdfBlobUrl);\n }\n }\n};\n</script>\n\n<style scoped>\n>>> .v-select.fit {\n width: max-content;\n min-width: 120px;\n}\n\n>>> .v-select.fit .v-select__selection--comma {\n text-overflow: unset;\n}\n\n>>> .v-input__slot {\n margin-bottom: 0px !important;\n}\n\n>>> .v-dialog {\n max-height: 95%;\n min-height: 80vh;\n}\n\n.totalPrice.v-text-field--outlined >>> fieldset {\n border-color: transparent;\n}\n\nnotDisplay {\n visibility: hidden;\n}\n\n.partCard:hover .displayDetail {\n visibility: visible;\n display: inline;\n position: relative;\n}\n\n.partCard:hover .shimmer {\n\n background: var(--color) -webkit-gradient(linear, 100% 0, 0 0,\n from(var(--color)), color-stop(0.5, #ffffff),\n to(var(--color)));\n\n background-position: -4rem top; /*50px*/\n background-repeat: no-repeat;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n -webkit-animation-name: shimmer;\n -webkit-animation-duration: 1.5s;\n -webkit-animation-iteration-count: infinite;\n -webkit-background-size: 4rem 100%; /*50px*/\n -webkit-animation-timing-function: linear;\n}\n\n.colorRed {\n color: #be2a45 !important;\n --color: #be2a45 !important\n}\n\n.colorGreen {\n color: #128347 !important;\n --color: #128347 !important\n}\n\n@-webkit-keyframes shimmer {\n 0% {\n background-position: -4rem top; /*50px*/\n }\n\n 70% {\n background-position: 12.5rem top; /*200px*/\n }\n\n 100% {\n background-position: 12.5rem top; /*200px*/\n }\n}\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductOption.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductOption.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductOption.vue?vue&type=template&id=65dbd852&scoped=true&\"\nimport script from \"./ProductOption.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductOption.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProductOption.vue?vue&type=style&index=0&id=65dbd852&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 \"65dbd852\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardText,VCardTitle,VCheckbox,VCol,VContainer,VDialog,VIcon,VRow,VSelect,VSheet,VSpacer,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"pt-0\",attrs:{\"fluid\":\"\"}},[(_vm._.isEmpty(_vm.orderLines) && _vm.loadingParts)?_c('v-row',[_c('v-skeleton-loader',{staticClass:\"mx-3\",attrs:{\"width\":\"100%\",\"loading\":\"\",\"type\":(\"table-thead,table-row-divider@\" + _vm.nbrOfOrder)}})],1):_c('v-row',[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('v-data-table',{attrs:{\"headers\":_vm.orderLinesTableHeaders,\"items\":_vm.orderLines,\"loading\":_vm._.isEmpty(_vm.orderLines),\"disable-pagination\":\"\",\"hide-default-footer\":\"\",\"no-data-text\":_vm.$t('common.noDataAvailable'),\"loading-text\":_vm.$t('common.loadingItems')},on:{\"click:row\":function($event){return _vm.open3DViewer($event)}},scopedSlots:_vm._u([{key:\"loading\",fn:function(){return [_c('v-skeleton-loader',{staticClass:\"pa-5 d-flex justify-space-between\",attrs:{\"width\":\"100%\",\"loading\":\"\",\"type\":\"komacutLine@10\",\"types\":{komacutLine:(\"table-cell@\" + _vm.nbrOfOrder)}}})]},proxy:true},{key:\"item.CustItemName\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('core-thumbnail-viewer',{staticClass:\"mr-5 ml-3\",attrs:{\"part\":item,\"part-lookup-key\":'Item',\"width\":60,\"height\":60,\"file-url\":_vm.getThumbnailUrl(item),\"data-cy\":\"quote-image\"}}),_c('span',{attrs:{\"data-cy\":\"quote-part-value\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.CustItemName))}})],1)]}},{key:\"item.Tolerance\",fn:function(ref){\nvar orderline = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-tolerance-value\"}},[_vm._v(\" \"+_vm._s(orderline.toleranceTranslation)+\" \")])]}},{key:\"item.MaterialStr\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-material-value\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(orderLine.materialTranslation))}})]}},{key:\"item.materialSeriesShortened\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-series-value\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(orderLine.materialSeriesTranslation))}})]}},{key:\"item.MaterialThicknessStr\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-thickness-value\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(orderLine.materialThicknessTranslation))}})]}},{key:\"item.MaterialFinishStr\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-finish-value\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(orderLine.materialFinishTranslation ))}})]}},{key:\"item.Revision\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-revision-value\"}},[_vm._v(_vm._s(orderLine.Revision))])]}},{key:\"item.CustItemDesc\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-description-value\"}},[_vm._v(_vm._s(orderLine.CustItemDesc))])]}},{key:\"item.Quantity\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-qty-value\"}},[_vm._v(_vm._s(orderLine.Quantity))])]}},{key:\"item.Price\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-unit-value\"}},[_vm._v(_vm._s(_vm.currency(orderLine.Price, {symbol: _vm.company.currencySymbol}).format()))])]}},{key:\"item._id\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-net-value\"}},[_vm._v(_vm._s(_vm.currency(orderLine.Price, {symbol: _vm.company.currencySymbol}).multiply(orderLine.Quantity).format()))])]}}])}),((_vm.loadingParts || (_vm.isLoadingPartsOrderId===_vm.orderId)) && !_vm._.isEmpty(_vm.orderLines))?_vm._l(((_vm.nbrOfOrder - _vm.orderIdInStore.length)),function(index){return _c('v-skeleton-loader',{key:(\"table-\" + index),staticClass:\"pa-5 d-flex justify-space-between\",attrs:{\"width\":\"100%\",\"loading\":\"\",\"type\":\"komacutLine@10\",\"types\":{komacutLine:(\"table-cell@\" + (_vm.nbrOfOrder - _vm.orderIdInStore.length))}}})}):_vm._e(),(!_vm._.isEmpty(_vm.filteredPartItems) && (_vm.nbrOfOrder >1) && (_vm.filteredPartItems.length !== _vm.nbrOfOrder))?_c('v-card',{staticClass:\"grey lighten-2 text-center pa-0 text-uppercase\",attrs:{\"flat\":\"\"},on:{\"click\":_vm.getAllMissingPart}},[_c('span',{staticStyle:{\"font-size\":\"12px\"}},[_vm._v(\" \"+_vm._s((\"\" + (_vm.displayAll ? _vm.$t('views.rfqs.hidePart') : _vm.$t('views.rfqs.showAllParts'))))+\" \")]),_c('br'),_c('div',{staticClass:\"mdi mdi-chevron-down mt-n2\",class:{'mdi-rotate-180':_vm.displayAll},staticStyle:{\"font-size\":\"20px\",\"height\":\"25px\"}})]):_vm._e()],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container class=\"pt-0\" fluid>\n <v-row v-if=\"_.isEmpty(orderLines) && loadingParts\">\n <v-skeleton-loader\n class=\"mx-3\"\n width=\"100%\"\n loading\n :type=\"`table-thead,table-row-divider@${nbrOfOrder}`\"\n />\n </v-row>\n\n <v-row v-else>\n <v-col class=\"pt-0\" cols=\"12\">\n <v-data-table\n :headers=\"orderLinesTableHeaders\"\n :items=\"orderLines\"\n :loading=\"_.isEmpty(orderLines)\"\n disable-pagination\n hide-default-footer\n :no-data-text=\"$t('common.noDataAvailable')\"\n :loading-text=\"$t('common.loadingItems')\"\n @click:row=\"open3DViewer($event)\"\n >\n <template #loading>\n <v-skeleton-loader\n class=\"pa-5 d-flex justify-space-between\"\n width=\"100%\"\n loading\n :type=\"`komacutLine@10`\"\n :types=\"{komacutLine:`table-cell@${nbrOfOrder}`}\"\n />\n </template>\n <template #item.CustItemName=\"{ item }\">\n <div style=\"display: flex; align-items: center;\">\n <core-thumbnail-viewer\n :part=\"item\"\n :part-lookup-key=\"'Item'\"\n :width=\"60\"\n :height=\"60\"\n :file-url=\"getThumbnailUrl(item)\"\n class=\"mr-5 ml-3\"\n data-cy=\"quote-image\"\n />\n <span data-cy=\"quote-part-value\" v-html=\"highlight(item.CustItemName)\" />\n </div>\n </template>\n <!-- <template #item.PDF=\"{item}\">-->\n <!-- <core-my-part-pdf-viewer :part=\"item\" @click.prevent />-->\n <!-- </template>-->\n <template #item.Tolerance=\"{item: orderline }\">\n <span data-cy=\"quote-tolerance-value\">\n {{\n orderline.toleranceTranslation\n }}\n </span>\n </template>\n <template #item.MaterialStr=\"{ item: orderLine }\">\n <span\n data-cy=\"quote-material-value\"\n v-html=\"highlight(orderLine.materialTranslation)\"\n />\n </template>\n <template #item.materialSeriesShortened=\"{ item: orderLine }\">\n <span\n data-cy=\"quote-series-value\"\n v-html=\"highlight(orderLine.materialSeriesTranslation)\"\n />\n </template>\n <template #item.MaterialThicknessStr=\"{ item: orderLine }\">\n <span\n data-cy=\"quote-thickness-value\"\n v-html=\"highlight(orderLine.materialThicknessTranslation)\"\n />\n </template>\n <template #item.MaterialFinishStr=\"{ item: orderLine }\">\n <span\n data-cy=\"quote-finish-value\"\n v-html=\"highlight(orderLine.materialFinishTranslation )\"\n />\n </template>\n <template #item.Revision=\"{ item: orderLine }\">\n <span data-cy=\"quote-revision-value\">{{ orderLine.Revision }}</span>\n </template>\n <template #item.CustItemDesc=\"{ item: orderLine }\">\n <span data-cy=\"quote-description-value\">{{ orderLine.CustItemDesc }}</span>\n </template>\n <template #item.Quantity=\"{ item: orderLine }\">\n <span data-cy=\"quote-qty-value\">{{ orderLine.Quantity }}</span>\n </template>\n <template #item.Price=\"{ item: orderLine }\">\n <span data-cy=\"quote-unit-value\">{{\n currency(orderLine.Price, {symbol: company.currencySymbol}).format()\n }}</span>\n </template>\n\n <template #item._id=\"{ item: orderLine }\">\n <span data-cy=\"quote-net-value\">{{\n currency(orderLine.Price, {symbol: company.currencySymbol}).multiply(orderLine.Quantity).format()\n }}</span>\n </template>\n </v-data-table>\n <template v-if=\"(loadingParts || (isLoadingPartsOrderId===orderId)) && !_.isEmpty(orderLines)\">\n <v-skeleton-loader\n v-for=\"index in (nbrOfOrder - orderIdInStore.length)\"\n :key=\"`table-${index}`\"\n class=\"pa-5 d-flex justify-space-between\"\n width=\"100%\"\n loading\n :type=\"`komacutLine@10`\"\n :types=\"{komacutLine:`table-cell@${nbrOfOrder - orderIdInStore.length}`}\"\n />\n </template>\n <v-card\n v-if=\"!_.isEmpty(filteredPartItems) && (nbrOfOrder >1) && (filteredPartItems.length !== nbrOfOrder)\"\n flat\n class=\"grey lighten-2 text-center pa-0 text-uppercase\"\n @click=\"getAllMissingPart\"\n >\n <span style=\" font-size: 12px\">\n {{ `${displayAll ? $t('views.rfqs.hidePart') : $t('views.rfqs.showAllParts')}` }}\n </span>\n <br>\n <div\n class=\"mdi mdi-chevron-down mt-n2\"\n style=\"font-size: 20px; height:25px\"\n :class=\"{'mdi-rotate-180':displayAll}\"\n />\n </v-card>\n </v-col>\n </v-row>\n </v-container>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapState } from 'vuex';\nimport currency from 'currency.js';\n\nconst { OrderLine, Company } = models.api;\n\nexport default {\n name: 'OrderItemsTable',\n\n props: {\n isLoadingPartsOrderId: { type: String },\n orderId: { type: String },\n searchValue: { type: String },\n filteredPartItems: {\n type: Array,\n default: () => []\n },\n nbrOfOrder: { type: Number }\n },\n\n data() {\n return {\n currency,\n displayAll: false,\n loadingParts: false\n };\n },\n\n computed: {\n ...mapState('order-lines', { loadingOrderLines: 'isFindPending' }),\n ...mapState('app', ['locale']),\n orderLines() {\n const queryFilter = {\n query: {\n CoNum: this.orderId,\n }\n };\n\n if (!this.displayAll && !_.isEmpty(this.filteredPartItems)) {\n queryFilter.query._id = { $in: this.filteredPartItems };\n }\n return OrderLine.findInStore(queryFilter).data;\n },\n\n orderIdInStore() {\n return OrderLine.findInStore({\n query: {\n CoNum: this.orderId,\n },\n }).data.map(order => order._id);\n },\n\n company: () => Company.getFromStore(0),\n\n toleranceTranslation: vm => item => {\n if (!item.Tolerance) {\n return '-';\n }\n return vm.$t(`views.instantQuote.tolerance${item.Tolerance.replace('Precision', '').trim()}`);\n },\n\n orderLinesTableHeaders: vm => [\n {\n text: vm.$t('views.orders.partNumber'),\n value: 'CustItemName',\n },\n {\n text: vm.$t('views.orders.revision'),\n value: 'Revision',\n },\n {\n text: vm.$t('common.description'),\n value: 'CustItemDesc',\n },\n {\n text: vm.$t('views.orders.material'),\n value: 'MaterialStr',\n },\n {\n text: vm.$t('views.orders.series'),\n value: 'materialSeriesShortened',\n },\n {\n text: vm.$t('views.orders.thickness'),\n value: 'MaterialThicknessStr',\n },\n {\n text: vm.$t('views.orders.finish'),\n value: 'MaterialFinishStr',\n },\n {\n text: vm.$t('views.instantQuote.tolerances'),\n value: 'Tolerance',\n },\n\n {\n text: vm.$t('views.orders.unitPrice', { currencySymbol: vm.company.currencySymbol }),\n value: 'Price',\n },\n {\n text: vm.$t('views.orders.quantity'),\n value: 'Quantity',\n },\n {\n text: vm.$t('views.orders.netPrice', { currencySymbol: vm.company.currencySymbol }),\n value: '_id',\n },\n ].map(h => ({\n align: 'center',\n class: ['text-uppercase'],\n ...h,\n })),\n },\n\n methods: {\n\n open3DViewer(event) {\n if (event.ProductType === 'FG') {\n this.$emit('open3DViewer', event);\n }\n },\n\n highlight(value) {\n const escapedSearchValue = _.escapeRegExp(this.searchValue);\n const re = new RegExp(`(${escapedSearchValue})`, 'gi');\n if (!_.isEmpty(this.filteredPartItems)) {\n return value.replace(\n re,\n '<span style=\"background-color: yellow\">$1</span>'\n );\n }\n return value;\n },\n async getAllMissingPart() {\n this.displayAll = !this.displayAll;\n if (!this.displayAll) {\n return;\n }\n\n if (this.orderIdInStore.length === this.nbrOfPart) {\n return;\n }\n this.loadingParts = true;\n await OrderLine.find({\n query: {\n CoNum: this.orderId,\n _id: { $nin: this.orderIdInStore }\n }\n });\n this.loadingParts = false;\n },\n getThumbnailUrl(item) {\n const imageId = _.get(item, 'ThumbnailItemId');\n if (imageId) {\n return `/img/hardwareShop/${imageId}.png`;\n }\n const productCode = _.get(item, 'ProductCode');\n if (productCode === 'HW-Bag') {\n return '/img/HW-Bag-Thumbnail.png';\n }\n return '';\n }\n },\n\n};\n</script>\n\n<style scoped>\n::v-deep .v-data-table > .v-data-table__wrapper > table > thead > tr > th {\n height: 25px !important;\n margin-top: 10px;\n}\n\n>>> .v-data-table__wrapper > table > thead > tr > th {\n color: #9f9f9f !important;;\n background-color: #f4f4f4 !important;\n}\n\n::v-deep thead th:first-child {\n border-radius: 0 !important;\n}\n\n::v-deep thead th:last-child {\n border-radius: 0 !important;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderItemsTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderItemsTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OrderItemsTable.vue?vue&type=template&id=d3b94924&scoped=true&\"\nimport script from \"./OrderItemsTable.vue?vue&type=script&lang=js&\"\nexport * from \"./OrderItemsTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./OrderItemsTable.vue?vue&type=style&index=0&id=d3b94924&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 \"d3b94924\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VCard,VCol,VContainer,VDataTable,VRow,VSkeletonLoader})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'thumbnails';\n\nconst Model = class Thumbnail extends BaseModel {\n static modelName = 'Thumbnail';\n\n static instanceDefaults() {\n return {\n };\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'hardware-categories';\n\nconst Model = class HardwareCategory extends BaseModel {\n static modelName = 'HardwareCategory';\n\n static instanceDefaults() {\n return {};\n }\n};\n\nexport default {\n plugin: makeServicePlugin({\n servicePath,\n service: feathersClient.service(servicePath),\n Model,\n }),\n\n store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card-actions',{staticClass:\"pt-0\"},[_c('div',[_c('core-ownerships',{attrs:{\"value\":{\n createdBy: _vm.rfq.createdBy,\n createdByEmail: _vm.rfq.createdByEmail,\n createdAt: _vm.rfq.createdAt,\n }}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-card-actions class=\"pt-0\">\n <div>\n <core-ownerships\n :value=\"{\n createdBy: rfq.createdBy,\n createdByEmail: rfq.createdByEmail,\n createdAt: rfq.createdAt,\n }\"\n />\n </div>\n </v-card-actions>\n</template>\n\n<script>\nexport default {\n props: [\n 'expanded', 'toggleaction', 'rfq',\n ],\n\n computed: {\n computedExpanded: {\n get() {\n return this.toggleExpanded;\n },\n set() {\n this.toggleaction();\n },\n },\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RFQCardActions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RFQCardActions.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RFQCardActions.vue?vue&type=template&id=94913d06&\"\nimport script from \"./RFQCardActions.vue?vue&type=script&lang=js&\"\nexport * from \"./RFQCardActions.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCardActions } from 'vuetify/lib/components/VCard';\ninstallComponents(component, {VCardActions})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"transparent\",attrs:{\"rounded\":\"\",\"width\":\"95%\",\"color\":\"#F9F9F9\",\"elevation\":\"0\"}},[_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-row',[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-order-step1.svg\"}}),_c('v-divider',{staticClass:\"dashed-line mt-8 mx-1\"})],1),_c('v-row',{},[_c('v-col',{staticClass:\"ml-n4\",attrs:{\"cols\":\"2\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-digit-1.svg\"}})]),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-row',[_c('div',{staticClass:\"text-body-1 font-weight-medium text-uppercase\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenOrderStepsBanner.step1Label'))+\" \")])]),_c('v-row',[_c('div',{staticStyle:{\"color\":\"#747474\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenOrderStepsBanner.step1Desc'))+\" \")])])],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-row',[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-order-step2.svg\"}}),_c('v-divider',{staticClass:\"dashed-line mt-8 mx-1\"})],1),_c('v-row',[_c('v-col',{staticClass:\"ml-n4\",attrs:{\"cols\":\"2\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-digit-2.svg\"}})]),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-row',[_c('div',{staticClass:\"text-body-1 font-weight-medium text-uppercase\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenOrderStepsBanner.step2Label'))+\" \")])]),_c('v-row',[_c('div',{staticStyle:{\"color\":\"#747474\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenOrderStepsBanner.step2Desc'))+\" \")])])],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-row',[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-order-step3.svg\"}}),_c('v-divider',{staticClass:\"dashed-line mt-8 mx-1\"})],1),_c('v-row',[_c('v-col',{staticClass:\"ml-n4\",attrs:{\"cols\":\"2\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-digit-3.svg\"}})]),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-row',[_c('div',{staticClass:\"text-body-1 font-weight-medium text-uppercase\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenOrderStepsBanner.step3Label'))+\" \")])]),_c('v-row',[_c('div',{staticStyle:{\"color\":\"#747474\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenOrderStepsBanner.step3Desc'))+\" \")])])],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-row',[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-order-step4.svg\"}})]),_c('v-row',{staticClass:\"mt-3\"},[_c('v-col',{staticClass:\"ml-n4\",attrs:{\"cols\":\"2\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-digit-4.svg\"}})]),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-row',[_c('div',{staticClass:\"text-body-1 font-weight-medium text-uppercase\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenOrderStepsBanner.step4Label'))+\" \")])]),_c('v-row',[_c('div',{staticStyle:{\"color\":\"#747474\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenOrderStepsBanner.step4Desc'))+\" \")])])],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-card\n rounded\n width=\"95%\"\n color=\"#F9F9F9\"\n elevation=\"0\"\n class=\"transparent\"\n >\n <v-card-text>\n <v-row>\n <v-col cols=\"3\" style=\"\">\n <v-row>\n <img\n style=\"vertical-align:middle\"\n src=\"/img/welcomeScreen/icon-order-step1.svg\"\n >\n <v-divider class=\"dashed-line mt-8 mx-1\" />\n </v-row>\n <v-row class=\"\">\n <v-col cols=\"2\" class=\"ml-n4\">\n <img\n style=\"vertical-align:middle\"\n src=\"/img/welcomeScreen/icon-digit-1.svg\"\n >\n </v-col>\n <v-col cols=\"10\">\n <v-row>\n <div class=\"text-body-1 font-weight-medium text-uppercase\">\n {{ $t('views.dashboard.welcomeScreenOrderStepsBanner.step1Label') }}\n </div>\n </v-row>\n <v-row>\n <div class=\"\" style=\"color: #747474\">\n {{ $t('views.dashboard.welcomeScreenOrderStepsBanner.step1Desc') }}\n </div>\n </v-row>\n </v-col>\n </v-row>\n </v-col>\n <v-col cols=\"3\" style=\"\">\n <v-row>\n <img\n style=\"vertical-align:middle\"\n src=\"/img/welcomeScreen/icon-order-step2.svg\"\n >\n <v-divider class=\"dashed-line mt-8 mx-1\" />\n </v-row>\n <v-row>\n <v-col cols=\"2\" class=\"ml-n4\">\n <img\n style=\"vertical-align:middle\"\n src=\"/img/welcomeScreen/icon-digit-2.svg\"\n >\n </v-col>\n <v-col cols=\"10\">\n <v-row>\n <div class=\"text-body-1 font-weight-medium text-uppercase\">\n {{ $t('views.dashboard.welcomeScreenOrderStepsBanner.step2Label') }}\n </div>\n </v-row>\n <v-row>\n <div class=\"\" style=\"color: #747474\">\n {{ $t('views.dashboard.welcomeScreenOrderStepsBanner.step2Desc') }}\n </div>\n </v-row>\n </v-col>\n </v-row>\n </v-col>\n <v-col cols=\"3\" style=\"\">\n <v-row>\n <img\n style=\"vertical-align:middle\"\n src=\"/img/welcomeScreen/icon-order-step3.svg\"\n >\n <v-divider class=\"dashed-line mt-8 mx-1\" />\n </v-row>\n <v-row>\n <v-col cols=\"2\" class=\"ml-n4\">\n <img\n style=\"vertical-align:middle\"\n src=\"/img/welcomeScreen/icon-digit-3.svg\"\n >\n </v-col>\n <v-col cols=\"10\">\n <v-row>\n <div class=\"text-body-1 font-weight-medium text-uppercase\">\n {{ $t('views.dashboard.welcomeScreenOrderStepsBanner.step3Label') }}\n </div>\n </v-row>\n <v-row>\n <div class=\"\" style=\"color: #747474\">\n {{ $t('views.dashboard.welcomeScreenOrderStepsBanner.step3Desc') }}\n </div>\n </v-row>\n </v-col>\n </v-row>\n </v-col>\n <v-col cols=\"3\" style=\"\">\n <v-row>\n <img\n style=\"vertical-align:middle\"\n src=\"/img/welcomeScreen/icon-order-step4.svg\"\n >\n </v-row>\n <v-row class=\"mt-3\">\n <v-col cols=\"2\" class=\"ml-n4\">\n <img\n style=\"vertical-align:middle\"\n src=\"/img/welcomeScreen/icon-digit-4.svg\"\n >\n </v-col>\n <v-col cols=\"10\">\n <v-row>\n <div class=\"text-body-1 font-weight-medium text-uppercase\">\n {{ $t('views.dashboard.welcomeScreenOrderStepsBanner.step4Label') }}\n </div>\n </v-row>\n <v-row>\n <div class=\"\" style=\"color: #747474\">\n {{ $t('views.dashboard.welcomeScreenOrderStepsBanner.step4Desc') }}\n </div>\n </v-row>\n </v-col>\n </v-row>\n </v-col>\n </v-row>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nexport default {\n name: 'WelcomeScreenOrderStepsBanner',\n};\n</script>\n\n<style scoped>\n.dashed-line {\n margin: 0 auto; /* Center the line horizontally */\n border-top: 1px dashed #5FCE79; /* You can adjust the color and thickness as needed */\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenOrderStepsBanner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenOrderStepsBanner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WelcomeScreenOrderStepsBanner.vue?vue&type=template&id=21b21687&scoped=true&\"\nimport script from \"./WelcomeScreenOrderStepsBanner.vue?vue&type=script&lang=js&\"\nexport * from \"./WelcomeScreenOrderStepsBanner.vue?vue&type=script&lang=js&\"\nimport style0 from \"./WelcomeScreenOrderStepsBanner.vue?vue&type=style&index=0&id=21b21687&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 \"21b21687\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VCol,VDivider,VRow})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfCanvas.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"pa-0 mb-3\",attrs:{\"fluid\":\"\"}},[_c('v-row',{staticStyle:{\"background-color\":\"white\",\"border-radius\":\"10px\"}},[_c('v-col',{staticClass:\"py-2 px-7\",staticStyle:{\"min-width\":\"175px\",\"max-width\":\"175px\"},attrs:{\"cols\":\"3\"}},[_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"height\":\"90px\",\"width\":\"90px\"}}),_c('v-skeleton-loader',{staticClass:\"mt-3\",attrs:{\"type\":\"text\",\"width\":\"70px\",\"height\":\"20px\"}})],1),_c('v-col',{staticClass:\"px-1 pb-0 ma-0 mt-3\"},[_c('v-row',{staticClass:\"pa-1 ma-0\"},[_c('v-skeleton-loader',{attrs:{\"type\":\"text\",\"width\":\"250px\",\"height\":\"20px\"}})],1),_c('v-row',{staticClass:\"px-1 ma-0\"},[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"125px\"}})],1),_c('v-row',{staticClass:\"pa-0 ma-0 mt-3\"},[_c('v-col',{staticClass:\"px-1 ma-0\"},[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"125px\"}})],1),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"125px\"}})],1),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"125px\"}})],1),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"125px\"}})],1)],1)],1),_c('v-col',{staticClass:\"pt-2 pb-0 px-1 pr-8\",staticStyle:{\"min-width\":\"190px\",\"display\":\"flex\",\"align-items\":\"center\"},attrs:{\"cols\":\"2\"}},[_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"height\":\"90px\",\"width\":\"100%\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./RfqCardSkeleton.vue?vue&type=template&id=42faf4a0&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VCol,VContainer,VRow,VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"800px\"}},[_c('v-simple-table',{staticStyle:{\"width\":\"1000px\"},attrs:{\"dense\":\"\",\"fixed-header\":\"\",\"height\":\"600px\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',{staticClass:\"text-uppercase\",staticStyle:{\"width\":\"90px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.guideLine.no'))+\" \")]),_c('th',{staticClass:\"text-left text-uppercase\",staticStyle:{\"width\":\"100px\",\"padding-left\":\"0 !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.guideLine.type'))+\" \")]),_c('th',{staticClass:\"text-left text-uppercase\",staticStyle:{\"width\":\"100px\",\"padding-left\":\"0 !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.guideLine.code'))+\" \")]),_c('th',{staticClass:\"text-left text-uppercase\",staticStyle:{\"width\":\"500px\",\"padding-left\":\"0 !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.guideLine.description'))+\" \")])])]),_c('tbody',_vm._l((_vm.guideLineList),function(item,index){return _c('tr',{key:item.name},[_c('td',{staticClass:\"pl-5 font-weight-bold\"},[_vm._v(\" \"+_vm._s(index + 1)+\" \")]),_c('td',{staticClass:\"text-left font-weight-bold\",staticStyle:{\"width\":\"150px\"}},[(item.type === _vm.$t('common.Warning') )?_c('v-icon',{attrs:{\"left\":\"\",\"color\":\"#C77500\"}},[_vm._v(\" mdi-alert-outline \")]):_c('v-icon',{attrs:{\"left\":\"\",\"color\":\"#B00020\"}},[_vm._v(\" mdi-alert-circle-outline \")]),_vm._v(\" \"+_vm._s(item.type)+\" \")],1),_c('td',{staticClass:\"text-left font-weight-bold\"},[_vm._v(\" \"+_vm._s(item.code)+\" \")]),_c('td',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(item.description)+\" \")])])}),0)]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div style=\"width: 800px\">\n <v-simple-table\n dense\n fixed-header\n height=\"600px\"\n style=\"width: 1000px\"\n >\n <template v-slot:default>\n <thead>\n <tr>\n <th class=\"text-uppercase\" style=\"width:90px;\">\n {{ $t('views.engineeringTools.tabs.guideLine.no') }}\n </th>\n <th class=\"text-left text-uppercase\" style=\"width:100px; padding-left: 0 !important;\">\n {{ $t('views.engineeringTools.tabs.guideLine.type') }}\n </th>\n <th class=\"text-left text-uppercase\" style=\"width:100px; padding-left: 0 !important;\">\n {{ $t('views.engineeringTools.tabs.guideLine.code') }}\n </th>\n <th class=\"text-left text-uppercase\" style=\"width:500px; padding-left: 0 !important;\">\n {{ $t('views.engineeringTools.tabs.guideLine.description') }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n v-for=\"(item, index) in guideLineList\"\n :key=\"item.name\"\n >\n <td class=\"pl-5 font-weight-bold\">\n {{ index + 1 }}\n </td>\n <td class=\"text-left font-weight-bold\" style=\"width:150px\">\n <v-icon v-if=\"item.type === $t('common.Warning') \" left color=\"#C77500\">\n mdi-alert-outline\n </v-icon>\n <v-icon v-else left color=\"#B00020\">\n mdi-alert-circle-outline\n </v-icon>\n {{ item.type }}\n </td>\n <td class=\"text-left font-weight-bold\">\n {{ item.code }}\n </td>\n <td class=\"text-left\">\n {{ item.description }}\n </td>\n </tr>\n </tbody>\n </template>\n </v-simple-table>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'InstantQuoteGuideLine',\n\n computed: {\n guideLineList: vm => [\n { type: vm.$t('common.Error'), code: '200', description: vm.$t('views.engineeringTools.tabs.guideLine.no3DSolidEntitiesDetected') },\n { type: vm.$t('common.Error'), code: '201', description: vm.$t('views.engineeringTools.tabs.guideLine.multiple3DSolidEntities') },\n { type: vm.$t('common.Error'), code: '202', description: vm.$t('views.engineeringTools.tabs.guideLine.unsupportedSldprtVersionCaption') },\n { type: vm.$t('common.Error'), code: '203', description: vm.$t('views.engineeringTools.tabs.guideLine.failedToDetectEngineType') },\n { type: vm.$t('common.Warning'), code: '301', description: vm.$t('views.engineeringTools.tabs.guideLine.thicknessIsTooBig') },\n { type: vm.$t('common.Warning'), code: '302', description: vm.$t('views.engineeringTools.tabs.guideLine.smallAndBigRadiiDetected') },\n { type: vm.$t('common.Warning'), code: '303', description: vm.$t('views.engineeringTools.tabs.guideLine.smallRadiusDetected') },\n { type: vm.$t('common.Warning'), code: '304', description: vm.$t('views.engineeringTools.tabs.guideLine.bigRadiusDetected') },\n { type: vm.$t('common.Warning'), code: '306', description: vm.$t('views.engineeringTools.tabs.guideLine.smallDistanceDetectedBetweenHoleToHole') },\n { type: vm.$t('common.Warning'), code: '307', description: vm.$t('views.engineeringTools.tabs.guideLine.smallDistanceDetectedBetweenHoleToEdge') },\n { type: vm.$t('common.Warning'), code: '321', description: vm.$t('views.engineeringTools.tabs.guideLine.overallPartLengthLonger') },\n { type: vm.$t('common.Warning'), code: '322', description: vm.$t('views.engineeringTools.tabs.guideLine.smallChamferOnHoleFound') },\n { type: vm.$t('common.Warning'), code: '323', description: vm.$t('views.engineeringTools.tabs.guideLine.smallChamferOnOuterEdgesFound') },\n { type: vm.$t('common.Error'), code: '401', description: vm.$t('views.engineeringTools.tabs.guideLine.thicknessWasNotDetected') },\n { type: vm.$t('common.Error'), code: '402', description: vm.$t('views.engineeringTools.tabs.guideLine.partCouldNotBeRead') },\n { type: vm.$t('common.Error'), code: '410', description: vm.$t('views.engineeringTools.tabs.guideLine.generalError') },\n { type: vm.$t('common.Error'), code: '411', description: vm.$t('views.engineeringTools.tabs.guideLine.partIsNotValidTryToEdit') },\n { type: vm.$t('common.Error'), code: '412', description: vm.$t('views.engineeringTools.tabs.guideLine.notAllGeometryWasCorrectlyConvertedToSheetMetal') },\n { type: vm.$t('common.Error'), code: '413', description: vm.$t('views.engineeringTools.tabs.guideLine.invalidFeaturesRecognizedPleaseRepair') },\n { type: vm.$t('common.Error'), code: '414', description: vm.$t('views.engineeringTools.tabs.guideLine.formFeaturesRecognizedPleaseRemoveThem') },\n { type: vm.$t('common.Error'), code: '415', description: vm.$t('views.engineeringTools.tabs.guideLine.loftedBendFeaturesRecognized') },\n { type: vm.$t('common.Error'), code: '416', description: vm.$t('views.engineeringTools.tabs.guideLine.machiningFeatureFound') },\n { type: vm.$t('common.Error'), code: '417', description: vm.$t('views.engineeringTools.tabs.guideLine.invalidThreadTypeFound') },\n { type: vm.$t('common.Error'), code: '418', description: vm.$t('views.engineeringTools.tabs.guideLine.filletFeatureDetected') },\n { type: vm.$t('common.Error'), code: '419', description: vm.$t('views.engineeringTools.tabs.guideLine.invalidDxfGeometry') },\n { type: vm.$t('common.Error'), code: '420', description: vm.$t('views.engineeringTools.tabs.guideLine.invalidBendFound') },\n { type: vm.$t('common.Error'), code: '450', description: vm.$t('views.engineeringTools.tabs.guideLine.unfoldedModelIsInterferingWithItself') },\n { type: vm.$t('common.Error'), code: '451', description: vm.$t('views.engineeringTools.tabs.guideLine.unableToUnfoldTheModel') },\n { type: vm.$t('common.Error'), code: '500', description: vm.$t('views.engineeringTools.tabs.guideLine.PartDiameterTooSmall') },\n { type: vm.$t('common.Error'), code: '501', description: vm.$t('views.engineeringTools.tabs.guideLine.PartDiameterTooLarge') },\n { type: vm.$t('common.Error'), code: '502', description: vm.$t('views.engineeringTools.tabs.guideLine.PartLengthTooSmall') },\n { type: vm.$t('common.Error'), code: '503', description: vm.$t('views.engineeringTools.tabs.guideLine.PartLengthTooLarge') },\n { type: vm.$t('common.Error'), code: '504', description: vm.$t('views.engineeringTools.tabs.guideLine.MillingAreaTooLarge') },\n { type: vm.$t('common.Error'), code: '505', description: vm.$t('views.engineeringTools.tabs.guideLine.HoleSizeTooSmall') },\n { type: vm.$t('common.Error'), code: '506', description: vm.$t('views.engineeringTools.tabs.guideLine.HoleSizeTooLarge') },\n { type: vm.$t('common.Error'), code: '507', description: vm.$t('views.engineeringTools.tabs.guideLine.HoleTooDeep') },\n { type: vm.$t('common.Error'), code: '508', description: vm.$t('views.engineeringTools.tabs.guideLine.WallThicknessTooThin') },\n { type: vm.$t('common.Error'), code: '509', description: vm.$t('views.engineeringTools.tabs.guideLine.MaxBendError') },\n ]\n },\n};\n</script>\n\n<style scoped>\n.theme--light.v-data-table > .v-data-table__wrapper > table > thead > tr > th{\n background-color: #beebc9 !important;\n padding: 0 0 0 15px !important;\n height: 25px !important;\n}\n::v-deep thead th:first-child {\n border-radius: 5px 0 0 0 ;\n}\n\n::v-deep thead th:last-child {\n border-radius: 0 5px 0 0 ;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstantQuoteGuideLine.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstantQuoteGuideLine.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InstantQuoteGuideLine.vue?vue&type=template&id=26360ced&scoped=true&\"\nimport script from \"./InstantQuoteGuideLine.vue?vue&type=script&lang=js&\"\nexport * from \"./InstantQuoteGuideLine.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InstantQuoteGuideLine.vue?vue&type=style&index=0&id=26360ced&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 \"26360ced\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VIcon,VSimpleTable})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartDesignTable.vue?vue&type=style&index=0&id=82313dcc&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"filter-checkbox\"},[_c('v-radio-group',{model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}},[_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.section)+\" \")]),_vm._l((_vm.$attrs.options),function(option,i){return _c('v-list-item',{key:i,attrs:{\"dense\":\"\"}},[_c('v-list-item-action',[_c('v-radio',{attrs:{\"value\":option}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(option)+\" \")])],1)],1)})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"filter-checkbox\">\n <v-radio-group v-model=\"localValue\">\n <v-subheader>\n {{ section }}\n </v-subheader>\n\n <v-list-item\n v-for=\"(option, i) in $attrs.options\"\n :key=\"i\"\n dense\n >\n <v-list-item-action>\n <v-radio :value=\"option\" />\n </v-list-item-action>\n\n <v-list-item-content>\n <v-list-item-title>\n {{ option }}\n </v-list-item-title>\n </v-list-item-content>\n </v-list-item>\n </v-radio-group>\n </div>\n</template>\n\n<script>\nimport FilterMixin from '../../../mixins/filter';\n\nexport default {\n name: 'RadioGroup',\n\n mixins: [\n FilterMixin,\n ],\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RadioGroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RadioGroup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RadioGroup.vue?vue&type=template&id=28fe56e7&scoped=true&\"\nimport script from \"./RadioGroup.vue?vue&type=script&lang=js&\"\nexport * from \"./RadioGroup.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 \"28fe56e7\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VListItem,VListItemAction,VListItemContent,VListItemTitle,VRadio,VRadioGroup,VSubheader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"rounded d-flex flex-column align-center py-0 my-0\",staticStyle:{\"background-color\":\"#E9F4ED\"}},[_c('div',{staticStyle:{\"display\":\"grid\",\"width\":\"min-content\",\"grid-template-columns\":\"max-content max-content\"}},[_c('span',{staticClass:\"body-2 text-right\"},[_vm._v(_vm._s(_vm.$t('views.instantQuote.quantity'))+\":: \"+_vm._s('\\xa0'))]),_c('span',{staticClass:\"body-2\"},[_vm._v(_vm._s(_vm.$t('common.pricePerUnit')))]),_vm._l((_vm.customerPriceRange),function(bracket,i){return [_c('span',{key:(\"qty-\" + i),staticClass:\"text-right\",staticStyle:{\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":(\"unit-price-qty-\" + i)}},[_vm._v(\" \"+_vm._s(i === 0 ? _vm.quantity : bracket.Qty)+\": \"+_vm._s('\\xa0')+\" \")]),_c('span',{key:(\"price-\" + i),attrs:{\"data-cy\":(\"unit-price-amount-\" + i)}},[_vm._v(\" \"+_vm._s(_vm.currency(bracket.Price, { symbol: _vm.company.currencySymbol, precision: 4 }).format())+\" \")])]})],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div\n style=\"background-color: #E9F4ED;\"\n class=\"rounded d-flex flex-column align-center py-0 my-0\"\n >\n <div\n style=\"\n display: grid;\n width: min-content;\n grid-template-columns: max-content max-content;\n \"\n >\n <span class=\"body-2 text-right\">{{ $t('views.instantQuote.quantity') }}:: {{ '\\xa0' }}</span>\n <span class=\"body-2\">{{ $t('common.pricePerUnit') }}</span>\n <template v-for=\"(bracket, i) in customerPriceRange\">\n <span\n :key=\"`qty-${i}`\"\n style=\"color: #8D8D8D\"\n class=\"text-right\"\n :data-cy=\"`unit-price-qty-${i}`\"\n >\n {{ i === 0 ? quantity : bracket.Qty }}: {{ '\\xa0' }}\n </span>\n <span :key=\"`price-${i}`\" :data-cy=\"`unit-price-amount-${i}`\">\n {{\n currency(bracket.Price, {\n symbol: company.currencySymbol,\n precision: 4\n }).format()\n\n }}\n </span>\n </template>\n </div>\n </div>\n</template>\n\n<script>\nimport currency from 'currency.js';\nimport { models } from 'feathers-vuex';\n\nconst { Company } = models.api;\n\nexport default {\n name: 'ProductPriceMoqTable',\n props: {\n part: Object,\n },\n data: () => ({\n currency,\n }),\n computed: {\n company: () => Company.getFromStore(0),\n\n priceRange: vm => _.get(vm, 'part.priceMOQ', null),\n\n quantity: vm => {\n if (!vm.part.ReqQty || vm.part.ReqQty <= 0) {\n return 1;\n }\n if (!vm.part.ReqQty || vm.part.ReqQty <= 100) {\n return 100;\n }\n if (vm.part.ReqQty >= 1000000) {\n return 1000000;\n }\n return vm.part.ReqQty;\n },\n customerPriceRange() {\n if (!this.priceRange || this.quantity <= 0) {\n return [];\n }\n\n const reqQtyPriceIndex = this.priceRange\n .findIndex(range => range.Qty > this.quantity) - 1;\n\n if (reqQtyPriceIndex < 0) {\n return this.priceRange.slice(-1);\n }\n return this.priceRange\n .slice(reqQtyPriceIndex, Math.min(reqQtyPriceIndex + 3, this.priceRange.length));\n },\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductPriceMoqTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductPriceMoqTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductPriceMoqTable.vue?vue&type=template&id=bbeae752&\"\nimport script from \"./ProductPriceMoqTable.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductPriceMoqTable.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',{staticStyle:{\"display\":\"inline\"}},[(_vm.isPdfAlreadyUpload)?_c('div',{staticStyle:{\"display\":\"inline\"}},[_c('v-btn',{staticClass:\"pr-1\",attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.isPDFDownload=true}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"20\"}},[_vm._v(\" mdi-open-in-new \")]),_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.ViewPdfDrawing'))+\" \")],1),(!_vm.isPdfRemoved)?_c('v-icon',{attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showPdfRemoveDialog = true}}},[_vm._v(\" mdi-close \")]):_vm._e()],1):_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.display=true;_vm.isFileAdded = false}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"25\"}},[_vm._v(\" mdi-file-pdf-box \")]),_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.UploadPdfDrawing'))+\" \")],1),_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"500px\",\"is-loading\":_vm.isPdfRemoved,\"ok-button-text\":_vm.$t('common.delete')},on:{\"click:ok\":_vm.removePDF,\"click:cancel\":function($event){_vm.showPdfRemoveDialog =false}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.DeletePdfDrawing'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"pa-10 text-center\"},[_c('span',{staticClass:\"d-block\",domProps:{\"innerHTML\":_vm._s(_vm.$t('common.deleteDialogText', { name: _vm.$t('myPartPdf.PdfDrawingFile') }))}})])]},proxy:true}]),model:{value:(_vm.showPdfRemoveDialog),callback:function ($$v) {_vm.showPdfRemoveDialog=$$v},expression:\"showPdfRemoveDialog\"}}),(_vm.display)?_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"1000px\",\"eager\":true,\"is-loading\":_vm.isPdfUploadPending,\"is-ok-disabled\":!_vm.isFileAdded,\"ok-button-text\":_vm.$t('common.submit')},on:{\"click:ok\":function($event){return _vm.myDropZone.processQueue();},\"click:cancel\":function($event){_vm.display = false;}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.UploadPdfDrawing'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{ref:\"myDialog\",staticClass:\" text-center\"},[_c('v-card',{staticClass:\"mt-5\",staticStyle:{\"border\":\"dashed #D7D7D7 2px\",\"background-color\":\"#F1FDF3\",\"min-width\":\"905px\",\"max-width\":\"1000px\"},attrs:{\"height\":\"150\",\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"d-flex flex-column justify-space-between align-center\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',{attrs:{\"color\":\"green\",\"size\":\"60\"}},[_vm._v(\" mdi-cloud-upload-outline \")]),_c('span',{staticClass:\"headline mx-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.dragFilesToUpload'))+\" \")]),_c('v-btn',{staticStyle:{\"background-color\":\"#FFF\"},attrs:{\"id\":\"dropzone-click-target-pdf\",\"depressed\":\"\",\"text\":\"\",\"outlined\":\"\",\"color\":\"success\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.browse'))+\" \")])],1),_c('div',{staticClass:\"d-flex body-2\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.FileSupported'))+\" \")])])],1),_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.SingleFileOnly'))+\" \")],1)]},proxy:true}],null,false,2680833433),model:{value:(_vm.display),callback:function ($$v) {_vm.display=$$v},expression:\"display\"}}):_vm._e(),_c('v-overlay',{attrs:{\"value\":_vm.isPDFDownload,\"z-index\":\"90\"}}),_c('v-navigation-drawer',{staticStyle:{\"background-color\":\"#ada6a6\",\"z-index\":\"99 !important\"},attrs:{\"width\":\"60%\",\"fixed\":\"\",\"stateless\":\"\",\"hide-overlay\":\"\",\"right\":\"\",\"temporary\":\"\"},model:{value:(_vm.isPDFDownload),callback:function ($$v) {_vm.isPDFDownload=$$v},expression:\"isPDFDownload\"}},[_c('div',{ref:\"rfqViewerContainer\",staticStyle:{\"height\":\"calc(100% - 52px)\"}},[_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){_vm.isPDFDownload=false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),(_vm.isPDFDownload)?_c('core-pdf-viewer',{attrs:{\"file-name\":_vm.part.Item,\"file-path\":_vm.pdfUri,\"item-height\":800}}):_vm._e()],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div style=\"display: inline\">\n <div v-if=\"isPdfAlreadyUpload\" style=\"display: inline\">\n <v-btn\n text\n small\n class=\"pr-1\"\n :loading=\"isPdfRemoved\"\n color=\"primary\"\n @click=\"isPDFDownload=true\"\n >\n <v-icon left size=\"20\">\n mdi-open-in-new\n </v-icon>\n {{ $t('myPartPdf.ViewPdfDrawing') }}\n </v-btn>\n <v-icon v-if=\"!isPdfRemoved\" small @click=\"showPdfRemoveDialog = true\">\n mdi-close\n </v-icon>\n </div>\n <v-btn\n v-else\n text\n small\n :loading=\"isPdfRemoved\"\n color=\"primary\"\n @click=\"display=true;isFileAdded = false\"\n >\n <v-icon left size=\"25\">\n mdi-file-pdf-box\n </v-icon>\n {{ $t('myPartPdf.UploadPdfDrawing') }}\n </v-btn>\n\n <core-dialog\n v-model=\"showPdfRemoveDialog\"\n type=\"confirmation\"\n width=\"500px\"\n :is-loading=\"isPdfRemoved\"\n :ok-button-text=\"$t('common.delete')\"\n @click:ok=\"removePDF\"\n @click:cancel=\"showPdfRemoveDialog =false\"\n >\n <template #title>\n {{ $t('myPartPdf.DeletePdfDrawing') }}\n </template>\n <template #content>\n <div class=\"pa-10 text-center\">\n <span\n class=\"d-block\"\n v-html=\"$t('common.deleteDialogText', { name: $t('myPartPdf.PdfDrawingFile') })\"\n />\n </div>\n </template>\n </core-dialog>\n\n <core-dialog\n v-if=\"display\"\n v-model=\"display\"\n type=\"confirmation\"\n width=\"1000px\"\n :eager=\"true\"\n :is-loading=\"isPdfUploadPending\"\n :is-ok-disabled=\"!isFileAdded\"\n :ok-button-text=\"$t('common.submit')\"\n @click:ok=\"myDropZone.processQueue();\"\n @click:cancel=\"display = false;\"\n >\n <template #title>\n {{ $t('myPartPdf.UploadPdfDrawing') }}\n </template>\n <template #content>\n <div ref=\"myDialog\" class=\" text-center\">\n <v-card\n class=\"mt-5\"\n height=\"150\"\n flat\n style=\"border: dashed #D7D7D7 2px;\n background-color: #F1FDF3;\n min-width: 905px; max-width: 1000px;\"\n >\n <v-card-text class=\"d-flex flex-column justify-space-between align-center\" style=\"height: 100%\">\n <div class=\"d-flex align-center\">\n <v-icon color=\"green\" size=\"60\">\n mdi-cloud-upload-outline\n </v-icon>\n <span class=\"headline mx-4\">\n {{ $t('views.instantQuote.dragFilesToUpload') }}\n </span>\n <v-btn\n id=\"dropzone-click-target-pdf\"\n depressed\n text\n outlined\n color=\"success\"\n style=\"background-color: #FFF\"\n >\n {{ $t('views.instantQuote.browse') }}\n </v-btn>\n </div>\n <div class=\"d-flex body-2\" style=\"color:#4B4B4B\">\n {{ $t('myPartPdf.FileSupported') }}\n </div>\n </v-card-text>\n </v-card>\n {{ $t('myPartPdf.SingleFileOnly') }}\n </div>\n </template>\n </core-dialog>\n\n <v-overlay :value=\"isPDFDownload\" z-index=\"90\" />\n <v-navigation-drawer\n v-model=\"isPDFDownload\"\n width=\"60%\"\n fixed\n stateless\n hide-overlay\n right\n temporary\n style=\"background-color: #ada6a6; z-index: 99 !important;\"\n >\n <div\n ref=\"rfqViewerContainer\"\n style=\"height: calc(100% - 52px);\"\n >\n <div class=\"d-flex justify-end\">\n <v-btn\n icon\n x-large\n @click=\"isPDFDownload=false\"\n >\n <v-icon>mdi-close</v-icon>\n </v-btn>\n </div>\n\n <core-pdf-viewer\n v-if=\"isPDFDownload\"\n :file-name=\"part.Item\"\n :file-path=\"pdfUri\"\n :item-height=\"800\"\n />\n </div>\n </v-navigation-drawer>\n </div>\n</template>\n\n<script>\nimport Dropzone from 'dropzone';\nimport 'dropzone/dist/dropzone.css';\nimport { mapState } from 'vuex';\n\nexport default {\n name: 'MyPartPdf',\n props: {\n part: {\n type: Object,\n },\n },\n data() {\n return {\n showPdfRemoveDialog: false,\n myDropZone: null,\n pdfPageHeight: 0,\n pdfPageWidth: 0,\n display: false,\n isPdfAlreadyUpload: false,\n isPDFDownload: false,\n isPdfUploadPending: false,\n isFileAdded: false,\n isPdfRemoved: false\n };\n },\n computed: {\n ...mapState('auth', ['accessToken']),\n dropzoneOptions: vm => {\n const h = process.env.VUE_APP_API_URL;\n\n return {\n url: `${h}upload?rowPointer=${vm.part.DrawingRowPointer.toLowerCase()}&desc=&ext=pdf&uploadToCsi=true`,\n paramName: 'file',\n headers: {\n Authorization: vm.accessToken,\n },\n thumbnailWidth: 150,\n maxFilesize: 20,\n timeout: 9999999,\n maxFiles: 1,\n parallelUploads: 1,\n acceptedFiles: '.PDF',\n autoProcessQueue: false,\n dictDefaultMessage: 'dropZone.dictDefaultMessage',\n dictFallbackMessage: 'dropZone.dictFallbackMessage',\n dictFallbackText: 'dropZone.dictFallbackText',\n dictFileTooBig: 'dropZone.dictFileTooBig',\n dictInvalidFileType: 'dropZone.dictInvalidFileType',\n dictResponseError: 'dropZone.dictResponseError',\n dictCancelUpload: 'dropZone.dictCancelUpload',\n dictCancelUploadConfirmation: 'dropZone.dictCancelUploadConfirmation',\n dictRemoveFile: 'dropZone.dictRemoveFile',\n dictMaxFilesExceeded: 'dropZone.dictMaxFilesExceeded',\n clickable: '#dropzone-click-target-pdf',\n previewTemplate: vm.template(),\n renameFile: file => (file.part ? file.upload.filename : `${vm.part.DrawingRowPointer.toLowerCase()}.pdf`),\n init() {\n this.on('maxfilesexceeded', file => {\n this.removeAllFiles();\n this.addFile(file);\n });\n\n this.on('success', async () => {\n vm.isPdfUploadPending = false;\n vm.display = false;\n await vm.checkIfPdfExist();\n });\n this.on('error', async file => {\n this.removeFile(file);\n });\n this.on('sending', () => {\n vm.isPdfUploadPending = true;\n });\n\n this.on('addedfile', async file => {\n const removeButton = Dropzone.createElement('<span class=\"mdi mdi-close\" style=\"vertical-align: middle; font-size: 1.5rem; cursor: pointer\" ></span>');\n\n removeButton.addEventListener('click', e => {\n e.preventDefault();\n e.stopPropagation();\n this.removeFile(file);\n vm.isFileAdded = false;\n });\n\n file.previewElement.children[1].appendChild(removeButton);\n vm.isFileAdded = true;\n });\n }\n\n };\n },\n pdfViewerHeight: vm => {\n if (!vm.$refs.rfqViewerContainer) {\n return 0;\n }\n /* TODO '-12' is due to a random extra scrollbar on the right. Need to find out\n * what actually causes it to appear. For now, removing 12 pixels works,\n * but there is for sure a better way to do this. */\n return vm.$refs.rfqViewerContainer.getBoundingClientRect().height - 12;\n },\n\n pdfUri: vm => {\n if (!vm.part) {\n return '';\n }\n const host = process.env.VUE_APP_API_URL;\n const fileName = `${_.get(vm.part, 'DrawingRowPointer', '').toLowerCase()}.pdf`;\n return `${host}uploads/${fileName}/${vm.accessToken}/${vm.part.Item}`;\n }\n },\n watch: {\n display(newValue) {\n if (newValue) {\n setTimeout(() => {\n this.myDropZone = new Dropzone(this.$refs.myDialog, this.dropzoneOptions);\n }, 800);\n } else {\n this.myDropZone = null;\n }\n }\n },\n async created() {\n await this.checkIfPdfExist();\n },\n mounted() {\n const resizeObserver = new ResizeObserver(() => {\n /* 70 breathing room */\n this.pdfPageWidth = this.$refs.rfqViewerContainer.getBoundingClientRect().width - 70;\n const ratio = 8.5 / 11;\n this.pdfPageHeight = this.pdfPageWidth / ratio;\n });\n resizeObserver.observe(this.$refs.rfqViewerContainer);\n },\n methods: {\n async checkIfPdfExist() {\n const response = await fetch(\n this.pdfUri,\n );\n this.isPdfAlreadyUpload = response.status === 200;\n },\n async removePDF() {\n this.isPdfRemoved = true;\n const fileName = `${_.get(this.part, 'DrawingRowPointer', '').toLowerCase()}.pdf`;\n const uploadUrl = `${process.env.VUE_APP_API_URL}upload`;\n try {\n await fetch(\n `${uploadUrl}/${fileName}`,\n {\n method: 'DELETE',\n headers: {\n Authorization: this.accessToken,\n },\n }\n );\n } catch (e) {\n console.error(e);\n }\n this.isPdfRemoved = false;\n this.isPdfAlreadyUpload = false;\n this.showPdfRemoveDialog = false;\n this.$forceUpdate();\n },\n template() {\n return `\n <div class=\"d-flex align-start flex-column mt-16\">\n <p style=\"vertical-align: bottom\">Document selected</p>\n <p id=\"test\" class=\"pa-2\" style=\"background-color: #dee0e4; display: inline\">\n <span class=\"mdi mdi-open-in-new font-weight-medium\" style=\"vertical-align: middle; color:#2c984e; font-size:1.2rem\"></span>\n <span class=\"font-weight-bold\" style=\"vertical-align: bottom; color:#2c984e; font-size:1rem\" data-dz-name></span>\n </p>\n </div>`;\n }\n },\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyPartPdf.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyPartPdf.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MyPartPdf.vue?vue&type=template&id=29bdb0a0&scoped=true&\"\nimport script from \"./MyPartPdf.vue?vue&type=script&lang=js&\"\nexport * from \"./MyPartPdf.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 \"29bdb0a0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VBtn,VCard,VCardText,VIcon,VNavigationDrawer,VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"ma-0 pa-0\"},[_c('v-card',{staticClass:\"pa-0\",attrs:{\"elevation\":\"0\"}},[_c('v-radio-group',{staticClass:\"pl-2\",attrs:{\"value\":_vm.value},on:{\"change\":function($event){return _vm.$emit('input', $event);}}},_vm._l((_vm.shippingAddresses),function(address,i){return _c('v-radio',{key:i,staticClass:\"py-2 mr-3\",attrs:{\"value\":address.ShipToId},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-space-between align-center address-radio-options py-1\",staticStyle:{\"width\":\"100%\"}},[_c('div',[_c('div',{staticClass:\"subtitle-2 \"},[_vm._v(\" \"+_vm._s(address.name)+\" \")]),_c('div',[_vm._v(_vm._s(_vm.formatAddressText(address)))])]),_c('v-btn',{staticClass:\"justify-end\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.openAddressFormDialog(address)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" mdi-pencil \")])],1)],1)]},proxy:true}],null,true)})}),1),_c('v-card-actions',{staticStyle:{\"position\":\"relative\"}},[_c('v-btn',{staticClass:\"mt-4 ml-4\",staticStyle:{\"position\":\"absolute\",\"top\":\"10px\",\"left\":\"-20px\"},attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.openAddressFormDialog();}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-plus \")]),_vm._v(\" New Address \")],1)],1)],1),_c('core-dialog',{attrs:{\"value\":_vm.addressModal.isActive,\"is-loading\":_vm.isShippingAddressCreatePending || _vm.isShippingAddressPatchPending,\"width\":\"60%\",\"type\":\"confirmation\",\"persistent\":\"\"},on:{\"click:ok\":_vm.saveAddress,\"click:cancel\":function($event){_vm.addressModal.isActive = false; _vm.addressModal.address = null;}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" New Address \")]},proxy:true},{key:\"content\",fn:function(){return [_c('form-address',{attrs:{\"address-type\":\"business\"},model:{value:(_vm.addressModal.address),callback:function ($$v) {_vm.$set(_vm.addressModal, \"address\", $$v)},expression:\"addressModal.address\"}})]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container class=\"ma-0 pa-0\">\n <v-card class=\"pa-0\" elevation=\"0\">\n <v-radio-group\n class=\"pl-2\"\n :value=\"value\"\n @change=\"$emit('input', $event);\"\n >\n <v-radio\n v-for=\"(address, i) in shippingAddresses\"\n :key=\"i\"\n :value=\"address.ShipToId\"\n class=\"py-2 mr-3\"\n >\n <template #label>\n <div class=\"d-flex justify-space-between align-center address-radio-options py-1\" style=\"width: 100%\">\n <div>\n <div class=\"subtitle-2 \">\n {{ address.name }}\n </div>\n <div>{{ formatAddressText(address) }}</div>\n </div>\n <v-btn\n class=\"justify-end\"\n icon\n small\n @click.stop=\"openAddressFormDialog(address)\"\n >\n <v-icon small>\n mdi-pencil\n </v-icon>\n </v-btn>\n </div>\n </template>\n </v-radio>\n </v-radio-group>\n <v-card-actions style=\"position: relative;\">\n <v-btn\n text\n class=\"mt-4 ml-4\"\n color=\"primary\"\n style=\"position: absolute; top: 10px; left: -20px\"\n @click=\"openAddressFormDialog();\"\n >\n <v-icon left>\n mdi-plus\n </v-icon>\n New Address\n </v-btn>\n </v-card-actions>\n </v-card>\n\n <core-dialog\n :value=\"addressModal.isActive\"\n :is-loading=\"isShippingAddressCreatePending || isShippingAddressPatchPending\"\n width=\"60%\"\n type=\"confirmation\"\n persistent\n @click:ok=\"saveAddress\"\n @click:cancel=\"addressModal.isActive = false; addressModal.address = null;\"\n >\n <template #title>\n New Address\n </template>\n\n <template #content>\n <form-address v-model=\"addressModal.address\" address-type=\"business\" />\n </template>\n </core-dialog>\n </v-container>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapState } from 'vuex';\nimport AddressFormatterMixin from '@/mixins/address-formatter';\n\nconst {\n ShippingAddress,\n} = models.api;\nexport default { name: 'OrderShippingAddress',\n mixins: [AddressFormatterMixin],\n props: ['shippingAddresses', 'value', 'moveButton'],\n data() {\n return {\n content: {},\n addressModal: {\n isActive: false,\n address: null,\n },\n tempOrder: {\n items: [],\n expediteOption: null,\n shippingAddress: null,\n forwarder: null,\n },\n };\n },\n computed: { ...mapState('shipping-addresses', {\n isShippingAddressPatchPending: 'isPatchPending',\n isShippingAddressCreatePending: 'isCreatePending',\n }),\n\n ...mapState('orders', {\n isOrderCreatePending: 'isCreatePending',\n }) },\n\n methods: {\n openAddressFormDialog(address) {\n this.addressModal.address = address || new ShippingAddress({});\n this.addressModal.isActive = true;\n },\n closeAddressFormDialog() {\n this.addressModal.address = null;\n this.addressModal.isActive = false;\n },\n async saveAddress() {\n await this.addressModal.address.save();\n this.addressModal.isActive = false;\n },\n } };\n</script>\n<style scoped>\n.address-radio-options:hover {\n background-color: rgba(0,0,0,.03);\n}\n\n.button-moved {\n position: absolute;\n top: 10px;\n left: -20px\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderShippingAddress.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderShippingAddress.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OrderShippingAddress.vue?vue&type=template&id=fb74c790&scoped=true&\"\nimport script from \"./OrderShippingAddress.vue?vue&type=script&lang=js&\"\nexport * from \"./OrderShippingAddress.vue?vue&type=script&lang=js&\"\nimport style0 from \"./OrderShippingAddress.vue?vue&type=style&index=0&id=fb74c790&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 \"fb74c790\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\ninstallComponents(component, {VBtn,VCard,VCardActions,VContainer,VIcon,VRadio,VRadioGroup})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-tooltip',{attrs:{\"bottom\":\"\",\"color\":\"transparent\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('td',_vm._g({},on),[_c('span',{staticClass:\"shimmer\"},[_vm._v(\" \"+_vm._s(_vm.customerPriceRangeText)+\" \")])])]}}])},[_c('span',[_c('v-card',{attrs:{\"width\":\"max-content\"}},[_c('v-card-title',{staticClass:\"subtitle-1 d-flex justify-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.unitPricePerQuantity'))+\" \")]),_c('v-divider'),_c('v-list',{attrs:{\"color\":\"transparent\",\"dense\":\"\"}},_vm._l((_vm.customerPriceRangeTable),function(p,i){return _c('v-list-item',{key:i},[_c('v-list-item-content',[_vm._v(\" \"+_vm._s(p.split(':')[0] + ':')+\" \")]),_c('v-list-item-content',{staticClass:\"align-end pr-6\"},[_vm._v(\" \"+_vm._s(p.split(':')[1])+\" \")])],1)}),1)],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-tooltip bottom color=\"transparent\">\n <template v-slot:activator=\"{ on }\">\n <td\n v-on=\"on\"\n >\n <span class=\"shimmer\">\n {{ customerPriceRangeText }}\n </span>\n </td>\n </template>\n <span>\n <v-card width=\"max-content\">\n <v-card-title class=\"subtitle-1 d-flex justify-center\">\n {{ $t('common.unitPricePerQuantity') }}\n </v-card-title>\n\n <v-divider />\n\n <v-list\n color=\"transparent\"\n dense\n >\n <v-list-item\n v-for=\"(p, i) in customerPriceRangeTable\"\n :key=\"i\"\n >\n <v-list-item-content>\n {{ p.split(':')[0] + ':' }}\n </v-list-item-content>\n\n <v-list-item-content class=\"align-end pr-6\">\n {{ p.split(':')[1] }}\n </v-list-item-content>\n </v-list-item>\n </v-list>\n </v-card>\n </span>\n </v-tooltip>\n</template>\n\n<script>\nimport currency from 'currency.js';\nimport { models } from 'feathers-vuex';\n\nconst { Company } = models.api;\n\nexport default {\n name: 'TableUnitPricing',\n\n props: {\n item: Object,\n },\n\n computed: {\n company: () => Company.getFromStore(0),\n\n priceRange() {\n return JSON.parse(this.item.PriceMOQ);\n },\n\n customerPriceRange() {\n if (!this.priceRange) {\n return [];\n }\n\n const reqQtyPriceIndex = this.priceRange\n .findIndex(range => range.Qty > this.item.ReqQty) - 1;\n\n if (reqQtyPriceIndex < 0) {\n return [];\n }\n\n return this.priceRange\n .slice(reqQtyPriceIndex, Math.min(reqQtyPriceIndex + 3, this.priceRange.length));\n },\n\n customerPriceRangeTable() {\n return this.customerPriceRange.map(range => `${range.Qty}: ${currency(range.Price, { symbol: this.company.currencySymbol }).format()} / unit`);\n },\n\n customerPriceRangeText() {\n if (_.isEmpty(this.customerPriceRange)) {\n return '';\n }\n return `${currency(_.last(this.customerPriceRange).Price, { symbol: this.company.currencySymbol }).format()} - ${currency(this.customerPriceRange[0].Price, { symbol: this.company.currencySymbol }).format()}`;\n },\n },\n};\n</script>\n\n<style>\n .hovered .shimmer {\n display: inline-block;\n color: white;\n\n background: rgba(0, 0, 0, 0.87) -webkit-gradient(linear, 100% 0, 0 0,\n from(rgba(0, 0, 0, 0.87)), color-stop(0.5, #ffffff),\n to(rgba(0, 0, 0, 0.87)));\n\n background-position: -4rem top; /*50px*/\n background-repeat: no-repeat;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n -webkit-animation-name: shimmer;\n -webkit-animation-duration: 1s;\n -webkit-animation-iteration-count: infinite;\n -webkit-background-size: 4rem 100%; /*50px*/\n -webkit-animation-timing-function: linear;\n }\n\n @-webkit-keyframes shimmer {\n from {\n background-position: -4rem top; /*50px*/\n }\n to {\n background-position: 11rem top; /*200px*/\n }\n }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableUnitPricing.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableUnitPricing.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TableUnitPricing.vue?vue&type=template&id=58c01d64&\"\nimport script from \"./TableUnitPricing.vue?vue&type=script&lang=js&\"\nexport * from \"./TableUnitPricing.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TableUnitPricing.vue?vue&type=style&index=0&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 null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCard,VCardTitle,VDivider,VList,VListItem,VListItemContent,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('div',{staticClass:\"d-flex justify-end mr-2 mt-2\"},[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('closePanel')}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('div',{staticClass:\"d-flex justify-center\"},[_c('span',{staticClass:\"display-1 pb-6\"},[_vm._v(\"Quote Summary\")])]),_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('span',{staticClass:\"mr-3 subtitle-1 font-weight-bold\"},[_vm._v(\"Reference Number:\")]),_c('span',{staticClass:\"align-end subtitle-1\"},[_vm._v(\"123\")])]),_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('span',{staticClass:\"mr-2 subtitle-1 font-weight-bold\"},[_vm._v(\"Quote Status:\")]),_c('span',{staticClass:\"align-end subtitle-1\"},[_vm._v(\"status\")])]),_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('span',{staticClass:\"mr-2 subtitle-1 font-weight-bold\"},[_vm._v(\"Number of Parts:\")]),_c('span',{staticClass:\"align-end subtitle-1\"},[_vm._v(\" Parts\")])]),_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('span',{staticClass:\"mr-2 subtitle-1 font-weight-bold\"},[_vm._v(\"Submitted by:\")]),_c('span',{staticClass:\"align-end subtitle-1\"},[_vm._v(\"createdBy\")])])])],1),_c('v-row',{staticClass:\"px-8\"},[_c('v-col',[_c('core-rfq-parts-table',{attrs:{\"rfq-id\":_vm.rfqId}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container>\n <div class=\"d-flex justify-end mr-2 mt-2\">\n <v-btn icon @click=\"$emit('closePanel')\">\n <v-icon>mdi-close</v-icon>\n </v-btn>\n </div>\n\n <v-row justify=\"center\">\n <v-col cols=\"6\">\n <div class=\"d-flex justify-center\">\n <span class=\"display-1 pb-6\">Quote Summary</span>\n </div>\n\n <div class=\"d-flex justify-space-between\">\n <span class=\"mr-3 subtitle-1 font-weight-bold\">Reference Number:</span>\n <span class=\"align-end subtitle-1\">123</span>\n </div>\n\n <div class=\"d-flex justify-space-between\">\n <span class=\"mr-2 subtitle-1 font-weight-bold\">Quote Status:</span>\n <span class=\"align-end subtitle-1\">status</span>\n </div>\n\n <div class=\"d-flex justify-space-between\">\n <span class=\"mr-2 subtitle-1 font-weight-bold\">Number of Parts:</span>\n <span class=\"align-end subtitle-1\">\n Parts</span>\n </div>\n\n <div class=\"d-flex justify-space-between\">\n <span class=\"mr-2 subtitle-1 font-weight-bold\">Submitted by:</span>\n <span class=\"align-end subtitle-1\">createdBy</span>\n </div>\n </v-col>\n </v-row>\n\n <v-row class=\"px-8\">\n <v-col>\n <core-rfq-parts-table :rfq-id=\"rfqId\" />\n </v-col>\n </v-row>\n </v-container>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\n\nexport default {\n name: 'RFQPartsPanel',\n props: {\n rfqId: {\n type: String\n },\n },\n\n computed: {\n ...mapGetters('parts', { findParts: 'find' }),\n\n parts() {\n return this.findParts({ query: {\n EstimateID: this.rfqId\n } }).data;\n },\n },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RFQPartsPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RFQPartsPanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RFQPartsPanel.vue?vue&type=template&id=06a8e6f6&\"\nimport script from \"./RFQPartsPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./RFQPartsPanel.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VContainer,VIcon,VRow})\n","var map = {\n\t\"./core/Avatar.vue\": \"a0ec\",\n\t\"./core/BagCard.vue\": \"bda8\",\n\t\"./core/BagItemsList.vue\": \"3072\",\n\t\"./core/CompactPartCard.vue\": \"8247\",\n\t\"./core/CustomBagPriceMoqTable.vue\": \"99d7\",\n\t\"./core/DfmTable.vue\": \"9e6a\",\n\t\"./core/Dialog.vue\": \"3775\",\n\t\"./core/DrawingConsultancyPdf.vue\": \"9dfa\",\n\t\"./core/DrawingEngineFilesUpload.vue\": \"aece\",\n\t\"./core/EditOrderDropDownInformation.vue\": \"43d6\",\n\t\"./core/FinishColor.vue\": \"7678\",\n\t\"./core/FooterButtonActions.vue\": \"1d43\",\n\t\"./core/HardwareDrawingTable.vue\": \"a6eb\",\n\t\"./core/HardwareProductGroup.vue\": \"1bd3\",\n\t\"./core/HardwareThumbnailViewer.vue\": \"34e0\",\n\t\"./core/HomeHero.vue\": \"c809\",\n\t\"./core/InstantQuoteGuideLine.vue\": \"f579\",\n\t\"./core/Main.vue\": \"6665\",\n\t\"./core/ManufacturingProcessTable.vue\": \"a11db\",\n\t\"./core/ModelViewer.vue\": \"3685\",\n\t\"./core/MyPartPdf.vue\": \"fd1e\",\n\t\"./core/MyPartPdfViewer.vue\": \"658e\",\n\t\"./core/NoContent.vue\": \"a774\",\n\t\"./core/OrderItemsTable.vue\": \"e94f\",\n\t\"./core/OrderShippingAddress.vue\": \"fd97\",\n\t\"./core/Ownerships.vue\": \"8e0a\",\n\t\"./core/PartAnalysisTable.vue\": \"4ca5\",\n\t\"./core/PartCard.vue\": \"082d\",\n\t\"./core/PartCardSkeleton.vue\": \"106f\",\n\t\"./core/PartDesignTable.vue\": \"d559\",\n\t\"./core/PartViewerDrawer.vue\": \"dd29\",\n\t\"./core/PartsDesignDataTable.vue\": \"3b09\",\n\t\"./core/PaymentDialog.vue\": \"9a6c\",\n\t\"./core/PdfCanvas.vue\": \"dfd6\",\n\t\"./core/PdfViewer.vue\": \"964f\",\n\t\"./core/PriceMoqTable.vue\": \"b7db\",\n\t\"./core/PriceMoqTableUnitPriceVariation.vue\": \"e101\",\n\t\"./core/ProcessLimitationsTable.vue\": \"bd8c\",\n\t\"./core/ProductDrawingTable.vue\": \"60f9\",\n\t\"./core/ProductOption.vue\": \"e571\",\n\t\"./core/ProductOptionReadOnly.vue\": \"b7e0\",\n\t\"./core/ProductPriceMoqTable.vue\": \"fcd4\",\n\t\"./core/Promotional.vue\": \"c849\",\n\t\"./core/PurchaseOrdersPdf.vue\": \"c908\",\n\t\"./core/RFQCardActions.vue\": \"eced\",\n\t\"./core/RFQCardTransition.vue\": \"d8e2\",\n\t\"./core/RFQPartsPanel.vue\": \"ff3a\",\n\t\"./core/RangPriceMoq.vue\": \"27ec\",\n\t\"./core/RangPriceMoqLabel.vue\": \"3e8d\",\n\t\"./core/RfqCardSkeleton.vue\": \"f457\",\n\t\"./core/RfqPartCard.vue\": \"136d\",\n\t\"./core/RfqPartsTable.vue\": \"d687\",\n\t\"./core/SearchBar.vue\": \"c4a0\",\n\t\"./core/Snack.vue\": \"b6c2\",\n\t\"./core/StlFileUpload.vue\": \"629a\",\n\t\"./core/SvgViewer.vue\": \"3aff\",\n\t\"./core/TableUnitPricing.vue\": \"fe38\",\n\t\"./core/TechnicalDrawingPdf.vue\": \"6668\",\n\t\"./core/ThumbnailViewer.vue\": \"c596\",\n\t\"./core/TimeField.vue\": \"129d\",\n\t\"./core/UploadCardBodyRadio.vue\": \"3e37\",\n\t\"./core/UploadPartCard.vue\": \"4cbf\",\n\t\"./core/UploadPartHeader.vue\": \"9aa7\",\n\t\"./core/UploadSvgDrawing.vue\": \"3e39\",\n\t\"./core/VersionManager.vue\": \"0adc\",\n\t\"./core/WarningErrorTable.vue\": \"00be\",\n\t\"./core/WelcomeScreenOrderStepsBanner.vue\": \"edef\",\n\t\"./core/WelcomeScreenPromotionCountdownBanner.vue\": \"b013\",\n\t\"./core/WelcomeScreenReferral.vue\": \"4dc8\",\n\t\"./core/WelcomeScreenUploadFileBanner.vue\": \"2cf9\",\n\t\"./core/filter/CheckboxGroup.vue\": \"809e\",\n\t\"./core/filter/Filter.vue\": \"49e2\",\n\t\"./core/filter/Main.vue\": \"5f4f\",\n\t\"./core/filter/RadioGroup.vue\": \"fc6d\",\n\t\"./core/filter/RangeSlider.vue\": \"af5d\",\n\t\"./core/filter/SwitchGroup.vue\": \"abee\",\n\t\"./form/Address.vue\": \"2e19\",\n\t\"./form/Email.vue\": \"1ee7\",\n\t\"./form/Forwarder.vue\": \"2b76\",\n\t\"./form/Phone.vue\": \"502e\",\n\t\"./form/Role.vue\": \"1455\",\n\t\"./form/User.vue\": \"5bb5\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"ffe0\";"],"sourceRoot":""}