umt 1.7.2 → 1.8.1

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 (112) hide show
  1. package/module/Array/first.d.ts +7 -0
  2. package/module/Array/first.js +10 -0
  3. package/module/Array/first.js.map +1 -0
  4. package/module/Array/generateNumberArray.d.ts +11 -0
  5. package/module/Array/generateNumberArray.js +27 -0
  6. package/module/Array/generateNumberArray.js.map +1 -0
  7. package/module/Array/index.d.ts +3 -0
  8. package/module/Array/index.js +3 -0
  9. package/module/Array/index.js.map +1 -1
  10. package/module/Array/randomSelect.d.ts +9 -0
  11. package/module/Array/randomSelect.js +22 -0
  12. package/module/Array/randomSelect.js.map +1 -0
  13. package/module/Date/format.d.ts +7 -0
  14. package/module/Date/format.js +48 -0
  15. package/module/Date/format.js.map +1 -0
  16. package/module/Date/getTimezoneOffsetString.d.ts +6 -0
  17. package/module/Date/getTimezoneOffsetString.js +14 -0
  18. package/module/Date/getTimezoneOffsetString.js.map +1 -0
  19. package/module/Date/index.d.ts +2 -0
  20. package/module/Date/index.js +2 -0
  21. package/module/Date/index.js.map +1 -1
  22. package/module/Error/index.d.ts +1 -1
  23. package/module/Error/index.js +1 -1
  24. package/module/Error/index.js.map +1 -1
  25. package/module/Error/safeExecute.d.ts +11 -0
  26. package/module/Error/safeExecute.js +14 -0
  27. package/module/Error/safeExecute.js.map +1 -0
  28. package/module/IP/subnetMaskToCidr.js +1 -1
  29. package/module/IP/subnetMaskToCidr.js.map +1 -1
  30. package/module/Math/bitwise.d.ts +13 -0
  31. package/module/Math/bitwise.js +27 -0
  32. package/module/Math/bitwise.js.map +1 -0
  33. package/module/Math/calculator/convertCurrency.d.ts +1 -1
  34. package/module/Math/index.d.ts +3 -1
  35. package/module/Math/index.js +3 -1
  36. package/module/Math/index.js.map +1 -1
  37. package/module/Math/linearCongruentialGenerator.d.ts +11 -0
  38. package/module/Math/linearCongruentialGenerator.js +16 -0
  39. package/module/Math/linearCongruentialGenerator.js.map +1 -0
  40. package/module/Math/uuidv7.d.ts +6 -0
  41. package/module/Math/uuidv7.js +36 -0
  42. package/module/Math/uuidv7.js.map +1 -0
  43. package/module/Math/xoshiro256.d.ts +8 -0
  44. package/module/Math/xoshiro256.js +21 -0
  45. package/module/Math/xoshiro256.js.map +1 -0
  46. package/module/Tool/sudoku.d.ts +103 -0
  47. package/module/Tool/sudoku.js +48 -0
  48. package/module/Tool/sudoku.js.map +1 -0
  49. package/module/Validate/array/core.d.ts +1 -1
  50. package/module/Validate/index.d.ts +1 -0
  51. package/module/Validate/index.js +1 -0
  52. package/module/Validate/index.js.map +1 -1
  53. package/module/Validate/isDouble.d.ts +1 -1
  54. package/module/Validate/isNumber.d.ts +1 -1
  55. package/module/Validate/isValueNaN.d.ts +10 -0
  56. package/module/Validate/isValueNaN.js +14 -0
  57. package/module/Validate/isValueNaN.js.map +1 -0
  58. package/module/Validate/object/core.d.ts +1 -1
  59. package/module/Validate/string/uuid.d.ts +6 -1
  60. package/module/Validate/string/uuid.js +5 -0
  61. package/module/Validate/string/uuid.js.map +1 -1
  62. package/module/types/int.d.ts +5 -2
  63. package/module/types/logicType.d.ts +1 -0
  64. package/package.json +16 -14
  65. package/module/Math/toBinary.d.ts +0 -8
  66. package/module/Math/toBinary.js +0 -11
  67. package/module/Math/toBinary.js.map +0 -1
  68. package/module/Simple/Tool/birthdaySimple.d.ts +0 -19
  69. package/module/Simple/Tool/birthdaySimple.js +0 -31
  70. package/module/Simple/Tool/birthdaySimple.js.map +0 -1
  71. package/module/Simple/Tool/dayOfWeekSimple.d.ts +0 -20
  72. package/module/Simple/Tool/dayOfWeekSimple.js +0 -34
  73. package/module/Simple/Tool/dayOfWeekSimple.js.map +0 -1
  74. package/module/Simple/Tool/deviationValueSimple.d.ts +0 -13
  75. package/module/Simple/Tool/deviationValueSimple.js +0 -19
  76. package/module/Simple/Tool/deviationValueSimple.js.map +0 -1
  77. package/module/Simple/Tool/index.d.ts +0 -3
  78. package/module/Simple/Tool/index.js +0 -4
  79. package/module/Simple/Tool/index.js.map +0 -1
  80. package/module/String/deleteSpace.d.ts +0 -7
  81. package/module/String/deleteSpace.js +0 -10
  82. package/module/String/deleteSpace.js.map +0 -1
  83. package/module/Tool/birthday.d.ts +0 -11
  84. package/module/Tool/birthday.js +0 -21
  85. package/module/Tool/birthday.js.map +0 -1
  86. package/module/Tool/cmykToRgba.d.ts +0 -12
  87. package/module/Tool/cmykToRgba.js +0 -41
  88. package/module/Tool/cmykToRgba.js.map +0 -1
  89. package/module/Tool/dayOfWeek.d.ts +0 -14
  90. package/module/Tool/dayOfWeek.js +0 -17
  91. package/module/Tool/dayOfWeek.js.map +0 -1
  92. package/module/Tool/deleteSpace.d.ts +0 -7
  93. package/module/Tool/deleteSpace.js +0 -10
  94. package/module/Tool/deleteSpace.js.map +0 -1
  95. package/module/Tool/hexToRgba.d.ts +0 -12
  96. package/module/Tool/hexToRgba.js +0 -20
  97. package/module/Tool/hexToRgba.js.map +0 -1
  98. package/module/Tool/hexaToRgba.d.ts +0 -12
  99. package/module/Tool/hexaToRgba.js +0 -20
  100. package/module/Tool/hexaToRgba.js.map +0 -1
  101. package/module/Tool/hslaToRgba.d.ts +0 -15
  102. package/module/Tool/hslaToRgba.js +0 -76
  103. package/module/Tool/hslaToRgba.js.map +0 -1
  104. package/module/Tool/rgbaToCmyk.d.ts +0 -18
  105. package/module/Tool/rgbaToCmyk.js +0 -26
  106. package/module/Tool/rgbaToCmyk.js.map +0 -1
  107. package/module/Tool/rgbaToHexA.d.ts +0 -12
  108. package/module/Tool/rgbaToHexA.js +0 -25
  109. package/module/Tool/rgbaToHexA.js.map +0 -1
  110. package/module/Tool/rgbaToHsla.d.ts +0 -17
  111. package/module/Tool/rgbaToHsla.js +0 -48
  112. package/module/Tool/rgbaToHsla.js.map +0 -1
