expo-2k-datetime-picker 1.0.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.
Files changed (96) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +267 -0
  3. package/android/build.gradle +18 -0
  4. package/android/src/main/AndroidManifest.xml +2 -0
  5. package/android/src/main/java/expo/modules/calendar2k/Calendar2kModule.kt +15 -0
  6. package/android/src/main/java/expo/modules/calendar2k/Calendar2kView.kt +26 -0
  7. package/build/Calendar2k.types.d.ts +38 -0
  8. package/build/Calendar2k.types.js +2 -0
  9. package/build/Calendar2kModule.d.ts +8 -0
  10. package/build/Calendar2kModule.js +10 -0
  11. package/build/Calendar2kModule.web.d.ts +6 -0
  12. package/build/Calendar2kModule.web.js +26 -0
  13. package/build/Calendar2kView.d.ts +4 -0
  14. package/build/Calendar2kView.js +366 -0
  15. package/build/Calendar2kView.web.d.ts +3 -0
  16. package/build/Calendar2kView.web.js +49 -0
  17. package/build/assets/assets/images/calendar.png +0 -0
  18. package/build/assets/assets/images/chevron-left.png +0 -0
  19. package/build/assets/assets/images/chevron-right.png +0 -0
  20. package/build/assets/assets/images/clock.png +0 -0
  21. package/build/assets/assets/images/swipe.png +0 -0
  22. package/build/assets/images/calendar.png +0 -0
  23. package/build/assets/images/chevron-left.png +0 -0
  24. package/build/assets/images/chevron-right.png +0 -0
  25. package/build/assets/images/clock.png +0 -0
  26. package/build/assets/images/swipe.png +0 -0
  27. package/build/components/ArrowButton.d.ts +8 -0
  28. package/build/components/ArrowButton.js +19 -0
  29. package/build/components/Backdrop.d.ts +5 -0
  30. package/build/components/Backdrop.js +25 -0
  31. package/build/components/DayLabel.d.ts +6 -0
  32. package/build/components/DayLabel.js +16 -0
  33. package/build/components/Icon.d.ts +6 -0
  34. package/build/components/Icon.js +16 -0
  35. package/build/components/SwipeIcon.d.ts +5 -0
  36. package/build/components/SwipeIcon.js +8 -0
  37. package/build/components/Time.d.ts +11 -0
  38. package/build/components/Time.js +95 -0
  39. package/build/components/TimeView.d.ts +10 -0
  40. package/build/components/TimeView.js +25 -0
  41. package/build/hooks/useCalendarDisclose.d.ts +4 -0
  42. package/build/hooks/useCalendarDisclose.js +9 -0
  43. package/build/libs/format.d.ts +4 -0
  44. package/build/libs/format.js +52 -0
  45. package/build/libs/formatNb.d.ts +1 -0
  46. package/build/libs/formatNb.js +6 -0
  47. package/build/libs/getDayMatrix.d.ts +1 -0
  48. package/build/libs/getDayMatrix.js +74 -0
  49. package/build/libs/getStatus.d.ts +14 -0
  50. package/build/libs/getStatus.js +37 -0
  51. package/build/libs/getStyle.d.ts +14 -0
  52. package/build/libs/getStyle.js +35 -0
  53. package/build/libs/isActive.d.ts +8 -0
  54. package/build/libs/isActive.js +17 -0
  55. package/build/libs/isToday.d.ts +1 -0
  56. package/build/libs/isToday.js +9 -0
  57. package/build/libs/resetTime.d.ts +1 -0
  58. package/build/libs/resetTime.js +6 -0
  59. package/build/libs/toHexColor.d.ts +1 -0
  60. package/build/libs/toHexColor.js +13 -0
  61. package/build/ui/index.d.ts +15 -0
  62. package/build/ui/index.js +35 -0
  63. package/expo-module.config.json +9 -0
  64. package/ios/Calendar2k.podspec +23 -0
  65. package/ios/Calendar2kModule.swift +12 -0
  66. package/ios/Calendar2kView.swift +18 -0
  67. package/package.json +53 -0
  68. package/src/Calendar2k.types.ts +40 -0
  69. package/src/Calendar2kModule.ts +9 -0
  70. package/src/Calendar2kModule.web.ts +7 -0
  71. package/src/Calendar2kView.tsx +416 -0
  72. package/src/Calendar2kView.web.tsx +19 -0
  73. package/src/assets/images/calendar.png +0 -0
  74. package/src/assets/images/chevron-left.png +0 -0
  75. package/src/assets/images/chevron-right.png +0 -0
  76. package/src/assets/images/clock.png +0 -0
  77. package/src/assets/images/swipe.png +0 -0
  78. package/src/components/ArrowButton.tsx +40 -0
  79. package/src/components/Backdrop.tsx +31 -0
  80. package/src/components/DayLabel.tsx +20 -0
  81. package/src/components/Icon.tsx +24 -0
  82. package/src/components/SwipeIcon.tsx +13 -0
  83. package/src/components/Time.tsx +93 -0
  84. package/src/components/TimeView.tsx +64 -0
  85. package/src/hooks/useCalendarDisclose.ts +9 -0
  86. package/src/libs/format.ts +57 -0
  87. package/src/libs/formatNb.ts +3 -0
  88. package/src/libs/getDayMatrix.ts +73 -0
  89. package/src/libs/getStatus.ts +47 -0
  90. package/src/libs/getStyle.ts +53 -0
  91. package/src/libs/isActive.ts +20 -0
  92. package/src/libs/isToday.ts +9 -0
  93. package/src/libs/resetTime.ts +3 -0
  94. package/src/libs/toHexColor.ts +13 -0
  95. package/src/ui/index.tsx +51 -0
  96. package/tsconfig.json +22 -0
