@senior-agronegocio/angular-components 0.0.9867 → 0.0.9868

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.
Files changed (31) hide show
  1. package/bundles/senior-agronegocio-angular-components.umd.js +370 -4
  2. package/bundles/senior-agronegocio-angular-components.umd.js.map +1 -1
  3. package/bundles/senior-agronegocio-angular-components.umd.min.js +2 -2
  4. package/bundles/senior-agronegocio-angular-components.umd.min.js.map +1 -1
  5. package/common/agro-array-utils.class.d.ts +13 -0
  6. package/common/agro-logics.class.d.ts +5 -0
  7. package/common/agro-object-utils.class.d.ts +3 -1
  8. package/common/agro-unit-converter.class.d.ts +23 -0
  9. package/common/index.d.ts +1 -0
  10. package/enums/index.d.ts +1 -0
  11. package/enums/unit-measurement.enum.d.ts +49 -0
  12. package/esm2015/common/agro-array-utils.class.js +19 -1
  13. package/esm2015/common/agro-logics.class.js +11 -6
  14. package/esm2015/common/agro-object-utils.class.js +28 -2
  15. package/esm2015/common/agro-unit-converter.class.js +256 -0
  16. package/esm2015/common/index.js +2 -1
  17. package/esm2015/enums/index.js +2 -1
  18. package/esm2015/enums/unit-measurement.enum.js +60 -0
  19. package/esm5/common/agro-array-utils.class.js +19 -1
  20. package/esm5/common/agro-logics.class.js +10 -4
  21. package/esm5/common/agro-object-utils.class.js +28 -2
  22. package/esm5/common/agro-unit-converter.class.js +259 -0
  23. package/esm5/common/index.js +2 -1
  24. package/esm5/enums/index.js +2 -1
  25. package/esm5/enums/unit-measurement.enum.js +60 -0
  26. package/fesm2015/senior-agronegocio-angular-components.js +369 -7
  27. package/fesm2015/senior-agronegocio-angular-components.js.map +1 -1
  28. package/fesm5/senior-agronegocio-angular-components.js +370 -5
  29. package/fesm5/senior-agronegocio-angular-components.js.map +1 -1
  30. package/package.json +1 -1
  31. package/senior-agronegocio-angular-components.metadata.json +1 -1
@@ -1469,6 +1469,66 @@
1469
1469
  HttpCodes[HttpCodes["NetworkAuthenticationRequired"] = 511] = "NetworkAuthenticationRequired";
1470
1470
  })(exports.HttpCodes || (exports.HttpCodes = {}));
1471
1471
 
