UNPKG

@idm-plugin/ghg

Version:

idm plugin for greenhouse gas

2 lines (1 loc) 37.3 kB
(function(S,P){typeof exports=="object"&&typeof module<"u"?P(exports,require("@log4js-node/log4js-api"),require("@turf/turf")):typeof define=="function"&&define.amd?define(["exports","@log4js-node/log4js-api","@turf/turf"],P):(S=typeof globalThis<"u"?globalThis:S||self,P(S["idm-plugin-rabbitmq"]={},S["@log4js-node/log4js-api"],S["@turf/turf"]))})(this,function(S,P,B){"use strict";var P5=Object.defineProperty;var A5=(S,P,B)=>P in S?P5(S,P,{enumerable:!0,configurable:!0,writable:!0,value:B}):S[P]=B;var Q=(S,P,B)=>(A5(S,typeof P!="symbol"?P+"":P,B),B);function N5(l){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const o in l)if(o!=="default"){const t=Object.getOwnPropertyDescriptor(l,o);Object.defineProperty(e,o,t.get?t:{enumerable:!0,get:()=>l[o]})}}return e.default=l,Object.freeze(e)}const k=N5(B);let X;typeof process<"u"&&process.versions&&process.versions.node&&(X=require("fs"));let q;try{q=P.getLogger("eu-ets")}catch{}finally{}const V=class V{static async readBoundaries(e){if(!X)throw new Error("readBoundaries is only available in Node.js environment. Please use browser-compatible method to load boundaries data.");const o=X.readFileSync(e,"utf-8");return JSON.parse(o)}static async convert2Geojson(e){const o=[];for(const r of e){const n=r.bound;let a=n.at(-1);const i=n.at(-2);i[0]===a[0]&&i[1]===a[1]&&n.pop();const c=n.at(0);a=n.at(-1),(c[0]!==a[0]||c[1]!==a[1])&&n.push(c);const s=n.map(u=>[u[1],u[0]]);o.push([s])}return k.multiPolygon(o)}static async isInEU(e,o={}){const t=k.point([e.lng,e.lat]),r=k.booleanPointInPolygon(t,V.euMrvBoundaries,{ignoreBoundary:!1});return q==null||q.info("[%s] port(%j) is in-eu: %s",o.requestId,e,r),r}static async isFuelEUExclude(e,o={}){const t=k.point([e.lng,e.lat]),r=k.booleanPointInPolygon(t,V.fuelEuExclude,{ignoreBoundary:!1});return q==null||q.info("[%s] port(%j) is excluded from eu: %s",o.requestId,e,r),r}};Q(V,"boundaries",{type:"Feature",properties:{},geometry:{type:"MultiPolygon",coordinates:[[[[10.10742,58.07788],[6.81152,56.84897],[7.4707,55.22902],[7.60254,54.1367],[4.30664,53.46189],[2.68066,52.07951],[1.88965,51.20688],[.79102,50.62507],[-.13184,49.86632],[-3.2959,49.83798],[-5.75684,48.40003],[-11.7334,41.54148],[-9.66797,35.88905],[-6.89941,35.81781],[-5.81726,35.9113],[-4.3396,36.16449],[-.41748,36.75649],[4.72412,38.09998],[9.82178,37.77071],[11.5741,37.20408],[12.01355,36.4257],[12.48596,35.24113],[19.75342,35.56798],[25.33447,33.50476],[32.65137,33.4131],[35.17822,34.84988],[35.37598,36.26199],[31.94824,35.58585],[28.93799,35.83563],[28.49854,36.41244],[28.32825,36.58025],[27.70203,36.4257],[27.35046,36.61553],[27.23511,36.72568],[27.46033,36.87083],[27.27905,36.9455],[27.1637,37.02448],[27.13623,37.26968],[27.11975,37.48358],[27.01538,37.58594],[26.95358,37.65882],[26.99066,37.68817],[27.09503,37.70338],[27.13898,37.76854],[27.05658,37.84558],[26.80939,37.95503],[26.1145,38.11295],[26.19141,38.35458],[26.2793,38.44068],[26.32874,38.48369],[26.3356,38.56427],[26.26694,38.65442],[26.61987,38.83543],[26.73523,39.06611],[26.55396,39.25778],[26.4798,39.35766],[26.48941,39.44998],[26.35345,39.45104],[26.15707,39.43195],[25.97717,39.44044],[26.07742,39.69345],[26.10077,39.80432],[26.04721,39.89499],[25.98679,39.97817],[26.21887,40.39676],[26.4386,40.55555],[26.06506,40.54303],[25.9552,40.70563],[26.0424,40.72853],[26.07193,40.72384],[26.32324,40.83044],[26.48804,41.01307],[26.55396,41.19519],[26.89453,41.52503],[27.16919,41.80408],[28.34473,41.88592],[30.36621,44.90258],[29.68506,45.32125],[22.76367,54.40614],[19.59961,54.47004],[18.0835,55.71473],[10.65674,59.06315],[10.10742,58.07788]]],[[[-24.16992,67.27204],[-26.80664,64.77413],[-18.54492,62.14498],[-9.31641,63.62674],[-8.4375,67.33986],[-18.28125,68.39918],[-24.16992,67.27204]]],[[[10.67871,59.08574],[9.22852,57.9615],[4.57031,57.93818],[3.07617,62.85515],[7.29492,65.21989],[11.38184,67.3906],[14.98535,70.5249],[26.80664,71.96539],[33.61816,70.31874],[31.46484,70.37785],[30.81116,69.91521],[30.85785,69.79983],[30.82764,69.78465],[30.92651,69.67427],[30.95398,69.56139],[30.66833,69.52491],[30.35522,69.61503],[30.12451,69.67045],[30.08057,69.42669],[29.13574,68.98993],[28.74023,68.56038],[30.32227,67.74276],[29.42139,66.64427],[30.76172,65.65827],[32.16797,62.71446],[28.07007,60.60315],[27.79541,60.33782],[28.67432,60.0429],[27.90527,59.86137],[27.86133,59.54546],[28.14697,59.44508],[28.30078,59.04055],[28.14697,58.24016],[28.10303,57.563],[28.45459,56.02295],[26.2793,54.00777],[24.30176,53.73572],[23.33496,53.74871],[22.76367,54.40614],[22.82959,54.90188],[22.17041,55.10352],[21.46729,55.22902],[21.09375,55.20395],[21.00586,55.62179],[16.09497,56.57764],[10.67871,59.08574]]],[[[-7.20154,55.06893],[-6.99829,55.17887],[-6.86646,55.23529],[-7.11914,55.44771],[-8.08594,55.5193],[-9.25049,54.99337],[-10.85449,53.96901],[-10.85449,52.38901],[-10.21729,50.99993],[-7.40479,51.60437],[-6.24023,52.01194],[-5.66895,52.65639],[-5.76782,53.7617],[-6.05896,53.9884],[-6.25671,54.1045],[-6.95984,54.23634],[-7.43225,54.12704],[-7.94312,54.29409],[-8.15186,54.45407],[-8.02551,54.54021],[-7.68494,54.62934],[-7.85522,54.74048],[-7.58606,54.73731],[-7.4762,54.86712],[-7.39929,54.99022],[-7.20154,55.06893]]],[[[-15.16113,29.36303],[-18.21533,29.31514],[-18.28125,27.23509],[-15.35889,27.17647],[-13.93066,27.73216],[-13.12866,29.02735],[-12.84302,29.77391],[-15.16113,29.36303]]],[[[-61.59485,16.57829],[-62.00684,16.35177],[-61.96289,15.85567],[-61.61682,15.71295],[-61.0675,15.7764],[-60.82031,16.13554],[-60.88623,16.46769],[-61.40259,16.62567],[-61.59485,16.57829]]],[[[-53.83301,6.06409],[-54.14063,5.58318],[-54.54712,4.97056],[-54.32739,3.28311],[-54.56909,2.30651],[-53.80005,1.90029],[-52.59155,2.06498],[-51.87744,3.72175],[-51.61377,4.10537],[-51.60278,4.23686],[-51.5918,4.91583],[-53.00903,5.9439],[-53.83301,6.06409]]],[[[-61.16089,14.95009],[-61.41907,14.80675],[-61.17737,14.36551],[-60.69397,14.35487],[-60.5896,14.58358],[-60.83679,14.85985],[-61.16089,14.95009]]],[[[45.20325,-12.57065],[44.95605,-12.55456],[44.94507,-12.76359],[44.94507,-13.02597],[45.16479,-13.10623],[45.32959,-13.02061],[45.35706,-12.80109],[45.30212,-12.63498],[45.20325,-12.57065]]],[[[-63.13705,18.0943],[-63.16383,18.09071],[-63.17276,18.06101],[-63.15491,18.04403],[-63.13362,18.05317],[-63.1089,18.05317],[-63.09311,18.04403],[-63.08006,18.0486],[-63.06702,18.0584],[-63.05122,18.06297],[-63.02856,18.05383],[-63.01071,18.05252],[-62.98187,18.0486],[-62.94617,18.10539],[-62.95715,18.14585],[-63.06358,18.14259],[-63.1192,18.12171],[-63.13705,18.0943]]],[[[55.31616,-20.73557],[54.94263,-21.1255],[55.46997,-21.55528],[56.15112,-21.49396],[56.40381,-20.86908],[55.67871,-20.48877],[55.31616,-20.73557]]],[[[-16.83655,33.19733],[-17.44629,33.00866],[-17.65503,32.5607],[-16.75415,32.30571],[-15.75989,32.28249],[-16.00159,33.16974],[-16.3092,33.42686],[-16.83655,33.19733]]],[[[-26.72974,39.3343],[-31.15723,40.00237],[-31.76147,39.45316],[-30.53101,38.03079],[-26.15845,36.85325],[-23.68652,36.46547],[-23.48877,38.39334],[-26.16943,39.15562],[-26.72974,39.3343]]]]}}),Q(V,"euMrvBoundaries",{type:"Feature",properties:{},geometry:{type:"MultiPolygon",coordinates:[[[[10.10742,58.07788],[6.81152,56.84897],[7.4707,55.22902],[7.60253,54.1367],[4.30663,53.46188],[2.68067,52.07952],[1.88965,51.20688],[.79102,50.62507],[-.13183,49.86632],[-2.06818,49.8433],[-2.0462,49.68007],[-2.14233,49.54125],[-1.81823,49.21042],[-1.91987,48.86472],[-2.406,48.81228],[-3.52662,48.96398],[-5.75683,48.40003],[-11.7334,41.54148],[-9.66797,35.88905],[-6.89942,35.81782],[-6.37618,35.92687],[-6.08643,35.97023],[-5.85708,35.9491],[-5.56183,35.95745],[-5.49042,35.98023],[-5.4578,36.00607],[-5.35308,36.04217],[-5.33763,36.05493],[-5.35068,36.06187],[-5.36305,36.07657],[-5.3754,36.09627],[-5.39668,36.13095],[-5.38708,36.14702],[-5.3627,36.16005],[-5.35085,36.15632],[-5.33248,36.1595],[-5.23293,36.14342],[-5.22675,36.1057],[-5.25627,36.05908],[-5.29198,35.98245],[-5.38673,35.95855],[-5.39017,35.92353],[-5.37935,35.91185],[-5.37643,35.8935],[-5.373,35.88182],[-5.35308,35.87292],[-5.34278,35.87403],[-5.32493,35.85622],[-5.23842,35.87903],[-5.14228,35.96578],[-5.10933,36.05465],[-5.0283,36.08352],[-4.8539,36.08458],[-4.3396,36.16448],[-.41748,36.75648],[4.72412,38.09998],[9.82178,37.77072],[11.5741,37.20408],[12.01355,36.4257],[12.48597,35.24113],[14.91943,35.62158],[16.61133,37.30028],[17.73193,39.01065],[18.67675,39.58875],[18.7207,40.4971],[17.13867,41.44273],[16.32568,42.03297],[17.81982,42.67437],[18.55042,42.34637],[18.5669,42.39102],[18.59437,42.44575],[17.69897,43.06888],[15.79833,44.80912],[16.36963,45.35987],[17.77588,45.12005],[19.0503,44.80133],[18.84155,45.36758],[19.30298,45.98933],[20.1709,46.157],[21.03882,45.65245],[21.6211,45.10455],[21.44532,44.74673],[22.31323,44.52785],[23.00537,44.10337],[22.85157,43.19717],[22.36817,42.4721],[22.91748,41.6565],[22.63183,41.07935],[21.57715,40.94672],[20.61035,40.3298],[20.30137,39.7093],[20.17398,39.6517],[20.0909,39.68235],[20.04525,39.6961],[20.03392,39.70072],[20.01812,39.6945],[20.0104,39.69173],[20.00163,39.68315],[19.98207,39.67945],[19.9553,39.73755],[19.98482,39.78453],[19.86328,39.96238],[19.27002,40.03182],[19.17938,39.67972],[20.25878,37.21283],[25.33447,33.50477],[32.65137,33.4131],[35.17822,34.84988],[35.37598,36.26198],[31.55273,35.54563],[29.69363,35.96633],[29.6648,36.11652],[29.61117,36.14875],[29.6158,36.16733],[29.59155,36.17778],[29.56532,36.1629],[29.5376,36.16338],[29.51305,36.18347],[29.46842,36.16615],[29.34723,36.1595],[28.49853,36.41243],[28.32825,36.58025],[27.98767,36.5008],[27.92725,36.54827],[27.93137,36.62765],[27.9039,36.70145],[27.77687,36.6921],[27.68967,36.6045],[27.33535,36.6001],[27.23512,36.72568],[27.41638,36.81148],[27.48298,36.86643],[27.44865,36.91422],[27.40265,36.94495],[27.28523,36.94112],[27.22652,36.94687],[27.18087,36.97485],[27.11838,37.00145],[27.17262,37.04942],[27.0813,37.14062],[27.17193,37.25875],[27.11425,37.39635],[27.06207,37.53587],[26.95358,37.65882],[26.99067,37.68817],[27.09503,37.70338],[27.13898,37.76853],[27.05658,37.84558],[26.80938,37.95503],[26.11588,38.11727],[26.19142,38.35458],[26.2793,38.44068],[26.32873,38.48368],[26.3356,38.56427],[26.26693,38.65442],[26.61987,38.83543],[26.73523,39.06612],[26.55397,39.25778],[26.4798,39.35767],[26.48942,39.44998],[26.35345,39.45103],[26.15707,39.43195],[25.97717,39.44043],[26.02112,39.67548],[25.9552,39.73677],[25.85907,39.79588],[25.7602,39.8992],[25.68055,39.94975],[25.56243,40.06547],[25.5954,40.23132],[26.21887,40.39677],[26.4386,40.55555],[26.06507,40.54303],[25.9552,40.70563],[26.0424,40.72853],[26.07193,40.72383],[26.32323,40.83043],[26.48803,41.01307],[26.55397,41.19518],[26.89453,41.52503],[27.16918,41.80408],[28.34473,41.88592],[30.36622,44.90258],[29.68507,45.32125],[22.76367,54.40613],[19.59962,54.47003],[18.0835,55.71473],[10.9156,58.94363],[10.6382,58.95886],[10.33813,58.93159],[10.12939,58.6598],[10.10742,58.07788]]],[[[-24.16992,67.27203],[-26.80663,64.77413],[-18.54492,62.14498],[-9.31642,63.62673],[-8.4375,67.33987],[-18.28125,68.39918],[-24.16992,67.27203]]],[[[10.67871,59.08574],[9.22852,57.9615],[4.57031,57.93818],[3.07617,62.85515],[7.29492,65.21989],[11.38184,67.3906],[14.98535,70.5249],[26.80664,71.96539],[33.61816,70.31874],[31.46484,70.37785],[30.81116,69.91521],[30.85785,69.79983],[30.82764,69.78465],[30.92651,69.67427],[30.95398,69.56139],[30.66833,69.52491],[30.35522,69.61503],[30.12451,69.67045],[30.08057,69.42669],[29.13574,68.98993],[28.74023,68.56038],[30.32227,67.74276],[29.42139,66.64427],[30.76172,65.65827],[32.16797,62.71446],[28.07007,60.60315],[27.79541,60.33782],[28.67432,60.0429],[27.90527,59.86137],[27.86133,59.54546],[28.14697,59.44508],[28.30078,59.04055],[28.14697,58.24016],[28.10303,57.563],[28.45459,56.02295],[26.2793,54.00777],[24.30176,53.73572],[23.33496,53.74871],[22.76367,54.40614],[22.82959,54.90188],[22.17041,55.10352],[21.46729,55.22902],[21.09375,55.20395],[21.00586,55.62179],[16.09497,56.57764],[10.67871,59.08574]]],[[[-7.20154,55.06893],[-6.99829,55.17887],[-6.86646,55.23529],[-7.11914,55.44771],[-8.08594,55.5193],[-9.25049,54.99337],[-10.85449,53.96901],[-10.85449,52.38901],[-10.21729,50.99993],[-7.40479,51.60437],[-6.24023,52.01194],[-5.66895,52.65639],[-5.76782,53.7617],[-6.05896,53.9884],[-6.25671,54.1045],[-6.95984,54.23634],[-7.43225,54.12704],[-7.94312,54.29409],[-8.15186,54.45407],[-8.02551,54.54021],[-7.68494,54.62934],[-7.85522,54.74048],[-7.58606,54.73731],[-7.4762,54.86712],[-7.39929,54.99022],[-7.20154,55.06893]]],[[[-15.16113,29.36303],[-18.21533,29.31514],[-18.28125,27.23509],[-15.35889,27.17647],[-13.93066,27.73216],[-13.12866,29.02735],[-12.84302,29.77391],[-15.16113,29.36303]]],[[[-61.59485,16.57829],[-62.00684,16.35177],[-61.96289,15.85567],[-61.61682,15.71295],[-61.0675,15.7764],[-60.82031,16.13554],[-60.88623,16.46769],[-61.40259,16.62567],[-61.59485,16.57829]]],[[[-53.83301,6.06409],[-54.14063,5.58318],[-54.54712,4.97056],[-54.32739,3.28311],[-54.56909,2.30651],[-53.80005,1.90029],[-52.59155,2.06498],[-51.87744,3.72175],[-51.61377,4.10537],[-51.60278,4.23686],[-51.5918,4.91583],[-53.00903,5.9439],[-53.83301,6.06409]]],[[[-61.16089,14.95009],[-61.41907,14.80675],[-61.17737,14.36551],[-60.69397,14.35487],[-60.5896,14.58358],[-60.83679,14.85985],[-61.16089,14.95009]]],[[[45.20325,-12.57065],[44.95605,-12.55456],[44.94507,-12.76359],[44.94507,-13.02597],[45.16479,-13.10623],[45.32959,-13.02061],[45.35706,-12.80109],[45.30212,-12.63498],[45.20325,-12.57065]]],[[[-63.13705,18.0943],[-63.16383,18.09071],[-63.17276,18.06101],[-63.15491,18.04403],[-63.13362,18.05317],[-63.1089,18.05317],[-63.09311,18.04403],[-63.08006,18.0486],[-63.06702,18.0584],[-63.05122,18.06297],[-63.02856,18.05383],[-63.01071,18.05252],[-62.98187,18.0486],[-62.94617,18.10539],[-62.95715,18.14585],[-63.06358,18.14259],[-63.1192,18.12171],[-63.13705,18.0943]]],[[[55.31616,-20.73557],[54.94263,-21.1255],[55.46997,-21.55528],[56.15112,-21.49396],[56.40381,-20.86908],[55.67871,-20.48877],[55.31616,-20.73557]]],[[[-16.83655,33.19733],[-17.44629,33.00866],[-17.65503,32.5607],[-16.75415,32.30571],[-15.75989,32.28249],[-16.00159,33.16974],[-16.3092,33.42686],[-16.83655,33.19733]]],[[[-26.72974,39.3343],[-31.15723,40.00237],[-31.76147,39.45316],[-30.53101,38.03079],[-26.15845,36.85325],[-23.68652,36.46547],[-23.48877,38.39334],[-26.16943,39.15562],[-26.72974,39.3343]]]]}}),Q(V,"fuelEuExclude",{type:"Feature",properties:{},geometry:{type:"MultiPolygon",coordinates:[[[[10.35048,58.97197],[9.22852,57.9615],[4.57032,57.93818],[3.07617,62.85515],[7.29492,65.21988],[11.38183,67.3906],[14.98535,70.5249],[26.80663,71.96538],[31.48682,70.39262],[30.55298,70.06183],[30.97047,69.93783],[30.95947,69.87367],[30.90453,69.83773],[31.0199,69.5518],[30.60242,69.51147],[30.2124,69.62652],[29.39942,68.9978],[28.76222,69.17037],[29.13573,69.67998],[28.34473,69.74855],[27.99317,70.07307],[16.74317,66.99883],[12.87598,62.93523],[13.44727,61.2068],[12.46673,59.97838],[12.18383,59.86688],[11.95862,59.66913],[11.69768,59.59693],[11.88172,59.29113],[11.77185,59.0038],[11.651,58.87627],[11.53563,58.87627],[11.45737,58.88762],[11.45873,58.933],[11.45598,58.98542],[11.41582,59.03685],[11.3839,59.08822],[11.33927,59.1143],[11.30423,59.10583],[11.18477,59.08008],[11.15662,59.08008],[11.10855,59.00238],[11.07147,58.97815],[10.91783,58.94283],[10.88677,58.94807],[10.74052,58.95567],[10.35048,58.97197]]],[[[-24.16992,67.27203],[-26.80663,64.77413],[-18.54492,62.14498],[-9.31642,63.62673],[-8.4375,67.33987],[-18.28125,68.39918],[-24.16992,67.27203]]]]}});let _=V,H;try{H=P.getLogger("eu-ets")}catch{}finally{}const Z={2024:.4,2025:.7,2026:1};var o5=(l=>(l[l.PROP5=.99]="PROP5",l[l.PROP10=.97]="PROP10",l[l.PROP15=.95]="PROP15",l[l.NONE=1]="NONE",l))(o5||{});const U={MDO_Factor:{co2:3.206,ch4:5e-5,n2o:18e-5,lcv:.0427,wtt:14.4,rwd:1},MGO_Factor:{co2:3.206,ch4:5e-5,n2o:18e-5,lcv:.0427,wtt:14.4,rwd:1},HFO_Factor:{co2:3.114,ch4:5e-5,n2o:18e-5,lcv:.0405,wtt:13.5,rwd:1},LFO_Factor:{co2:3.151,ch4:5e-5,n2o:18e-5,lcv:.041,wtt:13.2,rwd:1},LNG_OTTO_MEDIUM_SPD_Factor:{co2:2.75,ch4:0,n2o:11e-5,cj:3.1,lcv:.0491,wtt:18.5},LNG_OTTO_SLOW_SPD_Factor:{co2:2.75,ch4:0,n2o:11e-5,cj:1.7,lcv:.0491,wtt:18.5},LNG_DIESEL_SLOW_SPD_Factor:{co2:2.75,ch4:0,n2o:11e-5,cj:.2,lcv:.0491,wtt:18.5},LNG_LBSI_Factor:{co2:2.75,ch4:0,n2o:11e-5,cj:2.6,lcv:.0491,wtt:18.5},ETHANE_Factor:{co2:2.927,ch4:5e-5,n2o:18e-5,lcv:.0464,wtt:18.5},LPG_PROPANE_Factor:{co2:3,ch4:5e-5,n2o:18e-5,lcv:.046,wtt:7.8},LPG_BUTANE_Factor:{co2:3.03,ch4:5e-5,n2o:18e-5,lcv:.046,wtt:7.8},METHANOL_Factor:{co2:1.375,ch4:5e-5,n2o:18e-5,lcv:.0199,wtt:31.3},CUSTOM_Factor:{co2:3.114,ch4:5e-5,n2o:18e-5,lcv:.0405,wtt:13.5,E:90.389,rwd:1}},T={CO2:1,CH4:28,N2O:265},v={CO2:1,CH4:25,N2O:298};var x=(l=>(l.HFO="HFO",l.LFO="LFO",l.MGO="MGO",l.MDO="MDO",l.LNG_OTTO_MEDIUM_SPD="LNG_OTTO_MEDIUM_SPD",l.LNG_OTTO_SLOW_SPD="LNG_OTTO_SLOW_SPD",l.LNG_DIESEL_SLOW_SPD="LNG_DIESEL_SLOW_SPD",l.LNG_LBSI="LNG_LBSI",l.LPG_PROPANE="LPG_PROPANE",l.LPG_BUTANE="LPG_BUTANE",l.LNG="LNG",l.METHANOL="METHANOL",l.BIODIESEL="BIODIESEL",l.ETHANE="ETHANE",l))(x||{}),a5=(l=>(l.EU_MRV_Non_EU="Non EU",l.EU_MRV_Arrived_EU="Arrived EU",l.EU_MRV_Departed_EU="Departed EU",l.EU_MRV_Between_EU="Between EU",l))(a5||{});class ${static calculateMRV(e,o,t,r,n){let a=0,i=0;return t?n?(a=e*(1-t/100)*o+e*(t/100),i=((1-t/100)*o+t/100)/r):(a=e*(1-t/100)*o,i=(1-t/100)*o/r):(a=e*o,i=o/r),{mrv:a,ttw:i}}static calculateWtT(e){let o=0;return e.wtt?o=e.wtt:e.E&&e.lcv&&(o=e.E-e.co2/e.lcv),o}static calculateCO2MRV(e,o,t,r={}){const n=U[`${o}_Factor`]||U.CUSTOM_Factor,a=(t==null?void 0:t.co2)||n.co2,i=(t==null?void 0:t.cj)||n.cj,c=(t==null?void 0:t.lcv)||n.lcv,{mrv:s,ttw:u}=this.calculateMRV(e,a,i,c||0);return H==null||H.info("[%s] co2 emission: %j",r.requestId,{cons:e,type:o,factor:n,customFactor:t,mrv:s,ttw:u}),{mrv:Math.round(s*T.CO2*1e5)/1e5,mrvGWP:T.CO2,ttw:Math.round(u*v.CO2*1e5)/1e5,ttwGWP:v.CO2,fc:a,cj:i,lcv:c}}static calculateCH4MRV(e,o,t,r={}){const n=U[`${o}_Factor`]||U.CUSTOM_Factor,a=(t==null?void 0:t.ch4)||n.ch4,i=(t==null?void 0:t.cj)||n.cj,c=(t==null?void 0:t.lcv)||n.lcv,{mrv:s,ttw:u}=this.calculateMRV(e,a||0,i,c||0,!0);return H==null||H.info("[%s] ch4 emission: %j",r.requestId,{cons:e,type:o,factor:n,customFactor:t,mrv:s,ttw:u}),{mrv:Math.round(s*T.CH4*1e5)/1e5,mrvGWP:T.CH4,ttw:Math.round(u*v.CH4*1e5)/1e5,ttwGWP:v.CH4,fc:a,cj:i,lcv:c}}static calculateN2OMRV(e,o,t,r={}){const n=U[`${o}_Factor`]||U.CUSTOM_Factor,a=(t==null?void 0:t.n2o)||n.n2o,i=(t==null?void 0:t.cj)||n.cj,c=(t==null?void 0:t.lcv)||n.lcv,{mrv:s,ttw:u}=this.calculateMRV(e,a||0,i,c||0);return H==null||H.info("[%s] n2o emission: %j",r.requestId,{cons:e,type:o,factor:n,customFactor:t,mrv:s,ttw:u}),{mrv:Math.round(s*T.N2O*1e5)/1e5,mrvGWP:T.N2O,ttw:Math.round(u*v.N2O*1e5)/1e5,ttwGWP:v.N2O,fc:a,cj:i,lcv:c}}static calculateGHGMRV(e,o,t=64.56,r=2025,n={}){const a=this.calculateCO2MRV(e,o,n.factor,n),i=this.calculateCH4MRV(e,o,n.factor,n),c=this.calculateN2OMRV(e,o,n.factor,n),s=n.factor||U[`${o}_Factor`]||U.CUSTOM_Factor;let u=0,R=0;const f=this.getEUETSRatio(r);r>=2026?R=a.mrv+i.mrv+c.mrv:R=a.mrv,r>=2024?u=a.mrv+i.mrv+c.mrv:u=a.mrv,u=Math.round(u*1e5)/1e5,R=Math.round(R*1e5)/1e5;const m=Math.round(R*f*1e5)/1e5,A=Math.round(t*m*100)/100,N=Math.round(this.calculateWtT(s)*1e5)/1e5,w=Math.round((a.ttw+i.ttw+c.ttw)*1e5)/1e5,O=s.lcv||0,M=Math.round(e*O*1e5)/1e5;return{ghg:u,ghg2:R,euas:m,price:t,year:r,ratio:f,cost:A,energy:M,lcv:O,wtt:N,ttw:w,co2:a,ch4:i,n2o:c}}static calculateSingleGHGMRV(e,o,t=64.56,r=2025,n={}){const a=this.calculateCO2MRV(e,o,n.factor,n),i=this.calculateCH4MRV(e,o,n.factor,n),c=this.calculateN2OMRV(e,o,n.factor,n),s=n.factor||U[`${o}_Factor`]||U.CUSTOM_Factor;let u=0,R=0;const f=this.getEUETSRatio(r);r>=2026?R=a.mrv+i.mrv+c.mrv:R=a.mrv,r>=2024?u=a.mrv+i.mrv+c.mrv:u=a.mrv,u=Math.round(u*1e5)/1e5,R=Math.round(R*1e5)/1e5;const m=Math.round(R*f*1e5)/1e5,A=Math.round(t*m*100)/100;return{ghg:u,ghg2:R,euas:m,price:t,year:r,ratio:f,cost:A,co2:a,ch4:i,n2o:c,factor:s}}static calculateSingleFuelEU(e,o,t={}){const r=this.calculateCO2MRV(e,o,t.factor,t),n=this.calculateCH4MRV(e,o,t.factor,t),a=this.calculateN2OMRV(e,o,t.factor,t),i=t.factor||U[`${o}_Factor`]||U.CUSTOM_Factor,c=Math.round(this.calculateWtT(i)*1e5)/1e5,s=Math.round((r.ttw+n.ttw+a.ttw)*1e5)/1e5,u=i.lcv||0;return{energy:Math.round(e*u*1e5)/1e5,lcv:u,wtt:c,ttw:s,rawTtw:{co2:r.ttw,ch4:n.ttw,n2o:a.ttw},cons:e,factor:i}}static calculateMultiFuelEU(e,o=0,t=2025,r={}){o=o*3.6||0;const n={euets:{...T},fuelEU:{...v}},a=e.reduce((N,w)=>{var d;const O=w.customFactor||w.factor,M=this.calculateSingleFuelEU(w.cons||w.consumption||0,w.type,{requestId:r.requestId,factor:O}),G=N[w.type]||{energy:0,energy2:0,wttEmission:0,ttwEmission:0,wtwEmission:0,cons:0},L=Math.round((G.wttEmission+M.wtt*M.energy)*1e5)/1e5,b=Math.round((G.ttwEmission+M.ttw*M.energy)*1e5)/1e5,I=Math.round((G.wtwEmission+L+b)*1e5)/1e5;return N[w.type]={cons:Math.round((G.cons+M.cons)*1e5)/1e5,energy:Math.round((G.energy+M.energy)*1e5)/1e5,energy2:Math.round((G.energy2+M.energy*(((d=M.factor)==null?void 0:d.rwd)||1))*1e5)/1e5,wtt:M.wtt,wttEmission:L,ttw:M.ttw,ttwEmission:b,wtw:Math.round((M.wtt+M.ttw)*1e5)/1e5,wtwEmission:I,lcv:M.lcv,rawTtw:M.rawTtw,factor:M.factor,gwp:n},N},{}),i=r.fwind||1,c=Object.values(a).reduce((N,w)=>(N.wtt=Math.round((N.wtt+w.wtt)*1e5)/1e5,N.ttw=Math.round((N.ttw+w.ttw)*1e5)/1e5,N.energy=Math.round((N.energy+w.energy)*1e5)/1e5,N.energy2=Math.round((N.energy2+w.energy2)*1e5)/1e5,N.wtwEmission=Math.round((N.wtwEmission+w.wtwEmission)*1e5)/1e5,N.ttwEmission=Math.round((N.ttwEmission+w.ttwEmission)*1e5)/1e5,N.wttEmission=Math.round((N.wttEmission+w.wttEmission)*1e5)/1e5,N),{wtt:0,ttw:0,energy:0,energy2:0,wtwEmission:0,wttEmission:0,ttwEmission:0});let s=0,u=0,R=0,f=0,m=0,A=0;return t>=2025&&(s=Math.round(c.wttEmission/(c.energy2+o)*1e5)/1e5,u=Math.round(c.ttwEmission/(c.energy2+o)*1e5)/1e5,R=Math.round(i*(s+u)*1e5)/1e5,f=this.calculateGHGITarget(t),m=Math.round((f-R)*(c.energy+o)*1e8)/1e8,A=m<0?Math.round(Math.abs(m*1e6)/(R*41e3)*2400):0),{year:t,fwind:i,energy:c.energy,energy2:c.energy2,ek:o,wtwEmission:Math.round((c.wttEmission+c.ttwEmission)*1e5)/1e5,wttGhgi:s,ttwGhgi:u,actualGhgi:R,targetGhgi:f,balance:m,penalty:A,fuels:a}}static calculateMultiGHGMRV(e,o=2025,t=64.56,r={}){const n={euets:{...T},fuelEU:{...v}},a=this.getEUETSRatio(o),i=e.reduce((s,u)=>{const R=u.customFactor||u.factor,f=this.calculateSingleGHGMRV(u.cons||u.consumption||0,u.type,t,o,{requestId:r.requestId,factor:R}),m=s[u.type]||{ghg:0,ghg2:0,euas:0,cost:0,cons:0,co2:0,ch4:0,n2o:0,factor:R,gwp:n};return s[u.type]={co2:Math.round((m.co2+f.co2.mrv)*1e5)/1e5,ch4:Math.round((m.ch4+f.ch4.mrv)*1e5)/1e5,n2o:Math.round((m.n2o+f.n2o.mrv)*1e5)/1e5,ghg:Math.round((m.ghg+f.ghg)*1e5)/1e5,ghg2:Math.round((m.ghg2+f.ghg2)*1e5)/1e5,euas:Math.round((m.euas+f.euas)*1e5)/1e5,cost:Math.round((m.cost+f.cost)*1e5)/1e5,cons:Math.round((m.cons+(u.cons||u.consumption||0))*1e5)/1e5,factor:f.factor,gwp:n},s},{}),c=Object.values(i).reduce((s,u)=>(s.ghg=Math.round((s.ghg+u.ghg)*1e5)/1e5,s.ghg2=Math.round((s.ghg2+u.ghg2)*1e5)/1e5,s.euas=Math.round((s.euas+u.euas)*1e5)/1e5,s.cost=Math.round((s.cost+u.cost)*1e5)/1e5,s.co2=Math.round((s.co2+u.co2)*1e5)/1e5,s.ch4=Math.round((s.ch4+u.ch4)*1e5)/1e5,s.n2o=Math.round((s.n2o+u.n2o)*1e5)/1e5,s),{ghg:0,ghg2:0,euas:0,cost:0,co2:0,ch4:0,n2o:0});return{year:o,price:t,ratio:a,ghg:c.ghg,ghg2:c.ghg2,euas:c.euas,cost:c.cost,fuels:i}}static calculateGHGMRV2(e,o=2025,t=64.56,r={}){let n=0,a=0,i=0,c=0,s=0,u=0,R=0;const f=new Map;for(const I of e){const d=this.calculateGHGMRV(I.cons||I.consumption||0,I.type,t,o,{requestId:r.requestId,factor:I.customFactor||I.factor});n=Math.round((n+d.ghg)*1e5)/1e5,a=Math.round((a+d.ghg2)*1e5)/1e5,i=Math.round((i+d.euas)*1e5)/1e5,c=Math.round((c+d.cost)*1e5)/1e5,s=Math.round((s+d.energy)*1e5)/1e5,u=Math.round((u+d.wtt*d.energy)*1e5)/1e5,R=Math.round((R+d.ttw*d.energy)*1e5)/1e5;const E=f.get(I.type)||{cons:0,ghg:0,ghg2:0,co2:0,ch4:0,n2o:0,euas:0,cost:0,energy:0,wtt:0,ttw:{total:0,co2:0,ch4:0,n2o:0},lcv:0,wtw:0,type:I.type,wttEmission:0,ttwEmission:0,wtwEmission:0};E.cons=Math.round((E.cons+(I.cons||I.consumption||0))*1e5)/1e5,E.ghg=Math.round((E.ghg+d.ghg)*1e5)/1e5,E.ghg2=Math.round((E.ghg2+d.ghg2)*1e5)/1e5,E.co2=Math.round((E.co2+d.co2.mrv)*1e5)/1e5,E.ch4=Math.round((E.ch4+d.ch4.mrv)*1e5)/1e5,E.n2o=Math.round((E.n2o+d.n2o.mrv)*1e5)/1e5,E.euas=Math.round((E.euas+d.euas)*1e5)/1e5,E.cost=Math.round((E.cost+d.cost)*1e5)/1e5,E.energy=Math.round((E.energy+d.energy)*1e5)/1e5,E.lcv=d.lcv,E.co2fc=d.co2.fc,E.co2cj=d.co2.cj,E.ch4fc=d.ch4.fc,E.ch4cj=d.ch4.cj,E.n2ofc=d.n2o.fc,E.n2ocj=d.n2o.cj,E.co2MRVGWP=d.co2.mrvGWP,E.ch4MRVGWP=d.ch4.mrvGWP,E.n2oMRVGWP=d.n2o.mrvGWP,E.co2TTWGWP=d.co2.ttwGWP,E.ch4TTWGWP=d.ch4.ttwGWP,E.n20TTWGWP=d.n2o.ttwGWP,E.wtt=d.wtt,E.ttw.total=d.ttw,E.ttw.co2=d.co2.ttw,E.ttw.ch4=d.ch4.ttw,E.ttw.n2o=d.n2o.ttw,E.wtw=Math.round((d.wtt+d.ttw)*1e5)/1e5,E.wttEmission=Math.round((E.wttEmission+d.wtt*d.energy)*1e5)/1e5,E.ttwEmission=Math.round((E.ttwEmission+d.ttw*d.energy)*1e5)/1e5,E.wtwEmission=Math.round((E.wttEmission+E.ttwEmission)*1e5)/1e5,f.set(I.type,E)}const m=this.getEUETSRatio(o),A=Array.from(f.values()),N=r.fwind||1;let w=0,O=0,M=0,G=0,L=0,b=0;if(o>=2025){w=Math.round(u/s*1e5)/1e5,O=Math.round(R/s*1e5)/1e5,M=Math.round(N*(w+O)*1e5)/1e5,G=this.calculateGHGITarget(o),L=Math.round((G-M)*s*1e8)/1e8;const I=L*1e6;b=I<0?Math.round(Math.abs(I)/(M*41e3)*2400):0}return{year:o,price:t,fwind:N,ratio:m,ghg:n,ghg2:a,euas:i,cost:c,energy:s,wtwEmission:Math.round((u+R)*1e5)/1e5,wttGhgi:w,ttwGhgi:O,actualGhgi:M,targetGhgi:G,balance:L,penalty:b,fuels:A}}static getEUETSRadio(e){return e>2026?1:e>=2024&&Z[e]||0}static getEUETSRatio(e){return e>2026?1:e>=2024&&Z[e]||0}static calculateGHGITarget(e){let o=91.16;return e>=2025&&(e>=2050?o=o*(1-.8):e>=2045?o=o*(1-.62):e>=2040?o=o*(1-.31):e>=2035?o=o*(1-.145):e>=2030?o=o*(1-.06):o=o*(1-.02)),Math.round(o*1e5)/1e5}static async calculateEUMRVLegCategory(e,o,t=!1,r={}){let n="Non EU";const a={departure:0,destination:0,atSea:0};if(e&&o){let i=await _.isInEU(e,r),c=await _.isInEU(o,r);t&&(i=i&&!await _.isFuelEUExclude(e,r),c=c&&!await _.isFuelEUExclude(o,r)),i&&c?(n="Between EU",a.departure=1,a.destination=1,a.atSea=1):i?(n="Departed EU",a.departure=1,a.destination=0,a.atSea=.5):c&&(n="Arrived EU",a.departure=0,a.destination=1,a.atSea=.5)}return{category:n,areaRate:a}}static async calculateEUMRVCategory(e,o,t={}){let r="Non EU";const n={departure:0,destination:0,atSea:0};if(e&&o){const a=await _.isInEU(e,t),i=await _.isInEU(o,t);a&&i?(r="Between EU",n.departure=1,n.destination=1,n.atSea=1):a?(r="Departed EU",n.departure=1,n.destination=0,n.atSea=.5):i&&(r="Arrived EU",n.departure=0,n.destination=1,n.atSea=.5)}return{category:r,areaRate:n}}static async calculateFuelEUCategory(e,o,t={}){let r="Non EU";const n={departure:0,destination:0,atSea:0};if(e&&o){let a=await _.isInEU(e,t),i=await _.isInEU(o,t);a=a&&!await _.isFuelEUExclude(e,t),i=i&&!await _.isFuelEUExclude(o,t),a&&i?(r="Between EU",n.departure=1,n.destination=1,n.atSea=1):a?(r="Departed EU",n.departure=1,n.destination=0,n.atSea=.5):i&&(r="Arrived EU",n.departure=0,n.destination=1,n.atSea=.5)}return{category:r,areaRate:n}}}let p;try{p=P.getLogger("cii")}catch{}finally{}var r5=(l=>(l.BULK_CARRIER="BULK CARRIER",l.GAS_CARRIER="GAS CARRIER",l.TANKER="TANKER",l.CONTAINER_SHIP="CONTAINER SHIP",l.GENERAL_CARGO_SHIP="GENERAL CARGO SHIP",l.REFRIGERATED_CARGO_CARRIER="REFRIGERATED CARGO CARRIER",l.COMBINATION_CARRIER="COMBINATION CARRIER",l.LNG_CARRIER="LNG CARRIER",l.RO_RO_CARGO_SHIP="RO-RO CARGO SHIP",l.RO_RO_CARGO_VEHICLE_SHIP="RO-RO CARGO VEHICLE SHIP",l.RO_RO_PASSENGER_SHIP="RO-RO PASSENGER SHIP",l.CRUISE_PASSENGER_SHIP="CRUISE PASSENGER SHIP",l))(r5||{});class D{static calculateCapacity(e,o={}){var a;const t=((a=e.type)==null?void 0:a.toUpperCase())||"BULK CARRIER",r=["BULK CARRIER","GAS CARRIER","TANKER","CONTAINER SHIP","GENERAL CARGO SHIP","REFRIGERATED CARGO CARRIER","LNG CARRIER","COMBINATION CARRIER"],n=["RO-RO CARGO SHIP","RO-RO CARGO VEHICLE SHIP","RO-RO PASSENGER SHIP","CRUISE PASSENGER SHIP"];return r.includes(t)?(p.info("[%s] use dwt as the vessel capacity: %j",o.requestId,e),e.dwt):n.includes(t)?(p.info("[%s] use gt as the vessel capacity: %j",o.requestId,e),e.gt):(p.info("[%s] use max(gt,dwt) as the vessel capacity: %j",o.requestId,e),e.dwt>e.gt?e.dwt:e.gt)}static calculateReferCII(e,o={}){var c,s;const t=D.calculateCapacity(e,o),r=((s=(c=e.type)==null?void 0:c.trim())==null?void 0:s.toUpperCase())||"BULK CARRIER";let n=0,a=0;r==="BULK CARRIER"?(n=4745,a=.622):r==="GAS CARRIER"?t>=65e3?(n=Math.pow(14405,7),a=2.071):(n=8104,a=.639):r==="TANKER"?(n=5247,a=.61):r==="CONTAINER SHIP"?(n=1984,a=.489):r==="GENERAL CARGO SHIP"?t>=2e4?(n=31948,a=.792):(n=588,a=.3885):r==="REFRIGERATED CARGO CARRIER"?(n=4600,a=.557):r==="COMBINATION CARRIER"?(n=5119,a=.622):r==="LNG CARRIER"?t>=1e5?(n=9.827,a=0):(n=Math.pow(14479,10),a=2.673):r==="RO-RO CARGO VEHICLE SHIP"?t<3e4?(n=330,a=.329):(n=3627,a=.59):r==="RO-RO CARGO SHIP"?(n=1967,a=.485):r==="RO-RO PASSENGER SHIP"?(n=2023,a=.46):r==="CRUISE PASSENGER SHIP"&&(n=930,a=.383);const i=Math.round(n*Math.pow(t,-a)*1e3)/1e3;return p.info("[%s] calculate refer cii (%d) with props: %j ",o.requestId,i,e),{referCii:i,referYear:2019}}static calculateRequiredCII(e,o,t={}){let r=0;o===2020?r=1:o===2021?r=2:o===2022?r=3:o===2023?r=5:o===2024?r=7:o===2025?r=9:o===2026&&(r=11);const n=Math.round((1-r/100)*e*1e3)/1e3;return p.info("[%s] calculate required cii (%d) with: %j",t.requestId,n,{year:o,ref:e}),{requiredCii:n,z:r,year:o,ref:e}}static calculateCO2(e,o,t={}){const{mrv:r}=$.calculateCO2MRV(e,o,t.customFactor,t);return r*Math.pow(10,6)}static calculateAttainedCII(e,o,t,r={}){const n=D.calculateCapacity(e,r),a=n*t,i=a?Math.round(o/a*1e3)/1e3:0;return p.info("[%s] calculate attained cii (%d) with: %j",r.requestId,i,{co2:o,distance:t,capacity:n}),{attainedCii:i,w:a,c:o}}static calculateGrade(e,o,t,r={}){var w,O;const n=D.calculateCapacity(e,r);let a=0,i=0,c=0,s=0;const u=((O=(w=e.type)==null?void 0:w.trim())==null?void 0:O.toUpperCase())||"BULK CARRIER";u==="BULK CARRIER"?(a=.86,i=.94,c=1.06,s=1.18):u==="GAS CARRIER"?n>=65e3?(a=.81,i=.91,c=1.12,s=1.44):(a=.85,i=.95,c=1.06,s=1.25):u==="TANKER"?(a=.82,i=.93,c=1.08,s=1.28):u==="CONTAINER SHIP"?(a=.83,i=.94,c=1.07,s=1.19):u==="GENERAL CARGO SHIP"?(a=.83,i=.94,c=1.06,s=1.19):u==="REFRIGERATED CARGO CARRIER"?(a=.78,i=.91,c=1.07,s=1.2):u==="COMBINATION CARRIER"?(a=.87,i=.96,c=1.06,s=1.14):u==="LNG CARRIER"?n>=1e5?(a=.89,i=.98,c=1.06,s=1.13):(a=.78,i=.92,c=1.1,s=1.37):u==="RO-RO CARGO VEHICLE SHIP"?(a=.86,i=.94,c=1.06,s=1.16):u==="RO-RO CARGO SHIP"?(a=.76,i=.89,c=1.08,s=1.27):u==="RO-RO PASSENGER SHIP"?(a=.76,i=.92,c=1.14,s=1.3):u==="CRUISE PASSENGER SHIP"?(a=.87,i=.95,c=1.06,s=1.16):(a=.86,i=.94,c=1.06,s=1.18);let R;const f=o*a,m=o*i,A=o*c,N=o*s;return t<=f?R="A":t<=m?R="B":t<=A?R="C":t<=N?R="D":R=a?"E":"-",p.info("[%s] calculate level (%s) with: %j",r.requestId,R,{...e,requiredCii:o,attainedCii:t,capacity:n,p1:f,p2:m,p3:A,p4:N}),{grade:R,attainedCii:t,requiredCii:o,capacity:n}}static calculateCII(e,o,t,r,n={}){const{attainedCii:a}=D.calculateAttainedCII(e,t,r,n),{referCii:i,referYear:c}=D.calculateReferCII(e,n),{requiredCii:s,z:u}=D.calculateRequiredCII(i,o,n),{grade:R,capacity:f}=D.calculateGrade(e,s,a,n);return{grade:R,attainedCii:a,requiredCii:s,referYear:c,year:o,z:u,capacity:f}}}var i5=(l=>(l.Loading="Loading",l.Discharging="Discharging",l.Bunkering="Bunkering",l.Delivered="Delivered",l.ReDelivered="ReDelivered",l))(i5||{}),c5=(l=>(l.HSFO="HSFO",l.LSFO="LSFO",l.VLSFO="VLSFO",l.ULSFO="ULSFO",l.MGO="MGO",l.LSMGO="LSMGO",l.MDO="MDO",l))(c5||{});const s5={HSFO:x.HFO,LSFO:x.HFO,VLSFO:x.HFO,ULSFO:x.LFO,MGO:x.MGO,LSMGO:x.MGO,MDO:x.MDO};class t5{static calculateCargoFinancials(e){const o=Number(e.quantity)||0,t=Number(e.grossFreightRate)||0,r=o*t,n=(Number(e.addComm)||0)+(Number(e.brokComm)||0)+(Number(e.frtTax)||0),a=t*(1-n/100);return{revenue:Number(r.toFixed(2)),netFreight:Number(a.toFixed(2))}}static calculateLegs(e,o){if(!e||e.length<2)return[];const t=[];let r=!1;return e.forEach((n,a)=>{if(a>0){const c=e[a-1].port,s=n.port,u=Number(n.distanceTotal)||0,R=Number(n.distanceSeca)||0,f=Math.max(0,u-R),m=n.speed||12,N=1+(Number(n.wf)||0)/100,w=(K,j)=>j<=0?0:K/(j*24)*N,O=w(f,m),M=w(R,m),G=O+M,L=Number(n.inPortDaysWork)||0,b=Number(n.inPortDaysIdle)||0,I=L+b,d=!!n.euScope,E=!!e[a-1].euScope;t.push({from:c,to:s,distance:Number(u.toFixed(2)),speed:Number(m.toFixed(2)),atSeaDays:{total:Number(G.toFixed(2)),nonSeca:Number(O.toFixed(2)),seca:Number(M.toFixed(2))},inPortDays:{total:Number(I.toFixed(2)),work:Number(L.toFixed(2)),idle:Number(b.toFixed(2))},_internal:{dayNonSeca:O,daySeca:M,dayWork:L,dayIdle:b,distNonSeca:f,distSeca:R,euScope:d,isPrevEu:E,activity:n.activity,portCosts:Number(n.portCosts)||0,isLaden:r}})}let i=r;if(n.activity==="Loading")i=!0;else if(n.activity==="Discharging"){const c=e[a+1];c&&c.activity==="Discharging"?i=!0:i=!1}r=i}),t}static calculate(e,o,t,r){var g5,f5;const n=t5.calculateLegs(e,t);let a=0,i=0,c=0,s=0,u=0,R=0,f=0;const m=new Map,A=[],N=(g,h,C)=>{if(h>0){const y=m.get(g)||0;m.set(g,y+h);const F=s5[g]||g;A.push({type:F,cons:h,areaRate:C})}},w=(g,h,C)=>{!g||h<=0||(g.main&&N(g.main.type,h*g.main.cons,C),g.aux&&N(g.aux.type,h*g.aux.cons,C))};if(e&&e.length>0){const g=e[0],h=Number(g.inPortDaysWork)||0,C=Number(g.inPortDaysIdle)||0;c+=h,s+=C,f+=Number(g.portCosts)||0;const y=g.euScope?1:0;if(h>0&&((g5=t==null?void 0:t.consumption)!=null&&g5.working)){const F=t.consumption.working.nonSeca||t.consumption.working.seca;w(F,h,y)}if(C>0&&((f5=t==null?void 0:t.consumption)!=null&&f5.idle)){const F=t.consumption.idle.nonSeca||t.consumption.idle.seca;w(F,C,y)}}n.forEach(g=>{var F,J,w5,m5;const h=g._internal;a+=h.dayNonSeca,i+=h.daySeca,c+=h.dayWork,s+=h.dayIdle,u+=h.distNonSeca,R+=h.distSeca,f+=h.portCosts;const C=h.isLaden?(F=t==null?void 0:t.consumption)==null?void 0:F.laden:(J=t==null?void 0:t.consumption)==null?void 0:J.ballast;if(C){let W=0;h.euScope&&h.isPrevEu?W=1:(h.euScope||h.isPrevEu)&&(W=.5),h.dayNonSeca>0&&w(C.nonSeca,h.dayNonSeca,W),h.daySeca>0&&w(C.seca,h.daySeca,W)}const y=h.euScope?1:0;if(h.dayWork>0&&((w5=t==null?void 0:t.consumption)!=null&&w5.working)){const W=t.consumption.working.nonSeca||t.consumption.working.seca;w(W,h.dayWork,y)}if(h.dayIdle>0&&((m5=t==null?void 0:t.consumption)!=null&&m5.idle)){const W=t.consumption.idle.nonSeca||t.consumption.idle.seca;w(W,h.dayIdle,y)}});const O=a+i+c+s,M=u+R;let G=0,L=0,b=0;const I=[];o.forEach(g=>{const h=Number(g.quantity)||0,C=Number(g.grossFreightRate)||0;G+=h;const y=h*C;L+=y;const F=(Number(g.addComm)||0)+(Number(g.brokComm)||0)+(Number(g.frtTax)||0),J=y*(1-F/100);b+=J,I.push({cargoName:g.cargoName,quantity:h,grossFreight:Number(y.toFixed(2)),netFreight:Number(J.toFixed(2))})});let d=0;const E=[];for(const[g,h]of m.entries()){const C=t.bunkerPrice[g]||0,y=h*C;d+=y,E.push({type:g,cons:Number(h.toFixed(2)),price:C,cost:Number(y.toFixed(2))})}let K=0,j=0,Y=0,u5=0;if(r.includeEuaCost||r.includeFuelEuPenalty){const g=$.calculateGHGMRV2(A,r.reportYear,r.euaPrice);if(r.includeEuaCost){u5=g.euas,j=g.cost;const h=r.exchangeRate||1;j=j*h}if(r.includeFuelEuPenalty){Y=g.penalty;const h=r.exchangeRate||1;Y=Y*h}K=j+Y}const l5=Number(t.ballastBonus)||0,d5=(Number(t.canalCosts)||0)+(Number(t.extraInsurance)||0)+(Number(t.loadDischCosts)||0)+(Number(t.miscCosts)||0)+(Number(t.additionalCosts)||0),E5=d5+l5,z=d+f+E5+K,e5=(Number(t.comm)||0)/100,S5=O>0?O:1,M5=(b-z)/S5/(1-e5),h5=t.dailyHire*O,n5=t.dailyHire*(1-e5)*O;let R5=0;o.forEach(g=>{const h=(g.addComm||0)+(g.brokComm||0)+(g.frtTax||0);R5+=(g.quantity||0)*h});const O5=G>0?R5/G/100:0,I5=(n5+z)/(G||1)/(1-O5),C5=b-z-h5,G5=b-z-n5;return{legs:n.map(g=>{const{_internal:h,...C}=g;return C}),cargos:I,vessel:{dwt:Number((t.dwt||0).toFixed(2)),builtYear:Number((t.builtYear||0).toFixed(0)),loa:Number((t.loa||0).toFixed(2)),beam:Number((t.beam||0).toFixed(2)),dailyHire:Number(t.dailyHire.toFixed(2)),netHireDaily:Number((t.dailyHire*(1-e5)).toFixed(2)),ballastBonus:Number(l5.toFixed(2)),otherCosts:Number(d5.toFixed(2)),consumption:t.consumption},voyageSummary:{durationNonSecaSea:Number(a.toFixed(2)),durationSecaSea:Number(i.toFixed(2)),durationWork:Number(c.toFixed(2)),durationIdle:Number(s.toFixed(2)),totalDuration:Number(O.toFixed(2)),distanceNonSeca:Number(u.toFixed(2)),distanceSeca:Number(R.toFixed(2)),distanceTotal:Number(M.toFixed(2))},bunkerCosts:{items:E,totalCost:Number(d.toFixed(2))},carbonCosts:{euas:Number(u5.toFixed(2)),euaCost:Number(j.toFixed(2)),fuelEuPenalty:Number(Y.toFixed(2)),totalCost:Number(K.toFixed(2))},financials:{freightTons:G,grossFreight:Number(L.toFixed(2)),netFreight:Number(b.toFixed(2)),portCosts:Number(f.toFixed(2)),fixCosts:Number(E5.toFixed(2)),totalCosts:Number(z.toFixed(2)),tce:Number(M5.toFixed(2)),grossHire:Number(h5.toFixed(2)),netHire:Number(n5.toFixed(2)),voyEquiv:Number(I5.toFixed(2)),grossProfit:Number(C5.toFixed(2)),netProfit:Number(G5.toFixed(2))}}}}S.Activity=i5,S.BunkerType=c5,S.BunkerTypeToFuelType=s5,S.CIIHelper=D,S.EUMRVLegCategory=a5,S.EUTESHelper=$,S.EuBoundHelper=_,S.FreightHelper=t5,S.FuelType=x,S.GHGEmissionFactor=U,S.GWP_AR4=v,S.GWP_AR5=T,S.VesselType=r5,S.WindRewardFactor=o5,S.YearRatio=Z,Object.defineProperty(S,Symbol.toStringTag,{value:"Module"})});