@operato/data-grist 2.0.0-alpha.3 → 2.0.0-alpha.31

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 (121) hide show
  1. package/CHANGELOG.md +171 -0
  2. package/dist/src/accumulator/accumulator.js +4 -4
  3. package/dist/src/accumulator/accumulator.js.map +1 -1
  4. package/dist/src/configure/rows-option-builder.js +2 -1
  5. package/dist/src/configure/rows-option-builder.js.map +1 -1
  6. package/dist/src/configure/zero-config.js +1 -0
  7. package/dist/src/configure/zero-config.js.map +1 -1
  8. package/dist/src/data-card/event-handlers/record-card-click-handler.js +1 -1
  9. package/dist/src/data-card/event-handlers/record-card-click-handler.js.map +1 -1
  10. package/dist/src/data-grid/data-grid-accum-field.js +3 -2
  11. package/dist/src/data-grid/data-grid-accum-field.js.map +1 -1
  12. package/dist/src/data-grid/data-grid-body.js +5 -0
  13. package/dist/src/data-grid/data-grid-body.js.map +1 -1
  14. package/dist/src/data-grid/data-grid-header.d.ts +1 -0
  15. package/dist/src/data-grid/data-grid-header.js +16 -14
  16. package/dist/src/data-grid/data-grid-header.js.map +1 -1
  17. package/dist/src/data-grist.d.ts +225 -3
  18. package/dist/src/data-grist.js +195 -3
  19. package/dist/src/data-grist.js.map +1 -1
  20. package/dist/src/data-list/event-handlers/record-partial-click-handler.js +1 -1
  21. package/dist/src/data-list/event-handlers/record-partial-click-handler.js.map +1 -1
  22. package/dist/src/data-manipulator.d.ts +6 -6
  23. package/dist/src/data-manipulator.js +44 -29
  24. package/dist/src/data-manipulator.js.map +1 -1
  25. package/dist/src/editors/ox-grist-editor-number.js +2 -2
  26. package/dist/src/editors/ox-grist-editor-number.js.map +1 -1
  27. package/dist/src/editors/ox-grist-editor.js +6 -2
  28. package/dist/src/editors/ox-grist-editor.js.map +1 -1
  29. package/dist/src/filters/filter-range-date.js +12 -1
  30. package/dist/src/filters/filter-range-date.js.map +1 -1
  31. package/dist/src/filters/filters-form.d.ts +1 -0
  32. package/dist/src/filters/filters-form.js +21 -3
  33. package/dist/src/filters/filters-form.js.map +1 -1
  34. package/dist/src/handlers/contextmenu-tree-mutation.js +1 -19
  35. package/dist/src/handlers/contextmenu-tree-mutation.js.map +1 -1
  36. package/dist/src/index.d.ts +0 -1
  37. package/dist/src/index.js +0 -1
  38. package/dist/src/index.js.map +1 -1
  39. package/dist/src/types.d.ts +1 -8
  40. package/dist/src/types.js.map +1 -1
  41. package/dist/stories/accumulator.stories.js +10 -5
  42. package/dist/stories/accumulator.stories.js.map +1 -1
  43. package/dist/stories/dynamic-editable.stories.js +10 -0
  44. package/dist/stories/dynamic-editable.stories.js.map +1 -1
  45. package/dist/stories/fixed-column.stories.js +3 -3
  46. package/dist/stories/fixed-column.stories.js.map +1 -1
  47. package/dist/stories/grist-modes.stories.js +23 -2
  48. package/dist/stories/grist-modes.stories.js.map +1 -1
  49. package/dist/tsconfig.tsbuildinfo +1 -1
  50. package/docs/default-value/default-value.md +1 -1
  51. package/docs/default-value/value-generator/date-generator.md +2 -2
  52. package/docs/default-value/value-generator/month-date-generator.md +2 -2
  53. package/docs/default-value/value-generator/week-date-generator.md +2 -2
  54. package/docs/default-value/value-generator/year-date-generator.md +2 -2
  55. package/package.json +19 -18
  56. package/src/accumulator/accumulator.ts +4 -4
  57. package/src/configure/rows-option-builder.ts +11 -1
  58. package/src/configure/zero-config.ts +1 -0
  59. package/src/data-card/event-handlers/record-card-click-handler.ts +1 -1
  60. package/src/data-grid/data-grid-accum-field.ts +3 -2
  61. package/src/data-grid/data-grid-body.ts +5 -0
  62. package/src/data-grid/data-grid-header.ts +22 -18
  63. package/src/data-grist.ts +250 -3
  64. package/src/data-list/event-handlers/record-partial-click-handler.ts +1 -1
  65. package/src/data-manipulator.ts +52 -31
  66. package/src/editors/ox-grist-editor-number.ts +3 -2
  67. package/src/editors/ox-grist-editor.ts +6 -2
  68. package/src/filters/filter-range-date.ts +16 -1
  69. package/src/filters/filters-form.ts +25 -2
  70. package/src/handlers/contextmenu-tree-mutation.ts +1 -19
  71. package/src/index.ts +0 -1
  72. package/src/types.ts +1 -9
  73. package/stories/accumulator.stories.ts +10 -5
  74. package/stories/dynamic-editable.stories.ts +10 -0
  75. package/stories/fixed-column.stories.ts +3 -3
  76. package/stories/grist-modes.stories.ts +23 -2
  77. package/themes/grist-theme.css +1 -1
  78. package/dist/src/value-generator/date-generator.d.ts +0 -6
  79. package/dist/src/value-generator/date-generator.js +0 -30
  80. package/dist/src/value-generator/date-generator.js.map +0 -1
  81. package/dist/src/value-generator/hour-time-generator.d.ts +0 -7
  82. package/dist/src/value-generator/hour-time-generator.js +0 -29
  83. package/dist/src/value-generator/hour-time-generator.js.map +0 -1
  84. package/dist/src/value-generator/index.d.ts +0 -1
  85. package/dist/src/value-generator/index.js +0 -2
  86. package/dist/src/value-generator/index.js.map +0 -1
  87. package/dist/src/value-generator/minute-time-generator.d.ts +0 -7
  88. package/dist/src/value-generator/minute-time-generator.js +0 -29
  89. package/dist/src/value-generator/minute-time-generator.js.map +0 -1
  90. package/dist/src/value-generator/month-date-generator.d.ts +0 -7
  91. package/dist/src/value-generator/month-date-generator.js +0 -31
  92. package/dist/src/value-generator/month-date-generator.js.map +0 -1
  93. package/dist/src/value-generator/now-generator.d.ts +0 -4
  94. package/dist/src/value-generator/now-generator.js +0 -8
  95. package/dist/src/value-generator/now-generator.js.map +0 -1
  96. package/dist/src/value-generator/registry.d.ts +0 -11
  97. package/dist/src/value-generator/registry.js +0 -50
  98. package/dist/src/value-generator/registry.js.map +0 -1
  99. package/dist/src/value-generator/time-generator.d.ts +0 -6
  100. package/dist/src/value-generator/time-generator.js +0 -28
  101. package/dist/src/value-generator/time-generator.js.map +0 -1
  102. package/dist/src/value-generator/today-generator.d.ts +0 -4
  103. package/dist/src/value-generator/today-generator.js +0 -8
  104. package/dist/src/value-generator/today-generator.js.map +0 -1
  105. package/dist/src/value-generator/week-date-generator.d.ts +0 -7
  106. package/dist/src/value-generator/week-date-generator.js +0 -29
  107. package/dist/src/value-generator/week-date-generator.js.map +0 -1
  108. package/dist/src/value-generator/year-date-generator.d.ts +0 -7
  109. package/dist/src/value-generator/year-date-generator.js +0 -29
  110. package/dist/src/value-generator/year-date-generator.js.map +0 -1
  111. package/src/value-generator/date-generator.ts +0 -35
  112. package/src/value-generator/hour-time-generator.ts +0 -43
  113. package/src/value-generator/index.ts +0 -1
  114. package/src/value-generator/minute-time-generator.ts +0 -43
  115. package/src/value-generator/month-date-generator.ts +0 -38
  116. package/src/value-generator/now-generator.ts +0 -10
  117. package/src/value-generator/registry.ts +0 -58
  118. package/src/value-generator/time-generator.ts +0 -33
  119. package/src/value-generator/today-generator.ts +0 -10
  120. package/src/value-generator/week-date-generator.ts +0 -40
  121. package/src/value-generator/year-date-generator.ts +0 -36
