@jjlmoya/utils-diy 1.31.0 → 1.33.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/package.json +2 -2
- package/scripts/validate-icons.mjs +57 -0
- package/src/category/index.ts +2 -1
- package/src/entries.ts +3 -1
- package/src/layouts/ProductionUtilityPage.astro +4 -4
- package/src/mfe/widget-height.ts +14 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/ladderAngleReachCalculator/bibliography.astro +6 -0
- package/src/tool/ladderAngleReachCalculator/bibliography.ts +12 -0
- package/src/tool/ladderAngleReachCalculator/component.astro +68 -0
- package/src/tool/ladderAngleReachCalculator/controller.ts +163 -0
- package/src/tool/ladderAngleReachCalculator/entry.ts +24 -0
- package/src/tool/ladderAngleReachCalculator/i18n/de.ts +31 -0
- package/src/tool/ladderAngleReachCalculator/i18n/en.ts +98 -0
- package/src/tool/ladderAngleReachCalculator/i18n/es.ts +31 -0
- package/src/tool/ladderAngleReachCalculator/i18n/fr.ts +32 -0
- package/src/tool/ladderAngleReachCalculator/i18n/id.ts +32 -0
- package/src/tool/ladderAngleReachCalculator/i18n/it.ts +32 -0
- package/src/tool/ladderAngleReachCalculator/i18n/ja.ts +32 -0
- package/src/tool/ladderAngleReachCalculator/i18n/ko.ts +32 -0
- package/src/tool/ladderAngleReachCalculator/i18n/nl.ts +31 -0
- package/src/tool/ladderAngleReachCalculator/i18n/pl.ts +32 -0
- package/src/tool/ladderAngleReachCalculator/i18n/pt.ts +31 -0
- package/src/tool/ladderAngleReachCalculator/i18n/ru.ts +32 -0
- package/src/tool/ladderAngleReachCalculator/i18n/sv.ts +32 -0
- package/src/tool/ladderAngleReachCalculator/i18n/tr.ts +32 -0
- package/src/tool/ladderAngleReachCalculator/i18n/zh.ts +32 -0
- package/src/tool/ladderAngleReachCalculator/index.ts +11 -0
- package/src/tool/ladderAngleReachCalculator/ladder-angle-and-reach-calculator.css +491 -0
- package/src/tool/ladderAngleReachCalculator/locale.ts +57 -0
- package/src/tool/ladderAngleReachCalculator/logic.test.ts +44 -0
- package/src/tool/ladderAngleReachCalculator/logic.ts +64 -0
- package/src/tool/ladderAngleReachCalculator/seo.astro +15 -0
- package/src/tool/ladderAngleReachCalculator/ui.ts +91 -0
- package/src/tools.ts +2 -1
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
export type LadderUnitSystem = 'metric' | 'imperial';
|
|
2
|
+
export type LadderSolveMode = 'height-and-length' | 'height-and-base' | 'length-and-base';
|
|
3
|
+
export type LadderDerivedField = 'base-distance' | 'ladder-length' | 'target-height';
|
|
4
|
+
|
|
5
|
+
export interface LadderInput {
|
|
6
|
+
unitSystem: LadderUnitSystem;
|
|
7
|
+
mode: LadderSolveMode;
|
|
8
|
+
knownOne: number;
|
|
9
|
+
knownTwo: number;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export type LadderErrorCode = 'positive-values' | 'base-too-far' | 'target-too-high';
|
|
13
|
+
|
|
14
|
+
export interface LadderOutput {
|
|
15
|
+
ladderLength: number;
|
|
16
|
+
targetHeight: number;
|
|
17
|
+
baseDistance: number;
|
|
18
|
+
angle: number;
|
|
19
|
+
verticalReach: number;
|
|
20
|
+
derivedValue: number;
|
|
21
|
+
derivedField: LadderDerivedField;
|
|
22
|
+
guideBaseDistance: number;
|
|
23
|
+
requiredLengthAtGuideAngle: number;
|
|
24
|
+
extensionAboveTarget: number;
|
|
25
|
+
angleStatus: 'too-flat' | 'within-guide' | 'too-steep';
|
|
26
|
+
reachesTarget: boolean;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export type LadderCalculation =
|
|
30
|
+
| { valid: true; output: LadderOutput }
|
|
31
|
+
| { valid: false; error: LadderErrorCode };
|
|
32
|
+
|
|
33
|
+
export interface LadderAngleReachUI extends Record<string, string> {
|
|
34
|
+
unitSystemLabel: string;
|
|
35
|
+
unitMetric: string;
|
|
36
|
+
unitImperial: string;
|
|
37
|
+
intro: string;
|
|
38
|
+
solveTitle: string;
|
|
39
|
+
modeHeightLength: string;
|
|
40
|
+
modeHeightBase: string;
|
|
41
|
+
modeLengthBase: string;
|
|
42
|
+
modeHeightLengthHint: string;
|
|
43
|
+
modeHeightBaseHint: string;
|
|
44
|
+
modeLengthBaseHint: string;
|
|
45
|
+
fieldHeight: string;
|
|
46
|
+
fieldLength: string;
|
|
47
|
+
fieldBase: string;
|
|
48
|
+
fieldHeightHelp: string;
|
|
49
|
+
fieldLengthHelp: string;
|
|
50
|
+
fieldBaseHelp: string;
|
|
51
|
+
calculatedTitle: string;
|
|
52
|
+
calculatedBase: string;
|
|
53
|
+
calculatedBaseHelp: string;
|
|
54
|
+
calculatedLength: string;
|
|
55
|
+
calculatedLengthHelp: string;
|
|
56
|
+
calculatedHeight: string;
|
|
57
|
+
calculatedHeightHelp: string;
|
|
58
|
+
diagramTitle: string;
|
|
59
|
+
angleTitle: string;
|
|
60
|
+
angleUnit: string;
|
|
61
|
+
angleGuide: string;
|
|
62
|
+
reachTitle: string;
|
|
63
|
+
reachHelp: string;
|
|
64
|
+
targetTitle: string;
|
|
65
|
+
targetHelp: string;
|
|
66
|
+
baseTitle: string;
|
|
67
|
+
baseHelp: string;
|
|
68
|
+
guideDistanceTitle: string;
|
|
69
|
+
guideDistanceHelp: string;
|
|
70
|
+
requiredLengthTitle: string;
|
|
71
|
+
requiredLengthHelp: string;
|
|
72
|
+
verdictReach: string;
|
|
73
|
+
verdictShort: string;
|
|
74
|
+
verdictReachHelp: string;
|
|
75
|
+
verdictShortHelp: string;
|
|
76
|
+
angleTooFlat: string;
|
|
77
|
+
angleWithinGuide: string;
|
|
78
|
+
angleTooSteep: string;
|
|
79
|
+
ladderLabel: string;
|
|
80
|
+
wallLabel: string;
|
|
81
|
+
targetLabel: string;
|
|
82
|
+
baseLabel: string;
|
|
83
|
+
groundLabel: string;
|
|
84
|
+
guideLabel: string;
|
|
85
|
+
invalidPositive: string;
|
|
86
|
+
invalidBase: string;
|
|
87
|
+
invalidTarget: string;
|
|
88
|
+
warning: string;
|
|
89
|
+
unitLengthMetric: string;
|
|
90
|
+
unitLengthImperial: string;
|
|
91
|
+
}
|
package/src/tools.ts
CHANGED
|
@@ -18,6 +18,7 @@ import { PYTHAGOREAN_RIGHT_ANGLE_CALCULATOR_TOOL } from './tool/pythagoreanRight
|
|
|
18
18
|
import { TWO_STROKE_MIXTURE_CALCULATOR_TOOL } from './tool/twoStrokeMixtureCalculator/index';
|
|
19
19
|
import { DRYWALL_CALCULATOR_TOOL } from './tool/drywallCalculator/index';
|
|
20
20
|
import { EXCAVATION_VOLUME_CALCULATOR_TOOL } from './tool/excavationVolumeCalculator/index';
|
|
21
|
+
import { LADDER_ANGLE_REACH_CALCULATOR_TOOL } from './tool/ladderAngleReachCalculator/index';
|
|
21
22
|
|
|
22
|
-
export const ALL_TOOLS: ToolDefinition[] = [CLAY_CALCULATOR_TOOL, EPOXY_CALCULATOR_TOOL, BALUSTER_CALCULATOR_TOOL, MORTAR_CALCULATOR_TOOL, PASSEPARTOUT_CALCULATOR_TOOL, CONCRETE_CALCULATOR_TOOL, CUT_OPTIMIZER_TOOL, VOLTAGE_DROP_CALCULATOR_TOOL, FURNITURE_FIT_TOOL, THERMAL_EXPANSION_CALCULATOR_TOOL, DRILL_CALCULATOR_TOOL, STAIR_CALCULATOR_TOOL, DRILL_SHARPENER_TOOL, WORKSHOP_FRACTION_CONVERTER_TOOL, PYTHAGOREAN_RIGHT_ANGLE_CALCULATOR_TOOL, TWO_STROKE_MIXTURE_CALCULATOR_TOOL, DRYWALL_CALCULATOR_TOOL, EXCAVATION_VOLUME_CALCULATOR_TOOL];
|
|
23
|
+
export const ALL_TOOLS: ToolDefinition[] = [CLAY_CALCULATOR_TOOL, EPOXY_CALCULATOR_TOOL, BALUSTER_CALCULATOR_TOOL, MORTAR_CALCULATOR_TOOL, PASSEPARTOUT_CALCULATOR_TOOL, CONCRETE_CALCULATOR_TOOL, CUT_OPTIMIZER_TOOL, VOLTAGE_DROP_CALCULATOR_TOOL, FURNITURE_FIT_TOOL, THERMAL_EXPANSION_CALCULATOR_TOOL, DRILL_CALCULATOR_TOOL, STAIR_CALCULATOR_TOOL, DRILL_SHARPENER_TOOL, WORKSHOP_FRACTION_CONVERTER_TOOL, PYTHAGOREAN_RIGHT_ANGLE_CALCULATOR_TOOL, TWO_STROKE_MIXTURE_CALCULATOR_TOOL, DRYWALL_CALCULATOR_TOOL, EXCAVATION_VOLUME_CALCULATOR_TOOL, LADDER_ANGLE_REACH_CALCULATOR_TOOL];
|
|
23
24
|
|