{"version":3,"sources":["webpack:///./src/services/DocumentsService.ts","webpack:///./src/components/SustainabilityWaterFootprints.vue?6010","webpack:///./src/components/SustainabilityExportModal.vue?c35e","webpack:///./src/services/SustainabilityService.ts","webpack:///./src/components/SustainabilityProductList.vue?6185","webpack:///./src/components/NewMinorFeatureTextBox.vue?4bdd","webpack:///./src/views/SustainabilitySubscriptionsPage.vue?cfc3","webpack:///./src/components/SustainabilityEnvironmentalData.vue?d4d9","webpack:///./src/views/SustainabilitySubscriptionsPage.vue?d68f","webpack:///./src/components/SubscriptionGeneralRow.vue?dc6b","webpack:///./src/components/SubscriptionGeneralRow.vue","webpack:///./src/components/SubscriptionGeneralRow.vue?d306","webpack:///./src/components/SubscriptionGeneralRow.vue?d77b","webpack:///./src/views/SustainabilitySubscriptionsPage.vue","webpack:///./src/views/SustainabilitySubscriptionsPage.vue?fd1e","webpack:///./src/views/SustainabilitySubscriptionsPage.vue?3f00","webpack:///./src/views/SustainabilityPage.vue?414c","webpack:///./src/components/SustainabilityProductLists.vue?27fb","webpack:///./src/components/SustainabilityProductList.vue?a967","webpack:///./src/components/SustainabilityProductList.vue","webpack:///./src/components/SustainabilityProductList.vue?f50a","webpack:///./src/components/SustainabilityProductList.vue?64b3","webpack:///./src/components/SustainabilityProductLists.vue","webpack:///./src/components/SustainabilityProductLists.vue?4b95","webpack:///./src/components/SustainabilityProductLists.vue?8b18","webpack:///./src/components/SustainabilityProductsFilter.vue?84e4","webpack:///./src/components/SustainabilityProductsFilter.vue","webpack:///./src/models/Sustainability/EnvironmentalData/EnvironmentalDataParameterType.ts","webpack:///./src/components/SustainabilityProductsFilter.vue?cf02","webpack:///./src/components/SustainabilityProductsFilter.vue?8f63","webpack:///./src/components/SustainabilityEnvironmentalData.vue?c16b","webpack:///./src/components/SustainabilityEnvironmentalData.vue","webpack:///./src/components/SustainabilityEnvironmentalData.vue?2a56","webpack:///./src/components/SustainabilityEnvironmentalData.vue?506d","webpack:///./src/components/SustainabilityCarbonFootprints.vue?ff45","webpack:///./src/components/SustainabilityCarbonFootprintsRow.vue?7c80","webpack:///./src/components/SustainabilityCarbonFootprintsRow.vue","webpack:///./src/components/SustainabilityCarbonFootprintsRow.vue?21d2","webpack:///./src/components/SustainabilityCarbonFootprintsRow.vue?c535","webpack:///./src/components/SustainabilityCarbonFootprints.vue","webpack:///./src/components/SustainabilityCarbonFootprints.vue?3ae1","webpack:///./src/components/SustainabilityCarbonFootprints.vue?b219","webpack:///./src/components/SustainabilityOriginOfWood.vue?dec7","webpack:///./src/components/SustainabilityOriginOfWood.vue","webpack:///./src/components/SustainabilityOriginOfWood.vue?255c","webpack:///./src/components/SustainabilityOriginOfWood.vue?c54c","webpack:///./src/components/SustainabilityCertifiedVolumes.vue?4497","webpack:///./src/components/SustainabilityCertifiedVolumesCustomer.vue?ffd2","webpack:///./src/components/SustainabilityCertifiedVolumesCustomer.vue","webpack:///./src/components/SustainabilityCertifiedVolumesCustomer.vue?6c26","webpack:///./src/components/SustainabilityCertifiedVolumesCustomer.vue?0d21","webpack:///./src/components/SustainabilityCertifiedVolumes.vue","webpack:///./src/components/SustainabilityCertifiedVolumes.vue?c01a","webpack:///./src/components/SustainabilityCertifiedVolumes.vue?2acf","webpack:///./src/components/SustainabilityCertifiedVolumesFilter.vue?5272","webpack:///./src/components/SustainabilityCertifiedVolumesFilter.vue","webpack:///./src/components/SustainabilityCertifiedVolumesFilter.vue?626b","webpack:///./src/components/SustainabilityCertifiedVolumesFilter.vue?5260","webpack:///./src/components/SustainabilityActionButtons.vue?3758","webpack:///./src/components/SustainabilityActionButtons.vue","webpack:///./src/components/SustainabilityActionButtons.vue?d350","webpack:///./src/components/SustainabilityActionButtons.vue?5061","webpack:///./src/components/general/Tabs.vue?66c1","webpack:///./src/components/NewMinorFeatureTextBox.vue?e5e3","webpack:///./src/components/NewMinorFeatureTextBox.vue","webpack:///./src/components/NewMinorFeatureTextBox.vue?4ca4","webpack:///./src/components/NewMinorFeatureTextBox.vue?83e0","webpack:///./src/components/general/Tabs.vue","webpack:///./src/components/general/Tabs.vue?0faf","webpack:///./src/components/general/Tabs.vue?976b","webpack:///./src/store/modules/sustainabilityProducts.ts","webpack:///./src/store/modules/sustainabilityProductData.ts","webpack:///./src/store/modules/sustainabilityCertifiedVolumes.ts","webpack:///./src/store/modules/certificationDocuments.ts","webpack:///./src/components/SustainabilityWaterFootprints.vue?12c1","webpack:///./src/components/SustainabilityWaterFootprints.vue","webpack:///./src/models/FeatureHighlightEnums.ts","webpack:///./src/components/SustainabilityWaterFootprints.vue?7504","webpack:///./src/components/SustainabilityWaterFootprints.vue?8892","webpack:///./src/components/SustainabilityExportModal.vue?f841","webpack:///./src/models/Sustainability/SustainabilityDataReportType.ts","webpack:///./src/components/SustainabilityExportModal.vue","webpack:///./src/components/SustainabilityExportModal.vue?660f","webpack:///./src/components/SustainabilityExportModal.vue?77df","webpack:///./src/views/SustainabilityPage.vue","webpack:///./src/views/SustainabilityPage.vue?b472","webpack:///./src/views/SustainabilityPage.vue?1a90"],"names":["DocumentsService","this","get","then","response","data","catch","error","Promise","reject","documentId","filename","downloadFile","documentsService","SustainabilityService","productName","millId","year","reportType","range","fromYear","from","fromMonth","month","toYear","to","toMonth","millName","replace","reportTypeId","sustainabilityProducts","sustainabilityDataReportTypes","environmentalDataReportType","All","url","productMillsParams","map","p","join","sustainabilityDataReportTypesParams","s","environmentalDataReportTypeParam","completeUrl","concat","String","padStart","file","formData","FormData","append","post","headers","resolve","sustainabilityService","render","_vm","_h","$createElement","_c","_self","attrs","breadcrumbs","staticClass","_v","_s","$t","_e","isLoading","errorLoading","subscriptions","_l","subscription","index","key","updatingSubscriptionType","on","onEditSubscription","onCreateSubscription","onActivateSubscription","onInactivateSubscription","$event","errorActivating","errorInactivating","createOrUpdateSubscription","ref","type","details","createNotUpdate","onCreatedSubscription","onUpdatedSubscription","staticRenderFns","isSubscribed","isEditable","getCustomersText","onEditSubscriptionClick","directives","name","rawName","value","expression","domProps","Array","isArray","_i","$$a","$$el","target","$$c","checked","$$v","$$i","$set","slice","onSubscribeChange","some","userProfile","customers","subscriptionInfo","length","enableForAllMyCustomers","toString","enableForSpecificCustomerIds","customerId","customer","find","c","id","$emit","setTimeout","required","component","SubscriptionType","allSubscriptions","filter","Sustainability","routeName","routeTrackingInfo","$route","loadSubscriptions","finally","stopTrackPage","force","dispatchAdd","loading","dispatchLoad","undefined","commitComplete","$nextTick","$refs","subscriptionEditorModal","show","subscriptionDetails","changeActiveStatusForSubscription","active","dispatchChangeActiveStatus","model","components","DefaultLayout","Breadcrumbs","Messages","SubscriptionEditorModal","SubscriptionGeneralRow","tabs","currentTab","onTabChange","currentTabType","email","contactSustainabilityEmailAddress","tabTypes","CertifiedVolumes","products","selectedProduct","selectedYear","selectedEnvironmentalDataReportType","environmentalDataReportTypes","onProductChange","onYearSelectChange","onEnvironmentalDataReportTypeChange","selectedMonthRange","onMonthRangeChange","params","showSustainabilityExport","hasDataForTypeProductMillAndYear","$tc","toLowerCase","errorData","productNotFound","class","EnvironmentalData","loadingData","environmentalData","CarbonFootprints","carbonFootprints","OriginOfWood","originOfWood","WaterFootprints","waterFootprints","canViewCertifiedVolumes","certifiedVolumes","certificationDocuments","customerProducts","onProductClick","otherProducts","product","productDisplayName","isCustomerProduct","SustainabilityProductList","productSelectOptionGroups","onSelectedProductChange","yearSelectOptions","onSelectedYearChange","isEnvironmentalDataTab","environmentalDataReportTypesSelectOptions","onSelectedEnvironmentalDataReportTypeChange","selectedTab","SustainabilityDataType","mapProductToSelectOption","text","i18n","t","optionGroups","push","options","otherProductsLocalizationKey","years","types","sort","a","b","$te","val","SelectBox","EnvironmentalDataParameterType","parameterGroup","groupIndex","parameter","BleachingSequence","bleachingSequence","Species","species","speciesIndex","unitOfMeasurement","group","productionFuels","groupName","groupUnit","productionFuel","unit","toe","content","_f","carbonFootprint","SustainabilityCarbonFootprintsRow","origin","country","region","share","yearsAndMonths","customerVolumes","customerVol","collections","scopedSlots","_u","fn","collection","getDocumentIconClass","certificationDocument","downloadDocument","certificationDocumentLabel","volumes","totalVolumes","totalVolume","volumesFSC","totalVolumesFSC","totalVolumeFSC","showNameRow","useShowNameRowExtraSlot","fscDocument","volumesFSCControlledWood","totalVolumesFSCControlledWood","totalVolumeFSCControlledWood","volumesFSCC","totalVolumesFSCC","totalVolumeFSCC","volumesPEFC","totalVolumesPEFC","totalVolumePEFC","pefcDocument","volumesPEFCCS","totalVolumesPEFCCS","totalVolumePEFCCS","document","Consoler","debugWarn","errorMessage","Message","EventBus","Config","AddMessageEvent","Helpers","color","getProductColor","productColorCategory","CollectionVolumesList","yearAndMonths","CustomMonthRangePicker","SustainabilityCertifiedVolumesCustomer","dateRangeShortcuts","minDate","startOfToday","Date","Dates","getStartOfMonthInThePast","shortcuts","fromDate","startOfYear","getFullYear","toDate","startOf12MonthsAgo","yearsToAdd","endOfYear","print","isExportingToExcel","exportToExcel","productMillAndYear","dispatchMetod","downloadEnvironmentalData","downloadCarbonFootprints","downloadWaterFootprint","downloadOriginOfWood","downloadCertifiedVolumes","window","tab","preventDefault","onTabClick","tabHasFeatureHighlight","featureHighlight","tabClasses","_t","hide","xPlacement","arrowPlacement","highlightText","acknowledgedHighlight","markFeatureHighlightAsDisplayed","closeTextBox","debugLog","default","classes","tabClass","NewMinorFeatureTextBox","common","setLoadedDate","clearLoadedDate","payload","setLoadingError","setLoading","clearLoading","setLoadingPromise","needToReLoad","isCurrentlyLoading","loadingPromise","commitSetLoading","auth","isAuthenticated","getCustomerProducts","getProducts","voidLoadingPromise","commitSetSustainabilityProducts","commitSetLoadedDate","commitClearLoading","commitSetLoadingError","commitClearSustainabilityProducts","commitSetLoadingPromise","loadingPromiseForId","namespaced","dynamic","store","sustainabilityProductsModule","isProductDataFor","productData","generateNewProductData","waterFootprint","getDataFor","setLoadingComplete","existingItem","item","itemId","hasFreshDataFor","currentlyLoadingPromise","getEnvironmentalData","commitSetLoadingComplete","status","clearData","getWaterFootprint","getCarbonFootprints","getOriginOfWood","sustainabilityProductDataModule","search","loadingId","commitClearSearch","getCertifiedVolumes","commitSetSearch","monthRange","sustainabilityCertifiedVolumesModule","commitClearDocuments","getCertificationDocuments","commitSetCertificationDocuments","certificationDocumentsModule","_m","waterInventory","input","measurement","description","amount","total","output","evaporation","FeatureHighlightPages","FeatureHighlightFeatures","SustainabilityDataReportType","SortOrder","closable","selectedProductsIds","productSelectTreeNodes","sustainabilityTypesForProductsInSelectedYear","selectedSustainabilityDataReportTypes","sustainabilityTypesTreeNodes","onSelectedSustainabilityDataReportTypeChange","includes","sustainabilityDataReportType","reportTypeSelectOptions","isExporting","onSubmit","apply","arguments","onCancelClick","proxy","Descending","modal","showModal","Permissions","hasPermission","PermissionType","IsAllowedToViewCertifiedVolumes","includeCertifiedVolumes","exporting","selectYear","yearsWithProducts","selectProductsIds","selectSustainabilityDataReportTypes","selectEnvironmentalDataReportType","EnvironmentalDataReportType","matchingProducts","forEach","millIdProdName","pair","split","customerProductsInSelectedYear","otherProductsInSelectedYear","_","prod","selectedProducts","x","spy","y","flatMap","self","indexOf","mapSustainabilityTypeToTreeSelectNode","sustainabilityDataType","label","treeSelectNodes","mapProductToTreeSelectNode","children","isDefaultExpanded","prodYears","reduce","acc","yearSortOrder","Ascending","EuEcolabel","NordicSwan","PaperProfile","reportTypes","downloadSustainabilityDataReport","hideModal","Modal","TreeSelect","beforeRoute","next","stoppedInAdvance","notFound","registerHooks","featureHighlights","f","featurePage","featureToHighlight","Settings","ContactSustainabilityEmailAddress","selectedProductYear","getSpecificFeatureHighlight","moduleItemId","sustainabilityData","Object","values","initialize","loadProducts","productYear","getProductYear","loadProductData","loadCertifiedVolumes","dispatchMethod","dispatchLoadEnvironmentalData","dispatchLoadCarbonFootprints","dispatchLoadOriginOfWood","dispatchLoadWaterFootprints","all","errorProducts","yearData","$router","$moment","year2","feature","featurePageFeatureHighlights","sustainabilityExportModal","immediate","deep","SustainabilityProductLists","SustainabilityProductsFilter","SustainabilityEnvironmentalData","SustainabilityCarbonFootprints","SustainabilityWaterFootprints","SustainabilityOriginOfWood","SustainabilityCertifiedVolumes","SustainabilityCertifiedVolumesFilter","SustainabilityActionButtons","SustainabilityExportModal","Tabs"],"mappings":"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","file":"js/sustainability.f616be8b.js","sourcesContent":["import { CertificationDocuments } from '@/models/Documents/CertificationDocuments';\r\nimport { Documents } from '@/models/Documents/Documents';\r\nimport { BaseServiceDefinition } from './BaseService';\r\n\r\nclass DocumentsService extends BaseServiceDefinition {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public async getDocuments(): Promise {\r\n return this.get('/api/v1/documents')\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async getCertificationDocuments(): Promise {\r\n return this.get('/api/v1/documents/certifications')\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async downloadDocument(\r\n documentId: string,\r\n filename: string\r\n ): Promise {\r\n await this.downloadFile(`/api/v1/documents/${documentId}`, filename);\r\n }\r\n}\r\n\r\nconst documentsService: DocumentsService = new DocumentsService();\r\n\r\nexport default documentsService;\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityWaterFootprints.vue?vue&type=style&index=0&id=11cb53f2&scoped=true&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityExportModal.vue?vue&type=style&index=0&id=6f339940&lang=scss&scoped=true&\"","import { BaseServiceDefinition } from './BaseService';\r\nimport { EnvironmentalData } from '@/models/Sustainability/EnvironmentalData/EnvironmentalData';\r\nimport { CarbonFootprints } from '@/models/Sustainability/CarbonFootprints/CarbonFootprints';\r\nimport { OriginOfWood } from '@/models/Sustainability/OriginOfWood/OriginOfWood';\r\nimport { SustainabilityProduct } from '@/models/Sustainability/SustainabilityProduct';\r\nimport { CertifiedVolumes } from '@/models/Sustainability/CertifiedVolumes/CertifiedVolumes';\r\nimport { MonthRange } from '@/models/MonthRange';\r\nimport { WaterFootprint } from '@/models/Sustainability/WaterFootprints/WaterFootprint';\r\nimport { SustainabilityImportData } from '@/models/Sustainability/SustainabilityImportData';\r\nimport { EnvironmentalDataReportType } from '@/models/Sustainability/EnvironmentalData/EnvironmentalDataReportType';\r\nimport { SustainabilityDataReportType } from '@/models/Sustainability/SustainabilityDataReportType';\r\nimport { SustainabilityMeasurementStatistics } from '@/models/Sustainability/SustainabilityMeasurementStatistics';\r\n\r\nclass SustainabilityService extends BaseServiceDefinition {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public async getProducts(): Promise {\r\n return this.get('/api/v1/sustainability/products')\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async getCustomerProducts(): Promise {\r\n return this.get('/api/v1/sustainability/customerProducts')\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async getEnvironmentalData(\r\n productName: string,\r\n millId: number,\r\n year: number,\r\n reportType?: EnvironmentalDataReportType\r\n ): Promise {\r\n return this.get(\r\n `/api/v1/sustainability/environmentalData/${year}/${millId}/${productName}`,\r\n { reportType: reportType }\r\n )\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async getCarbonFootprints(\r\n productName: string,\r\n millId: number,\r\n year: number\r\n ): Promise {\r\n return this.get(\r\n `/api/v1/sustainability/carbonFootprints/${year}/${millId}/${productName}`\r\n )\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async getOriginOfWood(\r\n productName: string,\r\n millId: number,\r\n year: number\r\n ): Promise {\r\n return this.get(\r\n `/api/v1/sustainability/originOfWood/${year}/${millId}/${productName}`\r\n )\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async getWaterFootprint(\r\n year: number,\r\n millId: number,\r\n productName: string\r\n ): Promise {\r\n return this.get(\r\n `/api/v1/sustainability/waterfootprints/${year}/${millId}/${productName}`\r\n )\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async getCertifiedVolumes(\r\n range: MonthRange\r\n ): Promise {\r\n return this.get('/api/v1/sustainability/certifiedVolumes', {\r\n fromYear: range.from.year,\r\n fromMonth: range.from.month + 1,\r\n toYear: range.to.year,\r\n toMonth: range.to.month + 1,\r\n })\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public async downloadEnvironmentalData(\r\n productName: string,\r\n millId: number,\r\n year: number,\r\n millName: string,\r\n reportType?: EnvironmentalDataReportType\r\n ): Promise {\r\n await this.downloadFile(\r\n `/api/v1/sustainability/environmentalData/${year}/${millId}/${productName}/excel`,\r\n `EnvironmentalData_${productName}_${millName}_${year}${\r\n reportType ? `_${reportType.replace(' ', '')}` : ''\r\n }.xlsx`,\r\n { reportTypeId: reportType }\r\n );\r\n }\r\n\r\n public async downloadSustainabilityDataReport(\r\n sustainabilityProducts: SustainabilityProduct[],\r\n sustainabilityDataReportTypes: SustainabilityDataReportType[],\r\n year: number,\r\n environmentalDataReportType: EnvironmentalDataReportType = EnvironmentalDataReportType.All,\r\n includeCertifiedVolumes: boolean = false\r\n ): Promise {\r\n const url = `/api/v1/sustainability/report/${year}/excel?`;\r\n const productMillsParams = sustainabilityProducts\r\n .map((p) => {\r\n return `&productNames=${p.productName}&millIds=${p.millId}`;\r\n })\r\n .join('');\r\n\r\n const sustainabilityDataReportTypesParams = sustainabilityDataReportTypes\r\n .map((s) => {\r\n return `&sustainabilityDataReportTypes=${s}`;\r\n })\r\n .join('');\r\n\r\n const environmentalDataReportTypeParam = (): string => {\r\n return `&environmentalDataReportType=${environmentalDataReportType}`;\r\n };\r\n\r\n const completeUrl = ''.concat(\r\n url,\r\n productMillsParams,\r\n sustainabilityDataReportTypesParams,\r\n environmentalDataReportTypeParam()\r\n );\r\n\r\n await this.downloadFile(completeUrl, `sustainability-report-${year}.xlsx`);\r\n }\r\n\r\n public async downloadCarbonFootprints(\r\n productName: string,\r\n millId: number,\r\n year: number,\r\n millName: string\r\n ): Promise {\r\n await this.downloadFile(\r\n `/api/v1/sustainability/carbonFootprints/${year}/${millId}/${productName}/excel`,\r\n `CarbonFootprints_${productName}_${millName}_${year}.xlsx`\r\n );\r\n }\r\n\r\n public async downloadWaterFootprint(\r\n year: number,\r\n millId: number,\r\n millName: string,\r\n productName: string\r\n ): Promise {\r\n await this.downloadFile(\r\n `/api/v1/sustainability/waterFootprints/${year}/${millId}/${productName}/excel?millName=${millName}`,\r\n `WaterFootprint_${millName}_${year}.xlsx`\r\n );\r\n }\r\n\r\n public async downloadOriginOfWood(\r\n productName: string,\r\n millId: number,\r\n year: number,\r\n millName: string\r\n ): Promise {\r\n await this.downloadFile(\r\n `/api/v1/sustainability/originOfWood/${year}/${millId}/${productName}/excel`,\r\n `RawMaterialOrigins_${productName}_${millName}_${year}.xlsx`\r\n );\r\n }\r\n\r\n public async downloadCertifiedVolumes(range: MonthRange): Promise {\r\n await this.downloadFile(\r\n `/api/v1/sustainability/certifiedVolumes/excel`,\r\n `CertifiedVolumes_${range.from.year}${String(\r\n range.from.month + 1\r\n ).padStart(2, '0')}-${range.to.year}${String(range.to.month + 1).padStart(\r\n 2,\r\n '0'\r\n )}.xlsx`,\r\n {\r\n fromYear: range.from.year,\r\n fromMonth: range.from.month + 1,\r\n toYear: range.to.year,\r\n toMonth: range.to.month + 1,\r\n }\r\n );\r\n }\r\n\r\n public async uploadSustainabilityData(\r\n file: File\r\n ): Promise {\r\n const formData = new FormData();\r\n\r\n formData.append('file', file);\r\n\r\n return this.post('/api/v1/sustainability/import', formData, {\r\n headers: { 'Content-Type': 'multipart/form-data' },\r\n })\r\n .then((response) => {\r\n return Promise.resolve(response.data);\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error.response.data);\r\n });\r\n }\r\n\r\n public async getMeasurementStatistics(): Promise {\r\n return this.get('/api/v1/sustainability/statistics')\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n}\r\n\r\nconst sustainabilityService: SustainabilityService =\r\n new SustainabilityService();\r\n\r\nexport default sustainabilityService;\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityProductList.vue?vue&type=style&index=0&id=5870fcfc&scoped=true&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewMinorFeatureTextBox.vue?vue&type=style&index=0&id=63ba40bb&scoped=true&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilitySubscriptionsPage.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityEnvironmentalData.vue?vue&type=style&index=0&id=97f19088&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DefaultLayout',[_c('Breadcrumbs',{attrs:{\"items\":_vm.breadcrumbs}}),_c('Messages'),_c('div',{staticClass:\"container-fluid mt-3\"},[_c('h1',{staticClass:\"t-heading-3\"},[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilitySubscriptionsPage.title'))+\" \")]),_c('span',{staticClass:\"o-line\"}),(_vm.errorLoading)?_c('div',{staticClass:\"c-alert c-alert--red mb-2\"},[_c('span',{staticClass:\"c-alert__text\"},[_vm._v(_vm._s(_vm.$t('subscriptionsPage.errorLoading')))])]):_vm._e(),(!_vm.isLoading && !_vm.errorLoading)?_c('div',{staticClass:\"mt-5\"},[(_vm.subscriptions.length)?_c('div',_vm._l((_vm.subscriptions),function(subscription,index){return _c('div',{key:(index + \"|main\"),staticClass:\"subscription-row d-flex flex-column flex-md-row flex-wrap align-items-md-center justify-content-between u-full-width py-2\"},[_c('SubscriptionGeneralRow',{attrs:{\"subscription\":subscription,\"updatingSubscriptionType\":_vm.updatingSubscriptionType},on:{\"edit\":_vm.onEditSubscription,\"create\":_vm.onCreateSubscription,\"activate\":_vm.onActivateSubscription,\"inactivate\":_vm.onInactivateSubscription}})],1)}),0):_c('div',[_vm._v(_vm._s(_vm.$t('subscriptionsPage.noData')))])]):_vm._e(),(_vm.errorActivating)?_c('div',{staticClass:\"c-alert c-alert--red mt-3\"},[_c('div',{staticClass:\"c-alert__text\"},[_vm._v(\" \"+_vm._s(_vm.$t('subscriptionsPage.errorActivating'))+\" \")]),_c('span',{staticClass:\"c-alert__close\",on:{\"click\":function($event){_vm.errorActivating = false}}})]):_vm._e(),(_vm.errorInactivating)?_c('div',{staticClass:\"c-alert c-alert--red mt-3\"},[_c('div',{staticClass:\"c-alert__text\"},[_vm._v(\" \"+_vm._s(_vm.$t('subscriptionsPage.errorInactivating'))+\" \")]),_c('span',{staticClass:\"c-alert__close\",on:{\"click\":function($event){_vm.errorInactivating = false}}})]):_vm._e()]),(_vm.createOrUpdateSubscription !== null)?_c('SubscriptionEditorModal',{ref:\"subscriptionEditorModal\",attrs:{\"subscriptionType\":_vm.createOrUpdateSubscription.subscription.type,\"subscriptionInfoDetails\":_vm.createOrUpdateSubscription.details,\"createNotUpdate\":_vm.createOrUpdateSubscription.createNotUpdate},on:{\"created\":_vm.onCreatedSubscription,\"updated\":_vm.onUpdatedSubscription}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex flex-column flex-md-row flex-wrap align-items-md-center justify-content-between u-full-width\"},[_c('div',{staticClass:\"pb-2 pb-md-0\"},[_c('span',{staticClass:\"t-heading-5 mb-1\"},[_vm._v(\" \"+_vm._s(_vm.$t((\"subscriptionTypes.\" + (_vm.subscription.type) + \".title\")))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t((\"subscriptionTypes.\" + (_vm.subscription.type) + \".description\")))+\" \")])]),_c('div',{staticClass:\"right-column d-flex align-items-center\"},[_c('div',[(_vm.subscription.isSubscribed && _vm.isEditable)?_c('div',{staticClass:\"d-flex align-items-center mr-3\"},[_c('span',{staticClass:\"mr-2\"},[_vm._v(_vm._s(_vm.getCustomersText(_vm.subscription)))]),_c('a',{staticClass:\"o-round-button o-round-button--mini o-round-button--white flex-shrink-0\",on:{\"click\":function($event){return _vm.onEditSubscriptionClick(_vm.subscription)}}},[_c('i',{staticClass:\"material-icons\"},[_vm._v(\"edit\")])])]):_vm._e()]),(_vm.updatingSubscriptionType === _vm.subscription.type)?_c('div',{staticClass:\"u-position-relative mr-3\"},[_c('span',{staticClass:\"o-loader o-loader--medium o-loader--absolute\"})]):[_c('label',{staticClass:\"o-switch o-switch--large\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.subscription.isSubscribed),expression:\"subscription.isSubscribed\"}],staticClass:\"o-switch__input\",attrs:{\"type\":\"checkbox\",\"disabled\":_vm.updatingSubscriptionType !== null},domProps:{\"checked\":Array.isArray(_vm.subscription.isSubscribed)?_vm._i(_vm.subscription.isSubscribed,null)>-1:(_vm.subscription.isSubscribed)},on:{\"change\":[function($event){var $$a=_vm.subscription.isSubscribed,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.subscription, \"isSubscribed\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.subscription, \"isSubscribed\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.subscription, \"isSubscribed\", $$c)}},function($event){return _vm.onSubscribeChange(_vm.subscription)}]}}),_c('span',{staticClass:\"o-switch__toggle\"})])]],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport { SubscriptionInfo } from '@/models/Subscriptions/SubscriptionInfo';\r\nimport { userProfileModule } from '@/store/modules/userProfile';\r\nimport { Customer } from '@/models/Customer';\r\nimport { SubscriptionType } from '@/models/Subscriptions/SubscriptionType';\r\nimport { editableSubscriptionTypes } from './SubscriptionEditorModal.vue';\r\n\r\n@Component\r\nexport default class SubscriptionGeneralRow extends Vue {\r\n @Prop({ required: true })\r\n public subscription!: SubscriptionInfo;\r\n @Prop({ required: true })\r\n public updatingSubscriptionType!: SubscriptionType | null;\r\n\r\n private get isEditable(): boolean {\r\n return editableSubscriptionTypes.some(\r\n (type) => type === this.subscription.type\r\n );\r\n }\r\n\r\n private get customers(): Customer[] {\r\n return userProfileModule.data?.userProfile.customers ?? [];\r\n }\r\n\r\n private getCustomersText(subscriptionInfo: SubscriptionInfo): string {\r\n if (subscriptionInfo.subscriptions.length !== 1) {\r\n return '';\r\n }\r\n\r\n return subscriptionInfo.subscriptions[0].enableForAllMyCustomers\r\n ? this.$t(\r\n 'subscriptionGeneralRow.customersText.allMyCustomers'\r\n ).toString()\r\n : this.$t('subscriptionGeneralRow.customersText.specificCustomers', [\r\n subscriptionInfo.subscriptions[0].enableForSpecificCustomerIds\r\n .map((customerId) => {\r\n const customer = this.customers.find((c) => c.id === customerId);\r\n return customer ? customer.name : customerId;\r\n })\r\n .join(', '),\r\n ]).toString();\r\n }\r\n\r\n private onSubscribeChange(subscription: SubscriptionInfo) {\r\n if (subscription.isSubscribed) {\r\n if (subscription.subscriptions.length > 0) {\r\n this.$emit('activate', subscription, subscription.subscriptions[0]);\r\n } else {\r\n this.$emit('create', subscription);\r\n }\r\n\r\n setTimeout(() => {\r\n // Turn off subscribed and handle it after saved instead.\r\n // This is because we can't always know when/if the modal is closed.\r\n subscription.isSubscribed = false;\r\n }, 100);\r\n } else {\r\n if (subscription.subscriptions.length !== 1) {\r\n return;\r\n }\r\n this.$emit('inactivate', subscription, subscription.subscriptions[0]);\r\n }\r\n }\r\n\r\n private onEditSubscriptionClick(subscription: SubscriptionInfo) {\r\n if (subscription.subscriptions.length !== 1) {\r\n return;\r\n }\r\n this.$emit('edit', subscription.type, subscription.subscriptions[0]);\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscriptionGeneralRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubscriptionGeneralRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubscriptionGeneralRow.vue?vue&type=template&id=409ad749&\"\nimport script from \"./SubscriptionGeneralRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubscriptionGeneralRow.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport DefaultLayout from '@/layouts/DefaultLayout.vue';\r\nimport Breadcrumbs from '@/components/general/Breadcrumbs.vue';\r\nimport Messages from '@/components/general/Messages.vue';\r\nimport SubscriptionEditorModal from '@/components/SubscriptionEditorModal.vue';\r\nimport { subscriptionsModule } from '@/store/modules/subscriptions';\r\nimport { loadingModule } from '@/store/modules/loading';\r\nimport { SubscriptionInfo } from '@/models/Subscriptions/SubscriptionInfo';\r\nimport { SubscriptionType } from '@/models/Subscriptions/SubscriptionType';\r\nimport { routeNameSustainabilitySubscriptions } from '@/router/routes';\r\nimport { Breadcrumb } from '@/models/Breadcrumb';\r\nimport telemetryService, {\r\n RouteTrackingInfo,\r\n} from '@/services/TelemetryService';\r\nimport { getRouteTrackingInfo } from '@/router/functions';\r\nimport SubscriptionGeneralRow from '@/components/SubscriptionGeneralRow.vue';\r\nimport { SubscriptionInfoDetails } from '@/models/Subscriptions/SubscriptionInfoDetails';\r\n\r\n@Component({\r\n components: {\r\n DefaultLayout,\r\n Breadcrumbs,\r\n Messages,\r\n SubscriptionEditorModal,\r\n SubscriptionGeneralRow,\r\n },\r\n})\r\nexport default class SustainabilitySubscriptionsPage extends Vue {\r\n private readonly SubscriptionType = SubscriptionType;\r\n\r\n private routeTrackingInfo: RouteTrackingInfo = {};\r\n private errorLoading: boolean = false;\r\n private errorActivating: boolean = false;\r\n private errorInactivating: boolean = false;\r\n private createOrUpdateSubscription: {\r\n createNotUpdate: boolean;\r\n subscription: SubscriptionInfo;\r\n details: SubscriptionInfoDetails | null;\r\n } | null = null;\r\n private updatingSubscriptionType: SubscriptionType | null = null;\r\n\r\n private get isLoading(): boolean {\r\n return loadingModule.isLoading;\r\n }\r\n\r\n private get subscriptions(): SubscriptionInfo[] {\r\n const allSubscriptions = subscriptionsModule.subscriptions ?? [];\r\n return allSubscriptions.filter(\r\n (subscription) => subscription.type === SubscriptionType.Sustainability\r\n );\r\n }\r\n\r\n private get breadcrumbs(): Breadcrumb[] {\r\n return [\r\n {\r\n routeName: routeNameSustainabilitySubscriptions,\r\n name: this.$t(\r\n 'breadcrumbs.' + routeNameSustainabilitySubscriptions\r\n ).toString(),\r\n },\r\n ];\r\n }\r\n\r\n private created(): void {\r\n this.routeTrackingInfo = getRouteTrackingInfo(this.$route);\r\n this.loadSubscriptions().finally(() => {\r\n telemetryService.stopTrackPage(this.routeTrackingInfo);\r\n });\r\n }\r\n\r\n private async loadSubscriptions(force?: boolean): Promise {\r\n this.errorLoading = false;\r\n const loading = await loadingModule.dispatchAdd(\r\n this.$t('loading.subscriptions').toString()\r\n );\r\n\r\n return subscriptionsModule\r\n .dispatchLoad(force === true ? { force } : undefined)\r\n .catch(() => {\r\n this.errorLoading = true;\r\n })\r\n .finally(() => {\r\n loadingModule.commitComplete(loading);\r\n });\r\n }\r\n\r\n private onCreateSubscription(subscription: SubscriptionInfo): void {\r\n this.createOrUpdateSubscription = {\r\n createNotUpdate: true,\r\n subscription,\r\n details: null,\r\n };\r\n\r\n this.$nextTick(() => {\r\n (this.$refs.subscriptionEditorModal as SubscriptionEditorModal).show();\r\n });\r\n }\r\n\r\n private onEditSubscription(\r\n subscription: SubscriptionInfo,\r\n details: SubscriptionInfoDetails\r\n ): void {\r\n this.createOrUpdateSubscription = {\r\n createNotUpdate: false,\r\n subscription,\r\n details,\r\n };\r\n\r\n this.$nextTick(() => {\r\n (this.$refs.subscriptionEditorModal as SubscriptionEditorModal).show();\r\n });\r\n }\r\n\r\n private onActivateSubscription(\r\n subscription: SubscriptionInfo,\r\n subscriptionDetails: SubscriptionInfoDetails\r\n ): void {\r\n this.changeActiveStatusForSubscription(\r\n subscription,\r\n subscriptionDetails,\r\n true\r\n );\r\n }\r\n private onInactivateSubscription(\r\n subscription: SubscriptionInfo,\r\n subscriptionDetails: SubscriptionInfoDetails\r\n ): void {\r\n this.changeActiveStatusForSubscription(\r\n subscription,\r\n subscriptionDetails,\r\n false\r\n );\r\n }\r\n\r\n private changeActiveStatusForSubscription(\r\n subscription: SubscriptionInfo,\r\n subscriptionDetails: SubscriptionInfoDetails,\r\n active: boolean\r\n ): void {\r\n this.errorActivating = false;\r\n this.errorInactivating = false;\r\n this.updatingSubscriptionType = subscription.type;\r\n\r\n subscriptionsModule\r\n .dispatchChangeActiveStatus({\r\n id: subscriptionDetails.id,\r\n model: {\r\n type: subscription.type,\r\n active,\r\n },\r\n })\r\n .then(() => {\r\n this.loadSubscriptions(true);\r\n })\r\n .catch(() => {\r\n if (active) {\r\n this.errorActivating = true;\r\n } else {\r\n this.errorInactivating = true;\r\n }\r\n\r\n // Reset the subscribe status\r\n subscription.isSubscribed = !subscription.isSubscribed;\r\n })\r\n .finally(() => {\r\n this.updatingSubscriptionType = null;\r\n });\r\n }\r\n\r\n private onCreatedSubscription(): void {\r\n this.createOrUpdateSubscription = null;\r\n this.loadSubscriptions(true);\r\n }\r\n\r\n private onUpdatedSubscription(): void {\r\n this.createOrUpdateSubscription = null;\r\n this.loadSubscriptions(true);\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilitySubscriptionsPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilitySubscriptionsPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SustainabilitySubscriptionsPage.vue?vue&type=template&id=40ae756c&\"\nimport script from \"./SustainabilitySubscriptionsPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./SustainabilitySubscriptionsPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SustainabilitySubscriptionsPage.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DefaultLayout',[_c('Breadcrumbs',{attrs:{\"items\":_vm.breadcrumbs}}),_c('Messages'),_c('div',{staticClass:\"container-fluid mt-3\"},[_c('h1',{staticClass:\"t-heading-3\"},[_vm._v(_vm._s(_vm.$t('sustainabilityPage.title')))]),_c('span',{staticClass:\"o-line\"}),(_vm.errorProducts)?_c('div',{staticClass:\"d-print-none mt-3\"},[_c('div',{staticClass:\"c-alert c-alert--red\",attrs:{\"data-element-id\":\"sustainabilityPageProductsErrorAlert\"}},[_c('span',{staticClass:\"c-alert__text\"},[_vm._v(_vm._s(_vm.$t('sustainabilityPage.errorProducts')))])])]):_c('div',{staticClass:\"mt-3\"},[_c('Tabs',{staticClass:\"mb-3\",attrs:{\"tabs\":_vm.tabs,\"currentTab\":_vm.currentTab},on:{\"tabChange\":_vm.onTabChange}}),_c('h2',{staticClass:\"t-heading-4\"},[_vm._v(\" \"+_vm._s(_vm.$t((\"sustainabilityDataType.\" + _vm.currentTabType)))+\" \")]),_c('p',{staticClass:\"t-body-regular-sans-serif\",domProps:{\"innerHTML\":_vm._s(\n _vm.$t((\"sustainabilityPage.introductions.\" + _vm.currentTabType), {\n email: _vm.contactSustainabilityEmailAddress,\n })\n )}}),_c('div',{staticClass:\"d-flex flex-row justify-content-between flex-wrap align-items-center mb-3\"},[(_vm.currentTabType !== _vm.tabTypes.CertifiedVolumes)?_c('SustainabilityProductsFilter',{staticClass:\"mb-1\",attrs:{\"products\":_vm.products,\"selectedTab\":_vm.currentTabType,\"selectedProduct\":_vm.selectedProduct,\"selectedYear\":_vm.selectedYear,\"selectedEnvironmentalDataReportType\":_vm.selectedEnvironmentalDataReportType,\"environmentalDataReportTypes\":_vm.environmentalDataReportTypes},on:{\"productChange\":_vm.onProductChange,\"yearChange\":_vm.onYearSelectChange,\"environmentalDataReportTypeChange\":_vm.onEnvironmentalDataReportTypeChange}}):_c('SustainabilityCertifiedVolumesFilter',{staticClass:\"mb-1\",attrs:{\"selectedMonthRange\":_vm.selectedMonthRange},on:{\"monthRangeChange\":_vm.onMonthRangeChange}}),(_vm.showPrintAndExportButtons)?_c('div',{staticClass:\"d-align-self-end mb-1\"},[_c('SustainabilityActionButtons',{attrs:{\"params\":_vm.params,\"currentTabType\":_vm.currentTabType,\"environmentalDataReportType\":_vm.environmentalDataReportType}})],1):_vm._e(),_c('div',{staticClass:\"d-align-self-end mb-1\"},[_c('button',{staticClass:\"o-button o-button--black\",attrs:{\"type\":\"button\",\"value\":\"Sustainability report\"},on:{\"click\":_vm.showSustainabilityExport}},[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityPage.excelReportTool'))+\" \")])])],1),(\n !_vm.isLoading &&\n _vm.currentTabType !== _vm.tabTypes.CertifiedVolumes &&\n _vm.selectedProduct !== null &&\n (_vm.hasDataForTypeProductMillAndYear === null ||\n _vm.hasDataForTypeProductMillAndYear === false)\n )?_c('div',{staticClass:\"mb-3\"},[(_vm.hasDataForTypeProductMillAndAnyYear)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityPage.noData.otherYear', [_vm.selectedYear]))+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityPage.noData.otherProduct', [ _vm.$tc((\"sustainabilityDataType.\" + _vm.currentTabType)).toLowerCase() ]))+\" \")])]):_vm._e(),(_vm.errorData || _vm.productNotFound)?_c('div',{staticClass:\"c-alert\",class:{\n 'c-alert--red': _vm.errorData,\n 'c-alert--yellow': _vm.productNotFound,\n },attrs:{\"data-element-id\":\"sustainabilityPageErrorAlert\"}},[_c('span',{staticClass:\"c-alert__text\"},[(_vm.errorData)?[_vm._v(_vm._s(_vm.$t('sustainabilityPage.errorData')))]:(_vm.productNotFound)?[_vm._v(_vm._s(_vm.$t('sustainabilityPage.productNotFound')))]:_vm._e()],2),_c('span',{staticClass:\"js-toggle-hidden c-alert__close\",attrs:{\"data-element-id\":\"sustainabilityPageErrorAlert\"}})]):[(_vm.currentTabType === _vm.tabTypes.EnvironmentalData)?_c('div',{attrs:{\"role\":\"tabpanel\"}},[(!_vm.loadingData && _vm.environmentalData)?_c('SustainabilityEnvironmentalData',{attrs:{\"data\":_vm.environmentalData}}):_vm._e()],1):_vm._e(),(_vm.currentTabType === _vm.tabTypes.CarbonFootprints)?_c('div',{attrs:{\"role\":\"tabpanel\"}},[(!_vm.loadingData && _vm.carbonFootprints)?_c('SustainabilityCarbonFootprints',{attrs:{\"data\":_vm.carbonFootprints}}):_vm._e()],1):_vm._e(),(_vm.currentTabType === _vm.tabTypes.OriginOfWood)?_c('div',{attrs:{\"role\":\"tabpanel\"}},[(!_vm.loadingData && _vm.originOfWood)?_c('SustainabilityOriginOfWood',{attrs:{\"data\":_vm.originOfWood}}):_vm._e()],1):_vm._e(),(_vm.currentTabType === _vm.tabTypes.WaterFootprints)?_c('div',{attrs:{\"role\":\"tabpanel\"}},[(!_vm.loadingData && _vm.waterFootprints)?_c('SustainabilityWaterFootprints',{attrs:{\"data\":_vm.waterFootprints}}):_vm._e()],1):_vm._e(),(\n _vm.canViewCertifiedVolumes &&\n _vm.currentTabType === _vm.tabTypes.CertifiedVolumes\n )?_c('div',{attrs:{\"role\":\"tabpanel\"}},[(!_vm.loadingData)?_c('SustainabilityCertifiedVolumes',{attrs:{\"data\":_vm.certifiedVolumes,\"certificationDocuments\":_vm.certificationDocuments}}):_vm._e()],1):_vm._e()],(\n !_vm.isLoading &&\n _vm.currentTabType !== _vm.tabTypes.CertifiedVolumes &&\n _vm.selectedProduct === null &&\n _vm.hasDataForTypeProductMillAndYear === null\n )?[_c('SustainabilityProductLists',{attrs:{\"products\":_vm.products},on:{\"click\":_vm.onProductChange}})]:_vm._e(),(_vm.loadingData)?_c('div',{staticClass:\"u-position-relative u-min-height-300\"},[_c('span',{staticClass:\"o-loader o-loader--absolute\"})]):_vm._e()],2)]),_c('SustainabilityExportModal',{ref:\"sustainabilityExportModal\",attrs:{\"products\":_vm.products,\"environmentalDataReportTypes\":_vm.environmentalDataReportTypes}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.customerProducts.length)?_c('div',[_c('h3',{staticClass:\"t-heading-5\"},[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityProductLists.customerProducts'))+\" \")]),_c('SustainabilityProductList',{attrs:{\"products\":_vm.customerProducts},on:{\"click\":_vm.onProductClick}})],1):_vm._e(),(_vm.otherProducts.length)?_c('div',{staticClass:\"mt-4\"},[_c('h3',{staticClass:\"t-heading-5\"},[(_vm.customerProducts.length)?[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityProductLists.otherProducts'))+\" \")]:[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityProductLists.products'))+\" \")]],2),_c('SustainabilityProductList',{attrs:{\"products\":_vm.otherProducts},on:{\"click\":_vm.onProductClick}})],1):_vm._e(),(!_vm.customerProducts.length && !_vm.otherProducts.length)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityProductLists.noData'))+\" \")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.products.length)?_c('div',{staticClass:\"c-table c-table--no-divider mb-3\"},[_c('div',{staticClass:\"c-table__scroll-container\"},[_c('table',[_c('thead',[_c('tr',[_c('th',{staticClass:\"no-stretch pr-sm-6\"},[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityProductList.product'))+\" \")]),_c('th',{staticClass:\"pl-sm-6\"},[_vm._v(_vm._s(_vm.$t('sustainabilityProductList.mill')))])])]),_c('tbody',_vm._l((_vm.products),function(product,index){return _c('tr',{key:index,staticClass:\"c-table__clickable-row\",on:{\"click\":function($event){return _vm.onProductClick(product)}}},[_c('td',{staticClass:\"no-stretch pr-sm-6\"},[_vm._v(\" \"+_vm._s(product.productDisplayName)+\" \")]),_c('td',{staticClass:\"pl-sm-6\"},[_vm._v(\" \"+_vm._s(product.millName)+\" \")])])}),0)])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport { SustainabilityProduct } from '@/models/Sustainability/SustainabilityProduct';\r\n\r\n@Component\r\nexport default class SustainabilityProductList extends Vue {\r\n @Prop({ required: true })\r\n public products!: SustainabilityProduct[];\r\n\r\n private onProductClick(product: SustainabilityProduct) {\r\n this.$emit('click', product);\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityProductList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityProductList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SustainabilityProductList.vue?vue&type=template&id=5870fcfc&scoped=true&\"\nimport script from \"./SustainabilityProductList.vue?vue&type=script&lang=ts&\"\nexport * from \"./SustainabilityProductList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SustainabilityProductList.vue?vue&type=style&index=0&id=5870fcfc&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5870fcfc\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport { SustainabilityProduct } from '@/models/Sustainability/SustainabilityProduct';\r\nimport SustainabilityProductList from '@/components/SustainabilityProductList.vue';\r\n\r\n@Component({\r\n components: {\r\n SustainabilityProductList,\r\n },\r\n})\r\nexport default class SustainabilityProductLists extends Vue {\r\n @Prop({ required: true })\r\n public products!: SustainabilityProduct[];\r\n\r\n private get customerProducts(): SustainabilityProduct[] {\r\n return this.products.filter((p) => p.isCustomerProduct === true);\r\n }\r\n\r\n private get otherProducts(): SustainabilityProduct[] {\r\n return this.products.filter((p) => p.isCustomerProduct !== true);\r\n }\r\n\r\n private onProductClick(product: SustainabilityProduct) {\r\n this.$emit('click', product);\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityProductLists.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityProductLists.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SustainabilityProductLists.vue?vue&type=template&id=f1e95896&\"\nimport script from \"./SustainabilityProductLists.vue?vue&type=script&lang=ts&\"\nexport * from \"./SustainabilityProductLists.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex flex-wrap\"},[(_vm.products.length > 0)?_c('SelectBox',{staticClass:\"u-xs-full-width mr-sm-3 mb-1 mb-sm-0\",attrs:{\"value\":_vm.selectedProduct,\"optionGroups\":_vm.productSelectOptionGroups,\"placeholder\":_vm.$t('sustainabilityProductsFilter.product.placeholder')},on:{\"input\":_vm.onSelectedProductChange}}):_vm._e(),(_vm.yearSelectOptions.length > 0)?_c('SelectBox',{staticClass:\"u-xs-full-width mr-sm-3 mb-1 mb-sm-0\",attrs:{\"value\":_vm.selectedYear,\"options\":_vm.yearSelectOptions},on:{\"input\":_vm.onSelectedYearChange}}):_vm._e(),(\n _vm.isEnvironmentalDataTab &&\n _vm.environmentalDataReportTypes.length > 0 &&\n _vm.selectedProduct\n )?_c('SelectBox',{staticClass:\"u-xs-full-width mb-1 mb-sm-0\",attrs:{\"value\":_vm.selectedEnvironmentalDataReportType,\"options\":_vm.environmentalDataReportTypesSelectOptions},on:{\"input\":_vm.onSelectedEnvironmentalDataReportTypeChange}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport { SustainabilityProduct } from '@/models/Sustainability/SustainabilityProduct';\r\nimport SelectBox, {\r\n SelectOption,\r\n SelectOptionGroup,\r\n} from '@/components/general/SelectBox.vue';\r\nimport i18n from '@/i18n/i18n';\r\nimport { SustainabilityDataType } from '@/models/Sustainability/SustainabilityDataType';\r\nimport { EnvironmentalDataReportType } from '@/models/Sustainability/EnvironmentalData/EnvironmentalDataReportType';\r\n\r\n@Component({\r\n components: {\r\n SelectBox,\r\n },\r\n})\r\nexport default class SustainabilityProductsFilter extends Vue {\r\n @Prop({ required: true })\r\n private products!: SustainabilityProduct[];\r\n @Prop({ required: true })\r\n private selectedTab!: SustainabilityDataType;\r\n @Prop({ required: true })\r\n private selectedProduct!: SustainabilityProduct | null;\r\n @Prop({ required: true })\r\n private selectedYear!: number | null;\r\n @Prop({ required: true })\r\n private selectedEnvironmentalDataReportType!: EnvironmentalDataReportType;\r\n @Prop({ required: true })\r\n private environmentalDataReportTypes!: EnvironmentalDataReportType[];\r\n\r\n private get isEnvironmentalDataTab(): boolean {\r\n return this.selectedTab === SustainabilityDataType.EnvironmentalData;\r\n }\r\n\r\n private get customerProducts(): SustainabilityProduct[] {\r\n return this.products.filter((p) => p.isCustomerProduct === true);\r\n }\r\n\r\n private get otherProducts(): SustainabilityProduct[] {\r\n return this.products.filter((p) => p.isCustomerProduct !== true);\r\n }\r\n\r\n private get productSelectOptionGroups(): SelectOptionGroup[] {\r\n function mapProductToSelectOption(\r\n product: SustainabilityProduct\r\n ): SelectOption {\r\n return {\r\n value: product,\r\n text: i18n\r\n .t('sustainabilityProductsFilter.product.productText', [\r\n product.productDisplayName,\r\n product.millName,\r\n ])\r\n .toString(),\r\n };\r\n }\r\n\r\n const optionGroups: SelectOptionGroup[] = [];\r\n\r\n if (this.customerProducts.length > 0) {\r\n optionGroups.push({\r\n text: this.$t(\r\n 'sustainabilityProductsFilter.product.customerProducts'\r\n ).toString(),\r\n options: this.customerProducts.map(mapProductToSelectOption),\r\n });\r\n }\r\n\r\n const otherProductsLocalizationKey =\r\n this.customerProducts.length > 0\r\n ? 'sustainabilityProductsFilter.product.otherProducts'\r\n : 'sustainabilityProductsFilter.product.products';\r\n optionGroups.push({\r\n text: this.$t(otherProductsLocalizationKey).toString(),\r\n options: this.otherProducts.map(mapProductToSelectOption),\r\n });\r\n\r\n return optionGroups;\r\n }\r\n\r\n private get yearSelectOptions(): SelectOption[] {\r\n if (this.selectedProduct === null) {\r\n return [];\r\n }\r\n\r\n return this.selectedProduct.years\r\n .filter((year) => year.types.some((t) => t === this.selectedTab))\r\n .map((year) => ({\r\n value: year.year,\r\n text: year.year.toString(),\r\n }))\r\n .sort((a, b) => {\r\n return b.value - a.value;\r\n });\r\n }\r\n\r\n private get environmentalDataReportTypesSelectOptions(): SelectOption[] {\r\n return this.environmentalDataReportTypes.map(\r\n (environmentalDataReportType) => ({\r\n value: environmentalDataReportType,\r\n text: this.$te(\r\n `sustainabilityProductsFilter.environmentalDataReportType.customNames.${environmentalDataReportType}`\r\n )\r\n ? this.$t(\r\n `sustainabilityProductsFilter.environmentalDataReportType.customNames.${environmentalDataReportType}`\r\n ).toString()\r\n : environmentalDataReportType,\r\n })\r\n );\r\n }\r\n\r\n private onSelectedProductChange(val: SustainabilityProduct) {\r\n this.$emit('productChange', val);\r\n }\r\n\r\n private onSelectedYearChange(val: number) {\r\n this.$emit('yearChange', val);\r\n }\r\n\r\n private onSelectedEnvironmentalDataReportTypeChange(\r\n val: EnvironmentalDataReportType\r\n ) {\r\n this.$emit('environmentalDataReportTypeChange', val);\r\n }\r\n}\r\n","export enum EnvironmentalDataParameterType {\r\n CO2Fossil = 'CO2Fossil',\r\n NOx = 'NOx',\r\n SO2 = 'SO2',\r\n AOX = 'AOX',\r\n COD = 'COD',\r\n Ntot = 'Ntot',\r\n Ptot = 'Ptot',\r\n DepositedWaste = 'DepositedWaste',\r\n PurchasedElectricityConsumption = 'PurchasedElectricityConsumption',\r\n WoodRawMaterial = 'WoodRawMaterial',\r\n WoodRawMaterialPulpWoodLogs = 'WoodRawMaterialPulpWoodLogs',\r\n WoodRawMaterialSawmillResidues = 'WoodRawMaterialSawmillResidues',\r\n Species = 'Species',\r\n RecyclingFibres = 'RecyclingFibres',\r\n Chemicals = 'Chemicals',\r\n WaterUse = 'WaterUse',\r\n WaterUseProcessWater = 'WaterUseProcessWater',\r\n WaterUseCoolingWater = 'WaterUseCoolingWater',\r\n S = 'S',\r\n Dust = 'Dust',\r\n CO2Biogen = 'CO2Biogen',\r\n TOC = 'TOC',\r\n BOD7 = 'BOD7',\r\n TSS = 'TSS',\r\n HazardousWaste = 'HazardousWaste',\r\n BoughtElectricity = 'BoughtElectricity',\r\n ProducedElectricity = 'ProducedElectricity',\r\n SoldElectricity = 'SoldElectricity',\r\n ElectricityConsumption = 'ElectricityConsumption',\r\n FuelConsumptionNordicSwan = 'FuelConsumptionNordicSwan',\r\n FuelConsumptionEuEcolabel = 'FuelConsumptionEuEcolabel',\r\n SteamConsumption = 'SteamConsumption',\r\n WoodRawMaterialToMillByTruck = 'WoodRawMaterialToMillByTruck',\r\n WoodRawMaterialToMillByRail = 'WoodRawMaterialToMillByRail',\r\n WoodRawMaterialToMillByBoat = 'WoodRawMaterialToMillByBoat',\r\n ChemicalsToMillByTruck = 'ChemicalsToMillByTruck',\r\n ChemicalsToMillByRail = 'ChemicalsToMillByRail',\r\n ChemicalsToMillByBoat = 'ChemicalsToMillByBoat',\r\n BleachingSequence = 'BleachingSequence',\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityProductsFilter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityProductsFilter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SustainabilityProductsFilter.vue?vue&type=template&id=3339d7fe&\"\nimport script from \"./SustainabilityProductsFilter.vue?vue&type=script&lang=ts&\"\nexport * from \"./SustainabilityProductsFilter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.data)?_c('div',_vm._l((_vm.data.parameterGroups),function(parameterGroup,groupIndex){return _c('div',{key:groupIndex,staticClass:\"c-table c-table--small-borders c-table--print-dense c-table--no-divider mb-3\"},[_c('div',{staticClass:\"c-table__scroll-container\"},[_c('table',[_c('thead',[_c('tr',[_c('th',{attrs:{\"colspan\":\"100\"}},[_c('strong',[_vm._v(_vm._s(parameterGroup.type))])])])]),_c('tbody',[_vm._l((parameterGroup.parameters),function(parameter,index){return [(\n parameter.value !== null ||\n (parameter.type ===\n _vm.EnvironmentalDataParameterType.BleachingSequence &&\n _vm.data.bleachingSequence !== null) ||\n (parameter.type === _vm.EnvironmentalDataParameterType.Species &&\n _vm.data.species !== null &&\n _vm.data.species.length > 0)\n )?_c('tr',{key:(groupIndex + \"|\" + index)},[_c('td',{staticClass:\"first-column\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(parameter.name)}})]),_c('td',{staticClass:\"second-column\"},[(\n parameter.type ===\n _vm.EnvironmentalDataParameterType.BleachingSequence\n )?_c('div',[_vm._v(\" \"+_vm._s(_vm.data.bleachingSequence)+\" \")]):(\n parameter.type === _vm.EnvironmentalDataParameterType.Species\n )?_c('div',_vm._l((_vm.data.species),function(species,speciesIndex){return _c('div',{key:(groupIndex + \"|\" + index + \"|\" + speciesIndex)},[_vm._v(\" \"+_vm._s(species)+\" \")])}),0):_c('div',{staticClass:\"value-data\"},[_c('span',[_vm._v(_vm._s(parameter.value))]),_c('span',{staticClass:\"ml-1\",domProps:{\"innerHTML\":_vm._s(parameter.unitOfMeasurement)}})])])]):_vm._e()]})],2)])])])}),0):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport { EnvironmentalData } from '@/models/Sustainability/EnvironmentalData/EnvironmentalData';\r\nimport { EnvironmentalDataParameterType } from '@/models/Sustainability/EnvironmentalData/EnvironmentalDataParameterType';\r\n\r\n@Component\r\nexport default class SustainabilityEnvironmentalData extends Vue {\r\n @Prop({ required: true })\r\n private data!: EnvironmentalData | null;\r\n\r\n private EnvironmentalDataParameterType = EnvironmentalDataParameterType;\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityEnvironmentalData.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityEnvironmentalData.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SustainabilityEnvironmentalData.vue?vue&type=template&id=97f19088&scoped=true&\"\nimport script from \"./SustainabilityEnvironmentalData.vue?vue&type=script&lang=ts&\"\nexport * from \"./SustainabilityEnvironmentalData.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SustainabilityEnvironmentalData.vue?vue&type=style&index=0&id=97f19088&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"97f19088\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.data)?_c('div',[_c('div',{staticClass:\"c-table c-table--small-borders c-table--print-dense c-table--no-divider mb-3\"},[_c('div',{staticClass:\"c-table__scroll-container\"},[_c('table',[_c('thead',[_c('tr',[_c('th'),_vm._l((_vm.data.content),function(group,index){return _c('th',{key:index,staticClass:\"u-text-center t-body-regular-sans-serif\",attrs:{\"colspan\":group.productionFuels.length}},[_vm._v(\" \"+_vm._s(group.groupName)+\" \"),_c('span',{domProps:{\"innerHTML\":_vm._s(group.groupUnit)}})])})],2),_c('tr',[_c('th'),_vm._l((_vm.data.content),function(group,groupIndex){return _vm._l((group.productionFuels),function(productionFuel,index){return _c('th',{key:(groupIndex + \"|\" + index),staticClass:\"u-text-center\"},[_c('strong',[_vm._v(_vm._s(productionFuel.name))])])})})],2),_c('tr',[_c('th'),_vm._l((_vm.data.content),function(group,groupIndex){return _vm._l((group.productionFuels),function(productionFuel,index){return _c('th',{key:(groupIndex + \"|\" + index),staticClass:\"u-text-center\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(productionFuel.unit)}})])})})],2)]),_c('tbody',_vm._l((10),function(toe){return _c('SustainabilityCarbonFootprintsRow',{key:toe,attrs:{\"groups\":_vm.data.content,\"toe\":toe}})}),1)])])]),_c('div',[_c('p',{staticClass:\"t-body-regular-small\"},[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityCarbonFootprints.extraInfo1'))+\" \")]),_c('p',{staticClass:\"t-body-regular-small\"},[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityCarbonFootprints.extraInfo2'))+\" \")])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(_vm._s(_vm.$t((\"sustainabilityCarbonFootprintsRow.toe\" + _vm.toe))))]),_vm._l((_vm.groups),function(group,groupIndex){return _vm._l((group.productionFuels),function(productionFuel,index){return _c('td',{key:(groupIndex + \"|\" + index),staticClass:\"u-text-center\"},[(productionFuel.carbonFootprint)?[_vm._v(\" \"+_vm._s(_vm._f(\"number\")(productionFuel.carbonFootprint[(\"toe\" + _vm.toe)],2))+\" \")]:_vm._e()],2)})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport { ProductionFuelGroup } from '@/models/Sustainability/CarbonFootprints/ProductionFuelGroup';\r\n\r\n@Component\r\nexport default class SustainabilityCarbonFootprintsRow extends Vue {\r\n @Prop({ required: true })\r\n private groups!: ProductionFuelGroup[];\r\n @Prop({ required: true })\r\n private toe!: number;\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityCarbonFootprintsRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityCarbonFootprintsRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SustainabilityCarbonFootprintsRow.vue?vue&type=template&id=e42edc10&\"\nimport script from \"./SustainabilityCarbonFootprintsRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./SustainabilityCarbonFootprintsRow.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport { CarbonFootprints } from '@/models/Sustainability/CarbonFootprints/CarbonFootprints';\r\nimport SustainabilityCarbonFootprintsRow from '@/components/SustainabilityCarbonFootprintsRow.vue';\r\n\r\n@Component({\r\n components: {\r\n SustainabilityCarbonFootprintsRow,\r\n },\r\n})\r\nexport default class SustainabilityCarbonFootprints extends Vue {\r\n @Prop({ required: true })\r\n private data!: CarbonFootprints | null;\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityCarbonFootprints.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityCarbonFootprints.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SustainabilityCarbonFootprints.vue?vue&type=template&id=954701dc&\"\nimport script from \"./SustainabilityCarbonFootprints.vue?vue&type=script&lang=ts&\"\nexport * from \"./SustainabilityCarbonFootprints.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.data)?_c('div',[(_vm.data.content.length)?_c('div',{staticClass:\"c-table c-table--small-borders c-table--print-dense c-table--no-divider\"},[_c('div',{staticClass:\"c-table__scroll-container\"},[_c('table',[_c('thead',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('sustainabilityOriginOfWood.country')))]),_c('th',[_vm._v(_vm._s(_vm.$t('sustainabilityOriginOfWood.region')))]),_c('th',[_vm._v(_vm._s(_vm.$t('sustainabilityOriginOfWood.share')))])])]),_c('tbody',_vm._l((_vm.data.content),function(origin,index){return _c('tr',{key:index},[_c('td',[_vm._v(_vm._s(origin.country))]),_c('td',[_vm._v(_vm._s(origin.region))]),_c('td',[_vm._v(_vm._s(origin.share)+\" %\")])])}),0)])])]):_c('div',{staticClass:\"t-body-regular-sans-serif mt-3\"},[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityOriginOfWood.noOrigins'))+\" \")])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport { OriginOfWood } from '@/models/Sustainability/OriginOfWood/OriginOfWood';\r\n\r\n@Component\r\nexport default class SustainabilityOriginOfWood extends Vue {\r\n @Prop({ required: true })\r\n private data!: OriginOfWood | null;\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityOriginOfWood.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityOriginOfWood.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SustainabilityOriginOfWood.vue?vue&type=template&id=6b49b554&\"\nimport script from \"./SustainabilityOriginOfWood.vue?vue&type=script&lang=ts&\"\nexport * from \"./SustainabilityOriginOfWood.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.data)?_c('div',{staticClass:\"mt-2\"},[(_vm.yearsAndMonths.length && _vm.customerVolumes.length)?_vm._l((_vm.customerVolumes),function(customerVol,index){return _c('SustainabilityCertifiedVolumesCustomer',{key:index,staticClass:\"mb-4\",attrs:{\"yearsAndMonths\":_vm.yearsAndMonths,\"data\":customerVol,\"certificationDocuments\":_vm.certificationDocuments}})}):_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityCertifiedVolumes.noData'))+\" \")])],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',{staticClass:\"t-heading-5\"},[_vm._v(_vm._s(_vm.data.name))]),(_vm.collections.length)?_c('CollectionVolumesList',{staticClass:\"c-table--print-dense c-table--print-fit-content\",attrs:{\"collections\":_vm.collections,\"yearsAndMonths\":_vm.yearsAndMonths,\"mainColumnName\":_vm.$t('sustainabilityCertifiedVolumesCustomer.mainColumnName')},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar collection = ref.collection;\nreturn [(collection.certificationDocument)?_c('a',{staticClass:\"mdi mdi--24\",class:[_vm.getDocumentIconClass(collection.certificationDocument)],attrs:{\"target\":\"_blank\"},on:{\"click\":function($event){return _vm.downloadDocument(collection.certificationDocument)}}},[_vm._v(\" \"+_vm._s(collection.certificationDocumentLabel)+\" \")]):_vm._e()]}}],null,false,1808795965)}):_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityCertifiedVolumesCustomer.noData'))+\" \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport { CustomerVolumes } from '@/models/Sustainability/CertifiedVolumes/CustomerVolumes';\r\nimport { ProductVolumes } from '@/models/Sustainability/CertifiedVolumes/ProductVolumes';\r\nimport { Config } from '@/utils/Config';\r\nimport { CertificationDocuments } from '@/models/Documents/CertificationDocuments';\r\nimport { Document } from '@/models/Documents/Document';\r\nimport { Helpers } from '@/utils/Helpers';\r\nimport documentsService from '@/services/DocumentsService';\r\nimport { Consoler } from '@/utils/Consoler';\r\nimport { Message, MessageType } from '@/models/Message';\r\nimport { EventBus } from '@/utils/EventBus';\r\nimport CollectionVolumesList, {\r\n CollectionVolume,\r\n} from './CollectionVolumesList.vue';\r\n\r\ninterface CertifiedVolumesCollectionVolume extends CollectionVolume {\r\n certificationDocument?: Document;\r\n certificationDocumentLabel?: string;\r\n}\r\n\r\n@Component({\r\n components: {\r\n CollectionVolumesList,\r\n },\r\n})\r\nexport default class SustainabilityCertifiedVolumesCustomer extends Vue {\r\n @Prop({ required: true }) private yearsAndMonths!: {\r\n year: number;\r\n month: number;\r\n }[];\r\n @Prop({ required: true }) private data!: CustomerVolumes;\r\n @Prop({ required: true })\r\n private certificationDocuments!: CertificationDocuments | null;\r\n\r\n private get collections(): CertifiedVolumesCollectionVolume[] {\r\n const collections: CertifiedVolumesCollectionVolume[] = [];\r\n\r\n if (this.data.volumes) {\r\n collections.push({\r\n name: this.$t(\r\n 'sustainabilityCertifiedVolumesCustomer.collections.volumes'\r\n ).toString(),\r\n volumes: this.data.volumes,\r\n totalVolumes: this.data.totalVolumes,\r\n totalVolume: this.data.totalVolume,\r\n });\r\n }\r\n if (this.data.volumesFSC) {\r\n collections.push({\r\n name: this.$t(\r\n 'sustainabilityCertifiedVolumesCustomer.collections.volumesFSC'\r\n ).toString(),\r\n volumes: this.data.volumesFSC,\r\n totalVolumes: this.data.totalVolumesFSC,\r\n totalVolume: this.data.totalVolumeFSC,\r\n showNameRow: true,\r\n useShowNameRowExtraSlot: true,\r\n certificationDocument: this.certificationDocuments?.fscDocument,\r\n certificationDocumentLabel: this.$t(\r\n 'sustainabilityCertifiedVolumesCustomer.collections.volumesFSCLabel'\r\n ).toString(),\r\n });\r\n }\r\n if (this.data.volumesFSCControlledWood) {\r\n collections.push({\r\n name: this.$t(\r\n 'sustainabilityCertifiedVolumesCustomer.collections.volumesFSCControlledWood'\r\n ).toString(),\r\n volumes: this.data.volumesFSCControlledWood,\r\n totalVolumes: this.data.totalVolumesFSCControlledWood,\r\n totalVolume: this.data.totalVolumeFSCControlledWood,\r\n showNameRow: true,\r\n useShowNameRowExtraSlot: true,\r\n certificationDocument: this.certificationDocuments?.fscDocument,\r\n certificationDocumentLabel: this.$t(\r\n 'sustainabilityCertifiedVolumesCustomer.collections.volumesFSCLabel'\r\n ).toString(),\r\n });\r\n }\r\n if (this.data.volumesFSCC) {\r\n collections.push({\r\n name: this.$t(\r\n 'sustainabilityCertifiedVolumesCustomer.collections.volumesFSCC'\r\n ).toString(),\r\n volumes: this.data.volumesFSCC,\r\n totalVolumes: this.data.totalVolumesFSCC,\r\n totalVolume: this.data.totalVolumeFSCC,\r\n showNameRow: true,\r\n useShowNameRowExtraSlot: true,\r\n certificationDocument: this.certificationDocuments?.fscDocument,\r\n certificationDocumentLabel: this.$t(\r\n 'sustainabilityCertifiedVolumesCustomer.collections.volumesFSCLabel'\r\n ).toString(),\r\n });\r\n }\r\n if (this.data.volumesPEFC) {\r\n collections.push({\r\n name: this.$t(\r\n 'sustainabilityCertifiedVolumesCustomer.collections.volumesPEFC'\r\n ).toString(),\r\n volumes: this.data.volumesPEFC,\r\n totalVolumes: this.data.totalVolumesPEFC,\r\n totalVolume: this.data.totalVolumePEFC,\r\n showNameRow: true,\r\n useShowNameRowExtraSlot: true,\r\n certificationDocument: this.certificationDocuments?.pefcDocument,\r\n certificationDocumentLabel: this.$t(\r\n 'sustainabilityCertifiedVolumesCustomer.collections.volumesPEFCLabel'\r\n ).toString(),\r\n });\r\n }\r\n if (this.data.volumesPEFCCS) {\r\n collections.push({\r\n name: this.$t(\r\n 'sustainabilityCertifiedVolumesCustomer.collections.volumesPEFCCS'\r\n ).toString(),\r\n volumes: this.data.volumesPEFCCS,\r\n totalVolumes: this.data.totalVolumesPEFCCS,\r\n totalVolume: this.data.totalVolumePEFCCS,\r\n showNameRow: true,\r\n useShowNameRowExtraSlot: true,\r\n certificationDocument: this.certificationDocuments?.pefcDocument,\r\n certificationDocumentLabel: this.$t(\r\n 'sustainabilityCertifiedVolumesCustomer.collections.volumesPEFCLabel'\r\n ).toString(),\r\n });\r\n }\r\n\r\n return collections;\r\n }\r\n\r\n private downloadDocument(document: Document) {\r\n documentsService\r\n .downloadDocument(document.id, document.filename)\r\n .catch((error) => {\r\n Consoler.debugWarn('Error downloading document', error);\r\n const errorMessage: Message = {\r\n text: this.$t('documentList.errorDownloadingDocument').toString(),\r\n type: MessageType.error,\r\n };\r\n EventBus.$emit(Config.AddMessageEvent, errorMessage);\r\n });\r\n }\r\n\r\n private getDocumentIconClass(document: Document) {\r\n return Helpers.getDocumentIconClass(document);\r\n }\r\n\r\n private getProductStyle(product: ProductVolumes): any {\r\n return {\r\n color: Config.getProductColor(product.productColorCategory),\r\n };\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityCertifiedVolumesCustomer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityCertifiedVolumesCustomer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SustainabilityCertifiedVolumesCustomer.vue?vue&type=template&id=4639fb20&\"\nimport script from \"./SustainabilityCertifiedVolumesCustomer.vue?vue&type=script&lang=ts&\"\nexport * from \"./SustainabilityCertifiedVolumesCustomer.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport CustomMonthRangePicker from '@/components/general/CustomMonthRangePicker.vue';\r\nimport SustainabilityCertifiedVolumesCustomer from '@/components/SustainabilityCertifiedVolumesCustomer.vue';\r\nimport { CertifiedVolumes } from '@/models/Sustainability/CertifiedVolumes/CertifiedVolumes';\r\nimport { YearAndMonth } from '@/models/YearAndMonth';\r\nimport { CustomerVolumes } from '@/models/Sustainability/CertifiedVolumes/CustomerVolumes';\r\nimport { CertificationDocuments } from '@/models/Documents/CertificationDocuments';\r\n\r\n@Component({\r\n components: {\r\n CustomMonthRangePicker,\r\n SustainabilityCertifiedVolumesCustomer,\r\n },\r\n})\r\nexport default class SustainabilityCertifiedVolumes extends Vue {\r\n @Prop({ required: true })\r\n private data!: CertifiedVolumes | null;\r\n\r\n @Prop({ required: true })\r\n private certificationDocuments!: CertificationDocuments | null;\r\n\r\n private get yearsAndMonths(): YearAndMonth[] {\r\n return this.data?.yearAndMonths ?? [];\r\n }\r\n\r\n private get customerVolumes(): CustomerVolumes[] {\r\n return this.data?.customerVolumes ?? [];\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityCertifiedVolumes.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityCertifiedVolumes.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SustainabilityCertifiedVolumes.vue?vue&type=template&id=0ee339ca&\"\nimport script from \"./SustainabilityCertifiedVolumes.vue?vue&type=script&lang=ts&\"\nexport * from \"./SustainabilityCertifiedVolumes.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex flex-wrap\"},[_c('CustomMonthRangePicker',{attrs:{\"monthRange\":_vm.selectedMonthRange,\"shortcuts\":_vm.dateRangeShortcuts,\"minDate\":_vm.minDate,\"maxDate\":_vm.startOfToday},on:{\"change\":_vm.onMonthRangeChange}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport CustomMonthRangePicker from '@/components/general/CustomMonthRangePicker.vue';\r\nimport { MonthRange } from '@/models/MonthRange';\r\nimport { DateRangeShortcut } from '@/models/DateRangeShortcut';\r\nimport { Dates } from '@/utils/Dates';\r\n\r\n@Component({\r\n components: {\r\n CustomMonthRangePicker,\r\n },\r\n})\r\nexport default class SustainabilityCertifiedVolumesFilter extends Vue {\r\n @Prop({ required: true })\r\n private selectedMonthRange!: MonthRange;\r\n\r\n private get minDate(): Date {\r\n return new Date(2001, 0, 1);\r\n }\r\n\r\n private get startOfToday(): Date {\r\n return Dates.startOfToday();\r\n }\r\n\r\n private get startOf12MonthsAgo(): Date {\r\n return Dates.getStartOfMonthInThePast(11);\r\n }\r\n private get dateRangeShortcuts(): DateRangeShortcut[] {\r\n const shortcuts: DateRangeShortcut[] = [];\r\n\r\n shortcuts.push({\r\n text: this.$t(\r\n 'sustainabilityCertifiedVolumes.ranges.currentYear'\r\n ).toString(),\r\n range: {\r\n fromDate: Dates.startOfYear(this.startOfToday.getFullYear()),\r\n toDate: this.startOfToday,\r\n },\r\n });\r\n shortcuts.push({\r\n text: this.$t(\r\n 'sustainabilityCertifiedVolumes.ranges.pastYear'\r\n ).toString(),\r\n range: {\r\n fromDate: this.startOf12MonthsAgo,\r\n toDate: this.startOfToday,\r\n },\r\n });\r\n\r\n const yearsToAdd: number[] = [\r\n this.startOfToday.getFullYear() - 1,\r\n this.startOfToday.getFullYear() - 2,\r\n this.startOfToday.getFullYear() - 3,\r\n this.startOfToday.getFullYear() - 4,\r\n this.startOfToday.getFullYear() - 5,\r\n this.startOfToday.getFullYear() - 6,\r\n ];\r\n\r\n for (const year of yearsToAdd) {\r\n shortcuts.push({\r\n text: year.toString(),\r\n range: {\r\n fromDate: Dates.startOfYear(year),\r\n toDate: Dates.endOfYear(year),\r\n },\r\n });\r\n }\r\n\r\n return shortcuts;\r\n }\r\n\r\n private onMonthRangeChange(value: MonthRange) {\r\n this.$emit('monthRangeChange', value);\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityCertifiedVolumesFilter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityCertifiedVolumesFilter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SustainabilityCertifiedVolumesFilter.vue?vue&type=template&id=4569aef4&\"\nimport script from \"./SustainabilityCertifiedVolumesFilter.vue?vue&type=script&lang=ts&\"\nexport * from \"./SustainabilityCertifiedVolumesFilter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('button',{staticClass:\"o-button o-button--white mr-2\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.print}},[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityActionButtons.print'))+\" \")]),_c('button',{staticClass:\"o-button o-button--black\",attrs:{\"type\":\"button\",\"disabled\":_vm.isExportingToExcel},on:{\"click\":_vm.exportToExcel}},[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityActionButtons.exportToExcel'))+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport sustainabilityService from '@/services/SustainabilityService';\r\nimport { Message, MessageType } from '@/models/Message';\r\nimport { EventBus } from '@/utils/EventBus';\r\nimport { Config } from '@/utils/Config';\r\nimport { SustainabilityParams } from '@/utils/RoutingForSustainability';\r\nimport { SustainabilityDataType } from '@/models/Sustainability/SustainabilityDataType';\r\nimport { Consoler } from '@/utils/Consoler';\r\nimport { EnvironmentalDataReportType } from '@/models/Sustainability/EnvironmentalData/EnvironmentalDataReportType';\r\n\r\n@Component\r\nexport default class SustainabilityActionButtons extends Vue {\r\n @Prop({ required: true })\r\n private params!: SustainabilityParams | null;\r\n @Prop({ required: true })\r\n private currentTabType!: SustainabilityDataType;\r\n @Prop({ required: true })\r\n private environmentalDataReportType!: EnvironmentalDataReportType | undefined;\r\n\r\n private isExportingToExcel: boolean = false;\r\n\r\n private async exportToExcel(): Promise {\r\n if (this.params === null) {\r\n Consoler.debugWarn(\"No params, can't export\");\r\n return;\r\n }\r\n\r\n let dispatchMetod: Promise | undefined;\r\n\r\n if (this.currentTabType !== SustainabilityDataType.CertifiedVolumes) {\r\n if (this.params.productMillAndYear === undefined) {\r\n Consoler.debugWarn(\"No product params, can't export\");\r\n return;\r\n }\r\n\r\n const millName =\r\n this.params.productMillAndYear.millName ??\r\n this.params.productMillAndYear.millId?.toString() ??\r\n '';\r\n\r\n if (this.currentTabType === SustainabilityDataType.EnvironmentalData) {\r\n dispatchMetod = sustainabilityService.downloadEnvironmentalData(\r\n this.params.productMillAndYear.productName,\r\n this.params.productMillAndYear.millId,\r\n this.params.productMillAndYear.year,\r\n millName,\r\n this.environmentalDataReportType\r\n );\r\n } else if (\r\n this.currentTabType === SustainabilityDataType.CarbonFootprints\r\n ) {\r\n dispatchMetod = sustainabilityService.downloadCarbonFootprints(\r\n this.params.productMillAndYear.productName,\r\n this.params.productMillAndYear.millId,\r\n this.params.productMillAndYear.year,\r\n millName\r\n );\r\n } else if (\r\n this.currentTabType === SustainabilityDataType.WaterFootprints\r\n ) {\r\n dispatchMetod = sustainabilityService.downloadWaterFootprint(\r\n this.params.productMillAndYear.year,\r\n this.params.productMillAndYear.millId,\r\n millName,\r\n this.params.productMillAndYear.productName\r\n );\r\n } else if (this.currentTabType === SustainabilityDataType.OriginOfWood) {\r\n dispatchMetod = sustainabilityService.downloadOriginOfWood(\r\n this.params.productMillAndYear.productName,\r\n this.params.productMillAndYear.millId,\r\n this.params.productMillAndYear.year,\r\n millName\r\n );\r\n }\r\n } else if (\r\n this.currentTabType === SustainabilityDataType.CertifiedVolumes\r\n ) {\r\n if (this.params.selectedMonthRange === undefined) {\r\n Consoler.debugWarn(\"No month range, can't export\");\r\n return;\r\n }\r\n dispatchMetod = sustainabilityService.downloadCertifiedVolumes(\r\n this.params.selectedMonthRange\r\n );\r\n }\r\n\r\n if (!dispatchMetod) {\r\n Consoler.debugWarn(\"Invalid tab type, can't export\", this.currentTabType);\r\n return;\r\n }\r\n\r\n this.isExportingToExcel = true;\r\n\r\n await dispatchMetod\r\n .catch((error) => {\r\n Consoler.debugWarn('Error downloading Excel data', error);\r\n const errorMessage: Message = {\r\n text: this.$t(\r\n 'sustainabilityActionButtons.errorDownloadingExcel'\r\n ).toString(),\r\n type: MessageType.error,\r\n };\r\n EventBus.$emit(Config.AddMessageEvent, errorMessage);\r\n })\r\n .finally(() => {\r\n this.isExportingToExcel = false;\r\n });\r\n }\r\n\r\n private print() {\r\n window.print();\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityActionButtons.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityActionButtons.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SustainabilityActionButtons.vue?vue&type=template&id=5b577a93&\"\nimport script from \"./SustainabilityActionButtons.vue?vue&type=script&lang=ts&\"\nexport * from \"./SustainabilityActionButtons.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c-tabs js-tabs js-tabs-dropdown\"},[_c('nav',[_c('div',{staticClass:\"c-tabs-nav d-flex mb-0\",attrs:{\"role\":\"tablist\"}},_vm._l((_vm.tabs),function(tab){return _c('div',{key:tab.id,attrs:{\"id\":((tab.id) + \"-tab\")}},[_c('a',{staticClass:\"c-tabs-item\",class:{ 'is-active': _vm.currentTab && tab.id === _vm.currentTab.id },attrs:{\"href\":(\"#\" + (tab.id)),\"role\":\"tab\",\"aria-controls\":tab.id,\"aria-selected\":\"false\",\"aria-hidden\":\"false\",\"tabindex\":\"0\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onTabClick(tab)}}},[_vm._v(_vm._s(tab.text)+\" \")]),(_vm.tabHasFeatureHighlight(tab))?_c('NewMinorFeatureTextBox',{attrs:{\"featureHighlight\":tab.featureHighlight,\"arrowPlacement\":25}}):_vm._e()],1)}),0)]),_c('div',{staticClass:\"c-tabs-content\"},_vm._l((_vm.tabs),function(tab){return _c('div',{key:tab.id,staticClass:\"c-tabs-pane\",class:_vm.tabClasses(tab),attrs:{\"id\":tab.id,\"role\":\"tabpanel\",\"aria-labelledby\":((tab.id) + \"-tab\")}},[_vm._t(tab.id)],2)}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.hide)?_c('div',{staticClass:\"o-tooltip o-tooltip u-background-color-white p-absolute\",attrs:{\"x-placement\":_vm.xPlacement}},[_c('div',{staticClass:\"o-tooltip__arrow border-color\",class:(\"left-\" + _vm.arrowPlacement)}),_c('div',{staticClass:\"o-tooltip__inner\"},[(_vm.featureHighlight.featureToHighlight)?_c('h3',{staticClass:\"t-heading-6 mb-0\"},[_vm._v(\" \"+_vm._s(_vm.$t( (\"newMinorFeatureTextBox.\" + (_vm.featureHighlight.featureToHighlight) + \".title\") ))+\" \")]):_vm._e(),(_vm.featureHighlight.highlightText)?_c('p',{staticClass:\"t-body-regular-small\"},[_vm._v(\" \"+_vm._s(_vm.featureHighlight.highlightText)+\" \")]):_vm._e(),_c('button',{staticClass:\"o-button o-button--black o-button--small\",on:{\"click\":_vm.acknowledgedHighlight}},[_vm._v(\" \"+_vm._s(_vm.$t('newMajorFeatureModal.okButton'))+\" \")])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { FeatureHighlights } from '@/models/UserProfile/FeatureHighlights';\r\nimport userService from '@/services/UserService';\r\nimport { userProfileModule } from '@/store/modules/userProfile';\r\nimport { Consoler } from '@/utils/Consoler';\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\n@Component({})\r\nexport default class NewMinorFeatureTextBox extends Vue {\r\n @Prop({ required: true }) private featureHighlight!: FeatureHighlights | null;\r\n @Prop({ required: false, default: () => 'bottom-center' })\r\n private xPlacement!: string;\r\n @Prop({ required: false, default: () => '50' })\r\n private arrowPlacement!: string;\r\n\r\n private hide: boolean = false;\r\n\r\n private closeTextBox(): void {\r\n this.hide = true;\r\n }\r\n\r\n private acknowledgedHighlight(): void {\r\n if (this.featureHighlight) {\r\n userService\r\n .markFeatureHighlightAsDisplayed([this.featureHighlight])\r\n .then(() => {\r\n this.closeTextBox();\r\n userProfileModule.dispatchLoad({ force: true });\r\n })\r\n .catch((error) => {\r\n Consoler.debugLog('Sending acknowledged highlight failed', error);\r\n });\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewMinorFeatureTextBox.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewMinorFeatureTextBox.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewMinorFeatureTextBox.vue?vue&type=template&id=63ba40bb&scoped=true&\"\nimport script from \"./NewMinorFeatureTextBox.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewMinorFeatureTextBox.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewMinorFeatureTextBox.vue?vue&type=style&index=0&id=63ba40bb&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"63ba40bb\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { FeatureHighlights } from '@/models/UserProfile/FeatureHighlights';\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport NewMinorFeatureTextBox from '../NewMinorFeatureTextBox.vue';\r\n\r\nexport interface Tab {\r\n id: string;\r\n text: string;\r\n featureHighlight?: FeatureHighlights | null;\r\n}\r\n\r\n@Component({\r\n components: {\r\n NewMinorFeatureTextBox,\r\n },\r\n})\r\nexport default class Tabs extends Vue {\r\n @Prop({ required: true })\r\n public tabs!: Tab[];\r\n @Prop({ required: true })\r\n public currentTab!: Tab | null;\r\n @Prop({ required: false, default: () => undefined })\r\n public tabClass!: string | undefined;\r\n\r\n private tabClasses(tab: Tab): string[] {\r\n const classes: string[] = [];\r\n if (this.currentTab && tab.id === this.currentTab.id) {\r\n classes.push('is-active');\r\n }\r\n if (this.tabClass) {\r\n classes.push(this.tabClass);\r\n }\r\n return classes;\r\n }\r\n\r\n private onTabClick(tab: Tab) {\r\n this.$emit('tabChange', tab);\r\n }\r\n\r\n private tabHasFeatureHighlight(tab: Tab) {\r\n return tab.featureHighlight != null && tab.featureHighlight != undefined;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tabs.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tabs.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Tabs.vue?vue&type=template&id=836fb1f0&\"\nimport script from \"./Tabs.vue?vue&type=script&lang=ts&\"\nexport * from \"./Tabs.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { CommonStore } from '@/store/common';\r\nimport { Consoler } from '@/utils/Consoler';\r\nimport { store } from '@/store';\r\n\r\nimport {\r\n Module,\r\n VuexModule,\r\n Mutation,\r\n Action,\r\n getModule,\r\n} from 'vuex-module-decorators';\r\nimport sustainabilityService from '@/services/SustainabilityService';\r\nimport { authModule } from './auth';\r\nimport { SustainabilityProduct } from '@/models/Sustainability/SustainabilityProduct';\r\n\r\n@Module({\r\n namespaced: true,\r\n name: 'sustainabilityProducts',\r\n dynamic: true,\r\n store,\r\n})\r\nclass SustainabilityProductsModule extends VuexModule {\r\n public data: SustainabilityProduct[] | null = null;\r\n\r\n private common = new CommonStore(60); // reLoadMinMinutesInterval\r\n\r\n // ---------------\r\n // ### Getters ###\r\n // ---------------\r\n\r\n public get loading() {\r\n return this.common.loading;\r\n }\r\n\r\n // -----------------\r\n // ### Mutations ###\r\n // -----------------\r\n\r\n @Mutation public commitSetSustainabilityProducts(\r\n products: SustainabilityProduct[]\r\n ) {\r\n this.data = products;\r\n }\r\n\r\n @Mutation public commitClearSustainabilityProducts() {\r\n this.data = null;\r\n }\r\n\r\n // From common:\r\n @Mutation private commitSetLoadedDate() {\r\n this.common.setLoadedDate();\r\n }\r\n @Mutation private commitClearLoadedDate() {\r\n this.common.clearLoadedDate();\r\n }\r\n @Mutation private commitSetLoadingError(payload: { error: any }) {\r\n this.common.setLoadingError(payload);\r\n }\r\n @Mutation private commitSetLoading() {\r\n this.common.setLoading();\r\n }\r\n @Mutation private commitClearLoading() {\r\n this.common.clearLoading();\r\n }\r\n @Mutation private commitSetLoadingPromise(payload: {\r\n loadingPromise: Promise;\r\n loadingPromiseForId: any;\r\n }) {\r\n this.common.setLoadingPromise(payload);\r\n }\r\n\r\n // ---------------\r\n // ### Actions ###\r\n // ---------------\r\n\r\n @Action\r\n public async dispatchLoad(data?: { force: boolean }): Promise {\r\n // If recently loaded, return\r\n if ((!data || (data && !data.force)) && !this.common.needToReLoad()) {\r\n return Promise.resolve();\r\n }\r\n\r\n if (this.common.isCurrentlyLoading()) {\r\n Consoler.debugLog(\r\n 'Already loading, waiting for existing load to finish',\r\n 'sustainabilityProducts'\r\n );\r\n return this.common.loading.loadingPromise;\r\n }\r\n\r\n this.commitSetLoading();\r\n\r\n const loadingPromise = authModule.isAuthenticated\r\n ? sustainabilityService.getCustomerProducts()\r\n : sustainabilityService.getProducts();\r\n\r\n const voidLoadingPromise = loadingPromise\r\n .then((products) => {\r\n this.commitSetSustainabilityProducts(products);\r\n this.commitSetLoadedDate();\r\n this.commitClearLoading();\r\n Consoler.debugLog('Load sustainabilityProducts success', products);\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn('Load sustainabilityProducts failed', error);\r\n this.commitSetLoadingError({ error });\r\n this.commitClearSustainabilityProducts();\r\n return Promise.reject(error);\r\n });\r\n\r\n this.commitSetLoadingPromise({\r\n loadingPromise: voidLoadingPromise,\r\n loadingPromiseForId: null,\r\n });\r\n return loadingPromise.then(() => undefined);\r\n }\r\n}\r\n\r\nexport const sustainabilityProductsModule = getModule(\r\n SustainabilityProductsModule\r\n);\r\n","import { Consoler } from '@/utils/Consoler';\r\nimport { store } from '@/store';\r\nimport {\r\n Module,\r\n VuexModule,\r\n Mutation,\r\n Action,\r\n getModule,\r\n} from 'vuex-module-decorators';\r\nimport { CommonArrayStore } from '../commonArrayStore';\r\nimport sustainabilityService from '@/services/SustainabilityService';\r\nimport { SustainabilityData } from '@/models/Sustainability/SustainabilityData';\r\nimport { EnvironmentalDataReportType } from '@/models/Sustainability/EnvironmentalData/EnvironmentalDataReportType';\r\n\r\nfunction isProductDataFor(\r\n productData: SustainabilityData | null,\r\n payload: { productName: string; millId: number; year: number }\r\n): boolean {\r\n return (\r\n productData !== null &&\r\n productData.productName === payload.productName &&\r\n productData.millId === payload.millId &&\r\n productData.year === payload.year\r\n );\r\n}\r\n\r\nfunction generateNewProductData(payload: {\r\n productName: string;\r\n millId: number;\r\n year: number;\r\n}): SustainabilityData {\r\n return {\r\n productName: payload.productName,\r\n millId: payload.millId,\r\n year: payload.year,\r\n environmentalData: null,\r\n carbonFootprints: null,\r\n originOfWood: null,\r\n waterFootprint: null,\r\n };\r\n}\r\n\r\n@Module({\r\n namespaced: true,\r\n name: 'sustainabilityProductData',\r\n dynamic: true,\r\n store,\r\n})\r\nclass SustainabilityProductDataModule extends VuexModule {\r\n private common = new CommonArrayStore(20); // reLoadMinMinutesInterval\r\n\r\n // ---------------\r\n // ### Getters ###\r\n // ---------------\r\n\r\n public get item() {\r\n return (id: string) => this.common.getDataFor(id);\r\n }\r\n\r\n // -----------------\r\n // ### Mutations ###\r\n // -----------------\r\n\r\n @Mutation private commitSetLoading(payload: {\r\n id: string;\r\n loadingPromise: Promise;\r\n clearData?: boolean;\r\n }) {\r\n this.common.setLoading(payload);\r\n }\r\n @Mutation private commitSetLoadingComplete(payload: {\r\n id: string;\r\n data: SustainabilityData;\r\n }) {\r\n this.common.setLoadingComplete(payload);\r\n }\r\n @Mutation private commitSetLoadingError(payload: {\r\n id: string;\r\n error?: any;\r\n clearData?: boolean;\r\n }) {\r\n this.common.setLoadingError(payload);\r\n }\r\n\r\n // ---------------\r\n // ### Actions ###\r\n // ---------------\r\n\r\n @Action\r\n public async dispatchLoadEnvironmentalData(payload: {\r\n itemId: string;\r\n productName: string;\r\n millId: number;\r\n year: number;\r\n reportType?: EnvironmentalDataReportType;\r\n }): Promise {\r\n // If recently loaded, return\r\n const existingItem = this.item(payload.itemId);\r\n if (\r\n this.common.hasFreshDataFor(payload.itemId) &&\r\n isProductDataFor(existingItem, payload) &&\r\n existingItem?.environmentalData &&\r\n existingItem?.environmentalData.type === payload.reportType\r\n ) {\r\n return Promise.resolve(existingItem);\r\n }\r\n\r\n const currentlyLoadingPromise = this.common.isCurrentlyLoading(\r\n payload.itemId\r\n );\r\n if (currentlyLoadingPromise) {\r\n Consoler.debugLog(\r\n 'Already loading, waiting for existing load to finish',\r\n 'sustainabilityProductData'\r\n );\r\n return currentlyLoadingPromise;\r\n }\r\n\r\n const loadingPromise = sustainabilityService\r\n .getEnvironmentalData(\r\n payload.productName,\r\n payload.millId,\r\n payload.year,\r\n payload.reportType\r\n )\r\n .then((response) => {\r\n const item =\r\n this.item(payload.itemId) ?? generateNewProductData(payload);\r\n item.environmentalData = response;\r\n\r\n this.commitSetLoadingComplete({ id: payload.itemId, data: item });\r\n Consoler.debugLog(\r\n 'Load sustainabilityProductData - EnvironmentalData success',\r\n response\r\n );\r\n return Promise.resolve(item);\r\n })\r\n .catch((error) => {\r\n if (error?.response?.status === 404) {\r\n const item =\r\n this.item(payload.itemId) ?? generateNewProductData(payload);\r\n item.environmentalData = null;\r\n return Promise.resolve(item);\r\n }\r\n\r\n Consoler.debugWarn(\r\n 'Load sustainabilityProductData - EnvironmentalData failed',\r\n error\r\n );\r\n this.commitSetLoadingError({ id: payload.itemId, error });\r\n return Promise.reject(error);\r\n });\r\n\r\n this.commitSetLoading({\r\n id: payload.itemId,\r\n loadingPromise,\r\n clearData: false,\r\n });\r\n\r\n return loadingPromise;\r\n }\r\n\r\n @Action\r\n public async dispatchLoadWaterFootprints(payload: {\r\n itemId: string;\r\n productName: string;\r\n millId: number;\r\n year: number;\r\n }): Promise {\r\n // If recently loaded, return\r\n const existingItem = this.item(payload.itemId);\r\n if (\r\n this.common.hasFreshDataFor(payload.itemId) &&\r\n isProductDataFor(existingItem, payload) &&\r\n existingItem?.waterFootprint\r\n ) {\r\n return Promise.resolve(existingItem);\r\n }\r\n\r\n const currentlyLoadingPromise = this.common.isCurrentlyLoading(\r\n payload.itemId\r\n );\r\n if (currentlyLoadingPromise) {\r\n Consoler.debugLog(\r\n 'Already loading, waiting for existing load to finish',\r\n 'sustainabilityProductData'\r\n );\r\n return currentlyLoadingPromise;\r\n }\r\n\r\n const loadingPromise = sustainabilityService\r\n .getWaterFootprint(payload.year, payload.millId, payload.productName)\r\n .then((response) => {\r\n const item =\r\n this.item(payload.itemId) ?? generateNewProductData(payload);\r\n item.waterFootprint = response;\r\n\r\n this.commitSetLoadingComplete({ id: payload.itemId, data: item });\r\n Consoler.debugLog(\r\n 'Load sustainabilityProductData - WaterFootprints success',\r\n response\r\n );\r\n return Promise.resolve(item);\r\n })\r\n .catch((error) => {\r\n if (error?.response?.status === 404) {\r\n const item =\r\n this.item(payload.itemId) ?? generateNewProductData(payload);\r\n item.waterFootprint = null;\r\n return Promise.resolve(item);\r\n }\r\n\r\n Consoler.debugWarn(\r\n 'Load sustainabilityProductData - WaterFootprints failed',\r\n error\r\n );\r\n this.commitSetLoadingError({ id: payload.itemId, error });\r\n\r\n return Promise.reject(error);\r\n });\r\n\r\n this.commitSetLoading({\r\n id: payload.itemId,\r\n loadingPromise,\r\n clearData: false,\r\n });\r\n\r\n return loadingPromise;\r\n }\r\n\r\n @Action\r\n public async dispatchLoadCarbonFootprints(payload: {\r\n itemId: string;\r\n productName: string;\r\n millId: number;\r\n year: number;\r\n }): Promise {\r\n // If recently loaded, return\r\n const existingItem = this.item(payload.itemId);\r\n if (\r\n this.common.hasFreshDataFor(payload.itemId) &&\r\n isProductDataFor(existingItem, payload) &&\r\n existingItem?.carbonFootprints\r\n ) {\r\n return Promise.resolve(existingItem);\r\n }\r\n\r\n const currentlyLoadingPromise = this.common.isCurrentlyLoading(\r\n payload.itemId\r\n );\r\n if (currentlyLoadingPromise) {\r\n Consoler.debugLog(\r\n 'Already loading, waiting for existing load to finish',\r\n 'sustainabilityProductData'\r\n );\r\n return currentlyLoadingPromise;\r\n }\r\n\r\n const loadingPromise = sustainabilityService\r\n .getCarbonFootprints(payload.productName, payload.millId, payload.year)\r\n .then((response) => {\r\n const item =\r\n this.item(payload.itemId) ?? generateNewProductData(payload);\r\n item.carbonFootprints = response;\r\n\r\n this.commitSetLoadingComplete({ id: payload.itemId, data: item });\r\n Consoler.debugLog(\r\n 'Load sustainabilityProductData - CarbonFootprints success',\r\n response\r\n );\r\n return Promise.resolve(item);\r\n })\r\n .catch((error) => {\r\n if (error?.response?.status === 404) {\r\n const item =\r\n this.item(payload.itemId) ?? generateNewProductData(payload);\r\n item.carbonFootprints = null;\r\n return Promise.resolve(item);\r\n }\r\n Consoler.debugWarn(\r\n 'Load sustainabilityProductData - CarbonFootprints failed',\r\n error\r\n );\r\n this.commitSetLoadingError({ id: payload.itemId, error });\r\n return Promise.reject(error);\r\n });\r\n\r\n this.commitSetLoading({\r\n id: payload.itemId,\r\n loadingPromise,\r\n clearData: false,\r\n });\r\n\r\n return loadingPromise;\r\n }\r\n\r\n @Action\r\n public async dispatchLoadOriginOfWood(payload: {\r\n itemId: string;\r\n productName: string;\r\n millId: number;\r\n year: number;\r\n }): Promise {\r\n // If recently loaded, return\r\n const existingItem = this.item(payload.itemId);\r\n if (\r\n this.common.hasFreshDataFor(payload.itemId) &&\r\n isProductDataFor(existingItem, payload) &&\r\n existingItem?.originOfWood\r\n ) {\r\n return Promise.resolve(existingItem);\r\n }\r\n\r\n const currentlyLoadingPromise = this.common.isCurrentlyLoading(\r\n payload.itemId\r\n );\r\n if (currentlyLoadingPromise) {\r\n Consoler.debugLog(\r\n 'Already loading, waiting for existing load to finish',\r\n 'sustainabilityProductData'\r\n );\r\n return currentlyLoadingPromise;\r\n }\r\n\r\n const loadingPromise = sustainabilityService\r\n .getOriginOfWood(payload.productName, payload.millId, payload.year)\r\n .then((response) => {\r\n const item =\r\n this.item(payload.itemId) ?? generateNewProductData(payload);\r\n item.originOfWood = response;\r\n\r\n this.commitSetLoadingComplete({ id: payload.itemId, data: item });\r\n Consoler.debugLog(\r\n 'Load sustainabilityProductData - OriginOfWood success',\r\n response\r\n );\r\n return Promise.resolve(item);\r\n })\r\n .catch((error) => {\r\n if (error?.response?.status === 404) {\r\n const item =\r\n this.item(payload.itemId) ?? generateNewProductData(payload);\r\n item.originOfWood = null;\r\n return Promise.resolve(item);\r\n }\r\n Consoler.debugWarn(\r\n 'Load sustainabilityProductData - OriginOfWood failed',\r\n error\r\n );\r\n this.commitSetLoadingError({ id: payload.itemId, error });\r\n return Promise.reject(error);\r\n });\r\n\r\n this.commitSetLoading({\r\n id: payload.itemId,\r\n loadingPromise,\r\n clearData: false,\r\n });\r\n\r\n return loadingPromise;\r\n }\r\n}\r\n\r\nexport const sustainabilityProductDataModule = getModule(\r\n SustainabilityProductDataModule\r\n);\r\n","import { CommonStore } from '@/store/common';\r\nimport { store } from '@/store';\r\n\r\nimport {\r\n Module,\r\n VuexModule,\r\n Mutation,\r\n Action,\r\n getModule,\r\n} from 'vuex-module-decorators';\r\nimport { Consoler } from '@/utils/Consoler';\r\nimport { CertifiedVolumes } from '@/models/Sustainability/CertifiedVolumes/CertifiedVolumes';\r\nimport sustainabilityService from '@/services/SustainabilityService';\r\nimport { MonthRange } from '@/models/MonthRange';\r\n\r\nexport interface Search {\r\n monthRange: MonthRange;\r\n data: CertifiedVolumes;\r\n}\r\n\r\n@Module({\r\n namespaced: true,\r\n name: 'sustainabilityCertifiedVolumes',\r\n dynamic: true,\r\n store,\r\n})\r\nclass SustainabilityCertifiedVolumesModule extends VuexModule {\r\n public search: Search | null = null;\r\n\r\n private common = new CommonStore(60); // reLoadMinMinutesInterval\r\n\r\n // ---------------\r\n // ### Getters ###\r\n // ---------------\r\n\r\n public get loading() {\r\n return this.common.loading;\r\n }\r\n\r\n // -----------------\r\n // ### Mutations ###\r\n // -----------------\r\n\r\n @Mutation public commitSetSearch(payload: Search) {\r\n this.search = payload;\r\n }\r\n\r\n @Mutation public commitClearSearch() {\r\n this.search = null;\r\n }\r\n\r\n // From common:\r\n @Mutation private commitSetLoadedDate() {\r\n this.common.setLoadedDate();\r\n }\r\n @Mutation private commitClearLoadedDate() {\r\n this.common.clearLoadedDate();\r\n }\r\n @Mutation private commitSetLoadingError(payload: { error: any }) {\r\n this.common.setLoadingError(payload);\r\n }\r\n @Mutation private commitSetLoading() {\r\n this.common.setLoading();\r\n }\r\n @Mutation private commitClearLoading() {\r\n this.common.clearLoading();\r\n }\r\n @Mutation private commitSetLoadingPromise(payload: {\r\n loadingPromise: Promise;\r\n loadingPromiseForId: any;\r\n }) {\r\n this.common.setLoadingPromise(payload);\r\n }\r\n\r\n // ---------------\r\n // ### Actions ###\r\n // ---------------\r\n\r\n @Action\r\n public async dispatchLoad(payload: MonthRange): Promise {\r\n const loadingId = `${payload.from.year}|${payload.from.month}|${payload.to.year}|${payload.to.month}}`;\r\n\r\n if (\r\n this.search !== null &&\r\n this.common.loading.loadingPromiseForId === loadingId &&\r\n !this.common.needToReLoad()\r\n ) {\r\n return Promise.resolve();\r\n }\r\n\r\n if (this.common.isCurrentlyLoading(loadingId)) {\r\n return this.common.loading.loadingPromise;\r\n }\r\n\r\n this.commitSetLoading();\r\n this.commitClearSearch();\r\n\r\n const loadingPromise = sustainabilityService\r\n .getCertifiedVolumes(payload)\r\n .then((response) => {\r\n Consoler.debugLog(\r\n 'Load sustainabilityCertifiedVolumes success',\r\n response\r\n );\r\n this.commitSetSearch({\r\n monthRange: payload,\r\n data: response,\r\n });\r\n this.commitSetLoadedDate();\r\n this.commitClearLoading();\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn('Load sustainabilityCertifiedVolumes failed', error);\r\n this.commitSetLoadingError({ error });\r\n return Promise.reject(error);\r\n });\r\n\r\n this.commitSetLoadingPromise({\r\n loadingPromise,\r\n loadingPromiseForId: loadingId,\r\n });\r\n\r\n return loadingPromise;\r\n }\r\n}\r\n\r\nexport const sustainabilityCertifiedVolumesModule = getModule(\r\n SustainabilityCertifiedVolumesModule\r\n);\r\n","import { CommonStore } from '@/store/common';\r\nimport { store } from '@/store';\r\n\r\nimport {\r\n Module,\r\n VuexModule,\r\n Mutation,\r\n Action,\r\n getModule,\r\n} from 'vuex-module-decorators';\r\nimport documentsService from '@/services/DocumentsService';\r\nimport { CertificationDocuments } from '@/models/Documents/CertificationDocuments';\r\n\r\n@Module({\r\n namespaced: true,\r\n name: 'certificationDocuments',\r\n dynamic: true,\r\n store,\r\n})\r\nclass CertificationDocumentsModule extends VuexModule {\r\n public data: CertificationDocuments | null = null;\r\n\r\n private common = new CommonStore(10); // reLoadMinMinutesInterval\r\n\r\n // ---------------\r\n // ### Getters ###\r\n // ---------------\r\n\r\n public get loading() {\r\n return this.common.loading;\r\n }\r\n\r\n // -----------------\r\n // ### Mutations ###\r\n // -----------------\r\n\r\n @Mutation public commitSetCertificationDocuments(\r\n payload: CertificationDocuments\r\n ) {\r\n this.data = payload;\r\n }\r\n\r\n @Mutation public commitClearDocuments() {\r\n this.data = null;\r\n }\r\n\r\n // From common:\r\n @Mutation private commitSetLoadedDate() {\r\n this.common.setLoadedDate();\r\n }\r\n @Mutation private commitClearLoadedDate() {\r\n this.common.clearLoadedDate();\r\n }\r\n @Mutation private commitSetLoadingError(payload: { error: any }) {\r\n this.common.setLoadingError(payload);\r\n }\r\n @Mutation private commitSetLoading() {\r\n this.common.setLoading();\r\n }\r\n @Mutation private commitClearLoading() {\r\n this.common.clearLoading();\r\n }\r\n @Mutation private commitSetLoadingPromise(payload: {\r\n loadingPromise: Promise;\r\n loadingPromiseForId: any;\r\n }) {\r\n this.common.setLoadingPromise(payload);\r\n }\r\n\r\n // ---------------\r\n // ### Actions ###\r\n // ---------------\r\n\r\n @Action\r\n public async dispatchLoad(): Promise {\r\n if (!this.common.needToReLoad()) {\r\n return Promise.resolve();\r\n }\r\n\r\n if (this.common.isCurrentlyLoading()) {\r\n return this.common.loading.loadingPromise;\r\n }\r\n\r\n this.commitSetLoading();\r\n this.commitClearDocuments();\r\n\r\n const loadingPromise = documentsService\r\n .getCertificationDocuments()\r\n .then((response) => {\r\n this.commitSetCertificationDocuments(response);\r\n this.commitSetLoadedDate();\r\n this.commitClearLoading();\r\n })\r\n .catch((error) => {\r\n this.commitSetLoadingError({ error });\r\n\r\n return Promise.reject(error);\r\n });\r\n\r\n this.commitSetLoadingPromise({ loadingPromise, loadingPromiseForId: null });\r\n\r\n return loadingPromise;\r\n }\r\n}\r\n\r\nexport const certificationDocumentsModule = getModule(\r\n CertificationDocumentsModule\r\n);\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.data)?_c('div',[_c('div',{staticClass:\"c-table c-table--small-borders c-table--print-dense c-table--no-divider mb-3\"},[_c('div',{staticClass:\"c-table__scroll-container\"},[_c('table',[_vm._m(0),_c('tbody',[_vm._l((_vm.data.waterInventory.input\n .measurements),function(measurement,index){return _c('tr',{key:index},[_c('td',{staticClass:\"column-1\"},[_vm._v(_vm._s(measurement.description))]),_c('td',{staticClass:\"column-2\"},[_vm._v(_vm._s(measurement.amount))]),_c('td',{staticClass:\"column-3\"},[_vm._v(\"m3/ADt\")])])}),_c('tr',[_c('td',{staticClass:\"column-1\"},[_vm._v(\"Total input\")]),_c('td',{staticClass:\"column-2\"},[_vm._v(\" \"+_vm._s(_vm.data.waterInventory.input.total)+\" \")]),_c('td',{staticClass:\"column-3\"},[_vm._v(\"m3/ADt\")])])],2)])])]),_c('div',{staticClass:\"c-table c-table--small-borders c-table--print-dense c-table--no-divider mb-3\"},[_c('div',{staticClass:\"c-table__scroll-container\"},[_c('table',[_vm._m(1),_c('tbody',[_vm._l((_vm.data.waterInventory.output\n .measurements),function(measurement,index){return _c('tr',{key:index},[_c('td',{staticClass:\"column-1\"},[_vm._v(_vm._s(measurement.description))]),_c('td',{staticClass:\"column-2\"},[_vm._v(_vm._s(measurement.amount))]),_c('td',{staticClass:\"column-3\"},[_vm._v(\"m3/ADt\")])])}),_c('tr',[_c('td',{staticClass:\"column-1\"},[_vm._v(\"Total output\")]),_c('td',{staticClass:\"column-2\"},[_vm._v(\" \"+_vm._s(_vm.data.waterInventory.output.total)+\" \")]),_c('td',{staticClass:\"column-3\"},[_vm._v(\"m3/ADt\")])])],2)])])]),_c('div',{staticClass:\"c-table c-table--small-borders c-table--print-dense c-table--no-divider mb-3\"},[_c('div',{staticClass:\"c-table__scroll-container\"},[_c('table',[_c('thead',[_c('tr',[_c('th',{staticClass:\"column-1\"},[_vm._v(\"Evaporation\")]),_c('th',{staticClass:\"column-2\"},[_vm._v(\" \"+_vm._s(_vm.data.evaporation.total)+\" \")]),_c('th',{staticClass:\"column-3\"},[_vm._v(\"m3/ADt\")])])])])])])]):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',{attrs:{\"colspan\":\"3\"}},[_vm._v(\"Water inventory Input\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',{attrs:{\"colspan\":\"3\"}},[_vm._v(\"Water inventory Output\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport { WaterFootprint } from '@/models/Sustainability/WaterFootprints/WaterFootprint';\r\n\r\n@Component\r\nexport default class SustainabilityWaterFootprints extends Vue {\r\n @Prop({ required: true })\r\n private data!: WaterFootprint | null;\r\n}\r\n","export enum FeatureHighlightPages {\r\n AdminParameters = 'AdminParameters',\r\n AdminSubscriptions = 'AdminSubscriptions',\r\n AdminUsers = 'AdminUsers',\r\n Dashboard = 'Dashboard',\r\n Documents = 'Documents',\r\n Forecasts = 'Forecasts',\r\n Invoices = 'Invoices',\r\n OrderFlow = 'OrderFlow',\r\n Orders = 'Orders',\r\n PerformanceContractPerformance = 'PerformanceContractPerformance',\r\n PerformanceInvoicedVolumes = 'PerformanceInvoicedVolumes',\r\n Qdata = 'Qdata',\r\n SustainabilityEnvironmentalData = 'SustainabilityEnvironmentalData',\r\n SustainabilityCarbonFootprint = 'SustainabilityCarbonFootprint',\r\n SustainabilityOriginOfWood = 'SustainabilityOriginOfWood',\r\n SustainabilityCertifiedVolumes = 'SustainabilityCertifiedVolumes',\r\n SustainabilityWaterFootprint = 'SustainabilityWaterFootprint',\r\n Sustainability = 'Sustainability',\r\n UserContacts = 'UserContacts',\r\n SmiAdminWarehouses = 'SmiAdminWarehouses',\r\n SmiConsumptionLog = 'SmiConsumptionLog',\r\n SmiForecasts = 'SmiForecasts',\r\n SmiMyConsumptions = 'SmiMyConsumptions',\r\n SmiMyWarehouse = 'SmiMyWarehouse',\r\n SmiStockDeviations = 'SmiStockDeviations',\r\n}\r\n\r\nexport enum FeatureHighlightFeatures {\r\n WaterFootprint = 'WaterFootprint',\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityWaterFootprints.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityWaterFootprints.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SustainabilityWaterFootprints.vue?vue&type=template&id=11cb53f2&scoped=true&\"\nimport script from \"./SustainabilityWaterFootprints.vue?vue&type=script&lang=ts&\"\nexport * from \"./SustainabilityWaterFootprints.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SustainabilityWaterFootprints.vue?vue&type=style&index=0&id=11cb53f2&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11cb53f2\",\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('Modal',{ref:\"modal\",attrs:{\"id\":\"SustainabilityExportModal\",\"title\":_vm.$t('sustainabilityExportModal.title'),\"closeableByOutsideClickAndEscKey\":_vm.closable,\"closeButton\":_vm.closable},scopedSlots:_vm._u([{key:\"body\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-wrap\"},[_c('div',{staticClass:\"mb-2\"},[_c('label',{staticClass:\"o-label u-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityExportModal.year.title'))+\" \")]),(_vm.yearSelectOptions.length > 0)?_c('SelectBox',{staticClass:\"sustainability-export-modal-component o-select--light-grey\",attrs:{\"value\":_vm.selectedYear,\"options\":_vm.yearSelectOptions,\"placeholder\":_vm.$t('sustainabilityExportModal.year.placeholder')},on:{\"input\":_vm.onSelectedYearChange}}):_vm._e()],1),(_vm.selectedYear !== null && _vm.products.length > 0)?_c('div',{staticClass:\"mb-2\"},[_c('label',{staticClass:\"o-label u-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityExportModal.product.products'))+\" \")]),(_vm.products.length > 0)?_c('TreeSelect',{staticClass:\"sustainability-export-modal-component tree-select--light-grey\",attrs:{\"value\":_vm.selectedProductsIds,\"options\":_vm.productSelectTreeNodes,\"clearable\":true,\"multiple\":true,\"placeholder\":_vm.$t('sustainabilityExportModal.product.placeholder')},on:{\"input\":_vm.onSelectedProductChange}}):_vm._e()],1):_vm._e(),(_vm.sustainabilityTypesForProductsInSelectedYear.length > 0)?_c('div',{staticClass:\"mb-2\"},[_c('label',{staticClass:\"o-label u-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t( 'sustainabilityExportModal.sustainabilityTypes.environmentalType' ))+\" \")]),_c('TreeSelect',{staticClass:\"sustainability-export-modal-component tree-select--light-grey\",attrs:{\"value\":_vm.selectedSustainabilityDataReportTypes,\"options\":_vm.sustainabilityTypesTreeNodes,\"clearable\":true,\"multiple\":true,\"placeholder\":_vm.$t('sustainabilityExportModal.sustainabilityTypes.placeholder')},on:{\"input\":_vm.onSelectedSustainabilityDataReportTypeChange}})],1):_vm._e(),(\n _vm.selectedSustainabilityDataReportTypes &&\n _vm.selectedSustainabilityDataReportTypes.includes(\n _vm.sustainabilityDataReportType.EnvironmentalData\n )\n )?_c('div',{staticClass:\"mb-2\"},[_c('label',{staticClass:\"o-label u-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityExportModal.environmentalDataReportType.title'))+\" \")]),_c('SelectBox',{staticClass:\"sustainability-export-modal-component o-select--light-grey\",attrs:{\"value\":_vm.selectedEnvironmentalDataReportType,\"options\":_vm.reportTypeSelectOptions,\"placeholder\":_vm.$t(\n 'sustainabilityExportModal.environmentalDataReportType.placeholder'\n )},on:{\"input\":_vm.onSelectedEnvironmentalDataReportTypeChange}})],1):_vm._e(),_c('div',{staticClass:\"mb-2\"},[_c('button',{staticClass:\"o-button o-button--lime-green mr-2\",attrs:{\"disabled\":!_vm.selectedYear ||\n !_vm.selectedProductsIds ||\n _vm.selectedSustainabilityDataReportTypes.length === 0 ||\n _vm.isExporting},on:{\"click\":function($event){$event.preventDefault();return _vm.onSubmit.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityExportModal.button.export'))+\" \")]),_c('button',{staticClass:\"o-button o-button--white mr-2\",attrs:{\"disabled\":_vm.isExporting},on:{\"click\":_vm.onCancelClick}},[_vm._v(\" \"+_vm._s(_vm.$t('sustainabilityExportModal.button.cancel'))+\" \")])])])]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export enum SustainabilityDataReportType {\r\n EnvironmentalData = 'EnvironmentalData',\r\n CarbonFootprints = 'CarbonFootprints',\r\n OriginOfWood = 'OriginOfWood',\r\n CertifiedVolumes = 'CertifiedVolumes',\r\n WaterFootprints = 'WaterFootprints',\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport Modal from '@/components/general/Modal.vue';\r\nimport { SustainabilityProduct } from '@/models/Sustainability/SustainabilityProduct';\r\nimport sustainabilityService from '@/services/SustainabilityService';\r\nimport { SustainabilityDataType } from '@/models/Sustainability/SustainabilityDataType';\r\nimport { PermissionType } from '@/models/UserProfile/PermissionType';\r\nimport { Permissions } from '@/utils/Permissions';\r\nimport SelectBox, { SelectOption } from '@/components/general/SelectBox.vue';\r\nimport TreeSelect, {\r\n TreeSelectNode,\r\n} from '@/components/general/TreeSelect.vue';\r\nimport i18n from '@/i18n/i18n';\r\nimport { Message, MessageType } from '@/models/Message';\r\nimport { Consoler } from '@/utils/Consoler';\r\nimport { EventBus } from '@/utils/EventBus';\r\nimport { Config } from '@/utils/Config';\r\nimport { EnvironmentalDataReportType } from '@/models/Sustainability/EnvironmentalData/EnvironmentalDataReportType';\r\nimport { SustainabilityDataReportType } from '@/models/Sustainability/SustainabilityDataReportType';\r\n\r\nconst enum SortOrder {\r\n Ascending = 'Ascending',\r\n Descending = 'Descending',\r\n}\r\n\r\n@Component({\r\n components: {\r\n Modal,\r\n TreeSelect,\r\n SelectBox,\r\n },\r\n})\r\nexport default class SustainabilityExportModal extends Vue {\r\n @Prop({ required: true }) private products!: SustainabilityProduct[];\r\n private closable: boolean = true;\r\n private exporting: boolean = false;\r\n\r\n private selectYear: number | null = null;\r\n private selectProductsIds: string[] = [];\r\n private selectSustainabilityDataReportTypes: SustainabilityDataReportType[] =\r\n [];\r\n private selectEnvironmentalDataReportType: EnvironmentalDataReportType | null =\r\n null;\r\n private yearSortOrder: SortOrder = SortOrder.Descending;\r\n private includeCertifiedVolumes: boolean = false;\r\n\r\n public async show(): Promise {\r\n (this.$refs.modal as Modal).showModal();\r\n }\r\n\r\n private get sustainabilityDataReportType() {\r\n return SustainabilityDataReportType;\r\n }\r\n\r\n private get canViewCertifiedVolumes(): boolean {\r\n return Permissions.hasPermission(\r\n PermissionType.IsAllowedToViewCertifiedVolumes\r\n );\r\n }\r\n\r\n private get shouldIncludeCertifiedVolumes(): boolean {\r\n return this.includeCertifiedVolumes;\r\n }\r\n\r\n private get isExporting(): boolean {\r\n return this.exporting;\r\n }\r\n\r\n private get selectedYear(): number | null {\r\n if (this.selectYear !== null) {\r\n return this.selectYear;\r\n }\r\n\r\n return this.yearsWithProducts.length > 0 ? this.yearsWithProducts[0] : null;\r\n }\r\n\r\n private get selectedProductsIds(): string[] {\r\n return this.selectProductsIds;\r\n }\r\n\r\n private get selectedSustainabilityDataReportTypes(): SustainabilityDataReportType[] {\r\n return this.selectSustainabilityDataReportTypes;\r\n }\r\n\r\n private get selectedEnvironmentalDataReportType(): EnvironmentalDataReportType {\r\n return (\r\n this.selectEnvironmentalDataReportType ?? EnvironmentalDataReportType.All\r\n );\r\n }\r\n\r\n private get selectedProducts(): SustainabilityProduct[] {\r\n if ((this.selectProductsIds as string[]).length === 0) {\r\n return [];\r\n }\r\n\r\n var matchingProducts: SustainabilityProduct[] = [];\r\n\r\n (this.selectedProductsIds as string[]).forEach((millIdProdName) => {\r\n var pair = millIdProdName.split('|');\r\n var product = this.customerProductsInSelectedYear.filter(\r\n (p) => p.productName == pair[0] && p.millName == pair[1]\r\n );\r\n if (product.length > 0) {\r\n matchingProducts.push(product[0]);\r\n }\r\n });\r\n\r\n (this.selectedProductsIds as string[]).forEach((millIdProdName) => {\r\n var pair = millIdProdName.split('|');\r\n var product = this.otherProductsInSelectedYear.filter(\r\n (p) => p.productName == pair[0] && p.millName == pair[1]\r\n );\r\n if (product.length > 0) {\r\n matchingProducts.push(product[0]);\r\n }\r\n });\r\n\r\n return matchingProducts;\r\n }\r\n\r\n private get customerProductsInSelectedYear(): SustainabilityProduct[] {\r\n if (this.selectedYear === null) {\r\n return [];\r\n }\r\n\r\n return this.customerProducts\r\n .map((_) => _)\r\n .filter((prod) =>\r\n prod.years.some((year) => year.year == this.selectedYear)\r\n );\r\n }\r\n\r\n private get otherProductsInSelectedYear(): SustainabilityProduct[] {\r\n if (this.selectedYear === null) {\r\n return [];\r\n }\r\n\r\n return this.otherProducts\r\n .map((_) => _)\r\n .filter((prod) =>\r\n prod.years.some((year) => year.year == this.selectedYear)\r\n );\r\n }\r\n\r\n private get sustainabilityTypesForProductsInSelectedYear(): SustainabilityDataType[] {\r\n if (\r\n this.selectedYear === null ||\r\n this.selectedYear === undefined ||\r\n this.selectedProducts.length == 0\r\n ) {\r\n return [];\r\n }\r\n\r\n var x = this.selectedProducts\r\n .map((spy) =>\r\n spy.years\r\n .filter((y) => y.year === this.selectedYear)\r\n .flatMap((_) => _.types)\r\n )\r\n .flatMap((_) => _);\r\n\r\n return x.filter((value, index, self) => self.indexOf(value) === index);\r\n }\r\n\r\n private get customerProducts(): SustainabilityProduct[] {\r\n return this.products.filter((p) => p.isCustomerProduct === true);\r\n }\r\n\r\n private get otherProducts(): SustainabilityProduct[] {\r\n return this.products.filter((p) => p.isCustomerProduct !== true);\r\n }\r\n\r\n private get sustainabilityTypesTreeNodes(): TreeSelectNode[] {\r\n function mapSustainabilityTypeToTreeSelectNode(\r\n sustainabilityDataType: SustainabilityDataType\r\n ): TreeSelectNode {\r\n return {\r\n id: sustainabilityDataType,\r\n label: i18n\r\n .t(`sustainabilityDataType.${sustainabilityDataType}`)\r\n .toString(),\r\n };\r\n }\r\n\r\n const treeSelectNodes =\r\n this.sustainabilityTypesForProductsInSelectedYear.map(\r\n mapSustainabilityTypeToTreeSelectNode\r\n );\r\n\r\n if (this.canViewCertifiedVolumes) {\r\n treeSelectNodes.push(\r\n mapSustainabilityTypeToTreeSelectNode(\r\n SustainabilityDataType.CertifiedVolumes\r\n )\r\n );\r\n }\r\n\r\n return treeSelectNodes;\r\n }\r\n\r\n private get productSelectTreeNodes(): TreeSelectNode[] {\r\n function mapProductToTreeSelectNode(\r\n product: SustainabilityProduct\r\n ): TreeSelectNode {\r\n return {\r\n id: `${product.productName}|${product.millName}`,\r\n label: i18n\r\n .t('sustainabilityProductsFilter.product.productText', [\r\n product.productDisplayName,\r\n product.millName,\r\n ])\r\n .toString(),\r\n };\r\n }\r\n\r\n const treeSelectNodes: TreeSelectNode[] = [];\r\n\r\n if (this.customerProductsInSelectedYear.length > 0) {\r\n treeSelectNodes.push({\r\n id: 'customerProducts',\r\n label: this.$t(\r\n 'sustainabilityProductsFilter.product.customerProducts'\r\n ).toString(),\r\n children: this.customerProductsInSelectedYear.map(\r\n mapProductToTreeSelectNode\r\n ),\r\n isDefaultExpanded: true,\r\n });\r\n }\r\n\r\n if (this.otherProductsInSelectedYear.length > 0) {\r\n const otherProductsLocalizationKey =\r\n this.customerProducts.length > 0\r\n ? 'sustainabilityProductsFilter.product.otherProducts'\r\n : 'sustainabilityProductsFilter.product.products';\r\n treeSelectNodes.push({\r\n id: 'otherProducts',\r\n label: this.$t(otherProductsLocalizationKey).toString(),\r\n children: this.otherProducts.map(mapProductToTreeSelectNode),\r\n });\r\n }\r\n return treeSelectNodes;\r\n }\r\n\r\n private get yearsWithProducts(): number[] {\r\n return this.products\r\n .map((prod) => prod.years.map((prodYears) => prodYears.year))\r\n .reduce((acc, value) => acc.concat(value), [])\r\n .filter((val, index, self) => self.indexOf(val) === index)\r\n .sort((a, b) => {\r\n return this.yearSortOrder === SortOrder.Ascending ? a - b : b - a;\r\n });\r\n }\r\n\r\n private get yearSelectOptions(): SelectOption[] {\r\n return this.yearsWithProducts.map((year) => ({\r\n value: year,\r\n text: year.toString(),\r\n }));\r\n }\r\n\r\n private get reportTypeSelectOptions(): SelectOption[] {\r\n return [\r\n {\r\n value: EnvironmentalDataReportType.All,\r\n text: this.$t(\r\n `sustainabilityExportModal.environmentalDataReportType.${EnvironmentalDataReportType.All}`\r\n ).toString(),\r\n },\r\n {\r\n value: EnvironmentalDataReportType.EuEcolabel,\r\n text: this.$t(\r\n `sustainabilityExportModal.environmentalDataReportType.${EnvironmentalDataReportType.EuEcolabel}`\r\n ).toString(),\r\n },\r\n {\r\n value: EnvironmentalDataReportType.NordicSwan,\r\n text: this.$t(\r\n `sustainabilityExportModal.environmentalDataReportType.${EnvironmentalDataReportType.NordicSwan}`\r\n ).toString(),\r\n },\r\n {\r\n value: EnvironmentalDataReportType.PaperProfile,\r\n text: this.$t(\r\n `sustainabilityExportModal.environmentalDataReportType.${EnvironmentalDataReportType.PaperProfile}`\r\n ).toString(),\r\n },\r\n ];\r\n }\r\n\r\n private onSelectedProductChange(products: string[]) {\r\n this.selectSustainabilityDataReportTypes = [];\r\n this.selectProductsIds = products;\r\n }\r\n\r\n private onSelectedYearChange(year: number) {\r\n this.selectProductsIds = [];\r\n this.selectSustainabilityDataReportTypes = [];\r\n this.selectYear = year;\r\n }\r\n\r\n private onSelectedSustainabilityDataReportTypeChange(\r\n reportTypes: SustainabilityDataReportType[]\r\n ) {\r\n this.selectSustainabilityDataReportTypes = reportTypes;\r\n }\r\n\r\n private onSelectedEnvironmentalDataReportTypeChange(\r\n reportType: EnvironmentalDataReportType\r\n ) {\r\n this.selectEnvironmentalDataReportType = reportType;\r\n }\r\n\r\n private async onSubmit(): Promise {\r\n this.exporting = true;\r\n\r\n await sustainabilityService\r\n .downloadSustainabilityDataReport(\r\n this.selectedProducts,\r\n this.selectedSustainabilityDataReportTypes,\r\n this.selectedYear!,\r\n this.selectedEnvironmentalDataReportType\r\n )\r\n .catch((error) => {\r\n Consoler.debugWarn('Error downloading Excel data', error);\r\n const errorMessage: Message = {\r\n text: this.$t(\r\n 'sustainabilityExportModal.errorDownloadingExcel'\r\n ).toString(),\r\n type: MessageType.error,\r\n };\r\n EventBus.$emit(Config.AddMessageEvent, errorMessage);\r\n })\r\n .finally(() => {\r\n this.exporting = false;\r\n });\r\n }\r\n\r\n private hideModal(): void {\r\n (this.$refs.modal as Modal).hideModal();\r\n }\r\n\r\n private onCancelClick(): void {\r\n this.hideModal();\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityExportModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityExportModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SustainabilityExportModal.vue?vue&type=template&id=6f339940&scoped=true&\"\nimport script from \"./SustainabilityExportModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./SustainabilityExportModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SustainabilityExportModal.vue?vue&type=style&index=0&id=6f339940&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6f339940\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport DefaultLayout from '@/layouts/DefaultLayout.vue';\r\nimport Breadcrumbs from '@/components/general/Breadcrumbs.vue';\r\nimport Messages from '@/components/general/Messages.vue';\r\nimport SustainabilityProductLists from '@/components/SustainabilityProductLists.vue';\r\nimport SustainabilityProductsFilter from '@/components/SustainabilityProductsFilter.vue';\r\nimport SustainabilityEnvironmentalData from '@/components/SustainabilityEnvironmentalData.vue';\r\nimport SustainabilityCarbonFootprints from '@/components/SustainabilityCarbonFootprints.vue';\r\nimport SustainabilityOriginOfWood from '@/components/SustainabilityOriginOfWood.vue';\r\nimport SustainabilityCertifiedVolumes from '@/components/SustainabilityCertifiedVolumes.vue';\r\nimport SustainabilityCertifiedVolumesFilter from '@/components/SustainabilityCertifiedVolumesFilter.vue';\r\nimport SustainabilityActionButtons from '@/components/SustainabilityActionButtons.vue';\r\nimport Tabs, { Tab } from '@/components/general/Tabs.vue';\r\nimport { SustainabilityProduct } from '@/models/Sustainability/SustainabilityProduct';\r\nimport { SustainabilityProductYear } from '@/models/Sustainability/SustainabilityProductYear';\r\nimport {\r\n getNotFoundOrErrorLocation,\r\n getRouteTrackingInfo,\r\n} from '@/router/functions';\r\nimport { RawLocation, Route } from 'vue-router';\r\nimport { EnvironmentalData } from '@/models/Sustainability/EnvironmentalData/EnvironmentalData';\r\nimport { SustainabilityDataType } from '@/models/Sustainability/SustainabilityDataType';\r\nimport { SustainabilityData } from '@/models/Sustainability/SustainabilityData';\r\nimport { CarbonFootprints } from '@/models/Sustainability/CarbonFootprints/CarbonFootprints';\r\nimport { OriginOfWood } from '@/models/Sustainability/OriginOfWood/OriginOfWood';\r\nimport { Permissions } from '@/utils/Permissions';\r\nimport { MonthRange } from '@/models/MonthRange';\r\nimport { loadingModule } from '@/store/modules/loading';\r\nimport { sustainabilityProductsModule } from '@/store/modules/sustainabilityProducts';\r\nimport { sustainabilityProductDataModule } from '@/store/modules/sustainabilityProductData';\r\nimport { sustainabilityCertifiedVolumesModule } from '@/store/modules/sustainabilityCertifiedVolumes';\r\nimport { certificationDocumentsModule } from '@/store/modules/certificationDocuments';\r\nimport { CertifiedVolumes } from '@/models/Sustainability/CertifiedVolumes/CertifiedVolumes';\r\nimport {\r\n defaultMonthRange,\r\n getSustainabilityRoute,\r\n getSustainabilityRouteBreadcrumbs,\r\n getSustainabilityRouteParams,\r\n SustainabilityParams,\r\n} from '@/utils/RoutingForSustainability';\r\nimport { Consoler } from '@/utils/Consoler';\r\nimport { EnvironmentalDataReportType } from '@/models/Sustainability/EnvironmentalData/EnvironmentalDataReportType';\r\nimport { Breadcrumb } from '@/models/Breadcrumb';\r\nimport { CertificationDocuments } from '@/models/Documents/CertificationDocuments';\r\nimport { PermissionType } from '@/models/UserProfile/PermissionType';\r\nimport telemetryService, {\r\n RouteTrackingInfo,\r\n} from '@/services/TelemetryService';\r\nimport { Config } from '@/utils/Config';\r\nimport { WaterFootprint } from '@/models/Sustainability/WaterFootprints/WaterFootprint';\r\nimport SustainabilityWaterFootprints from '@/components/SustainabilityWaterFootprints.vue';\r\nimport { FeatureHighlights } from '@/models/UserProfile/FeatureHighlights';\r\nimport { userProfileModule } from '@/store/modules/userProfile';\r\nimport { FeatureHighlightPages } from '@/models/FeatureHighlightEnums';\r\nimport SustainabilityExportModal from '@/components/SustainabilityExportModal.vue';\r\n\r\nComponent.registerHooks(['beforeRouteEnter', 'beforeRouteUpdate']);\r\n\r\nfunction beforeRoute(\r\n to: Route,\r\n from: Route,\r\n next: (to?: RawLocation | void) => void\r\n): void {\r\n const params = getSustainabilityRouteParams(to);\r\n if (params === null) {\r\n // No valid sustainability route, stop tracking and show 404 page\r\n telemetryService.stopTrackPage(getRouteTrackingInfo(to), {\r\n stoppedInAdvance: true,\r\n notFound: true,\r\n });\r\n next(getNotFoundOrErrorLocation(to));\r\n } else if (\r\n params.type === SustainabilityDataType.CertifiedVolumes &&\r\n !params.selectedMonthRange\r\n ) {\r\n Consoler.debugLog(\r\n 'Wrong or no month range for CertifiedVolumes, going to default month range'\r\n );\r\n\r\n // Stop tracking as well (with the stoppedInAdvance flag), since we can not be sure routing is done (if route is exactly the same as before)\r\n telemetryService.stopTrackPage(getRouteTrackingInfo(to), {\r\n stoppedInAdvance: true,\r\n });\r\n\r\n next(\r\n getSustainabilityRoute(\r\n SustainabilityDataType.CertifiedVolumes,\r\n null,\r\n null,\r\n defaultMonthRange\r\n )\r\n );\r\n } else {\r\n next();\r\n }\r\n}\r\n\r\ninterface SustainabilityTab extends Tab {\r\n type: SustainabilityDataType;\r\n}\r\n\r\n@Component({\r\n components: {\r\n DefaultLayout,\r\n Breadcrumbs,\r\n Messages,\r\n SustainabilityProductLists,\r\n SustainabilityProductsFilter,\r\n SustainabilityEnvironmentalData,\r\n SustainabilityCarbonFootprints,\r\n SustainabilityWaterFootprints,\r\n SustainabilityOriginOfWood,\r\n SustainabilityCertifiedVolumes,\r\n SustainabilityCertifiedVolumesFilter,\r\n SustainabilityActionButtons,\r\n SustainabilityExportModal,\r\n Tabs,\r\n },\r\n})\r\nexport default class SustainabilityPage extends Vue {\r\n private readonly tabTypes = SustainabilityDataType;\r\n\r\n private routeTrackingInfo: RouteTrackingInfo = {};\r\n private params: SustainabilityParams | null = null;\r\n private selectedProduct: SustainabilityProduct | null = null;\r\n private selectedProductYear: SustainabilityProductYear | null = null;\r\n private selectedMonthRange: MonthRange = defaultMonthRange;\r\n private selectedEnvironmentalDataReportType: EnvironmentalDataReportType =\r\n EnvironmentalDataReportType.All;\r\n private loadingData: boolean = false;\r\n private errorProducts: boolean = false;\r\n private errorData: boolean = false;\r\n private productNotFound: boolean = false;\r\n private currentTabType: SustainabilityDataType =\r\n SustainabilityDataType.EnvironmentalData;\r\n\r\n private get isLoading(): boolean {\r\n return loadingModule.isLoading;\r\n }\r\n\r\n private get showPrintAndExportButtons(): boolean {\r\n return (\r\n (this.currentTabType !== SustainabilityDataType.CertifiedVolumes &&\r\n this.hasDataForTypeProductMillAndYear === true) ||\r\n (this.currentTabType === SustainabilityDataType.CertifiedVolumes &&\r\n this.certifiedVolumes !== null &&\r\n this.certifiedVolumes.yearAndMonths.length > 0 &&\r\n this.certifiedVolumes.customerVolumes.length > 0)\r\n );\r\n }\r\n\r\n private get featureHighlights(): FeatureHighlights[] {\r\n return userProfileModule.data?.featureHighlights ?? [];\r\n }\r\n\r\n private get featurePageFeatureHighlights(): FeatureHighlights[] | null {\r\n return (\r\n this.featureHighlights.filter(\r\n (f) =>\r\n f.featurePage == FeatureHighlightPages.Sustainability &&\r\n f.featureToHighlight != null\r\n ) ?? []\r\n );\r\n }\r\n\r\n private get contactSustainabilityEmailAddress(): string {\r\n return Config.Settings.ContactSustainabilityEmailAddress;\r\n }\r\n\r\n private get hasDataForTypeProductMillAndYear(): boolean | null {\r\n if (this.selectedProductYear === null) {\r\n return null;\r\n }\r\n return this.selectedProductYear.types.some(\r\n (t) => t === this.currentTabType\r\n );\r\n }\r\n\r\n private get hasDataForTypeProductMillAndAnyYear(): boolean | null {\r\n if (this.selectedProduct === null) {\r\n return null;\r\n }\r\n return this.selectedProduct.years.some((y) =>\r\n y.types.some((t) => t === this.currentTabType)\r\n );\r\n }\r\n\r\n private get tabs(): SustainabilityTab[] {\r\n const tabs: SustainabilityTab[] = [\r\n {\r\n id: 'environmental-data',\r\n type: SustainabilityDataType.EnvironmentalData,\r\n text: this.$t(\r\n `sustainabilityDataType.${SustainabilityDataType.EnvironmentalData}`\r\n ).toString(),\r\n },\r\n {\r\n id: 'carbon-footprints',\r\n type: SustainabilityDataType.CarbonFootprints,\r\n text: this.$t(\r\n `sustainabilityDataType.${SustainabilityDataType.CarbonFootprints}`\r\n ).toString(),\r\n },\r\n {\r\n id: 'raw-material-origins', // TODO: use origin of wood instead?\r\n type: SustainabilityDataType.OriginOfWood,\r\n text: this.$t(\r\n `sustainabilityDataType.${SustainabilityDataType.OriginOfWood}`\r\n ).toString(),\r\n },\r\n {\r\n id: 'water-footprints',\r\n type: SustainabilityDataType.WaterFootprints,\r\n text: this.$t(\r\n `sustainabilityDataType.${SustainabilityDataType.WaterFootprints}`\r\n ).toString(),\r\n featureHighlight:\r\n this.getSpecificFeatureHighlight('waterfootprint') ?? null,\r\n },\r\n ];\r\n if (this.canViewCertifiedVolumes) {\r\n tabs.push({\r\n id: 'certified-volumes',\r\n type: SustainabilityDataType.CertifiedVolumes,\r\n text: this.$t(\r\n `sustainabilityDataType.${SustainabilityDataType.CertifiedVolumes}`\r\n ).toString(),\r\n });\r\n }\r\n return tabs;\r\n }\r\n\r\n private get currentTab(): SustainabilityTab | null {\r\n return this.tabs.find((tab) => tab.type === this.currentTabType) ?? null;\r\n }\r\n\r\n private get products(): SustainabilityProduct[] {\r\n return sustainabilityProductsModule.data\r\n ? sustainabilityProductsModule.data\r\n : [];\r\n }\r\n\r\n private get selectedYear(): number | null {\r\n return this.selectedProductYear ? this.selectedProductYear.year : null;\r\n }\r\n\r\n private get moduleItemId(): string {\r\n if (this.params === null || !this.params.productMillAndYear) {\r\n return '';\r\n }\r\n return `${this.params.productMillAndYear.productName}|${this.params.productMillAndYear.millId}|${this.params.productMillAndYear.year}`;\r\n }\r\n\r\n private get sustainabilityData(): SustainabilityData | null {\r\n return sustainabilityProductDataModule.item(this.moduleItemId);\r\n }\r\n\r\n private get environmentalData(): EnvironmentalData | null {\r\n if (this.sustainabilityData === null) {\r\n return null;\r\n }\r\n\r\n return this.sustainabilityData.environmentalData;\r\n }\r\n\r\n private get environmentalDataReportTypes(): EnvironmentalDataReportType[] {\r\n return Object.values(EnvironmentalDataReportType);\r\n }\r\n\r\n private get environmentalDataReportType(): EnvironmentalDataReportType {\r\n return this.selectedEnvironmentalDataReportType;\r\n }\r\n\r\n private get carbonFootprints(): CarbonFootprints | null {\r\n if (this.sustainabilityData === null) {\r\n return null;\r\n }\r\n\r\n return this.sustainabilityData.carbonFootprints;\r\n }\r\n\r\n private get waterFootprints(): WaterFootprint | null {\r\n if (this.sustainabilityData === null) {\r\n return null;\r\n }\r\n\r\n return this.sustainabilityData.waterFootprint;\r\n }\r\n\r\n private get originOfWood(): OriginOfWood | null {\r\n if (this.sustainabilityData === null) {\r\n return null;\r\n }\r\n\r\n return this.sustainabilityData.originOfWood;\r\n }\r\n\r\n private get certifiedVolumes(): CertifiedVolumes | null {\r\n return sustainabilityCertifiedVolumesModule.search?.data ?? null;\r\n }\r\n\r\n private get certificationDocuments(): CertificationDocuments | null {\r\n return certificationDocumentsModule.data ?? null;\r\n }\r\n\r\n private get canViewCertifiedVolumes(): boolean {\r\n return Permissions.hasPermission(\r\n PermissionType.IsAllowedToViewCertifiedVolumes\r\n );\r\n }\r\n\r\n private get breadcrumbs(): Breadcrumb[] {\r\n return getSustainabilityRouteBreadcrumbs(this.$route);\r\n }\r\n\r\n public beforeRouteEnter(\r\n to: Route,\r\n from: Route,\r\n next: (to?: RawLocation | void) => void\r\n ): void {\r\n beforeRoute(to, from, next);\r\n }\r\n\r\n public beforeRouteUpdate(\r\n to: Route,\r\n from: Route,\r\n next: (to?: RawLocation | void) => void\r\n ): void {\r\n beforeRoute(to, from, next);\r\n }\r\n\r\n @Watch('$route', { immediate: false, deep: true })\r\n private onRouteChange(): void {\r\n this.routeTrackingInfo = getRouteTrackingInfo(this.$route);\r\n this.initialize().finally(() => {\r\n telemetryService.stopTrackPage(this.routeTrackingInfo);\r\n });\r\n }\r\n\r\n private created(): void {\r\n this.routeTrackingInfo = getRouteTrackingInfo(this.$route);\r\n this.initialize().finally(() => {\r\n telemetryService.stopTrackPage(this.routeTrackingInfo);\r\n });\r\n }\r\n\r\n private initialize(): Promise {\r\n this.productNotFound = false;\r\n this.errorData = false;\r\n\r\n this.params = getSustainabilityRouteParams(this.$route);\r\n if (this.params === null) {\r\n // Should never happen (handled in beforeRoute)\r\n return Promise.resolve();\r\n }\r\n\r\n this.currentTabType = this.params.type;\r\n\r\n if (this.params.type !== SustainabilityDataType.CertifiedVolumes) {\r\n return this.loadProducts().then(() => {\r\n if (this.params === null || !this.params.productMillAndYear) {\r\n this.selectedProduct = null;\r\n this.selectedProductYear = null;\r\n return;\r\n }\r\n\r\n const product = this.products.find(\r\n (p) =>\r\n p.productName === this.params?.productMillAndYear?.productName &&\r\n p.millId === this.params?.productMillAndYear?.millId\r\n );\r\n\r\n if (!product) {\r\n this.productNotFound = true;\r\n return;\r\n }\r\n\r\n this.selectedProduct = product;\r\n const productYear = this.getProductYear(\r\n product,\r\n this.params.productMillAndYear.year\r\n );\r\n if (productYear != null) {\r\n this.selectedProductYear = productYear;\r\n this.onYearSelectChange(productYear.year);\r\n }\r\n\r\n if (!this.hasDataForTypeProductMillAndYear) {\r\n // No data for this type, product, mill and year - no need to load data before selecting.\r\n return;\r\n }\r\n\r\n return this.loadProductData(\r\n this.currentTabType,\r\n this.selectedEnvironmentalDataReportType\r\n );\r\n });\r\n } else {\r\n if (!this.params.selectedMonthRange) {\r\n // Should never happen (handled in beforeRoute)\r\n return Promise.resolve();\r\n }\r\n\r\n this.selectedMonthRange = this.params.selectedMonthRange;\r\n\r\n return this.loadCertifiedVolumes();\r\n }\r\n }\r\n\r\n private loadProductData(\r\n tab: SustainabilityDataType,\r\n environmentalDataReportType: EnvironmentalDataReportType\r\n ): Promise {\r\n if (this.params === null || !this.params.productMillAndYear) {\r\n return Promise.reject('No params or product');\r\n }\r\n if (this.selectedProductYear === null) {\r\n return Promise.reject('No selected product year');\r\n }\r\n\r\n let dispatchMethod: Promise | undefined;\r\n if (tab === SustainabilityDataType.EnvironmentalData) {\r\n dispatchMethod =\r\n sustainabilityProductDataModule.dispatchLoadEnvironmentalData({\r\n itemId: this.moduleItemId,\r\n reportType: environmentalDataReportType,\r\n ...this.params.productMillAndYear,\r\n });\r\n } else if (tab === SustainabilityDataType.CarbonFootprints) {\r\n dispatchMethod =\r\n sustainabilityProductDataModule.dispatchLoadCarbonFootprints({\r\n itemId: this.moduleItemId,\r\n ...this.params.productMillAndYear,\r\n });\r\n } else if (tab === SustainabilityDataType.OriginOfWood) {\r\n dispatchMethod = sustainabilityProductDataModule.dispatchLoadOriginOfWood(\r\n {\r\n itemId: this.moduleItemId,\r\n ...this.params.productMillAndYear,\r\n }\r\n );\r\n } else if (tab === SustainabilityDataType.WaterFootprints) {\r\n dispatchMethod =\r\n sustainabilityProductDataModule.dispatchLoadWaterFootprints({\r\n itemId: this.moduleItemId,\r\n ...this.params.productMillAndYear,\r\n });\r\n }\r\n\r\n if (!dispatchMethod) {\r\n return Promise.reject('Invalid type');\r\n }\r\n\r\n this.loadingData = true;\r\n this.errorData = false;\r\n\r\n return dispatchMethod\r\n .then(() => {\r\n if (tab === SustainabilityDataType.EnvironmentalData) {\r\n this.selectedEnvironmentalDataReportType =\r\n this.environmentalData?.type ??\r\n environmentalDataReportType ??\r\n EnvironmentalDataReportType.All;\r\n }\r\n })\r\n .catch(() => {\r\n this.errorData = true;\r\n })\r\n .finally(() => {\r\n this.loadingData = false;\r\n });\r\n }\r\n\r\n private loadCertifiedVolumes(): Promise {\r\n if (this.params === null) {\r\n return Promise.reject('No params');\r\n }\r\n\r\n this.loadingData = true;\r\n this.errorData = false;\r\n\r\n return Promise.all([\r\n sustainabilityCertifiedVolumesModule.dispatchLoad(\r\n this.selectedMonthRange\r\n ),\r\n certificationDocumentsModule.dispatchLoad(),\r\n ])\r\n .catch(() => {\r\n this.errorData = true;\r\n })\r\n .finally(() => {\r\n this.loadingData = false;\r\n });\r\n }\r\n\r\n private async loadProducts(): Promise {\r\n const loading = await loadingModule.dispatchAdd(\r\n this.$t('loading.sustainabilityPage').toString()\r\n );\r\n\r\n this.errorProducts = false;\r\n\r\n return sustainabilityProductsModule\r\n .dispatchLoad()\r\n .catch(() => {\r\n this.errorProducts = true;\r\n })\r\n .finally(() => {\r\n loadingModule.commitComplete(loading);\r\n });\r\n }\r\n\r\n private getProductYear(\r\n product: SustainabilityProduct,\r\n year: number | null\r\n ): SustainabilityProductYear | null {\r\n const yearData = year\r\n ? product.years\r\n .filter((x) => x.types.includes(this.currentTabType))\r\n .find((y) => y.year === year)\r\n : undefined;\r\n\r\n return yearData\r\n ? yearData\r\n : product.years\r\n .filter((x) => x.types.includes(this.currentTabType))\r\n .map((spy) => spy)\r\n .sort((a, b) => b.year - a.year)[0] ?? null;\r\n }\r\n\r\n private onTabChange(tab: SustainabilityTab): void {\r\n const year = this.selectedProduct\r\n ? this.getProductYear(this.selectedProduct, this.selectedYear)?.year ??\r\n this.selectedYear\r\n : this.selectedYear;\r\n\r\n this.$router.push(\r\n getSustainabilityRoute(\r\n tab.type,\r\n this.selectedProduct,\r\n year,\r\n this.selectedMonthRange,\r\n this.selectedEnvironmentalDataReportType\r\n )\r\n );\r\n }\r\n\r\n private onProductChange(product: SustainabilityProduct): void {\r\n const year =\r\n this.getProductYear(product, this.selectedYear)?.year ??\r\n this.selectedYear ??\r\n this.params?.productMillAndYear?.year ??\r\n this.$moment().year();\r\n\r\n this.$router.push(\r\n getSustainabilityRoute(\r\n this.currentTabType,\r\n product,\r\n year,\r\n null,\r\n this.selectedEnvironmentalDataReportType\r\n )\r\n );\r\n }\r\n\r\n private onYearSelectChange(year: number): void {\r\n if (!this.selectedProduct) {\r\n return;\r\n }\r\n const year2 = this.getProductYear(this.selectedProduct, year)?.year ?? null;\r\n this.$router.push(\r\n getSustainabilityRoute(\r\n this.currentTabType,\r\n this.selectedProduct,\r\n year2,\r\n null,\r\n this.selectedEnvironmentalDataReportType\r\n )\r\n );\r\n }\r\n\r\n private onEnvironmentalDataReportTypeChange(\r\n reportType: EnvironmentalDataReportType\r\n ): void {\r\n if (!this.selectedProduct) {\r\n return;\r\n }\r\n\r\n this.selectedEnvironmentalDataReportType = reportType;\r\n this.$router.push(\r\n getSustainabilityRoute(\r\n this.currentTabType,\r\n this.selectedProduct,\r\n this.selectedYear,\r\n null,\r\n this.selectedEnvironmentalDataReportType\r\n )\r\n );\r\n }\r\n\r\n private onMonthRangeChange(monthRange: MonthRange) {\r\n this.$router.push(\r\n getSustainabilityRoute(this.currentTabType, null, null, monthRange)\r\n );\r\n }\r\n\r\n private getSpecificFeatureHighlight(\r\n feature: string\r\n ): FeatureHighlights | null {\r\n return (\r\n this.featurePageFeatureHighlights?.find(\r\n (f) => f.featureToHighlight?.toLowerCase() == feature.toLowerCase()\r\n ) ?? null\r\n );\r\n }\r\n\r\n private showSustainabilityExport(): void {\r\n if (this.products !== null && this.products.length > 0) {\r\n (\r\n this.$refs.sustainabilityExportModal as SustainabilityExportModal\r\n ).show();\r\n } else {\r\n this.loadProducts().then(() => {\r\n (\r\n this.$refs.sustainabilityExportModal as SustainabilityExportModal\r\n ).show();\r\n });\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SustainabilityPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SustainabilityPage.vue?vue&type=template&id=2d611efb&\"\nimport script from \"./SustainabilityPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./SustainabilityPage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}