formulab 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +144 -0
- package/LICENSE +21 -0
- package/README.md +403 -0
- package/dist/automotive/batteryRuntime.d.ts +14 -0
- package/dist/automotive/batteryRuntime.d.ts.map +1 -0
- package/dist/automotive/batteryRuntime.js +38 -0
- package/dist/automotive/batteryRuntime.js.map +1 -0
- package/dist/automotive/evCharging.d.ts +14 -0
- package/dist/automotive/evCharging.d.ts.map +1 -0
- package/dist/automotive/evCharging.js +48 -0
- package/dist/automotive/evCharging.js.map +1 -0
- package/dist/automotive/fuelEconomy.d.ts +15 -0
- package/dist/automotive/fuelEconomy.d.ts.map +1 -0
- package/dist/automotive/fuelEconomy.js +61 -0
- package/dist/automotive/fuelEconomy.js.map +1 -0
- package/dist/automotive/gearRatio.d.ts +15 -0
- package/dist/automotive/gearRatio.d.ts.map +1 -0
- package/dist/automotive/gearRatio.js +39 -0
- package/dist/automotive/gearRatio.js.map +1 -0
- package/dist/automotive/index.d.ts +9 -0
- package/dist/automotive/index.d.ts.map +1 -0
- package/dist/automotive/index.js +9 -0
- package/dist/automotive/index.js.map +1 -0
- package/dist/automotive/power.d.ts +14 -0
- package/dist/automotive/power.d.ts.map +1 -0
- package/dist/automotive/power.js +52 -0
- package/dist/automotive/power.js.map +1 -0
- package/dist/automotive/tireCompare.d.ts +9 -0
- package/dist/automotive/tireCompare.d.ts.map +1 -0
- package/dist/automotive/tireCompare.js +54 -0
- package/dist/automotive/tireCompare.js.map +1 -0
- package/dist/automotive/torque.d.ts +14 -0
- package/dist/automotive/torque.d.ts.map +1 -0
- package/dist/automotive/torque.js +52 -0
- package/dist/automotive/torque.js.map +1 -0
- package/dist/automotive/types.d.ts +114 -0
- package/dist/automotive/types.d.ts.map +1 -0
- package/dist/automotive/types.js +2 -0
- package/dist/automotive/types.js.map +1 -0
- package/dist/chemical/batch.d.ts +12 -0
- package/dist/chemical/batch.d.ts.map +1 -0
- package/dist/chemical/batch.js +36 -0
- package/dist/chemical/batch.js.map +1 -0
- package/dist/chemical/concentration.d.ts +15 -0
- package/dist/chemical/concentration.d.ts.map +1 -0
- package/dist/chemical/concentration.js +45 -0
- package/dist/chemical/concentration.js.map +1 -0
- package/dist/chemical/dilution.d.ts +12 -0
- package/dist/chemical/dilution.d.ts.map +1 -0
- package/dist/chemical/dilution.js +68 -0
- package/dist/chemical/dilution.js.map +1 -0
- package/dist/chemical/index.d.ts +9 -0
- package/dist/chemical/index.d.ts.map +1 -0
- package/dist/chemical/index.js +9 -0
- package/dist/chemical/index.js.map +1 -0
- package/dist/chemical/injectionCycle.d.ts +19 -0
- package/dist/chemical/injectionCycle.d.ts.map +1 -0
- package/dist/chemical/injectionCycle.js +170 -0
- package/dist/chemical/injectionCycle.js.map +1 -0
- package/dist/chemical/ph.d.ts +13 -0
- package/dist/chemical/ph.d.ts.map +1 -0
- package/dist/chemical/ph.js +83 -0
- package/dist/chemical/ph.js.map +1 -0
- package/dist/chemical/reactor.d.ts +19 -0
- package/dist/chemical/reactor.d.ts.map +1 -0
- package/dist/chemical/reactor.js +57 -0
- package/dist/chemical/reactor.js.map +1 -0
- package/dist/chemical/shelfLife.d.ts +15 -0
- package/dist/chemical/shelfLife.d.ts.map +1 -0
- package/dist/chemical/shelfLife.js +36 -0
- package/dist/chemical/shelfLife.js.map +1 -0
- package/dist/chemical/types.d.ts +144 -0
- package/dist/chemical/types.d.ts.map +1 -0
- package/dist/chemical/types.js +2 -0
- package/dist/chemical/types.js.map +1 -0
- package/dist/construction/aggregate.d.ts +33 -0
- package/dist/construction/aggregate.d.ts.map +1 -0
- package/dist/construction/aggregate.js +92 -0
- package/dist/construction/aggregate.js.map +1 -0
- package/dist/construction/beamLoad.d.ts +12 -0
- package/dist/construction/beamLoad.d.ts.map +1 -0
- package/dist/construction/beamLoad.js +156 -0
- package/dist/construction/beamLoad.js.map +1 -0
- package/dist/construction/brick.d.ts +17 -0
- package/dist/construction/brick.d.ts.map +1 -0
- package/dist/construction/brick.js +53 -0
- package/dist/construction/brick.js.map +1 -0
- package/dist/construction/concreteMix.d.ts +9 -0
- package/dist/construction/concreteMix.d.ts.map +1 -0
- package/dist/construction/concreteMix.js +31 -0
- package/dist/construction/concreteMix.js.map +1 -0
- package/dist/construction/earthwork.d.ts +13 -0
- package/dist/construction/earthwork.d.ts.map +1 -0
- package/dist/construction/earthwork.js +25 -0
- package/dist/construction/earthwork.js.map +1 -0
- package/dist/construction/formwork.d.ts +9 -0
- package/dist/construction/formwork.d.ts.map +1 -0
- package/dist/construction/formwork.js +61 -0
- package/dist/construction/formwork.js.map +1 -0
- package/dist/construction/index.d.ts +13 -0
- package/dist/construction/index.d.ts.map +1 -0
- package/dist/construction/index.js +13 -0
- package/dist/construction/index.js.map +1 -0
- package/dist/construction/pert.d.ts +15 -0
- package/dist/construction/pert.d.ts.map +1 -0
- package/dist/construction/pert.js +207 -0
- package/dist/construction/pert.js.map +1 -0
- package/dist/construction/rebar.d.ts +16 -0
- package/dist/construction/rebar.d.ts.map +1 -0
- package/dist/construction/rebar.js +43 -0
- package/dist/construction/rebar.js.map +1 -0
- package/dist/construction/roof.d.ts +16 -0
- package/dist/construction/roof.d.ts.map +1 -0
- package/dist/construction/roof.js +65 -0
- package/dist/construction/roof.js.map +1 -0
- package/dist/construction/slope.d.ts +14 -0
- package/dist/construction/slope.d.ts.map +1 -0
- package/dist/construction/slope.js +54 -0
- package/dist/construction/slope.js.map +1 -0
- package/dist/construction/stair.d.ts +17 -0
- package/dist/construction/stair.d.ts.map +1 -0
- package/dist/construction/stair.js +69 -0
- package/dist/construction/stair.js.map +1 -0
- package/dist/construction/types.d.ts +219 -0
- package/dist/construction/types.d.ts.map +1 -0
- package/dist/construction/types.js +2 -0
- package/dist/construction/types.js.map +1 -0
- package/dist/electronics/awg.d.ts +9 -0
- package/dist/electronics/awg.d.ts.map +1 -0
- package/dist/electronics/awg.js +66 -0
- package/dist/electronics/awg.js.map +1 -0
- package/dist/electronics/capacitor.d.ts +9 -0
- package/dist/electronics/capacitor.d.ts.map +1 -0
- package/dist/electronics/capacitor.js +51 -0
- package/dist/electronics/capacitor.js.map +1 -0
- package/dist/electronics/index.d.ts +12 -0
- package/dist/electronics/index.d.ts.map +1 -0
- package/dist/electronics/index.js +12 -0
- package/dist/electronics/index.js.map +1 -0
- package/dist/electronics/led.d.ts +9 -0
- package/dist/electronics/led.d.ts.map +1 -0
- package/dist/electronics/led.js +72 -0
- package/dist/electronics/led.js.map +1 -0
- package/dist/electronics/reflow.d.ts +12 -0
- package/dist/electronics/reflow.d.ts.map +1 -0
- package/dist/electronics/reflow.js +77 -0
- package/dist/electronics/reflow.js.map +1 -0
- package/dist/electronics/resistor.d.ts +8 -0
- package/dist/electronics/resistor.d.ts.map +1 -0
- package/dist/electronics/resistor.js +137 -0
- package/dist/electronics/resistor.js.map +1 -0
- package/dist/electronics/smt-takt.d.ts +8 -0
- package/dist/electronics/smt-takt.d.ts.map +1 -0
- package/dist/electronics/smt-takt.js +59 -0
- package/dist/electronics/smt-takt.js.map +1 -0
- package/dist/electronics/solder.d.ts +8 -0
- package/dist/electronics/solder.d.ts.map +1 -0
- package/dist/electronics/solder.js +46 -0
- package/dist/electronics/solder.js.map +1 -0
- package/dist/electronics/stencil.d.ts +9 -0
- package/dist/electronics/stencil.d.ts.map +1 -0
- package/dist/electronics/stencil.js +78 -0
- package/dist/electronics/stencil.js.map +1 -0
- package/dist/electronics/trace.d.ts +8 -0
- package/dist/electronics/trace.d.ts.map +1 -0
- package/dist/electronics/trace.js +75 -0
- package/dist/electronics/trace.js.map +1 -0
- package/dist/electronics/types.d.ts +145 -0
- package/dist/electronics/types.d.ts.map +1 -0
- package/dist/electronics/types.js +2 -0
- package/dist/electronics/types.js.map +1 -0
- package/dist/electronics/via.d.ts +12 -0
- package/dist/electronics/via.d.ts.map +1 -0
- package/dist/electronics/via.js +63 -0
- package/dist/electronics/via.js.map +1 -0
- package/dist/energy/carbonFootprint.d.ts +13 -0
- package/dist/energy/carbonFootprint.d.ts.map +1 -0
- package/dist/energy/carbonFootprint.js +41 -0
- package/dist/energy/carbonFootprint.js.map +1 -0
- package/dist/energy/compressedAirCost.d.ts +14 -0
- package/dist/energy/compressedAirCost.d.ts.map +1 -0
- package/dist/energy/compressedAirCost.js +39 -0
- package/dist/energy/compressedAirCost.js.map +1 -0
- package/dist/energy/index.d.ts +8 -0
- package/dist/energy/index.d.ts.map +1 -0
- package/dist/energy/index.js +8 -0
- package/dist/energy/index.js.map +1 -0
- package/dist/energy/motorEfficiency.d.ts +14 -0
- package/dist/energy/motorEfficiency.d.ts.map +1 -0
- package/dist/energy/motorEfficiency.js +47 -0
- package/dist/energy/motorEfficiency.js.map +1 -0
- package/dist/energy/pfCorrection.d.ts +15 -0
- package/dist/energy/pfCorrection.d.ts.map +1 -0
- package/dist/energy/pfCorrection.js +56 -0
- package/dist/energy/pfCorrection.js.map +1 -0
- package/dist/energy/powerCost.d.ts +15 -0
- package/dist/energy/powerCost.d.ts.map +1 -0
- package/dist/energy/powerCost.js +37 -0
- package/dist/energy/powerCost.js.map +1 -0
- package/dist/energy/types.d.ts +119 -0
- package/dist/energy/types.d.ts.map +1 -0
- package/dist/energy/types.js +2 -0
- package/dist/energy/types.js.map +1 -0
- package/dist/energy/vfdSavings.d.ts +16 -0
- package/dist/energy/vfdSavings.d.ts.map +1 -0
- package/dist/energy/vfdSavings.js +57 -0
- package/dist/energy/vfdSavings.js.map +1 -0
- package/dist/food/calorie.d.ts +13 -0
- package/dist/food/calorie.d.ts.map +1 -0
- package/dist/food/calorie.js +42 -0
- package/dist/food/calorie.js.map +1 -0
- package/dist/food/expiry.d.ts +13 -0
- package/dist/food/expiry.d.ts.map +1 -0
- package/dist/food/expiry.js +58 -0
- package/dist/food/expiry.js.map +1 -0
- package/dist/food/haccp.d.ts +18 -0
- package/dist/food/haccp.d.ts.map +1 -0
- package/dist/food/haccp.js +70 -0
- package/dist/food/haccp.js.map +1 -0
- package/dist/food/index.d.ts +6 -0
- package/dist/food/index.d.ts.map +1 -0
- package/dist/food/index.js +6 -0
- package/dist/food/index.js.map +1 -0
- package/dist/food/nutrition.d.ts +12 -0
- package/dist/food/nutrition.d.ts.map +1 -0
- package/dist/food/nutrition.js +75 -0
- package/dist/food/nutrition.js.map +1 -0
- package/dist/food/types.d.ts +104 -0
- package/dist/food/types.d.ts.map +1 -0
- package/dist/food/types.js +2 -0
- package/dist/food/types.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/logistics/cbm.d.ts +12 -0
- package/dist/logistics/cbm.d.ts.map +1 -0
- package/dist/logistics/cbm.js +37 -0
- package/dist/logistics/cbm.js.map +1 -0
- package/dist/logistics/containerFit.d.ts +12 -0
- package/dist/logistics/containerFit.d.ts.map +1 -0
- package/dist/logistics/containerFit.js +73 -0
- package/dist/logistics/containerFit.js.map +1 -0
- package/dist/logistics/dimWeight.d.ts +13 -0
- package/dist/logistics/dimWeight.d.ts.map +1 -0
- package/dist/logistics/dimWeight.js +50 -0
- package/dist/logistics/dimWeight.js.map +1 -0
- package/dist/logistics/eoq.d.ts +18 -0
- package/dist/logistics/eoq.d.ts.map +1 -0
- package/dist/logistics/eoq.js +42 -0
- package/dist/logistics/eoq.js.map +1 -0
- package/dist/logistics/fillRate.d.ts +22 -0
- package/dist/logistics/fillRate.d.ts.map +1 -0
- package/dist/logistics/fillRate.js +84 -0
- package/dist/logistics/fillRate.js.map +1 -0
- package/dist/logistics/freightClass.d.ts +12 -0
- package/dist/logistics/freightClass.d.ts.map +1 -0
- package/dist/logistics/freightClass.js +68 -0
- package/dist/logistics/freightClass.js.map +1 -0
- package/dist/logistics/index.d.ts +15 -0
- package/dist/logistics/index.d.ts.map +1 -0
- package/dist/logistics/index.js +15 -0
- package/dist/logistics/index.js.map +1 -0
- package/dist/logistics/kanban.d.ts +19 -0
- package/dist/logistics/kanban.d.ts.map +1 -0
- package/dist/logistics/kanban.js +48 -0
- package/dist/logistics/kanban.js.map +1 -0
- package/dist/logistics/pallet3d.d.ts +16 -0
- package/dist/logistics/pallet3d.d.ts.map +1 -0
- package/dist/logistics/pallet3d.js +380 -0
- package/dist/logistics/pallet3d.js.map +1 -0
- package/dist/logistics/palletStack.d.ts +12 -0
- package/dist/logistics/palletStack.d.ts.map +1 -0
- package/dist/logistics/palletStack.js +65 -0
- package/dist/logistics/palletStack.js.map +1 -0
- package/dist/logistics/pickTime.d.ts +17 -0
- package/dist/logistics/pickTime.d.ts.map +1 -0
- package/dist/logistics/pickTime.js +70 -0
- package/dist/logistics/pickTime.js.map +1 -0
- package/dist/logistics/safetyStock.d.ts +24 -0
- package/dist/logistics/safetyStock.d.ts.map +1 -0
- package/dist/logistics/safetyStock.js +99 -0
- package/dist/logistics/safetyStock.js.map +1 -0
- package/dist/logistics/shipping.d.ts +16 -0
- package/dist/logistics/shipping.d.ts.map +1 -0
- package/dist/logistics/shipping.js +115 -0
- package/dist/logistics/shipping.js.map +1 -0
- package/dist/logistics/tsp.d.ts +12 -0
- package/dist/logistics/tsp.d.ts.map +1 -0
- package/dist/logistics/tsp.js +166 -0
- package/dist/logistics/tsp.js.map +1 -0
- package/dist/logistics/types.d.ts +315 -0
- package/dist/logistics/types.d.ts.map +1 -0
- package/dist/logistics/types.js +5 -0
- package/dist/logistics/types.js.map +1 -0
- package/dist/metal/bearing.d.ts +11 -0
- package/dist/metal/bearing.d.ts.map +1 -0
- package/dist/metal/bearing.js +32 -0
- package/dist/metal/bearing.js.map +1 -0
- package/dist/metal/bendAllowance.d.ts +13 -0
- package/dist/metal/bendAllowance.d.ts.map +1 -0
- package/dist/metal/bendAllowance.js +75 -0
- package/dist/metal/bendAllowance.js.map +1 -0
- package/dist/metal/bolt.d.ts +32 -0
- package/dist/metal/bolt.d.ts.map +1 -0
- package/dist/metal/bolt.js +149 -0
- package/dist/metal/bolt.js.map +1 -0
- package/dist/metal/cutting.d.ts +10 -0
- package/dist/metal/cutting.d.ts.map +1 -0
- package/dist/metal/cutting.js +55 -0
- package/dist/metal/cutting.js.map +1 -0
- package/dist/metal/cuttingStock.d.ts +8 -0
- package/dist/metal/cuttingStock.d.ts.map +1 -0
- package/dist/metal/cuttingStock.js +89 -0
- package/dist/metal/cuttingStock.js.map +1 -0
- package/dist/metal/flatPattern.d.ts +12 -0
- package/dist/metal/flatPattern.d.ts.map +1 -0
- package/dist/metal/flatPattern.js +50 -0
- package/dist/metal/flatPattern.js.map +1 -0
- package/dist/metal/gear.d.ts +13 -0
- package/dist/metal/gear.d.ts.map +1 -0
- package/dist/metal/gear.js +79 -0
- package/dist/metal/gear.js.map +1 -0
- package/dist/metal/hardness.d.ts +15 -0
- package/dist/metal/hardness.d.ts.map +1 -0
- package/dist/metal/hardness.js +77 -0
- package/dist/metal/hardness.js.map +1 -0
- package/dist/metal/index.d.ts +24 -0
- package/dist/metal/index.d.ts.map +1 -0
- package/dist/metal/index.js +24 -0
- package/dist/metal/index.js.map +1 -0
- package/dist/metal/kFactorReverse.d.ts +19 -0
- package/dist/metal/kFactorReverse.d.ts.map +1 -0
- package/dist/metal/kFactorReverse.js +39 -0
- package/dist/metal/kFactorReverse.js.map +1 -0
- package/dist/metal/material.d.ts +5 -0
- package/dist/metal/material.d.ts.map +1 -0
- package/dist/metal/material.js +56 -0
- package/dist/metal/material.js.map +1 -0
- package/dist/metal/metalWeight.d.ts +10 -0
- package/dist/metal/metalWeight.d.ts.map +1 -0
- package/dist/metal/metalWeight.js +82 -0
- package/dist/metal/metalWeight.js.map +1 -0
- package/dist/metal/pressFit.d.ts +15 -0
- package/dist/metal/pressFit.d.ts.map +1 -0
- package/dist/metal/pressFit.js +96 -0
- package/dist/metal/pressFit.js.map +1 -0
- package/dist/metal/pressTonnage.d.ts +13 -0
- package/dist/metal/pressTonnage.d.ts.map +1 -0
- package/dist/metal/pressTonnage.js +86 -0
- package/dist/metal/pressTonnage.js.map +1 -0
- package/dist/metal/roughness.d.ts +6 -0
- package/dist/metal/roughness.d.ts.map +1 -0
- package/dist/metal/roughness.js +62 -0
- package/dist/metal/roughness.js.map +1 -0
- package/dist/metal/screw.d.ts +7 -0
- package/dist/metal/screw.d.ts.map +1 -0
- package/dist/metal/screw.js +44 -0
- package/dist/metal/screw.js.map +1 -0
- package/dist/metal/spring.d.ts +11 -0
- package/dist/metal/spring.d.ts.map +1 -0
- package/dist/metal/spring.js +59 -0
- package/dist/metal/spring.js.map +1 -0
- package/dist/metal/tap.d.ts +16 -0
- package/dist/metal/tap.d.ts.map +1 -0
- package/dist/metal/tap.js +62 -0
- package/dist/metal/tap.js.map +1 -0
- package/dist/metal/thread.d.ts +8 -0
- package/dist/metal/thread.d.ts.map +1 -0
- package/dist/metal/thread.js +75 -0
- package/dist/metal/thread.js.map +1 -0
- package/dist/metal/tolerance.d.ts +6 -0
- package/dist/metal/tolerance.d.ts.map +1 -0
- package/dist/metal/tolerance.js +113 -0
- package/dist/metal/tolerance.js.map +1 -0
- package/dist/metal/types.d.ts +494 -0
- package/dist/metal/types.d.ts.map +1 -0
- package/dist/metal/types.js +2 -0
- package/dist/metal/types.js.map +1 -0
- package/dist/metal/vibration.d.ts +6 -0
- package/dist/metal/vibration.d.ts.map +1 -0
- package/dist/metal/vibration.js +153 -0
- package/dist/metal/vibration.js.map +1 -0
- package/dist/metal/weldHeat.d.ts +6 -0
- package/dist/metal/weldHeat.d.ts.map +1 -0
- package/dist/metal/weldHeat.js +138 -0
- package/dist/metal/weldHeat.js.map +1 -0
- package/dist/metal/welding.d.ts +6 -0
- package/dist/metal/welding.d.ts.map +1 -0
- package/dist/metal/welding.js +80 -0
- package/dist/metal/welding.js.map +1 -0
- package/dist/quality/aql.d.ts +10 -0
- package/dist/quality/aql.d.ts.map +1 -0
- package/dist/quality/aql.js +104 -0
- package/dist/quality/aql.js.map +1 -0
- package/dist/quality/cpk.d.ts +14 -0
- package/dist/quality/cpk.d.ts.map +1 -0
- package/dist/quality/cpk.js +44 -0
- package/dist/quality/cpk.js.map +1 -0
- package/dist/quality/cycle.d.ts +11 -0
- package/dist/quality/cycle.d.ts.map +1 -0
- package/dist/quality/cycle.js +55 -0
- package/dist/quality/cycle.js.map +1 -0
- package/dist/quality/downtime.d.ts +9 -0
- package/dist/quality/downtime.d.ts.map +1 -0
- package/dist/quality/downtime.js +28 -0
- package/dist/quality/downtime.js.map +1 -0
- package/dist/quality/dpmo.d.ts +10 -0
- package/dist/quality/dpmo.d.ts.map +1 -0
- package/dist/quality/dpmo.js +114 -0
- package/dist/quality/dpmo.js.map +1 -0
- package/dist/quality/index.d.ts +15 -0
- package/dist/quality/index.d.ts.map +1 -0
- package/dist/quality/index.js +15 -0
- package/dist/quality/index.js.map +1 -0
- package/dist/quality/lineBalancing.d.ts +9 -0
- package/dist/quality/lineBalancing.d.ts.map +1 -0
- package/dist/quality/lineBalancing.js +185 -0
- package/dist/quality/lineBalancing.js.map +1 -0
- package/dist/quality/mtbf.d.ts +13 -0
- package/dist/quality/mtbf.d.ts.map +1 -0
- package/dist/quality/mtbf.js +48 -0
- package/dist/quality/mtbf.js.map +1 -0
- package/dist/quality/oee.d.ts +11 -0
- package/dist/quality/oee.d.ts.map +1 -0
- package/dist/quality/oee.js +43 -0
- package/dist/quality/oee.js.map +1 -0
- package/dist/quality/ppk.d.ts +15 -0
- package/dist/quality/ppk.d.ts.map +1 -0
- package/dist/quality/ppk.js +61 -0
- package/dist/quality/ppk.js.map +1 -0
- package/dist/quality/ppm.d.ts +9 -0
- package/dist/quality/ppm.d.ts.map +1 -0
- package/dist/quality/ppm.js +134 -0
- package/dist/quality/ppm.js.map +1 -0
- package/dist/quality/rpn.d.ts +11 -0
- package/dist/quality/rpn.d.ts.map +1 -0
- package/dist/quality/rpn.js +48 -0
- package/dist/quality/rpn.js.map +1 -0
- package/dist/quality/takt.d.ts +13 -0
- package/dist/quality/takt.d.ts.map +1 -0
- package/dist/quality/takt.js +44 -0
- package/dist/quality/takt.js.map +1 -0
- package/dist/quality/types.d.ts +261 -0
- package/dist/quality/types.d.ts.map +1 -0
- package/dist/quality/types.js +2 -0
- package/dist/quality/types.js.map +1 -0
- package/dist/quality/yield.d.ts +12 -0
- package/dist/quality/yield.d.ts.map +1 -0
- package/dist/quality/yield.js +56 -0
- package/dist/quality/yield.js.map +1 -0
- package/dist/safety/fallClearance.d.ts +12 -0
- package/dist/safety/fallClearance.d.ts.map +1 -0
- package/dist/safety/fallClearance.js +37 -0
- package/dist/safety/fallClearance.js.map +1 -0
- package/dist/safety/havsCalculate.d.ts +16 -0
- package/dist/safety/havsCalculate.d.ts.map +1 -0
- package/dist/safety/havsCalculate.js +103 -0
- package/dist/safety/havsCalculate.js.map +1 -0
- package/dist/safety/index.d.ts +8 -0
- package/dist/safety/index.d.ts.map +1 -0
- package/dist/safety/index.js +8 -0
- package/dist/safety/index.js.map +1 -0
- package/dist/safety/nioshLifting.d.ts +21 -0
- package/dist/safety/nioshLifting.d.ts.map +1 -0
- package/dist/safety/nioshLifting.js +164 -0
- package/dist/safety/nioshLifting.js.map +1 -0
- package/dist/safety/noiseExposure.d.ts +22 -0
- package/dist/safety/noiseExposure.d.ts.map +1 -0
- package/dist/safety/noiseExposure.js +76 -0
- package/dist/safety/noiseExposure.js.map +1 -0
- package/dist/safety/respiratorCalculate.d.ts +14 -0
- package/dist/safety/respiratorCalculate.d.ts.map +1 -0
- package/dist/safety/respiratorCalculate.js +90 -0
- package/dist/safety/respiratorCalculate.js.map +1 -0
- package/dist/safety/types.d.ts +93 -0
- package/dist/safety/types.d.ts.map +1 -0
- package/dist/safety/types.js +2 -0
- package/dist/safety/types.js.map +1 -0
- package/dist/safety/wbgtCalculate.d.ts +25 -0
- package/dist/safety/wbgtCalculate.d.ts.map +1 -0
- package/dist/safety/wbgtCalculate.js +65 -0
- package/dist/safety/wbgtCalculate.js.map +1 -0
- package/dist/utility/assignment.d.ts +11 -0
- package/dist/utility/assignment.d.ts.map +1 -0
- package/dist/utility/assignment.js +113 -0
- package/dist/utility/assignment.js.map +1 -0
- package/dist/utility/index.d.ts +4 -0
- package/dist/utility/index.d.ts.map +1 -0
- package/dist/utility/index.js +4 -0
- package/dist/utility/index.js.map +1 -0
- package/dist/utility/qrcode.d.ts +30 -0
- package/dist/utility/qrcode.d.ts.map +1 -0
- package/dist/utility/qrcode.js +30 -0
- package/dist/utility/qrcode.js.map +1 -0
- package/dist/utility/types.d.ts +64 -0
- package/dist/utility/types.d.ts.map +1 -0
- package/dist/utility/types.js +2 -0
- package/dist/utility/types.js.map +1 -0
- package/dist/utility/unit.d.ts +25 -0
- package/dist/utility/unit.d.ts.map +1 -0
- package/dist/utility/unit.js +136 -0
- package/dist/utility/unit.js.map +1 -0
- package/dist/utils.d.ts +9 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +12 -0
- package/dist/utils.js.map +1 -0
- package/package.json +117 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Batch Scaling Types
|
|
3
|
+
*/
|
|
4
|
+
export interface BatchIngredient {
|
|
5
|
+
name: string;
|
|
6
|
+
amount: number;
|
|
7
|
+
unit: string;
|
|
8
|
+
}
|
|
9
|
+
export interface BatchInput {
|
|
10
|
+
originalBatchSize: number;
|
|
11
|
+
targetBatchSize: number;
|
|
12
|
+
ingredients: BatchIngredient[];
|
|
13
|
+
}
|
|
14
|
+
export interface ScaledIngredient {
|
|
15
|
+
name: string;
|
|
16
|
+
originalAmount: number;
|
|
17
|
+
scaledAmount: number;
|
|
18
|
+
unit: string;
|
|
19
|
+
}
|
|
20
|
+
export interface BatchResult {
|
|
21
|
+
scaleFactor: number;
|
|
22
|
+
scaledIngredients: ScaledIngredient[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Concentration Conversion Types
|
|
26
|
+
*/
|
|
27
|
+
export type ConcentrationUnit = 'molPerL' | 'wtPercent' | 'ppm';
|
|
28
|
+
export interface ConcentrationInput {
|
|
29
|
+
fromUnit: ConcentrationUnit;
|
|
30
|
+
value: number;
|
|
31
|
+
molecularWeight: number;
|
|
32
|
+
solutionDensity: number;
|
|
33
|
+
}
|
|
34
|
+
export interface ConcentrationResult {
|
|
35
|
+
molPerL: number;
|
|
36
|
+
wtPercent: number;
|
|
37
|
+
ppm: number;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Dilution Calculator Types
|
|
41
|
+
*/
|
|
42
|
+
export type DilutionSolveFor = 'c2' | 'v2' | 'c1' | 'v1';
|
|
43
|
+
export interface DilutionInput {
|
|
44
|
+
solveFor: DilutionSolveFor;
|
|
45
|
+
c1?: number;
|
|
46
|
+
v1?: number;
|
|
47
|
+
c2?: number;
|
|
48
|
+
v2?: number;
|
|
49
|
+
}
|
|
50
|
+
export interface DilutionResult {
|
|
51
|
+
c1: number;
|
|
52
|
+
v1: number;
|
|
53
|
+
c2: number;
|
|
54
|
+
v2: number;
|
|
55
|
+
solventToAdd: number;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* pH Buffer Calculator Types
|
|
59
|
+
*/
|
|
60
|
+
export type BufferSystem = 'acetate' | 'phosphate' | 'tris' | 'citrate' | 'carbonate' | 'custom';
|
|
61
|
+
export interface PhInput {
|
|
62
|
+
bufferSystem: BufferSystem;
|
|
63
|
+
acidConcentration: number;
|
|
64
|
+
baseConcentration: number;
|
|
65
|
+
temperature: number;
|
|
66
|
+
customPka?: number;
|
|
67
|
+
}
|
|
68
|
+
export interface PhResult {
|
|
69
|
+
pH: number;
|
|
70
|
+
pKa: number;
|
|
71
|
+
bufferCapacity: number;
|
|
72
|
+
effectiveRange: {
|
|
73
|
+
min: number;
|
|
74
|
+
max: number;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Reactor Volume Calculator Types
|
|
79
|
+
*/
|
|
80
|
+
export type ReactorShape = 'cylindrical' | 'spherical';
|
|
81
|
+
export interface ReactorInput {
|
|
82
|
+
shape: ReactorShape;
|
|
83
|
+
diameter: number;
|
|
84
|
+
height?: number;
|
|
85
|
+
fillRatio: number;
|
|
86
|
+
agitatorType?: 'none' | 'anchor' | 'turbine' | 'propeller';
|
|
87
|
+
}
|
|
88
|
+
export interface ReactorResult {
|
|
89
|
+
totalVolume: number;
|
|
90
|
+
workingVolume: number;
|
|
91
|
+
totalVolumeLiters: number;
|
|
92
|
+
workingVolumeLiters: number;
|
|
93
|
+
surfaceArea: number;
|
|
94
|
+
volumeToSurfaceRatio: number;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Shelf Life Calculator Types
|
|
98
|
+
*/
|
|
99
|
+
export interface ShelfLifeInput {
|
|
100
|
+
shelfLifeAtRef: number;
|
|
101
|
+
refTemp: number;
|
|
102
|
+
targetTemp: number;
|
|
103
|
+
q10: number;
|
|
104
|
+
}
|
|
105
|
+
export interface ShelfLifeResult {
|
|
106
|
+
estimatedShelfLife: number;
|
|
107
|
+
accelerationFactor: number;
|
|
108
|
+
refTemp: number;
|
|
109
|
+
targetTemp: number;
|
|
110
|
+
tempDifference: number;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Injection Molding Cycle Time Types
|
|
114
|
+
*/
|
|
115
|
+
export type ResinType = 'abs' | 'pp' | 'pc' | 'pa' | 'pmma' | 'pet' | 'pom' | 'ps' | 'custom';
|
|
116
|
+
export interface InjectionCycleInput {
|
|
117
|
+
resin: ResinType;
|
|
118
|
+
wallThickness: number;
|
|
119
|
+
shotWeight: number;
|
|
120
|
+
injectionRate?: number;
|
|
121
|
+
moldOpenCloseTime?: number;
|
|
122
|
+
ejectionTime?: number;
|
|
123
|
+
thermalDiffusivity?: number;
|
|
124
|
+
meltTemp?: number;
|
|
125
|
+
moldTemp?: number;
|
|
126
|
+
ejectionTemp?: number;
|
|
127
|
+
density?: number;
|
|
128
|
+
}
|
|
129
|
+
export interface InjectionCyclePhase {
|
|
130
|
+
phase: string;
|
|
131
|
+
time: number;
|
|
132
|
+
percentage: number;
|
|
133
|
+
}
|
|
134
|
+
export interface InjectionCycleResult {
|
|
135
|
+
coolingTime: number;
|
|
136
|
+
fillTime: number;
|
|
137
|
+
packingTime: number;
|
|
138
|
+
moldOpenClose: number;
|
|
139
|
+
ejectionTime: number;
|
|
140
|
+
totalCycleTime: number;
|
|
141
|
+
partsPerHour: number;
|
|
142
|
+
breakdown: InjectionCyclePhase[];
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/chemical/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/chemical/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { AggregateInput, AggregateResult, AggregateType, AggregateDensity } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Common aggregate densities (kg/m³)
|
|
4
|
+
*/
|
|
5
|
+
export declare const AGGREGATE_DENSITIES: AggregateDensity[];
|
|
6
|
+
/**
|
|
7
|
+
* Get density for a specific aggregate type
|
|
8
|
+
*
|
|
9
|
+
* @param type - Aggregate type
|
|
10
|
+
* @returns Density in kg/m³
|
|
11
|
+
*/
|
|
12
|
+
export declare function getAggregateDensity(type: AggregateType): number;
|
|
13
|
+
/**
|
|
14
|
+
* Calculate how much area can be covered with a given volume at a specific depth
|
|
15
|
+
*
|
|
16
|
+
* @param volumeM3 - Volume in cubic meters
|
|
17
|
+
* @param depthCm - Depth in centimeters
|
|
18
|
+
* @returns Coverage area in square meters
|
|
19
|
+
*/
|
|
20
|
+
export declare function aggregateCoverage(volumeM3: number, depthCm: number): number;
|
|
21
|
+
/**
|
|
22
|
+
* Calculate aggregate volume, weight, and coverage
|
|
23
|
+
*
|
|
24
|
+
* Formulas:
|
|
25
|
+
* - Volume = length × width × depth
|
|
26
|
+
* - Weight = volume × density
|
|
27
|
+
* - Coverage area = length × width (footprint)
|
|
28
|
+
*
|
|
29
|
+
* @param input - Aggregate input parameters
|
|
30
|
+
* @returns Aggregate calculation results
|
|
31
|
+
*/
|
|
32
|
+
export declare function aggregate(input: AggregateInput): AggregateResult;
|
|
33
|
+
//# sourceMappingURL=aggregate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../src/construction/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnG;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,EAOjD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAG/D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAM3E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAmDhE"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { roundTo } from '../utils.js';
|
|
2
|
+
/**
|
|
3
|
+
* Common aggregate densities (kg/m³)
|
|
4
|
+
*/
|
|
5
|
+
export const AGGREGATE_DENSITIES = [
|
|
6
|
+
{ type: 'gravel', density: 1850, label: 'Gravel' },
|
|
7
|
+
{ type: 'sand', density: 1600, label: 'Sand' },
|
|
8
|
+
{ type: 'crushed_stone', density: 1600, label: 'Crushed Stone' },
|
|
9
|
+
{ type: 'topsoil', density: 1100, label: 'Topsoil' },
|
|
10
|
+
{ type: 'mulch', density: 400, label: 'Mulch' },
|
|
11
|
+
{ type: 'custom', density: 0, label: 'Custom' },
|
|
12
|
+
];
|
|
13
|
+
/**
|
|
14
|
+
* Get density for a specific aggregate type
|
|
15
|
+
*
|
|
16
|
+
* @param type - Aggregate type
|
|
17
|
+
* @returns Density in kg/m³
|
|
18
|
+
*/
|
|
19
|
+
export function getAggregateDensity(type) {
|
|
20
|
+
const aggregate = AGGREGATE_DENSITIES.find(a => a.type === type);
|
|
21
|
+
return aggregate?.density ?? 0;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Calculate how much area can be covered with a given volume at a specific depth
|
|
25
|
+
*
|
|
26
|
+
* @param volumeM3 - Volume in cubic meters
|
|
27
|
+
* @param depthCm - Depth in centimeters
|
|
28
|
+
* @returns Coverage area in square meters
|
|
29
|
+
*/
|
|
30
|
+
export function aggregateCoverage(volumeM3, depthCm) {
|
|
31
|
+
if (volumeM3 <= 0 || depthCm <= 0) {
|
|
32
|
+
throw new Error('Volume and depth must be greater than zero');
|
|
33
|
+
}
|
|
34
|
+
const depthM = depthCm / 100;
|
|
35
|
+
return roundTo(volumeM3 / depthM, 2);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Calculate aggregate volume, weight, and coverage
|
|
39
|
+
*
|
|
40
|
+
* Formulas:
|
|
41
|
+
* - Volume = length × width × depth
|
|
42
|
+
* - Weight = volume × density
|
|
43
|
+
* - Coverage area = length × width (footprint)
|
|
44
|
+
*
|
|
45
|
+
* @param input - Aggregate input parameters
|
|
46
|
+
* @returns Aggregate calculation results
|
|
47
|
+
*/
|
|
48
|
+
export function aggregate(input) {
|
|
49
|
+
const { length, width, depth, depthUnit, aggregateType, customDensity } = input;
|
|
50
|
+
// Validate inputs
|
|
51
|
+
if (length <= 0 || width <= 0 || depth <= 0) {
|
|
52
|
+
throw new Error('All dimensions must be greater than zero');
|
|
53
|
+
}
|
|
54
|
+
// Convert depth to meters if in centimeters
|
|
55
|
+
const depthInMeters = depthUnit === 'centimeters' ? depth / 100 : depth;
|
|
56
|
+
// Get density based on aggregate type
|
|
57
|
+
let density;
|
|
58
|
+
if (aggregateType === 'custom') {
|
|
59
|
+
if (customDensity === undefined || customDensity <= 0) {
|
|
60
|
+
throw new Error('Custom density must be provided and greater than zero');
|
|
61
|
+
}
|
|
62
|
+
density = customDensity;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
const aggregateInfo = AGGREGATE_DENSITIES.find(a => a.type === aggregateType);
|
|
66
|
+
if (!aggregateInfo) {
|
|
67
|
+
throw new Error(`Unknown aggregate type: ${aggregateType}`);
|
|
68
|
+
}
|
|
69
|
+
density = aggregateInfo.density;
|
|
70
|
+
}
|
|
71
|
+
// Calculate volume (m³)
|
|
72
|
+
const volume = roundTo(length * width * depthInMeters, 3);
|
|
73
|
+
// Calculate weight (kg)
|
|
74
|
+
const weight = roundTo(volume * density, 2);
|
|
75
|
+
// Convert to metric tonnes
|
|
76
|
+
const weightTonnes = roundTo(weight / 1000, 3);
|
|
77
|
+
// Coverage area is simply length × width (the footprint)
|
|
78
|
+
const coverageArea = roundTo(length * width, 2);
|
|
79
|
+
// Calculate bags needed
|
|
80
|
+
const bags20kg = Math.ceil(weight / 20);
|
|
81
|
+
const bags25kg = Math.ceil(weight / 25);
|
|
82
|
+
return {
|
|
83
|
+
volume,
|
|
84
|
+
weight,
|
|
85
|
+
weightTonnes,
|
|
86
|
+
coverageArea,
|
|
87
|
+
density,
|
|
88
|
+
bags20kg,
|
|
89
|
+
bags25kg,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=aggregate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../src/construction/aggregate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAuB;IACrD,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;IAClD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;IAC9C,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE;IAChE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;IACpD,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE;IAC/C,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;CAChD,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAmB;IACrD,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACjE,OAAO,SAAS,EAAE,OAAO,IAAI,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,OAAe;IACjE,IAAI,QAAQ,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,GAAG,GAAG,CAAC;IAC7B,OAAO,OAAO,CAAC,QAAQ,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAEhF,kBAAkB;IAClB,IAAI,MAAM,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,4CAA4C;IAC5C,MAAM,aAAa,GAAG,SAAS,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;IAExE,sCAAsC;IACtC,IAAI,OAAe,CAAC;IACpB,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,GAAG,aAAa,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAC9E,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,aAAa,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,wBAAwB;IACxB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC;IAE1D,wBAAwB;IACxB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;IAE5C,2BAA2B;IAC3B,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IAE/C,yDAAyD;IACzD,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;IAEhD,wBAAwB;IACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAExC,OAAO;QACL,MAAM;QACN,MAAM;QACN,YAAY;QACZ,YAAY;QACZ,OAAO;QACP,QAAQ;QACR,QAAQ;KACT,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { LoadInput, LoadResult } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Calculate beam load analysis results
|
|
4
|
+
*
|
|
5
|
+
* Supports simple, cantilever, and fixed beam supports with
|
|
6
|
+
* uniform, concentrated, or combined loading.
|
|
7
|
+
*
|
|
8
|
+
* @param input - Beam load input parameters
|
|
9
|
+
* @returns Load analysis result or null for invalid inputs
|
|
10
|
+
*/
|
|
11
|
+
export declare function beamLoad(input: LoadInput): LoadResult | null;
|
|
12
|
+
//# sourceMappingURL=beamLoad.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"beamLoad.d.ts","sourceRoot":"","sources":["../../src/construction/beamLoad.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,IAAI,CAkJ5D"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculate beam load analysis results
|
|
3
|
+
*
|
|
4
|
+
* Supports simple, cantilever, and fixed beam supports with
|
|
5
|
+
* uniform, concentrated, or combined loading.
|
|
6
|
+
*
|
|
7
|
+
* @param input - Beam load input parameters
|
|
8
|
+
* @returns Load analysis result or null for invalid inputs
|
|
9
|
+
*/
|
|
10
|
+
export function beamLoad(input) {
|
|
11
|
+
const { loadType, support, span, uniformLoad, pointLoad, pointPosition } = input;
|
|
12
|
+
// Validate span
|
|
13
|
+
if (span <= 0) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
// Validate required inputs based on load type
|
|
17
|
+
if (loadType === 'uniform' && (uniformLoad === undefined || uniformLoad === null)) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
if (loadType === 'concentrated' && (pointLoad === undefined || pointLoad === null)) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
if (loadType === 'combined') {
|
|
24
|
+
if (uniformLoad === undefined || uniformLoad === null)
|
|
25
|
+
return null;
|
|
26
|
+
if (pointLoad === undefined || pointLoad === null)
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
const w = uniformLoad ?? 0;
|
|
30
|
+
const P = pointLoad ?? 0;
|
|
31
|
+
const a = pointPosition ?? span / 2; // default to midspan
|
|
32
|
+
const b = span - a;
|
|
33
|
+
const L = span;
|
|
34
|
+
let maxMoment = 0;
|
|
35
|
+
let maxShear = 0;
|
|
36
|
+
let maxDeflectionCoeff = 0;
|
|
37
|
+
let reactionLeft = 0;
|
|
38
|
+
let reactionRight = 0;
|
|
39
|
+
let momentAtPoint;
|
|
40
|
+
if (support === 'simple') {
|
|
41
|
+
if (loadType === 'uniform') {
|
|
42
|
+
// Simple beam with uniform load
|
|
43
|
+
// M_max = wL²/8
|
|
44
|
+
maxMoment = (w * L * L) / 8;
|
|
45
|
+
// V_max = wL/2
|
|
46
|
+
maxShear = (w * L) / 2;
|
|
47
|
+
// δ_max coefficient = 5/384 (multiply by wL⁴/EI)
|
|
48
|
+
maxDeflectionCoeff = 5 / 384;
|
|
49
|
+
reactionLeft = (w * L) / 2;
|
|
50
|
+
reactionRight = (w * L) / 2;
|
|
51
|
+
}
|
|
52
|
+
else if (loadType === 'concentrated') {
|
|
53
|
+
// Simple beam with point load
|
|
54
|
+
// M_max = P×a×b/L (maximum at point of application)
|
|
55
|
+
maxMoment = (P * a * b) / L;
|
|
56
|
+
// Reactions
|
|
57
|
+
reactionLeft = (P * b) / L;
|
|
58
|
+
reactionRight = (P * a) / L;
|
|
59
|
+
// V_max = max(R_L, R_R)
|
|
60
|
+
maxShear = Math.max(reactionLeft, reactionRight);
|
|
61
|
+
// δ_max coefficient for center load = 1/48
|
|
62
|
+
maxDeflectionCoeff = 1 / 48;
|
|
63
|
+
momentAtPoint = maxMoment;
|
|
64
|
+
}
|
|
65
|
+
else if (loadType === 'combined') {
|
|
66
|
+
// Combined uniform + point load
|
|
67
|
+
const uniformReaction = (w * L) / 2;
|
|
68
|
+
const pointReactionLeft = (P * b) / L;
|
|
69
|
+
const pointReactionRight = (P * a) / L;
|
|
70
|
+
reactionLeft = uniformReaction + pointReactionLeft;
|
|
71
|
+
reactionRight = uniformReaction + pointReactionRight;
|
|
72
|
+
// M_max for uniform = wL²/8, for point = Pab/L
|
|
73
|
+
const uniformMoment = (w * L * L) / 8;
|
|
74
|
+
const pointMoment = (P * a * b) / L;
|
|
75
|
+
maxMoment = uniformMoment + pointMoment;
|
|
76
|
+
maxShear = Math.max(reactionLeft, reactionRight);
|
|
77
|
+
maxDeflectionCoeff = 5 / 384; // approximate
|
|
78
|
+
momentAtPoint = pointMoment;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else if (support === 'cantilever') {
|
|
82
|
+
if (loadType === 'uniform') {
|
|
83
|
+
// Cantilever with uniform load
|
|
84
|
+
// M_max = wL²/2 (at fixed end)
|
|
85
|
+
maxMoment = (w * L * L) / 2;
|
|
86
|
+
// V_max = wL
|
|
87
|
+
maxShear = w * L;
|
|
88
|
+
// δ_max coefficient = 1/8 (multiply by wL⁴/EI)
|
|
89
|
+
maxDeflectionCoeff = 1 / 8;
|
|
90
|
+
reactionLeft = w * L; // reaction at fixed end
|
|
91
|
+
reactionRight = 0;
|
|
92
|
+
}
|
|
93
|
+
else if (loadType === 'concentrated') {
|
|
94
|
+
// Cantilever with point load at free end (or specified position)
|
|
95
|
+
// M_max = P×a (at fixed end)
|
|
96
|
+
maxMoment = P * a;
|
|
97
|
+
maxShear = P;
|
|
98
|
+
// δ_max coefficient = 1/3 (multiply by PL³/EI)
|
|
99
|
+
maxDeflectionCoeff = 1 / 3;
|
|
100
|
+
reactionLeft = P;
|
|
101
|
+
reactionRight = 0;
|
|
102
|
+
momentAtPoint = P * a;
|
|
103
|
+
}
|
|
104
|
+
else if (loadType === 'combined') {
|
|
105
|
+
maxMoment = (w * L * L) / 2 + P * a;
|
|
106
|
+
maxShear = w * L + P;
|
|
107
|
+
maxDeflectionCoeff = 1 / 8;
|
|
108
|
+
reactionLeft = w * L + P;
|
|
109
|
+
reactionRight = 0;
|
|
110
|
+
momentAtPoint = P * a;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else if (support === 'fixed') {
|
|
114
|
+
if (loadType === 'uniform') {
|
|
115
|
+
// Fixed-fixed beam with uniform load
|
|
116
|
+
// M_max = wL²/12 (at supports), M_center = wL²/24
|
|
117
|
+
maxMoment = (w * L * L) / 12;
|
|
118
|
+
// V_max = wL/2
|
|
119
|
+
maxShear = (w * L) / 2;
|
|
120
|
+
// δ_max coefficient = 1/384 (multiply by wL⁴/EI)
|
|
121
|
+
maxDeflectionCoeff = 1 / 384;
|
|
122
|
+
reactionLeft = (w * L) / 2;
|
|
123
|
+
reactionRight = (w * L) / 2;
|
|
124
|
+
}
|
|
125
|
+
else if (loadType === 'concentrated') {
|
|
126
|
+
// Fixed-fixed beam with center point load
|
|
127
|
+
// M_max = PL/8 (at supports when a=L/2)
|
|
128
|
+
maxMoment = (P * L) / 8;
|
|
129
|
+
reactionLeft = P / 2;
|
|
130
|
+
reactionRight = P / 2;
|
|
131
|
+
maxShear = P / 2;
|
|
132
|
+
maxDeflectionCoeff = 1 / 192;
|
|
133
|
+
momentAtPoint = (P * L) / 8;
|
|
134
|
+
}
|
|
135
|
+
else if (loadType === 'combined') {
|
|
136
|
+
maxMoment = (w * L * L) / 12 + (P * L) / 8;
|
|
137
|
+
maxShear = (w * L) / 2 + P / 2;
|
|
138
|
+
maxDeflectionCoeff = 1 / 384;
|
|
139
|
+
reactionLeft = (w * L) / 2 + P / 2;
|
|
140
|
+
reactionRight = (w * L) / 2 + P / 2;
|
|
141
|
+
momentAtPoint = (P * L) / 8;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
const result = {
|
|
145
|
+
maxMoment,
|
|
146
|
+
maxShear,
|
|
147
|
+
maxDeflectionCoeff,
|
|
148
|
+
reactionLeft,
|
|
149
|
+
reactionRight,
|
|
150
|
+
};
|
|
151
|
+
if (momentAtPoint !== undefined) {
|
|
152
|
+
result.momentAtPoint = momentAtPoint;
|
|
153
|
+
}
|
|
154
|
+
return result;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=beamLoad.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"beamLoad.js","sourceRoot":"","sources":["../../src/construction/beamLoad.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { BrickInput, BrickResult, BrickSize, BrickDimensions } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Standard brick sizes in mm
|
|
4
|
+
*/
|
|
5
|
+
export declare const BRICK_SIZES: Record<Exclude<BrickSize, 'custom'>, BrickDimensions>;
|
|
6
|
+
/**
|
|
7
|
+
* Calculate brick quantity for a wall
|
|
8
|
+
*
|
|
9
|
+
* Formulas:
|
|
10
|
+
* - Bricks per m² = 1,000,000 / ((brick length + mortar) × (brick height + mortar))
|
|
11
|
+
* - Total bricks = wall area × bricks per m² × (1 + waste factor)
|
|
12
|
+
*
|
|
13
|
+
* @param input - Brick input parameters
|
|
14
|
+
* @returns Brick calculation results
|
|
15
|
+
*/
|
|
16
|
+
export declare function brick(input: BrickInput): BrickResult;
|
|
17
|
+
//# sourceMappingURL=brick.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brick.d.ts","sourceRoot":"","sources":["../../src/construction/brick.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGtF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,eAAe,CAK7E,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAqCpD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { roundTo } from '../utils.js';
|
|
2
|
+
/**
|
|
3
|
+
* Standard brick sizes in mm
|
|
4
|
+
*/
|
|
5
|
+
export const BRICK_SIZES = {
|
|
6
|
+
modular: { length: 194, height: 57 }, // 7.625" x 2.25"
|
|
7
|
+
standard: { length: 203, height: 57 }, // 8" x 2.25"
|
|
8
|
+
queen: { length: 203, height: 70 }, // 8" x 2.75"
|
|
9
|
+
king: { length: 244, height: 70 }, // 9.625" x 2.75"
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Calculate brick quantity for a wall
|
|
13
|
+
*
|
|
14
|
+
* Formulas:
|
|
15
|
+
* - Bricks per m² = 1,000,000 / ((brick length + mortar) × (brick height + mortar))
|
|
16
|
+
* - Total bricks = wall area × bricks per m² × (1 + waste factor)
|
|
17
|
+
*
|
|
18
|
+
* @param input - Brick input parameters
|
|
19
|
+
* @returns Brick calculation results
|
|
20
|
+
*/
|
|
21
|
+
export function brick(input) {
|
|
22
|
+
const { wallArea, brickSize, customLength, customHeight, mortarThickness, wasteFactor } = input;
|
|
23
|
+
// Get brick dimensions
|
|
24
|
+
let length;
|
|
25
|
+
let height;
|
|
26
|
+
if (brickSize === 'custom') {
|
|
27
|
+
length = customLength ?? 200;
|
|
28
|
+
height = customHeight ?? 60;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
const dims = BRICK_SIZES[brickSize];
|
|
32
|
+
length = dims.length;
|
|
33
|
+
height = dims.height;
|
|
34
|
+
}
|
|
35
|
+
// Bricks per m² = 1,000,000 / ((brick length + mortar) × (brick height + mortar))
|
|
36
|
+
const brickWithMortarLength = length + mortarThickness;
|
|
37
|
+
const brickWithMortarHeight = height + mortarThickness;
|
|
38
|
+
const bricksPerSqMeter = 1000000 / (brickWithMortarLength * brickWithMortarHeight);
|
|
39
|
+
// Total bricks without waste
|
|
40
|
+
const bricksWithoutWaste = wallArea * bricksPerSqMeter;
|
|
41
|
+
// Total bricks with waste factor
|
|
42
|
+
const wasteMultiplier = 1 + (wasteFactor / 100);
|
|
43
|
+
const totalBricks = bricksWithoutWaste * wasteMultiplier;
|
|
44
|
+
// Wasted bricks
|
|
45
|
+
const wastedBricks = totalBricks - bricksWithoutWaste;
|
|
46
|
+
return {
|
|
47
|
+
bricksPerSqMeter: roundTo(bricksPerSqMeter, 1),
|
|
48
|
+
totalBricks: Math.ceil(totalBricks),
|
|
49
|
+
bricksWithoutWaste: Math.ceil(bricksWithoutWaste),
|
|
50
|
+
wastedBricks: Math.ceil(wastedBricks),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=brick.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brick.js","sourceRoot":"","sources":["../../src/construction/brick.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAA0D;IAChF,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAK,iBAAiB;IAC1D,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAI,aAAa;IACtD,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAO,aAAa;IACtD,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAQ,iBAAiB;CAC3D,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAEhG,uBAAuB;IACvB,IAAI,MAAc,CAAC;IACnB,IAAI,MAAc,CAAC;IAEnB,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,GAAG,YAAY,IAAI,GAAG,CAAC;QAC7B,MAAM,GAAG,YAAY,IAAI,EAAE,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,WAAW,CAAC,SAAyC,CAAC,CAAC;QACpE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACrB,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,kFAAkF;IAClF,MAAM,qBAAqB,GAAG,MAAM,GAAG,eAAe,CAAC;IACvD,MAAM,qBAAqB,GAAG,MAAM,GAAG,eAAe,CAAC;IACvD,MAAM,gBAAgB,GAAG,OAAO,GAAG,CAAC,qBAAqB,GAAG,qBAAqB,CAAC,CAAC;IAEnF,6BAA6B;IAC7B,MAAM,kBAAkB,GAAG,QAAQ,GAAG,gBAAgB,CAAC;IAEvD,iCAAiC;IACjC,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,kBAAkB,GAAG,eAAe,CAAC;IAEzD,gBAAgB;IAChB,MAAM,YAAY,GAAG,WAAW,GAAG,kBAAkB,CAAC;IAEtD,OAAO;QACL,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9C,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QACnC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACjD,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;KACtC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ConcreteInput, ConcreteResult } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Calculate concrete mix design quantities
|
|
4
|
+
*
|
|
5
|
+
* @param input - Concrete grade and volume
|
|
6
|
+
* @returns Material quantities in kg (cement, sand, gravel) and liters (water)
|
|
7
|
+
*/
|
|
8
|
+
export declare function concreteMix(input: ConcreteInput): ConcreteResult;
|
|
9
|
+
//# sourceMappingURL=concreteMix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concreteMix.d.ts","sourceRoot":"","sources":["../../src/construction/concreteMix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAwB/E;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAgBhE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { roundTo } from '../utils.js';
|
|
2
|
+
const MIX_DESIGNS = {
|
|
3
|
+
'15': { cementPerM3: 280, sandRatio: 2, gravelRatio: 4, wcRatio: 0.60, ratioString: '1 : 2 : 4' },
|
|
4
|
+
'20': { cementPerM3: 330, sandRatio: 1.5, gravelRatio: 3, wcRatio: 0.55, ratioString: '1 : 1.5 : 3' },
|
|
5
|
+
'25': { cementPerM3: 370, sandRatio: 1, gravelRatio: 2, wcRatio: 0.50, ratioString: '1 : 1 : 2' },
|
|
6
|
+
'30': { cementPerM3: 400, sandRatio: 1, gravelRatio: 2, wcRatio: 0.45, ratioString: '1 : 1 : 2' },
|
|
7
|
+
'35': { cementPerM3: 430, sandRatio: 1, gravelRatio: 1.5, wcRatio: 0.42, ratioString: '1 : 1 : 1.5' },
|
|
8
|
+
'40': { cementPerM3: 460, sandRatio: 1, gravelRatio: 1.5, wcRatio: 0.40, ratioString: '1 : 1 : 1.5' },
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Calculate concrete mix design quantities
|
|
12
|
+
*
|
|
13
|
+
* @param input - Concrete grade and volume
|
|
14
|
+
* @returns Material quantities in kg (cement, sand, gravel) and liters (water)
|
|
15
|
+
*/
|
|
16
|
+
export function concreteMix(input) {
|
|
17
|
+
const { grade, volume } = input;
|
|
18
|
+
const design = MIX_DESIGNS[grade];
|
|
19
|
+
const cement = roundTo(design.cementPerM3 * volume, 2);
|
|
20
|
+
const sand = roundTo(cement * design.sandRatio, 2);
|
|
21
|
+
const gravel = roundTo(cement * design.gravelRatio, 2);
|
|
22
|
+
const water = roundTo(cement * design.wcRatio, 2);
|
|
23
|
+
return {
|
|
24
|
+
cement,
|
|
25
|
+
sand,
|
|
26
|
+
gravel,
|
|
27
|
+
water,
|
|
28
|
+
ratio: design.ratioString,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=concreteMix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concreteMix.js","sourceRoot":"","sources":["../../src/construction/concreteMix.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AActC,MAAM,WAAW,GAAqC;IACpD,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE;IACjG,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;IACrG,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE;IACjG,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE;IACjG,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;IACrG,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;CACtG,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAoB;IAC9C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAChC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAElC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAElD,OAAO;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK,EAAE,MAAM,CAAC,WAAW;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { EarthworkInput, EarthworkResult } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Calculate earthwork volumes
|
|
4
|
+
*
|
|
5
|
+
* Bank Volume: Volume in natural/undisturbed state (in-situ)
|
|
6
|
+
* Loose Volume: Volume after excavation (swelled)
|
|
7
|
+
* Compacted Volume: Volume after compaction (shrunk)
|
|
8
|
+
*
|
|
9
|
+
* @param input - Earthwork dimensions and factors
|
|
10
|
+
* @returns Volume calculations in m³
|
|
11
|
+
*/
|
|
12
|
+
export declare function earthwork(input: EarthworkInput): EarthworkResult;
|
|
13
|
+
//# sourceMappingURL=earthwork.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"earthwork.d.ts","sourceRoot":"","sources":["../../src/construction/earthwork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAiBhE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculate earthwork volumes
|
|
3
|
+
*
|
|
4
|
+
* Bank Volume: Volume in natural/undisturbed state (in-situ)
|
|
5
|
+
* Loose Volume: Volume after excavation (swelled)
|
|
6
|
+
* Compacted Volume: Volume after compaction (shrunk)
|
|
7
|
+
*
|
|
8
|
+
* @param input - Earthwork dimensions and factors
|
|
9
|
+
* @returns Volume calculations in m³
|
|
10
|
+
*/
|
|
11
|
+
export function earthwork(input) {
|
|
12
|
+
const { length, width, depth, swellFactor, shrinkFactor } = input;
|
|
13
|
+
// Bank volume = undisturbed volume
|
|
14
|
+
const bankVolume = length * width * depth;
|
|
15
|
+
// Loose volume = bank volume × swell factor
|
|
16
|
+
const looseVolume = bankVolume * swellFactor;
|
|
17
|
+
// Compacted volume = bank volume × shrink factor
|
|
18
|
+
const compactedVolume = bankVolume * shrinkFactor;
|
|
19
|
+
return {
|
|
20
|
+
bankVolume,
|
|
21
|
+
looseVolume,
|
|
22
|
+
compactedVolume,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=earthwork.js.map
|