@tremolo-ui/functions 0.0.6 → 0.0.8

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 (79) hide show
  1. package/dist/cjs/components/NumberInput/type.js +1 -1
  2. package/dist/cjs/components/NumberInput/type.js.map +1 -1
  3. package/dist/cjs/components/NumberInput/types/components/NumberInput/type.d.ts +1 -1
  4. package/dist/cjs/components/NumberInput/types/components/NumberInput/type.d.ts.map +1 -1
  5. package/dist/cjs/components/NumberInput/types/components/Slider/type.d.ts +6 -31
  6. package/dist/cjs/components/NumberInput/types/components/Slider/type.d.ts.map +1 -1
  7. package/dist/cjs/components/NumberInput/types/math.d.ts +5 -0
  8. package/dist/cjs/components/NumberInput/types/math.d.ts.map +1 -1
  9. package/dist/cjs/components/NumberInput/types/midi.d.ts +2 -2
  10. package/dist/cjs/components/NumberInput/types/midi.d.ts.map +1 -1
  11. package/dist/cjs/components/NumberInput/types/util.d.ts +4 -0
  12. package/dist/cjs/components/NumberInput/types/util.d.ts.map +1 -1
  13. package/dist/cjs/components/Slider/type.js +10 -37
  14. package/dist/cjs/components/Slider/type.js.map +1 -1
  15. package/dist/cjs/components/Slider/types/components/NumberInput/type.d.ts +1 -1
  16. package/dist/cjs/components/Slider/types/components/NumberInput/type.d.ts.map +1 -1
  17. package/dist/cjs/components/Slider/types/components/Slider/type.d.ts +6 -31
  18. package/dist/cjs/components/Slider/types/components/Slider/type.d.ts.map +1 -1
  19. package/dist/cjs/components/Slider/types/math.d.ts +5 -0
  20. package/dist/cjs/components/Slider/types/math.d.ts.map +1 -1
  21. package/dist/cjs/components/Slider/types/midi.d.ts +2 -2
  22. package/dist/cjs/components/Slider/types/midi.d.ts.map +1 -1
  23. package/dist/cjs/components/Slider/types/util.d.ts +4 -0
  24. package/dist/cjs/components/Slider/types/util.d.ts.map +1 -1
  25. package/dist/cjs/index.js +36 -10
  26. package/dist/cjs/index.js.map +1 -1
  27. package/dist/cjs/types/components/NumberInput/type.d.ts +1 -1
  28. package/dist/cjs/types/components/NumberInput/type.d.ts.map +1 -1
  29. package/dist/cjs/types/components/Slider/type.d.ts +6 -31
  30. package/dist/cjs/types/components/Slider/type.d.ts.map +1 -1
  31. package/dist/cjs/types/math.d.ts +5 -0
  32. package/dist/cjs/types/math.d.ts.map +1 -1
  33. package/dist/cjs/types/midi.d.ts +2 -2
  34. package/dist/cjs/types/midi.d.ts.map +1 -1
  35. package/dist/cjs/types/util.d.ts +4 -0
  36. package/dist/cjs/types/util.d.ts.map +1 -1
  37. package/dist/esm/components/NumberInput/type.js +1 -1
  38. package/dist/esm/components/NumberInput/type.js.map +1 -1
  39. package/dist/esm/components/NumberInput/types/components/NumberInput/type.d.ts +1 -1
  40. package/dist/esm/components/NumberInput/types/components/NumberInput/type.d.ts.map +1 -1
  41. package/dist/esm/components/NumberInput/types/components/Slider/type.d.ts +6 -31
  42. package/dist/esm/components/NumberInput/types/components/Slider/type.d.ts.map +1 -1
  43. package/dist/esm/components/NumberInput/types/math.d.ts +5 -0
  44. package/dist/esm/components/NumberInput/types/math.d.ts.map +1 -1
  45. package/dist/esm/components/NumberInput/types/midi.d.ts +2 -2
  46. package/dist/esm/components/NumberInput/types/midi.d.ts.map +1 -1
  47. package/dist/esm/components/NumberInput/types/util.d.ts +4 -0
  48. package/dist/esm/components/NumberInput/types/util.d.ts.map +1 -1
  49. package/dist/esm/components/Slider/type.js +10 -33
  50. package/dist/esm/components/Slider/type.js.map +1 -1
  51. package/dist/esm/components/Slider/types/components/NumberInput/type.d.ts +1 -1
  52. package/dist/esm/components/Slider/types/components/NumberInput/type.d.ts.map +1 -1
  53. package/dist/esm/components/Slider/types/components/Slider/type.d.ts +6 -31
  54. package/dist/esm/components/Slider/types/components/Slider/type.d.ts.map +1 -1
  55. package/dist/esm/components/Slider/types/math.d.ts +5 -0
  56. package/dist/esm/components/Slider/types/math.d.ts.map +1 -1
  57. package/dist/esm/components/Slider/types/midi.d.ts +2 -2
  58. package/dist/esm/components/Slider/types/midi.d.ts.map +1 -1
  59. package/dist/esm/components/Slider/types/util.d.ts +4 -0
  60. package/dist/esm/components/Slider/types/util.d.ts.map +1 -1
  61. package/dist/esm/components/tsconfig.tsbuildinfo +1 -1
  62. package/dist/esm/index.js +35 -11
  63. package/dist/esm/index.js.map +1 -1
  64. package/dist/esm/types/components/NumberInput/type.d.ts +1 -1
  65. package/dist/esm/types/components/NumberInput/type.d.ts.map +1 -1
  66. package/dist/esm/types/components/Slider/type.d.ts +6 -31
  67. package/dist/esm/types/components/Slider/type.d.ts.map +1 -1
  68. package/dist/esm/types/math.d.ts +5 -0
  69. package/dist/esm/types/math.d.ts.map +1 -1
  70. package/dist/esm/types/midi.d.ts +2 -2
  71. package/dist/esm/types/midi.d.ts.map +1 -1
  72. package/dist/esm/types/util.d.ts +4 -0
  73. package/dist/esm/types/util.d.ts.map +1 -1
  74. package/package.json +4 -2
  75. package/src/components/NumberInput/type.ts +1 -1
  76. package/src/components/Slider/type.ts +17 -77
  77. package/src/math.ts +11 -0
  78. package/src/midi.ts +18 -15
  79. package/src/util.ts +8 -1
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @module NumberInput
3
- */
3
+ */
4
4
  /**
5
5
  * [unit, scale][]
6
6
  * @example
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../../src/components/NumberInput/type.ts"],"names":[],"mappings":"AAAA;;EAEE;AAIF;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;AAEtC,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAQxE;AAED,wBAAgB,UAAU,CACxB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,EACtB,KAAK,CAAC,EAAE,MAAM,EACd,YAAY,SAAI;;;;EA6CjB;AAID,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,UAShE"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../../src/components/NumberInput/type.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;AAEtC,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAQxE;AAED,wBAAgB,UAAU,CACxB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,EACtB,KAAK,CAAC,EAAE,MAAM,EACd,YAAY,SAAI;;;;EA6CjB;AAID,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,UAShE"}
@@ -1,35 +1,10 @@
1
1
  /**
2
2
  * @module Slider
3
- */
4
- export type Horizontal = 'right' | 'left';
5
- export type Vertical = 'up' | 'down';
6
- export type Direction = Horizontal | Vertical;
7
- export declare function isHorizontal(d: Direction): d is "right" | "left";
8
- export declare function isVertical(d: Direction): d is "up" | "down";
9
- export declare function isReversed(d: Direction): d is "left" | "up";
10
- export declare function gradientDirection(d: Direction): "right" | "left" | "top" | "bottom" | undefined;
3
+ */
11
4
  export type ScaleType = 'mark' | 'mark-number' | 'number';
