PageSourceSearch

https://app.ruminati.com.au/assets/adcc-CS2y_Pni.js

js ruminati.com.au collected 2026-10-05 19:31:19 UTC 15,506 bytes, 2 lines download raw bytes

1import{ae as _}from"./index-GiHDugGH.js";import{R as G}from"./shared-DCxKIkno.js";import{p as v}from"./numbers-B-ZQyCwX.js";import"./ant-design-vue-DQtSHzVW.js";const W=["5","6"],H=/^'?(.*?)'?!\$?([A-Z]+)\$?(\d+)$/,$=.46;function F(e){return e?typeof e.w=="string"?e.w.trim():typeof e.v=="string"?e.v.trim():typeof e.v=="number"?String(e.v):"":""}function w(e){if(!e)return null;if(typeof e.v=="number")return e.v;if(typeof e.v=="string"&&e.v!==""){const r=Number(e.v);return Number.isFinite(r)?r:null}return null}function I(e){return e.Sheets.Introduction}function A(e){return e.Sheets["Your Farm"]?"Your Farm":e.Sheets["Baseline farm"]?"Baseline farm":null}function B(e){const r=I(e);if(!r)return null;const t=F(r.A3).match(/Version\s+([0-9]+(?:\.[0-9]+)?)/i);if(t)return t[1];const n=F(r.G7).match(/Version\s+([0-9]+(?:\.[0-9]+)?)/i);return n?n[1]:null}function q(e){return!!(I(e)&&A(e))}const T=[{classId:1,headcountRange:"CowMilkerNumber",liveweightRange:"CowLiveweightKg",dmdRange:"FeedGrazedTotalDigestabilityPercent",crudeProteinRange:"FeedGrazedTotalProteinPercent"},{classId:2,headcountRange:"Rising2HeiferNumber",liveweightRange:"Rising2HeiferLiveweightKg",liveweightGainRange:"Rising2HeiferLwtGainKgPerDay",dmdRange:"FeedFedOtherStockDigestibilityPercent",crudeProteinRange:"FeedFedOtherStockProteinPercent"},{classId:3,headcountRange:"Rising1HeiferNumber",liveweightRange:"Rising1HeiferLiveweightKg",liveweightGainRange:"Rising1HeiferLwtGainKgPerDay",dmdRange:"FeedFedOtherStockDigestibilityPercent",crudeProteinRange:"FeedFedOtherStockProteinPercent"},{classId:4,headcountRange:"BullNumber",liveweightRange:"BullLiveweightKg",dmdRange:"FeedFedOtherStockDigestibilityPercent",crudeProteinRange:"FeedFedOtherStockProteinPercent"},{classId:5,headcountRange:"OtherLivestockNumber",liveweightRange:"OtherLivestockLiveweightKg",liveweightGainRange:"OtherLivestockLwtGainKgPerDay",dmdRange:"FeedFedOtherStockDigestibilityPercent",crudeProteinRange:"FeedFedOtherStockProteinPercent"},{classId:6,headcountRange:"OtherLivestockNotImportedNumber",liveweightRange:"OtherLivestockNotImportedLiveweightKg",liveweightGainRange:"OtherLivestockNotImportedLwtGainKgPerDay",dmdRange:"FeedFedOtherStockDigestibilityPercent",crudeProteinRange:"FeedFedOtherStockProteinPercent"}],Y=[{classId:1,numberSoldRange:"CowSalesNumber",avgLiveweightRange:"CowSalesLiveweight"},{classId:2,numberSoldRange:"Rising2HeiferSalesNumber",avgLiveweightRange:"Rising2HeiferSalesLiveweight"},{classId:3,numberSoldRange:"Rising1HeiferSalesNumber",avgLiveweightRange:"Rising1HeiferSalesLiveweight"},{classId:4,numberSoldRange:"BullSalesNumber",avgLiveweightRange:"BullSalesLiveweight"},{classId:5,numberSoldRange:"OtherLivestockSalesNumber",avgLiveweightRange:"OtherLivestockSalesLiveweight"},{classId:6,numberSoldRange:"OtherLivestockNotImportedSalesNumber",avgLiveweightRange:"OtherLivestockNotImportedSalesLiveweight"},{classId:7,numberSoldRange:"Dbcc_CalfSalesNumber",avgLiveweightRange:"CalfSalesLiveweight"}];function z(e){const r=e.Workbook?.Names;return Array.isArray(r)?r.filter(t=>typeof t?.Name=="string"&&typeof t?.Ref=="string").map(t=>({name:t.Name,ref:t.Ref})):[]}function b(e,r){const t=r.match(H);if(!t)return null;const n=t[1],s=t[2],i=t[3],o=e.Sheets[n];if(!o)return null;const c=`${s}${i}`;return o[c]??null}function y(e){if(!q(e))throw Error("Does not appear to be an ADCC spreadsheet we support.");const r=B(e),t=r?.split(".")[0];if(!r||!t||!W.includes(t))throw Error(`ADCC version ${r??"unknown"} is not currently supported.`);const n=A(e),s=z(e),i=new Map(s.map(d=>[d.name,d.ref]));function o(d){const u=i.get(d);return!u||u.includes(":")?null:u}function c(d){const u=o(d);if(!u)return null;const g=b(e,u);return F(g??void 0)||null}function l(d){const u=o(d);if(!u)return null;const g=b(e,u);return w(g??void 0)}function m(d,u){const g=e.Sheets[d];return g?w(g[u]??void 0):null}function h(d,u){const g=e.Sheets[d];return g?F(g[u]??void 0):""}return{versionNumber:r,mainSheetName:n,namedRanges:s,getNamedTextValue:c,getNamedNumericValue:l,getNamedRangeRef:o,getSheetCellNumericValue:m,getSheetCellText:h}}function p(e){return{spring:e,summer:e,autumn:e,winter:e}}function a(e,r){return r?e.getNamedNumericValue(r)??0:0}function Z(e,r){return e.getNamedTextValue(r)??""}function f(e){return Math.min(1,Math.max(0,e))}function N(e,r){for(const t of r){const n=e.getNamedNumericValue(t);if(n!==null)return n}return 0}const j=[{kgDmRange:"FeedGrazedTotalKgDM",dmdRange:"FeedGrazedTotalDigestabilityPercent",cpRange:"FeedGrazedTotalProteinPercent"},{kgDmRange:"FeedFedConcUsableAreaKgDM",dmdRange:"FeedFedConcUsableAreaDigestabilityPercent",cpRange:"FeedFedConcUsableAreaProteinPercent"},{kgDmRange:"FeedFedSilageUsableAreaKgDM",dmdRange:"FeedFedSilageUsableAreaDigestabilityPercent",cpRange:"FeedFedSilageUsableAreaProteinPercent"},{kgDmRange:"FeedFedHayUsableAreaKgDM",dmdRange:"FeedFedHayUsableAreaDigestabilityPercent",cpRange:"FeedFedHayUsableAreaProteinPercent"},{kgDmRange:"FeedFedByProductsUsableAreaKgDM",dmdRange:"FeedFedByProductsUsableAreaDigestabilityPercent",cpRange:"FeedFedByProductsUsableAreaProteinPercent"},{kgDmRange:"FeedFedOtherUsableAreaKgDM",dmdRange:"FeedFedOtherUsableAreaDigestabilityPercent",cpRange:"FeedFedOtherUsableAreaProteinPercent"}];function C(e,r){let t=0,n=0;for(const s of j){const i=a(e,s.kgDmRange);if(i<=0)continue;t+=i;const o=a(e,s[r]);o>0&&(n+=i*o)}return t>0?n/t:0}function Q(e){const r=[];return T.forEach(t=>{const n=a(e,t.headcountRange);if(n<=0)return;const s=t.classId===1?C(e,"dmdRange"):a(e,t.dmdRange),i=t.classId===1?C(e,"cpRange"):a(e,t.crudeProteinRange);r.push({stableId:null,classId:t.classId,headcount:p(n),liveweight:p(a(e,t.liveweightRange)||(t.classId===4?800:0)),liveweightGain:p(a(e,t.liveweightGainRange??"")),dryMatterDigestability:p(s),crudeProteinIntake:p(i)})}),r}function J(e){const r=a(e,"MilkLitresFarmTotal"),t=a(e,"CowMilkerNumber");if(r<=0||t<=0)return p(0);const n=v(r/t/365,1);return p(n)}function X(e){const r=[];return Y.forEach(t=>{const n=a(e,t.numberSoldRange);n<=0||r.push({classId:t.classId,numberSold:n,avgLiveweight:a(e,t.avgLiveweightRange),stillWeaningAtSale:t.classId===7?!Z(e,"CalvesSoldWhen").includes("post-weaning"):void 0})}),r}function x(e){switch(e.classId){case 1:return"milkingCows";
1case 2:return"heifersOver1";case 3:return"heifersUnder1Weaned";case 4:return"bullsOver1";case 5:return"otherUnder1Weaned";case 6:return"bullsOver1";case 7:return e.stillWeaningAtSale?"heifersPreWeaned":"otherUnder1Weaned"}}function ee(e){const r=k(e);return{milkProducedLitres:a(e,"MilkLitresFarmTotal"),fatPercent:r.milkFatPercentage||void 0,proteinPercent:r.milkProteinPercentage||void 0,sales:r.sales.map(t=>({mobType:x(t),numberSold:t.numberSold,averageLiveweightKg:t.avgLiveweight})),metadata:{formVersion:"v1"}}}function k(e){return{milkProduction:J(e),sales:X(e),milkFatPercentage:a(e,"MilkFatPercentAnnual"),milkProteinPercentage:a(e,"MilkProteinPercentAnnual")}}function M(e){const r=N(e,["FeedConcPurchasedTDM","FeedFedConcPurchasedTDM"]),t=e.getNamedNumericValue("FeedHayPurchasedTDM")!==null?a(e,"FeedHayPurchasedTDM")+a(e,"FeedSilagePurchasedTDM"):a(e,"FeedFedLegumeLucerneHayPurchasedTDM")+a(e,"FeedFedPastureCerealHayTDM");return{grain:r*1.11,hay:t*1.14,cottonSeed:0}}function D(e,r,t){return e<=0||r<=0||t<=0?0:e*r*(t/100)/1e3/$}function L(e,r,t){return e<=0||r<=0||t<=0?0:e*r*((100-t)/100)/e}function O(e,r,t){const n=(e.getNamedTextValue("FertiliserRateUnits")??"").toLowerCase().includes("tonnes");let s=N(e,["FertiliserPasturesNArea","FertiliserPasturesPKSLimeArea"]),i=N(e,["FertiliserCropsNArea","FertiliserCropsPKSLimeArea"]);t?.cropAreaHa&&t.cropAreaHa>0&&(i=t.cropAreaHa),t?.pastureAreaHa&&t.pastureAreaHa>0&&(s=t.pastureAreaHa);const o=a(e,"FertiliserPasturesNRate"),c=a(e,"FertiliserCropsNRate"),l=n&&s>0?v(o*1e3/s,1):n?0:o,m=n&&i>0?v(c*1e3/i,1):n?0:c,h=a(e,"FertiliserUreaPercent"),d=a(e,"FertiliserPasturesLimeRate"),u=a(e,"FertiliserCropsLimeRate"),g=a(e,"FertiliserPasturesPRate"),R=a(e,"FertiliserCropsPRate"),E={areaImprovedPasture:s,nFertiliserPasture:L(s,l,h),ureaFertiliserPasture:D(s,l,h),areaCropped:0,nFertiliserCrops:0,ureaFertiliserCrops:0},K={areaCropped:i,nFertiliserCrops:L(i,m,h),ureaFertiliserCrops:D(i,m,h),areaImprovedPasture:0,nFertiliserPasture:0,ureaFertiliserPasture:0};return{limestone:n?d+u:(s*d+i*u)/1e3,singleSuperphosphate:(n?g+R:(s*g+i*R)/1e3)/.09,irrigated:K,dryland:E,limestoneFraction:1,herbicide:0,herbicidePesticide:0,otherNfertilisers:[]}}function V(e){const r=e.getNamedNumericValue("DieselUseFarm")!==null?a(e,"DieselUseFarm")+a(e,"DieselUseContractors"):a(e,"DieselUse"),t=a(e,"PetrolUseFarm")+a(e,"PetrolUseContractors"),n=a(e,"ElectricityPurchased"),s=a(e,"ElectricityPurchasedRenewablePercent"),i=s>0?s/100:0,c=e.getNamedTextValue("ElectricitySourceId")?.toLowerCase()==="renewable"?1:0;return{diesel:r,petrol:t,electricityUsage:n,percentRenewables:Math.max(i,c)}}function re(e){const{mainSheetName:r}=e;for(let t=80;t<=140;t++)if(e.getSheetCellText(r,`C${t}`).includes("Anaerobic lagoon")){const n=t+1;if(e.getSheetCellNumericValue(r,`C${n}`)!==null)return{milkersRow:String(n),otherRow:String(n+1)}}return null}function U(e){const{mainSheetName:r}=e,t=re(e),n=t?.milkersRow??"91",s=t?.otherRow??"92",i=f((e.getSheetCellNumericValue(r,`G${n}`)??0)/100),o=f((e.getSheetCellNumericValue(r,`C${n}`)??0)/100),c=f((e.getSheetCellNumericValue(r,`D${n}`)??0)/100),l=f((e.getSheetCellNumericValue(r,`E${n}`)??0)/100),m=f((e.getSheetCellNumericValue(r,`F${n}`)??0)/100),h=f((e.getSheetCellNumericValue(r,`G${s}`)??100)/100),d=f((e.getSheetCellNumericValue(r,`C${s}`)??100)/100),u=f((e.getSheetCellNumericValue(r,`D${s}`)??100)/100),g=f((e.getSheetCellNumericValue(r,`E${s}`)??100)/100),R=f((e.getSheetCellNumericValue(r,`F${s}`)??100)/100);return{milkingPasture:i,milkingLagoon:o,milkingSumpDispersal:c,milkingDrainToPaddock:l,milkingSolidStorage:m,otherPasture:h,otherLagoon:d,otherSumpDispersal:u,otherDrainToPaddock:g,otherSolidStorage:R}}const te={"South West WA":1,"Northern coastal NSW":10,"Southern coastal NSW":11,"Central Inland & Riverina NSW":15,"North East TAS":17,"Central North & Midlands TAS":19,"Southern & Derwent Valley TAS":20,"North West TAS":22,"South East SA":23,"Murray River SA":24,"Mallee region VIC":28,"Northern region VIC":30,"North East region VIC":31,"East Gippsland":32,"South & West Gippsland":33,"South West VIC":35,"Northern QLD":36,"Southern QLD":40};function ne(e){const r=e.getNamedTextValue("PlantationDataMethodId");if(!r||r.toLowerCase().includes("no estimate"))return[];const t=a(e,"PlantationArea");if(t<=0)return[];const n=a(e,"PlantationAge");
1if(r.toLowerCase().includes("based on data")){const s=e.getNamedTextValue("PlantationRegionId"),i=e.getNamedTextValue("PlantationTypeId"),o=s?te[s]:void 0;return[{species:o!==void 0&&i?G[o]?.find(l=>l.name===i)?.value:void 0,soilType:1,age:n,area:t}]}return[]}function he(e){const r=y(e),t=(r.getNamedTextValue("FertiliserRateUnits")??"").toLowerCase().includes("tonnes"),n=T.some(l=>a(r,l.headcountRange)>0);if(!t)return{needsCropArea:!1,needsPastureArea:!1,hasDairyCattleHeadcounts:n};const s=a(r,"FertiliserCropsNRate"),i=N(r,["FertiliserCropsNArea","FertiliserCropsPKSLimeArea"]),o=a(r,"FertiliserPasturesNRate"),c=N(r,["FertiliserPasturesNArea","FertiliserPasturesPKSLimeArea"]);return{needsCropArea:i<=0&&s>0,needsPastureArea:c<=0&&o>0,hasDairyCattleHeadcounts:n}}async function fe(e){try{const{read:r}=await _(async()=>{const{read:n}=await import("./xlsx-DQd7JQAw.js");return{read:n}},[]);return r(e)}catch(r){console.log(r);return}}function ae(e){const r=e?.reportPeriodStartYear??new Date().getFullYear(),t=String(e?.reportPeriodStartMonth??1).padStart(2,"0");return`${r}-${t}-01`}function P(e,r){if(!(e<=0||r<=0))return e*(r/100)}function S(e){return e>0?e:void 0}function ie(e,r){const t=ae(r);return{snapshots:(r?.dairyBreedBreakdown??[]).filter(i=>!!(i.breed&&i.percentage!==void 0&&i.percentage>0)).map(i=>({date:t,breed:i.breed,headcounts:{milkingCows:P(a(e,"CowMilkerNumber"),i.percentage),heifersOver1:P(a(e,"Rising2HeiferNumber"),i.percentage),heifersUnder1Weaned:P(a(e,"Rising1HeiferNumber"),i.percentage)},headcountsNonReplacement:{bullsOver1:P(a(e,"BullNumber"),i.percentage),otherUnder1Weaned:P(a(e,"OtherLivestockNumber"),i.percentage),otherOver1:P(a(e,"OtherLivestockNotImportedNumber"),i.percentage)},liveweights:{milkingCows:S(a(e,"CowLiveweightKg")),heifersOver1:S(a(e,"Rising2HeiferLiveweightKg")),heifersUnder1Weaned:S(a(e,"Rising1HeiferLiveweightKg"))},liveweightsNonReplacement:{bullsOver1:S(a(e,"BullLiveweightKg")||800),otherUnder1Weaned:S(a(e,"OtherLivestockLiveweightKg")),otherOver1:S(a(e,"OtherLivestockNotImportedLiveweightKg"))}})),metadata:{formVersion:"v1"}}}function se(e){const r=V(e);return{electricity:{electricityKwhUsed:r.electricityUsage},fuel:{petrol:{quantityLitres:r.petrol,fuelType:"gasoline"},diesel:{quantityLitres:r.diesel,fuelType:"diesel"},additional:[]},metadata:{formVersion:"v1"}}}function oe(e){const r=M(e),t=[];return r.grain>0&&t.push({quantityTonnes:r.grain,feedType:"wheatGrain"}),r.hay>0&&t.push({quantityTonnes:r.hay,feedType:"pastureHay"}),r.cottonSeed>0&&t.push({quantityTonnes:r.cottonSeed,feedType:"cottonSeed"}),{mineralSupplements:[],purchasedFeed:t,metadata:{formVersion:"v1"}}}function le(e){const r=U(e),t=r.milkingPasture*100,n={anaerobicLagoonPercentage:r.milkingLagoon*100,sumpDispersalSystemPercentage:r.milkingSumpDispersal*100,drainsToPaddockPercentage:r.milkingDrainToPaddock*100,solidStoragePercentage:r.milkingSolidStorage*100},s=Object.values(n).reduce((m,h)=>m+h,0),i=t+s,o=i>0?t/i*100:100,c=i>0?s/i*100:0;function l(m){return s>0?m/s*100:0}return{feedingSystem:"custom",timeSplit:{pasturePercentage:o,milkingShedPercentage:c,feedpadPercentage:0},milkingShed:{anaerobicLagoonPercentage:l(n.anaerobicLagoonPercentage),sumpDispersalSystemPercentage:l(n.sumpDispersalSystemPercentage),drainsToPaddockPercentage:l(n.drainsToPaddockPercentage),solidStoragePercentage:l(n.solidStoragePercentage)},feedpad:{anaerobicLagoonPercentage:0,sumpDispersalSystemPercentage:0,drainsToPaddockPercentage:0,solidStoragePercentage:0},metadata:{formVersion:"v1"}}}function ce(e,r,t){const n=O(e,r,t),s=[],i=n.dryland,o=n.irrigated;function c(l){l.massTonnes<=0||s.push({fertiliserName:"Urea",inorganicFertiliserMassKg:l.massTonnes*1e3,volatilisationType:"urea-based",components:{n:46,p:0,k:0,s:0},proportionOfNitrogenAsUrea:100,proportionDryland:l.proportionDryland})}return c({massTonnes:i.ureaFertiliserPasture,proportionDryland:100}),c({massTonnes:o.ureaFertiliserCrops,proportionDryland:0}),{pastureRenewalAreas:{},lime:{limeTonnesUsed:n.limestone,limestoneFraction:n.limestoneFraction*100},fertilisers:s,agrichemicals:[],metadata:{formVersion:"v1"}}}function pe(e,r,t){const n=y(e),s=Q(n),i=k(n),o=V(n),c=M(n),l=O(n,r,t),m=U(n),h=ne(n);return{dairyCattleClassInformation:s,dairyProductionInformation:i,consumablesInformation:o,supplementaryFeedInformation:c,dairyProductionSystemInputsInformation:l,dairyManureManagementInformation:m,treesInformation:h,mineralSupplementsInformation:[],dairyTransportInformation:[]}}function Pe(e,r,t){const n=y(e);return{dairyCattle:ie(n,t),dairyProduction:ee(n),consumables:se(n),feedsAndSupplements:oe(n),dairyManureManagement:le(n),pasture:ce(n,r,t)}}
1export{y as buildAdccWorkbookContext,he as detectAdccImportRequirements,pe as extractLegacyGafDataFromWorkbook,Pe as extractNewStandardsDataFromWorkbook,fe as openDragAndDroppedFile};
2//# sourceMappingURL=adcc-CS2y_Pni.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.