@fluixi-ui/date-picker 0.3.0-alpha.18 → 0.3.0-alpha.19
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/date-picker.js +325 -220
- package/dist/date-range-picker.js +369 -256
- package/dist/index.js +3 -18
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +6 -6
|
@@ -1,274 +1,387 @@
|
|
|
1
|
-
import { createComponent,
|
|
2
|
-
import {
|
|
1
|
+
import { createComponent, createNativeElement, delegateEvents, handleRef, insert, mergeProps, splitProps, spread, templateNode } from "@fluixi/dom";
|
|
2
|
+
import { createEffect, createMemo, createRenderEffect, createSignal, untrack } from "@fluixi/reactive/signal";
|
|
3
3
|
import { fxProps } from "@fluixi-ui/fx";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { Portal,
|
|
4
|
+
import { Show, useRef } from "@fluixi/core";
|
|
5
|
+
import { composeEventHandlers, composeId, createControllableBooleanSignal, createControllableSignal, createId, createSafeContext } from "@fluixi-ui/kit";
|
|
6
|
+
import { Portal, createDismissableLayer, createFloatingPosition, createFocusScope } from "@fluixi-ui/primitives";
|
|
7
7
|
import { DateField, DateInput } from "@fluixi-ui/date-field";
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
import { CalendarGrid, CalendarHeader, CalendarHeading, CalendarNextButton, CalendarPrevButton, RangeCalendar } from "@fluixi-ui/calendar";
|
|
9
|
+
//#region src/date-range-picker.tsx
|
|
10
|
+
var _fxTmpl$0 = "<span aria-hidden=\"true\" data-date-range-separator=\"\">–</span>";
|
|
11
|
+
delegateEvents([
|
|
12
|
+
"change",
|
|
13
|
+
"keydown",
|
|
14
|
+
"click"
|
|
15
|
+
]);
|
|
16
|
+
var [DateRangePickerProvider, useDateRangePickerContext] = createSafeContext("DateRangePicker");
|
|
17
|
+
/**
|
|
18
|
+
* A date range picker: two segmented fields (start / end) paired with a popover
|
|
19
|
+
* range calendar over one shared value. Partial entry is held per endpoint; the
|
|
20
|
+
* committed value stays `null` until both ends are set.
|
|
21
|
+
*/
|
|
12
22
|
function DateRangePicker(props) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
23
|
+
const [value, setValue] = createControllableSignal({
|
|
24
|
+
value: () => props.value ?? void 0,
|
|
25
|
+
defaultValue: () => props.defaultValue ?? null,
|
|
26
|
+
onChange: (v) => props.onChange?.(v)
|
|
27
|
+
});
|
|
28
|
+
const [isOpen, setOpen] = createControllableBooleanSignal({
|
|
29
|
+
value: () => props.open,
|
|
30
|
+
defaultValue: () => props.defaultOpen ?? false,
|
|
31
|
+
onChange: (o) => props.onOpenChange?.(o)
|
|
32
|
+
});
|
|
33
|
+
const [start, setStart] = createSignal(untrack(() => value()?.start ?? null));
|
|
34
|
+
const [end, setEnd] = createSignal(untrack(() => value()?.end ?? null));
|
|
35
|
+
createRenderEffect(() => {
|
|
36
|
+
const v = value();
|
|
37
|
+
if (v) {
|
|
38
|
+
setStart(v.start);
|
|
39
|
+
setEnd(v.end);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
const commit = () => {
|
|
43
|
+
const s = start();
|
|
44
|
+
const e = end();
|
|
45
|
+
setValue(s && e ? {
|
|
46
|
+
start: s,
|
|
47
|
+
end: e
|
|
48
|
+
} : null);
|
|
49
|
+
};
|
|
50
|
+
const baseId = createId("date-range-picker");
|
|
51
|
+
const [triggerRef, setTriggerRef] = createSignal(void 0);
|
|
52
|
+
const ctx = {
|
|
53
|
+
value: () => value() ?? null,
|
|
54
|
+
start,
|
|
55
|
+
end,
|
|
56
|
+
setStart: (v) => {
|
|
57
|
+
setStart(v);
|
|
58
|
+
commit();
|
|
59
|
+
},
|
|
60
|
+
setEnd: (v) => {
|
|
61
|
+
setEnd(v);
|
|
62
|
+
commit();
|
|
63
|
+
},
|
|
64
|
+
selectRange: (range) => {
|
|
65
|
+
setStart(range?.start ?? null);
|
|
66
|
+
setEnd(range?.end ?? null);
|
|
67
|
+
setValue(range);
|
|
68
|
+
},
|
|
69
|
+
isOpen,
|
|
70
|
+
setOpen: (o) => setOpen(o),
|
|
71
|
+
ids: {
|
|
72
|
+
label: composeId(baseId, "label"),
|
|
73
|
+
content: composeId(baseId, "content")
|
|
74
|
+
},
|
|
75
|
+
triggerRef,
|
|
76
|
+
setTriggerRef,
|
|
77
|
+
placement: props.placement ?? "bottom-start",
|
|
78
|
+
offset: props.offset ?? 6,
|
|
79
|
+
locale: () => props.locale,
|
|
80
|
+
granularity: props.granularity,
|
|
81
|
+
hourCycle: props.hourCycle,
|
|
82
|
+
minValue: () => props.minValue,
|
|
83
|
+
maxValue: () => props.maxValue,
|
|
84
|
+
isDisabled: () => props.isDisabled ?? false,
|
|
85
|
+
isReadOnly: () => props.isReadOnly ?? false,
|
|
86
|
+
isDateUnavailable: props.isDateUnavailable
|
|
87
|
+
};
|
|
88
|
+
return createMemo(() => createComponent(DateRangePickerProvider, {
|
|
89
|
+
get value() {
|
|
90
|
+
return ctx;
|
|
91
|
+
},
|
|
92
|
+
get children() {
|
|
93
|
+
return props.children;
|
|
94
|
+
}
|
|
95
|
+
}));
|
|
77
96
|
}
|
|
97
|
+
/** Field label; linked to the range field group. */
|
|
78
98
|
function DateRangePickerLabel(props) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
99
|
+
const ctx = useDateRangePickerContext();
|
|
100
|
+
const [local, others] = splitProps(props, [
|
|
101
|
+
"children",
|
|
102
|
+
"fx",
|
|
103
|
+
"style"
|
|
104
|
+
]);
|
|
105
|
+
return (() => {
|
|
106
|
+
const _el$ = createNativeElement("span");
|
|
107
|
+
spread({
|
|
108
|
+
element: _el$,
|
|
109
|
+
props: mergeProps(fxProps(() => local.fx, () => local.style), others, {
|
|
110
|
+
id: () => ctx.ids.label,
|
|
111
|
+
"data-date-picker-label": ""
|
|
112
|
+
})
|
|
113
|
+
});
|
|
114
|
+
insert(_el$, local.children, null);
|
|
115
|
+
return _el$;
|
|
116
|
+
})();
|
|
90
117
|
}
|
|
118
|
+
/** Renders a controlled segmented field for one endpoint. */
|
|
91
119
|
function EndpointField(props) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
120
|
+
const ctx = useDateRangePickerContext();
|
|
121
|
+
return createMemo(() => createComponent(DateField, {
|
|
122
|
+
get value() {
|
|
123
|
+
return props.value;
|
|
124
|
+
},
|
|
125
|
+
get onChange() {
|
|
126
|
+
return props.onChange;
|
|
127
|
+
},
|
|
128
|
+
get locale() {
|
|
129
|
+
return ctx.locale;
|
|
130
|
+
},
|
|
131
|
+
get granularity() {
|
|
132
|
+
return ctx.granularity;
|
|
133
|
+
},
|
|
134
|
+
get hourCycle() {
|
|
135
|
+
return ctx.hourCycle;
|
|
136
|
+
},
|
|
137
|
+
get minValue() {
|
|
138
|
+
return ctx.minValue;
|
|
139
|
+
},
|
|
140
|
+
get maxValue() {
|
|
141
|
+
return ctx.maxValue;
|
|
142
|
+
},
|
|
143
|
+
get isDisabled() {
|
|
144
|
+
return ctx.isDisabled;
|
|
145
|
+
},
|
|
146
|
+
get isReadOnly() {
|
|
147
|
+
return ctx.isReadOnly;
|
|
148
|
+
},
|
|
149
|
+
get children() {
|
|
150
|
+
return createMemo(() => createComponent(DateInput, {
|
|
151
|
+
get "aria-labelledby"() {
|
|
152
|
+
return ctx.ids.label;
|
|
153
|
+
},
|
|
154
|
+
get "data-date-picker-input"() {
|
|
155
|
+
return "";
|
|
156
|
+
}
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
159
|
+
}));
|
|
118
160
|
}
|
|
161
|
+
/** The bordered control: start field — end field, plus the calendar trigger. */
|
|
119
162
|
function DateRangePickerField(props) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
163
|
+
const ctx = useDateRangePickerContext();
|
|
164
|
+
const [local, others] = splitProps(props, [
|
|
165
|
+
"ref",
|
|
166
|
+
"children",
|
|
167
|
+
"fx",
|
|
168
|
+
"style"
|
|
169
|
+
]);
|
|
170
|
+
const setRef = (node) => {
|
|
171
|
+
ctx.setTriggerRef(node);
|
|
172
|
+
handleRef(local.ref, node);
|
|
173
|
+
};
|
|
174
|
+
return (() => {
|
|
175
|
+
const _el$ = createNativeElement("div");
|
|
176
|
+
spread({
|
|
177
|
+
element: _el$,
|
|
178
|
+
props: mergeProps(fxProps(() => local.fx, () => local.style), others, {
|
|
179
|
+
ref: setRef,
|
|
180
|
+
role: "group",
|
|
181
|
+
"aria-labelledby": () => ctx.ids.label,
|
|
182
|
+
"data-date-picker-control": "",
|
|
183
|
+
"data-date-range": ""
|
|
184
|
+
})
|
|
185
|
+
});
|
|
186
|
+
insert(_el$, createMemo(() => createComponent(EndpointField, {
|
|
187
|
+
get value() {
|
|
188
|
+
return ctx.start;
|
|
189
|
+
},
|
|
190
|
+
get onChange() {
|
|
191
|
+
return ctx.setStart;
|
|
192
|
+
}
|
|
193
|
+
})), null);
|
|
194
|
+
insert(_el$, templateNode(_fxTmpl$0, "span"));
|
|
195
|
+
insert(_el$, createMemo(() => createComponent(EndpointField, {
|
|
196
|
+
get value() {
|
|
197
|
+
return ctx.end;
|
|
198
|
+
},
|
|
199
|
+
get onChange() {
|
|
200
|
+
return ctx.setEnd;
|
|
201
|
+
}
|
|
202
|
+
})), null);
|
|
203
|
+
insert(_el$, local.children ?? createMemo(() => createComponent(DateRangePickerTrigger, {})), null);
|
|
204
|
+
return _el$;
|
|
205
|
+
})();
|
|
146
206
|
}
|
|
207
|
+
/** Toggles the range-calendar popover. */
|
|
147
208
|
function DateRangePickerTrigger(props) {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
209
|
+
const ctx = useDateRangePickerContext();
|
|
210
|
+
const [local, others] = splitProps(props, [
|
|
211
|
+
"onClick",
|
|
212
|
+
"children",
|
|
213
|
+
"fx",
|
|
214
|
+
"style"
|
|
215
|
+
]);
|
|
216
|
+
return (() => {
|
|
217
|
+
const _el$ = createNativeElement("button");
|
|
218
|
+
spread({
|
|
219
|
+
element: _el$,
|
|
220
|
+
props: mergeProps(fxProps(() => local.fx, () => local.style), others, {
|
|
221
|
+
type: "button",
|
|
222
|
+
"aria-haspopup": "dialog",
|
|
223
|
+
"aria-expanded": () => ctx.isOpen() ? "true" : "false",
|
|
224
|
+
"aria-controls": () => ctx.ids.content,
|
|
225
|
+
"aria-label": "Open calendar",
|
|
226
|
+
disabled: () => ctx.isDisabled(),
|
|
227
|
+
"data-date-picker-trigger": "",
|
|
228
|
+
onClick: composeEventHandlers([local.onClick, () => {
|
|
229
|
+
if (ctx.isDisabled() || ctx.isReadOnly()) return;
|
|
230
|
+
ctx.setOpen(!ctx.isOpen());
|
|
231
|
+
}])
|
|
232
|
+
})
|
|
233
|
+
});
|
|
234
|
+
insert(_el$, local.children ?? "📅", null);
|
|
235
|
+
return _el$;
|
|
236
|
+
})();
|
|
165
237
|
}
|
|
238
|
+
/** The floating range-calendar panel; selecting a full range closes it. */
|
|
166
239
|
function DateRangePickerContent(props) {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
240
|
+
const ctx = useDateRangePickerContext();
|
|
241
|
+
const [local, others] = splitProps(props, [
|
|
242
|
+
"ref",
|
|
243
|
+
"children",
|
|
244
|
+
"style",
|
|
245
|
+
"fx",
|
|
246
|
+
"style"
|
|
247
|
+
]);
|
|
248
|
+
const [element, setElement] = createSignal(void 0);
|
|
249
|
+
const portalRef = useRef(null);
|
|
250
|
+
createEffect(() => {
|
|
251
|
+
if (!ctx.isOpen() && portalRef.current) portalRef.current.remove();
|
|
252
|
+
});
|
|
253
|
+
return createMemo(() => createComponent(Show, {
|
|
254
|
+
get when() {
|
|
255
|
+
return ctx.isOpen();
|
|
256
|
+
},
|
|
257
|
+
get children() {
|
|
258
|
+
return createMemo(() => createComponent(Portal, {
|
|
259
|
+
get ref() {
|
|
260
|
+
return portalRef;
|
|
261
|
+
},
|
|
262
|
+
get children() {
|
|
263
|
+
return createMemo(() => createComponent(FloatingPanel, mergeProps(others, {
|
|
264
|
+
get setElement() {
|
|
265
|
+
return setElement;
|
|
266
|
+
},
|
|
267
|
+
get element() {
|
|
268
|
+
return element;
|
|
269
|
+
},
|
|
270
|
+
get forwardRef() {
|
|
271
|
+
return local.ref;
|
|
272
|
+
},
|
|
273
|
+
get fx() {
|
|
274
|
+
return local.fx;
|
|
275
|
+
},
|
|
276
|
+
get style() {
|
|
277
|
+
return local.style;
|
|
278
|
+
},
|
|
279
|
+
get children() {
|
|
280
|
+
return local.children ?? createMemo(() => createComponent(DateRangePickerCalendar, {}));
|
|
281
|
+
}
|
|
282
|
+
})));
|
|
283
|
+
}
|
|
284
|
+
}));
|
|
285
|
+
}
|
|
286
|
+
}));
|
|
195
287
|
}
|
|
288
|
+
/** Inner panel — floating hooks run inside the portal. */
|
|
196
289
|
function FloatingPanel(props) {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
290
|
+
const ctx = useDateRangePickerContext();
|
|
291
|
+
const position = createFloatingPosition(ctx.triggerRef, props.element, {
|
|
292
|
+
placement: ctx.placement,
|
|
293
|
+
offset: ctx.offset
|
|
294
|
+
});
|
|
295
|
+
createDismissableLayer(props.element, {
|
|
296
|
+
shouldExcludeTarget: (target) => {
|
|
297
|
+
const trigger = ctx.triggerRef();
|
|
298
|
+
return !!trigger && (trigger === target || trigger.contains(target));
|
|
299
|
+
},
|
|
300
|
+
onDismiss: () => ctx.setOpen(false)
|
|
301
|
+
});
|
|
302
|
+
createFocusScope(props.element, {
|
|
303
|
+
trap: false,
|
|
304
|
+
autoFocus: true,
|
|
305
|
+
restoreFocus: true
|
|
306
|
+
});
|
|
307
|
+
createRenderEffect(() => {
|
|
308
|
+
const el = props.element();
|
|
309
|
+
if (!el) return;
|
|
310
|
+
el.style.position = "absolute";
|
|
311
|
+
el.style.left = `${Math.round(position.x())}px`;
|
|
312
|
+
el.style.top = `${Math.round(position.y())}px`;
|
|
313
|
+
});
|
|
314
|
+
const setRef = (node) => {
|
|
315
|
+
props.setElement(node);
|
|
316
|
+
handleRef(props.forwardRef, node);
|
|
317
|
+
};
|
|
318
|
+
return (() => {
|
|
319
|
+
const _el$ = createNativeElement("div");
|
|
320
|
+
spread({
|
|
321
|
+
element: _el$,
|
|
322
|
+
props: mergeProps(fxProps(() => props.fx, () => props.style), {
|
|
323
|
+
ref: setRef,
|
|
324
|
+
role: "dialog",
|
|
325
|
+
id: () => ctx.ids.content,
|
|
326
|
+
"aria-label": "Calendar",
|
|
327
|
+
"data-date-picker-content": "",
|
|
328
|
+
"data-placement": () => position.placement(),
|
|
329
|
+
tabindex: -1,
|
|
330
|
+
onKeyDown: (e) => {
|
|
331
|
+
if (e.key === "Escape") {
|
|
332
|
+
e.stopPropagation();
|
|
333
|
+
ctx.setOpen(false);
|
|
334
|
+
ctx.triggerRef()?.querySelector("[data-date-picker-trigger]")?.focus();
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
})
|
|
338
|
+
});
|
|
339
|
+
insert(_el$, props.children, null);
|
|
340
|
+
return _el$;
|
|
341
|
+
})();
|
|
236
342
|
}
|
|
343
|
+
/** Default range calendar inside the popover; closes when a range completes. */
|
|
237
344
|
function DateRangePickerCalendar() {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
345
|
+
const ctx = useDateRangePickerContext();
|
|
346
|
+
return createMemo(() => createComponent(RangeCalendar, {
|
|
347
|
+
get value() {
|
|
348
|
+
return ctx.value;
|
|
349
|
+
},
|
|
350
|
+
get onChange() {
|
|
351
|
+
return (range) => {
|
|
352
|
+
ctx.selectRange(range);
|
|
353
|
+
if (range) ctx.setOpen(false);
|
|
354
|
+
};
|
|
355
|
+
},
|
|
356
|
+
get locale() {
|
|
357
|
+
return ctx.locale;
|
|
358
|
+
},
|
|
359
|
+
get minValue() {
|
|
360
|
+
return ctx.minValue;
|
|
361
|
+
},
|
|
362
|
+
get maxValue() {
|
|
363
|
+
return ctx.maxValue;
|
|
364
|
+
},
|
|
365
|
+
get isDateUnavailable() {
|
|
366
|
+
return ctx.isDateUnavailable;
|
|
367
|
+
},
|
|
368
|
+
get "data-date-picker-calendar"() {
|
|
369
|
+
return "";
|
|
370
|
+
},
|
|
371
|
+
get children() {
|
|
372
|
+
return [createMemo(() => createComponent(CalendarHeader, { get children() {
|
|
373
|
+
return [
|
|
374
|
+
createMemo(() => createComponent(CalendarPrevButton, { get children() {
|
|
375
|
+
return "‹";
|
|
376
|
+
} })),
|
|
377
|
+
createMemo(() => createComponent(CalendarHeading, {})),
|
|
378
|
+
createMemo(() => createComponent(CalendarNextButton, { get children() {
|
|
379
|
+
return "›";
|
|
380
|
+
} }))
|
|
381
|
+
];
|
|
382
|
+
} })), createMemo(() => createComponent(CalendarGrid, {}))];
|
|
383
|
+
}
|
|
384
|
+
}));
|
|
265
385
|
}
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
DateRangePickerCalendar,
|
|
269
|
-
DateRangePickerContent,
|
|
270
|
-
DateRangePickerField,
|
|
271
|
-
DateRangePickerLabel,
|
|
272
|
-
DateRangePickerTrigger,
|
|
273
|
-
useDateRangePickerContext
|
|
274
|
-
};
|
|
386
|
+
//#endregion
|
|
387
|
+
export { DateRangePicker, DateRangePickerCalendar, DateRangePickerContent, DateRangePickerField, DateRangePickerLabel, DateRangePickerTrigger, useDateRangePickerContext };
|