1472
+
1473
+ (function (UnitOfMeasurement) {
1474
+ // Comprimento
1475
+ UnitOfMeasurement["METRO"] = "m";
1476
+ UnitOfMeasurement["CENTIMETRO"] = "cm";
1477
+ UnitOfMeasurement["MILIMETRO"] = "mm";
1478
+ UnitOfMeasurement["QUILOMETRO"] = "km";
1479
+ UnitOfMeasurement["POLEGADA"] = "in";
1480
+ UnitOfMeasurement["PE"] = "ft";
1481
+ // Massa
1482
+ UnitOfMeasurement["GRAMA"] = "g";
1483
+ UnitOfMeasurement["QUILOGRAMA"] = "kg";
1484
+ UnitOfMeasurement["TONELADA"] = "t";
1485
+ UnitOfMeasurement["LIBRA"] = "lb";
1486
+ UnitOfMeasurement["SACA"] = "saca";
1487
+ // Área
1488
+ UnitOfMeasurement["METRO_QUADRADO"] = "m\u00B2";
1489
+ UnitOfMeasurement["CENTIMETRO_QUADRADO"] = "cm\u00B2";
1490
+ UnitOfMeasurement["HECTARE"] = "ha";
1491
+ UnitOfMeasurement["ALQUEIRE_50x50"] = "alq50x50";
1492
+ UnitOfMeasurement["ALQUEIRE_50x75"] = "alq50x75";
1493
+ UnitOfMeasurement["ALQUEIRE_DO_NORTE"] = "alqDoNorte";
1494
+ UnitOfMeasurement["ALQUEIRE_75x80"] = "alq75x80";
1495
+ UnitOfMeasurement["ALQUEIRE_79x79"] = "alq79x79";
1496
+ UnitOfMeasurement["ALQUEIRE_80x80"] = "alq80x80";
1497
+ UnitOfMeasurement["ALQUEIRE_75x100"] = "alq75x100";
1498
+ UnitOfMeasurement["ALQUEIRE_100x150"] = "alq100x150";
1499
+ UnitOfMeasurement["ALQUEIRE_BAIANO"] = "alqBaiano";
1500
+ UnitOfMeasurement["ALQUEIRAO"] = "alqueirao";
1501
+ UnitOfMeasurement["ALQUEIRE_PAULISTA"] = "alqPaulista";
1502
+ UnitOfMeasurement["ALQUEIRE_MINEIRO"] = "alqMineiro";
1503
+ // Volume
1504
+ UnitOfMeasurement["LITRO"] = "L";
1505
+ UnitOfMeasurement["MILILITRO"] = "mL";
1506
+ UnitOfMeasurement["METRO_CUBICO"] = "m\u00B3";
1507
+ // Tempo
1508
+ UnitOfMeasurement["SEGUNDO"] = "s";
1509
+ UnitOfMeasurement["MINUTO"] = "min";
1510
+ UnitOfMeasurement["HORA"] = "h";
1511
+ UnitOfMeasurement["DIA"] = "dia";
1512
+ // Temperatura
1513
+ UnitOfMeasurement["CELSIUS"] = "\u00B0C";
1514
+ UnitOfMeasurement["FAHRENHEIT"] = "\u00B0F";
1515
+ UnitOfMeasurement["KELVIN"] = "K";
1516
+ // Energia
1517
+ UnitOfMeasurement["JOULE"] = "J";
1518
+ UnitOfMeasurement["CALORIA"] = "cal";
1519
+ UnitOfMeasurement["QUILOWATT_HORA"] = "kWh";
1520
+ // Eletricidade
1521
+ UnitOfMeasurement["VOLT"] = "V";
1522
+ UnitOfMeasurement["AMPERE"] = "A";
1523
+ UnitOfMeasurement["WATT"] = "W";
1524
+ // Dados digitais
1525
+ UnitOfMeasurement["BYTE"] = "B";
1526
+ UnitOfMeasurement["KILOBYTE"] = "KB";
1527
+ UnitOfMeasurement["MEGABYTE"] = "MB";
1528
+ UnitOfMeasurement["GIGABYTE"] = "GB";
1529
+ UnitOfMeasurement["TERABYTE"] = "TB";
1530
+ })(exports.UnitOfMeasurement || (exports.UnitOfMeasurement = {}));
1531
+
1472
1532
  /**
1473
1533
  * Classe utilitária para operações de objeto.
1474
1534
  */
@@ -1587,6 +1647,20 @@
1587
1647
  }
1588
1648
  return true;
1589
1649
  };
1650
+ AgroObjectUtils.compareArrays = function (arr1, arr2) {
1651
+ if (arr1.length !== arr2.length) {
1652
+ return false;
1653
+ }
1654
+ return arr1.every(function (v, i) { return AgroObjectUtils.isEqual(v, arr2[i]); });
1655
+ };
1656
+ AgroObjectUtils.compareObjects = function (obj1, obj2) {
1657
+ var keys1 = Object.keys(obj1);
1658
+ var keys2 = Object.keys(obj2);
1659
+ if (keys1.length !== keys2.length) {
1660
+ return false;
1661
+ }
1662
+ return keys1.every(function (key) { return obj2.hasOwnProperty(key) && AgroObjectUtils.isEqual(obj1[key], obj2[key]); });
1663
+ };
1590
1664
  /**
1591
1665
  * Compara dois objetos para verificar se são iguais.
1592
1666
  * @param obj1 - O primeiro objeto a ser comparado.
@@ -1594,7 +1668,19 @@
1594
1668
  * @returns True se os objetos forem iguais, false caso contrário.
1595
1669
  */
