@futdevpro/fsm-dynamo 1.9.9 → 1.9.12

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 (173) hide show
  1. package/.github/workflows/main.yml +196 -0
  2. package/HOWTO.md +15 -15
  3. package/README.md +17 -17
  4. package/build/_collections/constants/country-divisions.const.d.ts +1 -1
  5. package/build/_collections/constants/country-divisions.const.d.ts.map +1 -1
  6. package/build/_collections/constants/country-divisions.const.js +2 -2
  7. package/build/_collections/constants/country-divisions.const.js.map +1 -1
  8. package/build/_collections/constants/courtry-isos.const.d.ts +1 -1
  9. package/build/_collections/constants/courtry-isos.const.d.ts.map +1 -1
  10. package/build/_collections/constants/courtry-isos.const.js +2 -2
  11. package/build/_collections/constants/courtry-isos.const.js.map +1 -1
  12. package/build/_collections/constants/error-defaults.const.d.ts +1 -1
  13. package/build/_collections/constants/error-defaults.const.d.ts.map +1 -1
  14. package/build/_collections/constants/module-settings/usage-module-settings.const.js +1 -1
  15. package/build/_collections/constants/pipe-transforms.const.js +12 -12
  16. package/build/_collections/constants/pipe-transforms.const.js.map +1 -1
  17. package/build/_collections/utils/pipe-transforms/division-pipe.util.js +1 -1
  18. package/build/_collections/utils/pipe-transforms/division-pipe.util.js.map +1 -1
  19. package/build/_collections/utils/pipe-transforms/list-pipe.util.d.ts.map +1 -1
  20. package/build/_collections/utils/pipe-transforms/list-pipe.util.js.map +1 -1
  21. package/build/_collections/utils/pipe-transforms/range-pipe.util.d.ts +2 -2
  22. package/build/_collections/utils/pipe-transforms/range-pipe.util.d.ts.map +1 -1
  23. package/build/_collections/utils/pipe-transforms/range-pipe.util.js +11 -11
  24. package/build/_collections/utils/pipe-transforms/range-pipe.util.js.map +1 -1
  25. package/build/_collections/utils/regions.util.d.ts.map +1 -1
  26. package/build/_collections/utils/regions.util.js +3 -0
  27. package/build/_collections/utils/regions.util.js.map +1 -1
  28. package/build/_enums/range-pipe-setting.enum.d.ts +1 -1
  29. package/build/_enums/range-pipe-setting.enum.d.ts.map +1 -1
  30. package/build/_enums/range-pipe-setting.enum.js +12 -12
  31. package/build/_enums/range-pipe-setting.enum.js.map +1 -1
  32. package/build/_models/control-models/error.control-model.js +1 -1
  33. package/build/_models/control-models/error.control-model.js.map +1 -1
  34. package/build/_models/control-models/error.control-model.spec.js +25 -6
  35. package/build/_models/control-models/error.control-model.spec.js.map +1 -1
  36. package/build/_models/interfaces/index.d.ts +3 -0
  37. package/build/_models/interfaces/index.d.ts.map +1 -1
  38. package/build/_models/interfaces/index.js +3 -0
  39. package/build/_models/interfaces/index.js.map +1 -1
  40. package/build/_models/interfaces/pipe-transforms.interface.d.ts +2 -2
  41. package/build/_models/interfaces/pipe-transforms.interface.d.ts.map +1 -1
  42. package/futdevpro-fsm-dynamo-01.09.12.tgz +0 -0
  43. package/nodemon.json +11 -11
  44. package/package.json +151 -151
  45. package/src/_collections/assets/location/country-codes-ISO-3166.json +3239 -3239
  46. package/src/_collections/assets/location/country-divisions-ISO-3166-all-list.json +19035 -19035
  47. package/src/_collections/assets/location/country-divisions-ISO-3166.json +4993 -4993
  48. package/src/_collections/assets/location/country-phone-codes.json +1203 -1203
  49. package/src/_collections/constants/country-divisions.const.ts +9 -9
  50. package/src/_collections/constants/courtry-isos.const.ts +8 -8
  51. package/src/_collections/constants/error-defaults.const.ts +11 -11
  52. package/src/_collections/constants/index.ts +15 -15
  53. package/src/_collections/constants/module-settings/custom-data-module-settings.const.ts +15 -15
  54. package/src/_collections/constants/module-settings/index.ts +8 -8
  55. package/src/_collections/constants/module-settings/test-module-settings.const.ts +19 -19
  56. package/src/_collections/constants/module-settings/usage-module-settings.const.ts +19 -19
  57. package/src/_collections/constants/pipe-transforms.const.ts +35 -35
  58. package/src/_collections/constants/times.const.ts +8 -8
  59. package/src/_collections/index.ts +6 -6
  60. package/src/_collections/utils/array.util.spec.ts +39 -39
  61. package/src/_collections/utils/array.util.ts +137 -137
  62. package/src/_collections/utils/index.ts +18 -18
  63. package/src/_collections/utils/location.util.ts +55 -55
  64. package/src/_collections/utils/log.util.ts +239 -239
  65. package/src/_collections/utils/math/box-bounds.util.ts +85 -85
  66. package/src/_collections/utils/math/index.ts +5 -5
  67. package/src/_collections/utils/math/math.util.ts +53 -53
  68. package/src/_collections/utils/math/random.util.ts +80 -80
  69. package/src/_collections/utils/math/trigonometry.util.ts +73 -73
  70. package/src/_collections/utils/math/vector2.util.ts +197 -197
  71. package/src/_collections/utils/pipe-transforms/country-pipe.util.ts +18 -18
  72. package/src/_collections/utils/pipe-transforms/custom-pipe.util.ts +9 -9
  73. package/src/_collections/utils/pipe-transforms/division-pipe.util.ts +20 -20
  74. package/src/_collections/utils/pipe-transforms/index.ts +15 -15
  75. package/src/_collections/utils/pipe-transforms/list-pipe.util.ts +10 -14
  76. package/src/_collections/utils/pipe-transforms/multi-pipe-pipe.util.ts +160 -160
  77. package/src/_collections/utils/pipe-transforms/obj-key-pipe.util.ts +9 -9
  78. package/src/_collections/utils/pipe-transforms/range-pipe.util.ts +94 -94
  79. package/src/_collections/utils/pipe-transforms/region-pipe.util.ts +18 -18
  80. package/src/_collections/utils/pipe-transforms/replace-pipe.util.ts +11 -11
  81. package/src/_collections/utils/pipe-transforms/slider-pipe.util.ts +20 -20
  82. package/src/_collections/utils/pipe-transforms/smart-replace-pipe.util.ts +71 -71
  83. package/src/_collections/utils/regex/index.ts +4 -4
  84. package/src/_collections/utils/regex/password-regex.util.ts +52 -52
  85. package/src/_collections/utils/regex/regex.util.ts +6 -6
  86. package/src/_collections/utils/regex/username-regex.util.ts +33 -33
  87. package/src/_collections/utils/regions.util.ts +100 -97
  88. package/src/_collections/utils/round-list.util.ts +44 -44
  89. package/src/_collections/utils/shared.static-service.ts +177 -177
  90. package/src/_collections/utils/time.util.spec.ts +50 -50
  91. package/src/_collections/utils/time.util.ts +219 -219
  92. package/src/_collections/utils/type-cloning-facility.util.ts +121 -121
  93. package/src/_collections/utils/utilities.util.ts +130 -130
  94. package/src/_enums/basic-property-type.enum.ts +9 -9
  95. package/src/_enums/data-model-type.enum.ts +13 -13
  96. package/src/_enums/day-of-week.enum.ts +28 -28
  97. package/src/_enums/error-level.enum.ts +17 -17
  98. package/src/_enums/index.ts +16 -16
  99. package/src/_enums/location/index.ts +3 -3
  100. package/src/_enums/location/region.enum.ts +9 -9
  101. package/src/_enums/location/sub-region.enum.ts +26 -26
  102. package/src/_enums/location/subdivision-region-type.enum.ts +44 -44
  103. package/src/_enums/log-style.enum.ts +30 -30
  104. package/src/_enums/month.enum.ts +16 -16
  105. package/src/_enums/pipe.enum.ts +45 -45
  106. package/src/_enums/range-pipe-setting.enum.ts +11 -11
  107. package/src/_enums/time/day-of-week.enum.ts +28 -28
  108. package/src/_enums/time/index.ts +3 -3
  109. package/src/_enums/time/month.enum.ts +16 -16
  110. package/src/_enums/time/relative-date.enum.ts +13 -13
  111. package/src/_models/control-models/daily-usage-data.control-model.ts +21 -21
  112. package/src/_models/control-models/data-model-params.control-model.ts +39 -39
  113. package/src/_models/control-models/data-property-params.control-model.ts +106 -106
  114. package/src/_models/control-models/error.control-model.spec.ts +753 -716
  115. package/src/_models/control-models/error.control-model.ts +722 -722
  116. package/src/_models/control-models/index.ts +10 -10
  117. package/src/_models/control-models/poll.control-model.ts +113 -113
  118. package/src/_models/control-models/range-value.control-model.ts +142 -142
  119. package/src/_models/control-models/usage-action.control-model.ts +15 -15
  120. package/src/_models/control-models/usage-data.control-model.ts +20 -20
  121. package/src/_models/data-models/custom-data.data-model.ts +28 -28
  122. package/src/_models/data-models/index.ts +5 -5
  123. package/src/_models/data-models/metadata.data-model.ts +83 -83
  124. package/src/_models/data-models/usage-session.data-model.ts +53 -53
  125. package/src/_models/index.ts +12 -12
  126. package/src/_models/interfaces/error-defaults.interface.ts +11 -11
  127. package/src/_models/interfaces/index.ts +11 -8
  128. package/src/_models/interfaces/location/country-division.interface.ts +7 -7
  129. package/src/_models/interfaces/location/country-iso.interface.ts +21 -21
  130. package/src/_models/interfaces/location/country-phone-code.interface.ts +7 -7
  131. package/src/_models/interfaces/location/division-collection.interface.ts +10 -10
  132. package/src/_models/interfaces/location/division-region-data.interface.ts +8 -8
  133. package/src/_models/interfaces/location/geo-ip-location.interface.ts +26 -26
  134. package/src/_models/interfaces/location/index.ts +10 -10
  135. package/src/_models/interfaces/location/location-coordinates.interface.ts +5 -5
  136. package/src/_models/interfaces/multi-pipe-settings.type.ts +7 -7
  137. package/src/_models/interfaces/paged.interface.ts +11 -11
  138. package/src/_models/interfaces/pipe-transforms.interface.ts +29 -29
  139. package/src/_models/interfaces/random-weight.interface.ts +7 -7
  140. package/src/_models/interfaces/route-settings.interface.ts +11 -11
  141. package/src/_modules/collections.index.ts +2 -2
  142. package/src/_modules/constants.index.ts +2 -2
  143. package/src/_modules/custom-data-module.index.ts +6 -6
  144. package/src/_modules/data-modules.index.ts +9 -9
  145. package/src/_modules/enums.index.ts +2 -2
  146. package/src/_modules/error-module.index.ts +8 -8
  147. package/src/_modules/location.index.ts +15 -15
  148. package/src/_modules/models.index.ts +2 -2
  149. package/src/_modules/shared-service.index.ts +9 -9
  150. package/src/_modules/test-module.index.ts +5 -5
  151. package/src/_modules/usage-module.index.ts +10 -10
  152. package/tsconfig.json +29 -29
  153. package/tslint.json +153 -153
  154. package/build/_enums/region.enum.d.ts +0 -8
  155. package/build/_enums/region.enum.d.ts.map +0 -1
  156. package/build/_enums/region.enum.js +0 -12
  157. package/build/_enums/region.enum.js.map +0 -1
  158. package/build/_enums/relative-date.enum.d.ts +0 -9
  159. package/build/_enums/relative-date.enum.d.ts.map +0 -1
  160. package/build/_enums/relative-date.enum.js +0 -13
  161. package/build/_enums/relative-date.enum.js.map +0 -1
  162. package/build/_enums/sub-region.enum.d.ts +0 -20
  163. package/build/_enums/sub-region.enum.d.ts.map +0 -1
  164. package/build/_enums/sub-region.enum.js +0 -24
  165. package/build/_enums/sub-region.enum.js.map +0 -1
  166. package/build/_enums/subdivision-region-type.enum.d.ts +0 -41
  167. package/build/_enums/subdivision-region-type.enum.d.ts.map +0 -1
  168. package/build/_enums/subdivision-region-type.enum.js +0 -46
  169. package/build/_enums/subdivision-region-type.enum.js.map +0 -1
  170. package/src/_enums/region.enum.ts +0 -9
  171. package/src/_enums/relative-date.enum.ts +0 -13
  172. package/src/_enums/sub-region.enum.ts +0 -26
  173. package/src/_enums/subdivision-region-type.enum.ts +0 -44