@@ -0,0 +1,366 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
47
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
48
+ return new (P || (P = Promise))(function (resolve, reject) {
49
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
50
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
51
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
52
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
53
+ });
54
+ };
55
+ var __generator = (this && this.__generator) || function (thisArg, body) {
56
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
57
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
58
+ function verb(n) { return function (v) { return step([n, v]); }; }
59
+ function step(op) {
60
+ if (f) throw new TypeError("Generator is already executing.");
61
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
62
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
63
+ if (y = 0, t) op = [op[0] & 2, t.value];
64
+ switch (op[0]) {
65
+ case 0: case 1: t = op; break;
66
+ case 4: _.label++; return { value: op[1], done: false };
67
+ case 5: _.label++; y = op[1]; op = [0]; continue;
68
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
69
+ default:
70
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
71
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
72
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
73
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
74
+ if (t[2]) _.ops.pop();
75
+ _.trys.pop(); continue;
76
+ }
77
+ op = body.call(thisArg, _);
78
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
79
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
80
+ }
81
+ };
82
+ var __importDefault = (this && this.__importDefault) || function (mod) {
83
+ return (mod && mod.__esModule) ? mod : { "default": mod };
84
+ };
85
+ Object.defineProperty(exports, "__esModule", { value: true });
86
+ exports.default = Calendar2kView;
87
+ var React = __importStar(require("react"));
88
+ var react_1 = require("react");
89
+ var react_native_1 = require("react-native");
90
+ var react_native_safe_area_context_1 = require("react-native-safe-area-context");
91
+ var ArrowButton_1 = __importDefault(require("./components/ArrowButton"));
92
+ var Backdrop_1 = __importDefault(require("./components/Backdrop"));
93
+ var DayLabel_1 = __importDefault(require("./components/DayLabel"));
94
+ var Icon_1 = __importDefault(require("./components/Icon"));
95
+ var SwipeIcon_1 = __importDefault(require("./components/SwipeIcon"));
96
+ var Time_1 = __importDefault(require("./components/Time"));
97
+ var TimeView_1 = __importDefault(require("./components/TimeView"));
98
+ var useCalendarDisclose_1 = __importDefault(require("./hooks/useCalendarDisclose"));
99
+ var format_1 = require("./libs/format");
100
+ var getDayMatrix_1 = __importDefault(require("./libs/getDayMatrix"));
101
+ var getStyle_1 = __importDefault(require("./libs/getStyle"));
102
+ var isActive_1 = __importDefault(require("./libs/isActive"));
103
+ var toHexColor_1 = require("./libs/toHexColor");
104
+ var ui_1 = require("./ui");
105
+ function Calendar2kView(_a) {
106
+ var _this = this;
107
+ var onChangeDate = _a.onChangeDate, value = _a.value, locales = _a.locales, color = _a.color, min = _a.min, max = _a.max, disableDate = _a.disableDate, placeholder = _a.placeholder, customTrigger = _a.customTrigger, _b = _a.mode, mode = _b === void 0 ? "datetime" : _b, disabled = _a.disabled;
108
+ color = (0, toHexColor_1.toHexColor)(color);
109
+ var isValueDate = value instanceof Date;
110
+ var isValueTime = typeof value === "string";
111
+ var isValueRange = !!value && !isValueDate && typeof value === "object";
112
+ var isValueDateRange = isValueRange && value.start instanceof Date;
113
+ var isValueTimeRange = isValueRange && typeof value.start === "string";
114
+ if (isValueTime || isValueTimeRange)
115
+ mode = "time";
116
+ var modeHasTime = mode === null || mode === void 0 ? void 0 : mode.includes("time");
117
+ var modeHasDate = mode === null || mode === void 0 ? void 0 : mode.includes("date");
118
+ var _c = (0, useCalendarDisclose_1.default)(), isOpen = _c.isOpen, onToggle = _c.onToggle;
119
+ var _d = (0, react_1.useState)(function () {
120
+ if (!value)
121
+ return new Date();
122
+ if (isValueDate)
123
+ return value;
124
+ if (isValueTime)
125
+ return new Date("2026-05-30 ".concat(value));
126
+ if (isValueTimeRange)
127
+ return {
128
+ start: new Date("2026-05-30 ".concat(value.start)),
129
+ end: new Date("2026-05-30 ".concat(value.end)),
130
+ };
131
+ return value;
132
+ }), selectedDate = _d[0], setSelectedDate = _d[1];
133
+ var isStateDate = selectedDate instanceof Date;
134
+ var isDateRange = !isStateDate &&
135
+ typeof selectedDate === "object" &&
136
+ selectedDate.start instanceof Date;
137
+ var _e = (0, react_1.useState)(function () {
138
+ if (isStateDate)
139
+ return selectedDate;
140
+ return selectedDate.start;
141
+ }), shortDate = _e[0], setShortDate = _e[1];
142
+ var matrix = (0, getDayMatrix_1.default)(shortDate);
143
+ var weekDays = Array.from({ length: 7 }).map(function (_, i) {
144
+ return (0, format_1.getWeekDay)(new Date(2026, 4, 3 + i), locales);
145
+ });
146
+ var datetimeOuput = (0, react_1.useMemo)(function () {
147
+ if (customTrigger)
148
+ return "";
149
+ if (!value) {
150
+ if (placeholder)
151
+ return placeholder;
152
+ placeholder = "Select date and time";
153
+ if (mode === "date")
154
+ return "Select date";
155
+ if (mode === "time")
156
+ return "Select time";
157
+ return placeholder;
158
+ }
159
+ if (isValueDate)
160
+ return (0, format_1.formatDate)(value, locales, mode);
161
+ if (isValueTime)
162
+ return value;
163
+ if (isValueTimeRange)
164
+ return "".concat((0, format_1.formatDate)(new Date("2026-05-30 ".concat(value.start)), locales, mode), " - ").concat((0, format_1.formatDate)(new Date("2026-05-30 ".concat(value.end)), locales, mode));
165
+ if (isValueDateRange) {
166
+ var date = (0, format_1.formatDate)(value.start, locales, mode);
167
+ if (value.end)
168
+ date = date
169
+ .concat(" - ")
170
+ .concat((0, format_1.formatDate)(value.end, locales, mode));
171
+ return date;
172
+ }
173
+ return "Invalid date or time";
174
+ }, [value, locales, mode]);
175
+ var changeYear = function (year) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
176
+ return [2 /*return*/, setShortDate(function (v) { return new Date(year, v.getMonth(), v.getDate()); })];
177
+ }); }); };
178
+ var changeMonth = function (nb) { return function () { return __awaiter(_this, void 0, void 0, function () {
179
+ return __generator(this, function (_a) {
180
+ return [2 /*return*/, setShortDate(function (v) { return new Date(v.getFullYear(), v.getMonth() + nb, v.getDate()); })];
181
+ });
182
+ }); }; };
183
+ var selectDate = function (date) { return function () { return __awaiter(_this, void 0, void 0, function () {
184
+ var newDate, isBeforeStart;
185
+ return __generator(this, function (_a) {
186
+ newDate = new Date(date);
187
+ if (isStateDate) {
188
+ if (modeHasTime) {
189
+ newDate.setHours(selectedDate.getHours());
190
+ newDate.setMinutes(selectedDate.getMinutes());
191
+ }
192
+ setSelectedDate(newDate);
193
+ }
194
+ else {
195
+ isBeforeStart = selectedDate.start.getTime() > newDate.getTime();
196
+ if (selectedDate.end || isBeforeStart) {
197
+ if (modeHasTime) {
198
+ newDate.setHours(selectedDate.start.getHours());
199
+ newDate.setMinutes(selectedDate.start.getMinutes());
200
+ }
201
+ setSelectedDate({ start: newDate, end: undefined });
202
+ }
203
+ else {
204
+ if (modeHasTime) {
205
+ newDate.setHours(selectedDate.start.getHours());
206
+ newDate.setMinutes(selectedDate.start.getMinutes());
207
+ }
208
+ setSelectedDate(function (v) { return (__assign(__assign({}, v), { end: newDate })); });
209
+ }
210
+ }
211
+ return [2 /*return*/];
212
+ });
213
+ }); }; };
214
+ var changeTime = function (key, endTime) {
215
+ if (key === void 0) { key = "h"; }
216
+ return function (time) { return __awaiter(_this, void 0, void 0, function () {
217
+ var date, date_1, date_2;
218
+ return __generator(this, function (_a) {
219
+ if (isStateDate) {
220
+ date = new Date(selectedDate);
221
+ if (key === "h")
222
+ date.setHours(time);
223
+ if (key === "min")
224
+ date.setMinutes(time);
225
+ setSelectedDate(date);
226
+ }
227
+ else if (isDateRange) {
228
+ if (selectedDate.end && endTime) {
229
+ date_1 = new Date(selectedDate.end);
230
+ if (key === "h")
231
+ date_1.setHours(time);
232
+ if (key === "min")
233
+ date_1.setMinutes(time);
234
+ setSelectedDate(function (v) { return (__assign(__assign({}, v), { end: date_1 })); });
235
+ }
236
+ else if (selectedDate.start) {
237
+ date_2 = new Date(selectedDate.start);
238
+ if (key === "h")
239
+ date_2.setHours(time);
240
+ if (key === "min")
241
+ date_2.setMinutes(time);
242
+ setSelectedDate(function (v) { return (__assign(__assign({}, v), { start: date_2 })); });
243
+ }
244
+ }
245
+ return [2 /*return*/];
246
+ });
247
+ }); };
248
+ };
249
+ var save = function () { return __awaiter(_this, void 0, void 0, function () {
250
+ var data;
251
+ return __generator(this, function (_a) {
252
+ data = selectedDate;
253
+ if (isStateDate && isValueTime)
254
+ data = (0, format_1.formatDate)(selectedDate, locales, mode);
255
+ if (isDateRange && isValueTimeRange)
256
+ data = {
257
+ start: (0, format_1.formatDate)(selectedDate.start, locales, mode),
258
+ end: (0, format_1.formatDate)(selectedDate.end, locales, mode),
259
+ };
260
+ onChangeDate === null || onChangeDate === void 0 ? void 0 : onChangeDate(data);
261
+ onToggle();
262
+ return [2 /*return*/];
263
+ });
264
+ }); };
265
+ function Day(_a) {
266
+ var date = _a.date;
267
+ var active = (0, isActive_1.default)({ min: min, max: max, date: date, disableDate: disableDate });
268
+ var style = (0, getStyle_1.default)({
269
+ date: date,
270
+ shortDate: shortDate,
271
+ selectedDate: selectedDate,
272
+ color: color,
273
+ active: active,
274
+ });
275
+ return (<ui_1.KTouchableOpacity paddingHorizontal={16} paddingVertical={10} alignItems="center" justifyContent="center" nativeProps={{ onPress: selectDate(date), disabled: !active }} {...style.touchableOpacity}>
276
+ <ui_1.KText textAlign="center" fontSize={16} {...style.text}>
277
+ {date.getDate()}
278
+ </ui_1.KText>
279
+ </ui_1.KTouchableOpacity>);
280
+ }
281
+ function DayColumn(_a) {
282
+ var label = _a.label, dayNumber = _a.dayNumber;
283
+ return (<ui_1.KView rowGap={3} flex={1} alignItems="stretch">
284
+ <DayLabel_1.default color={color}>{label}</DayLabel_1.default>
285
+ <Day date={matrix[dayNumber][0]}/>
286
+ <Day date={matrix[dayNumber][1]}/>
287
+ <Day date={matrix[dayNumber][2]}/>
288
+ <Day date={matrix[dayNumber][3]}/>
289
+ <Day date={matrix[dayNumber][4]}/>
290
+ </ui_1.KView>);
291
+ }
292
+ return (<>
293
+ {customTrigger ? (customTrigger(onToggle)) : (<react_native_1.Pressable onPress={onToggle} disabled={disabled} style={{
294
+ width: "100%",
295
+ borderWidth: 1,
296
+ borderColor: "#0003",
297
+ paddingHorizontal: 16,
298
+ paddingVertical: 10,
299
+ borderRadius: 8,
300
+ backgroundColor: "white",
301
+ flexDirection: "row",
302
+ gap: 10,
303
+ alignItems: "center",
304
+ }}>
305
+ <>
306
+ <Icon_1.default mode={mode}/>
307
+ <ui_1.KText fontSize={16} color={value ? undefined : "#0007"}>
308
+ {datetimeOuput}
309
+ </ui_1.KText>
310
+ </>
311
+ </react_native_1.Pressable>)}
312
+ <react_native_1.Modal animationType="slide" visible={isOpen} transparent onRequestClose={onToggle}>
313
+ <ui_1.KView flex={1} justifyContent="flex-end">
314
+ {isOpen && <Backdrop_1.default onPress={onToggle}/>}
315
+ <react_native_safe_area_context_1.SafeAreaView style={{
316
+ minHeight: modeHasDate ? 470 : 200,
317
+ backgroundColor: "white",
318
+ padding: 20,
319
+ gap: 16,
320
+ }}>
321
+ <ui_1.KView flexDirection="row" justifyContent={modeHasTime ? "space-between" : "flex-end"} alignItems="center">
322
+ {modeHasTime && (<ui_1.KView flexDirection="row" justifyContent="space-between" alignItems="center" gap={8}>
323
+ <TimeView_1.default date={isStateDate ? selectedDate : selectedDate.start} onChangeHours={changeTime("h")} onChangeMinutes={changeTime("min")} showDate={modeHasDate} color={color}/>
324
+ {(selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.end) && (<>
325
+ <ui_1.KView width={10} borderWidth={2} borderColor={color}/>
326
+ <TimeView_1.default date={selectedDate.end} onChangeHours={changeTime("h", true)} onChangeMinutes={changeTime("min", true)} showDate={modeHasDate} color={color}/>
327
+ </>)}
328
+ <SwipeIcon_1.default color={color}/>
329
+ </ui_1.KView>)}
330
+ <ui_1.KTouchableOpacity nativeProps={{ onPress: save }} alignItems="center" justifyContent="center" borderWidth={3} paddingHorizontal={14} paddingVertical={14} borderColor={color}>
331
+ <ui_1.KText fontSize={20} fontWeight="bold" color={color}>
332
+ OK
333
+ </ui_1.KText>
334
+ </ui_1.KTouchableOpacity>
335
+ </ui_1.KView>
336
+ <ui_1.KView borderTopWidth={1} width="100%" borderColor={"".concat(color, "11")}/>
337
+ {modeHasDate && (<>
338
+ <ui_1.KView flexDirection="row" justifyContent="space-between" alignItems="center">
339
+ <ArrowButton_1.default color={color} onPress={changeMonth(-1)} direction="left"/>
340
+ <ui_1.KView flexDirection="row" alignItems="center" gap={4}>
341
+ <ui_1.KText fontWeight="bold" fontSize={16} textTransform="capitalize" color={color} minWidth={100} textAlign="right">
342
+ {(0, format_1.formatMonth)(shortDate, locales)} -
343
+ </ui_1.KText>
344
+ <ui_1.KView height={40} backgroundColor={"".concat(color, "11")} paddingHorizontal={10} borderColor={"".concat(color, "11")} flexDirection="row" alignItems="center">
345
+ <Time_1.default length={1000} index={shortDate.getFullYear()} height={40} start={new Date().getFullYear() - 500} onScrollEnd={changeYear} color={color}/>
346
+ <SwipeIcon_1.default color={color}/>
347
+ </ui_1.KView>
348
+ </ui_1.KView>
349
+ <ArrowButton_1.default color={color} onPress={changeMonth(1)} direction="right"/>
350
+ </ui_1.KView>
351
+ <ui_1.KView borderTopWidth={1} width="100%" borderColor={"".concat(color, "22")}/>
352
+ <ui_1.KView flexDirection="row" flex={1}>
353
+ <DayColumn label={weekDays[0]} dayNumber={6}/>
354
+ <DayColumn label={weekDays[1]} dayNumber={0}/>
355
+ <DayColumn label={weekDays[2]} dayNumber={1}/>
356
+ <DayColumn label={weekDays[3]} dayNumber={2}/>
357
+ <DayColumn label={weekDays[4]} dayNumber={3}/>
358
+ <DayColumn label={weekDays[5]} dayNumber={4}/>
359
+ <DayColumn label={weekDays[6]} dayNumber={5}/>
360
+ </ui_1.KView>
361
+ </>)}
362
+ </react_native_safe_area_context_1.SafeAreaView>
363
+ </ui_1.KView>
364
+ </react_native_1.Modal>
365
+ </>);
366
+ }
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ import { Calendar2kViewProps } from './Calendar2k.types';
3
+ export default function Calendar2kView(_props: Calendar2kViewProps): React.JSX.Element;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.default = Calendar2kView;
37
+ var React = __importStar(require("react"));
38
+ function Calendar2kView(_props) {
39
+ return (<div style={{
40
+ backgroundColor: '#aabbcc',
41
+ flex: 1,
42
+ display: 'flex',
43
+ flexDirection: 'column',
44
+ alignItems: 'center',
45
+ justifyContent: 'center',
46
+ }}>
47
+ <span>Calendar2k - native view</span>
48
+ </div>);
49
+ }
Binary file
Binary file
Binary file
@@ -0,0 +1,8 @@
1
+ import { PropsWithChildren } from "react";
2
+ type Props = {
3
+ onPress: () => void;
4
+ color?: string;
5
+ direction?: "right" | "left";
6
+ } & PropsWithChildren;
7
+ export default function ArrowButton({ onPress, children, color, direction, }: Props): import("react").JSX.Element;
8
+ export {};
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = ArrowButton;
4
+ var react_native_1 = require("react-native");
5
+ var ui_1 = require("../ui");
6
+ function ArrowButton(_a) {
7
+ var onPress = _a.onPress, children = _a.children, color = _a.color, _b = _a.direction, direction = _b === void 0 ? "right" : _b;
8
+ var source = function () {
9
+ switch (direction) {
10
+ case "right":
11
+ return require("../assets/images/chevron-right.png");
12
+ case "left":
13
+ return require("../assets/images/chevron-left.png");
14
+ }
15
+ };
16
+ return (<ui_1.KTouchableOpacity backgroundColor={color} width={35} height={35} alignItems="center" justifyContent="center" nativeProps={{ onPress: onPress }}>
17
+ <react_native_1.Image source={source()} style={{ width: 12, height: 12, tintColor: "white" }}/>
18
+ </ui_1.KTouchableOpacity>);
19
+ }
@@ -0,0 +1,5 @@
1
+ type Props = {
2
+ onPress: () => void;
3
+ };
4
+ export default function Backdrop({ onPress }: Props): import("react").JSX.Element;
5
+ export {};
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = Backdrop;
4
+ var react_1 = require("react");
5
+ var react_native_1 = require("react-native");
6
+ var ui_1 = require("../ui");
7
+ function Backdrop(_a) {
8
+ var onPress = _a.onPress;
9
+ var fadeAnim = (0, react_1.useRef)(new react_native_1.Animated.Value(0)).current;
10
+ (0, react_1.useEffect)(function () {
11
+ react_native_1.Animated.timing(fadeAnim, {
12
+ toValue: 1,
13
+ duration: 800,
14
+ delay: 100,
15
+ useNativeDriver: true,
16
+ }).start();
17
+ }, []);
18
+ return (<react_native_1.Animated.View style={{
19
+ opacity: fadeAnim,
20
+ flex: 1,
21
+ backgroundColor: "#0003",
22
+ }}>
23
+ <ui_1.KTouchableOpacity flex={1} nativeProps={{ onPress: onPress }}/>
24
+ </react_native_1.Animated.View>);
25
+ }
@@ -0,0 +1,6 @@
1
+ import React, { PropsWithChildren } from "react";
2
+ type Props = {
3
+ color?: string;
4
+ } & PropsWithChildren;
5
+ export default function DayLabel({ children, color }: Props): React.JSX.Element;
6
+ export {};
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = DayLabel;
7
+ var react_1 = __importDefault(require("react"));
8
+ var ui_1 = require("../ui");
9
+ function DayLabel(_a) {
10
+ var children = _a.children, color = _a.color;
11
+ return (<ui_1.KView padding={4}>
12
+ <ui_1.KText textAlign="center" fontWeight="bold" textTransform="uppercase" color={color}>
13
+ {children}
14
+ </ui_1.KText>
15
+ </ui_1.KView>);
16
+ }
@@ -0,0 +1,6 @@
1
+ type Props = {
2
+ color?: string;
3
+ mode?: "date" | "time" | "datetime";
4
+ };
5
+ export default function Icon({ color, mode }: Props): import("react").JSX.Element;
6
+ export {};
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = Icon;
4
+ var react_native_1 = require("react-native");
5
+ function Icon(_a) {
6
+ var color = _a.color, mode = _a.mode;
7
+ var source = function () {
8
+ switch (mode) {
9
+ case "time":
10
+ return require("../assets/images/clock.png");
11
+ default:
12
+ return require("../assets/images/calendar.png");
13
+ }
14
+ };
15
+ return (<react_native_1.Image source={source()} style={{ width: 25, height: 25, tintColor: "#A1A1A1" }}/>);
16
+ }
@@ -0,0 +1,5 @@
1
+ type Props = {
2
+ color?: string;
3
+ };
4
+ export default function SwipeIcon({ color }: Props): import("react").JSX.Element;
5
+ export {};
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = SwipeIcon;
4
+ var react_native_1 = require("react-native");
5
+ function SwipeIcon(_a) {
6
+ var color = _a.color;
7
+ return (<react_native_1.Image source={require("../assets/images/swipe.png")} style={{ width: 30, height: 30, tintColor: color }}/>);
8
+ }
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ export default function Time({ length, onScrollEnd, color, index, height, start, }: Props): React.JSX.Element;
3
+ type Props = {
4
+ length: number;
5
+ index?: number;
6
+ onScrollEnd?: (index: number) => void;
7
+ height?: number;
8
+ start?: number;
9
+ color?: string;
10
+ };
11
+ export {};