@vuu-ui/vuu-utils 0.8.14-debug → 0.8.15-debug

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/index.js CHANGED
@@ -70,7 +70,6 @@ __export(src_exports, {
70
70
  boxContainsPoint: () => boxContainsPoint,
71
71
  buildColumnMap: () => buildColumnMap,
72
72
  createEl: () => createEl,
73
- dateFormatter: () => dateFormatter,
74
73
  debounce: () => debounce,
75
74
  defaultValueFormatter: () => defaultValueFormatter,
76
75
  deselectItem: () => deselectItem,
@@ -80,6 +79,7 @@ __export(src_exports, {
80
79
  extractFilterForColumn: () => extractFilterForColumn,
81
80
  extractGroupColumn: () => extractGroupColumn,
82
81
  filterAsQuery: () => filterAsQuery,
82
+ filterValue: () => filterValue,
83
83
  findColumn: () => findColumn,
84
84
  flattenColumnGroup: () => flattenColumnGroup,
85
85
  focusFirstFocusableElement: () => focusFirstFocusableElement,
@@ -132,7 +132,6 @@ __export(src_exports, {
132
132
  isCompleteFilter: () => isCompleteFilter,
133
133
  isDataLoading: () => isDataLoading,
134
134
  isDateColumn: () => isDateColumn,
135
- isDatePattern: () => isDatePattern,
136
135
  isDateTimeColumn: () => isDateTimeColumn,
137
136
  isDateTimePattern: () => isDateTimePattern,
138
137
  isFilterClause: () => isFilterClause,
@@ -163,7 +162,6 @@ __export(src_exports, {
163
162
  isSingleValueFilter: () => isSingleValueFilter,
164
163
  isTextColumn: () => isTextColumn,
165
164
  isTimeColumn: () => isTimeColumn,
166
- isTimePattern: () => isTimePattern,
167
165
  isTypeDescriptor: () => isTypeDescriptor,
168
166
  isValidColumnAlignment: () => isValidColumnAlignment,
169
167
  isValidFilterClauseOp: () => isValidFilterClauseOp,
@@ -184,6 +182,7 @@ __export(src_exports, {
184
182
  numericFormatter: () => numericFormatter,
185
183
  partition: () => partition,
186
184
  projectUpdates: () => projectUpdates,
185
+ quotedStrings: () => quotedStrings,
187
186
  rangeNewItems: () => rangeNewItems,
188
187
  registerComponent: () => registerComponent,
189
188
  registerConfigurationEditor: () => registerConfigurationEditor,
@@ -1275,28 +1274,77 @@ function getMovingValueDirection(newValue, direction, prevValue, decimalPlaces)
1275
1274
  }
1276
1275
  }
1277
1276
 
1278
- // src/date-utils.ts
1279
- var isDatePattern = (pattern) => pattern === "dd.mm.yyyy";
1280
- var isTimePattern = (pattern) => pattern === "kk:mm:ss";
1281
- var isDateTimePattern = (pattern) => pattern !== void 0 && isDatePattern(pattern) || isTimePattern(pattern);
1282
- var leadZero = (digit) => {
1283
- return digit < 10 ? `0` + digit : digit.toString();
1284
- };
1285
- var formatDate = (date, format = "dd.mm.yyyy") => {
1286
- if (isDatePattern(format)) {
1287
- const dd = date.getDate();
1288
- const mm = date.getMonth();
1289
- const yyyy = date.getFullYear();
1290
- return `${leadZero(dd)}.${leadZero(mm + 1)}.${yyyy}`;
1291
- } else if (isTimePattern(format)) {
1292
- const hh = date.getHours();
1293
- const mm = date.getMinutes();
1294
- const ss = date.getSeconds();
1295
- return `${leadZero(hh)}:${leadZero(mm)}:${leadZero(ss)}`;
1296
- } else {
1297
- return date.toUTCString();
1277
+ // src/date/formatter.ts
1278
+ var baseTimeFormatOptions = {
1279
+ hour: "2-digit",
1280
+ minute: "2-digit",
1281
+ second: "2-digit"
1282
+ };
1283
+ var formatConfigByTimePatterns = {
1284
+ "hh:mm:ss": {
1285
+ locale: "en-GB",
1286
+ options: { ...baseTimeFormatOptions, hour12: false }
1287
+ },
1288
+ "hh:mm:ss a": {
1289
+ locale: "en-GB",
1290
+ options: { ...baseTimeFormatOptions, hour12: true }
1298
1291
  }
1299
1292
  };
1293
+ var baseDateFormatOptions = {
1294
+ day: "2-digit",
1295
+ month: "2-digit",
1296
+ year: "numeric"
1297
+ };
1298
+ var formatConfigByDatePatterns = {
1299
+ "dd.mm.yyyy": {
1300
+ locale: "en-GB",
1301
+ options: { ...baseDateFormatOptions },
1302
+ postProcessor: (s) => s.replaceAll("/", ".")
1303
+ },
1304
+ "dd/mm/yyyy": { locale: "en-GB", options: { ...baseDateFormatOptions } },
1305
+ "dd MMM yyyy": {
1306
+ locale: "en-GB",
1307
+ options: { ...baseDateFormatOptions, month: "short" }
1308
+ },
1309
+ "dd MMMM yyyy": {
1310
+ locale: "en-GB",
1311
+ options: { ...baseDateFormatOptions, month: "long" }
1312
+ },
1313
+ "mm/dd/yyyy": { locale: "en-US", options: { ...baseDateFormatOptions } },
1314
+ "MMM dd, yyyy": {
1315
+ locale: "en-US",
1316
+ options: { ...baseDateFormatOptions, month: "short" }
1317
+ },
1318
+ "MMMM dd, yyyy": {
1319
+ locale: "en-US",
1320
+ options: { ...baseDateFormatOptions, month: "long" }
1321
+ }
1322
+ };
1323
+ var formatConfigByDateTimePatterns = { ...formatConfigByDatePatterns, ...formatConfigByTimePatterns };
1324
+ function formatDate(pattern) {
1325
+ const { locale, options, postProcessor } = formatConfigByDateTimePatterns[pattern];
1326
+ const dateTimeFormat = Intl.DateTimeFormat(locale, options);
1327
+ return (d) => {
1328
+ const dateStr = dateTimeFormat.format(d);
1329
+ console.log({ dateStr });
1330
+ return postProcessor ? postProcessor(dateStr) : dateStr;
1331
+ };
1332
+ }
1333
+
1334
+ // src/date/types.ts
1335
+ var supportedDatePatterns = [
1336
+ "dd.mm.yyyy",
1337
+ "dd/mm/yyyy",
1338
+ "dd MMM yyyy",
1339
+ "dd MMMM yyyy",
1340
+ "mm/dd/yyyy",
1341
+ "MMM dd, yyyy",
1342
+ "MMMM dd, yyyy"
1343
+ ];
1344
+ var supportedTimePatterns = ["hh:mm:ss", "hh:mm:ss a"];
1345
+ var isDatePattern = (pattern) => supportedDatePatterns.includes(pattern);
1346
+ var isTimePattern = (pattern) => supportedTimePatterns.includes(pattern);
1347
+ var isDateTimePattern = (pattern) => pattern !== void 0 && (isDatePattern(pattern) || isTimePattern(pattern));
1300
1348
 
1301
1349
  // src/logging-utils.ts
1302
1350
  var logLevels = ["error", "warn", "info", "debug"];
@@ -1674,20 +1722,28 @@ function roundDecimal(value, align = Align.Right, decimals = 4, zeroPad, alignOn
1674
1722
  return integral + (fraction ? "." + fraction : "");
1675
1723
  }
1676
1724
 
1725
+ // src/date/helpers.ts
1726
+ var defaultPatternByTypes = { time: "hh:mm:ss", date: "dd.mm.yyyy" };
1727
+ function dateTimePattern(type) {
1728
+ if (isTypeDescriptor(type)) {
1729
+ if (type.formatting && isDateTimePattern(type.formatting.pattern)) {
1730
+ return type.formatting.pattern;
1731
+ }
1732
+ return defaultPatternByTypes[type.name];
1733
+ } else {
1734
+ return defaultPatternByTypes[type];
1735
+ }
1736
+ }
1737
+
1677
1738
  // src/formatting-utils.ts
1678
1739
  var DEFAULT_NUMERIC_FORMAT = {};
1679
1740
  var defaultValueFormatter = (value) => value == null ? "" : typeof value === "string" ? value : value.toString();
1680
1741
  var dateFormatter = (column) => {
1681
- const { type } = column;
1682
- let pattern = "dd.mm.yyyy";
1683
- if (isTypeDescriptor(type) && type.formatting) {
1684
- if (isDateTimePattern(type.formatting.pattern)) {
1685
- pattern = type.formatting.pattern;
1686
- }
1687
- }
1742
+ const pattern = dateTimePattern(column.type);
1743
+ const formatter = formatDate(pattern);
1688
1744
  return (value) => {
1689
1745
  if (typeof value === "number" && value !== 0) {
1690
- return formatDate(new Date(value), pattern);
1746
+ return formatter(new Date(value));
1691
1747
  } else {
1692
1748
  return "";
1693
1749
  }