@@ -1,53 +1,53 @@
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
- export class DynamoFM_Math {
11
-
12
- static between(value: number, minExclusive: number, maxExclusive: number): boolean {
13
- return minExclusive < value && value < maxExclusive;
14
- }
15
-
16
- static around(value: number, target: number, range: number): boolean {
17
- return this.between(value, target - range, target + range);
18
- }
19
-
20
- static getRandomInt(min: number, max: number): number {
21
- return min + Math.round((max - min) * Math.random());
22
- }
23
-
24
- static round(value: number, decimals: number = 2): number {
25
- return Number(value.toFixed(decimals));
26
- }
27
-
28
- static numberWithSpaces(x: number): string {
29
- return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
30
- }
31
-
32
- static floatingNumberWithSpaces(x: number): string {
33
- const parts: string[] = x.toString().split('.');
34
-
35
- parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
36
-
37
- return parts.join('.');
38
- }
39
-
40
- static decimals(x: number, useSpacer: string = ','): string {
41
- const parts: string[] = x.toString().split('.');
42
-
43
- parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, useSpacer);
44
-
45
- return parts.join('.');
46
- }
47
- }
48
-
49
-
50
-
51
-
52
-
53
-
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+ export class DynamoFM_Math {
11
+
12
+ static between(value: number, minExclusive: number, maxExclusive: number): boolean {
13
+ return minExclusive < value && value < maxExclusive;
14
+ }
15
+
16
+ static around(value: number, target: number, range: number): boolean {
17
+ return this.between(value, target - range, target + range);
18
+ }
19
+
20
+ static getRandomInt(min: number, max: number): number {
21
+ return min + Math.round((max - min) * Math.random());
22
+ }
23
+
24
+ static round(value: number, decimals: number = 2): number {
25
+ return Number(value.toFixed(decimals));
26
+ }
27
+
28
+ static numberWithSpaces(x: number): string {
29
+ return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
30
+ }
31
+
32
+ static floatingNumberWithSpaces(x: number): string {
33
+ const parts: string[] = x.toString().split('.');
34
+
35
+ parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
36
+
37
+ return parts.join('.');
38
+ }
39
+
40
+ static decimals(x: number, useSpacer: string = ','): string {
41
+ const parts: string[] = x.toString().split('.');
42
+
43
+ parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, useSpacer);
44
+
45
+ return parts.join('.');
46
+ }
47
+ }
48
+
49
+
50
+
51
+
52
+
53
+
@@ -1,80 +1,80 @@
1
-
2
- import { DynamoFM_RandomWeight } from '../../../_models/interfaces/random-weight.interface';
3
-
4
- export type DFM_Random = DynamoFM_Random;
5
- export class DynamoFM_Random {
6
- static getRandomWeightedInt(
7
- min: number,
8
- max: number,
9
- weights: DynamoFM_RandomWeight<number>[]
10
- ): number {
11
- weights = weights.sort((a, b): number => b.chance - a.chance);
12
- let weightChanceSum = 0;
13
-
14
- weights.forEach((weight): void => { weightChanceSum += weight.chance; });
15
-
16
- if (1 < weightChanceSum) {
17
- weights.forEach((weights): void => { weights.chance = weights.chance / weightChanceSum; });
18
- }
19
-
20
- const randomChance: number = Math.random();
21
- let result: number;
22
- let chancer = 0;
23
-
24
- for (let i = 0; i < weights.length && result === undefined; i++) {
25
- chancer += weights[i].chance;
26
-
27
- if (randomChance < chancer) {
28
- result = weights[i].result;
29
- }
30
- }
31
-
32
- if (result !== undefined) {
33
- return result;
34
- } else {
35
- return this.getRandomInt(min, max);
36
- }
37
- }
38
-
39
- static getRandomInt(min: number, max: number): number {
40
- return min + Math.round((max - min) * Math.random());
41
- }
42
-
43
- static getRandomListElement<T>(list: T[]): T {
44
- if (0 < list.length) {
45
- return list[this.getRandomInt(0, list.length - 1)];
46
- } else {
47
- return null;
48
- }
49
- }
50
-
51
- static getRandomWeighted<T>(weights: DynamoFM_RandomWeight<T>[]): T {
52
- if (!weights?.length) {
53
- return null;
54
- }
55
-
56
- weights = weights.sort((a, b): number => b.chance - a.chance);
57
- let weightChanceSum = 0;
58
-
59
- weights.forEach((weight): void => {
60
- weightChanceSum += weight.chance;
61
- });
62
- weights.forEach((weights): void => {
63
- weights.chance = weights.chance / weightChanceSum;
64
- });
65
-
66
- const randomChance: number = Math.random();
67
- let result: T;
68
- let chancer = 0;
69
-
70
- for (let i = 0; i < weights.length && result === undefined; i++) {
71
- chancer += weights[i].chance;
72
-
73
- if (randomChance < chancer) {
74
- result = weights[i].result;
75
- }
76
- }
77
-
78
- return result;
79
- }
80
- }
1
+
2
+ import { DynamoFM_RandomWeight } from '../../../_models/interfaces/random-weight.interface';
3
+
4
+ export type DFM_Random = DynamoFM_Random;
5
+ export class DynamoFM_Random {
6
+ static getRandomWeightedInt(
7
+ min: number,
8
+ max: number,
9
+ weights: DynamoFM_RandomWeight<number>[]
10
+ ): number {
11
+ weights = weights.sort((a, b): number => b.chance - a.chance);
12
+ let weightChanceSum = 0;
13
+
14
+ weights.forEach((weight): void => { weightChanceSum += weight.chance; });
15
+
16
+ if (1 < weightChanceSum) {
17
+ weights.forEach((weights): void => { weights.chance = weights.chance / weightChanceSum; });
18
+ }
19
+
20
+ const randomChance: number = Math.random();
21
+ let result: number;
22
+ let chancer = 0;
23
+
24
+ for (let i = 0; i < weights.length && result === undefined; i++) {
25
+ chancer += weights[i].chance;
26
+
27
+ if (randomChance < chancer) {
28
+ result = weights[i].result;
29
+ }
30
+ }
31
+
32
+ if (result !== undefined) {
33
+ return result;
34
+ } else {
35
+ return this.getRandomInt(min, max);
36
+ }
37
+ }
38
+
39
+ static getRandomInt(min: number, max: number): number {
40
+ return min + Math.round((max - min) * Math.random());
41
+ }
42
+
43
+ static getRandomListElement<T>(list: T[]): T {
44
+ if (0 < list.length) {
45
+ return list[this.getRandomInt(0, list.length - 1)];
46
+ } else {
47
+ return null;
48
+ }
49
+ }
50
+
51
+ static getRandomWeighted<T>(weights: DynamoFM_RandomWeight<T>[]): T {
52
+ if (!weights?.length) {
53
+ return null;
54
+ }
55
+
56
+ weights = weights.sort((a, b): number => b.chance - a.chance);
57
+ let weightChanceSum = 0;
58
+
59
+ weights.forEach((weight): void => {
60
+ weightChanceSum += weight.chance;
61
+ });
62
+ weights.forEach((weights): void => {
63
+ weights.chance = weights.chance / weightChanceSum;
64
+ });
65
+
66
+ const randomChance: number = Math.random();
67
+ let result: T;
68
+ let chancer = 0;
69
+
70
+ for (let i = 0; i < weights.length && result === undefined; i++) {
71
+ chancer += weights[i].chance;
72
+
73
+ if (randomChance < chancer) {
74
+ result = weights[i].result;
75
+ }
76
+ }
77
+
78
+ return result;
79
+ }
80
+ }
@@ -1,73 +1,73 @@
1
-
2
- export type DFM_Trigonometry = DynamoFM_Trigonometry;
3
- export type DFM_Trig = DynamoFM_Trigonometry;
4
- export type DFM_Δ = DynamoFM_Trigonometry;
5
- export class DynamoFM_Trigonometry {
6
-
7
- /**
8
- * Befogó
9
- * a Befogó mérete az átfogó, és a befogóval szemközti szög alapján
10
- * a szemközti szög értéke opcionális
11
- * (amennyiben nem adjuk meg, 45 fokos szöggel számolunk)
12
- * @param c átfogó
13
- * @param angle a befogó oldallal szemközti szög (fokban)
14
- * @returns befogó
15
- */
16
- static getClamp(c: number, angle?: number): number {
17
- angle = angle !== undefined ? angle : 45;
18
-
19
- return Math.sin(this.angleToRadians(angle)) * c;
20
- }
21
-
22
- /**
23
- * Befogó
24
- * a Befogó mérete az átfogó és a másik befogó alapján
25
- * @param a befogó
26
- * @param c átfogó
27
- * @returns befogó
28
- */
29
- static getClampByClampAndHypotenuse(a: number, c: number): number {
30
- if (a > c) {
31
-
32
- throw {
33
- errorMessage:
34
- `getClampByClampAndHypotenuse error hypotenuse is smaller than clamp (a:${a} > c:${c})`
35
- };
36
- }
37
-
38
- return Math.sqrt((c * c) - (a * a));
39
- }
40
-
41
- /**
42
- * Átfogó
43
- * az Átfogó mérete a befogók alapján
44
- * a második befogó értéke opcionális
45
- * (amennyiben nem adjuk meg, egyenlő szárú háromszöggel számolunk)
46
- * @param a egyik befogó
47
- * @param b másik befogó
48
- * @returns átfogó
49
- */
50
- static getHypotenuse(a: number, b?: number): number {
51
- b = b !== undefined ? b : a;
52
-
53
- return Math.sqrt((a * a) + (b * b));
54
- }
55
-
56
- /**
57
- * Szög fokmértéket átalakítja radiánsra
58
- * @param angle szög fok
59
- * @returns szög radiáns
60
- */
61
- static angleToRadians(angle: number): number {
62
- return angle * Math.PI / 180;
63
- }
64
-
65
- /**
66
- * Szög radiáns mértéket átalakítja fokra
67
- * @param radians szög radiáns
68
- * @returns szög fok
69
- */
70
- static radiansToAngle(radians: number): number {
71
- return radians / Math.PI * 180;
72
- }
73
- }
1
+
2
+ export type DFM_Trigonometry = DynamoFM_Trigonometry;
3
+ export type DFM_Trig = DynamoFM_Trigonometry;
4
+ export type DFM_Δ = DynamoFM_Trigonometry;
5
+ export class DynamoFM_Trigonometry {
6
+
7
+ /**
8
+ * Befogó
9
+ * a Befogó mérete az átfogó, és a befogóval szemközti szög alapján
10
+ * a szemközti szög értéke opcionális
11
+ * (amennyiben nem adjuk meg, 45 fokos szöggel számolunk)
12
+ * @param c átfogó
13
+ * @param angle a befogó oldallal szemközti szög (fokban)
14
+ * @returns befogó
15
+ */
16
+ static getClamp(c: number, angle?: number): number {
17
+ angle = angle !== undefined ? angle : 45;
18
+
19
+ return Math.sin(this.angleToRadians(angle)) * c;
20
+ }
21
+
22
+ /**
23
+ * Befogó
24
+ * a Befogó mérete az átfogó és a másik befogó alapján
25
+ * @param a befogó
26
+ * @param c átfogó
27
+ * @returns befogó
28
+ */
29
+ static getClampByClampAndHypotenuse(a: number, c: number): number {
30
+ if (a > c) {
31
+
32
+ throw {
33
+ errorMessage:
34
+ `getClampByClampAndHypotenuse error hypotenuse is smaller than clamp (a:${a} > c:${c})`
35
+ };
36
+ }
37
+
38
+ return Math.sqrt((c * c) - (a * a));
39
+ }
40
+
41
+ /**
42
+ * Átfogó
43
+ * az Átfogó mérete a befogók alapján
44
+ * a második befogó értéke opcionális
45
+ * (amennyiben nem adjuk meg, egyenlő szárú háromszöggel számolunk)
46
+ * @param a egyik befogó
47
+ * @param b másik befogó
48
+ * @returns átfogó
49
+ */
50
+ static getHypotenuse(a: number, b?: number): number {
51
+ b = b !== undefined ? b : a;
52
+
53
+ return Math.sqrt((a * a) + (b * b));
54
+ }
55
+
56
+ /**
57
+ * Szög fokmértéket átalakítja radiánsra
58
+ * @param angle szög fok
59
+ * @returns szög radiáns
60
+ */
61
+ static angleToRadians(angle: number): number {
62
+ return angle * Math.PI / 180;
63
+ }
64
+
65
+ /**
66
+ * Szög radiáns mértéket átalakítja fokra
67
+ * @param radians szög radiáns
68
+ * @returns szög fok
69
+ */
70
+ static radiansToAngle(radians: number): number {
71
+ return radians / Math.PI * 180;
72
+ }
73
+ }