@@ -1,41 +0,0 @@
1
- import { division } from "../Math/division";
2
- import { max } from "../Math/max";
3
- import { min } from "../Math/min";
4
- import { multiplication } from "../Math/multiplication";
5
- import { roundOf } from "../Math/roundOf";
6
- import { subtract } from "../Math/subtract";
7
- /**
8
- * cmykをrgbaに変換する
9
- * @param cmyk
10
- * @returns { r: number; g: number; b: number; a: number; }
11
- * @example cmykToRgba(100, 100, 0, 60.78) // { r: 0, g: 0, b: 100, a: 1 }
12
- */
13
- export const cmykToRgba = (c, m, y, k, a = 1) => {
14
- // CMYKの値を0から100の範囲に制限
15
- const clampedC = max(0, min(100, c));
16
- const clampedM = max(0, min(100, m));
17
- const clampedY = max(0, min(100, y));
18
- const clampedK = max(0, min(100, k));
19
- // CMYKの値を0から1の範囲に変換
20
- const cPercentage = division(clampedC, 100);
21
- const mPercentage = division(clampedM, 100);
22
- const yPercentage = division(clampedY, 100);
23
- const kPercentage = division(clampedK, 100);
24
- // RGBの値を計算
25
- const r = multiplication(255, subtract(1, cPercentage), subtract(1, kPercentage));
26
- const g = multiplication(255, subtract(1, mPercentage), subtract(1, kPercentage));
27
- const b = multiplication(255, subtract(1, yPercentage), subtract(1, kPercentage));
28
- // RGBの値を0から255の範囲に丸める
29
- const roundedR = roundOf(r);
30
- const roundedG = roundOf(g);
31
- const roundedB = roundOf(b);
32
- // アルファ値を0から1の範囲に制限
33
- const clampedA = max(0, min(1, a));
34
- return {
35
- r: roundedR,
36
- g: roundedG,
37
- b: roundedB,
38
- a: clampedA,
39
- };
40
- };
41
- //# sourceMappingURL=cmykToRgba.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cmykToRgba.js","sourceRoot":"","sources":["../../src/Tool/cmykToRgba.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,CAAS,EACT,CAAS,EACT,CAAS,EACT,CAAS,EACT,CAAC,GAAG,CAAC,EAC2C,EAAE;IAClD,sBAAsB;IACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAErC,oBAAoB;IACpB,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAE5C,WAAW;IACX,MAAM,CAAC,GAAG,cAAc,CACtB,GAAG,EACH,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,EACxB,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CACzB,CAAC;IACF,MAAM,CAAC,GAAG,cAAc,CACtB,GAAG,EACH,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,EACxB,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CACzB,CAAC;IACF,MAAM,CAAC,GAAG,cAAc,CACtB,GAAG,EACH,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,EACxB,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CACzB,CAAC;IAEF,sBAAsB;IACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE5B,mBAAmB;IACnB,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnC,OAAO;QACL,CAAC,EAAE,QAAQ;QACX,CAAC,EAAE,QAAQ;QACX,CAAC,EAAE,QAAQ;QACX,CAAC,EAAE,QAAQ;KACZ,CAAC;AACJ,CAAC,CAAC"}
@@ -1,14 +0,0 @@
1
- import type { hoursTypeInt } from "../types/clockType";
2
- import type { dayTypeInt, monTypeInt } from "../types/dateType";
3
- /**
4
- * 曜日を取得する
5
- * @param properties
6
- * @param timeDifference
7
- * @returns number
8
- * @example dayOfWeek({ year: 2000, mon: 1, day: 1 });
9
- */
10
- export declare const dayOfWeek: <T extends monTypeInt>(properties?: {
11
- year?: number;
12
- mon?: T;
13
- day?: dayTypeInt<T>;
14
- }, timeDifference?: hoursTypeInt) => number;
@@ -1,17 +0,0 @@
1
- import { newDateInt } from "../Date/new";
2
- import { now } from "../Date/now";
3
- /**
4
- * 曜日を取得する
5
- * @param properties
6
- * @param timeDifference
7
- * @returns number
8
- * @example dayOfWeek({ year: 2000, mon: 1, day: 1 });
9
- */
10
- export const dayOfWeek = (properties, timeDifference = 9) => {
11
- const nowTime = now(timeDifference);
12
- if (properties) {
13
- return newDateInt(properties.year || nowTime.getFullYear(), properties.mon || (nowTime.getMonth() + 1), properties.day || nowTime.getDate()).getDay();
14
- }
15
- return nowTime.getDay();
16
- };
17
- //# sourceMappingURL=dayOfWeek.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dayOfWeek.js","sourceRoot":"","sources":["../../src/Tool/dayOfWeek.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEjC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,UAIC,EACD,iBAA+B,CAAC,EAChC,EAAE;IACF,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;IACpC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CACf,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,EACxC,UAAU,CAAC,GAAG,IAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAgB,EAC1D,UAAU,CAAC,GAAG,IAAK,OAAO,CAAC,OAAO,EAAoB,CACvD,CAAC,MAAM,EAAE,CAAC;IACb,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;AAC1B,CAAC,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * 文字列からスペースを削除する
3
- * @param char
4
- * @returns string
5
- * @example deleteSpace("Hello World"); // "HelloWorld"
6
- */
7
- export declare const deleteSpace: (char: string) => string;
@@ -1,10 +0,0 @@
1
- /**
2
- * 文字列からスペースを削除する
3
- * @param char
4
- * @returns string
5
- * @example deleteSpace("Hello World"); // "HelloWorld"
6
- */
7
- export const deleteSpace = (char) => {
8
- return char.replaceAll(/\s/g, "");
9
- };
10
- //# sourceMappingURL=deleteSpace.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deleteSpace.js","sourceRoot":"","sources":["../../src/Tool/deleteSpace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;IAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * hexをrgbaに変換する
3
- * @param hex
4
- * @returns { r: number; g: number; b: number; a: number; }
5
- * @example hexToRgba("#000000"); // { r: 0, g: 0, b: 0, a: 1 }
6
- */
7
- export declare function hexToRgba(hex: string): {
8
- r: number;
9
- g: number;
10
- b: number;
11
- a: number;
12
- };
@@ -1,20 +0,0 @@
1
- import { division } from "../Math/division";
2
- /**
3
- * hexをrgbaに変換する
4
- * @param hex
5
- * @returns { r: number; g: number; b: number; a: number; }
6
- * @example hexToRgba("#000000"); // { r: 0, g: 0, b: 0, a: 1 }
7
- */
8
- export function hexToRgba(hex) {
9
- // hex形式かどうかのチェック
10
- if (/^#([\da-f]{3}|[\da-f]{6}|[\da-f]{8})$/i.test(hex) === false) {
11
- throw new Error("Invalid hex code");
12
- }
13
- const hexCode = hex.replace("#", "");
14
- const r = Number.parseInt(hexCode.slice(0, 2), 16);
15
- const g = Number.parseInt(hexCode.slice(2, 4), 16);
16
- const b = Number.parseInt(hexCode.slice(4, 6), 16);
17
- const a = division(Number.parseInt(hexCode.slice(6, 8), 16), 255);
18
- return { r, g, b, a: Number.isNaN(a) ? 1 : a };
19
- }
20
- //# sourceMappingURL=hexToRgba.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hexToRgba.js","sourceRoot":"","sources":["../../src/Tool/hexToRgba.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IAMnC,iBAAiB;IACjB,IAAI,wCAAwC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAClE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACjD,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * hexaをrgbaに変換する
3
- * @param hex
4
- * @returns { r: number; g: number; b: number; a: number; }
5
- * @example hexToRgba("#00000000") // { r: 0, g: 0, b: 0, a: 0 }
6
- */
7
- export declare const hexaToRgba: (hex: string) => {
8
- r: number;
9
- g: number;
10
- b: number;
11
- a: number;
12
- };
@@ -1,20 +0,0 @@
1
- import { division } from "../Math/division";
2
- /**
3
- * hexaをrgbaに変換する
4
- * @param hex
5
- * @returns { r: number; g: number; b: number; a: number; }
6
- * @example hexToRgba("#00000000") // { r: 0, g: 0, b: 0, a: 0 }
7
- */
8
- export const hexaToRgba = (hex) => {
9
- // hex形式かどうかのチェック
10
- if (/^#([\da-f]{3}|[\da-f]{6}|[\da-f]{8})$/i.test(hex) === false) {
11
- throw new Error("Invalid hex code");
12
- }
13
- const hexCode = hex.replace("#", "");
14
- const r = Number.parseInt(hexCode.slice(0, 2), 16);
15
- const g = Number.parseInt(hexCode.slice(2, 4), 16);
16
- const b = Number.parseInt(hexCode.slice(4, 6), 16);
17
- const a = division(Number.parseInt(hexCode.slice(6, 8), 16), 255);
18
- return { r, g, b, a: Number.isNaN(a) ? 1 : a };
19
- };
20
- //# sourceMappingURL=hexaToRgba.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hexaToRgba.js","sourceRoot":"","sources":["../../src/Tool/hexaToRgba.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,GAAW,EAMX,EAAE;IACF,iBAAiB;IACjB,IAAI,wCAAwC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAClE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACjD,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * hslaをrgbaに変換する
3
- * @param h 色相 (0から360の範囲)
4
- * @param s 彩度 (0から100の範囲)
5
- * @param l 明度 (0から100の範囲)
6
- * @param a アルファ値 (0から1の範囲)
7
- * @returns { r: number; g: number; b: number; a: number; }
8
- * @example hslaToRgba(120, 50, 50, 1) // { r: 64, g: 191, b: 64, a: 1 }
9
- */
10
- export declare const hslaToRgba: (h: number, s: number, l: number, a?: number) => {
11
- r: number;
12
- g: number;
13
- b: number;
14
- a: number;
15
- };
@@ -1,76 +0,0 @@
1
- import { addition } from "../Math/addition";
2
- import { division } from "../Math/division";
3
- import { max } from "../Math/max";
4
- import { min } from "../Math/min";
5
- import { multiplication } from "../Math/multiplication";
6
- import { roundOf } from "../Math/roundOf";
7
- import { subtract } from "../Math/subtract";
8
- /**
9
- * hslaをrgbaに変換する
10
- * @param h 色相 (0から360の範囲)
11
- * @param s 彩度 (0から100の範囲)
12
- * @param l 明度 (0から100の範囲)
13
- * @param a アルファ値 (0から1の範囲)
14
- * @returns { r: number; g: number; b: number; a: number; }
15
- * @example hslaToRgba(120, 50, 50, 1) // { r: 64, g: 191, b: 64, a: 1 }
16
- */
17
- export const hslaToRgba = (h, s, l, a = 1) => {
18
- if (h < 0 ||
19
- h > 360 ||
20
- s < 0 ||
21
- s > 100 ||
22
- l < 0 ||
23
- l > 100 ||
24
- a < 0 ||
25
- a > 1) {
26
- return { r: 0, g: 0, b: 0, a: 1 };
27
- }
28
- const hue = division(division(h, 360, false)[1], 360);
29
- const saturation = division(max(0, min(s, 100)), 100);
30
- const lightness = division(max(0, min(l, 100)), 100);
31
- let r = 0;
32
- let g = 0;
33
- let b = 0;
34
- if (saturation === 0) {
35
- r = g = b = lightness;
36
- }
37
- else {
38
- const hueToRgb = (p, q, t) => {
39
- let tAdjusted = t;
40
- if (t < 0) {
41
- tAdjusted = addition(t, 1);
42
- }
43
- if (t > 1) {
44
- tAdjusted = subtract(t, 1);
45
- }
46
- if (tAdjusted < division(1, 6)) {
47
- return addition(p, multiplication(subtract(q, p), multiplication(6, tAdjusted)));
48
- }
49
- if (tAdjusted < division(1, 2)) {
50
- return q;
51
- }
52
- if (tAdjusted < division(2, 3)) {
53
- return addition(p, multiplication(subtract(q, p), multiplication(subtract(division(2, 3, true), tAdjusted), 6)));
54
- }
55
- return p;
56
- };
57
- const q = lightness < 0.5
58
- ? multiplication(lightness, addition(1, saturation))
59
- : subtract(addition(lightness, saturation), multiplication(lightness, saturation));
60
- const p = subtract(multiplication(2, lightness), q);
61
- r = hueToRgb(p, q, addition(hue, division(1, 3)));
62
- g = hueToRgb(p, q, hue);
63
- b = hueToRgb(p, q, subtract(hue, division(1, 3)));
64
- }
65
- const roundedR = roundOf(multiplication(r, 255), 2);
66
- const roundedG = roundOf(multiplication(g, 255), 2);
67
- const roundedB = roundOf(multiplication(b, 255), 2);
68
- const clampedA = max(0, min(1, a));
69
- return {
70
- r: roundedR,
71
- g: roundedG,
72
- b: roundedB,
73
- a: clampedA,
74
- };
75
- };
76
- //# sourceMappingURL=hslaToRgba.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hslaToRgba.js","sourceRoot":"","sources":["../../src/Tool/hslaToRgba.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- /**
2
- * rgbaをcmykに変換する
3
- * @param rgba
4
- * @returns { c: number, m: number, y: number, k: number, a: number }
5
- * @example rgbaToCmyk({ r: 0, g: 0, b: 0, a: 1 }); // { c: 0, m: 0, y: 0, k: 100, a: 1 }
6
- */
7
- export declare const rgbaToCmyk: ({ r, g, b, a, }: {
8
- r: number;
9
- g: number;
10
- b: number;
11
- a?: number | undefined;
12
- }) => {
13
- c: number;
14
- m: number;
15
- y: number;
16
- k: number;
17
- a: number;
18
- };
@@ -1,26 +0,0 @@
1
- import { division } from "../Math/division";
2
- import { roundOf } from "../Math/roundOf";
3
- import { subtract } from "../Math/subtract";
4
- /**
5
- * rgbaをcmykに変換する
6
- * @param rgba
7
- * @returns { c: number, m: number, y: number, k: number, a: number }
8
- * @example rgbaToCmyk({ r: 0, g: 0, b: 0, a: 1 }); // { c: 0, m: 0, y: 0, k: 100, a: 1 }
9
- */
10
- export const rgbaToCmyk = ({ r, g, b, a = 1, }) => {
11
- const rPrime = division(r, 255);
12
- const gPrime = division(g, 255);
13
- const bPrime = division(b, 255);
14
- const k = subtract(1, Math.max(rPrime, gPrime, bPrime));
15
- const c = division(subtract(subtract(1, rPrime), k), subtract(1, k)) || 0;
16
- const m = division(subtract(subtract(1, gPrime), k), subtract(1, k)) || 0;
17
- const y = division(subtract(subtract(1, bPrime), k), subtract(1, k)) || 0;
18
- return {
19
- c: roundOf(c * 100, 2),
20
- m: roundOf(m * 100, 2),
21
- y: roundOf(y * 100, 2),
22
- k: roundOf(k * 100, 2),
23
- a,
24
- };
25
- };
26
- //# sourceMappingURL=rgbaToCmyk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rgbaToCmyk.js","sourceRoot":"","sources":["../../src/Tool/rgbaToCmyk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,GAAG,CAAC,GAMN,EAA6D,EAAE;IAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEhC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE1E,OAAO;QACL,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QACtB,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QACtB,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QACtB,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * rgbaを16進数に変換
3
- * @param rgba
4
- * @returns {string} 16進数の色コード
5
- * @example rgbaToHexA({ r: 0, g: 0, b: 0, a: 1 }); // "#000000"
6
- */
7
- export declare const rgbaToHexA: ({ r, g, b, a, }: {
8
- r: number;
9
- g: number;
10
- b: number;
11
- a?: number | undefined;
12
- }) => string;
@@ -1,25 +0,0 @@
1
- const hex = (x) => {
2
- const hexCode = x.toString(16);
3
- return hexCode.length === 1 ? `0${hexCode}` : hexCode;
4
- };
5
- /**
6
- * rgbaを16進数に変換
7
- * @param rgba
8
- * @returns {string} 16進数の色コード
9
- * @example rgbaToHexA({ r: 0, g: 0, b: 0, a: 1 }); // "#000000"
10
- */
11
- export const rgbaToHexA = ({ r, g, b, a = 1, }) => {
12
- // rgba形式かどうかのチェック
13
- if (r < 0 ||
14
- r > 255 ||
15
- g < 0 ||
16
- g > 255 ||
17
- b < 0 ||
18
- b > 255 ||
19
- a < 0 ||
20
- a > 1) {
21
- throw new Error("Invalid rgba value");
22
- }
23
- return `#${hex(r)}${hex(g)}${hex(b)}${hex(Math.round(a * 255))}`;
24
- };
25
- //# sourceMappingURL=rgbaToHexA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rgbaToHexA.js","sourceRoot":"","sources":["../../src/Tool/rgbaToHexA.ts"],"names":[],"mappings":"AAAA,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE;IACxB,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC/B,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AACxD,CAAC,CAAC;AACF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,GAAG,CAAC,GAMN,EAAU,EAAE;IACX,kBAAkB;IAClB,IACE,CAAC,GAAG,CAAC;QACL,CAAC,GAAG,GAAG;QACP,CAAC,GAAG,CAAC;QACL,CAAC,GAAG,GAAG;QACP,CAAC,GAAG,CAAC;QACL,CAAC,GAAG,GAAG;QACP,CAAC,GAAG,CAAC;QACL,CAAC,GAAG,CAAC,EACL,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC,CAAC"}
@@ -1,17 +0,0 @@
1
- /**
2
- * rgbaをhslaに変換する
3
- * @param rgba
4
- * @returns { h: number; s: number; l: number; a: number; }
5
- * @example rgbaToHsla({ r: 100, g: 100, b: 100, a: 1 }); // { h: 0, s: 0, l: 39.22, a: 1 }
6
- */
7
- export declare const rgbaToHsla: ({ r, g, b, a, }: {
8
- r: number;
9
- g: number;
10
- b: number;
11
- a?: number | undefined;
12
- }) => {
13
- h: number;
14
- s: number;
15
- l: number;
16
- a: number;
17
- };
@@ -1,48 +0,0 @@
1
- import { addition } from "../Math/addition";
2
- import { division } from "../Math/division";
3
- import { multiplication } from "../Math/multiplication";
4
- import { roundOf } from "../Math/roundOf";
5
- import { subtract } from "../Math/subtract";
6
- /**
7
- * rgbaをhslaに変換する
8
- * @param rgba
9
- * @returns { h: number; s: number; l: number; a: number; }
10
- * @example rgbaToHsla({ r: 100, g: 100, b: 100, a: 1 }); // { h: 0, s: 0, l: 39.22, a: 1 }
11
- */
12
- export const rgbaToHsla = ({ r, g, b, a = 1, }) => {
13
- const rPrime = division(r, 255);
14
- const gPrime = division(g, 255);
15
- const bPrime = division(b, 255);
16
- const max = Math.max(rPrime, gPrime, bPrime);
17
- const min = Math.min(rPrime, gPrime, bPrime);
18
- const diff = subtract(max, min);
19
- let h = 0;
20
- const l = division(addition(max, min), 2);
21
- const s = diff === 0
22
- ? 0
23
- : division(diff, subtract(1, Math.abs(subtract(addition(max, min), 1))));
24
- if (diff !== 0) {
25
- switch (max) {
26
- case rPrime: {
27
- h = addition(division(subtract(gPrime, bPrime), diff), gPrime < bPrime ? 6 : 0);
28
- break;
29
- }
30
- case gPrime: {
31
- h = addition(division(subtract(bPrime, rPrime), diff), 2);
32
- break;
33
- }
34
- case bPrime: {
35
- h = addition(division(subtract(rPrime, gPrime), diff), 4);
36
- break;
37
- }
38
- }
39
- h = multiplication(h, 60);
40
- }
41
- return {
42
- h: roundOf(h, 2),
43
- s: roundOf(s * 100, 2),
44
- l: roundOf(l * 100, 2),
45
- a,
46
- };
47
- };
48
- //# sourceMappingURL=rgbaToHsla.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rgbaToHsla.js","sourceRoot":"","sources":["../../src/Tool/rgbaToHsla.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,GAAG,CAAC,GAMN,EAAkD,EAAE;IACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEhC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEhC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,GACL,IAAI,KAAK,CAAC;QACR,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7E,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,CAAC,GAAG,QAAQ,CACV,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EACxC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACxB,CAAC;gBACF,MAAM;YACR,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1D,MAAM;YACR,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1D,MAAM;YACR,CAAC;QACH,CAAC;QACD,CAAC,GAAG,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QACtB,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}