@vuu-ui/vuu-utils 0.8.34 → 0.8.35

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 (184) hide show
  1. package/package.json +5 -7
  2. package/cjs/DataWindow.js +0 -71
  3. package/cjs/DataWindow.js.map +0 -1
  4. package/cjs/ThemeProvider.js +0 -85
  5. package/cjs/ThemeProvider.js.map +0 -1
  6. package/cjs/array-utils.js +0 -87
  7. package/cjs/array-utils.js.map +0 -1
  8. package/cjs/box-utils.js +0 -10
  9. package/cjs/box-utils.js.map +0 -1
  10. package/cjs/column-utils.js +0 -810
  11. package/cjs/column-utils.js.map +0 -1
  12. package/cjs/common-types.js +0 -15
  13. package/cjs/common-types.js.map +0 -1
  14. package/cjs/component-registry.js +0 -111
  15. package/cjs/component-registry.js.map +0 -1
  16. package/cjs/cookie-utils.js +0 -10
  17. package/cjs/cookie-utils.js.map +0 -1
  18. package/cjs/data-utils.js +0 -58
  19. package/cjs/data-utils.js.map +0 -1
  20. package/cjs/datasource-action-utils.js +0 -14
  21. package/cjs/datasource-action-utils.js.map +0 -1
  22. package/cjs/datasource-utils.js +0 -178
  23. package/cjs/datasource-utils.js.map +0 -1
  24. package/cjs/date/dateTimePattern.js +0 -25
  25. package/cjs/date/dateTimePattern.js.map +0 -1
  26. package/cjs/date/formatter.js +0 -66
  27. package/cjs/date/formatter.js.map +0 -1
  28. package/cjs/date/types.js +0 -23
  29. package/cjs/date/types.js.map +0 -1
  30. package/cjs/date/utils.js +0 -10
  31. package/cjs/date/utils.js.map +0 -1
  32. package/cjs/debug-utils.js +0 -31
  33. package/cjs/debug-utils.js.map +0 -1
  34. package/cjs/event-emitter.js +0 -119
  35. package/cjs/event-emitter.js.map +0 -1
  36. package/cjs/filters/filterAsQuery.js +0 -76
  37. package/cjs/filters/filterAsQuery.js.map +0 -1
  38. package/cjs/filters/utils.js +0 -89
  39. package/cjs/filters/utils.js.map +0 -1
  40. package/cjs/formatting-utils.js +0 -66
  41. package/cjs/formatting-utils.js.map +0 -1
  42. package/cjs/getUniqueId.js +0 -6
  43. package/cjs/getUniqueId.js.map +0 -1
  44. package/cjs/group-utils.js +0 -12
  45. package/cjs/group-utils.js.map +0 -1
  46. package/cjs/html-utils.js +0 -124
  47. package/cjs/html-utils.js.map +0 -1
  48. package/cjs/index.js.map +0 -1
  49. package/cjs/input-utils.js +0 -10
  50. package/cjs/input-utils.js.map +0 -1
  51. package/cjs/invariant.js +0 -13
  52. package/cjs/invariant.js.map +0 -1
  53. package/cjs/itemToString.js +0 -23
  54. package/cjs/itemToString.js.map +0 -1
  55. package/cjs/json-utils.js +0 -92
  56. package/cjs/json-utils.js.map +0 -1
  57. package/cjs/keyboard-utils.js +0 -28
  58. package/cjs/keyboard-utils.js.map +0 -1
  59. package/cjs/keyset.js +0 -68
  60. package/cjs/keyset.js.map +0 -1
  61. package/cjs/logging-utils.js +0 -61
  62. package/cjs/logging-utils.js.map +0 -1
  63. package/cjs/menu-utils.js +0 -6
  64. package/cjs/menu-utils.js.map +0 -1
  65. package/cjs/module-utils.js +0 -12
  66. package/cjs/module-utils.js.map +0 -1
  67. package/cjs/nanoid/index.js +0 -22
  68. package/cjs/nanoid/index.js.map +0 -1
  69. package/cjs/perf-utils.js +0 -35
  70. package/cjs/perf-utils.js.map +0 -1
  71. package/cjs/range-utils.js +0 -74
  72. package/cjs/range-utils.js.map +0 -1
  73. package/cjs/react-utils.js +0 -21
  74. package/cjs/react-utils.js.map +0 -1
  75. package/cjs/round-decimal.js +0 -86
  76. package/cjs/round-decimal.js.map +0 -1
  77. package/cjs/row-utils.js +0 -84
  78. package/cjs/row-utils.js.map +0 -1
  79. package/cjs/selection-utils.js +0 -236
  80. package/cjs/selection-utils.js.map +0 -1
  81. package/cjs/sort-utils.js +0 -61
  82. package/cjs/sort-utils.js.map +0 -1
  83. package/cjs/text-utils.js +0 -21
  84. package/cjs/text-utils.js.map +0 -1
  85. package/cjs/ts-utils.js +0 -8
  86. package/cjs/ts-utils.js.map +0 -1
  87. package/cjs/url-utils.js +0 -21
  88. package/cjs/url-utils.js.map +0 -1
  89. package/cjs/useId.js +0 -9
  90. package/cjs/useId.js.map +0 -1
  91. package/cjs/useLayoutEffectSkipFirst.js +0 -17
  92. package/cjs/useLayoutEffectSkipFirst.js.map +0 -1
  93. package/esm/DataWindow.js +0 -69
  94. package/esm/DataWindow.js.map +0 -1
  95. package/esm/ThemeProvider.js +0 -78
  96. package/esm/ThemeProvider.js.map +0 -1
  97. package/esm/array-utils.js +0 -79
  98. package/esm/array-utils.js.map +0 -1
  99. package/esm/box-utils.js +0 -8
  100. package/esm/box-utils.js.map +0 -1
  101. package/esm/column-utils.js +0 -738
  102. package/esm/column-utils.js.map +0 -1
  103. package/esm/common-types.js +0 -13
  104. package/esm/common-types.js.map +0 -1
  105. package/esm/component-registry.js +0 -99
  106. package/esm/component-registry.js.map +0 -1
  107. package/esm/cookie-utils.js +0 -8
  108. package/esm/cookie-utils.js.map +0 -1
  109. package/esm/data-utils.js +0 -50
  110. package/esm/data-utils.js.map +0 -1
  111. package/esm/datasource-action-utils.js +0 -8
  112. package/esm/datasource-action-utils.js.map +0 -1
  113. package/esm/datasource-utils.js +0 -158
  114. package/esm/datasource-utils.js.map +0 -1
  115. package/esm/date/dateTimePattern.js +0 -21
  116. package/esm/date/dateTimePattern.js.map +0 -1
  117. package/esm/date/formatter.js +0 -63
  118. package/esm/date/formatter.js.map +0 -1
  119. package/esm/date/types.js +0 -20
  120. package/esm/date/types.js.map +0 -1
  121. package/esm/date/utils.js +0 -8
  122. package/esm/date/utils.js.map +0 -1
  123. package/esm/debug-utils.js +0 -29
  124. package/esm/debug-utils.js.map +0 -1
  125. package/esm/event-emitter.js +0 -117
  126. package/esm/event-emitter.js.map +0 -1
  127. package/esm/filters/filterAsQuery.js +0 -72
  128. package/esm/filters/filterAsQuery.js.map +0 -1
  129. package/esm/filters/utils.js +0 -74
  130. package/esm/filters/utils.js.map +0 -1
  131. package/esm/formatting-utils.js +0 -62
  132. package/esm/formatting-utils.js.map +0 -1
  133. package/esm/getUniqueId.js +0 -4
  134. package/esm/getUniqueId.js.map +0 -1
  135. package/esm/group-utils.js +0 -10
  136. package/esm/group-utils.js.map +0 -1
  137. package/esm/html-utils.js +0 -111
  138. package/esm/html-utils.js.map +0 -1
  139. package/esm/index.js +0 -46
  140. package/esm/index.js.map +0 -1
  141. package/esm/input-utils.js +0 -7
  142. package/esm/input-utils.js.map +0 -1
  143. package/esm/invariant.js +0 -11
  144. package/esm/invariant.js.map +0 -1
  145. package/esm/itemToString.js +0 -21
  146. package/esm/itemToString.js.map +0 -1
  147. package/esm/json-utils.js +0 -90
  148. package/esm/json-utils.js.map +0 -1
  149. package/esm/keyboard-utils.js +0 -15
  150. package/esm/keyboard-utils.js.map +0 -1
  151. package/esm/keyset.js +0 -66
  152. package/esm/keyset.js.map +0 -1
  153. package/esm/logging-utils.js +0 -58
  154. package/esm/logging-utils.js.map +0 -1
  155. package/esm/menu-utils.js +0 -4
  156. package/esm/menu-utils.js.map +0 -1
  157. package/esm/module-utils.js +0 -9
  158. package/esm/module-utils.js.map +0 -1
  159. package/esm/nanoid/index.js +0 -20
  160. package/esm/nanoid/index.js.map +0 -1
  161. package/esm/perf-utils.js +0 -32
  162. package/esm/perf-utils.js.map +0 -1
  163. package/esm/range-utils.js +0 -66
  164. package/esm/range-utils.js.map +0 -1
  165. package/esm/react-utils.js +0 -19
  166. package/esm/react-utils.js.map +0 -1
  167. package/esm/round-decimal.js +0 -84
  168. package/esm/round-decimal.js.map +0 -1
  169. package/esm/row-utils.js +0 -78
  170. package/esm/row-utils.js.map +0 -1
  171. package/esm/selection-utils.js +0 -227
  172. package/esm/selection-utils.js.map +0 -1
  173. package/esm/sort-utils.js +0 -57
  174. package/esm/sort-utils.js.map +0 -1
  175. package/esm/text-utils.js +0 -18
  176. package/esm/text-utils.js.map +0 -1
  177. package/esm/ts-utils.js +0 -6
  178. package/esm/ts-utils.js.map +0 -1
  179. package/esm/url-utils.js +0 -18
  180. package/esm/url-utils.js.map +0 -1
  181. package/esm/useId.js +0 -7
  182. package/esm/useId.js.map +0 -1
  183. package/esm/useLayoutEffectSkipFirst.js +0 -15
  184. package/esm/useLayoutEffectSkipFirst.js.map +0 -1