12
- export type ScaleOrderList = {
13
- at: number;
14
- type?: ScaleType;
15
- text?: string;
16
- style?: {
17
- markColor?: string;
18
- labelColor?: string;
19
- length?: number | string;
20
- thickness?: number | string;
21
- };
22
- };
23
- export declare function parseScaleOrderList(scale: ['step', ScaleType] | [number, ScaleType] | ScaleOrderList[] | undefined, min: number, max: number, step: number): ScaleOrderList[];
24
- export type ScaleOption = {
25
- /**
26
- * @default 'mark-number'
27
- */
28
- defaultType?: ScaleType;
29
- markColor?: string;
30
- labelColor?: string;
31
- gap?: number | string;
32
- labelWidth?: number | string;
33
- style?: unknown;
34
- };
5
+ export type ScaleOptions = ['step', ScaleType] | [number, ScaleType];
6
+ export declare function generateOptionsList(options: ScaleOptions, min: number, max: number, step: number): {
7
+ value: number;
8
+ type: ScaleType;
9
+ }[];
35
10
  //# sourceMappingURL=type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../../src/components/Slider/type.ts"],"names":[],"mappings":"AAAA;;EAEE;AAQF,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,CAAA;AACzC,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAA;AACpC,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAA;AAE7C,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,yBAExC;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,sBAEtC;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,sBAEtC;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,SAAS,mDAI7C;AAID,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAA;AACzD,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;QACxB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAC5B,CAAA;CACF,CAAA;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EACD,CAAC,MAAM,EAAE,SAAS,CAAC,GACnB,CAAC,MAAM,EAAE,SAAS,CAAC,GACnB,cAAc,EAAE,GAChB,SAAS,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,oBAmBb;AAKD,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../../../src/components/Slider/type.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAA;AACzD,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AAEpE,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,YAAY,EACrB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM;WAGH,MAAM;UACP,SAAS;IAYlB"}
