@vuu-ui/vuu-utils 0.13.29 → 0.13.30
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/cjs/packages/vuu-utils/src/date/date-utils.js +19 -0
- package/cjs/packages/vuu-utils/src/date/date-utils.js.map +1 -1
- package/cjs/packages/vuu-utils/src/index.js +2 -0
- package/cjs/packages/vuu-utils/src/index.js.map +1 -1
- package/esm/packages/vuu-utils/src/date/date-utils.js +18 -1
- package/esm/packages/vuu-utils/src/date/date-utils.js.map +1 -1
- package/esm/packages/vuu-utils/src/index.js +1 -1
- package/package.json +6 -6
- package/types/date/date-utils.d.ts +3 -0
- package/types/date/index.d.ts +1 -1
|
@@ -18,6 +18,23 @@ const validTimePattern = /(?:[0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]/;
|
|
|
18
18
|
const stringIsTimeShaped = (val) => validTimeShape.test(val);
|
|
19
19
|
const stringIsValidTime = (val) => validTimePattern.test(val);
|
|
20
20
|
const stringIsInvalidTime = (val) => stringIsTimeShaped(val) && !stringIsValidTime(val);
|
|
21
|
+
const TIME_PATTERN = /^[01][0-9]:[0-5][0-9]:[0-5][0-9]$/;
|
|
22
|
+
const isValidTimeString = (value) => typeof value === "string" && TIME_PATTERN.test(value);
|
|
23
|
+
function asTimeString(value, allowUndefined = false) {
|
|
24
|
+
if (value === void 0) {
|
|
25
|
+
if (allowUndefined) {
|
|
26
|
+
return value;
|
|
27
|
+
} else {
|
|
28
|
+
throw Error("[date-utils] asTimeString, value cannot be undefined");
|
|
29
|
+
}
|
|
30
|
+
} else if (isValidTimeString(value)) {
|
|
31
|
+
return value;
|
|
32
|
+
} else {
|
|
33
|
+
throw Error(
|
|
34
|
+
`[date-utils] asTimeString, value ${value} is not valid TimeString`
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
21
38
|
const padZero = (val) => `${val}`.padStart(2, "0");
|
|
22
39
|
class TimeImpl {
|
|
23
40
|
constructor(timeString) {
|
|
@@ -56,6 +73,8 @@ _seconds = new WeakMap();
|
|
|
56
73
|
const Time = (timeString) => new TimeImpl(timeString);
|
|
57
74
|
|
|
58
75
|
exports.Time = Time;
|
|
76
|
+
exports.asTimeString = asTimeString;
|
|
77
|
+
exports.isValidTimeString = isValidTimeString;
|
|
59
78
|
exports.stringIsInvalidTime = stringIsInvalidTime;
|
|
60
79
|
exports.stringIsTimeShaped = stringIsTimeShaped;
|
|
61
80
|
exports.stringIsValidTime = stringIsValidTime;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-utils.js","sources":["../../../../../../../packages/vuu-utils/src/date/date-utils.ts"],"sourcesContent":["import { CalendarDate } from \"@internationalized/date\";\n\nexport function toCalendarDate(d: Date) {\n return new CalendarDate(d.getFullYear(), d.getMonth() + 1, d.getDate());\n}\n\ntype oneToFive = 1 | 2 | 3 | 4 | 5;\ntype zeroToFive = 0 | oneToFive;\ntype sixToNine = 6 | 7 | 8 | 9;\ntype zeroToNine = zeroToFive | sixToNine;\ntype oneToNine = oneToFive | sixToNine;\n\ntype Hours = `${0 | 1}${zeroToNine}` | `2${0 | 1 | 2 | 3}`;\ntype Minutes = `${zeroToFive}${zeroToNine}`;\ntype Seconds = `${zeroToFive}${zeroToNine}`;\n\nexport type TimeString = `${Hours}:${Minutes}:${Seconds}`;\n\ntype YYYY = `19${zeroToNine}${zeroToNine}` | `20${zeroToNine}${zeroToNine}`;\ntype MM = `0${oneToNine}` | `1${0 | 1 | 2}`;\ntype DD = `${0}${oneToNine}` | `${1 | 2}${zeroToNine}` | `3${0 | 1}`;\n\nexport type DateStringISO = `${YYYY}-${MM}-${DD}`;\n\nconst validTimeShape = /\\d\\d:\\d\\d:\\d\\d/;\nconst validTimePattern = /(?:[0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]/;\nexport const stringIsTimeShaped = (val: string) => validTimeShape.test(val);\nexport const stringIsValidTime = (val: string): val is TimeString =>\n validTimePattern.test(val);\nexport const stringIsInvalidTime = (val: string) =>\n stringIsTimeShaped(val) && !stringIsValidTime(val);\n\nexport interface Time {\n hours: number;\n minutes: number;\n seconds: number;\n asDate: (date?: Date | DateStringISO) => Date;\n}\n\nconst padZero = (val: number) => `${val}`.padStart(2, \"0\");\n\nclass TimeImpl implements Time {\n #hours: number;\n #minutes: number;\n #seconds: number;\n constructor(timeString: TimeString) {\n const [hours, minutes, seconds] = timeString.split(\":\");\n this.#hours = parseInt(hours);\n this.#minutes = parseInt(minutes);\n this.#seconds = parseInt(seconds);\n }\n get hours() {\n return this.#hours;\n }\n get minutes() {\n return this.#minutes;\n }\n get seconds() {\n return this.#seconds;\n }\n\n asDate(date?: Date | DateStringISO) {\n const dt =\n date === undefined\n ? new Date()\n : typeof date === \"string\"\n ? new Date(date)\n : date;\n dt.setHours(this.#hours);\n dt.setMinutes(this.#minutes);\n dt.setSeconds(this.seconds);\n dt.setMilliseconds(0);\n return dt;\n }\n\n toString() {\n return `${padZero(this.#hours)}:${padZero(this.#minutes)}:${padZero(this.#seconds)}`;\n }\n}\n\nexport const Time = (timeString: TimeString): Time =>\n new TimeImpl(timeString) as Time;\n"],"names":["CalendarDate"],"mappings":";;;;;;;;;;;AAAA,IAAA,MAAA,EAAA,QAAA,EAAA,QAAA;AAEO,SAAS,eAAe,CAAS,EAAA;AACtC,EAAO,OAAA,IAAIA,iBAAa,CAAA,CAAA,CAAE,WAAY,EAAA,EAAG,CAAE,CAAA,QAAA,EAAa,GAAA,CAAA,EAAG,CAAE,CAAA,OAAA,EAAS,CAAA;AACxE;AAoBA,MAAM,cAAiB,GAAA,gBAAA;AACvB,MAAM,gBAAmB,GAAA,6CAAA;AAClB,MAAM,kBAAqB,GAAA,CAAC,GAAgB,KAAA,cAAA,CAAe,KAAK,GAAG;AACnE,MAAM,iBAAoB,GAAA,CAAC,GAChC,KAAA,gBAAA,CAAiB,KAAK,GAAG;AACd,MAAA,mBAAA,GAAsB,CAAC,GAClC,KAAA,kBAAA,CAAmB,GAAG,CAAK,IAAA,CAAC,kBAAkB,GAAG;
|
|
1
|
+
{"version":3,"file":"date-utils.js","sources":["../../../../../../../packages/vuu-utils/src/date/date-utils.ts"],"sourcesContent":["import { CalendarDate } from \"@internationalized/date\";\n\nexport function toCalendarDate(d: Date) {\n return new CalendarDate(d.getFullYear(), d.getMonth() + 1, d.getDate());\n}\n\ntype oneToFive = 1 | 2 | 3 | 4 | 5;\ntype zeroToFive = 0 | oneToFive;\ntype sixToNine = 6 | 7 | 8 | 9;\ntype zeroToNine = zeroToFive | sixToNine;\ntype oneToNine = oneToFive | sixToNine;\n\ntype Hours = `${0 | 1}${zeroToNine}` | `2${0 | 1 | 2 | 3}`;\ntype Minutes = `${zeroToFive}${zeroToNine}`;\ntype Seconds = `${zeroToFive}${zeroToNine}`;\n\nexport type TimeString = `${Hours}:${Minutes}:${Seconds}`;\n\ntype YYYY = `19${zeroToNine}${zeroToNine}` | `20${zeroToNine}${zeroToNine}`;\ntype MM = `0${oneToNine}` | `1${0 | 1 | 2}`;\ntype DD = `${0}${oneToNine}` | `${1 | 2}${zeroToNine}` | `3${0 | 1}`;\n\nexport type DateStringISO = `${YYYY}-${MM}-${DD}`;\n\nconst validTimeShape = /\\d\\d:\\d\\d:\\d\\d/;\nconst validTimePattern = /(?:[0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]/;\nexport const stringIsTimeShaped = (val: string) => validTimeShape.test(val);\nexport const stringIsValidTime = (val: string): val is TimeString =>\n validTimePattern.test(val);\nexport const stringIsInvalidTime = (val: string) =>\n stringIsTimeShaped(val) && !stringIsValidTime(val);\n\nconst TIME_PATTERN = /^[01][0-9]:[0-5][0-9]:[0-5][0-9]$/;\nexport const isValidTimeString = (value: unknown): value is TimeString =>\n typeof value === \"string\" && TIME_PATTERN.test(value);\n\nexport function asTimeString(value: unknown, allowUndefined: false): TimeString;\nexport function asTimeString(\n value: unknown,\n allowUndefined?: true,\n): TimeString | undefined;\nexport function asTimeString(\n value: unknown,\n allowUndefined = false,\n): TimeString | undefined {\n if (value === undefined) {\n if (allowUndefined) {\n return value;\n } else {\n throw Error(\"[date-utils] asTimeString, value cannot be undefined\");\n }\n } else if (isValidTimeString(value)) {\n return value;\n } else {\n throw Error(\n `[date-utils] asTimeString, value ${value} is not valid TimeString`,\n );\n }\n}\n\nexport interface Time {\n hours: number;\n minutes: number;\n seconds: number;\n asDate: (date?: Date | DateStringISO) => Date;\n}\n\nconst padZero = (val: number) => `${val}`.padStart(2, \"0\");\n\nclass TimeImpl implements Time {\n #hours: number;\n #minutes: number;\n #seconds: number;\n constructor(timeString: TimeString) {\n const [hours, minutes, seconds] = timeString.split(\":\");\n this.#hours = parseInt(hours);\n this.#minutes = parseInt(minutes);\n this.#seconds = parseInt(seconds);\n }\n get hours() {\n return this.#hours;\n }\n get minutes() {\n return this.#minutes;\n }\n get seconds() {\n return this.#seconds;\n }\n\n asDate(date?: Date | DateStringISO) {\n const dt =\n date === undefined\n ? new Date()\n : typeof date === \"string\"\n ? new Date(date)\n : date;\n dt.setHours(this.#hours);\n dt.setMinutes(this.#minutes);\n dt.setSeconds(this.seconds);\n dt.setMilliseconds(0);\n return dt;\n }\n\n toString() {\n return `${padZero(this.#hours)}:${padZero(this.#minutes)}:${padZero(this.#seconds)}`;\n }\n}\n\nexport const Time = (timeString: TimeString): Time =>\n new TimeImpl(timeString) as Time;\n"],"names":["CalendarDate"],"mappings":"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"}
|
|
@@ -238,6 +238,8 @@ exports.isDateTimePattern = types.isDateTimePattern;
|
|
|
238
238
|
exports.isTimePattern = types.isTimePattern;
|
|
239
239
|
exports.supportedDateTimePatterns = types.supportedDateTimePatterns;
|
|
240
240
|
exports.Time = dateUtils.Time;
|
|
241
|
+
exports.asTimeString = dateUtils.asTimeString;
|
|
242
|
+
exports.isValidTimeString = dateUtils.isValidTimeString;
|
|
241
243
|
exports.stringIsInvalidTime = dateUtils.stringIsInvalidTime;
|
|
242
244
|
exports.stringIsValidTime = dateUtils.stringIsValidTime;
|
|
243
245
|
exports.toCalendarDate = dateUtils.toCalendarDate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -16,6 +16,23 @@ const validTimePattern = /(?:[0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]/;
|
|
|
16
16
|
const stringIsTimeShaped = (val) => validTimeShape.test(val);
|
|
17
17
|
const stringIsValidTime = (val) => validTimePattern.test(val);
|
|
18
18
|
const stringIsInvalidTime = (val) => stringIsTimeShaped(val) && !stringIsValidTime(val);
|
|
19
|
+
const TIME_PATTERN = /^[01][0-9]:[0-5][0-9]:[0-5][0-9]$/;
|
|
20
|
+
const isValidTimeString = (value) => typeof value === "string" && TIME_PATTERN.test(value);
|
|
21
|
+
function asTimeString(value, allowUndefined = false) {
|
|
22
|
+
if (value === void 0) {
|
|
23
|
+
if (allowUndefined) {
|
|
24
|
+
return value;
|
|
25
|
+
} else {
|
|
26
|
+
throw Error("[date-utils] asTimeString, value cannot be undefined");
|
|
27
|
+
}
|
|
28
|
+
} else if (isValidTimeString(value)) {
|
|
29
|
+
return value;
|
|
30
|
+
} else {
|
|
31
|
+
throw Error(
|
|
32
|
+
`[date-utils] asTimeString, value ${value} is not valid TimeString`
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
19
36
|
const padZero = (val) => `${val}`.padStart(2, "0");
|
|
20
37
|
class TimeImpl {
|
|
21
38
|
constructor(timeString) {
|
|
@@ -53,5 +70,5 @@ _minutes = new WeakMap();
|
|
|
53
70
|
_seconds = new WeakMap();
|
|
54
71
|
const Time = (timeString) => new TimeImpl(timeString);
|
|
55
72
|
|
|
56
|
-
export { Time, stringIsInvalidTime, stringIsTimeShaped, stringIsValidTime, toCalendarDate };
|
|
73
|
+
export { Time, asTimeString, isValidTimeString, stringIsInvalidTime, stringIsTimeShaped, stringIsValidTime, toCalendarDate };
|
|
57
74
|
//# sourceMappingURL=date-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-utils.js","sources":["../../../../../../../packages/vuu-utils/src/date/date-utils.ts"],"sourcesContent":["import { CalendarDate } from \"@internationalized/date\";\n\nexport function toCalendarDate(d: Date) {\n return new CalendarDate(d.getFullYear(), d.getMonth() + 1, d.getDate());\n}\n\ntype oneToFive = 1 | 2 | 3 | 4 | 5;\ntype zeroToFive = 0 | oneToFive;\ntype sixToNine = 6 | 7 | 8 | 9;\ntype zeroToNine = zeroToFive | sixToNine;\ntype oneToNine = oneToFive | sixToNine;\n\ntype Hours = `${0 | 1}${zeroToNine}` | `2${0 | 1 | 2 | 3}`;\ntype Minutes = `${zeroToFive}${zeroToNine}`;\ntype Seconds = `${zeroToFive}${zeroToNine}`;\n\nexport type TimeString = `${Hours}:${Minutes}:${Seconds}`;\n\ntype YYYY = `19${zeroToNine}${zeroToNine}` | `20${zeroToNine}${zeroToNine}`;\ntype MM = `0${oneToNine}` | `1${0 | 1 | 2}`;\ntype DD = `${0}${oneToNine}` | `${1 | 2}${zeroToNine}` | `3${0 | 1}`;\n\nexport type DateStringISO = `${YYYY}-${MM}-${DD}`;\n\nconst validTimeShape = /\\d\\d:\\d\\d:\\d\\d/;\nconst validTimePattern = /(?:[0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]/;\nexport const stringIsTimeShaped = (val: string) => validTimeShape.test(val);\nexport const stringIsValidTime = (val: string): val is TimeString =>\n validTimePattern.test(val);\nexport const stringIsInvalidTime = (val: string) =>\n stringIsTimeShaped(val) && !stringIsValidTime(val);\n\nexport interface Time {\n hours: number;\n minutes: number;\n seconds: number;\n asDate: (date?: Date | DateStringISO) => Date;\n}\n\nconst padZero = (val: number) => `${val}`.padStart(2, \"0\");\n\nclass TimeImpl implements Time {\n #hours: number;\n #minutes: number;\n #seconds: number;\n constructor(timeString: TimeString) {\n const [hours, minutes, seconds] = timeString.split(\":\");\n this.#hours = parseInt(hours);\n this.#minutes = parseInt(minutes);\n this.#seconds = parseInt(seconds);\n }\n get hours() {\n return this.#hours;\n }\n get minutes() {\n return this.#minutes;\n }\n get seconds() {\n return this.#seconds;\n }\n\n asDate(date?: Date | DateStringISO) {\n const dt =\n date === undefined\n ? new Date()\n : typeof date === \"string\"\n ? new Date(date)\n : date;\n dt.setHours(this.#hours);\n dt.setMinutes(this.#minutes);\n dt.setSeconds(this.seconds);\n dt.setMilliseconds(0);\n return dt;\n }\n\n toString() {\n return `${padZero(this.#hours)}:${padZero(this.#minutes)}:${padZero(this.#seconds)}`;\n }\n}\n\nexport const Time = (timeString: TimeString): Time =>\n new TimeImpl(timeString) as Time;\n"],"names":[],"mappings":";;;;;;;;;AAAA,IAAA,MAAA,EAAA,QAAA,EAAA,QAAA;AAEO,SAAS,eAAe,CAAS,EAAA;AACtC,EAAO,OAAA,IAAI,YAAa,CAAA,CAAA,CAAE,WAAY,EAAA,EAAG,CAAE,CAAA,QAAA,EAAa,GAAA,CAAA,EAAG,CAAE,CAAA,OAAA,EAAS,CAAA;AACxE;AAoBA,MAAM,cAAiB,GAAA,gBAAA;AACvB,MAAM,gBAAmB,GAAA,6CAAA;AAClB,MAAM,kBAAqB,GAAA,CAAC,GAAgB,KAAA,cAAA,CAAe,KAAK,GAAG;AACnE,MAAM,iBAAoB,GAAA,CAAC,GAChC,KAAA,gBAAA,CAAiB,KAAK,GAAG;AACd,MAAA,mBAAA,GAAsB,CAAC,GAClC,KAAA,kBAAA,CAAmB,GAAG,CAAK,IAAA,CAAC,kBAAkB,GAAG;
|
|
1
|
+
{"version":3,"file":"date-utils.js","sources":["../../../../../../../packages/vuu-utils/src/date/date-utils.ts"],"sourcesContent":["import { CalendarDate } from \"@internationalized/date\";\n\nexport function toCalendarDate(d: Date) {\n return new CalendarDate(d.getFullYear(), d.getMonth() + 1, d.getDate());\n}\n\ntype oneToFive = 1 | 2 | 3 | 4 | 5;\ntype zeroToFive = 0 | oneToFive;\ntype sixToNine = 6 | 7 | 8 | 9;\ntype zeroToNine = zeroToFive | sixToNine;\ntype oneToNine = oneToFive | sixToNine;\n\ntype Hours = `${0 | 1}${zeroToNine}` | `2${0 | 1 | 2 | 3}`;\ntype Minutes = `${zeroToFive}${zeroToNine}`;\ntype Seconds = `${zeroToFive}${zeroToNine}`;\n\nexport type TimeString = `${Hours}:${Minutes}:${Seconds}`;\n\ntype YYYY = `19${zeroToNine}${zeroToNine}` | `20${zeroToNine}${zeroToNine}`;\ntype MM = `0${oneToNine}` | `1${0 | 1 | 2}`;\ntype DD = `${0}${oneToNine}` | `${1 | 2}${zeroToNine}` | `3${0 | 1}`;\n\nexport type DateStringISO = `${YYYY}-${MM}-${DD}`;\n\nconst validTimeShape = /\\d\\d:\\d\\d:\\d\\d/;\nconst validTimePattern = /(?:[0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]/;\nexport const stringIsTimeShaped = (val: string) => validTimeShape.test(val);\nexport const stringIsValidTime = (val: string): val is TimeString =>\n validTimePattern.test(val);\nexport const stringIsInvalidTime = (val: string) =>\n stringIsTimeShaped(val) && !stringIsValidTime(val);\n\nconst TIME_PATTERN = /^[01][0-9]:[0-5][0-9]:[0-5][0-9]$/;\nexport const isValidTimeString = (value: unknown): value is TimeString =>\n typeof value === \"string\" && TIME_PATTERN.test(value);\n\nexport function asTimeString(value: unknown, allowUndefined: false): TimeString;\nexport function asTimeString(\n value: unknown,\n allowUndefined?: true,\n): TimeString | undefined;\nexport function asTimeString(\n value: unknown,\n allowUndefined = false,\n): TimeString | undefined {\n if (value === undefined) {\n if (allowUndefined) {\n return value;\n } else {\n throw Error(\"[date-utils] asTimeString, value cannot be undefined\");\n }\n } else if (isValidTimeString(value)) {\n return value;\n } else {\n throw Error(\n `[date-utils] asTimeString, value ${value} is not valid TimeString`,\n );\n }\n}\n\nexport interface Time {\n hours: number;\n minutes: number;\n seconds: number;\n asDate: (date?: Date | DateStringISO) => Date;\n}\n\nconst padZero = (val: number) => `${val}`.padStart(2, \"0\");\n\nclass TimeImpl implements Time {\n #hours: number;\n #minutes: number;\n #seconds: number;\n constructor(timeString: TimeString) {\n const [hours, minutes, seconds] = timeString.split(\":\");\n this.#hours = parseInt(hours);\n this.#minutes = parseInt(minutes);\n this.#seconds = parseInt(seconds);\n }\n get hours() {\n return this.#hours;\n }\n get minutes() {\n return this.#minutes;\n }\n get seconds() {\n return this.#seconds;\n }\n\n asDate(date?: Date | DateStringISO) {\n const dt =\n date === undefined\n ? new Date()\n : typeof date === \"string\"\n ? new Date(date)\n : date;\n dt.setHours(this.#hours);\n dt.setMinutes(this.#minutes);\n dt.setSeconds(this.seconds);\n dt.setMilliseconds(0);\n return dt;\n }\n\n toString() {\n return `${padZero(this.#hours)}:${padZero(this.#minutes)}:${padZero(this.#seconds)}`;\n }\n}\n\nexport const Time = (timeString: TimeString): Time =>\n new TimeImpl(timeString) as Time;\n"],"names":[],"mappings":";;;;;;;;;AAAA,IAAA,MAAA,EAAA,QAAA,EAAA,QAAA;AAEO,SAAS,eAAe,CAAS,EAAA;AACtC,EAAO,OAAA,IAAI,YAAa,CAAA,CAAA,CAAE,WAAY,EAAA,EAAG,CAAE,CAAA,QAAA,EAAa,GAAA,CAAA,EAAG,CAAE,CAAA,OAAA,EAAS,CAAA;AACxE;AAoBA,MAAM,cAAiB,GAAA,gBAAA;AACvB,MAAM,gBAAmB,GAAA,6CAAA;AAClB,MAAM,kBAAqB,GAAA,CAAC,GAAgB,KAAA,cAAA,CAAe,KAAK,GAAG;AACnE,MAAM,iBAAoB,GAAA,CAAC,GAChC,KAAA,gBAAA,CAAiB,KAAK,GAAG;AACd,MAAA,mBAAA,GAAsB,CAAC,GAClC,KAAA,kBAAA,CAAmB,GAAG,CAAK,IAAA,CAAC,kBAAkB,GAAG;AAEnD,MAAM,YAAe,GAAA,mCAAA;AACR,MAAA,iBAAA,GAAoB,CAAC,KAChC,KAAA,OAAO,UAAU,QAAY,IAAA,YAAA,CAAa,KAAK,KAAK;AAOtC,SAAA,YAAA,CACd,KACA,EAAA,cAAA,GAAiB,KACO,EAAA;AACxB,EAAA,IAAI,UAAU,KAAW,CAAA,EAAA;AACvB,IAAA,IAAI,cAAgB,EAAA;AAClB,MAAO,OAAA,KAAA;AAAA,KACF,MAAA;AACL,MAAA,MAAM,MAAM,sDAAsD,CAAA;AAAA;AACpE,GACF,MAAA,IAAW,iBAAkB,CAAA,KAAK,CAAG,EAAA;AACnC,IAAO,OAAA,KAAA;AAAA,GACF,MAAA;AACL,IAAM,MAAA,KAAA;AAAA,MACJ,oCAAoC,KAAK,CAAA,wBAAA;AAAA,KAC3C;AAAA;AAEJ;AASA,MAAM,OAAA,GAAU,CAAC,GAAgB,KAAA,CAAA,EAAG,GAAG,CAAG,CAAA,CAAA,QAAA,CAAS,GAAG,GAAG,CAAA;AAEzD,MAAM,QAAyB,CAAA;AAAA,EAI7B,YAAY,UAAwB,EAAA;AAHpC,IAAA,YAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,QAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,QAAA,CAAA;AAEE,IAAA,MAAM,CAAC,KAAO,EAAA,OAAA,EAAS,OAAO,CAAI,GAAA,UAAA,CAAW,MAAM,GAAG,CAAA;AACtD,IAAK,YAAA,CAAA,IAAA,EAAA,MAAA,EAAS,SAAS,KAAK,CAAA,CAAA;AAC5B,IAAK,YAAA,CAAA,IAAA,EAAA,QAAA,EAAW,SAAS,OAAO,CAAA,CAAA;AAChC,IAAK,YAAA,CAAA,IAAA,EAAA,QAAA,EAAW,SAAS,OAAO,CAAA,CAAA;AAAA;AAClC,EACA,IAAI,KAAQ,GAAA;AACV,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,MAAA,CAAA;AAAA;AACd,EACA,IAAI,OAAU,GAAA;AACZ,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,QAAA,CAAA;AAAA;AACd,EACA,IAAI,OAAU,GAAA;AACZ,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,QAAA,CAAA;AAAA;AACd,EAEA,OAAO,IAA6B,EAAA;AAClC,IAAA,MAAM,EACJ,GAAA,IAAA,KAAS,KACL,CAAA,mBAAA,IAAI,IAAK,EAAA,GACT,OAAO,IAAA,KAAS,QACd,GAAA,IAAI,IAAK,CAAA,IAAI,CACb,GAAA,IAAA;AACR,IAAG,EAAA,CAAA,QAAA,CAAS,mBAAK,MAAM,CAAA,CAAA;AACvB,IAAG,EAAA,CAAA,UAAA,CAAW,mBAAK,QAAQ,CAAA,CAAA;AAC3B,IAAG,EAAA,CAAA,UAAA,CAAW,KAAK,OAAO,CAAA;AAC1B,IAAA,EAAA,CAAG,gBAAgB,CAAC,CAAA;AACpB,IAAO,OAAA,EAAA;AAAA;AACT,EAEA,QAAW,GAAA;AACT,IAAA,OAAO,CAAG,EAAA,OAAA,CAAQ,YAAK,CAAA,IAAA,EAAA,MAAA,CAAM,CAAC,CAAI,CAAA,EAAA,OAAA,CAAQ,YAAK,CAAA,IAAA,EAAA,QAAA,CAAQ,CAAC,CAAA,CAAA,EAAI,OAAQ,CAAA,YAAA,CAAA,IAAA,EAAK,SAAQ,CAAC,CAAA,CAAA;AAAA;AAEtF;AApCE,MAAA,GAAA,IAAA,OAAA,EAAA;AACA,QAAA,GAAA,IAAA,OAAA,EAAA;AACA,QAAA,GAAA,IAAA,OAAA,EAAA;AAoCK,MAAM,IAAO,GAAA,CAAC,UACnB,KAAA,IAAI,SAAS,UAAU;;;;"}
|
|
@@ -18,7 +18,7 @@ export { combineFilters } from './datasource/datasource-filter-utils.js';
|
|
|
18
18
|
export { NO_CONFIG_CHANGES, NoFilter, NoSort, dataSourceRowToEntity, hasBaseFilter, hasFilter, hasGroupBy, hasSort, isBaseFilterChanged, isConfigChanged, isConnectionQualityMetrics, isErrorResponse, isFilterChanged, isGroupByChanged, isTableSchemaMessage, isTypeaheadSuggestionProvider, isViewportMessage, isVisualLinkMessage, messageHasDataRows, messageHasResult, messageHasSize, vanillaConfig, withConfigDefaults } from './datasource/datasource-utils.js';
|
|
19
19
|
export { formatDate, getDateFormatter } from './date/formatter.js';
|
|
20
20
|
export { dateTimeLabelByType, isDatePattern, isDateTimePattern, isTimePattern, supportedDateTimePatterns } from './date/types.js';
|
|
21
|
-
export { Time, stringIsInvalidTime, stringIsValidTime, toCalendarDate } from './date/date-utils.js';
|
|
21
|
+
export { Time, asTimeString, isValidTimeString, stringIsInvalidTime, stringIsValidTime, toCalendarDate } from './date/date-utils.js';
|
|
22
22
|
export { dateTimePattern, defaultPatternsByType, fallbackDateTimePattern } from './date/dateTimePattern.js';
|
|
23
23
|
export { RangeMonitor } from './debug-utils.js';
|
|
24
24
|
export { FilterAggregator, applyFilterToColumns, extractFilterForColumn, isAndFilter, isCompleteFilter, isFilterClause, isFilteredColumn, isInFilter, isMultiClauseFilter, isMultiValueFilter, isNamedFilter, isOrFilter, isSingleValueFilter, isValidFilterClauseOp, stripFilterFromColumns } from './filters/filter-utils.js';
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.13.
|
|
2
|
+
"version": "0.13.30",
|
|
3
3
|
"author": "heswell",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"types": "types/index.d.ts",
|
|
6
6
|
"devDependencies": {
|
|
7
|
-
"@vuu-ui/vuu-data-types": "0.13.
|
|
8
|
-
"@vuu-ui/vuu-table-types": "0.13.
|
|
9
|
-
"@vuu-ui/vuu-filter-types": "0.13.
|
|
10
|
-
"@vuu-ui/vuu-protocol-types": "0.13.
|
|
7
|
+
"@vuu-ui/vuu-data-types": "0.13.30",
|
|
8
|
+
"@vuu-ui/vuu-table-types": "0.13.30",
|
|
9
|
+
"@vuu-ui/vuu-filter-types": "0.13.30",
|
|
10
|
+
"@vuu-ui/vuu-protocol-types": "0.13.30"
|
|
11
11
|
},
|
|
12
12
|
"peerDependencies": {
|
|
13
13
|
"@internationalized/date": "^3.0.0",
|
|
14
|
-
"@vuu-ui/vuu-filter-parser": "0.13.
|
|
14
|
+
"@vuu-ui/vuu-filter-parser": "0.13.30",
|
|
15
15
|
"clsx": "^2.0.0",
|
|
16
16
|
"react": "^19.1.0",
|
|
17
17
|
"react-dom": "^19.1.0"
|
|
@@ -16,6 +16,9 @@ export type DateStringISO = `${YYYY}-${MM}-${DD}`;
|
|
|
16
16
|
export declare const stringIsTimeShaped: (val: string) => boolean;
|
|
17
17
|
export declare const stringIsValidTime: (val: string) => val is TimeString;
|
|
18
18
|
export declare const stringIsInvalidTime: (val: string) => boolean;
|
|
19
|
+
export declare const isValidTimeString: (value: unknown) => value is TimeString;
|
|
20
|
+
export declare function asTimeString(value: unknown, allowUndefined: false): TimeString;
|
|
21
|
+
export declare function asTimeString(value: unknown, allowUndefined?: true): TimeString | undefined;
|
|
19
22
|
export interface Time {
|
|
20
23
|
hours: number;
|
|
21
24
|
minutes: number;
|
package/types/date/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from "./formatter";
|
|
2
2
|
export { dateTimeLabelByType, isDatePattern, isTimePattern, isDateTimePattern, type DatePattern, type TimePattern, type DateTimePattern, supportedDateTimePatterns, } from "./types";
|
|
3
|
-
export { type DateStringISO, toCalendarDate, stringIsInvalidTime, stringIsValidTime, Time, type TimeString, } from "./date-utils";
|
|
3
|
+
export { asTimeString, isValidTimeString, type DateStringISO, toCalendarDate, stringIsInvalidTime, stringIsValidTime, Time, type TimeString, } from "./date-utils";
|
|
4
4
|
export { dateTimePattern, defaultPatternsByType, fallbackDateTimePattern, } from "./dateTimePattern";
|