@@ -1,25 +0,0 @@
1
- 'use strict';
2
-
3
- var columnUtils = require('../column-utils.js');
4
- var types = require('./types.js');
5
-
6
- const defaultPatternsByType = {
7
- time: "hh:mm:ss",
8
- date: "dd.mm.yyyy"
9
- };
10
- const fallbackDateTimePattern = {
11
- date: defaultPatternsByType["date"]
12
- };
13
- function dateTimePattern(type) {
14
- if (columnUtils.isTypeDescriptor(type)) {
15
- if (type.formatting && types.isDateTimePattern(type.formatting.pattern)) {
16
- return type.formatting.pattern;
17
- }
18
- }
19
- return fallbackDateTimePattern;
20
- }
21
-
22
- exports.dateTimePattern = dateTimePattern;
23
- exports.defaultPatternsByType = defaultPatternsByType;
24
- exports.fallbackDateTimePattern = fallbackDateTimePattern;
25
- //# sourceMappingURL=dateTimePattern.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dateTimePattern.js","sources":["../../src/date/dateTimePattern.ts"],"sourcesContent":["import { DateTimeColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { isTypeDescriptor } from \"../column-utils\";\nimport { DateTimePattern, isDateTimePattern } from \"./types\";\n\nexport const defaultPatternsByType = {\n time: \"hh:mm:ss\",\n date: \"dd.mm.yyyy\",\n} as const;\n\nexport const fallbackDateTimePattern: DateTimePattern = {\n date: defaultPatternsByType[\"date\"],\n};\n\nexport function dateTimePattern(\n type: DateTimeColumnDescriptor[\"type\"]\n): DateTimePattern {\n if (isTypeDescriptor(type)) {\n if (type.formatting && isDateTimePattern(type.formatting.pattern)) {\n return type.formatting.pattern;\n }\n }\n\n return fallbackDateTimePattern;\n}\n"],"names":["isTypeDescriptor","isDateTimePattern"],"mappings":";;;;;AAIO,MAAM,qBAAwB,GAAA;AAAA,EACnC,IAAM,EAAA,UAAA;AAAA,EACN,IAAM,EAAA,YAAA;AACR,EAAA;AAEO,MAAM,uBAA2C,GAAA;AAAA,EACtD,IAAA,EAAM,sBAAsB,MAAM,CAAA;AACpC,EAAA;AAEO,SAAS,gBACd,IACiB,EAAA;AACjB,EAAI,IAAAA,4BAAA,CAAiB,IAAI,CAAG,EAAA;AAC1B,IAAA,IAAI,KAAK,UAAc,IAAAC,uBAAA,CAAkB,IAAK,CAAA,UAAA,CAAW,OAAO,CAAG,EAAA;AACjE,MAAA,OAAO,KAAK,UAAW,CAAA,OAAA,CAAA;AAAA,KACzB;AAAA,GACF;AAEA,EAAO,OAAA,uBAAA,CAAA;AACT;;;;;;"}
@@ -1,66 +0,0 @@
1
- 'use strict';
2
-
3
- var date = require('@internationalized/date');
4
- var tsUtils = require('../ts-utils.js');
5
-
6
- const baseTimeFormatOptions = {
7
- hour: "2-digit",
8
- minute: "2-digit",
9
- second: "2-digit"
10
- };
11
- const formatConfigByTimePatterns = {
12
- "hh:mm:ss": {
13
- locale: "en-GB",
14
- options: { ...baseTimeFormatOptions, hour12: false }
15
- },
16
- "hh:mm:ss a": {
17
- locale: "en-GB",
18
- options: { ...baseTimeFormatOptions, hour12: true }
19
- }
20
- };
21
- const baseDateFormatOptions = {
22
- day: "2-digit",
23
- month: "2-digit",
24
- year: "numeric"
25
- };
26
- const formatConfigByDatePatterns = {
27
- "dd.mm.yyyy": {
28
- locale: "de-De",
29
- options: { ...baseDateFormatOptions }
30
- },
31
- "dd/mm/yyyy": { locale: "en-GB", options: { ...baseDateFormatOptions } },
32
- "dd MMM yyyy": {
33
- locale: "en-GB",
34
- options: { ...baseDateFormatOptions, month: "short" }
35
- },
36
- "dd MMMM yyyy": {
37
- locale: "en-GB",
38
- options: { ...baseDateFormatOptions, month: "long" }
39
- },
40
- "mm/dd/yyyy": { locale: "en-US", options: { ...baseDateFormatOptions } },
41
- "MMM dd, yyyy": {
42
- locale: "en-US",
43
- options: { ...baseDateFormatOptions, month: "short" }
44
- },
45
- "MMMM dd, yyyy": {
46
- locale: "en-US",
47
- options: { ...baseDateFormatOptions, month: "long" }
48
- }
49
- };
50
- function getFormatConfigs(pattern) {
51
- return [
52
- pattern.date ? formatConfigByDatePatterns[pattern.date] : null,
53
- pattern.time ? formatConfigByTimePatterns[pattern.time] : null
54
- ];
55
- }
56
- function formatDate(pattern) {
57
- const formatters = getFormatConfigs(pattern).filter(tsUtils.isNotNullOrUndefined).map((c) => getDateFormatter(c.locale, c.options));
58
- return (d) => formatters.map((f) => f.format(d)).join(" ");
59
- }
60
- function getDateFormatter(locale, options) {
61
- return new date.DateFormatter(locale, options);
62
- }
63
-
64
- exports.formatDate = formatDate;
65
- exports.getDateFormatter = getDateFormatter;
66
- //# sourceMappingURL=formatter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatter.js","sources":["../../src/date/formatter.ts"],"sourcesContent":["import { DateFormatter } from \"@internationalized/date\";\nimport { isNotNullOrUndefined } from \"../ts-utils\";\nimport { DatePattern, DateTimePattern, TimePattern } from \"./types\";\n\ntype DateTimeFormatConfig = {\n locale: string;\n options: Intl.DateTimeFormatOptions;\n};\n\n// Time format config\nconst baseTimeFormatOptions: Intl.DateTimeFormatOptions = {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n};\nconst formatConfigByTimePatterns: Record<TimePattern, DateTimeFormatConfig> = {\n \"hh:mm:ss\": {\n locale: \"en-GB\",\n options: { ...baseTimeFormatOptions, hour12: false },\n },\n \"hh:mm:ss a\": {\n locale: \"en-GB\",\n options: { ...baseTimeFormatOptions, hour12: true },\n },\n};\n\n// Date format config\nconst baseDateFormatOptions: Intl.DateTimeFormatOptions = {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\",\n};\nconst formatConfigByDatePatterns: Record<DatePattern, DateTimeFormatConfig> = {\n \"dd.mm.yyyy\": {\n locale: \"de-De\",\n options: { ...baseDateFormatOptions },\n },\n \"dd/mm/yyyy\": { locale: \"en-GB\", options: { ...baseDateFormatOptions } },\n \"dd MMM yyyy\": {\n locale: \"en-GB\",\n options: { ...baseDateFormatOptions, month: \"short\" },\n },\n \"dd MMMM yyyy\": {\n locale: \"en-GB\",\n options: { ...baseDateFormatOptions, month: \"long\" },\n },\n \"mm/dd/yyyy\": { locale: \"en-US\", options: { ...baseDateFormatOptions } },\n \"MMM dd, yyyy\": {\n locale: \"en-US\",\n options: { ...baseDateFormatOptions, month: \"short\" },\n },\n \"MMMM dd, yyyy\": {\n locale: \"en-US\",\n options: { ...baseDateFormatOptions, month: \"long\" },\n },\n};\n\nfunction getFormatConfigs(pattern: DateTimePattern) {\n return [\n pattern.date ? formatConfigByDatePatterns[pattern.date] : null,\n pattern.time ? formatConfigByTimePatterns[pattern.time] : null,\n ];\n}\n\nexport function formatDate(pattern: DateTimePattern): (d: Date) => string {\n const formatters = getFormatConfigs(pattern)\n .filter(isNotNullOrUndefined)\n .map((c) => getDateFormatter(c.locale, c.options));\n\n return (d) => formatters.map((f) => f.format(d)).join(\" \");\n}\n\nexport function getDateFormatter(\n locale: string,\n options?: Intl.DateTimeFormatOptions\n) {\n return new DateFormatter(locale, options);\n}\n"],"names":["isNotNullOrUndefined","DateFormatter"],"mappings":";;;;;AAUA,MAAM,qBAAoD,GAAA;AAAA,EACxD,IAAM,EAAA,SAAA;AAAA,EACN,MAAQ,EAAA,SAAA;AAAA,EACR,MAAQ,EAAA,SAAA;AACV,CAAA,CAAA;AACA,MAAM,0BAAwE,GAAA;AAAA,EAC5E,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,QAAQ,KAAM,EAAA;AAAA,GACrD;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,QAAQ,IAAK,EAAA;AAAA,GACpD;AACF,CAAA,CAAA;AAGA,MAAM,qBAAoD,GAAA;AAAA,EACxD,GAAK,EAAA,SAAA;AAAA,EACL,KAAO,EAAA,SAAA;AAAA,EACP,IAAM,EAAA,SAAA;AACR,CAAA,CAAA;AACA,MAAM,0BAAwE,GAAA;AAAA,EAC5E,YAAc,EAAA;AAAA,IACZ,MAAQ,EAAA,OAAA;AAAA,IACR,OAAA,EAAS,EAAE,GAAG,qBAAsB,EAAA;AAAA,GACtC;AAAA,EACA,YAAA,EAAc,EAAE,MAAQ,EAAA,OAAA,EAAS,SAAS,EAAE,GAAG,uBAAwB,EAAA;AAAA,EACvE,aAAe,EAAA;AAAA,IACb,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,OAAO,OAAQ,EAAA;AAAA,GACtD;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,OAAO,MAAO,EAAA;AAAA,GACrD;AAAA,EACA,YAAA,EAAc,EAAE,MAAQ,EAAA,OAAA,EAAS,SAAS,EAAE,GAAG,uBAAwB,EAAA;AAAA,EACvE,cAAgB,EAAA;AAAA,IACd,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,OAAO,OAAQ,EAAA;AAAA,GACtD;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,OAAO,MAAO,EAAA;AAAA,GACrD;AACF,CAAA,CAAA;AAEA,SAAS,iBAAiB,OAA0B,EAAA;AAClD,EAAO,OAAA;AAAA,IACL,OAAQ,CAAA,IAAA,GAAO,0BAA2B,CAAA,OAAA,CAAQ,IAAI,CAAI,GAAA,IAAA;AAAA,IAC1D,OAAQ,CAAA,IAAA,GAAO,0BAA2B,CAAA,OAAA,CAAQ,IAAI,CAAI,GAAA,IAAA;AAAA,GAC5D,CAAA;AACF,CAAA;AAEO,SAAS,WAAW,OAA+C,EAAA;AACxE,EAAA,MAAM,UAAa,GAAA,gBAAA,CAAiB,OAAO,CAAA,CACxC,OAAOA,4BAAoB,CAAA,CAC3B,GAAI,CAAA,CAAC,MAAM,gBAAiB,CAAA,CAAA,CAAE,MAAQ,EAAA,CAAA,CAAE,OAAO,CAAC,CAAA,CAAA;AAEnD,EAAA,OAAO,CAAC,CAAA,KAAM,UAAW,CAAA,GAAA,CAAI,CAAC,CAAA,KAAM,CAAE,CAAA,MAAA,CAAO,CAAC,CAAC,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAC3D,CAAA;AAEgB,SAAA,gBAAA,CACd,QACA,OACA,EAAA;AACA,EAAO,OAAA,IAAIC,kBAAc,CAAA,MAAA,EAAQ,OAAO,CAAA,CAAA;AAC1C;;;;;"}
package/cjs/date/types.js DELETED
@@ -1,23 +0,0 @@
1
- 'use strict';
2
-
3
- const supportedDatePatterns = [
4
- "dd.mm.yyyy",
5
- "dd/mm/yyyy",
6
- "dd MMM yyyy",
7
- "dd MMMM yyyy",
8
- "mm/dd/yyyy",
9
- "MMM dd, yyyy",
10
- "MMMM dd, yyyy"
11
- ];
12
- const supportedTimePatterns = ["hh:mm:ss", "hh:mm:ss a"];
13
- const supportedDateTimePatterns = {
14
- date: supportedDatePatterns,
15
- time: supportedTimePatterns
16
- };
17
- const isDatePattern = (pattern) => supportedDatePatterns.includes(pattern);
18
- const isTimePattern = (pattern) => supportedTimePatterns.includes(pattern);
19
- const isDateTimePattern = (pattern) => isDatePattern(pattern?.date) || isTimePattern(pattern?.time);
20
-
21
- exports.isDateTimePattern = isDateTimePattern;
22
- exports.supportedDateTimePatterns = supportedDateTimePatterns;
23
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sources":["../../src/date/types.ts"],"sourcesContent":["import { ColumnTypeFormatting } from \"@vuu-ui/vuu-table-types\";\n\nconst supportedDatePatterns = [\n \"dd.mm.yyyy\",\n \"dd/mm/yyyy\",\n \"dd MMM yyyy\",\n \"dd MMMM yyyy\",\n \"mm/dd/yyyy\",\n \"MMM dd, yyyy\",\n \"MMMM dd, yyyy\",\n] as const;\n\nconst supportedTimePatterns = [\"hh:mm:ss\", \"hh:mm:ss a\"] as const;\n\nexport const supportedDateTimePatterns = {\n date: supportedDatePatterns,\n time: supportedTimePatterns,\n};\n\nexport type DatePattern = (typeof supportedDatePatterns)[number];\nexport type TimePattern = (typeof supportedTimePatterns)[number];\n\nexport type DateTimePattern =\n | { date?: DatePattern; time: TimePattern }\n | { date: DatePattern; time?: TimePattern };\n\nconst isDatePattern = (pattern?: string): pattern is DatePattern =>\n supportedDatePatterns.includes(pattern as DatePattern);\n\nconst isTimePattern = (pattern?: string): pattern is TimePattern =>\n supportedTimePatterns.includes(pattern as TimePattern);\n\nexport const isDateTimePattern = (\n pattern?: ColumnTypeFormatting[\"pattern\"]\n): pattern is DateTimePattern =>\n isDatePattern(pattern?.date) || isTimePattern(pattern?.time);\n"],"names":[],"mappings":";;AAEA,MAAM,qBAAwB,GAAA;AAAA,EAC5B,YAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AACF,CAAA,CAAA;AAEA,MAAM,qBAAA,GAAwB,CAAC,UAAA,EAAY,YAAY,CAAA,CAAA;AAEhD,MAAM,yBAA4B,GAAA;AAAA,EACvC,IAAM,EAAA,qBAAA;AAAA,EACN,IAAM,EAAA,qBAAA;AACR,EAAA;AASA,MAAM,aAAgB,GAAA,CAAC,OACrB,KAAA,qBAAA,CAAsB,SAAS,OAAsB,CAAA,CAAA;AAEvD,MAAM,aAAgB,GAAA,CAAC,OACrB,KAAA,qBAAA,CAAsB,SAAS,OAAsB,CAAA,CAAA;AAE1C,MAAA,iBAAA,GAAoB,CAC/B,OAEA,KAAA,aAAA,CAAc,SAAS,IAAI,CAAA,IAAK,aAAc,CAAA,OAAA,EAAS,IAAI;;;;;"}
package/cjs/date/utils.js DELETED
@@ -1,10 +0,0 @@
1
- 'use strict';
2
-
3
- var date = require('@internationalized/date');
4
-
5
- function toCalendarDate(d) {
6
- return new date.CalendarDate(d.getFullYear(), d.getMonth() + 1, d.getDate());
7
- }
8
-
9
- exports.toCalendarDate = toCalendarDate;
10
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../../src/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"],"names":["CalendarDate"],"mappings":";;;;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,CAAA;AACxE;;;;"}
@@ -1,31 +0,0 @@
1
- 'use strict';
2
-
3
- var loggingUtils = require('./logging-utils.js');
4
-
5
- const { debug, debugEnabled } = loggingUtils.logger("range-monitor");
6
- class RangeMonitor {
7
- constructor(source) {
8
- this.source = source;
9
- this.range = { from: 0, to: 0 };
10
- this.timestamp = 0;
11
- }
12
- isSet() {
13
- return this.timestamp !== 0;
14
- }
15
- set({ from, to }) {
16
- const { timestamp } = this;
17
- this.range.from = from;
18
- this.range.to = to;
19
- this.timestamp = performance.now();
20
- if (timestamp) {
21
- debugEnabled && debug(
22
- `<${this.source}> [${from}-${to}], ${(this.timestamp - timestamp).toFixed(0)} ms elapsed`
23
- );
24
- } else {
25
- return 0;
26
- }
27
- }
28
- }
29
-
30
- exports.RangeMonitor = RangeMonitor;
31
- //# sourceMappingURL=debug-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug-utils.js","sources":["../src/debug-utils.ts"],"sourcesContent":["import { VuuRange } from \"@vuu-ui/vuu-protocol-types\";\nimport { logger } from \"./logging-utils\";\n\nconst { debug, debugEnabled } = logger(\"range-monitor\");\n\nexport class RangeMonitor {\n public range: VuuRange = { from: 0, to: 0 };\n public timestamp = 0;\n\n constructor(private source: string) {}\n\n isSet() {\n return this.timestamp !== 0;\n }\n set({ from, to }: VuuRange) {\n const { timestamp } = this;\n this.range.from = from;\n this.range.to = to;\n this.timestamp = performance.now();\n if (timestamp) {\n debugEnabled &&\n debug(\n `<${this.source}> [${from}-${to}], ${(\n this.timestamp - timestamp\n ).toFixed(0)} ms elapsed`\n );\n } else {\n return 0;\n }\n }\n}\n"],"names":["logger"],"mappings":";;;;AAGA,MAAM,EAAE,KAAA,EAAO,YAAa,EAAA,GAAIA,oBAAO,eAAe,CAAA,CAAA;AAE/C,MAAM,YAAa,CAAA;AAAA,EAIxB,YAAoB,MAAgB,EAAA;AAAhB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA,CAAA;AAHpB,IAAA,IAAA,CAAO,KAAkB,GAAA,EAAE,IAAM,EAAA,CAAA,EAAG,IAAI,CAAE,EAAA,CAAA;AAC1C,IAAA,IAAA,CAAO,SAAY,GAAA,CAAA,CAAA;AAAA,GAEkB;AAAA,EAErC,KAAQ,GAAA;AACN,IAAA,OAAO,KAAK,SAAc,KAAA,CAAA,CAAA;AAAA,GAC5B;AAAA,EACA,GAAI,CAAA,EAAE,IAAM,EAAA,EAAA,EAAgB,EAAA;AAC1B,IAAM,MAAA,EAAE,WAAc,GAAA,IAAA,CAAA;AACtB,IAAA,IAAA,CAAK,MAAM,IAAO,GAAA,IAAA,CAAA;AAClB,IAAA,IAAA,CAAK,MAAM,EAAK,GAAA,EAAA,CAAA;AAChB,IAAK,IAAA,CAAA,SAAA,GAAY,YAAY,GAAI,EAAA,CAAA;AACjC,IAAA,IAAI,SAAW,EAAA;AACb,MACE,YAAA,IAAA,KAAA;AAAA,QACE,CAAI,CAAA,EAAA,IAAA,CAAK,MAAM,CAAA,GAAA,EAAM,IAAI,CAAA,CAAA,EAAI,EAAE,CAAA,GAAA,EAAA,CAC7B,IAAK,CAAA,SAAA,GAAY,SACjB,EAAA,OAAA,CAAQ,CAAC,CAAC,CAAA,WAAA,CAAA;AAAA,OACd,CAAA;AAAA,KACG,MAAA;AACL,MAAO,OAAA,CAAA,CAAA;AAAA,KACT;AAAA,GACF;AACF;;;;"}
@@ -1,119 +0,0 @@
1
- 'use strict';
2
-
3
- var __accessCheck = (obj, member, msg) => {
4
- if (!member.has(obj))
5
- throw TypeError("Cannot " + msg);
6
- };
7
- var __privateGet = (obj, member, getter) => {
8
- __accessCheck(obj, member, "read from private field");
9
- return getter ? getter.call(obj) : member.get(obj);
10
- };
11
- var __privateAdd = (obj, member, value) => {
12
- if (member.has(obj))
13
- throw TypeError("Cannot add the same private member more than once");
14
- member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
15
- };
16
- var _events;
17
- function isArrayOfListeners(listeners) {
18
- return Array.isArray(listeners);
19
- }
20
- function isOnlyListener(listeners) {
21
- return !Array.isArray(listeners);
22
- }
23
- class EventEmitter {
24
- constructor() {
25
- __privateAdd(this, _events, /* @__PURE__ */ new Map());
26
- }
27
- addListener(event, listener) {
28
- const listeners = __privateGet(this, _events).get(event);
29
- if (!listeners) {
30
- __privateGet(this, _events).set(event, listener);
31
- } else if (isArrayOfListeners(listeners)) {
32
- listeners.push(listener);
33
- } else if (isOnlyListener(listeners)) {
34
- __privateGet(this, _events).set(event, [listeners, listener]);
35
- }
36
- }
37
- removeListener(event, listener) {
38
- if (!__privateGet(this, _events).has(event)) {
39
- return;
40
- }
41
- const listenerOrListeners = __privateGet(this, _events).get(event);
42
- let position = -1;
43
- if (listenerOrListeners === listener) {
44
- __privateGet(this, _events).delete(event);
45
- } else if (Array.isArray(listenerOrListeners)) {
46
- for (let i = length; i-- > 0; ) {
47
- if (listenerOrListeners[i] === listener) {
48
- position = i;
49
- break;
50
- }
51
- }
52
- if (position < 0) {
53
- return;
54
- }
55
- if (listenerOrListeners.length === 1) {
56
- listenerOrListeners.length = 0;
57
- __privateGet(this, _events).delete(event);
58
- } else {
59
- listenerOrListeners.splice(position, 1);
60
- }
61
- }
62
- }
63
- removeAllListeners(event) {
64
- if (event && __privateGet(this, _events).has(event)) {
65
- __privateGet(this, _events).delete(event);
66
- } else if (event === void 0) {
67
- __privateGet(this, _events).clear();
68
- }
69
- }
70
- emit(event, ...args) {
71
- if (__privateGet(this, _events)) {
72
- const handler = __privateGet(this, _events).get(event);
73
- if (handler) {
74
- this.invokeHandler(handler, args);
75
- }
76
- }
77
- }
78
- once(event, listener) {
79
- const handler = (...args) => {
80
- this.removeListener(event, handler);
81
- listener(...args);
82
- };
83
- this.on(event, handler);
84
- }
85
- on(event, listener) {
86
- this.addListener(event, listener);
87
- }
88
- hasListener(event, listener) {
89
- const listeners = __privateGet(this, _events).get(event);
90
- if (Array.isArray(listeners)) {
91
- return listeners.includes(listener);
92
- } else {
93
- return listeners === listener;
94
- }
95
- }
96
- invokeHandler(handler, args) {
97
- if (isArrayOfListeners(handler)) {
98
- handler.slice().forEach((listener) => this.invokeHandler(listener, args));
99
- } else {
100
- switch (args.length) {
101
- case 0:
102
- handler();
103
- break;
104
- case 1:
105
- handler(args[0]);
106
- break;
107
- case 2:
108
- handler(args[0], args[1]);
109
- break;
110
- default:
111
- handler.call(null, ...args);
112
- }
113
- }
114
- }
115
- }
116
- _events = new WeakMap();
117
-
118
- exports.EventEmitter = EventEmitter;
119
- //# sourceMappingURL=event-emitter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-emitter.js","sources":["../src/event-emitter.ts"],"sourcesContent":["type Listener = (...args: any[]) => void;\nexport type EmittedEvents = Record<string, Listener>;\n\nfunction isArrayOfListeners(\n listeners: EventListener | EventListener[]\n): listeners is EventListener[] {\n return Array.isArray(listeners);\n}\n\nfunction isOnlyListener(\n listeners: EventListener | EventListener[]\n): listeners is EventListener {\n return !Array.isArray(listeners);\n}\n\nexport interface IEventEmitter<Events extends EmittedEvents> {\n addListener<E extends keyof Events>(event: E, listener: Events[E]): void;\n emit<E extends keyof Events>(event: E, ...args: Parameters<Events[E]>): void;\n on<E extends keyof Events>(event: E, listener: Events[E]): void;\n removeListener<E extends keyof Events>(event: E, listener: Events[E]): void;\n removeAllListeners<E extends keyof Events>(event?: E): void;\n}\n\nexport class EventEmitter<Events extends EmittedEvents>\n implements IEventEmitter<Events>\n{\n #events: Map<keyof Events, Listener | Listener[]> = new Map();\n\n addListener<E extends keyof Events>(event: E, listener: Events[E]) {\n const listeners = this.#events.get(event);\n\n if (!listeners) {\n this.#events.set(event, listener);\n } else if (isArrayOfListeners(listeners)) {\n listeners.push(listener);\n } else if (isOnlyListener(listeners)) {\n this.#events.set(event, [listeners, listener]);\n }\n }\n\n removeListener<E extends keyof Events>(event: E, listener: Events[E]) {\n if (!this.#events.has(event)) {\n return;\n }\n\n const listenerOrListeners = this.#events.get(event);\n let position = -1;\n\n if (listenerOrListeners === listener) {\n this.#events.delete(event);\n } else if (Array.isArray(listenerOrListeners)) {\n for (let i = length; i-- > 0; ) {\n if (listenerOrListeners[i] === listener) {\n position = i;\n break;\n }\n }\n\n if (position < 0) {\n return;\n }\n\n if (listenerOrListeners.length === 1) {\n listenerOrListeners.length = 0;\n this.#events.delete(event);\n } else {\n listenerOrListeners.splice(position, 1);\n }\n }\n }\n\n removeAllListeners<E extends keyof Events>(event?: E) {\n if (event && this.#events.has(event)) {\n this.#events.delete(event);\n } else if (event === undefined) {\n this.#events.clear();\n }\n }\n\n emit<E extends keyof Events>(event: E, ...args: Parameters<Events[E]>) {\n if (this.#events) {\n const handler = this.#events.get(event);\n if (handler) {\n this.invokeHandler(handler, args);\n }\n }\n }\n\n once<E extends keyof Events>(event: E, listener: Events[E]) {\n const handler = ((...args) => {\n this.removeListener(event, handler);\n listener(...args);\n }) as Events[E];\n\n this.on(event, handler);\n }\n\n on<E extends keyof Events>(event: E, listener: Events[E]) {\n this.addListener(event, listener);\n }\n\n hasListener<E extends keyof Events>(event: E, listener: Events[E]) {\n const listeners = this.#events.get(event);\n if (Array.isArray(listeners)) {\n return listeners.includes(listener);\n } else {\n return listeners === listener;\n }\n }\n\n private invokeHandler(handler: Listener | Array<Listener>, args: unknown[]) {\n if (isArrayOfListeners(handler)) {\n handler.slice().forEach((listener) => this.invokeHandler(listener, args));\n } else {\n switch (args.length) {\n case 0:\n handler();\n break;\n case 1:\n handler(args[0]);\n break;\n case 2:\n handler(args[0], args[1]);\n break;\n // slower\n default:\n handler.call(null, ...args);\n }\n }\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,76 +0,0 @@
1
- 'use strict';
2
-
3
- var columnUtils = require('../column-utils.js');
4
- var utils = require('./utils.js');
5
-
6
- const filterValue = (value) => typeof value === "string" ? `"${value}"` : value;
7
- const quotedStrings = (value) => typeof value === "string" ? `"${value}"` : value;
8
- const removeOuterMostParentheses = (s) => s.replace(/^\((.*)\)$/, "$1");
9
- const filterAsQuery = (f, opts) => {
10
- return removeOuterMostParentheses(filterAsQueryCore(f, opts));
11
- };
12
- const filterAsQueryCore = (f, opts) => {
13
- if (utils.isMultiClauseFilter(f)) {
14
- const multiClauseFilter = f.filters.map((filter) => filterAsQueryCore(filter, opts)).join(` ${f.op} `);
15
- return `(${multiClauseFilter})`;
16
- } else if (utils.isMultiValueFilter(f)) {
17
- return `${f.column} ${f.op} [${f.values.map(quotedStrings).join(",")}]`;
18
- } else {
19
- return singleValueFilterAsQuery(f, opts);
20
- }
21
- };
22
- function singleValueFilterAsQuery(f, opts) {
23
- const column = opts?.columnsByName?.[f.column];
24
- if (column && columnUtils.isDateTimeColumn(column)) {
25
- return dateFilterAsQuery(f);
26
- } else {
27
- return defaultSingleValueFilterAsQuery(f);
28
- }
29
- }
30
- const ONE_DAY_IN_MILIS = 1e3 * 60 * 60 * 24;
31
- function dateFilterAsQuery(f) {
32
- switch (f.op) {
33
- case "=": {
34
- const filters = [
35
- { op: ">=", column: f.column, value: f.value },
36
- {
37
- op: "<",
38
- column: f.column,
39
- value: f.value + ONE_DAY_IN_MILIS
40
- }
41
- ];
42
- return filterAsQueryCore({ op: "and", filters });
43
- }
44
- case "!=": {
45
- const filters = [
46
- { op: "<", column: f.column, value: f.value },
47
- {
48
- op: ">=",
49
- column: f.column,
50
- value: f.value + ONE_DAY_IN_MILIS
51
- }
52
- ];
53
- return filterAsQueryCore({ op: "or", filters });
54
- }
55
- default:
56
- return defaultSingleValueFilterAsQuery(f);
57
- }
58
- }
59
- const defaultSingleValueFilterAsQuery = (f) => `${f.column} ${f.op} ${filterValue(f.value)}`;
60
- const removeColumnFromFilter = (column, filter) => {
61
- if (utils.isMultiClauseFilter(filter)) {
62
- const [clause1, clause2] = filter.filters;
63
- if (clause1.column === column.name) {
64
- return [clause2, filterAsQuery(clause2)];
65
- }
66
- if (clause2.column === column.name) {
67
- return [clause1, filterAsQuery(clause1)];
68
- }
69
- }
70
- return [void 0, ""];
71
- };
72
-
73
- exports.dateFilterAsQuery = dateFilterAsQuery;
74
- exports.filterAsQuery = filterAsQuery;
75
- exports.removeColumnFromFilter = removeColumnFromFilter;
76
- //# sourceMappingURL=filterAsQuery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"filterAsQuery.js","sources":["../../src/filters/filterAsQuery.ts"],"sourcesContent":["import {\n ColumnDescriptorsByName,\n Filter,\n SingleValueFilterClause,\n} from \"@vuu-ui/vuu-filter-types\";\nimport { RuntimeColumnDescriptor } from \"packages/vuu-table-types\";\nimport { isDateTimeColumn } from \"../column-utils\";\nimport { isMultiClauseFilter, isMultiValueFilter } from \"./utils\";\n\nconst filterValue = (value: string | number | boolean) =>\n typeof value === \"string\" ? `\"${value}\"` : value;\n\nconst quotedStrings = (value: string | number | boolean) =>\n typeof value === \"string\" ? `\"${value}\"` : value;\n\nconst removeOuterMostParentheses = (s: string) => s.replace(/^\\((.*)\\)$/, \"$1\");\n\nexport const filterAsQuery = (\n f: Filter,\n opts?: { columnsByName?: ColumnDescriptorsByName }\n): string => {\n return removeOuterMostParentheses(filterAsQueryCore(f, opts));\n};\n\nconst filterAsQueryCore = (\n f: Filter,\n opts?: { columnsByName?: ColumnDescriptorsByName }\n): string => {\n if (isMultiClauseFilter(f)) {\n const multiClauseFilter = f.filters\n .map((filter) => filterAsQueryCore(filter, opts))\n .join(` ${f.op} `);\n return `(${multiClauseFilter})`;\n } else if (isMultiValueFilter(f)) {\n return `${f.column} ${f.op} [${f.values.map(quotedStrings).join(\",\")}]`;\n } else {\n return singleValueFilterAsQuery(f, opts);\n }\n};\n\nfunction singleValueFilterAsQuery(\n f: SingleValueFilterClause,\n opts?: { columnsByName?: ColumnDescriptorsByName }\n): string {\n const column = opts?.columnsByName?.[f.column];\n if (column && isDateTimeColumn(column)) {\n return dateFilterAsQuery(f as SingleValueFilterClause<number>);\n } else {\n return defaultSingleValueFilterAsQuery(f);\n }\n}\n\nconst ONE_DAY_IN_MILIS = 1000 * 60 * 60 * 24;\nexport function dateFilterAsQuery(f: SingleValueFilterClause<number>): string {\n switch (f.op) {\n case \"=\": {\n const filters: Array<Filter> = [\n { op: \">=\", column: f.column, value: f.value },\n {\n op: \"<\",\n column: f.column,\n value: f.value + ONE_DAY_IN_MILIS,\n },\n ];\n return filterAsQueryCore({ op: \"and\", filters });\n }\n case \"!=\": {\n const filters: Array<Filter> = [\n { op: \"<\", column: f.column, value: f.value },\n {\n op: \">=\",\n column: f.column,\n value: f.value + ONE_DAY_IN_MILIS,\n },\n ];\n return filterAsQueryCore({ op: \"or\", filters });\n }\n default:\n return defaultSingleValueFilterAsQuery(f);\n }\n}\n\nconst defaultSingleValueFilterAsQuery = (f: SingleValueFilterClause) =>\n `${f.column} ${f.op} ${filterValue(f.value)}`;\n\nexport const removeColumnFromFilter = (\n column: RuntimeColumnDescriptor,\n filter: Filter\n): [Filter | undefined, string] => {\n if (isMultiClauseFilter(filter)) {\n const [clause1, clause2] = filter.filters;\n if (clause1.column === column.name) {\n return [clause2, filterAsQuery(clause2)];\n }\n if (clause2.column === column.name) {\n return [clause1, filterAsQuery(clause1)];\n }\n }\n return [undefined, \"\"];\n};\n"],"names":["isMultiClauseFilter","isMultiValueFilter","isDateTimeColumn"],"mappings":"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"}
@@ -1,89 +0,0 @@
1
- 'use strict';
2
-
3
- const singleValueFilterOps = /* @__PURE__ */ new Set([
4
- "=",
5
- "!=",
6
- ">",
7
- ">=",
8
- "<",
9
- "<=",
10
- "starts",
11
- "ends"
12
- ]);
13
- const isValidFilterClauseOp = (op) => op === "in" || singleValueFilterOps.has(op);
14
- const isNamedFilter = (f) => f !== void 0 && f.name !== void 0;
15
- const isSingleValueFilter = (f) => f !== void 0 && singleValueFilterOps.has(f.op);
16
- const isFilterClause = (f) => f !== void 0 && (isSingleValueFilter(f) || isMultiValueFilter(f));
17
- const isMultiValueFilter = (f) => f !== void 0 && f.op === "in";
18
- const isInFilter = (f) => f.op === "in";
19
- const isAndFilter = (f) => f.op === "and";
20
- const isOrFilter = (f) => f.op === "or";
21
- const isCompleteFilter = (filter) => isSingleValueFilter(filter) && filter.column !== void 0 && filter.op !== void 0 && filter.value !== void 0;
22
- function isMultiClauseFilter(f) {
23
- return f !== void 0 && (f.op === "and" || f.op === "or");
24
- }
25
- const applyFilterToColumns = (columns, { filterStruct }) => columns.map((column) => {
26
- const filter = extractFilterForColumn(filterStruct, column.name);
27
- if (filter !== void 0) {
28
- return {
29
- ...column,
30
- filter
31
- };
32
- } else if (column.filter) {
33
- return {
34
- ...column,
35
- filter: void 0
36
- };
37
- } else {
38
- return column;
39
- }
40
- });
41
- const isFilteredColumn = (column) => column.filter !== void 0;
42
- const stripFilterFromColumns = (columns) => columns.map((col) => {
43
- const { filter, ...rest } = col;
44
- return filter ? rest : col;
45
- });
46
- const extractFilterForColumn = (filter, columnName) => {
47
- if (isMultiClauseFilter(filter)) {
48
- return collectFiltersForColumn(filter, columnName);
49
- }
50
- if (isFilterClause(filter)) {
51
- return filter.column === columnName ? filter : void 0;
52
- }
53
- return void 0;
54
- };
55
- const collectFiltersForColumn = (filter, columnName) => {
56
- const { filters, op } = filter;
57
- const results = [];
58
- filters.forEach((filter2) => {
59
- const ffc = extractFilterForColumn(filter2, columnName);
60
- if (ffc) {
61
- results.push(ffc);
62
- }
63
- });
64
- if (results.length === 0) {
65
- return void 0;
66
- } else if (results.length === 1) {
67
- return results[0];
68
- }
69
- return {
70
- op,
71
- filters: results
72
- };
73
- };
74
-
75
- exports.applyFilterToColumns = applyFilterToColumns;
76
- exports.extractFilterForColumn = extractFilterForColumn;
77
- exports.isAndFilter = isAndFilter;
78
- exports.isCompleteFilter = isCompleteFilter;
79
- exports.isFilterClause = isFilterClause;
80
- exports.isFilteredColumn = isFilteredColumn;
81
- exports.isInFilter = isInFilter;
82
- exports.isMultiClauseFilter = isMultiClauseFilter;
83
- exports.isMultiValueFilter = isMultiValueFilter;
84
- exports.isNamedFilter = isNamedFilter;
85
- exports.isOrFilter = isOrFilter;
86
- exports.isSingleValueFilter = isSingleValueFilter;
87
- exports.isValidFilterClauseOp = isValidFilterClauseOp;
88
- exports.stripFilterFromColumns = stripFilterFromColumns;
89
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../../src/filters/utils.ts"],"sourcesContent":["import type { DataSourceFilter } from \"@vuu-ui/vuu-data-types\";\nimport {\n AndFilter,\n Filter,\n FilterClauseOp,\n FilterWithPartialClause,\n MultiClauseFilter,\n MultiValueFilterClause,\n OrFilter,\n SingleValueFilterClause,\n SingleValueFilterClauseOp,\n} from \"@vuu-ui/vuu-filter-types\";\nimport { RuntimeColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { filterAsQuery } from \"./filterAsQuery\";\n\nconst singleValueFilterOps = new Set<SingleValueFilterClauseOp>([\n \"=\",\n \"!=\",\n \">\",\n \">=\",\n \"<\",\n \"<=\",\n \"starts\",\n \"ends\",\n]);\n\nexport const isValidFilterClauseOp = (op?: string): op is FilterClauseOp =>\n op === \"in\" || singleValueFilterOps.has(op as SingleValueFilterClauseOp);\n\nexport const isNamedFilter = (f?: Filter) =>\n f !== undefined && f.name !== undefined;\n\n// ... with type constraints\nexport const isSingleValueFilter = (\n f?: Partial<Filter>\n): f is SingleValueFilterClause =>\n f !== undefined &&\n singleValueFilterOps.has(f.op as SingleValueFilterClauseOp);\n\nexport const isFilterClause = (\n f?: Partial<Filter>\n): f is SingleValueFilterClause | MultiValueFilterClause =>\n f !== undefined && (isSingleValueFilter(f) || isMultiValueFilter(f));\n\nexport const isMultiValueFilter = (\n f?: Partial<Filter>\n): f is MultiValueFilterClause => f !== undefined && f.op === \"in\";\n\nexport const isInFilter = (f: Partial<Filter>): f is MultiValueFilterClause =>\n f.op === \"in\";\nexport const isAndFilter = (f: Partial<Filter>): f is AndFilter =>\n f.op === \"and\";\nexport const isOrFilter = (f: Partial<Filter>): f is OrFilter => f.op === \"or\";\n\nexport const isCompleteFilter = (filter: Partial<Filter>): filter is Filter =>\n isSingleValueFilter(filter) &&\n filter.column !== undefined &&\n filter.op !== undefined &&\n filter.value !== undefined;\n\nexport function isMultiClauseFilter(\n f?: Partial<Filter> | FilterWithPartialClause\n): f is MultiClauseFilter {\n return f !== undefined && (f.op === \"and\" || f.op === \"or\");\n}\n\nexport const applyFilterToColumns = (\n columns: RuntimeColumnDescriptor[],\n { filterStruct }: DataSourceFilter\n) =>\n columns.map((column) => {\n // TODO this gives us a dependency on vuu-filters\n const filter = extractFilterForColumn(filterStruct, column.name);\n if (filter !== undefined) {\n return {\n ...column,\n filter,\n };\n } else if (column.filter) {\n return {\n ...column,\n filter: undefined,\n };\n } else {\n return column;\n }\n });\n\nexport const isFilteredColumn = (column: RuntimeColumnDescriptor) =>\n column.filter !== undefined;\n\nexport const stripFilterFromColumns = (columns: RuntimeColumnDescriptor[]) =>\n columns.map((col) => {\n const { filter, ...rest } = col;\n return filter ? rest : col;\n });\n\nexport const extractFilterForColumn = (\n filter: Filter | undefined,\n columnName: string\n) => {\n if (isMultiClauseFilter(filter)) {\n return collectFiltersForColumn(filter, columnName);\n }\n if (isFilterClause(filter)) {\n return filter.column === columnName ? filter : undefined;\n }\n return undefined;\n};\n\nconst collectFiltersForColumn = (\n filter: MultiClauseFilter,\n columnName: string\n) => {\n const { filters, op } = filter;\n const results: Filter[] = [];\n filters.forEach((filter) => {\n const ffc = extractFilterForColumn(filter, columnName);\n if (ffc) {\n results.push(ffc);\n }\n });\n if (results.length === 0) {\n return undefined;\n } else if (results.length === 1) {\n return results[0];\n }\n return {\n op,\n filters: results,\n };\n};\n"],"names":["filter"],"mappings":"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"}
@@ -1,66 +0,0 @@
1
- 'use strict';
2
-
3
- var roundDecimal = require('./round-decimal.js');
4
- var columnUtils = require('./column-utils.js');
5
- var formatter = require('./date/formatter.js');
6
- require('@internationalized/date');
7
- var dateTimePattern = require('./date/dateTimePattern.js');
8
-
9
- const DEFAULT_NUMERIC_FORMAT = {};
10
- const defaultValueFormatter = (value) => value == null ? "" : typeof value === "string" ? value : value.toString();
11
- const dateFormatter = (column) => {
12
- const pattern = dateTimePattern.dateTimePattern(column.type);
13
- const formatter$1 = formatter.formatDate(pattern);
14
- return (value) => {
15
- if (typeof value === "number" && value !== 0) {
16
- return formatter$1(new Date(value));
17
- } else {
18
- return "";
19
- }
20
- };
21
- };
22
- const numericFormatter = ({
23
- align = "right",
24
- type
25
- }) => {
26
- if (type === void 0 || typeof type === "string") {
27
- return defaultValueFormatter;
28
- } else {
29
- const {
30
- alignOnDecimals = false,
31
- decimals,
32
- zeroPad = false
33
- } = type.formatting ?? DEFAULT_NUMERIC_FORMAT;
34
- return (value) => {
35
- if (typeof value === "string" && (value.startsWith("\u03A3") || value.startsWith("["))) {
36
- return value;
37
- }
38
- const number = typeof value === "number" ? value : typeof value === "string" ? parseFloat(value) : void 0;
39
- return roundDecimal.roundDecimal(number, align, decimals, zeroPad, alignOnDecimals);
40
- };
41
- }
42
- };
43
- const mapFormatter = (map) => {
44
- return (value) => {
45
- return map[value] ?? "";
46
- };
47
- };
48
- const getValueFormatter = (column, serverDataType = column.serverDataType) => {
49
- if (columnUtils.isDateTimeColumn(column)) {
50
- return dateFormatter(column);
51
- }
52
- const { type } = column;
53
- if (columnUtils.isTypeDescriptor(type) && columnUtils.isMappedValueTypeRenderer(type?.renderer)) {
54
- return mapFormatter(type.renderer.map);
55
- } else if (serverDataType === "string" || serverDataType === "char") {
56
- return (value) => value;
57
- } else if (serverDataType === "double") {
58
- return numericFormatter(column);
59
- }
60
- return defaultValueFormatter;
61
- };
62
-
63
- exports.defaultValueFormatter = defaultValueFormatter;
64
- exports.getValueFormatter = getValueFormatter;
65
- exports.numericFormatter = numericFormatter;
66
- //# sourceMappingURL=formatting-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatting-utils.js","sources":["../src/formatting-utils.ts"],"sourcesContent":["import {\n ColumnDescriptor,\n ColumnTypeValueMap,\n ColumnTypeFormatting,\n DateTimeColumnDescriptor,\n ValueFormatter,\n} from \"@vuu-ui/vuu-table-types\";\nimport { roundDecimal } from \"./round-decimal\";\nimport {\n isDateTimeColumn,\n isTypeDescriptor,\n isMappedValueTypeRenderer,\n} from \"./column-utils\";\nimport { dateTimePattern, formatDate } from \"./date\";\n\nexport type ValueFormatters = {\n [key: string]: ValueFormatter;\n};\n\nconst DEFAULT_NUMERIC_FORMAT: ColumnTypeFormatting = {};\n\nexport const defaultValueFormatter = (value: unknown) =>\n value == null ? \"\" : typeof value === \"string\" ? value : value.toString();\n\nconst dateFormatter = (column: DateTimeColumnDescriptor) => {\n const pattern = dateTimePattern(column.type);\n const formatter = formatDate(pattern);\n\n return (value: unknown) => {\n if (typeof value === \"number\" && value !== 0) {\n return formatter(new Date(value));\n } else {\n return \"\";\n }\n };\n};\n\nexport const numericFormatter = ({\n align = \"right\",\n type,\n}: Partial<ColumnDescriptor>) => {\n if (type === undefined || typeof type === \"string\") {\n return defaultValueFormatter;\n } else {\n const {\n alignOnDecimals = false,\n decimals,\n zeroPad = false,\n } = type.formatting ?? DEFAULT_NUMERIC_FORMAT;\n return (value: unknown) => {\n if (\n typeof value === \"string\" &&\n (value.startsWith(\"Σ\") || value.startsWith(\"[\"))\n ) {\n return value;\n }\n const number =\n typeof value === \"number\"\n ? value\n : typeof value === \"string\"\n ? parseFloat(value)\n : undefined;\n return roundDecimal(number, align, decimals, zeroPad, alignOnDecimals);\n };\n }\n};\n\nconst mapFormatter = (map: ColumnTypeValueMap) => {\n return (value: unknown) => {\n return map[value as string] ?? \"\";\n };\n};\n\nexport const getValueFormatter = (\n column: ColumnDescriptor,\n serverDataType = column.serverDataType\n): ValueFormatter => {\n if (isDateTimeColumn(column)) {\n return dateFormatter(column);\n }\n\n const { type } = column;\n if (isTypeDescriptor(type) && isMappedValueTypeRenderer(type?.renderer)) {\n return mapFormatter(type.renderer.map);\n } else if (serverDataType === \"string\" || serverDataType === \"char\") {\n return (value: unknown) => value as string;\n } else if (serverDataType === \"double\") {\n return numericFormatter(column);\n }\n return defaultValueFormatter;\n};\n"],"names":["dateTimePattern","formatter","formatDate","roundDecimal","isDateTimeColumn","isTypeDescriptor","isMappedValueTypeRenderer"],"mappings":";;;;;;;;AAmBA,MAAM,yBAA+C,EAAC,CAAA;AAEzC,MAAA,qBAAA,GAAwB,CAAC,KAAA,KACpC,KAAS,IAAA,IAAA,GAAO,EAAK,GAAA,OAAO,KAAU,KAAA,QAAA,GAAW,KAAQ,GAAA,KAAA,CAAM,QAAS,GAAA;AAE1E,MAAM,aAAA,GAAgB,CAAC,MAAqC,KAAA;AAC1D,EAAM,MAAA,OAAA,GAAUA,+BAAgB,CAAA,MAAA,CAAO,IAAI,CAAA,CAAA;AAC3C,EAAM,MAAAC,WAAA,GAAYC,qBAAW,OAAO,CAAA,CAAA;AAEpC,EAAA,OAAO,CAAC,KAAmB,KAAA;AACzB,IAAA,IAAI,OAAO,KAAA,KAAU,QAAY,IAAA,KAAA,KAAU,CAAG,EAAA;AAC5C,MAAA,OAAOD,WAAU,CAAA,IAAI,IAAK,CAAA,KAAK,CAAC,CAAA,CAAA;AAAA,KAC3B,MAAA;AACL,MAAO,OAAA,EAAA,CAAA;AAAA,KACT;AAAA,GACF,CAAA;AACF,CAAA,CAAA;AAEO,MAAM,mBAAmB,CAAC;AAAA,EAC/B,KAAQ,GAAA,OAAA;AAAA,EACR,IAAA;AACF,CAAiC,KAAA;AAC/B,EAAA,IAAI,IAAS,KAAA,KAAA,CAAA,IAAa,OAAO,IAAA,KAAS,QAAU,EAAA;AAClD,IAAO,OAAA,qBAAA,CAAA;AAAA,GACF,MAAA;AACL,IAAM,MAAA;AAAA,MACJ,eAAkB,GAAA,KAAA;AAAA,MAClB,QAAA;AAAA,MACA,OAAU,GAAA,KAAA;AAAA,KACZ,GAAI,KAAK,UAAc,IAAA,sBAAA,CAAA;AACvB,IAAA,OAAO,CAAC,KAAmB,KAAA;AACzB,MACE,IAAA,OAAO,KAAU,KAAA,QAAA,KAChB,KAAM,CAAA,UAAA,CAAW,QAAG,CAAK,IAAA,KAAA,CAAM,UAAW,CAAA,GAAG,CAC9C,CAAA,EAAA;AACA,QAAO,OAAA,KAAA,CAAA;AAAA,OACT;AACA,MAAM,MAAA,MAAA,GACJ,OAAO,KAAA,KAAU,QACb,GAAA,KAAA,GACA,OAAO,KAAU,KAAA,QAAA,GACjB,UAAW,CAAA,KAAK,CAChB,GAAA,KAAA,CAAA,CAAA;AACN,MAAA,OAAOE,yBAAa,CAAA,MAAA,EAAQ,KAAO,EAAA,QAAA,EAAU,SAAS,eAAe,CAAA,CAAA;AAAA,KACvE,CAAA;AAAA,GACF;AACF,EAAA;AAEA,MAAM,YAAA,GAAe,CAAC,GAA4B,KAAA;AAChD,EAAA,OAAO,CAAC,KAAmB,KAAA;AACzB,IAAO,OAAA,GAAA,CAAI,KAAe,CAAK,IAAA,EAAA,CAAA;AAAA,GACjC,CAAA;AACF,CAAA,CAAA;AAEO,MAAM,iBAAoB,GAAA,CAC/B,MACA,EAAA,cAAA,GAAiB,OAAO,cACL,KAAA;AACnB,EAAI,IAAAC,4BAAA,CAAiB,MAAM,CAAG,EAAA;AAC5B,IAAA,OAAO,cAAc,MAAM,CAAA,CAAA;AAAA,GAC7B;AAEA,EAAM,MAAA,EAAE,MAAS,GAAA,MAAA,CAAA;AACjB,EAAA,IAAIC,6BAAiB,IAAI,CAAA,IAAKC,qCAA0B,CAAA,IAAA,EAAM,QAAQ,CAAG,EAAA;AACvE,IAAO,OAAA,YAAA,CAAa,IAAK,CAAA,QAAA,CAAS,GAAG,CAAA,CAAA;AAAA,GAC5B,MAAA,IAAA,cAAA,KAAmB,QAAY,IAAA,cAAA,KAAmB,MAAQ,EAAA;AACnE,IAAA,OAAO,CAAC,KAAmB,KAAA,KAAA,CAAA;AAAA,GAC7B,MAAA,IAAW,mBAAmB,QAAU,EAAA;AACtC,IAAA,OAAO,iBAAiB,MAAM,CAAA,CAAA;AAAA,GAChC;AACA,EAAO,OAAA,qBAAA,CAAA;AACT;;;;;;"}
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- const getUniqueId = () => `hw-${Math.round(Math.random() * 1e5)}`;
4
-
5
- exports.getUniqueId = getUniqueId;
6
- //# sourceMappingURL=getUniqueId.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getUniqueId.js","sources":["../src/getUniqueId.ts"],"sourcesContent":["export const getUniqueId = () => `hw-${Math.round(Math.random() * 1e5)}`;\n"],"names":[],"mappings":";;AAAa,MAAA,WAAA,GAAc,MAAM,CAAM,GAAA,EAAA,IAAA,CAAK,MAAM,IAAK,CAAA,MAAA,EAAW,GAAA,GAAG,CAAC,CAAA;;;;"}
@@ -1,12 +0,0 @@
1
- 'use strict';
2
-
3
- function addGroupColumn(groupBy, column) {
4
- if (groupBy) {
5
- return groupBy.concat(column.name);
6
- } else {
7
- return [column.name];
8
- }
9
- }
10
-
11
- exports.addGroupColumn = addGroupColumn;
12
- //# sourceMappingURL=group-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"group-utils.js","sources":["../src/group-utils.ts"],"sourcesContent":["import { RuntimeColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { VuuGroupBy } from \"@vuu-ui/vuu-protocol-types\";\n\nexport function addGroupColumn(\n groupBy: VuuGroupBy,\n column: RuntimeColumnDescriptor\n) {\n if (groupBy) {\n return groupBy.concat(column.name);\n } else {\n return [column.name];\n }\n}\n"],"names":[],"mappings":";;AAGgB,SAAA,cAAA,CACd,SACA,MACA,EAAA;AACA,EAAA,IAAI,OAAS,EAAA;AACX,IAAO,OAAA,OAAA,CAAQ,MAAO,CAAA,MAAA,CAAO,IAAI,CAAA,CAAA;AAAA,GAC5B,MAAA;AACL,IAAO,OAAA,CAAC,OAAO,IAAI,CAAA,CAAA;AAAA,GACrB;AACF;;;;"}