@neo4j-ndl/react 3.0.33 → 3.1.0
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/lib/cjs/_common/ConditionalWrap.js.map +1 -1
- package/lib/cjs/breadcrumbs/Breadcrumbs.js +10 -6
- package/lib/cjs/breadcrumbs/Breadcrumbs.js.map +1 -1
- package/lib/cjs/context-menu/ContextMenu.js +3 -2
- package/lib/cjs/context-menu/ContextMenu.js.map +1 -1
- package/lib/cjs/data-grid/Components.js +2 -4
- package/lib/cjs/data-grid/Components.js.map +1 -1
- package/lib/cjs/icons/generated/custom/BoxSelect.js +1 -1
- package/lib/cjs/icons/generated/custom/BoxSelect.js.map +1 -1
- package/lib/cjs/icons/generated/custom/CurlyBrackets.js +1 -1
- package/lib/cjs/icons/generated/custom/CurlyBrackets.js.map +1 -1
- package/lib/cjs/icons/generated/custom/DatabaseCrossed.js +1 -1
- package/lib/cjs/icons/generated/custom/DatabaseCrossed.js.map +1 -1
- package/lib/cjs/icons/generated/custom/DatabaseSignal.js +1 -1
- package/lib/cjs/icons/generated/custom/DatabaseSignal.js.map +1 -1
- package/lib/cjs/icons/generated/custom/Explore.js +1 -1
- package/lib/cjs/icons/generated/custom/Explore.js.map +1 -1
- package/lib/cjs/icons/generated/custom/Github.js +1 -1
- package/lib/cjs/icons/generated/custom/Github.js.map +1 -1
- package/lib/cjs/icons/generated/custom/Lasso.js +1 -1
- package/lib/cjs/icons/generated/custom/Lasso.js.map +1 -1
- package/lib/cjs/icons/generated/custom/Pan.js +1 -1
- package/lib/cjs/icons/generated/custom/Pan.js.map +1 -1
- package/lib/cjs/icons/generated/custom/Query.js +1 -1
- package/lib/cjs/icons/generated/custom/Query.js.map +1 -1
- package/lib/cjs/icons/generated/custom/ResetZoom.js +1 -1
- package/lib/cjs/icons/generated/custom/ResetZoom.js.map +1 -1
- package/lib/cjs/icons/generated/custom/Roles.js +1 -1
- package/lib/cjs/icons/generated/custom/Roles.js.map +1 -1
- package/lib/cjs/icons/generated/custom/Select.js +1 -1
- package/lib/cjs/icons/generated/custom/Select.js.map +1 -1
- package/lib/cjs/index.js +2 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/popover/Popover.js +3 -2
- package/lib/cjs/popover/Popover.js.map +1 -1
- package/lib/cjs/popover/use-popover.js +4 -2
- package/lib/cjs/popover/use-popover.js.map +1 -1
- package/lib/cjs/select/Overrides.js +173 -27
- package/lib/cjs/select/Overrides.js.map +1 -1
- package/lib/cjs/select/Select.js +27 -163
- package/lib/cjs/select/Select.js.map +1 -1
- package/lib/cjs/skeleton/Skeleton.js +37 -0
- package/lib/cjs/skeleton/Skeleton.js.map +1 -0
- package/lib/cjs/{toast/sonner-types.js → skeleton/index.js} +16 -18
- package/lib/cjs/skeleton/index.js.map +1 -0
- package/lib/cjs/time-picker/TimePicker.js +229 -0
- package/lib/cjs/time-picker/TimePicker.js.map +1 -0
- package/lib/cjs/time-picker/generate-time-options.js +42 -0
- package/lib/cjs/time-picker/generate-time-options.js.map +1 -0
- package/lib/cjs/time-picker/index.js +38 -0
- package/lib/cjs/time-picker/index.js.map +1 -0
- package/lib/cjs/time-picker/needle-time.js +88 -0
- package/lib/cjs/time-picker/needle-time.js.map +1 -0
- package/lib/cjs/time-picker/time-picker-hooks.js +49 -0
- package/lib/cjs/time-picker/time-picker-hooks.js.map +1 -0
- package/lib/cjs/toast/Toast.js +4 -4
- package/lib/cjs/toast/Toast.js.map +1 -1
- package/lib/esm/_common/ConditionalWrap.js.map +1 -1
- package/lib/esm/breadcrumbs/Breadcrumbs.js +10 -6
- package/lib/esm/breadcrumbs/Breadcrumbs.js.map +1 -1
- package/lib/esm/context-menu/ContextMenu.js +3 -2
- package/lib/esm/context-menu/ContextMenu.js.map +1 -1
- package/lib/esm/data-grid/Components.js +2 -4
- package/lib/esm/data-grid/Components.js.map +1 -1
- package/lib/esm/icons/generated/custom/BoxSelect.js +1 -1
- package/lib/esm/icons/generated/custom/BoxSelect.js.map +1 -1
- package/lib/esm/icons/generated/custom/CurlyBrackets.js +1 -1
- package/lib/esm/icons/generated/custom/CurlyBrackets.js.map +1 -1
- package/lib/esm/icons/generated/custom/DatabaseCrossed.js +1 -1
- package/lib/esm/icons/generated/custom/DatabaseCrossed.js.map +1 -1
- package/lib/esm/icons/generated/custom/DatabaseSignal.js +1 -1
- package/lib/esm/icons/generated/custom/DatabaseSignal.js.map +1 -1
- package/lib/esm/icons/generated/custom/Explore.js +1 -1
- package/lib/esm/icons/generated/custom/Explore.js.map +1 -1
- package/lib/esm/icons/generated/custom/Github.js +1 -1
- package/lib/esm/icons/generated/custom/Github.js.map +1 -1
- package/lib/esm/icons/generated/custom/Lasso.js +1 -1
- package/lib/esm/icons/generated/custom/Lasso.js.map +1 -1
- package/lib/esm/icons/generated/custom/Pan.js +1 -1
- package/lib/esm/icons/generated/custom/Pan.js.map +1 -1
- package/lib/esm/icons/generated/custom/Query.js +1 -1
- package/lib/esm/icons/generated/custom/Query.js.map +1 -1
- package/lib/esm/icons/generated/custom/ResetZoom.js +1 -1
- package/lib/esm/icons/generated/custom/ResetZoom.js.map +1 -1
- package/lib/esm/icons/generated/custom/Roles.js +1 -1
- package/lib/esm/icons/generated/custom/Roles.js.map +1 -1
- package/lib/esm/icons/generated/custom/Select.js +1 -1
- package/lib/esm/icons/generated/custom/Select.js.map +1 -1
- package/lib/esm/index.js +2 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/popover/Popover.js +3 -2
- package/lib/esm/popover/Popover.js.map +1 -1
- package/lib/esm/popover/use-popover.js +4 -2
- package/lib/esm/popover/use-popover.js.map +1 -1
- package/lib/esm/select/Overrides.js +165 -27
- package/lib/esm/select/Overrides.js.map +1 -1
- package/lib/esm/select/Select.js +28 -164
- package/lib/esm/select/Select.js.map +1 -1
- package/lib/esm/skeleton/Skeleton.js +31 -0
- package/lib/esm/skeleton/Skeleton.js.map +1 -0
- package/lib/esm/skeleton/index.js +22 -0
- package/lib/esm/skeleton/index.js.map +1 -0
- package/lib/esm/time-picker/TimePicker.js +223 -0
- package/lib/esm/time-picker/TimePicker.js.map +1 -0
- package/lib/esm/time-picker/generate-time-options.js +38 -0
- package/lib/esm/time-picker/generate-time-options.js.map +1 -0
- package/lib/esm/time-picker/index.js +22 -0
- package/lib/esm/time-picker/index.js.map +1 -0
- package/lib/esm/time-picker/needle-time.js +84 -0
- package/lib/esm/time-picker/needle-time.js.map +1 -0
- package/lib/esm/time-picker/time-picker-hooks.js +45 -0
- package/lib/esm/time-picker/time-picker-hooks.js.map +1 -0
- package/lib/esm/toast/Toast.js +5 -5
- package/lib/esm/toast/Toast.js.map +1 -1
- package/lib/types/_common/ConditionalWrap.d.ts +4 -3
- package/lib/types/banner/Banner.d.ts +2 -2
- package/lib/types/breadcrumbs/Breadcrumbs.d.ts +4 -4
- package/lib/types/context-menu/ContextMenu.d.ts +1 -0
- package/lib/types/index.d.ts +2 -0
- package/lib/types/popover/Popover.d.ts +3 -1
- package/lib/types/popover/use-popover.d.ts +3 -1
- package/lib/types/select/Overrides.d.ts +16 -6
- package/lib/types/skeleton/Skeleton.d.ts +35 -0
- package/lib/types/skeleton/index.d.ts +21 -0
- package/lib/types/time-picker/TimePicker.d.ts +43 -0
- package/lib/types/time-picker/generate-time-options.d.ts +21 -0
- package/lib/types/time-picker/index.d.ts +22 -0
- package/lib/{esm/toast/sonner-types.js → types/time-picker/needle-time.d.ts} +9 -15
- package/lib/types/time-picker/time-picker-hooks.d.ts +30 -0
- package/lib/types/toast/Toast.d.ts +1 -2
- package/package.json +5 -5
- package/lib/cjs/toast/sonner-types.js.map +0 -1
- package/lib/esm/toast/sonner-types.js.map +0 -1
- package/lib/types/toast/sonner-types.d.ts +0 -179
package/lib/esm/select/Select.js
CHANGED
|
@@ -27,7 +27,8 @@ import Creatable from 'react-select/creatable';
|
|
|
27
27
|
import { classNames } from '../_common/defaultImports';
|
|
28
28
|
import { needleWarningMessage } from '../_common/utils';
|
|
29
29
|
import { forwardRef } from '../helpers';
|
|
30
|
-
import { CustomClearIndication,
|
|
30
|
+
import { CustomClearIndication, CustomControl, CustomIndicatorsContainer, CustomInput, CustomMenu, CustomMenuList, CustomMenuPortal, CustomMultiValue, CustomOption, CustomPlaceholder, CustomSingleValue, CustomValueContainer, DropdownIndicatorCurrying, } from './Overrides';
|
|
31
|
+
import { ExclamationCircleIconSolid } from '../icons';
|
|
31
32
|
/**
|
|
32
33
|
*
|
|
33
34
|
*
|
|
@@ -39,166 +40,31 @@ const overrideComponents = (props) => ({
|
|
|
39
40
|
DropdownIndicator: DropdownIndicatorCurrying(props),
|
|
40
41
|
IndicatorSeparator: null,
|
|
41
42
|
ClearIndicator: CustomClearIndication(props),
|
|
42
|
-
MultiValueRemove: CustomMultiValueRemove(props),
|
|
43
43
|
Placeholder: CustomPlaceholder(props),
|
|
44
44
|
Option: CustomOption(props),
|
|
45
|
+
MultiValue: CustomMultiValue(props),
|
|
46
|
+
Control: CustomControl(props),
|
|
47
|
+
IndicatorsContainer: CustomIndicatorsContainer(props),
|
|
48
|
+
ValueContainer: CustomValueContainer(props),
|
|
49
|
+
Input: CustomInput(props),
|
|
50
|
+
SingleValue: CustomSingleValue(props),
|
|
51
|
+
Menu: CustomMenu(props),
|
|
52
|
+
MenuPortal: CustomMenuPortal(props),
|
|
53
|
+
MenuList: CustomMenuList(props),
|
|
45
54
|
});
|
|
46
|
-
const customStyles = (
|
|
47
|
-
const focusedBorderColor = errorText
|
|
48
|
-
? 'rgb(var(--theme-palette-danger-border-strong))'
|
|
49
|
-
: 'rgb(var(--theme-palette-primary-focus))';
|
|
50
|
-
const defaultBorder = errorText
|
|
51
|
-
? 'rgb(var(--theme-palette-danger-border-strong))'
|
|
52
|
-
: 'rgb(var(--theme-palette-neutral-border-strong))';
|
|
53
|
-
const OUTER_BORDER_WIDTH = (state) => (state.isFocused || errorText ? 2 : 1);
|
|
54
|
-
const BORDER_WIDTH = 1;
|
|
55
|
-
const SMALL_TARGET_HEIGHT = 24;
|
|
56
|
-
const MEDIUM_TARGET_HEIGHT = 36;
|
|
57
|
-
const LARGE_TARGET_HEIGHT = 48;
|
|
58
|
-
const getTargetHeight = (size) => {
|
|
59
|
-
let targetHeight = SMALL_TARGET_HEIGHT;
|
|
60
|
-
if (size === 'small') {
|
|
61
|
-
targetHeight = SMALL_TARGET_HEIGHT;
|
|
62
|
-
}
|
|
63
|
-
else if (size === 'medium') {
|
|
64
|
-
targetHeight = MEDIUM_TARGET_HEIGHT;
|
|
65
|
-
}
|
|
66
|
-
else if (size === 'large') {
|
|
67
|
-
targetHeight = LARGE_TARGET_HEIGHT;
|
|
68
|
-
}
|
|
69
|
-
return targetHeight;
|
|
70
|
-
};
|
|
71
|
-
const getFontSize = (size) => {
|
|
72
|
-
if (size === 'small' || size === 'medium')
|
|
73
|
-
return '14px';
|
|
74
|
-
if (size === 'large')
|
|
75
|
-
return '16px';
|
|
76
|
-
return '16px';
|
|
77
|
-
};
|
|
78
|
-
const getLineHeight = (size) => {
|
|
79
|
-
if (size === 'small' || size === 'medium')
|
|
80
|
-
return '20px';
|
|
81
|
-
if (size === 'large')
|
|
82
|
-
return '24px';
|
|
83
|
-
return '24px';
|
|
84
|
-
};
|
|
55
|
+
const customStyles = () => {
|
|
85
56
|
return {
|
|
86
|
-
control: (
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
singleValue: (
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
multiValue: (provided) => (Object.assign(Object.assign({}, provided), { borderRadius: '4px', maxWidth: '95%', backgroundColor: 'rgb(var(--theme-palette-neutral-bg-strong))', color: 'rgb(var(--theme-palette-neutral-text-default))' })),
|
|
98
|
-
multiValueLabel: (provided) => (Object.assign(Object.assign({}, provided), { color: 'rgb(var(--theme-palette-neutral-text-default))' })),
|
|
99
|
-
multiValueRemove: (provided) => (Object.assign(Object.assign({}, provided), { '&:hover': {
|
|
100
|
-
cursor: 'pointer !important',
|
|
101
|
-
backgroundColor: 'rgb(var(--theme-palette-danger-hover-weak))',
|
|
102
|
-
} })),
|
|
103
|
-
dropdownIndicator: (provided) => (Object.assign(Object.assign({}, provided), { cursor: 'pointer',
|
|
104
|
-
// 16 is icon size
|
|
105
|
-
padding: size === 'small'
|
|
106
|
-
? `${(getTargetHeight(size) - 16 - 2 * BORDER_WIDTH) / 2}px`
|
|
107
|
-
: '7px' })),
|
|
108
|
-
indicatorsContainer: (provided) => (Object.assign(Object.assign({}, provided), {
|
|
109
|
-
/**
|
|
110
|
-
* The right icon has padding of 8px so:
|
|
111
|
-
* padding-right: 8px+desired
|
|
112
|
-
*/
|
|
113
|
-
paddingRight: size === 'small' || size === 'medium' ? '4px' : '8px' })),
|
|
114
|
-
clearIndicator: (provided) => (Object.assign(Object.assign({}, provided), {
|
|
115
|
-
// 16 is icon size
|
|
116
|
-
padding: size === 'small'
|
|
117
|
-
? `${(getTargetHeight(size) - 16 - 2 * BORDER_WIDTH) / 2}px`
|
|
118
|
-
: '0px' })),
|
|
119
|
-
/**
|
|
120
|
-
* Only for multi-select, make the padding
|
|
121
|
-
* 2px everywhere when we have at least one
|
|
122
|
-
* value selected
|
|
123
|
-
*/
|
|
124
|
-
valueContainer: (provided, state) => (Object.assign(Object.assign({}, provided), { padding: size === 'small'
|
|
125
|
-
? '0 0 0 8px'
|
|
126
|
-
: state.isMulti && state.hasValue
|
|
127
|
-
? '2px'
|
|
128
|
-
: '2px 8px' })),
|
|
129
|
-
menu: (provided) => (Object.assign(Object.assign({}, provided), { backgroundColor: 'rgb(var(--theme-palette-neutral-bg-weak))', zIndex: 'var(--z-index-30)' })),
|
|
130
|
-
menuPortal: (provided) => (Object.assign(Object.assign({}, provided), { zIndex: 'var(--z-index-30)' })),
|
|
131
|
-
menuList: (provided) => (Object.assign(Object.assign({}, provided), { cursor: 'auto !important', padding: '8px' })),
|
|
132
|
-
option: (provided, state) => {
|
|
133
|
-
let backgroundColor;
|
|
134
|
-
let color;
|
|
135
|
-
let hoverColor;
|
|
136
|
-
const isMulti = Boolean(selectProps.isMulti);
|
|
137
|
-
// Apply background color based on state
|
|
138
|
-
if (state.isDisabled) {
|
|
139
|
-
backgroundColor = 'transparent';
|
|
140
|
-
}
|
|
141
|
-
else if (state.isSelected) {
|
|
142
|
-
backgroundColor = isMulti
|
|
143
|
-
? 'transparent'
|
|
144
|
-
: 'rgb(var(--theme-palette-primary-bg-selected))';
|
|
145
|
-
}
|
|
146
|
-
else if (state.isFocused) {
|
|
147
|
-
backgroundColor = 'rgb(var(--theme-palette-neutral-hover))';
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
backgroundColor = 'transparent';
|
|
151
|
-
}
|
|
152
|
-
//Apply the same logic for color
|
|
153
|
-
if (state.isSelected && isMulti) {
|
|
154
|
-
color = 'rgb(var(--theme-palette-neutral-text-default))';
|
|
155
|
-
}
|
|
156
|
-
else if (state.isDisabled) {
|
|
157
|
-
color = 'rgb(var(--theme-palette-neutral-text-weakest))';
|
|
158
|
-
}
|
|
159
|
-
else if (state.isSelected) {
|
|
160
|
-
color = 'rgb(var(--theme-palette-primary-text))';
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
color = 'rgb(var(--theme-palette-neutral-text-default))';
|
|
164
|
-
}
|
|
165
|
-
if (isMulti) {
|
|
166
|
-
if (state.isDisabled) {
|
|
167
|
-
hoverColor = 'transparent';
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
hoverColor = 'rgb(var(--theme-palette-neutral-hover))';
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
hoverColor = backgroundColor;
|
|
175
|
-
}
|
|
176
|
-
return Object.assign(Object.assign(Object.assign(Object.assign({}, provided), { position: 'relative', borderRadius: '8px', marginBottom: '2px', cursor: state.isDisabled
|
|
177
|
-
? 'not-allowed !important'
|
|
178
|
-
: 'pointer !important',
|
|
179
|
-
/** Pass undefined to allow CSS rules to apply */
|
|
180
|
-
fontSize: undefined, lineHeight: undefined, backgroundColor: backgroundColor, color: color, '&:hover': {
|
|
181
|
-
backgroundColor: hoverColor,
|
|
182
|
-
} }), (state.isSelected &&
|
|
183
|
-
!isMulti && {
|
|
184
|
-
'&::before': {
|
|
185
|
-
content: '""',
|
|
186
|
-
position: 'absolute',
|
|
187
|
-
width: '4px',
|
|
188
|
-
height: '100%',
|
|
189
|
-
backgroundColor: 'rgb(var(--theme-palette-primary-bg-strong))',
|
|
190
|
-
borderRadius: '0 100px 100px 0',
|
|
191
|
-
left: '-8px',
|
|
192
|
-
top: '0px',
|
|
193
|
-
},
|
|
194
|
-
})), { overflowWrap: 'break-word' });
|
|
195
|
-
},
|
|
196
|
-
input: (provided) => (Object.assign(Object.assign({}, provided), { padding: size === 'small' ? '0px' : undefined, margin: size === 'small' ? '0px' : undefined, lineHeight: getLineHeight(size), height: size === 'small'
|
|
197
|
-
? `${getTargetHeight(size) - 2 * BORDER_WIDTH}px`
|
|
198
|
-
: undefined, color: 'rgb(var(--theme-palette-neutral-text-default))' })),
|
|
199
|
-
placeholder: (provided) => (Object.assign(Object.assign({}, provided), { height: size === 'small'
|
|
200
|
-
? `${getTargetHeight(size) - 2 * BORDER_WIDTH}px`
|
|
201
|
-
: undefined, color: 'rgb(var(--theme-palette-neutral-text-weaker))' })),
|
|
57
|
+
control: () => ({}),
|
|
58
|
+
menuList: () => ({}),
|
|
59
|
+
option: () => ({}),
|
|
60
|
+
valueContainer: (provided) => (Object.assign(Object.assign({}, provided), { padding: '0' })),
|
|
61
|
+
indicatorsContainer: () => ({}),
|
|
62
|
+
dropdownIndicator: () => ({}),
|
|
63
|
+
clearIndicator: () => ({}),
|
|
64
|
+
input: () => ({}),
|
|
65
|
+
singleValue: () => ({}),
|
|
66
|
+
placeholder: () => ({}),
|
|
67
|
+
menu: () => ({}),
|
|
202
68
|
};
|
|
203
69
|
};
|
|
204
70
|
export const Select = forwardRef(function Select(props, ref) {
|
|
@@ -207,13 +73,9 @@ export const Select = forwardRef(function Select(props, ref) {
|
|
|
207
73
|
const ComponentOverrides = useMemo(() => overrideComponents({
|
|
208
74
|
errorText,
|
|
209
75
|
size,
|
|
210
|
-
}), [errorText, size]);
|
|
211
|
-
const StyleOverrides = useMemo(() => customStyles({
|
|
212
|
-
errorText,
|
|
213
|
-
size,
|
|
214
76
|
hasBorder,
|
|
215
|
-
|
|
216
|
-
|
|
77
|
+
}), [errorText, size, hasBorder]);
|
|
78
|
+
const StyleOverrides = useMemo(() => customStyles(), []);
|
|
217
79
|
const identifier = useMemo(() => {
|
|
218
80
|
if (typeof label === 'string')
|
|
219
81
|
return label;
|
|
@@ -237,12 +99,14 @@ export const Select = forwardRef(function Select(props, ref) {
|
|
|
237
99
|
}
|
|
238
100
|
const classes = classNames('ndl-select', props.className, {
|
|
239
101
|
'ndl-small': size === 'small',
|
|
102
|
+
'ndl-medium': size === 'medium',
|
|
240
103
|
'ndl-large': size === 'large',
|
|
241
104
|
'ndl-fluid': isFluid,
|
|
242
105
|
'ndl-disabled': selectProps.isDisabled,
|
|
243
106
|
'ndl-multi': selectProps.isMulti,
|
|
244
107
|
'ndl-creatable': type === 'creatable',
|
|
108
|
+
'ndl-has-error': !!errorText,
|
|
245
109
|
});
|
|
246
|
-
return (_jsxs(Component, Object.assign({ "aria-label": ariaLabel, ref: ref, className: classes, style: style }, htmlAttributes, { children: [label && _jsx("label", { htmlFor: identifier, children: label }), SelectElement, helpText && !errorText && (_jsx("span", { className: "ndl-sub-text", children: helpText })), errorText && (_jsx("span", { className: "ndl-sub-text ndl-error-text", children: errorText }))] })));
|
|
110
|
+
return (_jsxs(Component, Object.assign({ "aria-label": ariaLabel, ref: ref, className: classes, style: style }, htmlAttributes, { children: [label && _jsx("label", { htmlFor: identifier, children: label }), SelectElement, helpText && !errorText && (_jsx("span", { className: "ndl-sub-text", children: helpText })), errorText && (_jsxs("div", { className: "n-flex n-flex-row n-gap-token-3 n-items-center", children: [_jsx(ExclamationCircleIconSolid, { className: classNames('ndl-error-icon', classes), role: "img", type: "solid" }), _jsx("span", { className: "ndl-sub-text ndl-error-text", children: errorText })] }))] })));
|
|
247
111
|
});
|
|
248
112
|
//# sourceMappingURL=Select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../src/select/Select.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../src/select/Select.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) "Neo4j"
|
|
5
|
+
* Neo4j Sweden AB [http://neo4j.com]
|
|
6
|
+
*
|
|
7
|
+
* This file is part of Neo4j.
|
|
8
|
+
*
|
|
9
|
+
* Neo4j is free software: you can redistribute it and/or modify
|
|
10
|
+
* it under the terms of the GNU General Public License as published by
|
|
11
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
* (at your option) any later version.
|
|
13
|
+
*
|
|
14
|
+
* This program is distributed in the hope that it will be useful,
|
|
15
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
* GNU General Public License for more details.
|
|
18
|
+
*
|
|
19
|
+
* You should have received a copy of the GNU General Public License
|
|
20
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
*/
|
|
22
|
+
import React from 'react';
|
|
23
|
+
import { classNames } from '../_common/defaultImports';
|
|
24
|
+
import ConditionalWrap from '../_common/ConditionalWrap';
|
|
25
|
+
export const Skeleton = React.forwardRef(function Skeleton({ as, variant = 'rectangular', className, style, height, width, isLoading = true, children, htmlAttributes, onBackground = 'default', }, ref) {
|
|
26
|
+
const Component = as || 'div';
|
|
27
|
+
const classes = classNames(`ndl-skeleton ndl-skeleton-${variant}`, onBackground && `ndl-skeleton-${onBackground}`, className);
|
|
28
|
+
return (_jsx(ConditionalWrap, { shouldWrap: isLoading, wrap: (children) => (_jsx(Component, Object.assign({ ref: ref, className: classes, style: Object.assign(Object.assign({}, style), { height,
|
|
29
|
+
width }), "aria-busy": true }, htmlAttributes, { children: children }))), children: children ? (_jsx("div", { "aria-hidden": true, className: "ndl-skeleton-content", children: children })) : null }));
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=Skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Skeleton.js","sourceRoot":"","sources":["../../../src/skeleton/Skeleton.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAMvD,OAAO,eAAe,MAAM,4BAA4B,CAAC;AAezD,MAAM,CAAC,MAAM,QAAQ,GAGjB,KAAK,CAAC,UAAU,CAAC,SAAS,QAAQ,CACpC,EACE,EAAE,EACF,OAAO,GAAG,aAAa,EACvB,SAAS,EACT,KAAK,EACL,MAAM,EACN,KAAK,EACL,SAAS,GAAG,IAAI,EAChB,QAAQ,EACR,cAAc,EACd,YAAY,GAAG,SAAS,GACqB,EAC/C,GAAsB;IAEtB,MAAM,SAAS,GAAsB,EAAE,IAAI,KAAK,CAAC;IACjD,MAAM,OAAO,GAAG,UAAU,CACxB,6BAA6B,OAAO,EAAE,EACtC,YAAY,IAAI,gBAAgB,YAAY,EAAE,EAC9C,SAAS,CACV,CAAC;IAEF,OAAO,CACL,KAAC,eAAe,IACd,UAAU,EAAE,SAAS,EACrB,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAClB,KAAC,SAAS,kBACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,OAAO,EAClB,KAAK,kCACA,KAAK,KACR,MAAM;gBACN,KAAK,kBAEI,IAAI,IACX,cAAc,cAEjB,QAAQ,IACC,CACb,YAEA,QAAQ,CAAC,CAAC,CAAC,CACV,6BAAkB,IAAI,EAAE,SAAS,EAAC,sBAAsB,YACrD,QAAQ,GACL,CACP,CAAC,CAAC,CAAC,IAAI,GACQ,CACnB,CAAC;AACJ,CAAC,CAAgE,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* Copyright (c) "Neo4j"
|
|
4
|
+
* Neo4j Sweden AB [http://neo4j.com]
|
|
5
|
+
*
|
|
6
|
+
* This file is part of Neo4j.
|
|
7
|
+
*
|
|
8
|
+
* Neo4j is free software: you can redistribute it and/or modify
|
|
9
|
+
* it under the terms of the GNU General Public License as published by
|
|
10
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
* (at your option) any later version.
|
|
12
|
+
*
|
|
13
|
+
* This program is distributed in the hope that it will be useful,
|
|
14
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
* GNU General Public License for more details.
|
|
17
|
+
*
|
|
18
|
+
* You should have received a copy of the GNU General Public License
|
|
19
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
*/
|
|
21
|
+
export * from './Skeleton';
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/skeleton/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) "Neo4j"
|
|
5
|
+
* Neo4j Sweden AB [http://neo4j.com]
|
|
6
|
+
*
|
|
7
|
+
* This file is part of Neo4j.
|
|
8
|
+
*
|
|
9
|
+
* Neo4j is free software: you can redistribute it and/or modify
|
|
10
|
+
* it under the terms of the GNU General Public License as published by
|
|
11
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
* (at your option) any later version.
|
|
13
|
+
*
|
|
14
|
+
* This program is distributed in the hope that it will be useful,
|
|
15
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
* GNU General Public License for more details.
|
|
18
|
+
*
|
|
19
|
+
* You should have received a copy of the GNU General Public License
|
|
20
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
*/
|
|
22
|
+
import { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState, } from 'react';
|
|
23
|
+
import { ClockIconOutline } from '../icons';
|
|
24
|
+
import { Popover } from '../popover';
|
|
25
|
+
import cn from 'classnames';
|
|
26
|
+
import { generateTimeOptions } from './generate-time-options';
|
|
27
|
+
import { useKeyboardNavigation, useTimePickerPopover, } from './time-picker-hooks';
|
|
28
|
+
import { NeedleTime } from './needle-time';
|
|
29
|
+
import { useNeedleTheme } from '../theme';
|
|
30
|
+
import { TextInput } from '../text-input';
|
|
31
|
+
export const TimePicker = forwardRef(function TimePicker(props, ref) {
|
|
32
|
+
var _a;
|
|
33
|
+
const { format = 'hh:mm', isDisabled, isFluid, isReadOnly, isRequired, selected, timeInterval = 15, label, onChange, className, onError, style, size = 'medium', errorText, htmlAttributes, } = props;
|
|
34
|
+
const [editedInput, setEditedInput] = useState(selected);
|
|
35
|
+
const [inputValue, setInputValue] = useState('');
|
|
36
|
+
const listRef = useRef(null);
|
|
37
|
+
const inputRef = useRef(null);
|
|
38
|
+
useImperativeHandle(ref, () => inputRef.current, []);
|
|
39
|
+
const [lastAction, setLastAction] = useState('type');
|
|
40
|
+
const is24Hour = format === 'hh:mm';
|
|
41
|
+
const [error, setError] = useState(undefined);
|
|
42
|
+
const timeOptions = useMemo(() => generateTimeOptions(is24Hour, timeInterval), [is24Hour, timeInterval]);
|
|
43
|
+
const { themeClassName } = useNeedleTheme();
|
|
44
|
+
const { isPopoverOpen, setIsPopoverOpen } = useTimePickerPopover(false);
|
|
45
|
+
const { focusedIndex, setFocusedIndex, handleArrowNavigation } = useKeyboardNavigation(listRef, timeOptions.length);
|
|
46
|
+
const isValidTime = useCallback((hours, minutes) => {
|
|
47
|
+
if (hours > 23 || hours < 0) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
if (minutes > 59 || minutes < 0) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
return true;
|
|
54
|
+
}, []);
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (error) {
|
|
57
|
+
onError === null || onError === void 0 ? void 0 : onError(error);
|
|
58
|
+
}
|
|
59
|
+
}, [error, onError]);
|
|
60
|
+
const handleOnClick = (timeText) => {
|
|
61
|
+
if (onChange) {
|
|
62
|
+
onChange(NeedleTime.fromString(timeText));
|
|
63
|
+
}
|
|
64
|
+
setError(undefined);
|
|
65
|
+
setInputValue(timeText);
|
|
66
|
+
setEditedInput(NeedleTime.fromString(timeText));
|
|
67
|
+
setIsPopoverOpen(false);
|
|
68
|
+
};
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
setEditedInput(selected);
|
|
71
|
+
}, [selected]);
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
if (isPopoverOpen) {
|
|
74
|
+
setTimeout(() => {
|
|
75
|
+
var _a, _b;
|
|
76
|
+
(_b = (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.children[focusedIndex]) === null || _b === void 0 ? void 0 : _b.scrollIntoView({
|
|
77
|
+
block: 'center',
|
|
78
|
+
inline: 'nearest',
|
|
79
|
+
});
|
|
80
|
+
}, 0);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
setTimeout(() => {
|
|
84
|
+
var _a, _b;
|
|
85
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.blur();
|
|
86
|
+
const selectedIndex = (_b = timeOptions.indexOf((selected === null || selected === void 0 ? void 0 : selected.toString(is24Hour)) || '')) !== null && _b !== void 0 ? _b : 0;
|
|
87
|
+
setFocusedIndex(selectedIndex);
|
|
88
|
+
}, 0);
|
|
89
|
+
}
|
|
90
|
+
}, [
|
|
91
|
+
focusedIndex,
|
|
92
|
+
is24Hour,
|
|
93
|
+
isPopoverOpen,
|
|
94
|
+
selected,
|
|
95
|
+
setFocusedIndex,
|
|
96
|
+
timeOptions,
|
|
97
|
+
]);
|
|
98
|
+
const sizeClasses = {
|
|
99
|
+
'ndl-small': size === 'small',
|
|
100
|
+
'ndl-medium': size === 'medium',
|
|
101
|
+
'ndl-large': size === 'large',
|
|
102
|
+
};
|
|
103
|
+
const newHandleInputChange = (e) => {
|
|
104
|
+
scrollToTime(e.target.value);
|
|
105
|
+
setInputValue(e.target.value);
|
|
106
|
+
setLastAction('type');
|
|
107
|
+
const time = NeedleTime.fromString(e.target.value);
|
|
108
|
+
if (!isValidTime(time.hour, time.minute)) {
|
|
109
|
+
setError('Invalid time');
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
setError(undefined);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
const handleKeyDown = (e) => {
|
|
116
|
+
var _a;
|
|
117
|
+
if (e.key === 'Escape') {
|
|
118
|
+
setIsPopoverOpen(false);
|
|
119
|
+
}
|
|
120
|
+
setIsPopoverOpen(true);
|
|
121
|
+
if (e.key === 'Enter') {
|
|
122
|
+
if (lastAction === 'type' && inputValue.length >= (is24Hour ? 5 : 6)) {
|
|
123
|
+
setIsPopoverOpen(false);
|
|
124
|
+
const time = NeedleTime.fromString(inputValue);
|
|
125
|
+
setEditedInput(time);
|
|
126
|
+
setInputValue(time.toString(is24Hour));
|
|
127
|
+
}
|
|
128
|
+
else if (lastAction === 'type' && !inputValue.includes(':')) {
|
|
129
|
+
const time = NeedleTime.fromString(inputValue);
|
|
130
|
+
if (isValidTime(time.hour, time.minute)) {
|
|
131
|
+
setInputValue(time.toString(is24Hour));
|
|
132
|
+
setEditedInput(time);
|
|
133
|
+
}
|
|
134
|
+
setIsPopoverOpen(false);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
setInputValue(timeOptions[focusedIndex]);
|
|
138
|
+
setEditedInput(NeedleTime.fromString(timeOptions[focusedIndex]));
|
|
139
|
+
setIsPopoverOpen(false);
|
|
140
|
+
}
|
|
141
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.blur();
|
|
142
|
+
}
|
|
143
|
+
else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
|
|
144
|
+
e.preventDefault();
|
|
145
|
+
setLastAction('arrow');
|
|
146
|
+
handleArrowNavigation(e.key);
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
const scrollToTime = (startOfTime) => {
|
|
150
|
+
const parsedTime = startOfTime.toLowerCase().replace(/[^0-9amp]/g, '');
|
|
151
|
+
let index = -1;
|
|
152
|
+
// Handle AM/PM input
|
|
153
|
+
const isPM = parsedTime.includes('p');
|
|
154
|
+
const isAM = parsedTime.includes('a');
|
|
155
|
+
const timeDigits = parsedTime.replace(/[amp]/g, '');
|
|
156
|
+
if (timeDigits.length === 1) {
|
|
157
|
+
// Single digit - assume it's an hour
|
|
158
|
+
const hour = `0${timeDigits}`;
|
|
159
|
+
const searchTime = is24Hour
|
|
160
|
+
? `${hour}:00`
|
|
161
|
+
: `${hour}:00 ${isPM ? 'PM' : 'AM'}`;
|
|
162
|
+
index = timeOptions.indexOf(searchTime);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
// Find closest matching time
|
|
166
|
+
const closestTime = timeOptions.find((time) => {
|
|
167
|
+
const timeWithoutSpecialChars = time
|
|
168
|
+
.toLowerCase()
|
|
169
|
+
.replace(/[^0-9amp]/g, '');
|
|
170
|
+
if (isPM || isAM) {
|
|
171
|
+
// If AM/PM specified, match that specifically
|
|
172
|
+
return timeWithoutSpecialChars.startsWith(parsedTime);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
// Otherwise just match the numbers
|
|
176
|
+
return timeWithoutSpecialChars
|
|
177
|
+
.replace(/[amp]/g, '')
|
|
178
|
+
.startsWith(timeDigits);
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
index = closestTime ? timeOptions.indexOf(closestTime) : -1;
|
|
182
|
+
}
|
|
183
|
+
if (index !== -1) {
|
|
184
|
+
setFocusedIndex(index);
|
|
185
|
+
}
|
|
186
|
+
return index;
|
|
187
|
+
};
|
|
188
|
+
const inputWidth = isFluid ? undefined : is24Hour ? '6rem' : '9rem';
|
|
189
|
+
return (_jsxs(_Fragment, { children: [_jsx(TextInput, { onChange: newHandleInputChange, isFluid: isFluid, label: label, placeholder: is24Hour ? 'hh:mm' : 'hh:mm aa', ref: inputRef, value: inputValue, size: size, style: Object.assign({ width: inputWidth }, style), className: cn(className, 'ndl-time-picker'), isRequired: isRequired, isDisabled: isDisabled, isReadOnly: isReadOnly, errorText: errorText || error, rightElement: _jsx(ClockIconOutline, { className: "ndl-icon-svg" }), htmlAttributes: Object.assign({ onClick: () => {
|
|
190
|
+
if (isReadOnly)
|
|
191
|
+
return;
|
|
192
|
+
setIsPopoverOpen(true);
|
|
193
|
+
}, onBlur: (e) => {
|
|
194
|
+
var _a;
|
|
195
|
+
if ((_a = e.relatedTarget) === null || _a === void 0 ? void 0 : _a.classList.contains('ndl-time-picker-popover-item')) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
if (inputValue.length < 4) {
|
|
199
|
+
setError('Invalid time');
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
const time = NeedleTime.fromString(inputValue);
|
|
203
|
+
if (!time) {
|
|
204
|
+
setError('Invalid time');
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
if (!isValidTime(time.hour, time.minute)) {
|
|
208
|
+
setError('Invalid time');
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
setError(undefined);
|
|
212
|
+
setInputValue(time.toString(is24Hour));
|
|
213
|
+
}
|
|
214
|
+
}, onKeyDown: handleKeyDown, maxLength: is24Hour ? 5 : 8 }, htmlAttributes) }), _jsx(Popover, { isOpen: !isDisabled && isPopoverOpen, onOpenChange: setIsPopoverOpen, anchorElement: inputRef.current, initialFocus: -1, children: _jsx(Popover.Content, { className: cn(themeClassName, 'ndl-time-picker-popover', Object.assign(Object.assign({}, sizeClasses), { 'ndl-fluid': isFluid })), style: {
|
|
215
|
+
width: isFluid ? (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.clientWidth : undefined,
|
|
216
|
+
}, children: _jsx("ul", { ref: listRef, tabIndex: -1, children: timeOptions.map((time, i) => (_jsx("li", { role: "option", "aria-selected": (selected === null || selected === void 0 ? void 0 : selected.toString(is24Hour)) === time ||
|
|
217
|
+
(editedInput === null || editedInput === void 0 ? void 0 : editedInput.toString(is24Hour)) === time, value: time, onClick: () => handleOnClick(time), tabIndex: -1, className: cn(focusedIndex === i ? 'focused' : '', 'ndl-time-picker-popover-item'), onKeyDown: (e) => {
|
|
218
|
+
if (e.key === 'Enter') {
|
|
219
|
+
handleOnClick(time);
|
|
220
|
+
}
|
|
221
|
+
}, children: time }, i))) }) }) })] }));
|
|
222
|
+
});
|
|
223
|
+
//# sourceMappingURL=TimePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimePicker.js","sourceRoot":"","sources":["../../../src/time-picker/TimePicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* Copyright (c) "Neo4j"
|
|
4
|
+
* Neo4j Sweden AB [http://neo4j.com]
|
|
5
|
+
*
|
|
6
|
+
* This file is part of Neo4j.
|
|
7
|
+
*
|
|
8
|
+
* Neo4j is free software: you can redistribute it and/or modify
|
|
9
|
+
* it under the terms of the GNU General Public License as published by
|
|
10
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
* (at your option) any later version.
|
|
12
|
+
*
|
|
13
|
+
* This program is distributed in the hope that it will be useful,
|
|
14
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
* GNU General Public License for more details.
|
|
17
|
+
*
|
|
18
|
+
* You should have received a copy of the GNU General Public License
|
|
19
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
*/
|
|
21
|
+
export const generateTimeOptions = (is24Hour, interval) => {
|
|
22
|
+
const times = [];
|
|
23
|
+
const safeInterval = interval || 30;
|
|
24
|
+
for (let i = 0; i < 1440; i += safeInterval) {
|
|
25
|
+
const hours = Math.floor(i / 60);
|
|
26
|
+
const minutes = i % 60;
|
|
27
|
+
if (is24Hour) {
|
|
28
|
+
times.push(`${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}`);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
const period = hours < 12 ? 'AM' : 'PM';
|
|
32
|
+
const adjustedHours = hours % 12 || 12;
|
|
33
|
+
times.push(`${String(adjustedHours).padStart(2, '0')}:${String(minutes).padStart(2, '0')} ${period}`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return times;
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=generate-time-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-time-options.js","sourceRoot":"","sources":["../../../src/time-picker/generate-time-options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAiB,EAAE,QAAgB,EAAE,EAAE;IACzE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,YAAY,GAAG,QAAQ,IAAI,EAAE,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACxE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACxC,MAAM,aAAa,GAAG,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAC1F,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* Copyright (c) "Neo4j"
|
|
4
|
+
* Neo4j Sweden AB [http://neo4j.com]
|
|
5
|
+
*
|
|
6
|
+
* This file is part of Neo4j.
|
|
7
|
+
*
|
|
8
|
+
* Neo4j is free software: you can redistribute it and/or modify
|
|
9
|
+
* it under the terms of the GNU General Public License as published by
|
|
10
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
* (at your option) any later version.
|
|
12
|
+
*
|
|
13
|
+
* This program is distributed in the hope that it will be useful,
|
|
14
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
* GNU General Public License for more details.
|
|
17
|
+
*
|
|
18
|
+
* You should have received a copy of the GNU General Public License
|
|
19
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
*/
|
|
21
|
+
export * from './TimePicker';
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/time-picker/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,cAAc,cAAc,CAAC"}
|