@@ -6,6 +6,8 @@ import '@operato/input/ox-input-search.js'
6
6
  import { css, html, LitElement, PropertyValues, TemplateResult, nothing } from 'lit'
7
7
  import { customElement, property, queryAsync, state } from 'lit/decorators.js'
8
8
 
9
+ import { getDefaultValue } from '@operato/time-calculator'
10
+
9
11
  import { FilterConfigObject } from '..'
10
12
  import { DataGrist } from '../data-grist'
11
13
  import { ColumnConfig, FilterOperator, FilterValue, GristConfig } from '../types'
@@ -72,7 +74,6 @@ export class FiltersForm extends LitElement {
72
74
 
73
75
  if (grist) {
74
76
  this.config = grist.compiledConfig
75
- this.value = grist.filters || []
76
77
 
77
78
  grist.addEventListener('config-change', (e: Event) => {
78
79
  this.config = (e as CustomEvent).detail
@@ -102,6 +103,17 @@ export class FiltersForm extends LitElement {
102
103
  }
103
104
  }
104
105
 
106
+ buildDefaultValue(operator: string, defaultValue: any) {
107
+ if (defaultValue === undefined) {
108
+ return
109
+ }
110
+ if (operator == 'between') {
111
+ return (defaultValue as Array<any>).map(v => getDefaultValue(v, this))
112
+ } else {
113
+ return getDefaultValue(defaultValue, this)
114
+ }
115
+ }
116
+
105
117
  updated(changes: PropertyValues<this>) {
106
118
  if (changes.has('config')) {
107
119
  const filters = this.config.columns.filter(columnConfig => !!columnConfig.filter)
@@ -114,6 +126,15 @@ export class FiltersForm extends LitElement {
114
126
  return filter!.operator === 'search'
115
127
  })
116
128
 
129
+ const grist = this.closest('ox-grist') as DataGrist
130
+
131
+ this.value = (grist.filters || []).map(filter => {
132
+ return {
133
+ ...filter,
134
+ value: this.buildDefaultValue(filter!.operator, filter!.value)
135
+ }
136
+ })
137
+
117
138
  this.empty = (this.searchColumns.length === 0 || this.withoutSearch) && this.filterColumns.length === 0
118
139
  }
119
140
  }
@@ -160,7 +181,9 @@ export class FiltersForm extends LitElement {
160
181
  ? 'text'
161
182
  : type
162
183
  )[idx]
163
- const value = this.value?.find(filter => filter.name == name)?.value
184
+ const value =
185
+ this.value?.find(filter => filter.name == name)?.value ??
186
+ this.buildDefaultValue(operator!, (filter as FilterConfigObject)?.value)
164
187
 
165
188
  if (!renderer) {
166
189
  return html``
@@ -9,7 +9,7 @@ function dispatchEvent(field: DataGridField, event: string) {
9
9
  new CustomEvent(event, {
10
10
  bubbles: true,
11
11
  composed: true,
12
- detail: field
12
+ detail: field.record
13
13
  })
14
14
  )
15
15
  }
@@ -54,24 +54,6 @@ export const ContextMenuTreeMutation = function (
54
54
  <mwc-icon slot="icon">playlist_add</mwc-icon>
55
55
  </ox-popup-menuitem>
56
56
 
57
- <ox-popup-menuitem
58
- label="move up"
59
- @click=${() => {
60
- dispatchEvent(field, 'move-up')
61
- }}
62
- >
63
- <mwc-icon slot="icon">arrow_upward</mwc-icon>
64
- </ox-popup-menuitem>
65
-
66
- <ox-popup-menuitem
67
- label="move down"
68
- @click=${() => {
69
- dispatchEvent(field, 'move-down')
70
- }}
71
- >
72
- <mwc-icon slot="icon">arrow_downward</mwc-icon>
73
- </ox-popup-menuitem>
74
-
75
57
  <div separator></div>
76
58
 
77
59
  <ox-popup-menuitem
package/src/index.ts CHANGED
@@ -12,6 +12,5 @@ export * from './gutters'
12
12
  export * from './filters'
13
13
  export * from './sorters/sorters-control'
14
14
  export * from './record-view'
15
- export * from './value-generator'
16
15
 
17
16
  export * from './utils/list-param'
package/src/types.ts CHANGED
@@ -427,15 +427,6 @@ export type HeaderConfig = {
427
427
  */
428
428
  export type HeaderRenderer = (column: ColumnConfig) => any
429
429
 
430
- /**
431
- * Function type for generating values.
432
- *
433
- * @callback ValueGeneratorFn
434
- * @param {...any} args - The arguments used for generating a value.
435
- * @returns {*} - The generated value.
436
- */
437
- export type ValueGeneratorFn = (...args: any[]) => any
438
-
439
430
  /**
440
431
  * Configuration for specifying default values for fields in a record.
441
432
  * Default values can be set using predefined value generator functions or custom user-defined functions.
@@ -627,6 +618,7 @@ export type ImexConfig = {
627
618
  export type RowsConfig = {
628
619
  accumulator?: boolean
629
620
  appendable: boolean
621
+ editable: boolean
630
622
  insertable: boolean
631
623
  selectable?: RowSelectableConfig
632
624
  groups: GroupConfig[]
@@ -79,7 +79,8 @@ const config = {
79
79
  },
80
80
  filter: 'search',
81
81
  sortable: true,
82
- width: 120
82
+ width: 120,
83
+ fixed: true
83
84
  },
84
85
  {
85
86
  type: 'string',
@@ -105,6 +106,10 @@ const config = {
105
106
  align: 'right'
106
107
  },
107
108
  accumulator: 'avg',
109
+ // accumulator: {
110
+ // type: 'avg',
111
+ // tag: true
112
+ // },
108
113
  sortable: true,
109
114
  width: 130
110
115
  },
@@ -115,7 +120,10 @@ const config = {
115
120
  header: 'accval2',
116
121
  record: {
117
122
  editable: true,
118
- align: 'right'
123
+ align: 'right',
124
+ renderer: (value: any, column: any, record: any) => {
125
+ return value && Intl.NumberFormat('en-US').format(value)
126
+ }
119
127
  },
120
128
  accumulator: {
121
129
  type: 'sum',
@@ -162,9 +170,6 @@ const config = {
162
170
  {
163
171
  name: 'name',
164
172
  desc: true
165
- },
166
- {
167
- name: 'email'
168
173
  }
169
174
  ],
170
175
  pagination: {
@@ -24,6 +24,7 @@ const fetchHandler: FetchHandler = async ({ sorters = [], filters, page, limit }
24
24
  name: idx % 2 ? `shnam-${start + idx + 1}` : `heartyoh-${start + idx + 1}`,
25
25
  description: idx % 2 ? `hatiolabmanager${start + idx + 1}1234567890` : `hatiosea manager-${start + idx + 1}`,
26
26
  number: idx,
27
+ float: 1.3,
27
28
  date: '2023-09-20',
28
29
  routing: {
29
30
  id: '006dc64d-4fb9-4afc-a9ea-962bd1b9e110',
@@ -117,6 +118,15 @@ function buildConfig({ headerFilter }: { headerFilter: boolean }) {
117
118
  },
118
119
  width: 80
119
120
  },
121
+ {
122
+ type: 'float',
123
+ name: 'float',
124
+ header: 'float',
125
+ record: {
126
+ editable: true
127
+ },
128
+ width: 80
129
+ },
120
130
  {
121
131
  type: 'date',
122
132
  name: 'date',
@@ -144,8 +144,7 @@ const config = {
144
144
  },
145
145
  filter: 'search',
146
146
  sortable: true,
147
- width: 120,
148
- fixed: true
147
+ width: 120
149
148
  },
150
149
  {
151
150
  type: 'string',
@@ -161,7 +160,8 @@ const config = {
161
160
  click: (columns, data, column, record, rowIndex, target) => {
162
161
  alert(`${column!.name} ${record![column!.name]}, row : ${rowIndex}`)
163
162
  }
164
- } as GristEventHandlerSet
163
+ } as GristEventHandlerSet,
164
+ fixed: true
165
165
  },
166
166
  {
167
167
  type: 'email',
@@ -237,7 +237,10 @@ const config = {
237
237
  editable: true,
238
238
  defaultValue: 10000.1
239
239
  },
240
- filter: 'between',
240
+ filter: {
241
+ operator: 'between',
242
+ value: [1, 100]
243
+ },
241
244
  sortable: true,
242
245
  width: 50
243
246
  },
@@ -266,7 +269,25 @@ const config = {
266
269
  name: 'now'
267
270
  }
268
271
  },
269
- filter: 'between',
272
+ filter: {
273
+ operator: 'between',
274
+ type: 'datetime',
275
+ value: [
276
+ {
277
+ name: 'today',
278
+ params: {
279
+ type: 'datetime'
280
+ }
281
+ },
282
+ {
283
+ name: 'now',
284
+ params: {
285
+ type: 'datetime',
286
+ relativeDays: 1
287
+ }
288
+ }
289
+ ]
290
+ },
270
291
  sortable: true,
271
292
  width: 180
272
293
  },
@@ -41,7 +41,7 @@ body {
41
41
 
42
42
  --grid-record-background-color: var(--theme-white-color);
43
43
  --grid-record-odd-background-color: #f9f7f5;
44
- --grid-record-padding: 0 0 0 var(--padding-default);
44
+ --grid-record-padding: 0 5px 0 5px;
45
45
  --grid-record-color: var(--secondary-color);
46
46
  --grid-record-color-hover: var(--primary-color);
47
47
  --grid-record-wide-fontsize: var(--fontsize-small);
@@ -1,6 +0,0 @@
1
- export type RelativeDateParams = {
2
- relativeDate?: number;
3
- timeZone?: string;
4
- format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions;
5
- };
6
- export declare const getRelativeDate: (params?: RelativeDateParams) => Date | number | string;
@@ -1,30 +0,0 @@
1
- export const getRelativeDate = (params = {}) => {
2
- const { relativeDate = 0, timeZone, format } = params;
3
- const relativeSeconds = relativeDate * 24 * 60 * 60;
4
- const now = new Date();
5
- let currentDate;
6
- if (timeZone) {
7
- const options = { timeZone };
8
- const currentDateISOString = now.toLocaleString('en-US', options).split(',')[0];
9
- currentDate = new Date(currentDateISOString);
10
- }
11
- else {
12
- currentDate = now;
13
- }
14
- const startOfDay = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());
15
- const targetTime = startOfDay.getTime() + relativeSeconds * 1000;
16
- if (format === 'date') {
17
- return new Date(targetTime);
18
- }
19
- else if (format === 'timestamp') {
20
- return targetTime;
21
- }
22
- else if (format) {
23
- const formatter = new Intl.DateTimeFormat(undefined, format);
24
- return formatter.format(new Date(targetTime));
25
- }
26
- else {
27
- return new Date(targetTime);
28
- }
29
- };
30
- //# sourceMappingURL=date-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-generator.js","sourceRoot":"","sources":["../../../src/value-generator/date-generator.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAA6B,EAAE,EAA0B,EAAE;IACzF,MAAM,EAAE,YAAY,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACrD,MAAM,eAAe,GAAG,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;IAEnD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,IAAI,WAAiB,CAAA;IAErB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,OAAO,GAA+B,EAAE,QAAQ,EAAE,CAAA;QACxD,MAAM,oBAAoB,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/E,WAAW,GAAG,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAC9C,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,GAAG,CAAA;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAA;IACrG,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,eAAe,GAAG,IAAI,CAAA;IAEhE,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;IAC7B,CAAC;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,UAAU,CAAA;IACnB,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC5D,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;IAC/C,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;IAC7B,CAAC;AACH,CAAC,CAAA","sourcesContent":["export type RelativeDateParams = {\n relativeDate?: number\n timeZone?: string\n format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions\n}\n\nexport const getRelativeDate = (params: RelativeDateParams = {}): Date | number | string => {\n const { relativeDate = 0, timeZone, format } = params\n const relativeSeconds = relativeDate * 24 * 60 * 60\n\n const now = new Date()\n let currentDate: Date\n\n if (timeZone) {\n const options: Intl.DateTimeFormatOptions = { timeZone }\n const currentDateISOString = now.toLocaleString('en-US', options).split(',')[0]\n currentDate = new Date(currentDateISOString)\n } else {\n currentDate = now\n }\n\n const startOfDay = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate())\n const targetTime = startOfDay.getTime() + relativeSeconds * 1000\n\n if (format === 'date') {\n return new Date(targetTime)\n } else if (format === 'timestamp') {\n return targetTime\n } else if (format) {\n const formatter = new Intl.DateTimeFormat(undefined, format)\n return formatter.format(new Date(targetTime))\n } else {\n return new Date(targetTime)\n }\n}\n"]}
@@ -1,7 +0,0 @@
1
- export type RelativeHourTimeParams = {
2
- timeZone?: string;
3
- format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions;
4
- relativeHour?: number;
5
- relativeSeconds?: number;
6
- };
7
- export declare const getRelativeHourTime: (params?: RelativeHourTimeParams) => Date | number | string;
@@ -1,29 +0,0 @@
1
- export const getRelativeHourTime = (params = {}) => {
2
- const { relativeHour = 0, relativeSeconds = 0, timeZone, format } = params;
3
- const now = new Date();
4
- let currentDate;
5
- if (timeZone) {
6
- const options = { timeZone };
7
- const currentDateISOString = now.toLocaleString('en-US', options).split(',')[0];
8
- currentDate = new Date(currentDateISOString);
9
- }
10
- else {
11
- currentDate = now;
12
- }
13
- const startOfHour = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate(), currentDate.getHours(), 0, 0, 0);
14
- const targetTime = startOfHour.getTime() + relativeHour * 60 * 60 * 1000 + relativeSeconds * 1000;
15
- if (format === 'date') {
16
- return new Date(targetTime);
17
- }
18
- else if (format === 'timestamp') {
19
- return targetTime;
20
- }
21
- else if (format) {
22
- const formatter = new Intl.DateTimeFormat(undefined, format);
23
- return formatter.format(new Date(targetTime));
24
- }
25
- else {
26
- return new Date(targetTime);
27
- }
28
- };
29
- //# sourceMappingURL=hour-time-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hour-time-generator.js","sourceRoot":"","sources":["../../../src/value-generator/hour-time-generator.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAiC,EAAE,EAA0B,EAAE;IACjG,MAAM,EAAE,YAAY,GAAG,CAAC,EAAE,eAAe,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAE1E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,IAAI,WAAiB,CAAA;IAErB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,OAAO,GAA+B,EAAE,QAAQ,EAAE,CAAA;QACxD,MAAM,oBAAoB,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/E,WAAW,GAAG,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAC9C,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,GAAG,CAAA;IACnB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,IAAI,CAC1B,WAAW,CAAC,WAAW,EAAE,EACzB,WAAW,CAAC,QAAQ,EAAE,EACtB,WAAW,CAAC,OAAO,EAAE,EACrB,WAAW,CAAC,QAAQ,EAAE,EACtB,CAAC,EACD,CAAC,EACD,CAAC,CACF,CAAA;IACD,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,eAAe,GAAG,IAAI,CAAA;IAEjG,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;IAC7B,CAAC;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,UAAU,CAAA;IACnB,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC5D,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;IAC/C,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;IAC7B,CAAC;AACH,CAAC,CAAA","sourcesContent":["export type RelativeHourTimeParams = {\n timeZone?: string\n format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions\n relativeHour?: number\n relativeSeconds?: number\n}\n\nexport const getRelativeHourTime = (params: RelativeHourTimeParams = {}): Date | number | string => {\n const { relativeHour = 0, relativeSeconds = 0, timeZone, format } = params\n\n const now = new Date()\n let currentDate: Date\n\n if (timeZone) {\n const options: Intl.DateTimeFormatOptions = { timeZone }\n const currentDateISOString = now.toLocaleString('en-US', options).split(',')[0]\n currentDate = new Date(currentDateISOString)\n } else {\n currentDate = now\n }\n\n const startOfHour = new Date(\n currentDate.getFullYear(),\n currentDate.getMonth(),\n currentDate.getDate(),\n currentDate.getHours(),\n 0,\n 0,\n 0\n )\n const targetTime = startOfHour.getTime() + relativeHour * 60 * 60 * 1000 + relativeSeconds * 1000\n\n if (format === 'date') {\n return new Date(targetTime)\n } else if (format === 'timestamp') {\n return targetTime\n } else if (format) {\n const formatter = new Intl.DateTimeFormat(undefined, format)\n return formatter.format(new Date(targetTime))\n } else {\n return new Date(targetTime)\n }\n}\n"]}
@@ -1 +0,0 @@
1
- export * from './registry';
@@ -1,2 +0,0 @@
1
- export * from './registry';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/value-generator/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA","sourcesContent":["export * from './registry'\n"]}
@@ -1,7 +0,0 @@
1
- export type RelativeMinuteTimeParams = {
2
- timeZone?: string;
3
- format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions;
4
- relativeMinutes?: number;
5
- relativeSeconds?: number;
6
- };
7
- export declare const getRelativeMinuteTime: (params?: RelativeMinuteTimeParams) => Date | number | string;
@@ -1,29 +0,0 @@
1
- export const getRelativeMinuteTime = (params = {}) => {
2
- const { relativeMinutes = 0, relativeSeconds = 0, timeZone, format } = params;
3
- const now = new Date();
4
- let currentDate;
5
- if (timeZone) {
6
- const options = { timeZone };
7
- const currentDateISOString = now.toLocaleString('en-US', options).split(',')[0];
8
- currentDate = new Date(currentDateISOString);
9
- }
10
- else {
11
- currentDate = now;
12
- }
13
- const startOfMinute = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate(), currentDate.getHours(), currentDate.getMinutes(), 0, 0);
14
- const targetTime = startOfMinute.getTime() + relativeMinutes * 60 * 1000 + relativeSeconds * 1000;
15
- if (format === 'date') {
16
- return new Date(targetTime);
17
- }
18
- else if (format === 'timestamp') {
19
- return targetTime;
20
- }
21
- else if (format) {
22
- const formatter = new Intl.DateTimeFormat(undefined, format);
23
- return formatter.format(new Date(targetTime));
24
- }
25
- else {
26
- return new Date(targetTime);
27
- }
28
- };
29
- //# sourceMappingURL=minute-time-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"minute-time-generator.js","sourceRoot":"","sources":["../../../src/value-generator/minute-time-generator.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAmC,EAAE,EAA0B,EAAE;IACrG,MAAM,EAAE,eAAe,GAAG,CAAC,EAAE,eAAe,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAE7E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,IAAI,WAAiB,CAAA;IAErB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,OAAO,GAA+B,EAAE,QAAQ,EAAE,CAAA;QACxD,MAAM,oBAAoB,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/E,WAAW,GAAG,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAC9C,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,GAAG,CAAA;IACnB,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,IAAI,CAC5B,WAAW,CAAC,WAAW,EAAE,EACzB,WAAW,CAAC,QAAQ,EAAE,EACtB,WAAW,CAAC,OAAO,EAAE,EACrB,WAAW,CAAC,QAAQ,EAAE,EACtB,WAAW,CAAC,UAAU,EAAE,EACxB,CAAC,EACD,CAAC,CACF,CAAA;IACD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,eAAe,GAAG,EAAE,GAAG,IAAI,GAAG,eAAe,GAAG,IAAI,CAAA;IAEjG,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;IAC7B,CAAC;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,UAAU,CAAA;IACnB,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC5D,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;IAC/C,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;IAC7B,CAAC;AACH,CAAC,CAAA","sourcesContent":["export type RelativeMinuteTimeParams = {\n timeZone?: string\n format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions\n relativeMinutes?: number\n relativeSeconds?: number\n}\n\nexport const getRelativeMinuteTime = (params: RelativeMinuteTimeParams = {}): Date | number | string => {\n const { relativeMinutes = 0, relativeSeconds = 0, timeZone, format } = params\n\n const now = new Date()\n let currentDate: Date\n\n if (timeZone) {\n const options: Intl.DateTimeFormatOptions = { timeZone }\n const currentDateISOString = now.toLocaleString('en-US', options).split(',')[0]\n currentDate = new Date(currentDateISOString)\n } else {\n currentDate = now\n }\n\n const startOfMinute = new Date(\n currentDate.getFullYear(),\n currentDate.getMonth(),\n currentDate.getDate(),\n currentDate.getHours(),\n currentDate.getMinutes(),\n 0,\n 0\n )\n const targetTime = startOfMinute.getTime() + relativeMinutes * 60 * 1000 + relativeSeconds * 1000\n\n if (format === 'date') {\n return new Date(targetTime)\n } else if (format === 'timestamp') {\n return targetTime\n } else if (format) {\n const formatter = new Intl.DateTimeFormat(undefined, format)\n return formatter.format(new Date(targetTime))\n } else {\n return new Date(targetTime)\n }\n}\n"]}
@@ -1,7 +0,0 @@
1
- export type RelativeMonthDateParams = {
2
- timeZone?: string;
3
- format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions;
4
- relativeMonths?: number;
5
- relativeDates?: number;
6
- };
7
- export declare const getRelativeMonthDate: (params?: RelativeMonthDateParams) => Date | number | string;
@@ -1,31 +0,0 @@
1
- export const getRelativeMonthDate = (params = {}) => {
2
- const { relativeMonths = 0, relativeDates = 0, timeZone, format } = params;
3
- const now = new Date();
4
- let currentDate;
5
- if (timeZone) {
6
- const options = { timeZone };
7
- const currentDateISOString = now.toLocaleString('en-US', options).split(',')[0];
8
- currentDate = new Date(currentDateISOString);
9
- }
10
- else {
11
- currentDate = now;
12
- }
13
- const targetMonth = currentDate.getMonth() + relativeMonths;
14
- const targetYear = currentDate.getFullYear() + Math.floor(targetMonth / 12);
15
- const targetMonthRemainder = targetMonth % 12;
16
- const targetDate = new Date(targetYear, targetMonthRemainder, currentDate.getDate() + relativeDates);
17
- if (format === 'date') {
18
- return targetDate;
19
- }
20
- else if (format === 'timestamp') {
21
- return targetDate.getTime();
22
- }
23
- else if (format) {
24
- const formatter = new Intl.DateTimeFormat(undefined, format);
25
- return formatter.format(targetDate);
26
- }
27
- else {
28
- return targetDate;
29
- }
30
- };
31
- //# sourceMappingURL=month-date-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"month-date-generator.js","sourceRoot":"","sources":["../../../src/value-generator/month-date-generator.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAkC,EAAE,EAA0B,EAAE;IACnG,MAAM,EAAE,cAAc,GAAG,CAAC,EAAE,aAAa,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAE1E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,IAAI,WAAiB,CAAA;IAErB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,OAAO,GAA+B,EAAE,QAAQ,EAAE,CAAA;QACxD,MAAM,oBAAoB,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/E,WAAW,GAAG,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAC9C,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,GAAG,CAAA;IACnB,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,EAAE,GAAG,cAAc,CAAA;IAC3D,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,CAAA;IAC3E,MAAM,oBAAoB,GAAG,WAAW,GAAG,EAAE,CAAA;IAE7C,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,oBAAoB,EAAE,WAAW,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,CAAA;IAEpG,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,UAAU,CAAA;IACnB,CAAC;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,UAAU,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC5D,OAAO,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACrC,CAAC;SAAM,CAAC;QACN,OAAO,UAAU,CAAA;IACnB,CAAC;AACH,CAAC,CAAA","sourcesContent":["export type RelativeMonthDateParams = {\n timeZone?: string\n format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions\n relativeMonths?: number\n relativeDates?: number\n}\n\nexport const getRelativeMonthDate = (params: RelativeMonthDateParams = {}): Date | number | string => {\n const { relativeMonths = 0, relativeDates = 0, timeZone, format } = params\n\n const now = new Date()\n let currentDate: Date\n\n if (timeZone) {\n const options: Intl.DateTimeFormatOptions = { timeZone }\n const currentDateISOString = now.toLocaleString('en-US', options).split(',')[0]\n currentDate = new Date(currentDateISOString)\n } else {\n currentDate = now\n }\n\n const targetMonth = currentDate.getMonth() + relativeMonths\n const targetYear = currentDate.getFullYear() + Math.floor(targetMonth / 12)\n const targetMonthRemainder = targetMonth % 12\n\n const targetDate = new Date(targetYear, targetMonthRemainder, currentDate.getDate() + relativeDates)\n\n if (format === 'date') {\n return targetDate\n } else if (format === 'timestamp') {\n return targetDate.getTime()\n } else if (format) {\n const formatter = new Intl.DateTimeFormat(undefined, format)\n return formatter.format(targetDate)\n } else {\n return targetDate\n }\n}\n"]}
@@ -1,4 +0,0 @@
1
- export declare const getCurrentTime: (params?: {
2
- timeZone?: string;
3
- format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions;
4
- }) => Date | number | string;
@@ -1,8 +0,0 @@
1
- import { getRelativeTime } from './time-generator';
2
- export const getCurrentTime = (params = {}) => {
3
- return getRelativeTime({
4
- ...params,
5
- relativeSeconds: 0
6
- });
7
- };
8
- //# sourceMappingURL=now-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"now-generator.js","sourceRoot":"","sources":["../../../src/value-generator/now-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,SAA4F,EAAE,EACtE,EAAE;IAC1B,OAAO,eAAe,CAAC;QACrB,GAAG,MAAM;QACT,eAAe,EAAE,CAAC;KACnB,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import { getRelativeTime } from './time-generator'\n\nexport const getCurrentTime = (\n params: { timeZone?: string; format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions } = {}\n): Date | number | string => {\n return getRelativeTime({\n ...params,\n relativeSeconds: 0\n })\n}\n"]}
@@ -1,11 +0,0 @@
1
- import { ValueGeneratorFn } from '../types';
2
- export declare function registerValueGenerator(name: string, generator: ValueGeneratorFn): void;
3
- export declare function unregisterValueGenerator(name: string): void;
4
- export declare function getValueGenerators(): {
5
- [x: string]: ValueGeneratorFn;
6
- };
7
- export declare function getValueGenerator(name: string): ValueGeneratorFn;
8
- export declare function getDefaultValue(parameter: {
9
- name: string;
10
- params?: any[];
11
- } | Function | any, binder?: any): any;
@@ -1,50 +0,0 @@
1
- import { NOOP } from '../const';
2
- import { getCurrentTime } from './now-generator';
3
- import { getToday } from './today-generator';
4
- import { getRelativeDate } from './date-generator';
5
- import { getRelativeWeekDate } from './week-date-generator';
6
- import { getRelativeMonthDate } from './month-date-generator';
7
- import { getRelativeYearDate } from './year-date-generator';
8
- import { getRelativeTime } from './time-generator';
9
- import { getRelativeMinuteTime } from './minute-time-generator';
10
- import { getRelativeHourTime } from './hour-time-generator';
11
- var VALUE_GENERATORS = {
12
- now: getCurrentTime,
13
- today: getToday,
14
- date: getRelativeDate,
15
- time: getRelativeTime,
16
- getCurrentTime,
17
- getToday,
18
- getRelativeDate,
19
- getRelativeWeekDate,
20
- getRelativeMonthDate,
21
- getRelativeYearDate,
22
- getRelativeMinuteTime,
23
- getRelativeHourTime
24
- };
25
- export function registerValueGenerator(name, generator) {
26
- VALUE_GENERATORS[name] = generator;
27
- }
28
- export function unregisterValueGenerator(name) {
29
- delete VALUE_GENERATORS[name];
30
- }
31
- export function getValueGenerators() {
32
- return { ...VALUE_GENERATORS };
33
- }
34
- export function getValueGenerator(name) {
35
- return VALUE_GENERATORS[name] || NOOP;
36
- }
37
- export function getDefaultValue(parameter, binder) {
38
- if (typeof parameter == 'function') {
39
- return parameter.call(binder || null);
40
- }
41
- else if (typeof parameter == 'object') {
42
- const { name, params } = parameter;
43
- const generator = getValueGenerator(name);
44
- if (generator !== NOOP) {
45
- return generator.call(binder || null, params);
46
- }
47
- }
48
- return parameter;
49
- }
50
- //# sourceMappingURL=registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/value-generator/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAG/B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,IAAI,gBAAgB,GAAyC;IAC3D,GAAG,EAAE,cAAc;IACnB,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,eAAe;IACrB,cAAc;IACd,QAAQ;IACR,eAAe;IACf,mBAAmB;IACnB,oBAAoB;IACpB,mBAAmB;IACnB,qBAAqB;IACrB,mBAAmB;CACpB,CAAA;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,SAA2B;IAC9E,gBAAgB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,EAAE,GAAG,gBAAgB,EAAE,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAA4D,EAAE,MAAY;IACxG,IAAI,OAAO,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAA;IACvC,CAAC;SAAM,IAAI,OAAO,SAAS,IAAI,QAAQ,EAAE,CAAC;QACxC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;QAClC,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAEzC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,MAAM,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC","sourcesContent":["import { NOOP } from '../const'\nimport { ValueGeneratorFn } from '../types'\n\nimport { getCurrentTime } from './now-generator'\nimport { getToday } from './today-generator'\nimport { getRelativeDate } from './date-generator'\nimport { getRelativeWeekDate } from './week-date-generator'\nimport { getRelativeMonthDate } from './month-date-generator'\nimport { getRelativeYearDate } from './year-date-generator'\nimport { getRelativeTime } from './time-generator'\nimport { getRelativeMinuteTime } from './minute-time-generator'\nimport { getRelativeHourTime } from './hour-time-generator'\n\nvar VALUE_GENERATORS: { [name: string]: ValueGeneratorFn } = {\n now: getCurrentTime,\n today: getToday,\n date: getRelativeDate,\n time: getRelativeTime,\n getCurrentTime,\n getToday,\n getRelativeDate,\n getRelativeWeekDate,\n getRelativeMonthDate,\n getRelativeYearDate,\n getRelativeMinuteTime,\n getRelativeHourTime\n}\n\nexport function registerValueGenerator(name: string, generator: ValueGeneratorFn) {\n VALUE_GENERATORS[name] = generator\n}\n\nexport function unregisterValueGenerator(name: string) {\n delete VALUE_GENERATORS[name]\n}\n\nexport function getValueGenerators() {\n return { ...VALUE_GENERATORS }\n}\n\nexport function getValueGenerator(name: string) {\n return VALUE_GENERATORS[name] || NOOP\n}\n\nexport function getDefaultValue(parameter: { name: string; params?: any[] } | Function | any, binder?: any) {\n if (typeof parameter == 'function') {\n return parameter.call(binder || null)\n } else if (typeof parameter == 'object') {\n const { name, params } = parameter\n const generator = getValueGenerator(name)\n\n if (generator !== NOOP) {\n return generator.call(binder || null, params)\n }\n }\n\n return parameter\n}\n"]}
@@ -1,6 +0,0 @@
1
- export type RelativeTimeParams = {
2
- relativeSeconds?: number;
3
- timeZone?: string;
4
- format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions;
5
- };
6
- export declare const getRelativeTime: (params?: RelativeTimeParams) => string | number | Date;
@@ -1,28 +0,0 @@
1
- export const getRelativeTime = (params = {}) => {
2
- const { relativeSeconds = 0, timeZone, format } = params;
3
- const now = new Date();
4
- let currentDate;
5
- if (timeZone) {
6
- const options = { timeZone };
7
- const currentDateISOString = now.toLocaleString('en-US', options).split(',')[0];
8
- currentDate = new Date(currentDateISOString);
9
- }
10
- else {
11
- currentDate = now;
12
- }
13
- const targetTime = currentDate.getTime() + relativeSeconds * 1000;
14
- if (format === 'date') {
15
- return new Date(targetTime);
16
- }
17
- else if (format === 'timestamp') {
18
- return targetTime;
19
- }
20
- else if (format) {
21
- const formatter = new Intl.DateTimeFormat(undefined, format);
22
- return formatter.format(new Date(targetTime));
23
- }
24
- else {
25
- return targetTime;
26
- }
27
- };
28
- //# sourceMappingURL=time-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"time-generator.js","sourceRoot":"","sources":["../../../src/value-generator/time-generator.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAA6B,EAAE,EAA0B,EAAE;IACzF,MAAM,EAAE,eAAe,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAExD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IAEtB,IAAI,WAAiB,CAAA;IACrB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAA;QAC5B,MAAM,oBAAoB,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/E,WAAW,GAAG,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAC9C,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,GAAG,CAAA;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,eAAe,GAAG,IAAI,CAAA;IAEjE,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;IAC7B,CAAC;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,UAAU,CAAA;IACnB,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC5D,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;IAC/C,CAAC;SAAM,CAAC;QACN,OAAO,UAAU,CAAA;IACnB,CAAC;AACH,CAAC,CAAA","sourcesContent":["export type RelativeTimeParams = {\n relativeSeconds?: number\n timeZone?: string\n format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions\n}\n\nexport const getRelativeTime = (params: RelativeTimeParams = {}): string | number | Date => {\n const { relativeSeconds = 0, timeZone, format } = params\n\n const now = new Date()\n\n let currentDate: Date\n if (timeZone) {\n const options = { timeZone }\n const currentDateISOString = now.toLocaleString('en-US', options).split(',')[0]\n currentDate = new Date(currentDateISOString)\n } else {\n currentDate = now\n }\n\n const targetTime = currentDate.getTime() + relativeSeconds * 1000\n\n if (format === 'date') {\n return new Date(targetTime)\n } else if (format === 'timestamp') {\n return targetTime\n } else if (format) {\n const formatter = new Intl.DateTimeFormat(undefined, format)\n return formatter.format(new Date(targetTime))\n } else {\n return targetTime\n }\n}\n"]}
@@ -1,4 +0,0 @@
1
- export declare const getToday: (params?: {
2
- timeZone?: string;
3
- format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions;
4
- }) => Date | number | string;
@@ -1,8 +0,0 @@
1
- import { getRelativeDate } from './date-generator';
2
- export const getToday = (params = {}) => {
3
- return getRelativeDate({
4
- ...params,
5
- relativeDate: 0
6
- });
7
- };
8
- //# sourceMappingURL=today-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"today-generator.js","sourceRoot":"","sources":["../../../src/value-generator/today-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,SAA4F,EAAE,EACtE,EAAE;IAC1B,OAAO,eAAe,CAAC;QACrB,GAAG,MAAM;QACT,YAAY,EAAE,CAAC;KAChB,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import { getRelativeDate } from './date-generator'\n\nexport const getToday = (\n params: { timeZone?: string; format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions } = {}\n): Date | number | string => {\n return getRelativeDate({\n ...params,\n relativeDate: 0\n })\n}\n"]}
@@ -1,7 +0,0 @@
1
- export type RelativeWeekDateParams = {
2
- timeZone?: string;
3
- format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions;
4
- relativeWeeks?: number;
5
- relativeDates?: number;
6
- };
7
- export declare const getRelativeWeekDate: (params?: RelativeWeekDateParams) => Date | number | string;