@@ -28,6 +28,11 @@ export declare function stepValue(value: number, step: number): number;
28
28
  * @category Math
29
29
  */
30
30
  export declare function toFixed(x: number, fractionDigits?: number): number;
31
+ /**
32
+ *
33
+ * @category Math
34
+ */
35
+ export declare function integerPart(x: number | string): string | undefined;
31
36
  /**
32
37
  *
33
38
  * @category Math
@@ -1 +1 @@
1
- {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../../src/math.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAE5D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,SAAI,UAKT;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,SAAI,UAQT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,UAKZ;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAOpD;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,UAEzD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAElE;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,UAEpC;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,UAEpC;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,UAElC;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,UAEpC"}
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../../src/math.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAE5D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,SAAI,UAKT;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,SAAI,UAQT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,UAKZ;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAOpD;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,UAEzD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAKlE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAElE;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,UAEpC;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,UAEpC;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,UAElC;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,UAEpC"}
@@ -5,7 +5,7 @@ export declare const whiteKeys: readonly ["A", "B", "C", "D", "E", "F", "G"];
5
5
  /**
6
6
  * @category MIDI
7
7
  */
8
- export type WhiteKey = typeof whiteKeys[number];
8
+ export type WhiteKey = (typeof whiteKeys)[number];
9
9
  /**
10
10
  * @category MIDI
11
11
  */
@@ -13,7 +13,7 @@ export declare const noteNames: readonly ["C", "C#", "D", "D#", "E", "F", "F#",
13
13
  /**
14
14
  * @category MIDI
15
15
  */
16
- export type NoteName = typeof noteNames[number];
16
+ export type NoteName = (typeof noteNames)[number];
17
17
  /**
18
18
  * @category MIDI
19
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"midi.d.ts","sourceRoot":"","sources":["../../../src/midi.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,SAAS,8CAA+C,CAAA;AAErE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,SAAS,CAAC,MAAM,CAAC,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,SAAS,4EAA6E,CAAA;AAEnG;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,SAAS,CAAC,MAAM,CAAC,CAAA;AAG/C;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM;YAKJ,QAAQ;gBACpB,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE;;EAGzD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,UAS1C;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,UAI1C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,WAW/C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,WAErD;AAED,eAAO,MAAM,UAAU,UAKtB,CAAA"}
1
+ {"version":3,"file":"midi.d.ts","sourceRoot":"","sources":["../../../src/midi.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,SAAS,8CAA+C,CAAA;AAErE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjD;;GAEG;AACH,eAAO,MAAM,SAAS,4EAaZ,CAAA;AAEV;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjD;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM;YAKJ,QAAQ;gBACpB,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE;;EAGzD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,UAK1C;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,UAI1C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,WAW/C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,WAErD;AAED,eAAO,MAAM,UAAU,UAAoD,CAAA"}
@@ -12,5 +12,9 @@ export declare function isEmpty(obj: object): boolean;
12
12
  * @category Utility
13
13
  */
14
14
  export declare function mod(n: number, m: number): number;
15
+ /**
16
+ * @category Utility
17
+ */
18
+ export declare function xor(a?: boolean, b?: boolean): boolean;
15
19
  export {};
16
20
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/util.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAErC;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAC3D,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,EAAE,EAAE,QAAQ,EACZ,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAAA;AAwBT;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,WAElC;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAEvC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/util.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAErC;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAC3D,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,EAAE,EAAE,QAAQ,EACZ,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAAA;AAwBT;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,WAElC;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAEvC;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,UAAQ,EAAE,CAAC,UAAQ,WAEvC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tremolo-ui/functions",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "description": "functions used in @tremolo-ui/react",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -64,6 +64,8 @@
64
64
  },