1596
1670
  AgroObjectUtils.isEqual = function (obj1, obj2) {
1597
- return JSON.stringify(obj1) === JSON.stringify(obj2);
1671
+ if (obj1 === obj2) {
1672
+ return true;
1673
+ }
1674
+ if (obj1 === null || obj2 === null || typeof obj1 !== "object" || typeof obj2 !== "object") {
1675
+ return false;
1676
+ }
1677
+ if (Array.isArray(obj1) && Array.isArray(obj2)) {
1678
+ return this.compareArrays(obj1, obj2);
1679
+ }
1680
+ if (Array.isArray(obj1) || Array.isArray(obj2)) {
1681
+ return false;
1682
+ }
1683
+ return this.compareObjects(obj1, obj2);
1598
1684
  };
1599
1685
  /**
1600
1686
  * Verifica se um objeto é nulo.
@@ -3116,6 +3202,13 @@
3116
3202
  AgroArrayUtils.isEmpty = function (array) {
3117
3203
  return AgroArrayUtils.isArray(array) && array.length === 0;
3118
3204
  };
3205
+ /**
3206
+ * Verifica se um array é vazio.
3207
+ * @param array Array a ser verificado.
3208
+ */
3209
+ AgroArrayUtils.isNotEmpty = function (array) {
3210
+ return !AgroArrayUtils.isEmpty(array);
3211
+ };
3119
3212
  /**
3120
3213
  * Localiza um item em um array de objetos de acordo com a propriedade e valor informados.
3121
3214
  */
@@ -3138,6 +3231,16 @@
3138
3231
  }
3139
3232
  return null;
3140
3233
  };
3234
+ /**
3235
+ * Valida se dois arrays são iguais.
3236
+ * Considera se os arrays possuem os mesmos elementos na mesma ordem.
3237
+ * @param arr1
3238
+ * @param arr2
3239
+ * @returns
3240
+ */
3241
+ AgroArrayUtils.arraysAreEqual = function (arr1, arr2) {
3242
+ return AgroObjectUtils.isEqual(arr1, arr2);
3243
+ };
3141
3244
  return AgroArrayUtils;
3142
3245
  }());
3143
3246
 
@@ -3154,6 +3257,7 @@
3154
3257
  */
3155
3258
  AgroLogics.entityDistributionStats = function (data, keys) {
3156
3259
  var e_1, _a;
3260
+ var _this = this;
3157
3261
  var total = data.length;
3158
3262
  var map = new Map();
3159
3263
  var resolvePath = function (source, path) {
@@ -3163,9 +3267,8 @@
3163
3267
  try {
3164
3268
  for (var parts_1 = __values(parts), parts_1_1 = parts_1.next(); !parts_1_1.done; parts_1_1 = parts_1.next()) {
3165
3269
  var p = parts_1_1.value;
3166
- if (value == null) {
3270
+ if (value == null)
3167
3271
  return undefined;
3168
- }
3169
3272
  value = value[p];
3170
3273
  }
3171
3274
  }
@@ -3219,14 +3322,276 @@
3219
3322
  var result = Array.from(map.values()).map(function (entry) { return ({
3220
3323
  data: entry.data,
3221
3324
  samplingQuantity: entry.count,
3222
- samplingSuccess: Math.round((entry.count / total) * exports.AGRO_NUMBERS.ONE_HUNDRED),
3325
+ samplingSuccess: Math.round((entry.count / total) * _this.PERCENT),
3223
3326
  }); });
3224
3327
  result.sort(function (a, b) { return b.samplingSuccess - a.samplingSuccess; });
3225
3328
  return result;
3226
3329
  };
3330
+ // 🔹 Constantes locais
3331
+ AgroLogics.FAHRENHEIT_OFFSET = 32;
3332
+ AgroLogics.FAHRENHEIT_NUMERATOR = 9;
3333
+ AgroLogics.FAHRENHEIT_DENOMINATOR = 5;
3334
+ AgroLogics.KELVIN_OFFSET = 273.15;
3335
+ AgroLogics.PERCENT = 100;
3227
3336
  return AgroLogics;
3228
3337
  }());
3229
3338
 
