zds-pickers 3.11.3 → 4.0.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.
- package/dist/index.cjs.js +177 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.es.js +18529 -0
- package/dist/index.es.js.map +1 -0
- package/dist/main.d.ts +244 -0
- package/package.json +62 -72
- package/dist/hooks/useComponentSize.js +0 -54
- package/dist/hooks/useStateWithDynamicDefault.js +0 -11
- package/dist/index.js +0 -43
- package/dist/midi/ccValues.js +0 -137
- package/dist/midi/statuses.js +0 -33
- package/dist/other/DefaultTooltip.js +0 -8
- package/dist/other/OctavePlayer.js +0 -121
- package/dist/other/SVGText.js +0 -116
- package/dist/other/SoundFontProvider.js +0 -124
- package/dist/other/utils.js +0 -52
- package/dist/pickers/CCPicker.js +0 -19
- package/dist/pickers/ChannelMappingPicker.js +0 -82
- package/dist/pickers/ChannelPicker.js +0 -40
- package/dist/pickers/Knob.js +0 -86
- package/dist/pickers/KnobPicker.js +0 -101
- package/dist/pickers/LatchPicker.js +0 -23
- package/dist/pickers/MappingPicker.js +0 -61
- package/dist/pickers/NotePicker.js +0 -83
- package/dist/pickers/PianoPicker.js +0 -104
- package/dist/pickers/PolarityPicker.js +0 -32
- package/dist/pickers/ResponseCurve.js +0 -263
- package/dist/pickers/ResponseCurvePicker.js +0 -58
- package/dist/pickers/Select.js +0 -174
- package/dist/pickers/StatusPicker.js +0 -22
- package/dist/pickers/ValuePicker.js +0 -57
- package/dist/pickers/knobSkin10.js +0 -94
- package/dist/shapes.js +0 -11
- package/dist/stories/assets/General MIDI.js +0 -69
- package/dist/stories/assets/mapper.js +0 -82
- package/dist/stories/assets/utils.js +0 -6
- package/dist/temp/acoustic_grand_piano-mp3.js +0 -94
- package/dist/utils.js +0 -45
package/dist/main.d.ts
ADDED
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import { default as default_2 } from 'soundfont-player';
|
|
2
|
+
import { ForwardRefExoticComponent } from 'react';
|
|
3
|
+
import { GroupBase } from 'react-select';
|
|
4
|
+
import { JSX as JSX_2 } from 'react/jsx-runtime';
|
|
5
|
+
import { JSX as JSX_3 } from 'react';
|
|
6
|
+
import { JSXElementConstructor } from 'react';
|
|
7
|
+
import { Mapping } from 'zds-mappings';
|
|
8
|
+
import { ReactElement } from 'react';
|
|
9
|
+
import { ReactNode } from 'react';
|
|
10
|
+
import { RefAttributes } from 'react';
|
|
11
|
+
import { SelectInstance } from 'react-select';
|
|
12
|
+
|
|
13
|
+
export declare const CCPicker: ForwardRefExoticComponent<CCPickerProps & RefAttributes<SelectInstance<Option_2<number>, false, GroupBase<Option_2<number>>>>>;
|
|
14
|
+
|
|
15
|
+
declare type CCPickerProps = SelectProps<number>;
|
|
16
|
+
|
|
17
|
+
export declare const ccValues: Option_2<number>[];
|
|
18
|
+
|
|
19
|
+
export declare const ChannelMappingPicker: ForwardRefExoticComponent<ChannelMappingPickerProps & RefAttributes<SelectInstance<Option_2<InternalValue>, false, GroupBase<Option_2<InternalValue>>>>>;
|
|
20
|
+
|
|
21
|
+
declare interface ChannelMappingPickerProps extends SelectProps<InternalValue> {
|
|
22
|
+
channels: Option_2<number>[];
|
|
23
|
+
className?: string;
|
|
24
|
+
filterOptions?: (candidate: Option_2<InternalValue>, inputValue: string) => boolean;
|
|
25
|
+
value: number;
|
|
26
|
+
onChange: (value: InternalValue) => void;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export declare const ChannelPicker: ForwardRefExoticComponent<ChannelPickerProps & RefAttributes<SelectInstance<Option_2<number>, false, GroupBase<Option_2<number>>>>>;
|
|
30
|
+
|
|
31
|
+
declare type ChannelPickerProps = SelectProps<number>;
|
|
32
|
+
|
|
33
|
+
export declare const combineStatusWithChannel: (channel: number, status: Status_2) => number;
|
|
34
|
+
|
|
35
|
+
export declare const extractStatusAndChannel: (status: number) => {
|
|
36
|
+
status: Status_2;
|
|
37
|
+
channel: number;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export declare const getStatusLabel: (val: Status_2) => string | number | true | ReactElement<any, string | JSXElementConstructor<any>> | Iterable<ReactNode>;
|
|
41
|
+
|
|
42
|
+
declare type InternalValue = number | 'separator';
|
|
43
|
+
|
|
44
|
+
export declare const Knob: (props: KnobProps) => JSX_2.Element;
|
|
45
|
+
|
|
46
|
+
export declare const KnobPicker: ForwardRefExoticComponent<SelectProps<number> & {
|
|
47
|
+
highToLow?: boolean;
|
|
48
|
+
includeLabel?: boolean;
|
|
49
|
+
includePicker?: boolean;
|
|
50
|
+
knobProps?: Partial<KnobPickerProps>;
|
|
51
|
+
max?: number;
|
|
52
|
+
min?: number;
|
|
53
|
+
wheelEnabled?: boolean;
|
|
54
|
+
wheelSensitivity?: number;
|
|
55
|
+
value: number;
|
|
56
|
+
} & RefAttributes<SelectInstance<Option_2<number>, false, GroupBase<Option_2<number>>>>>;
|
|
57
|
+
|
|
58
|
+
declare type KnobPickerProps = SelectProps<number> & {
|
|
59
|
+
highToLow?: boolean;
|
|
60
|
+
includeLabel?: boolean;
|
|
61
|
+
includePicker?: boolean;
|
|
62
|
+
knobProps?: Partial<KnobPickerProps>;
|
|
63
|
+
max?: number;
|
|
64
|
+
min?: number;
|
|
65
|
+
wheelEnabled?: boolean;
|
|
66
|
+
wheelSensitivity?: number;
|
|
67
|
+
value: number;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
declare type KnobProps = {
|
|
71
|
+
disabled?: boolean;
|
|
72
|
+
max?: number;
|
|
73
|
+
min?: number;
|
|
74
|
+
onChange?: (value: number) => void;
|
|
75
|
+
value?: number;
|
|
76
|
+
wheelEnabled?: boolean;
|
|
77
|
+
wheelSensitivity?: number;
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
export declare const LatchPicker: ForwardRefExoticComponent<LatchPickerProps & RefAttributes<SelectInstance<Option_2<number>, false, GroupBase<Option_2<number>>>>>;
|
|
81
|
+
|
|
82
|
+
declare type LatchPickerProps = SelectProps<number>;
|
|
83
|
+
|
|
84
|
+
export declare const MappingPicker: ForwardRefExoticComponent<SelectProps<string> & {
|
|
85
|
+
allowClearing: boolean;
|
|
86
|
+
} & RefAttributes<SelectInstance<Option_2<string>, false, GroupBase<Option_2<string>>>>>;
|
|
87
|
+
|
|
88
|
+
export declare const MASK_CHANNEL = 15;
|
|
89
|
+
|
|
90
|
+
export declare const MASK_STATUS = 240;
|
|
91
|
+
|
|
92
|
+
export declare const NotePicker: ForwardRefExoticComponent<SelectProps<number> & {
|
|
93
|
+
channel: number;
|
|
94
|
+
disabled?: boolean;
|
|
95
|
+
isMelodicMode?: boolean;
|
|
96
|
+
mapping?: Mapping;
|
|
97
|
+
onChange: (value: number) => void;
|
|
98
|
+
} & RefAttributes<SelectInstance<Option_2<number>, false, GroupBase<Option_2<number>>>>>;
|
|
99
|
+
|
|
100
|
+
export declare const OctavePlayer: ({ format, height, hostname, instrumentName, octave, onChange, onClick, onDoubleClick, onKeyMouseEnter, onKeyMouseLeave, soundfont, Tooltip, width, }: WithProviderProps) => JSX_2.Element;
|
|
101
|
+
|
|
102
|
+
declare type Option_2<T> = {
|
|
103
|
+
label: React.ReactNode;
|
|
104
|
+
value: T;
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
export declare const PianoPicker: ({ format, height, hostname, instrumentName, onChange, onClick, onDoubleClick, onKeyMouseEnter, onKeyMouseLeave, soundfont, width, }: WithProviderProps) => JSX_2.Element;
|
|
108
|
+
|
|
109
|
+
export declare const PolarityPicker: ForwardRefExoticComponent<SelectProps<number> & {
|
|
110
|
+
labelOff?: string;
|
|
111
|
+
labelOn?: string;
|
|
112
|
+
} & RefAttributes<SelectInstance<Option_2<number>, false, GroupBase<Option_2<number>>>>>;
|
|
113
|
+
|
|
114
|
+
export declare const RESPONSE_CURVES: Option_2<number>[];
|
|
115
|
+
|
|
116
|
+
export declare type ResponseCurve = {
|
|
117
|
+
value: string | number;
|
|
118
|
+
label: React.ReactNode;
|
|
119
|
+
c1: number;
|
|
120
|
+
c2: number;
|
|
121
|
+
x1: number;
|
|
122
|
+
y1: number;
|
|
123
|
+
x2: number;
|
|
124
|
+
y2: number;
|
|
125
|
+
labelX: number;
|
|
126
|
+
labelY: number;
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
export declare const ResponseCurve: (props: ResponseCurveProps) => JSX_2.Element;
|
|
130
|
+
|
|
131
|
+
export declare const ResponseCurvePicker: ForwardRefExoticComponent<SelectProps<number> & {
|
|
132
|
+
inverted?: boolean;
|
|
133
|
+
Tooltip?: React.FC<TooltipProps>;
|
|
134
|
+
} & RefAttributes<SelectInstance<Option_2<number>, false, GroupBase<Option_2<number>>>>>;
|
|
135
|
+
|
|
136
|
+
declare type ResponseCurveProps = {
|
|
137
|
+
autosize: boolean;
|
|
138
|
+
disabled?: boolean;
|
|
139
|
+
inverted: boolean;
|
|
140
|
+
onChange: (event: {
|
|
141
|
+
target: {
|
|
142
|
+
value: number;
|
|
143
|
+
};
|
|
144
|
+
}) => void;
|
|
145
|
+
Tooltip: React.FC<TooltipProps>;
|
|
146
|
+
value: number;
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
export declare const Select: <T>(props: SelectProps<T> & {
|
|
150
|
+
ref?: React.ForwardedRef<SelectInstance<Option_2<T>, false, GroupBase<Option_2<T>>>>;
|
|
151
|
+
}) => JSX_3.Element;
|
|
152
|
+
|
|
153
|
+
declare type SelectProps<T> = {
|
|
154
|
+
className?: string;
|
|
155
|
+
components?: object;
|
|
156
|
+
disabled?: boolean;
|
|
157
|
+
filterOptions?: (candidate: Option_2<T>, inputValue: string) => boolean;
|
|
158
|
+
formatOptionLabel?: (option: Option_2<unknown>, { context }: {
|
|
159
|
+
context: 'menu' | 'value';
|
|
160
|
+
}) => React.ReactNode;
|
|
161
|
+
isSearchable?: boolean;
|
|
162
|
+
label?: string;
|
|
163
|
+
onChange: (value: Option_2<T>['value']) => void;
|
|
164
|
+
options: Option_2<T>[] | {
|
|
165
|
+
entries: Option_2<T>[];
|
|
166
|
+
}[];
|
|
167
|
+
preserveMenuWidth?: boolean;
|
|
168
|
+
shrinkLabel?: boolean;
|
|
169
|
+
value: Option_2<T>['value'];
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
declare type Status = (typeof Statuses_2)[keyof typeof Statuses_2]
|
|
173
|
+
|
|
174
|
+
declare type Status_2 = (typeof Statuses)[keyof typeof Statuses];
|
|
175
|
+
|
|
176
|
+
export declare const Statuses: {
|
|
177
|
+
noteOff: number;
|
|
178
|
+
noteOn: number;
|
|
179
|
+
aftertouch: number;
|
|
180
|
+
controlChange: number;
|
|
181
|
+
programChange: number;
|
|
182
|
+
channelPressure: number;
|
|
183
|
+
pitchWheel: number;
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
declare const Statuses_2 = {
|
|
187
|
+
noteOff: 8, // 1000
|
|
188
|
+
noteOn: 9, // 1001
|
|
189
|
+
aftertouch: 10, // 1010
|
|
190
|
+
controlChange: 11, // 1011
|
|
191
|
+
programChange: 12, // 1100
|
|
192
|
+
channelPressure: 13, // 1101
|
|
193
|
+
pitchWheel: 14, // 1110
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
export declare const StatusPicker: ForwardRefExoticComponent<SelectProps<number> & {
|
|
197
|
+
statuses: Option_2<Status>[];
|
|
198
|
+
} & RefAttributes<SelectInstance<Option_2<number>, false, GroupBase<Option_2<number>>>>>;
|
|
199
|
+
|
|
200
|
+
export declare const SVGText: (props: TextProps) => JSX_2.Element;
|
|
201
|
+
|
|
202
|
+
declare type TextProps = Partial<HTMLOrSVGElement> & {
|
|
203
|
+
className?: string;
|
|
204
|
+
dx?: number;
|
|
205
|
+
dy?: number;
|
|
206
|
+
maxHeight?: number;
|
|
207
|
+
maxWidth?: number;
|
|
208
|
+
transform?: string;
|
|
209
|
+
text: string;
|
|
210
|
+
textAnchor?: React.CSSProperties['textAnchor'];
|
|
211
|
+
verticalAnchor?: 'start' | 'middle' | 'end';
|
|
212
|
+
x?: number;
|
|
213
|
+
y?: number;
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
declare type TooltipProps = {
|
|
217
|
+
children?: React.ReactNode;
|
|
218
|
+
placement?: 'left' | 'right' | 'top' | 'bottom';
|
|
219
|
+
title: React.ReactNode;
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
export declare const ValuePicker: ForwardRefExoticComponent<SelectProps<number> & {
|
|
223
|
+
highToLow?: boolean;
|
|
224
|
+
max?: number;
|
|
225
|
+
min?: number;
|
|
226
|
+
} & RefAttributes<SelectInstance<Option_2<number>, false, GroupBase<Option_2<number>>>>>;
|
|
227
|
+
|
|
228
|
+
declare type WithProviderProps = {
|
|
229
|
+
format?: 'mp3' | 'ogg';
|
|
230
|
+
height: number;
|
|
231
|
+
hostname?: string;
|
|
232
|
+
instrumentName: default_2.InstrumentName;
|
|
233
|
+
octave?: number;
|
|
234
|
+
onChange?: (note: number) => void;
|
|
235
|
+
onClick?: (note: number) => void;
|
|
236
|
+
onDoubleClick?: (note: number) => void;
|
|
237
|
+
onKeyMouseEnter?: (note: number) => void;
|
|
238
|
+
onKeyMouseLeave?: (note: number) => void;
|
|
239
|
+
soundfont?: 'MusyngKite' | 'FluidR3_GM';
|
|
240
|
+
Tooltip?: TooltipProps;
|
|
241
|
+
width: number;
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
export { }
|
package/package.json
CHANGED
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zds-pickers",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.1",
|
|
4
|
+
"main": "./dist/index.cjs.js",
|
|
5
|
+
"module": "./dist/index.es.js",
|
|
6
|
+
"types": "./dist/main.d.ts",
|
|
7
|
+
"files": ["dist"],
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/main.d.ts",
|
|
11
|
+
"import": "./dist/index.es.js",
|
|
12
|
+
"require": "./dist/index.cjs.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"private": false,
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public",
|
|
18
|
+
"registry": "https://registry.npmjs.org/"
|
|
19
|
+
},
|
|
20
|
+
"sideEffects": false,
|
|
4
21
|
"homepage": "https://github.com/dkadrios/zds-pickers#readme",
|
|
5
22
|
"license": "MIT",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"files": [
|
|
8
|
-
"dist/**/*.js",
|
|
9
|
-
"README.md",
|
|
10
|
-
"LICENSE"
|
|
11
|
-
],
|
|
12
23
|
"author": "Darin Kadrioski <dkadrios@gmail.com>",
|
|
13
24
|
"bugs": {
|
|
14
25
|
"url": "https://github.com/dkadrios/zds-pickers/issues"
|
|
@@ -19,79 +30,58 @@
|
|
|
19
30
|
"url": "git+https://github.com/dkadrios/zds-pickers.git"
|
|
20
31
|
},
|
|
21
32
|
"scripts": {
|
|
33
|
+
"dev": "vite",
|
|
34
|
+
"build": "tsc --p ./tsconfig.json && vite build",
|
|
22
35
|
"build-storybook": "storybook build",
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"prepare": "npm run build",
|
|
29
|
-
"sb": "storybook dev --quiet -p 6006 --ci"
|
|
36
|
+
"lint": "biome check --write",
|
|
37
|
+
"preview": "vite preview",
|
|
38
|
+
"sb": "storybook dev --quiet -p 6006 --no-open",
|
|
39
|
+
"sb:watch": "nodemon --watch .storybook -e ts,tsx,js,jsx --exec 'npm run sb'",
|
|
40
|
+
"prepublishOnly": "npm run build"
|
|
30
41
|
},
|
|
31
42
|
"devDependencies": {
|
|
32
|
-
"@
|
|
33
|
-
"@
|
|
34
|
-
"@
|
|
35
|
-
"@
|
|
36
|
-
"@
|
|
37
|
-
"@
|
|
38
|
-
"@
|
|
39
|
-
"@
|
|
40
|
-
"@
|
|
41
|
-
"@
|
|
42
|
-
"@
|
|
43
|
-
"@
|
|
44
|
-
"@
|
|
45
|
-
"@
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"@studysync/eslint-plugin-jsx-conditionals": "2.0.2",
|
|
51
|
-
"@studysync/eslint-plugin-material-ui": "1.2.1",
|
|
52
|
-
"@studysync/eslint-plugin-persnickety": "1.0.5",
|
|
53
|
-
"babel-loader": "9.1.3",
|
|
54
|
-
"classnames": "2.3.2",
|
|
55
|
-
"eslint": "8.54.0",
|
|
56
|
-
"eslint-config-airbnb": "19.0.4",
|
|
57
|
-
"eslint-config-prettier": "9.0.0",
|
|
58
|
-
"eslint-import-resolver-alias": "1.1.2",
|
|
59
|
-
"eslint-import-resolver-parcel": "1.10.6",
|
|
60
|
-
"eslint-plugin-custom-jsx-props-order": "1.0.0",
|
|
61
|
-
"eslint-plugin-import": "2.29.0",
|
|
62
|
-
"eslint-plugin-json": "3.1.0",
|
|
63
|
-
"eslint-plugin-jsx-a11y": "6.8.0",
|
|
64
|
-
"eslint-plugin-ocd": "1.1.0",
|
|
65
|
-
"eslint-plugin-prettier": "5.0.1",
|
|
66
|
-
"eslint-plugin-react": "7.33.2",
|
|
67
|
-
"eslint-plugin-react-hooks": "4.6.0",
|
|
68
|
-
"eslint-plugin-storybook": "^0.6.15",
|
|
69
|
-
"immer": "10.0.3",
|
|
70
|
-
"nebiru-react-rotary-knob": "1.1.8",
|
|
43
|
+
"@biomejs/biome": "1.9.4",
|
|
44
|
+
"@storybook/addon-actions": "8.5.0",
|
|
45
|
+
"@storybook/addon-docs": "8.5.0",
|
|
46
|
+
"@storybook/addon-essentials": "8.5.0",
|
|
47
|
+
"@storybook/addon-links": "8.5.0",
|
|
48
|
+
"@storybook/builder-vite": "8.5.0",
|
|
49
|
+
"@storybook/react-vite": "8.5.0",
|
|
50
|
+
"@storybook/react": "8.5.0",
|
|
51
|
+
"@types/d3-drag": "3.0.7",
|
|
52
|
+
"@types/d3-scale": "4.0.8",
|
|
53
|
+
"@types/d3-selection": "3.0.11",
|
|
54
|
+
"@types/react-dom": "18.3.5",
|
|
55
|
+
"@types/react": "18.3.18",
|
|
56
|
+
"@vitejs/plugin-react-swc": "3.7.2",
|
|
57
|
+
"classnames": "2.5.1",
|
|
58
|
+
"globals": "15.14.0",
|
|
59
|
+
"immer": "10.1.1",
|
|
60
|
+
"nodemon": "3.1.9",
|
|
71
61
|
"prop-types": "15.8.1",
|
|
72
|
-
"react": "18.2.0",
|
|
73
62
|
"react-dom": "18.2.0",
|
|
74
|
-
"react
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"zds-mappings": "1.4.9"
|
|
80
|
-
"zds-react-piano": "4.0.10"
|
|
63
|
+
"react": "18.2.0",
|
|
64
|
+
"storybook": "8.5.0",
|
|
65
|
+
"typescript": "5.7.3",
|
|
66
|
+
"vite-plugin-dts": "4.5.0",
|
|
67
|
+
"vite": "6.0.7",
|
|
68
|
+
"zds-mappings": "1.4.9"
|
|
81
69
|
},
|
|
82
70
|
"dependencies": {
|
|
83
|
-
"caniuse-lite": "
|
|
71
|
+
"caniuse-lite": "1.0.30001695",
|
|
72
|
+
"d3-drag": "3.0.0",
|
|
73
|
+
"d3-scale": "4.0.2",
|
|
74
|
+
"d3-selection": "3.0.0",
|
|
75
|
+
"react-select": "5.9.0",
|
|
76
|
+
"react-svgmt": "2.0.2",
|
|
77
|
+
"soundfont-player": "0.12.0",
|
|
78
|
+
"tonal": "6.4.0",
|
|
79
|
+
"zds-react-piano": "4.0.10"
|
|
84
80
|
},
|
|
85
81
|
"peerDependencies": {
|
|
86
|
-
"classnames": "
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"react-select": ">=5.5.4",
|
|
91
|
-
"reduce-css-calc": ">=2.1.8",
|
|
92
|
-
"soundfont-player": ">=0.12.0",
|
|
93
|
-
"tonal": "5.0.0",
|
|
94
|
-
"zds-mappings": "^1.4.9",
|
|
95
|
-
"zds-react-piano": ">=4"
|
|
82
|
+
"classnames": ">=2.5.1",
|
|
83
|
+
"react": ">=18.0.0",
|
|
84
|
+
"react-dom": ">=18.0.0",
|
|
85
|
+
"zds-mappings": "1.4.9"
|
|
96
86
|
}
|
|
97
87
|
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray"; /* eslint-disable consistent-return */
|
|
2
|
-
import { useCallback, useLayoutEffect, useState } from 'react';
|
|
3
|
-
|
|
4
|
-
var getSize = function getSize(el) {return el ?
|
|
5
|
-
{
|
|
6
|
-
width: el.offsetWidth,
|
|
7
|
-
height: el.offsetHeight
|
|
8
|
-
} :
|
|
9
|
-
{
|
|
10
|
-
width: 0,
|
|
11
|
-
height: 0
|
|
12
|
-
};};
|
|
13
|
-
|
|
14
|
-
var useComponentSize = function useComponentSize(ref) {
|
|
15
|
-
var _useState = useState(getSize(ref ? ref.current : {})),_useState2 = _slicedToArray(_useState, 2),componentSize = _useState2[0],setComponentSize = _useState2[1];
|
|
16
|
-
|
|
17
|
-
var handleResize = useCallback(function () {
|
|
18
|
-
if (ref.current) {
|
|
19
|
-
setComponentSize(getSize(ref.current));
|
|
20
|
-
}
|
|
21
|
-
}, [ref]);
|
|
22
|
-
|
|
23
|
-
useLayoutEffect(
|
|
24
|
-
function () {
|
|
25
|
-
if (!ref.current) return;
|
|
26
|
-
|
|
27
|
-
handleResize();
|
|
28
|
-
|
|
29
|
-
if (typeof ResizeObserver === 'function') {
|
|
30
|
-
var resizeObserver = new ResizeObserver(function () {
|
|
31
|
-
handleResize();
|
|
32
|
-
});
|
|
33
|
-
resizeObserver.observe(ref.current);
|
|
34
|
-
|
|
35
|
-
return function () {
|
|
36
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
37
|
-
resizeObserver.disconnect(ref.current);
|
|
38
|
-
resizeObserver = null;
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
window.addEventListener('resize', handleResize);
|
|
42
|
-
|
|
43
|
-
return function () {
|
|
44
|
-
window.removeEventListener('resize', handleResize);
|
|
45
|
-
};
|
|
46
|
-
},
|
|
47
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
48
|
-
[ref.current]
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
return componentSize;
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export default useComponentSize;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";import { useEffect, useState } from 'react';
|
|
2
|
-
|
|
3
|
-
export default (function (defaultVal) {
|
|
4
|
-
var _useState = useState(defaultVal),_useState2 = _slicedToArray(_useState, 2),state = _useState2[0],setState = _useState2[1];
|
|
5
|
-
|
|
6
|
-
useEffect(function () {
|
|
7
|
-
setState(defaultVal);
|
|
8
|
-
}, [defaultVal]);
|
|
9
|
-
|
|
10
|
-
return [state, setState];
|
|
11
|
-
});
|
package/dist/index.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
// Pickers
|
|
2
|
-
export { default as CCPicker } from './pickers/CCPicker';
|
|
3
|
-
export { default as ChannelMappingPicker } from './pickers/ChannelMappingPicker';
|
|
4
|
-
export { default as ChannelPicker } from './pickers/ChannelPicker';
|
|
5
|
-
export { default as Knob } from './pickers/Knob';
|
|
6
|
-
export { default as KnobPicker } from './pickers/KnobPicker';
|
|
7
|
-
export { default as LatchPicker } from './pickers/LatchPicker';
|
|
8
|
-
export { default as MappingPicker } from './pickers/MappingPicker';
|
|
9
|
-
export { default as NotePicker } from './pickers/NotePicker';
|
|
10
|
-
export { default as OctavePlayer } from './other/OctavePlayer';
|
|
11
|
-
export { default as PianoPicker } from './pickers/PianoPicker';
|
|
12
|
-
export { default as PolarityPicker } from './pickers/PolarityPicker';
|
|
13
|
-
export { default as ResponseCurvePicker } from './pickers/ResponseCurvePicker';
|
|
14
|
-
export { default as Select } from './pickers/Select';
|
|
15
|
-
export { default as StatusPicker } from './pickers/StatusPicker';
|
|
16
|
-
export { default as SVGText } from './other/SVGText';
|
|
17
|
-
export { default as ValuePicker } from './pickers/ValuePicker';
|
|
18
|
-
|
|
19
|
-
// MIDI
|
|
20
|
-
export {
|
|
21
|
-
default as statuses,
|
|
22
|
-
getStatusLabel,
|
|
23
|
-
combineStatus,
|
|
24
|
-
extractStatus,
|
|
25
|
-
STATUS_NOTE_OFF,
|
|
26
|
-
STATUS_NOTE_ON,
|
|
27
|
-
STATUS_AFTER_TOUCH,
|
|
28
|
-
STATUS_CONTROL_CHANGE,
|
|
29
|
-
STATUS_PROGRAM_CHANGE,
|
|
30
|
-
STATUS_CHANNEL_PRESSURE,
|
|
31
|
-
STATUS_PITCH_WHEEL,
|
|
32
|
-
MASK_CHANNEL,
|
|
33
|
-
MASK_STATUS } from
|
|
34
|
-
'./midi/statuses';
|
|
35
|
-
|
|
36
|
-
export {
|
|
37
|
-
default as ResponseCurve,
|
|
38
|
-
RESPONSE_CURVES } from
|
|
39
|
-
'./pickers/ResponseCurve';
|
|
40
|
-
|
|
41
|
-
export { default as ccValues } from './midi/ccValues';
|
|
42
|
-
|
|
43
|
-
export { assertRange, memoize } from './utils';
|
package/dist/midi/ccValues.js
DELETED
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
var CC_NAMES = [
|
|
2
|
-
'Bank Select',
|
|
3
|
-
'Modulation Wheel',
|
|
4
|
-
'Breath Controller',
|
|
5
|
-
'',
|
|
6
|
-
'Foot Control',
|
|
7
|
-
'Portamento Time',
|
|
8
|
-
'Data Entry Slider',
|
|
9
|
-
'Volume',
|
|
10
|
-
'Balance',
|
|
11
|
-
'',
|
|
12
|
-
'Pan',
|
|
13
|
-
'Expression',
|
|
14
|
-
'Effect Control 1',
|
|
15
|
-
'Effect Control 2',
|
|
16
|
-
'',
|
|
17
|
-
'',
|
|
18
|
-
'',
|
|
19
|
-
'',
|
|
20
|
-
'',
|
|
21
|
-
'',
|
|
22
|
-
'',
|
|
23
|
-
'',
|
|
24
|
-
'',
|
|
25
|
-
'',
|
|
26
|
-
'',
|
|
27
|
-
'',
|
|
28
|
-
'',
|
|
29
|
-
'',
|
|
30
|
-
'',
|
|
31
|
-
'',
|
|
32
|
-
'',
|
|
33
|
-
'',
|
|
34
|
-
'Controller 0',
|
|
35
|
-
'Controller 1',
|
|
36
|
-
'Controller 2',
|
|
37
|
-
'Controller 3',
|
|
38
|
-
'Controller 4',
|
|
39
|
-
'Controller 5',
|
|
40
|
-
'Controller 6',
|
|
41
|
-
'Controller 7',
|
|
42
|
-
'Controller 8',
|
|
43
|
-
'Controller 9',
|
|
44
|
-
'Controller 10',
|
|
45
|
-
'Controller 11',
|
|
46
|
-
'Controller 12',
|
|
47
|
-
'Controller 13',
|
|
48
|
-
'Controller 14',
|
|
49
|
-
'Controller 15',
|
|
50
|
-
'Controller 16',
|
|
51
|
-
'Controller 17',
|
|
52
|
-
'Controller 18',
|
|
53
|
-
'Controller 19',
|
|
54
|
-
'Controller 20',
|
|
55
|
-
'Controller 21',
|
|
56
|
-
'Controller 22',
|
|
57
|
-
'Controller 23',
|
|
58
|
-
'Controller 24',
|
|
59
|
-
'Controller 25',
|
|
60
|
-
'Controller 26',
|
|
61
|
-
'Controller 27',
|
|
62
|
-
'Controller 28',
|
|
63
|
-
'Controller 29',
|
|
64
|
-
'Controller 30',
|
|
65
|
-
'Controller 31',
|
|
66
|
-
'Sustain',
|
|
67
|
-
'Portamento',
|
|
68
|
-
'Sostenuto',
|
|
69
|
-
'Soft Pedal',
|
|
70
|
-
'Legato Pedal',
|
|
71
|
-
'Sustain 2',
|
|
72
|
-
'Sound Variation',
|
|
73
|
-
'Resonance/Timbre',
|
|
74
|
-
'Sound Release Time',
|
|
75
|
-
'Sound Attack Time',
|
|
76
|
-
'Frequency Cutoff',
|
|
77
|
-
'Sound Control 6',
|
|
78
|
-
'Sound Control 7',
|
|
79
|
-
'Sound Control 8',
|
|
80
|
-
'Sound Control 9',
|
|
81
|
-
'Sound Control 10',
|
|
82
|
-
'Decay or General 1',
|
|
83
|
-
'Hi-Pass or General 2',
|
|
84
|
-
'General 3',
|
|
85
|
-
'General 4',
|
|
86
|
-
'Portamento Amount',
|
|
87
|
-
'',
|
|
88
|
-
'',
|
|
89
|
-
'',
|
|
90
|
-
'',
|
|
91
|
-
'',
|
|
92
|
-
'',
|
|
93
|
-
'Reverb Level',
|
|
94
|
-
'Tremolo Depth',
|
|
95
|
-
'Chorus Level',
|
|
96
|
-
'Detune',
|
|
97
|
-
'Phaser Depth',
|
|
98
|
-
'Data Entry +1',
|
|
99
|
-
'Data Entry -1',
|
|
100
|
-
'Non-registered LSB',
|
|
101
|
-
'Non-registered MSB',
|
|
102
|
-
'Registered msb',
|
|
103
|
-
'Registered lsb',
|
|
104
|
-
'',
|
|
105
|
-
'',
|
|
106
|
-
'',
|
|
107
|
-
'',
|
|
108
|
-
'',
|
|
109
|
-
'',
|
|
110
|
-
'',
|
|
111
|
-
'',
|
|
112
|
-
'Shift 1',
|
|
113
|
-
'Shift 2',
|
|
114
|
-
'Shift 3',
|
|
115
|
-
'Shift 4',
|
|
116
|
-
'Shift 5',
|
|
117
|
-
'Shift 6',
|
|
118
|
-
'',
|
|
119
|
-
'',
|
|
120
|
-
'',
|
|
121
|
-
'',
|
|
122
|
-
'All Sound Off',
|
|
123
|
-
'All Controllers Off',
|
|
124
|
-
'Local Mode',
|
|
125
|
-
'All Notes Off',
|
|
126
|
-
'Omni Mode Off',
|
|
127
|
-
'Omni Mode On',
|
|
128
|
-
'Mono Mode On',
|
|
129
|
-
'Poly Mode'].
|
|
130
|
-
map(function (label, value) {return {
|
|
131
|
-
label: String(label).length ? "".concat(
|
|
132
|
-
value, " - ").concat(label) :
|
|
133
|
-
value,
|
|
134
|
-
value: value
|
|
135
|
-
};});
|
|
136
|
-
|
|
137
|
-
export default CC_NAMES;
|
package/dist/midi/statuses.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-bitwise */
|
|
2
|
-
|
|
3
|
-
export var STATUS_NOTE_OFF = 8; // 1000
|
|
4
|
-
export var STATUS_NOTE_ON = 9; // 1001
|
|
5
|
-
export var STATUS_AFTER_TOUCH = 10; // 1010
|
|
6
|
-
export var STATUS_CONTROL_CHANGE = 11; // 1011
|
|
7
|
-
export var STATUS_PROGRAM_CHANGE = 12; // 1100
|
|
8
|
-
export var STATUS_CHANNEL_PRESSURE = 13; // 1101
|
|
9
|
-
export var STATUS_PITCH_WHEEL = 14; // 1110
|
|
10
|
-
|
|
11
|
-
export var MASK_CHANNEL = 15; // 00001111
|
|
12
|
-
export var MASK_STATUS = 240; // 01110000
|
|
13
|
-
|
|
14
|
-
var statuses = [
|
|
15
|
-
{ value: STATUS_NOTE_ON, label: 'Note On' },
|
|
16
|
-
{ value: STATUS_NOTE_OFF, label: 'Note Stack' },
|
|
17
|
-
{ value: STATUS_CONTROL_CHANGE, label: 'Control Change' },
|
|
18
|
-
{ value: STATUS_PROGRAM_CHANGE, label: 'Program Change' },
|
|
19
|
-
{ value: STATUS_AFTER_TOUCH, label: 'Aftertouch' },
|
|
20
|
-
{ value: STATUS_CHANNEL_PRESSURE, label: 'Channel Pressure' },
|
|
21
|
-
{ value: STATUS_PITCH_WHEEL, label: 'Pitch Wheel' }];
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
export var getStatusLabel = function getStatusLabel(val) {var _statuses$filter$;return ((_statuses$filter$ = statuses.filter(function (_ref) {var value = _ref.value;return value === val;})[0]) === null || _statuses$filter$ === void 0 ? void 0 : _statuses$filter$.label) || '???';};
|
|
25
|
-
|
|
26
|
-
export var combineStatus = function combineStatus(channel, status) {return channel | status << 4;};
|
|
27
|
-
|
|
28
|
-
export var extractStatus = function extractStatus(status) {return {
|
|
29
|
-
status: (status & MASK_STATUS) >> 4 | 8,
|
|
30
|
-
channel: status & MASK_CHANNEL
|
|
31
|
-
};};
|
|
32
|
-
|
|
33
|
-
export default statuses;
|