65
65
  "keywords": [
66
66
  "web-audio",
67
- "math"
67
+ "math",
68
+ "midi",
69
+ "dsp"
68
70
  ]
69
71
  }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @module NumberInput
3
- */
3
+ */
4
4
 
5
5
  import { toFixed } from '../../math'
6
6
 
@@ -1,90 +1,30 @@
1
1
  /**
2
2
  * @module Slider
3
- */
3
+ */
4
4
 
5
5
  import { decimalPart, toFixed } from '../../math'
6
6
 
7
- // - | vertical | horizontal
8
- // - | down | right
9
- // rev | up | left
10
-
11
- export type Horizontal = 'right' | 'left'
12
- export type Vertical = 'up' | 'down'
13
- export type Direction = Horizontal | Vertical
14
-
15
- export function isHorizontal(d: Direction) {
16
- return d == 'right' || d == 'left'
17
- }
18
-
19
- export function isVertical(d: Direction) {
20
- return d == 'up' || d == 'down'
21
- }
22
-
23
- export function isReversed(d: Direction) {
24
- return d == 'left' || d == 'up'
25
- }
26
-
27
- export function gradientDirection(d: Direction) {
28
- if (d == 'left' || d == 'right') return d
29
- if (d == 'up') return 'top'
30
- if (d == 'down') return 'bottom'
31
- }
32
-
33
- // export type SkewFunction = (x: number) => number
34
-
35
7
  export type ScaleType = 'mark' | 'mark-number' | 'number'
36
- export type ScaleOrderList = {
37
- at: number
38
- type?: ScaleType
39
- text?: string
40
- style?: {
41
- markColor?: string
42
- labelColor?: string
43
- length?: number | string
44
- thickness?: number | string
45
- }
46
- }
8
+ export type ScaleOptions = ['step', ScaleType] | [number, ScaleType]
47
9
 