3339
+ var TWO_HUNDRED_SEVENTY_THREE_POINT_ONE_FIVE = 273.15;
3340
+ var AgroUnitConverter = /** @class */ (function () {
3341
+ function AgroUnitConverter() {
3342
+ var _a, _b, _c, _d, _e, _f, _g;
3343
+ // 🔹 Comprimento
3344
+ this.LENGTH_UNITS = [
3345
+ exports.UnitOfMeasurement.METRO,
3346
+ exports.UnitOfMeasurement.CENTIMETRO,
3347
+ exports.UnitOfMeasurement.MILIMETRO,
3348
+ exports.UnitOfMeasurement.QUILOMETRO,
3349
+ exports.UnitOfMeasurement.POLEGADA,
3350
+ exports.UnitOfMeasurement.PE,
3351
+ ];
3352
+ // 🔹 Massa
3353
+ this.MASS_UNITS = [
3354
+ exports.UnitOfMeasurement.GRAMA,
3355
+ exports.UnitOfMeasurement.QUILOGRAMA,
3356
+ exports.UnitOfMeasurement.TONELADA,
3357
+ exports.UnitOfMeasurement.LIBRA,
3358
+ exports.UnitOfMeasurement.SACA,
3359
+ ];
3360
+ // 🔹 Área
3361
+ this.AREA_UNITS = [
3362
+ exports.UnitOfMeasurement.METRO_QUADRADO,
3363
+ exports.UnitOfMeasurement.CENTIMETRO_QUADRADO,
3364
+ exports.UnitOfMeasurement.HECTARE,
3365
+ exports.UnitOfMeasurement.ALQUEIRE_50x50,
3366
+ exports.UnitOfMeasurement.ALQUEIRE_50x75,
3367
+ exports.UnitOfMeasurement.ALQUEIRE_DO_NORTE,
3368
+ exports.UnitOfMeasurement.ALQUEIRE_75x80,
3369
+ exports.UnitOfMeasurement.ALQUEIRE_79x79,
3370
+ exports.UnitOfMeasurement.ALQUEIRE_80x80,
3371
+ exports.UnitOfMeasurement.ALQUEIRE_75x100,
3372
+ exports.UnitOfMeasurement.ALQUEIRE_100x150,
3373
+ exports.UnitOfMeasurement.ALQUEIRE_BAIANO,
3374
+ exports.UnitOfMeasurement.ALQUEIRAO,
3375
+ exports.UnitOfMeasurement.ALQUEIRE_PAULISTA,
3376
+ exports.UnitOfMeasurement.ALQUEIRE_MINEIRO,
3377
+ ];
3378
+ // 🔹 Volume
3379
+ this.VOLUME_UNITS = [exports.UnitOfMeasurement.LITRO, exports.UnitOfMeasurement.MILILITRO, exports.UnitOfMeasurement.METRO_CUBICO];
3380
+ // 🔹 Tempo
3381
+ this.TIME_UNITS = [
3382
+ exports.UnitOfMeasurement.SEGUNDO,
3383
+ exports.UnitOfMeasurement.MINUTO,
3384
+ exports.UnitOfMeasurement.HORA,
3385
+ exports.UnitOfMeasurement.DIA,
3386
+ ];
3387
+ // 🔹 Temperatura
3388
+ this.TEMPERATURE_UNITS = [exports.UnitOfMeasurement.CELSIUS, exports.UnitOfMeasurement.FAHRENHEIT, exports.UnitOfMeasurement.KELVIN];
3389
+ // 🔹 Energia
3390
+ this.ENERGY_UNITS = [exports.UnitOfMeasurement.JOULE, exports.UnitOfMeasurement.CALORIA, exports.UnitOfMeasurement.QUILOWATT_HORA];
3391
+ // 🔹 Eletricidade
3392
+ this.ELECTRICITY_UNITS = [exports.UnitOfMeasurement.VOLT, exports.UnitOfMeasurement.AMPERE, exports.UnitOfMeasurement.WATT];
3393
+ // 🔹 Dados digitais
3394
+ this.DATA_UNITS = [
3395
+ exports.UnitOfMeasurement.BYTE,
3396
+ exports.UnitOfMeasurement.KILOBYTE,
3397
+ exports.UnitOfMeasurement.MEGABYTE,
3398
+ exports.UnitOfMeasurement.GIGABYTE,
3399
+ exports.UnitOfMeasurement.TERABYTE,
3400
+ ];
3401
+ this.conversionUnits = [
3402
+ {
3403
+ units: this.LENGTH_UNITS,
3404
+ factorTable: (_a = {},
3405
+ _a[exports.UnitOfMeasurement.METRO] = exports.AGRO_NUMBERS.ONE,
3406
+ _a[exports.UnitOfMeasurement.CENTIMETRO] = 0.01,
3407
+ _a[exports.UnitOfMeasurement.MILIMETRO] = 0.001,
3408
+ _a[exports.UnitOfMeasurement.QUILOMETRO] = exports.AGRO_NUMBERS.ONETHOUSAND,
3409
+ _a[exports.UnitOfMeasurement.POLEGADA] = 0.0254,
3410
+ _a[exports.UnitOfMeasurement.PE] = 0.3048,
3411
+ _a),
3412
+ },
3413
+ {
3414
+ units: this.MASS_UNITS,
3415
+ factorTable: (_b = {},
3416
+ _b[exports.UnitOfMeasurement.GRAMA] = 0.001,
3417
+ _b[exports.UnitOfMeasurement.QUILOGRAMA] = exports.AGRO_NUMBERS.ONE,
3418
+ _b[exports.UnitOfMeasurement.TONELADA] = exports.AGRO_NUMBERS.ONETHOUSAND,
3419
+ _b[exports.UnitOfMeasurement.LIBRA] = 0.453592,
3420
+ _b[exports.UnitOfMeasurement.SACA] = 60,
3421
+ _b),
3422
+ },
3423
+ {
3424
+ units: this.AREA_UNITS,
3425
+ factorTable: (_c = {},
3426
+ _c[exports.UnitOfMeasurement.METRO_QUADRADO] = exports.AGRO_NUMBERS.ONE,
3427
+ _c[exports.UnitOfMeasurement.CENTIMETRO_QUADRADO] = 0.0001,
3428
+ _c[exports.UnitOfMeasurement.HECTARE] = 10000,
3429
+ _c[exports.UnitOfMeasurement.ALQUEIRE_50x50] = 12100,
3430
+ _c[exports.UnitOfMeasurement.ALQUEIRE_50x75] = 18200,
3431
+ _c[exports.UnitOfMeasurement.ALQUEIRE_DO_NORTE] = 27200,
3432
+ _c[exports.UnitOfMeasurement.ALQUEIRE_75x80] = 29000,
3433
+ _c[exports.UnitOfMeasurement.ALQUEIRE_79x79] = 30200,
3434
+ _c[exports.UnitOfMeasurement.ALQUEIRE_80x80] = 31900,
3435
+ _c[exports.UnitOfMeasurement.ALQUEIRE_75x100] = 36300,
3436
+ _c[exports.UnitOfMeasurement.ALQUEIRE_100x150] = 72600,
3437
+ _c[exports.UnitOfMeasurement.ALQUEIRE_BAIANO] = 96800,
3438
+ _c[exports.UnitOfMeasurement.ALQUEIRAO] = 193600,
3439
+ _c[exports.UnitOfMeasurement.ALQUEIRE_PAULISTA] = 24200,
3440
+ _c[exports.UnitOfMeasurement.ALQUEIRE_MINEIRO] = 48400,
3441
+ _c),
3442
+ },
3443
+ {
3444
+ units: this.VOLUME_UNITS,
3445
+ factorTable: (_d = {},
3446
+ _d[exports.UnitOfMeasurement.LITRO] = exports.AGRO_NUMBERS.ONE,
3447
+ _d[exports.UnitOfMeasurement.MILILITRO] = 0.001,
3448
+ _d[exports.UnitOfMeasurement.METRO_CUBICO] = exports.AGRO_NUMBERS.ONETHOUSAND,
3449
+ _d),
3450
+ },
3451
+ {
3452
+ units: this.TIME_UNITS,
3453
+ factorTable: (_e = {},
3454
+ _e[exports.UnitOfMeasurement.SEGUNDO] = exports.AGRO_NUMBERS.ONE,
3455
+ _e[exports.UnitOfMeasurement.MINUTO] = exports.AGRO_NUMBERS.SIXTY_,
3456
+ _e[exports.UnitOfMeasurement.HORA] = 3600,
3457
+ _e[exports.UnitOfMeasurement.DIA] = 86400,
3458
+ _e),
3459
+ },
3460
+ {
3461
+ units: this.ENERGY_UNITS,
3462
+ factorTable: (_f = {},
3463
+ _f[exports.UnitOfMeasurement.JOULE] = exports.AGRO_NUMBERS.ONE,
3464
+ _f[exports.UnitOfMeasurement.CALORIA] = 4.184,
3465
+ _f[exports.UnitOfMeasurement.QUILOWATT_HORA] = 3600000,
3466
+ _f),
3467
+ },
3468
+ {
3469
+ units: this.DATA_UNITS,
3470
+ factorTable: (_g = {},
3471
+ _g[exports.UnitOfMeasurement.BYTE] = exports.AGRO_NUMBERS.ONE,
3472
+ _g[exports.UnitOfMeasurement.KILOBYTE] = 1024,
3473
+ _g[exports.UnitOfMeasurement.MEGABYTE] = Math.pow(1024, exports.AGRO_NUMBERS.TWO),
3474
+ _g[exports.UnitOfMeasurement.GIGABYTE] = Math.pow(1024, exports.AGRO_NUMBERS.THREE),
3475
+ _g[exports.UnitOfMeasurement.TERABYTE] = Math.pow(1024, exports.AGRO_NUMBERS.FOUR),
3476
+ _g),
3477
+ },
3478
+ ];
3479
+ }
3480
+ // 🔹 Métodos de conversão
3481
+ AgroUnitConverter.prototype.convertTemperatureUnit = function (valor, de, para) {
3482
+ if (de === para) {
3483
+ return valor;
3484
+ }
3485
+ var celsius;
3486
+ switch (de) {
3487
+ case exports.UnitOfMeasurement.CELSIUS:
3488
+ celsius = valor;
3489
+ break;
3490
+ case exports.UnitOfMeasurement.FAHRENHEIT:
3491
+ celsius = ((valor - exports.AGRO_NUMBERS.THIRTY_TWO) * exports.AGRO_NUMBERS.FIVE) / exports.AGRO_NUMBERS.NINE;
3492
+ break;
3493
+ case exports.UnitOfMeasurement.KELVIN:
3494
+ celsius = valor - TWO_HUNDRED_SEVENTY_THREE_POINT_ONE_FIVE;
3495
+ break;
3496
+ default:
3497
+ throw new Error("Unidade inválida");
3498
+ }
3499
+ switch (para) {
3500
+ case exports.UnitOfMeasurement.CELSIUS:
3501
+ return celsius;
3502
+ case exports.UnitOfMeasurement.FAHRENHEIT:
3503
+ return (celsius * exports.AGRO_NUMBERS.NINE) / exports.AGRO_NUMBERS.FIVE + exports.AGRO_NUMBERS.THIRTY_TWO;
3504
+ case exports.UnitOfMeasurement.KELVIN:
3505
+ return celsius + TWO_HUNDRED_SEVENTY_THREE_POINT_ONE_FIVE;
3506
+ default:
3507
+ throw new Error("Unidade inválida");
3508
+ }
3509
+ };
3510
+ AgroUnitConverter.prototype.isTemperatureUnit = function (unit) {
3511
+ console.log(this.TEMPERATURE_UNITS.includes(unit));
3512
+ return this.TEMPERATURE_UNITS.includes(unit);
3513
+ };
3514
+ AgroUnitConverter.prototype.convertScalableUnits = function (valor, from, to) {
3515
+ var _a;
3516
+ if (from === to) {
3517
+ return valor;
3518
+ }
3519
+ if (this.isTemperatureUnit(from) || this.isTemperatureUnit(to)) {
3520
+ return this.convertTemperatureUnit(valor, from, to);
3521
+ }
3522
+ var unitCategory = this.conversionUnits.find(function (u) { return u.units.includes(from); });
3523
+ if (!((_a = unitCategory === null || unitCategory === void 0 ? void 0 : unitCategory.units) === null || _a === void 0 ? void 0 : _a.includes(to))) {
3524
+ throw new Error("N\u00E3o \u00E9 poss\u00EDvel converter de " + from + " para " + to + ": categorias diferentes ou unidade n\u00E3o escal\u00E1vel.");
3525
+ }
3526
+ var fatorDe = unitCategory.factorTable[from];
3527
+ var fatorPara = unitCategory.factorTable[to];
3528
+ var emBase = valor * fatorDe;
3529
+ return emBase / fatorPara;
3530
+ };
3531
+ AgroUnitConverter.prototype.convertLitersPerArea = function (valor, from, to) {
3532
+ var _a;
3533
+ var areaCategory = this.conversionUnits.find(function (u) { return u.units.includes(from); });
3534
+ if (!((_a = areaCategory === null || areaCategory === void 0 ? void 0 : areaCategory.units) === null || _a === void 0 ? void 0 : _a.includes(to))) {
3535
+ throw new Error("Unidade de \u00E1rea inv\u00E1lida: " + from + " ou " + to);
3536
+ }
3537
+ var fatorFrom = areaCategory.factorTable[from];
3538
+ var fatorTo = areaCategory.factorTable[to];
3539
+ return (valor / fatorFrom) * fatorTo;
3540
+ };
3541
+ AgroUnitConverter.prototype.convertKgPerArea = function (valor, from, to) {
3542
+ return this.convertLitersPerArea(valor, from, to);
3543
+ };
3544
+ AgroUnitConverter.prototype.convertBushelToKg = function (bushel, factor) {
3545
+ if (factor <= 0) {
3546
+ throw new Error("Fator de conversão inválido");
3547
+ }
3548
+ return bushel * factor;
3549
+ };
3550
+ AgroUnitConverter.prototype.convertKgToBushel = function (kg, factor) {
3551
+ if (factor <= 0) {
3552
+ throw new Error("Fator de conversão inválido");
3553
+ }
3554
+ return kg / factor;
3555
+ };
3556
+ AgroUnitConverter.prototype.calculateAreaFromVolume = function (totalVolume, rate, rateUnit, areaUnit) {
3557
+ if (rate <= 0) {
3558
+ throw new Error("Taxa de aplicação inválida");
3559
+ }
3560
+ var rateInDesiredUnit = this.convertLitersPerArea(rate, rateUnit, areaUnit);
3561
+ return totalVolume / rateInDesiredUnit;
3562
+ };
3563
+ AgroUnitConverter.prototype.convertElectricityUnit = function (valor, voltage, from, to) {
3564
+ if (from === to) {
3565
+ return valor;
3566
+ }
3567
+ var toWatt = function (v, unit) {
3568
+ switch (unit) {
3569
+ case exports.UnitOfMeasurement.VOLT:
3570
+ case exports.UnitOfMeasurement.AMPERE:
3571
+ return voltage * v; // P = V * I
3572
+ case exports.UnitOfMeasurement.WATT:
3573
+ return v;
3574
+ default:
3575
+ throw new Error("A unidade " + unit + " n\u00E3o \u00E9 escal\u00E1vel diretamente.");
3576
+ }
3577
+ };
3578
+ var fromWatt = function (w, unit) {
3579
+ switch (unit) {
3580
+ case exports.UnitOfMeasurement.VOLT:
3581
+ case exports.UnitOfMeasurement.AMPERE:
3582
+ return w / voltage;
3583
+ case exports.UnitOfMeasurement.WATT:
3584
+ return w;
3585
+ default:
3586
+ throw new Error("A unidade " + unit + " n\u00E3o \u00E9 escal\u00E1vel diretamente.");
3587
+ }
3588
+ };
3589
+ var wattValue = toWatt(valor, from);
3590
+ return fromWatt(wattValue, to);
3591
+ };
3592
+ return AgroUnitConverter;
3593
+ }());
3594
+
3230
3595
  var AsyncLock = /** @class */ (function () {
3231
3596
  function AsyncLock() {
3232
3597
  this.queue = [];
@@ -7799,6 +8164,7 @@
7799
8164
  exports.AgroObjectUtils = AgroObjectUtils;
7800
8165
  exports.AgroPlatformUtils = AgroPlatformUtils;
7801
8166
  exports.AgroStringUtils = AgroStringUtils;
8167
+ exports.AgroUnitConverter = AgroUnitConverter;
7802
8168
  exports.AsyncLock = AsyncLock;
7803
8169
  exports.CancelEventDialogComponent = CancelEventDialogComponent;
7804
8170
  exports.CancelEventDialogModule = CancelEventDialogModule;