@doist/reactist 29.1.0 → 29.1.2
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/CHANGELOG.md +14 -0
- package/dist/reactist.cjs.development.js +6749 -1829
- package/dist/reactist.cjs.development.js.map +1 -1
- package/dist/reactist.cjs.production.min.js +1 -1
- package/dist/reactist.cjs.production.min.js.map +1 -1
- package/es/avatar/avatar.js +106 -36
- package/es/avatar/avatar.js.map +1 -1
- package/es/avatar/utils.js +17 -19
- package/es/avatar/utils.js.map +1 -1
- package/es/badge/badge.js +50 -6
- package/es/badge/badge.js.map +1 -1
- package/es/banner/banner.js +384 -41
- package/es/banner/banner.js.map +1 -1
- package/es/base-field/base-field.js +367 -77
- package/es/base-field/base-field.js.map +1 -1
- package/es/box/box.js +139 -61
- package/es/box/box.js.map +1 -1
- package/es/button/button.js +346 -36
- package/es/button/button.js.map +1 -1
- package/es/checkbox-field/checkbox-field.js +71 -48
- package/es/checkbox-field/checkbox-field.js.map +1 -1
- package/es/checkbox-field/checkbox-icon.js +88 -28
- package/es/checkbox-field/checkbox-icon.js.map +1 -1
- package/es/checkbox-field/use-fork-ref.js +15 -20
- package/es/checkbox-field/use-fork-ref.js.map +1 -1
- package/es/columns/columns.js +46 -23
- package/es/columns/columns.js.map +1 -1
- package/es/components/color-picker/color-picker.js +190 -46
- package/es/components/color-picker/color-picker.js.map +1 -1
- package/es/components/deprecated-button/deprecated-button.js +102 -9
- package/es/components/deprecated-button/deprecated-button.js.map +1 -1
- package/es/components/deprecated-button/index.js +5 -2
- package/es/components/deprecated-button/index.js.map +1 -1
- package/es/components/deprecated-dropdown/dropdown.js +234 -134
- package/es/components/deprecated-dropdown/dropdown.js.map +1 -1
- package/es/components/deprecated-dropdown/index.js +4 -1
- package/es/components/deprecated-dropdown/index.js.map +1 -1
- package/es/components/deprecated-input/index.js +5 -2
- package/es/components/deprecated-input/index.js.map +1 -1
- package/es/components/deprecated-input/input.js +27 -4
- package/es/components/deprecated-input/input.js.map +1 -1
- package/es/components/deprecated-select/select.js +110 -7
- package/es/components/deprecated-select/select.js.map +1 -1
- package/es/components/key-capturer/key-capturer.js +190 -137
- package/es/components/key-capturer/key-capturer.js.map +1 -1
- package/es/components/keyboard-shortcut/keyboard-shortcut.js +65 -45
- package/es/components/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
- package/es/components/progress-bar/progress-bar.js +61 -9
- package/es/components/progress-bar/progress-bar.js.map +1 -1
- package/es/components/time/index.js +5 -2
- package/es/components/time/index.js.map +1 -1
- package/es/components/time/time-utils.js +59 -53
- package/es/components/time/time-utils.js.map +1 -1
- package/es/components/time/time.js +94 -91
- package/es/components/time/time.js.map +1 -1
- package/es/divider/divider.js +44 -5
- package/es/divider/divider.js.map +1 -1
- package/es/heading/heading.js +122 -20
- package/es/heading/heading.js.map +1 -1
- package/es/hidden/hidden.js +36 -30
- package/es/hidden/hidden.js.map +1 -1
- package/es/hidden-visually/hidden-visually.js +9 -4
- package/es/hidden-visually/hidden-visually.js.map +1 -1
- package/es/icons/alert-icon.js +145 -18
- package/es/icons/alert-icon.js.map +1 -1
- package/es/icons/banner-icon.js +213 -25
- package/es/icons/banner-icon.js.map +1 -1
- package/es/icons/close-icon.js +26 -3
- package/es/icons/close-icon.js.map +1 -1
- package/es/icons/password-hidden-icon.js +40 -6
- package/es/icons/password-hidden-icon.js.map +1 -1
- package/es/icons/password-visible-icon.js +33 -5
- package/es/icons/password-visible-icon.js.map +1 -1
- package/es/index.js +9 -9
- package/es/inline/inline.js +24 -9
- package/es/inline/inline.js.map +1 -1
- package/es/loading/loading.js +63 -17
- package/es/loading/loading.js.map +1 -1
- package/es/menu/menu.js +469 -92
- package/es/menu/menu.js.map +1 -1
- package/es/modal/modal.js +675 -112
- package/es/modal/modal.js.map +1 -1
- package/es/notice/notice.js +77 -10
- package/es/notice/notice.js.map +1 -1
- package/es/password-field/password-field.js +89 -11
- package/es/password-field/password-field.js.map +1 -1
- package/es/prose/prose.js +48 -9
- package/es/prose/prose.js.map +1 -1
- package/es/select-field/select-field.js +150 -16
- package/es/select-field/select-field.js.map +1 -1
- package/es/spinner/spinner.js +39 -6
- package/es/spinner/spinner.js.map +1 -1
- package/es/stack/stack.js +29 -17
- package/es/stack/stack.js.map +1 -1
- package/es/switch-field/switch-field.js +225 -42
- package/es/switch-field/switch-field.js.map +1 -1
- package/es/tabs/tabs.js +207 -109
- package/es/tabs/tabs.js.map +1 -1
- package/es/text/text.js +27 -17
- package/es/text/text.js.map +1 -1
- package/es/text-area/text-area.js +264 -54
- package/es/text-area/text-area.js.map +1 -1
- package/es/text-field/text-field.js +204 -31
- package/es/text-field/text-field.js.map +1 -1
- package/es/text-link/text-link.js +21 -10
- package/es/text-link/text-link.js.map +1 -1
- package/es/toast/static-toast.js +143 -25
- package/es/toast/static-toast.js.map +1 -1
- package/es/toast/toast-animation.js +159 -109
- package/es/toast/toast-animation.js.map +1 -1
- package/es/toast/use-toasts.js +309 -84
- package/es/toast/use-toasts.js.map +1 -1
- package/es/tooltip/tooltip.js +88 -32
- package/es/tooltip/tooltip.js.map +1 -1
- package/es/utils/common-helpers.js +12 -11
- package/es/utils/common-helpers.js.map +1 -1
- package/es/utils/polymorphism.js +84 -1
- package/es/utils/polymorphism.js.map +1 -1
- package/es/utils/responsive-props.js +43 -32
- package/es/utils/responsive-props.js.map +1 -1
- package/lib/avatar/avatar.js +109 -35
- package/lib/avatar/avatar.js.map +1 -1
- package/lib/avatar/utils.js +17 -19
- package/lib/avatar/utils.js.map +1 -1
- package/lib/badge/badge.js +53 -5
- package/lib/badge/badge.js.map +1 -1
- package/lib/banner/banner.js +385 -38
- package/lib/banner/banner.js.map +1 -1
- package/lib/base-field/base-field.js +366 -73
- package/lib/base-field/base-field.js.map +1 -1
- package/lib/box/box.js +141 -61
- package/lib/box/box.js.map +1 -1
- package/lib/button/button.js +347 -35
- package/lib/button/button.js.map +1 -1
- package/lib/checkbox-field/checkbox-field.js +73 -46
- package/lib/checkbox-field/checkbox-field.js.map +1 -1
- package/lib/checkbox-field/checkbox-icon.js +92 -28
- package/lib/checkbox-field/checkbox-icon.js.map +1 -1
- package/lib/checkbox-field/use-fork-ref.js +15 -20
- package/lib/checkbox-field/use-fork-ref.js.map +1 -1
- package/lib/columns/columns.js +49 -22
- package/lib/columns/columns.js.map +1 -1
- package/lib/components/color-picker/color-picker.js +189 -45
- package/lib/components/color-picker/color-picker.js.map +1 -1
- package/lib/components/deprecated-button/deprecated-button.js +104 -9
- package/lib/components/deprecated-button/deprecated-button.js.map +1 -1
- package/lib/components/deprecated-dropdown/dropdown.js +235 -133
- package/lib/components/deprecated-dropdown/dropdown.js.map +1 -1
- package/lib/components/deprecated-input/input.js +28 -4
- package/lib/components/deprecated-input/input.js.map +1 -1
- package/lib/components/deprecated-select/select.js +112 -7
- package/lib/components/deprecated-select/select.js.map +1 -1
- package/lib/components/key-capturer/key-capturer.js +188 -135
- package/lib/components/key-capturer/key-capturer.js.map +1 -1
- package/lib/components/keyboard-shortcut/keyboard-shortcut.js +67 -45
- package/lib/components/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
- package/lib/components/progress-bar/progress-bar.js +60 -8
- package/lib/components/progress-bar/progress-bar.js.map +1 -1
- package/lib/components/time/time-utils.js +59 -53
- package/lib/components/time/time-utils.js.map +1 -1
- package/lib/components/time/time.js +93 -90
- package/lib/components/time/time.js.map +1 -1
- package/lib/divider/divider.js +47 -4
- package/lib/divider/divider.js.map +1 -1
- package/lib/heading/heading.js +125 -19
- package/lib/heading/heading.js.map +1 -1
- package/lib/hidden/hidden.js +39 -29
- package/lib/hidden/hidden.js.map +1 -1
- package/lib/hidden-visually/hidden-visually.js +11 -3
- package/lib/hidden-visually/hidden-visually.js.map +1 -1
- package/lib/icons/alert-icon.js +149 -18
- package/lib/icons/alert-icon.js.map +1 -1
- package/lib/icons/banner-icon.js +217 -25
- package/lib/icons/banner-icon.js.map +1 -1
- package/lib/icons/close-icon.js +29 -3
- package/lib/icons/close-icon.js.map +1 -1
- package/lib/icons/password-hidden-icon.js +43 -6
- package/lib/icons/password-hidden-icon.js.map +1 -1
- package/lib/icons/password-visible-icon.js +36 -5
- package/lib/icons/password-visible-icon.js.map +1 -1
- package/lib/inline/inline.js +27 -8
- package/lib/inline/inline.js.map +1 -1
- package/lib/loading/loading.js +67 -17
- package/lib/loading/loading.js.map +1 -1
- package/lib/menu/menu.js +471 -91
- package/lib/menu/menu.js.map +1 -1
- package/lib/modal/modal.js +671 -106
- package/lib/modal/modal.js.map +1 -1
- package/lib/notice/notice.js +75 -8
- package/lib/notice/notice.js.map +1 -1
- package/lib/password-field/password-field.js +92 -10
- package/lib/password-field/password-field.js.map +1 -1
- package/lib/prose/prose.js +51 -8
- package/lib/prose/prose.js.map +1 -1
- package/lib/select-field/select-field.js +152 -14
- package/lib/select-field/select-field.js.map +1 -1
- package/lib/spinner/spinner.js +39 -6
- package/lib/spinner/spinner.js.map +1 -1
- package/lib/stack/stack.js +29 -15
- package/lib/stack/stack.js.map +1 -1
- package/lib/switch-field/switch-field.js +225 -38
- package/lib/switch-field/switch-field.js.map +1 -1
- package/lib/tabs/tabs.js +207 -107
- package/lib/tabs/tabs.js.map +1 -1
- package/lib/text/text.js +30 -16
- package/lib/text/text.js.map +1 -1
- package/lib/text-area/text-area.js +264 -52
- package/lib/text-area/text-area.js.map +1 -1
- package/lib/text-field/text-field.js +207 -30
- package/lib/text-field/text-field.js.map +1 -1
- package/lib/text-link/text-link.js +24 -9
- package/lib/text-link/text-link.js.map +1 -1
- package/lib/toast/static-toast.js +142 -22
- package/lib/toast/static-toast.js.map +1 -1
- package/lib/toast/toast-animation.js +158 -108
- package/lib/toast/toast-animation.js.map +1 -1
- package/lib/toast/use-toasts.js +310 -82
- package/lib/toast/use-toasts.js.map +1 -1
- package/lib/tooltip/tooltip.js +87 -31
- package/lib/tooltip/tooltip.js.map +1 -1
- package/lib/utils/common-helpers.js +12 -11
- package/lib/utils/common-helpers.js.map +1 -1
- package/lib/utils/polymorphism.js +84 -1
- package/lib/utils/polymorphism.js.map +1 -1
- package/lib/utils/responsive-props.js +43 -32
- package/lib/utils/responsive-props.js.map +1 -1
- package/package.json +10 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sources":["../../../src/components/deprecated-select/select.tsx"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"select.js","sources":["../../../src/components/deprecated-select/select.tsx"],"sourcesContent":["import './select.less'\n\nimport * as React from 'react'\n\nimport classNames from 'classnames'\n\ntype Option = {\n /** Optional key for each option. If not provided `value` is used. */\n key?: string | number\n /** Value of the option. */\n value: string | number\n /** Text to display for the option. */\n text?: string | number\n /** Whether the options is disabled or not. */\n disabled?: boolean\n}\n\ntype Props = {\n className?: string\n disabled?: boolean\n /** Currently selected value. */\n value?: string | number\n /** Callback for the change event. Will be called with the next value (not the full event). */\n onChange?: (value: string) => void\n /** Options that are rendered in the select. */\n options?: Option[]\n /** Value to initially be set */\n defaultValue?: string | number\n}\n\nfunction Select({\n value,\n options = [],\n onChange,\n disabled = true,\n className = '',\n defaultValue,\n ...otherProps\n}: Props) {\n const selectClassName = classNames('reactist_select', { disabled }, className)\n return (\n <select\n className={selectClassName}\n value={value}\n onChange={(event) => (onChange ? onChange(event.target.value) : undefined)}\n disabled={disabled}\n defaultValue={defaultValue}\n {...otherProps}\n >\n {options?.map((option) => (\n <option\n key={option.key || option.value}\n value={option.value}\n disabled={option.disabled}\n >\n {option.text}\n </option>\n ))}\n </select>\n )\n}\nSelect.displayName = 'Select'\nSelect.defaultProps = {\n options: [],\n disabled: false,\n}\n\nexport { Select }\n"],"names":["Select","t0","$","_c","defaultValue","onChange","otherProps","t1","t2","t3","value","_t","options","disabled","className","_objectWithoutProperties","_excluded","t4","undefined","t5","classNames","selectClassName","t6","event","target","t7","map","_temp","t8","React","createElement","_extends","option","key","text","displayName","defaultProps"],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var reactCompilerRuntime = require('react-compiler-runtime');
|
|
5
6
|
var React = require('react');
|
|
6
7
|
|
|
7
8
|
function _interopNamespace(e) {
|
|
@@ -24,95 +25,111 @@ function _interopNamespace(e) {
|
|
|
24
25
|
|
|
25
26
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
const SUPPORTED_KEYS = {
|
|
29
|
+
ARROW_UP: 'ArrowUp',
|
|
30
|
+
ARROW_RIGHT: 'ArrowRight',
|
|
31
|
+
ARROW_DOWN: 'ArrowDown',
|
|
32
|
+
ARROW_LEFT: 'ArrowLeft',
|
|
33
|
+
ENTER: 'Enter',
|
|
34
|
+
BACKSPACE: 'Backspace',
|
|
35
|
+
ESCAPE: 'Escape'
|
|
35
36
|
};
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
case 'Up': // IE specific
|
|
44
|
-
case 'ArrowUp': {
|
|
45
|
-
return 'ArrowUp';
|
|
46
|
-
}
|
|
47
|
-
case 'Right': // IE specific
|
|
48
|
-
case 'ArrowRight': {
|
|
49
|
-
return 'ArrowRight';
|
|
50
|
-
}
|
|
51
|
-
case 'Down': // IE specific
|
|
52
|
-
case 'ArrowDown': {
|
|
53
|
-
return 'ArrowDown';
|
|
54
|
-
}
|
|
55
|
-
case 'Enter': {
|
|
56
|
-
return 'Enter';
|
|
57
|
-
}
|
|
58
|
-
case 'Backspace': {
|
|
59
|
-
return 'Backspace';
|
|
60
|
-
}
|
|
61
|
-
case 'Esc': // IE specific
|
|
62
|
-
case 'Escape': {
|
|
63
|
-
return 'Escape';
|
|
64
|
-
}
|
|
65
|
-
default: {
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
37
|
+
const KeyCapturerResolver = {
|
|
38
|
+
resolveByKey(eventKey) {
|
|
39
|
+
switch (eventKey) {
|
|
40
|
+
case 'Left': // IE specific
|
|
41
|
+
case 'ArrowLeft':
|
|
42
|
+
{
|
|
43
|
+
return 'ArrowLeft';
|
|
68
44
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return 'Escape';
|
|
92
|
-
}
|
|
93
|
-
default: {
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
45
|
+
case 'Up': // IE specific
|
|
46
|
+
case 'ArrowUp':
|
|
47
|
+
{
|
|
48
|
+
return 'ArrowUp';
|
|
49
|
+
}
|
|
50
|
+
case 'Right': // IE specific
|
|
51
|
+
case 'ArrowRight':
|
|
52
|
+
{
|
|
53
|
+
return 'ArrowRight';
|
|
54
|
+
}
|
|
55
|
+
case 'Down': // IE specific
|
|
56
|
+
case 'ArrowDown':
|
|
57
|
+
{
|
|
58
|
+
return 'ArrowDown';
|
|
59
|
+
}
|
|
60
|
+
case 'Enter':
|
|
61
|
+
{
|
|
62
|
+
return 'Enter';
|
|
63
|
+
}
|
|
64
|
+
case 'Backspace':
|
|
65
|
+
{
|
|
66
|
+
return 'Backspace';
|
|
96
67
|
}
|
|
97
|
-
|
|
68
|
+
case 'Esc': // IE specific
|
|
69
|
+
case 'Escape':
|
|
70
|
+
{
|
|
71
|
+
return 'Escape';
|
|
72
|
+
}
|
|
73
|
+
default:
|
|
74
|
+
{
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
resolveByKeyCode(keyCode) {
|
|
80
|
+
switch (keyCode) {
|
|
81
|
+
case 37:
|
|
82
|
+
{
|
|
83
|
+
return 'ArrowLeft';
|
|
84
|
+
}
|
|
85
|
+
case 38:
|
|
86
|
+
{
|
|
87
|
+
return 'ArrowUp';
|
|
88
|
+
}
|
|
89
|
+
case 39:
|
|
90
|
+
{
|
|
91
|
+
return 'ArrowRight';
|
|
92
|
+
}
|
|
93
|
+
case 40:
|
|
94
|
+
{
|
|
95
|
+
return 'ArrowDown';
|
|
96
|
+
}
|
|
97
|
+
case 13:
|
|
98
|
+
{
|
|
99
|
+
return 'Enter';
|
|
100
|
+
}
|
|
101
|
+
case 8:
|
|
102
|
+
{
|
|
103
|
+
return 'Backspace';
|
|
104
|
+
}
|
|
105
|
+
case 27:
|
|
106
|
+
{
|
|
107
|
+
return 'Escape';
|
|
108
|
+
}
|
|
109
|
+
default:
|
|
110
|
+
{
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
98
115
|
};
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
116
|
+
const keyEventHandlerMapping = {
|
|
117
|
+
ArrowUp: 'onArrowUp',
|
|
118
|
+
ArrowDown: 'onArrowDown',
|
|
119
|
+
ArrowLeft: 'onArrowLeft',
|
|
120
|
+
ArrowRight: 'onArrowRight',
|
|
121
|
+
Enter: 'onEnter',
|
|
122
|
+
Backspace: 'onBackspace',
|
|
123
|
+
Escape: 'onEscape'
|
|
107
124
|
};
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
125
|
+
const keyPropagatePropMapping = {
|
|
126
|
+
ArrowUp: 'propagateArrowUp',
|
|
127
|
+
ArrowDown: 'propagateArrowDown',
|
|
128
|
+
ArrowLeft: 'propagateArrowLeft',
|
|
129
|
+
ArrowRight: 'propagateArrowRight',
|
|
130
|
+
Enter: 'propagateEnter',
|
|
131
|
+
Backspace: 'propagateBackspace',
|
|
132
|
+
Escape: 'propagateEscape'
|
|
116
133
|
};
|
|
117
134
|
/**
|
|
118
135
|
* Use this component to wrap anything you want to handle key events for (e.g. an input).
|
|
@@ -123,57 +140,93 @@ var keyPropagatePropMapping = {
|
|
|
123
140
|
* instead of replacing it) set the `propagate${Key}` prop (e.g. propagateBackspace).
|
|
124
141
|
*/
|
|
125
142
|
function KeyCapturer(props) {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
143
|
+
const $ = reactCompilerRuntime.c(18);
|
|
144
|
+
const {
|
|
145
|
+
children,
|
|
146
|
+
eventName: t0
|
|
147
|
+
} = props;
|
|
148
|
+
const eventName = t0 === undefined ? "onKeyDown" : t0;
|
|
149
|
+
const [isComposing, setIsComposing] = React__namespace.useState(false);
|
|
150
|
+
let t1;
|
|
151
|
+
if ($[0] !== props.onEnter) {
|
|
152
|
+
t1 = props.onEnter ? () => {
|
|
153
|
+
setIsComposing(true);
|
|
154
|
+
} : undefined;
|
|
155
|
+
$[0] = props.onEnter;
|
|
156
|
+
$[1] = t1;
|
|
157
|
+
} else {
|
|
158
|
+
t1 = $[1];
|
|
159
|
+
}
|
|
160
|
+
const onCompositionStart = t1;
|
|
161
|
+
let t2;
|
|
162
|
+
if ($[2] !== props.onEnter) {
|
|
163
|
+
t2 = props.onEnter ? () => {
|
|
164
|
+
setIsComposing(false);
|
|
165
|
+
} : undefined;
|
|
166
|
+
$[2] = props.onEnter;
|
|
167
|
+
$[3] = t2;
|
|
168
|
+
} else {
|
|
169
|
+
t2 = $[3];
|
|
170
|
+
}
|
|
171
|
+
const onCompositionEnd = t2;
|
|
172
|
+
let t3;
|
|
173
|
+
if ($[4] !== isComposing || $[5] !== props) {
|
|
174
|
+
t3 = function handleKeyEvent(event) {
|
|
175
|
+
const key = event.key !== undefined ? KeyCapturerResolver.resolveByKey(event.key) : KeyCapturerResolver.resolveByKeyCode(event.keyCode);
|
|
176
|
+
if (!key) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
const propagateEvent = props[keyPropagatePropMapping[key]] || false;
|
|
180
|
+
const eventHandler = props[keyEventHandlerMapping[key]];
|
|
181
|
+
if (!eventHandler) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
if (key === "Enter") {
|
|
185
|
+
if (isComposing || (event.keyCode || event.which) === 229) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
eventHandler(event);
|
|
190
|
+
if (!propagateEvent) {
|
|
191
|
+
event.preventDefault();
|
|
192
|
+
event.stopPropagation();
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
$[4] = isComposing;
|
|
196
|
+
$[5] = props;
|
|
197
|
+
$[6] = t3;
|
|
198
|
+
} else {
|
|
199
|
+
t3 = $[6];
|
|
200
|
+
}
|
|
201
|
+
const handleKeyEvent = t3;
|
|
202
|
+
let t4;
|
|
203
|
+
if ($[7] !== children || $[8] !== eventName || $[9] !== handleKeyEvent || $[10] !== onCompositionEnd || $[11] !== onCompositionStart) {
|
|
204
|
+
let t5;
|
|
205
|
+
if ($[13] !== eventName || $[14] !== handleKeyEvent || $[15] !== onCompositionEnd || $[16] !== onCompositionStart) {
|
|
206
|
+
t5 = {
|
|
207
|
+
[eventName]: handleKeyEvent,
|
|
208
|
+
onCompositionStart,
|
|
209
|
+
onCompositionEnd
|
|
210
|
+
};
|
|
211
|
+
$[13] = eventName;
|
|
212
|
+
$[14] = handleKeyEvent;
|
|
213
|
+
$[15] = onCompositionEnd;
|
|
214
|
+
$[16] = onCompositionStart;
|
|
215
|
+
$[17] = t5;
|
|
216
|
+
} else {
|
|
217
|
+
t5 = $[17];
|
|
218
|
+
}
|
|
219
|
+
t4 = /*#__PURE__*/React__namespace.cloneElement(children, t5);
|
|
220
|
+
$[7] = children;
|
|
221
|
+
$[8] = eventName;
|
|
222
|
+
$[9] = handleKeyEvent;
|
|
223
|
+
$[10] = onCompositionEnd;
|
|
224
|
+
$[11] = onCompositionStart;
|
|
225
|
+
$[12] = t4;
|
|
226
|
+
} else {
|
|
227
|
+
t4 = $[12];
|
|
228
|
+
}
|
|
229
|
+
return t4;
|
|
177
230
|
}
|
|
178
231
|
|
|
179
232
|
exports.KeyCapturer = KeyCapturer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-capturer.js","sources":["../../../src/components/key-capturer/key-capturer.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"key-capturer.js","sources":["../../../src/components/key-capturer/key-capturer.tsx"],"sourcesContent":["import * as React from 'react'\n\ntype Key = 'ArrowUp' | 'ArrowRight' | 'ArrowDown' | 'ArrowLeft' | 'Enter' | 'Backspace' | 'Escape'\n\nconst SUPPORTED_KEYS: Record<string, Key> = {\n ARROW_UP: 'ArrowUp',\n ARROW_RIGHT: 'ArrowRight',\n ARROW_DOWN: 'ArrowDown',\n ARROW_LEFT: 'ArrowLeft',\n ENTER: 'Enter',\n BACKSPACE: 'Backspace',\n ESCAPE: 'Escape',\n}\n\nconst KeyCapturerResolver = {\n resolveByKey(eventKey: string): Key | null {\n switch (eventKey) {\n case 'Left': // IE specific\n case 'ArrowLeft': {\n return 'ArrowLeft'\n }\n case 'Up': // IE specific\n case 'ArrowUp': {\n return 'ArrowUp'\n }\n case 'Right': // IE specific\n case 'ArrowRight': {\n return 'ArrowRight'\n }\n case 'Down': // IE specific\n case 'ArrowDown': {\n return 'ArrowDown'\n }\n case 'Enter': {\n return 'Enter'\n }\n case 'Backspace': {\n return 'Backspace'\n }\n case 'Esc': // IE specific\n case 'Escape': {\n return 'Escape'\n }\n default: {\n return null\n }\n }\n },\n\n resolveByKeyCode(keyCode: number): Key | null {\n switch (keyCode) {\n case 37: {\n return 'ArrowLeft'\n }\n case 38: {\n return 'ArrowUp'\n }\n case 39: {\n return 'ArrowRight'\n }\n case 40: {\n return 'ArrowDown'\n }\n case 13: {\n return 'Enter'\n }\n case 8: {\n return 'Backspace'\n }\n case 27: {\n return 'Escape'\n }\n default: {\n return null\n }\n }\n },\n}\n\ntype EventHandler = (event: React.SyntheticEvent) => void\n\ntype EventHandlerProps = {\n onArrowUp?: EventHandler\n onArrowDown?: EventHandler\n onArrowLeft?: EventHandler\n onArrowRight?: EventHandler\n onEnter?: EventHandler\n onBackspace?: EventHandler\n onEscape?: EventHandler\n}\n\ntype PropagateProps = {\n propagateArrowUp?: boolean\n propagateArrowDown?: boolean\n propagateArrowLeft?: boolean\n propagateArrowRight?: boolean\n propagateEnter?: boolean\n propagateBackspace?: boolean\n propagateEscape?: boolean\n}\n\nconst keyEventHandlerMapping: Record<Key, keyof EventHandlerProps> = {\n ArrowUp: 'onArrowUp',\n ArrowDown: 'onArrowDown',\n ArrowLeft: 'onArrowLeft',\n ArrowRight: 'onArrowRight',\n Enter: 'onEnter',\n Backspace: 'onBackspace',\n Escape: 'onEscape',\n}\n\nconst keyPropagatePropMapping: Record<Key, keyof PropagateProps> = {\n ArrowUp: 'propagateArrowUp',\n ArrowDown: 'propagateArrowDown',\n ArrowLeft: 'propagateArrowLeft',\n ArrowRight: 'propagateArrowRight',\n Enter: 'propagateEnter',\n Backspace: 'propagateBackspace',\n Escape: 'propagateEscape',\n}\n\ntype KeyCapturerProps = EventHandlerProps &\n PropagateProps & {\n eventName?: 'onKeyDown' | 'onKeyDownCapture' | 'onKeyUp' | 'onKeyUpCapture'\n children: React.ReactElement<unknown>\n }\n\n/**\n * Use this component to wrap anything you want to handle key events for (e.g. an input).\n * You can specify the `eventName` to capture (defaults to `onKeyDown`).\n * Check the SUPPORTED_KEYS map to see which keys are supported and supply the respective\n * `on${Key}` prop (i.e. `onEnter` or `onArrowDown`).\n * If you want the default behaviour to be preserved (i.e. only want to hook into the event\n * instead of replacing it) set the `propagate${Key}` prop (e.g. propagateBackspace).\n */\nfunction KeyCapturer(props: KeyCapturerProps) {\n const { children, eventName = 'onKeyDown' } = props\n const [isComposing, setIsComposing] = React.useState(false)\n\n const onCompositionStart = React.useMemo(\n () =>\n props.onEnter\n ? () => {\n setIsComposing(true)\n }\n : undefined,\n [props.onEnter],\n )\n const onCompositionEnd = React.useMemo(\n () =>\n props.onEnter\n ? () => {\n setIsComposing(false)\n }\n : undefined,\n [props.onEnter],\n )\n\n const handleKeyEvent = React.useMemo(\n () =>\n function handleKeyEvent(event: React.KeyboardEvent<HTMLInputElement>) {\n // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode\n const key =\n event.key !== undefined\n ? KeyCapturerResolver.resolveByKey(event.key)\n : KeyCapturerResolver.resolveByKeyCode(event.keyCode)\n\n if (!key) return\n const propagateEvent = props[keyPropagatePropMapping[key]] || false\n const eventHandler = props[keyEventHandlerMapping[key]]\n\n if (!eventHandler) {\n return\n }\n\n if (key === 'Enter') {\n if (\n isComposing ||\n // Safari fires the onCompositionEnd event before the keydown event, so we\n // have to rely on the 229 keycode, which is Enter when fired from an IME\n // https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n (event.keyCode || event.which) === 229\n ) {\n return\n }\n }\n\n eventHandler(event)\n\n if (!propagateEvent) {\n event.preventDefault()\n event.stopPropagation()\n }\n },\n [props, isComposing],\n )\n\n return React.cloneElement<React.DOMAttributes<HTMLElement>>(\n children as React.FunctionComponentElement<React.DOMAttributes<HTMLElement>>,\n {\n [eventName]: handleKeyEvent,\n onCompositionStart,\n onCompositionEnd,\n },\n )\n}\n\nexport { KeyCapturer, KeyCapturerResolver, SUPPORTED_KEYS }\n"],"names":["SUPPORTED_KEYS","ARROW_UP","ARROW_RIGHT","ARROW_DOWN","ARROW_LEFT","ENTER","BACKSPACE","ESCAPE","KeyCapturerResolver","resolveByKey","eventKey","resolveByKeyCode","keyCode","keyEventHandlerMapping","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Enter","Backspace","Escape","keyPropagatePropMapping","KeyCapturer","props","$","_c","children","eventName","t0","undefined","isComposing","setIsComposing","React","useState","t1","onEnter","onCompositionStart","t2","onCompositionEnd","t3","handleKeyEvent","event","key","propagateEvent","eventHandler","which","preventDefault","stopPropagation","t4","t5","cloneElement"],"mappings":"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"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _extends = require('@babel/runtime/helpers/extends');
|
|
6
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
6
7
|
var React = require('react');
|
|
7
8
|
var classNames = require('classnames');
|
|
8
9
|
|
|
@@ -26,72 +27,93 @@ function _interopNamespace(e) {
|
|
|
26
27
|
return Object.freeze(n);
|
|
27
28
|
}
|
|
28
29
|
|
|
30
|
+
var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
|
|
31
|
+
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
29
32
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
30
33
|
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
|
|
31
34
|
|
|
35
|
+
const _excluded = ["children", "className", "translateKey", "isMac"];
|
|
36
|
+
|
|
32
37
|
//
|
|
33
38
|
// Support for setting up how to translate modifiers globally.
|
|
34
39
|
//
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
|
|
41
|
+
let globalTranslateKey = key => key;
|
|
42
|
+
KeyboardShortcut.setTranslateKey = tr => {
|
|
43
|
+
globalTranslateKey = tr;
|
|
38
44
|
};
|
|
39
45
|
function translateKeyMac(key) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
46
|
+
switch (key.toLowerCase()) {
|
|
47
|
+
case 'cmd':
|
|
48
|
+
case 'mod':
|
|
49
|
+
return '⌘';
|
|
50
|
+
case 'control':
|
|
51
|
+
case 'ctrl':
|
|
52
|
+
return '⌃';
|
|
53
|
+
case 'alt':
|
|
54
|
+
return '⌥';
|
|
55
|
+
case 'shift':
|
|
56
|
+
return '⇧';
|
|
57
|
+
case 'space':
|
|
58
|
+
return '␣';
|
|
59
|
+
default:
|
|
60
|
+
return key;
|
|
61
|
+
}
|
|
56
62
|
}
|
|
63
|
+
|
|
57
64
|
//
|
|
58
65
|
// Some helpers
|
|
59
66
|
//
|
|
67
|
+
|
|
60
68
|
function capitalize(str) {
|
|
61
|
-
|
|
69
|
+
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
|
|
62
70
|
}
|
|
63
71
|
function hasModifiers(str) {
|
|
64
|
-
|
|
72
|
+
return /\b(mod|cmd|ctrl|control|alt|shift)\b/i.test(str);
|
|
65
73
|
}
|
|
66
74
|
function isSpecialKey(str) {
|
|
67
|
-
|
|
75
|
+
return /^(mod|cmd|ctrl|control|alt|shift|space|super)$/i.test(str);
|
|
68
76
|
}
|
|
69
77
|
function parseKeys(shortcut, isMac, translateKey) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
if (_hasModifiers && str.length === 1) {
|
|
77
|
-
return str.toUpperCase();
|
|
78
|
-
}
|
|
79
|
-
return str;
|
|
78
|
+
const t = isMac ? translateKeyMac : translateKey;
|
|
79
|
+
const _hasModifiers = hasModifiers(shortcut);
|
|
80
|
+
function mapIndividualKey(str) {
|
|
81
|
+
if (isSpecialKey(str)) {
|
|
82
|
+
return capitalize(t(str));
|
|
80
83
|
}
|
|
81
|
-
if (
|
|
82
|
-
|
|
84
|
+
if (_hasModifiers && str.length === 1) {
|
|
85
|
+
return str.toUpperCase();
|
|
83
86
|
}
|
|
84
|
-
return
|
|
87
|
+
return str;
|
|
88
|
+
}
|
|
89
|
+
if (!isMac) {
|
|
90
|
+
shortcut = shortcut.replace(/\b(mod|cmd)\b/i, 'ctrl');
|
|
91
|
+
}
|
|
92
|
+
return shortcut.split(/\s*\+\s*/).map(mapIndividualKey);
|
|
85
93
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
|
|
95
|
+
//
|
|
96
|
+
// The KeyboardShortcut component
|
|
97
|
+
//
|
|
98
|
+
|
|
99
|
+
function KeyboardShortcut(_ref) {
|
|
100
|
+
let {
|
|
101
|
+
children,
|
|
102
|
+
className,
|
|
103
|
+
translateKey = globalTranslateKey,
|
|
104
|
+
isMac = navigator.platform?.toUpperCase().includes('MAC') ?? false
|
|
105
|
+
} = _ref,
|
|
106
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded);
|
|
107
|
+
const shortcuts = typeof children === 'string' ? [children] : children;
|
|
108
|
+
return /*#__PURE__*/React__namespace.createElement("span", _extends__default["default"]({
|
|
109
|
+
className: classNames__default["default"]('reactist_keyboard_shortcut', className, {
|
|
110
|
+
'reactist_keyboard_shortcut--macos': isMac
|
|
111
|
+
})
|
|
112
|
+
}, props), shortcuts.map((shortcut, i) => /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, {
|
|
113
|
+
key: i
|
|
114
|
+
}, i === 0 ? null : ', ', /*#__PURE__*/React__namespace.createElement("kbd", null, parseKeys(shortcut, isMac, translateKey).map((key, j) => /*#__PURE__*/React__namespace.createElement("kbd", {
|
|
115
|
+
key: j
|
|
116
|
+
}, key))))));
|
|
95
117
|
}
|
|
96
118
|
|
|
97
119
|
exports.KeyboardShortcut = KeyboardShortcut;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyboard-shortcut.js","sources":["../../../src/components/keyboard-shortcut/keyboard-shortcut.tsx"],"sourcesContent":[null],"names":["
|
|
1
|
+
{"version":3,"file":"keyboard-shortcut.js","sources":["../../../src/components/keyboard-shortcut/keyboard-shortcut.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport classNames from 'classnames'\n\n//\n// Support for setting up how to translate modifiers globally.\n//\n\nlet globalTranslateKey = (key: string) => key\n\ntype TranslateKey = typeof globalTranslateKey\n\nKeyboardShortcut.setTranslateKey = (tr: TranslateKey) => {\n globalTranslateKey = tr\n}\n\nfunction translateKeyMac(key: string) {\n switch (key.toLowerCase()) {\n case 'cmd':\n case 'mod':\n return '⌘'\n case 'control':\n case 'ctrl':\n return '⌃'\n case 'alt':\n return '⌥'\n case 'shift':\n return '⇧'\n case 'space':\n return '␣'\n default:\n return key\n }\n}\n\n//\n// Some helpers\n//\n\nfunction capitalize(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()\n}\n\nfunction hasModifiers(str: string) {\n return /\\b(mod|cmd|ctrl|control|alt|shift)\\b/i.test(str)\n}\n\nfunction isSpecialKey(str: string) {\n return /^(mod|cmd|ctrl|control|alt|shift|space|super)$/i.test(str)\n}\n\nfunction parseKeys(shortcut: string, isMac: boolean, translateKey: TranslateKey) {\n const t = isMac ? translateKeyMac : translateKey\n const _hasModifiers = hasModifiers(shortcut)\n\n function mapIndividualKey(str: string) {\n if (isSpecialKey(str)) {\n return capitalize(t(str))\n }\n if (_hasModifiers && str.length === 1) {\n return str.toUpperCase()\n }\n return str\n }\n\n if (!isMac) {\n shortcut = shortcut.replace(/\\b(mod|cmd)\\b/i, 'ctrl')\n }\n\n return shortcut.split(/\\s*\\+\\s*/).map(mapIndividualKey)\n}\n\n//\n// The KeyboardShortcut component\n//\n\ntype NativeSpanProps = React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLSpanElement>,\n HTMLSpanElement\n>\n\ntype Props = Omit<NativeSpanProps, 'children'> & {\n /**\n * The shortcut to be represented as markup. It supports an intuitive syntax where you can\n * combine modifiers (cmd, ctrl, shift, alt) with single keys all concatenated with plus signs.\n * You can also pass various shortcuts as an array, which will be depicted separated by commas.\n */\n children: string | string[]\n /**\n * A function that allows you to change how some key names are represented. This may be useful,\n * for instance, to translate modifier names that are expressed differently in other languages\n * (e.g. `Ctrl` is named `Strg` in German).\n *\n * It defaults to a global version that leaves the key as is. You can pass your version as a\n * prop, or you can also set your own version of this global default one, so you don't need to\n * pass your own on each invocation of this component.\n *\n * ```js\n * import { KeyboardShortcut } from '@doist/reactist'\n * KeyboardShortcut.setTranslateKey = key => { ... }\n * ```\n *\n * Note: When the component detects the macOS operating system it bypasses key translation for\n * most modifiers and uses macOS-specific symbols. See the `isMac` prop for details.\n */\n translateKey?: TranslateKey\n /**\n * This prop is not meant to be passed. The component will automatically initialize it to `true`\n * if it detects that the current browser / operating system is on macOS, in which case modifier\n * keys are represented using macOS' notation (e.g. ⌘ ⌃ ⌥ ⇧).\n *\n * Though it is discouraged, if you don't want this special treatment in macOS, you can pass\n * `isMac={false}` in all invocations of this component.\n */\n isMac?: boolean\n}\n\nfunction KeyboardShortcut({\n children,\n className,\n translateKey = globalTranslateKey,\n isMac = navigator.platform?.toUpperCase().includes('MAC') ?? false,\n ...props\n}: Props) {\n const shortcuts = typeof children === 'string' ? [children] : children\n return (\n <span\n className={classNames('reactist_keyboard_shortcut', className, {\n 'reactist_keyboard_shortcut--macos': isMac,\n })}\n {...props}\n >\n {shortcuts.map((shortcut, i) => (\n <React.Fragment key={i}>\n {i === 0 ? null : ', '}\n <kbd>\n {parseKeys(shortcut, isMac, translateKey).map((key, j) => (\n <kbd key={j}>{key}</kbd>\n ))}\n </kbd>\n </React.Fragment>\n ))}\n </span>\n )\n}\n\nexport { KeyboardShortcut }\n"],"names":["globalTranslateKey","key","KeyboardShortcut","setTranslateKey","tr","translateKeyMac","toLowerCase","capitalize","str","charAt","toUpperCase","slice","hasModifiers","test","isSpecialKey","parseKeys","shortcut","isMac","translateKey","t","_hasModifiers","mapIndividualKey","length","replace","split","map","_ref","children","className","navigator","platform","includes","props","_objectWithoutProperties","_excluded","shortcuts","React","createElement","_extends","classNames","i","Fragment","j"],"mappings":"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"}
|