@operato/data-grist 2.0.0-alpha.3 → 2.0.0-alpha.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +163 -0
- package/dist/src/accumulator/accumulator.js +4 -4
- package/dist/src/accumulator/accumulator.js.map +1 -1
- package/dist/src/configure/rows-option-builder.js +2 -1
- package/dist/src/configure/rows-option-builder.js.map +1 -1
- package/dist/src/configure/zero-config.js +1 -0
- package/dist/src/configure/zero-config.js.map +1 -1
- package/dist/src/data-card/event-handlers/record-card-click-handler.js +1 -1
- package/dist/src/data-card/event-handlers/record-card-click-handler.js.map +1 -1
- package/dist/src/data-grid/data-grid-accum-field.js +3 -2
- package/dist/src/data-grid/data-grid-accum-field.js.map +1 -1
- package/dist/src/data-grid/data-grid-body.js +5 -0
- package/dist/src/data-grid/data-grid-body.js.map +1 -1
- package/dist/src/data-grid/data-grid-header.d.ts +1 -0
- package/dist/src/data-grid/data-grid-header.js +16 -14
- package/dist/src/data-grid/data-grid-header.js.map +1 -1
- package/dist/src/data-grist.d.ts +225 -3
- package/dist/src/data-grist.js +195 -3
- package/dist/src/data-grist.js.map +1 -1
- package/dist/src/data-list/event-handlers/record-partial-click-handler.js +1 -1
- package/dist/src/data-list/event-handlers/record-partial-click-handler.js.map +1 -1
- package/dist/src/data-manipulator.d.ts +6 -6
- package/dist/src/data-manipulator.js +44 -29
- package/dist/src/data-manipulator.js.map +1 -1
- package/dist/src/editors/ox-grist-editor-number.js +2 -2
- package/dist/src/editors/ox-grist-editor-number.js.map +1 -1
- package/dist/src/editors/ox-grist-editor.js +6 -2
- package/dist/src/editors/ox-grist-editor.js.map +1 -1
- package/dist/src/filters/filter-range-date.js +12 -1
- package/dist/src/filters/filter-range-date.js.map +1 -1
- package/dist/src/filters/filters-form.d.ts +1 -0
- package/dist/src/filters/filters-form.js +21 -3
- package/dist/src/filters/filters-form.js.map +1 -1
- package/dist/src/handlers/contextmenu-tree-mutation.js +1 -19
- package/dist/src/handlers/contextmenu-tree-mutation.js.map +1 -1
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.js +0 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/types.d.ts +1 -8
- package/dist/src/types.js.map +1 -1
- package/dist/stories/accumulator.stories.js +10 -5
- package/dist/stories/accumulator.stories.js.map +1 -1
- package/dist/stories/dynamic-editable.stories.js +10 -0
- package/dist/stories/dynamic-editable.stories.js.map +1 -1
- package/dist/stories/fixed-column.stories.js +3 -3
- package/dist/stories/fixed-column.stories.js.map +1 -1
- package/dist/stories/grist-modes.stories.js +23 -2
- package/dist/stories/grist-modes.stories.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/default-value/default-value.md +1 -1
- package/docs/default-value/value-generator/date-generator.md +2 -2
- package/docs/default-value/value-generator/month-date-generator.md +2 -2
- package/docs/default-value/value-generator/week-date-generator.md +2 -2
- package/docs/default-value/value-generator/year-date-generator.md +2 -2
- package/package.json +19 -18
- package/src/accumulator/accumulator.ts +4 -4
- package/src/configure/rows-option-builder.ts +11 -1
- package/src/configure/zero-config.ts +1 -0
- package/src/data-card/event-handlers/record-card-click-handler.ts +1 -1
- package/src/data-grid/data-grid-accum-field.ts +3 -2
- package/src/data-grid/data-grid-body.ts +5 -0
- package/src/data-grid/data-grid-header.ts +22 -18
- package/src/data-grist.ts +250 -3
- package/src/data-list/event-handlers/record-partial-click-handler.ts +1 -1
- package/src/data-manipulator.ts +52 -31
- package/src/editors/ox-grist-editor-number.ts +3 -2
- package/src/editors/ox-grist-editor.ts +6 -2
- package/src/filters/filter-range-date.ts +16 -1
- package/src/filters/filters-form.ts +25 -2
- package/src/handlers/contextmenu-tree-mutation.ts +1 -19
- package/src/index.ts +0 -1
- package/src/types.ts +1 -9
- package/stories/accumulator.stories.ts +10 -5
- package/stories/dynamic-editable.stories.ts +10 -0
- package/stories/fixed-column.stories.ts +3 -3
- package/stories/grist-modes.stories.ts +23 -2
- package/themes/grist-theme.css +1 -1
- package/dist/src/value-generator/date-generator.d.ts +0 -6
- package/dist/src/value-generator/date-generator.js +0 -30
- package/dist/src/value-generator/date-generator.js.map +0 -1
- package/dist/src/value-generator/hour-time-generator.d.ts +0 -7
- package/dist/src/value-generator/hour-time-generator.js +0 -29
- package/dist/src/value-generator/hour-time-generator.js.map +0 -1
- package/dist/src/value-generator/index.d.ts +0 -1
- package/dist/src/value-generator/index.js +0 -2
- package/dist/src/value-generator/index.js.map +0 -1
- package/dist/src/value-generator/minute-time-generator.d.ts +0 -7
- package/dist/src/value-generator/minute-time-generator.js +0 -29
- package/dist/src/value-generator/minute-time-generator.js.map +0 -1
- package/dist/src/value-generator/month-date-generator.d.ts +0 -7
- package/dist/src/value-generator/month-date-generator.js +0 -31
- package/dist/src/value-generator/month-date-generator.js.map +0 -1
- package/dist/src/value-generator/now-generator.d.ts +0 -4
- package/dist/src/value-generator/now-generator.js +0 -8
- package/dist/src/value-generator/now-generator.js.map +0 -1
- package/dist/src/value-generator/registry.d.ts +0 -11
- package/dist/src/value-generator/registry.js +0 -50
- package/dist/src/value-generator/registry.js.map +0 -1
- package/dist/src/value-generator/time-generator.d.ts +0 -6
- package/dist/src/value-generator/time-generator.js +0 -28
- package/dist/src/value-generator/time-generator.js.map +0 -1
- package/dist/src/value-generator/today-generator.d.ts +0 -4
- package/dist/src/value-generator/today-generator.js +0 -8
- package/dist/src/value-generator/today-generator.js.map +0 -1
- package/dist/src/value-generator/week-date-generator.d.ts +0 -7
- package/dist/src/value-generator/week-date-generator.js +0 -29
- package/dist/src/value-generator/week-date-generator.js.map +0 -1
- package/dist/src/value-generator/year-date-generator.d.ts +0 -7
- package/dist/src/value-generator/year-date-generator.js +0 -29
- package/dist/src/value-generator/year-date-generator.js.map +0 -1
- package/src/value-generator/date-generator.ts +0 -35
- package/src/value-generator/hour-time-generator.ts +0 -43
- package/src/value-generator/index.ts +0 -1
- package/src/value-generator/minute-time-generator.ts +0 -43
- package/src/value-generator/month-date-generator.ts +0 -38
- package/src/value-generator/now-generator.ts +0 -10
- package/src/value-generator/registry.ts +0 -58
- package/src/value-generator/time-generator.ts +0 -33
- package/src/value-generator/today-generator.ts +0 -10
- package/src/value-generator/week-date-generator.ts +0 -40
- 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 =
|
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
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:
|
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:
|
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
|
},
|
package/themes/grist-theme.css
CHANGED
@@ -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
|
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,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 +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 +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,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 +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;
|