48
- export function parseScaleOrderList(
49
- scale:
50
- | ['step', ScaleType]
51
- | [number, ScaleType]
52
- | ScaleOrderList[]
53
- | undefined,
10
+ export function generateOptionsList(
11
+ options: ScaleOptions,
54
12
  min: number,
55
13
  max: number,
56
14
  step: number,
57
15
  ) {
58
- let scalesList: ScaleOrderList[] = []
59
- if (!scale) {
60
- // return empty array
61
- } else if (typeof scale[0] == 'object') {
62
- scalesList = scale
63
- } else {
64
- const per = scale[0] == 'step' ? step : scale[0]
65
- const count = Math.floor(max / per) - Math.ceil(min / per) + 1
66
- for (let i = 0; i < count; i++) {
67
- const at = toFixed(
68
- per * (Math.ceil(min / per) + i),
69
- decimalPart(per)?.length,
70
- )
71
- scalesList.push({ at: at, type: scale[1] })
72
- }
16
+ const optionsList: {
17
+ value: number
18
+ type: ScaleType
19
+ }[] = []
20
+ const per = options[0] == 'step' ? step : options[0]
21
+ const count = Math.floor(max / per) - Math.ceil(min / per) + 1
22
+ for (let i = 0; i < count; i++) {
23
+ const value = toFixed(
24
+ per * (Math.ceil(min / per) + i),
25
+ decimalPart(per)?.length,
26
+ )
27
+ optionsList.push({ value: value, type: options[1] })
73
28
  }
74
- return scalesList
75
- }
76
-
77
- // TODO: anyにして、それぞれのプロジェクトにあった方法にオーバーライドする
78
- // style
79
-
80
- export type ScaleOption = {
81
- /**
82
- * @default 'mark-number'
83
- */
84
- defaultType?: ScaleType
85
- markColor?: string
86
- labelColor?: string
87
- gap?: number | string
88
- labelWidth?: number | string
89
- style?: unknown
29
+ return optionsList
90
30
  }
package/src/math.ts CHANGED
@@ -74,6 +74,17 @@ export function toFixed(x: number, fractionDigits?: number) {
74
74
  return Number(x.toFixed(fractionDigits))
75
75
  }
76
76
 
77
+ /**
78
+ *
79
+ * @category Math
80
+ */
81
+ export function integerPart(x: number | string): string | undefined {
82
+ if (Number.isNaN(x)) {
83
+ return undefined
84
+ }
85
+ return String(x).split('.')[0]
86
+ }
87
+
77
88
  /**
78
89
  *
79
90
  * @category Math
package/src/midi.ts CHANGED
@@ -8,18 +8,30 @@ export const whiteKeys = ['A', 'B', 'C', 'D', 'E', 'F', 'G'] as const
8
8
  /**
9
9
  * @category MIDI
10
10
  */
11
- export type WhiteKey = typeof whiteKeys[number]
11
+ export type WhiteKey = (typeof whiteKeys)[number]
12
12
 
13
13
  /**
14
14
  * @category MIDI
15
15
  */
16
- export const noteNames = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B'] as const
16
+ export const noteNames = [
17
+ 'C',
18
+ 'C#',
19
+ 'D',
20
+ 'D#',
21
+ 'E',
22
+ 'F',
23
+ 'F#',
24
+ 'G',
25
+ 'G#',
26
+ 'A',
27
+ 'A#',
28
+ 'B',
29
+ ] as const
17
30
 
18
31
  /**
19
32
  * @category MIDI
20
33
  */
21
- export type NoteName = typeof noteNames[number]
22
-
34
+ export type NoteName = (typeof noteNames)[number]
23
35
 
24
36
  /**
25
37
  * @category MIDI
@@ -40,11 +52,7 @@ export function parseNoteName(noteName: string) {
40
52
  * @category MIDI
41
53
  */
42
54
  export function noteNumber(noteName: string) {
43
- const {
44
- letter,
45
- accidental,
46
- octave,
47
- } = parseNoteName(noteName)
55
+ const { letter, accidental, octave } = parseNoteName(noteName)
48
56
  const noteIndex = noteNames.indexOf(letter.toLocaleUpperCase() as NoteName)
49
57
  const accidentalValue = (accidental[0] == 'b' ? -1 : 1) * accidental.length
50
58
  return noteIndex + 12 * (Number(octave) + 1) + accidentalValue
@@ -83,9 +91,4 @@ export function isBlackKey(noteNumber: number | string) {
83
91
  return !isWhiteKey(noteNumber)
84
92
  }
85
93
 
86
- export const scaleNames = [
87
- 'major',
88
- 'minor',
89
- 'natural minor',
90
- 'pentatonic',
91
- ]
94
+ export const scaleNames = ['major', 'minor', 'natural minor', 'pentatonic']
package/src/util.ts CHANGED
@@ -43,5 +43,12 @@ export function isEmpty(obj: object) {
43
43
  * @category Utility
44
44
  */
45
45
  export function mod(n: number, m: number) {
46
- return (((n % m) + m) % m)
46
+ return ((n % m) + m) % m
47
+ }
48
+
49
+ /**
50
+ * @category Utility
51
+ */
52
+ export function xor(a = false, b = false) {
53
+ return (a || b) && a != b
47
54
  }