@operato/data-grist 1.3.5 → 1.3.11

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 (153) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/src/data-card/data-card-field.js +1 -2
  3. package/dist/src/data-card/data-card-field.js.map +1 -1
  4. package/dist/src/data-card/data-card-gutter.js +1 -2
  5. package/dist/src/data-card/data-card-gutter.js.map +1 -1
  6. package/dist/src/data-card/data-card.js +1 -2
  7. package/dist/src/data-card/data-card.js.map +1 -1
  8. package/dist/src/data-card/record-card.js +1 -2
  9. package/dist/src/data-card/record-card.js.map +1 -1
  10. package/dist/src/data-grid/data-grid-body.js +1 -2
  11. package/dist/src/data-grid/data-grid-body.js.map +1 -1
  12. package/dist/src/data-grid/data-grid-field.js +1 -2
  13. package/dist/src/data-grid/data-grid-field.js.map +1 -1
  14. package/dist/src/data-grid/data-grid-footer.js +1 -2
  15. package/dist/src/data-grid/data-grid-footer.js.map +1 -1
  16. package/dist/src/data-grid/data-grid-header.js +1 -2
  17. package/dist/src/data-grid/data-grid-header.js.map +1 -1
  18. package/dist/src/data-grid/data-grid.js +1 -2
  19. package/dist/src/data-grid/data-grid.js.map +1 -1
  20. package/dist/src/data-grist.js +1 -2
  21. package/dist/src/data-grist.js.map +1 -1
  22. package/dist/src/data-list/data-list-field.js +1 -2
  23. package/dist/src/data-list/data-list-field.js.map +1 -1
  24. package/dist/src/data-list/data-list-gutter.js +1 -2
  25. package/dist/src/data-list/data-list-gutter.js.map +1 -1
  26. package/dist/src/data-list/data-list.js +1 -2
  27. package/dist/src/data-list/data-list.js.map +1 -1
  28. package/dist/src/data-list/record-partial.js +1 -2
  29. package/dist/src/data-list/record-partial.js.map +1 -1
  30. package/dist/src/data-report/data-report-body.js +1 -2
  31. package/dist/src/data-report/data-report-body.js.map +1 -1
  32. package/dist/src/data-report/data-report-component.js +1 -2
  33. package/dist/src/data-report/data-report-component.js.map +1 -1
  34. package/dist/src/data-report/data-report-field.js +1 -2
  35. package/dist/src/data-report/data-report-field.js.map +1 -1
  36. package/dist/src/data-report.js +1 -2
  37. package/dist/src/data-report.js.map +1 -1
  38. package/dist/src/editors/ox-grist-editor-checkbox.js +1 -2
  39. package/dist/src/editors/ox-grist-editor-checkbox.js.map +1 -1
  40. package/dist/src/editors/ox-grist-editor-color.js +1 -2
  41. package/dist/src/editors/ox-grist-editor-color.js.map +1 -1
  42. package/dist/src/editors/ox-grist-editor-date.js +1 -2
  43. package/dist/src/editors/ox-grist-editor-date.js.map +1 -1
  44. package/dist/src/editors/ox-grist-editor-datetime.js +1 -2
  45. package/dist/src/editors/ox-grist-editor-datetime.js.map +1 -1
  46. package/dist/src/editors/ox-grist-editor-email.js +1 -2
  47. package/dist/src/editors/ox-grist-editor-email.js.map +1 -1
  48. package/dist/src/editors/ox-grist-editor-file.js +1 -2
  49. package/dist/src/editors/ox-grist-editor-file.js.map +1 -1
  50. package/dist/src/editors/ox-grist-editor-image.js +1 -2
  51. package/dist/src/editors/ox-grist-editor-image.js.map +1 -1
  52. package/dist/src/editors/ox-grist-editor-month.js +1 -2
  53. package/dist/src/editors/ox-grist-editor-month.js.map +1 -1
  54. package/dist/src/editors/ox-grist-editor-number.js +1 -2
  55. package/dist/src/editors/ox-grist-editor-number.js.map +1 -1
  56. package/dist/src/editors/ox-grist-editor-password.js +1 -2
  57. package/dist/src/editors/ox-grist-editor-password.js.map +1 -1
  58. package/dist/src/editors/ox-grist-editor-select.js +1 -2
  59. package/dist/src/editors/ox-grist-editor-select.js.map +1 -1
  60. package/dist/src/editors/ox-grist-editor-tel.js +1 -2
  61. package/dist/src/editors/ox-grist-editor-tel.js.map +1 -1
  62. package/dist/src/editors/ox-grist-editor-text.js +1 -2
  63. package/dist/src/editors/ox-grist-editor-text.js.map +1 -1
  64. package/dist/src/editors/ox-grist-editor-time.js +1 -2
  65. package/dist/src/editors/ox-grist-editor-time.js.map +1 -1
  66. package/dist/src/editors/ox-grist-editor-week.js +1 -2
  67. package/dist/src/editors/ox-grist-editor-week.js.map +1 -1
  68. package/dist/src/editors/ox-grist-editor.js +13 -7
  69. package/dist/src/editors/ox-grist-editor.js.map +1 -1
  70. package/dist/src/empty-note.js +1 -2
  71. package/dist/src/empty-note.js.map +1 -1
  72. package/dist/src/filters/filters-form.js +1 -2
  73. package/dist/src/filters/filters-form.js.map +1 -1
  74. package/dist/src/index.d.ts +1 -0
  75. package/dist/src/index.js +1 -0
  76. package/dist/src/index.js.map +1 -1
  77. package/dist/src/record-view/record-creator.js +1 -2
  78. package/dist/src/record-view/record-creator.js.map +1 -1
  79. package/dist/src/record-view/record-view-body.js +1 -2
  80. package/dist/src/record-view/record-view-body.js.map +1 -1
  81. package/dist/src/record-view/record-view.js +1 -2
  82. package/dist/src/record-view/record-view.js.map +1 -1
  83. package/dist/src/renderers/ox-grist-renderer-progress.js +1 -2
  84. package/dist/src/renderers/ox-grist-renderer-progress.js.map +1 -1
  85. package/dist/src/renderers/ox-grist-renderer.js +1 -2
  86. package/dist/src/renderers/ox-grist-renderer.js.map +1 -1
  87. package/dist/src/sorters/sorters-control.js +1 -2
  88. package/dist/src/sorters/sorters-control.js.map +1 -1
  89. package/dist/src/types.d.ts +12 -0
  90. package/dist/src/types.js.map +1 -1
  91. package/dist/src/value-generator/date-generator.d.ts +6 -0
  92. package/dist/src/value-generator/date-generator.js +30 -0
  93. package/dist/src/value-generator/date-generator.js.map +1 -0
  94. package/dist/src/value-generator/hour-time-generator.d.ts +7 -0
  95. package/dist/src/value-generator/hour-time-generator.js +29 -0
  96. package/dist/src/value-generator/hour-time-generator.js.map +1 -0
  97. package/dist/src/value-generator/index.d.ts +1 -0
  98. package/dist/src/value-generator/index.js +2 -0
  99. package/dist/src/value-generator/index.js.map +1 -0
  100. package/dist/src/value-generator/minute-time-generator.d.ts +7 -0
  101. package/dist/src/value-generator/minute-time-generator.js +29 -0
  102. package/dist/src/value-generator/minute-time-generator.js.map +1 -0
  103. package/dist/src/value-generator/month-date-generator.d.ts +7 -0
  104. package/dist/src/value-generator/month-date-generator.js +31 -0
  105. package/dist/src/value-generator/month-date-generator.js.map +1 -0
  106. package/dist/src/value-generator/now-generator.d.ts +4 -0
  107. package/dist/src/value-generator/now-generator.js +8 -0
  108. package/dist/src/value-generator/now-generator.js.map +1 -0
  109. package/dist/src/value-generator/registry.d.ts +11 -0
  110. package/dist/src/value-generator/registry.js +50 -0
  111. package/dist/src/value-generator/registry.js.map +1 -0
  112. package/dist/src/value-generator/time-generator.d.ts +6 -0
  113. package/dist/src/value-generator/time-generator.js +28 -0
  114. package/dist/src/value-generator/time-generator.js.map +1 -0
  115. package/dist/src/value-generator/today-generator.d.ts +4 -0
  116. package/dist/src/value-generator/today-generator.js +8 -0
  117. package/dist/src/value-generator/today-generator.js.map +1 -0
  118. package/dist/src/value-generator/week-date-generator.d.ts +7 -0
  119. package/dist/src/value-generator/week-date-generator.js +29 -0
  120. package/dist/src/value-generator/week-date-generator.js.map +1 -0
  121. package/dist/src/value-generator/year-date-generator.d.ts +7 -0
  122. package/dist/src/value-generator/year-date-generator.js +29 -0
  123. package/dist/src/value-generator/year-date-generator.js.map +1 -0
  124. package/dist/stories/grist-modes.stories.js +6 -2
  125. package/dist/stories/grist-modes.stories.js.map +1 -1
  126. package/dist/tsconfig.tsbuildinfo +1 -1
  127. package/docs/default-value/default-value.md +97 -0
  128. package/docs/default-value/value-generator/date-generator.md +40 -0
  129. package/docs/default-value/value-generator/default-value-generator.md +9 -0
  130. package/docs/default-value/value-generator/hour-time-generator.md +43 -0
  131. package/docs/default-value/value-generator/minute-time-generator.md +43 -0
  132. package/docs/default-value/value-generator/month-date-generator.md +43 -0
  133. package/docs/default-value/value-generator/now-generator.md +39 -0
  134. package/docs/default-value/value-generator/time-generator.md +40 -0
  135. package/docs/default-value/value-generator/today-generator.md +39 -0
  136. package/docs/default-value/value-generator/week-date-generator.md +43 -0
  137. package/docs/default-value/value-generator/year-date-generator.md +43 -0
  138. package/package.json +2 -2
  139. package/src/editors/ox-grist-editor.ts +16 -5
  140. package/src/index.ts +1 -0
  141. package/src/types.ts +16 -0
  142. package/src/value-generator/date-generator.ts +35 -0
  143. package/src/value-generator/hour-time-generator.ts +43 -0
  144. package/src/value-generator/index.ts +1 -0
  145. package/src/value-generator/minute-time-generator.ts +43 -0
  146. package/src/value-generator/month-date-generator.ts +38 -0
  147. package/src/value-generator/now-generator.ts +10 -0
  148. package/src/value-generator/registry.ts +58 -0
  149. package/src/value-generator/time-generator.ts +33 -0
  150. package/src/value-generator/today-generator.ts +10 -0
  151. package/src/value-generator/week-date-generator.ts +40 -0
  152. package/src/value-generator/year-date-generator.ts +36 -0
  153. package/stories/grist-modes.stories.ts +6 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ox-grist-renderer-progress.js","sourceRoot":"","sources":["../../../src/renderers/ox-grist-renderer-progress.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAY,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAGrD,IAAa,uBAAuB,GAApC,MAAa,uBAAwB,SAAQ,eAAe;IA4B1D,IAAI,gBAAgB;QAClB,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;QAC7D,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC9B,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAEjG,OAAO,IAAI,CAAA;;mCAEoB,QAAQ,YAAY,QAAQ;KAC1D,CAAA;IACH,CAAC;;AApCM,8BAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBlB,AAzBY,CAyBZ;AA1BU,uBAAuB;IADnC,aAAa,CAAC,4BAA4B,CAAC;GAC/B,uBAAuB,CAsCnC;SAtCY,uBAAuB","sourcesContent":["import { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { OxGristRenderer } from './ox-grist-renderer'\n\n@customElement('ox-grist-progress-renderer')\nexport class OxGristRendererProgress extends OxGristRenderer {\n static styles = css`\n :host {\n display: block;\n position: relative;\n\n width: 100%;\n }\n\n #border {\n display: block;\n position: absolute;\n\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n\n border: var(--grist-input-progress-border);\n background-color: var(--grist-input-progress-background);\n }\n\n #bar {\n background-color: var(--grist-input-progress-bar-background);\n text-align: left;\n color: var(--grist-input-progress-bar-color);\n }\n `\n\n get rendererTemplate() {\n var { min = 0, max = 100 } = this.column.record.options || {}\n var value = Number(this.value)\n var progress = isNaN(value) ? 0 : Math.min(100, Math.max(0, ((value - min) * 100) / (max - min)))\n\n return html`\n <div id=\"border\"></div>\n <div id=\"bar\" style=\"width:${progress}%\">&nbsp;${progress}</div>\n `\n }\n}\n"]}
1
+ {"version":3,"file":"ox-grist-renderer-progress.js","sourceRoot":"","sources":["../../../src/renderers/ox-grist-renderer-progress.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAY,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAG9C,WAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,eAAe;IA4B1D,IAAI,gBAAgB;QAClB,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;QAC7D,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC9B,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAEjG,OAAO,IAAI,CAAA;;mCAEoB,QAAQ,YAAY,QAAQ;KAC1D,CAAA;IACH,CAAC;;AApCM,8BAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBlB,AAzBY,CAyBZ;AA1BU,uBAAuB;IADnC,aAAa,CAAC,4BAA4B,CAAC;GAC/B,uBAAuB,CAsCnC","sourcesContent":["import { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { OxGristRenderer } from './ox-grist-renderer'\n\n@customElement('ox-grist-progress-renderer')\nexport class OxGristRendererProgress extends OxGristRenderer {\n static styles = css`\n :host {\n display: block;\n position: relative;\n\n width: 100%;\n }\n\n #border {\n display: block;\n position: absolute;\n\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n\n border: var(--grist-input-progress-border);\n background-color: var(--grist-input-progress-background);\n }\n\n #bar {\n background-color: var(--grist-input-progress-bar-background);\n text-align: left;\n color: var(--grist-input-progress-bar-color);\n }\n `\n\n get rendererTemplate() {\n var { min = 0, max = 100 } = this.column.record.options || {}\n var value = Number(this.value)\n var progress = isNaN(value) ? 0 : Math.min(100, Math.max(0, ((value - min) * 100) / (max - min)))\n\n return html`\n <div id=\"border\"></div>\n <div id=\"bar\" style=\"width:${progress}%\">&nbsp;${progress}</div>\n `\n }\n}\n"]}
@@ -3,7 +3,7 @@ import { LitElement, css, html } from 'lit';
3
3
  import { ZERO_COLUMN, ZERO_RECORD } from '../configure/zero-config';
4
4
  import { customElement, property } from 'lit/decorators.js';
5
5
  const STYLE = css ``;
6
- let OxGristRenderer = class OxGristRenderer extends LitElement {
6
+ export let OxGristRenderer = class OxGristRenderer extends LitElement {
7
7
  constructor() {
8
8
  super(...arguments);
9
9
  this.column = ZERO_COLUMN;
@@ -44,5 +44,4 @@ __decorate([
44
44
  OxGristRenderer = __decorate([
45
45
  customElement('ox-grist-renderer')
46
46
  ], OxGristRenderer);
47
- export { OxGristRenderer };
48
47
  //# sourceMappingURL=ox-grist-renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ox-grist-renderer.js","sourceRoot":"","sources":["../../../src/renderers/ox-grist-renderer.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAI3D,MAAM,KAAK,GAAG,GAAG,CAAA,EAAE,CAAA;AAGnB,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,UAAU;IAA/C;;QAI8B,WAAM,GAAiB,WAAW,CAAA;QAClC,WAAM,GAAgB,WAAW,CAAA;IAmB/D,CAAC;IAdC,MAAM;QACJ,OAAO,IAAI,CAAC,gBAAgB,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAA;QACtC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAA;SAC7B;IACH,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAA,EAAE,CAAA;IACf,CAAC;;AAtBM,sBAAM,GAAG,KAAK,AAAR,CAAQ;AAEO;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CAAY;AACX;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CAAmC;AAClC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CAAkC;AACjC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iDAAkB;AACjB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CAAsB;AACrB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CAAa;AAR7B,eAAe;IAD3B,aAAa,CAAC,mBAAmB,CAAC;GACtB,eAAe,CAwB3B;SAxBY,eAAe","sourcesContent":["import { ColumnConfig, GristRecord } from '../types'\nimport { LitElement, css, html } from 'lit'\nimport { ZERO_COLUMN, ZERO_RECORD } from '../configure/zero-config'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { DataGridField } from '../data-grid/data-grid-field'\n\nconst STYLE = css``\n\n@customElement('ox-grist-renderer')\nexport class OxGristRenderer extends LitElement {\n static styles = STYLE\n\n @property({ type: Object }) value?: any\n @property({ type: Object }) column: ColumnConfig = ZERO_COLUMN\n @property({ type: Object }) record: GristRecord = ZERO_RECORD\n @property({ type: Number }) rowIndex?: number\n @property({ type: Object }) field?: DataGridField\n @property({ type: Number }) row?: number\n\n render() {\n return this.rendererTemplate\n }\n\n async firstUpdated() {\n const align = this.column.record.align\n if (align) {\n this.style.textAlign = align\n }\n }\n\n get rendererTemplate() {\n return html``\n }\n}\n"]}
1
+ {"version":3,"file":"ox-grist-renderer.js","sourceRoot":"","sources":["../../../src/renderers/ox-grist-renderer.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAI3D,MAAM,KAAK,GAAG,GAAG,CAAA,EAAE,CAAA;AAGZ,WAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,UAAU;IAAxC;;QAIuB,WAAM,GAAiB,WAAW,CAAA;QAClC,WAAM,GAAgB,WAAW,CAAA;IAmB/D,CAAC;IAdC,MAAM;QACJ,OAAO,IAAI,CAAC,gBAAgB,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAA;QACtC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAA;SAC7B;IACH,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAA,EAAE,CAAA;IACf,CAAC;;AAtBM,sBAAM,GAAG,KAAK,AAAR,CAAQ;AAEO;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CAAY;AACX;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CAAmC;AAClC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CAAkC;AACjC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iDAAkB;AACjB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CAAsB;AACrB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CAAa;AAR7B,eAAe;IAD3B,aAAa,CAAC,mBAAmB,CAAC;GACtB,eAAe,CAwB3B","sourcesContent":["import { ColumnConfig, GristRecord } from '../types'\nimport { LitElement, css, html } from 'lit'\nimport { ZERO_COLUMN, ZERO_RECORD } from '../configure/zero-config'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { DataGridField } from '../data-grid/data-grid-field'\n\nconst STYLE = css``\n\n@customElement('ox-grist-renderer')\nexport class OxGristRenderer extends LitElement {\n static styles = STYLE\n\n @property({ type: Object }) value?: any\n @property({ type: Object }) column: ColumnConfig = ZERO_COLUMN\n @property({ type: Object }) record: GristRecord = ZERO_RECORD\n @property({ type: Number }) rowIndex?: number\n @property({ type: Object }) field?: DataGridField\n @property({ type: Number }) row?: number\n\n render() {\n return this.rendererTemplate\n }\n\n async firstUpdated() {\n const align = this.column.record.align\n if (align) {\n this.style.textAlign = align\n }\n }\n\n get rendererTemplate() {\n return html``\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { css, html, LitElement } from 'lit';
3
3
  import { customElement, state } from 'lit/decorators.js';
4
- let SortersControl = class SortersControl extends LitElement {
4
+ export let SortersControl = class SortersControl extends LitElement {
5
5
  constructor() {
6
6
  super(...arguments);
7
7
  this.columns = [];
@@ -134,5 +134,4 @@ __decorate([
134
134
  SortersControl = __decorate([
135
135
  customElement('ox-sorters-control')
136
136
  ], SortersControl);
137
- export { SortersControl };
138
137
  //# sourceMappingURL=sorters-control.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sorters-control.js","sourceRoot":"","sources":["../../../src/sorters/sorters-control.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, LitElement, PropertyValues, TemplateResult } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\n\nimport { DataGrist } from '../data-grist'\nimport { ColumnConfig, GristConfig, SorterConfig } from '../types'\n\n@customElement('ox-sorters-control')\nexport class SortersControl extends LitElement {\n static styles = [\n css`\n :host {\n display: flex;\n flex-direction: column;\n white-space: nowrap;\n }\n\n [option] {\n flex: 1;\n\n display: flex;\n justify-content: center;\n align-items: center;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n padding: 3px var(--padding-narrow);\n }\n\n [option] > span {\n margin-right: auto;\n text-transform: capitalize;\n user-select: none;\n }\n [option] mwc-icon {\n margin-left: var(--margin-default);\n --mdc-icon-size: var(--fontsize-large);\n color: var(--primary-color);\n }\n [option] sub {\n color: var(--primary-color);\n }\n `\n ]\n\n @state() config!: GristConfig\n @state() columns: ColumnConfig[] = []\n @state() sorters: SorterConfig[] = []\n\n connectedCallback(): void {\n super.connectedCallback()\n\n const grist = this.closest('ox-grist') as DataGrist\n\n if (grist) {\n this.config = grist.compiledConfig\n grist.addEventListener('config-change', (e: Event) => {\n this.config = (e as CustomEvent).detail\n })\n\n grist.addEventListener('fetch-params-change', e => {\n const { sorters, from } = (e as CustomEvent).detail || {}\n if (from === 'sorters-control') {\n return\n }\n\n sorters && (this.sorters = sorters)\n })\n }\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('config')) {\n this.columns = this.config.columns.filter(column => column.sortable)\n this.sorters = this.sorters || this.config.sorters || []\n }\n }\n\n render(): TemplateResult {\n const columns = this.columns\n\n const current = this.sorters || []\n\n return html`\n ${columns.map(column => {\n const { name } = column\n var rank = current.findIndex(sorter => sorter.name === name) + 1\n var desc = rank !== 0 ? current[rank - 1].desc : null\n\n if (current.length <= 1) {\n rank = 0\n }\n\n return html`\n <div\n option\n @click=${(e: MouseEvent) => {\n this.onChangeSort(name)\n }}\n >\n <span>${column.header.renderer.call(this, column)}</span>\n ${desc === null\n ? html``\n : html`\n <mwc-icon>${desc ? 'keyboard_arrow_down' : 'keyboard_arrow_up'}</mwc-icon>\n ${rank === 0 ? html`` : html`<sub>${rank}</sub>`}\n `}\n </div>\n `\n })}\n `\n }\n\n onChangeSort(name: string) {\n var sorters = [...this.sorters]\n\n var idx = sorters.findIndex(sorter => sorter.name == name)\n if (idx !== -1) {\n let sorter = sorters[idx]\n if (sorter.desc) {\n sorters.splice(idx, 1)\n } else {\n sorter.desc = true\n }\n } else {\n var sorter = {\n name\n }\n\n sorters.push(sorter)\n }\n\n this.sorters = sorters\n\n this.dispatchEvent(\n new CustomEvent('fetch-params-change', {\n bubbles: true,\n composed: true,\n detail: {\n sorters: this.sorters,\n from: 'sorters-control'\n }\n })\n )\n }\n}\n"]}
1
+ {"version":3,"file":"sorters-control.js","sourceRoot":"","sources":["../../../src/sorters/sorters-control.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, LitElement, PropertyValues, TemplateResult } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\n\nimport { DataGrist } from '../data-grist'\nimport { ColumnConfig, GristConfig, SorterConfig } from '../types'\n\n@customElement('ox-sorters-control')\nexport class SortersControl extends LitElement {\n static styles = [\n css`\n :host {\n display: flex;\n flex-direction: column;\n white-space: nowrap;\n }\n\n [option] {\n flex: 1;\n\n display: flex;\n justify-content: center;\n align-items: center;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n padding: 3px var(--padding-narrow);\n }\n\n [option] > span {\n margin-right: auto;\n text-transform: capitalize;\n user-select: none;\n }\n [option] mwc-icon {\n margin-left: var(--margin-default);\n --mdc-icon-size: var(--fontsize-large);\n color: var(--primary-color);\n }\n [option] sub {\n color: var(--primary-color);\n }\n `\n ]\n\n @state() config!: GristConfig\n @state() columns: ColumnConfig[] = []\n @state() sorters: SorterConfig[] = []\n\n connectedCallback(): void {\n super.connectedCallback()\n\n const grist = this.closest('ox-grist') as DataGrist\n\n if (grist) {\n this.config = grist.compiledConfig\n grist.addEventListener('config-change', (e: Event) => {\n this.config = (e as CustomEvent).detail\n })\n\n grist.addEventListener('fetch-params-change', e => {\n const { sorters, from } = (e as CustomEvent).detail || {}\n if (from === 'sorters-control') {\n return\n }\n\n sorters && (this.sorters = sorters)\n })\n }\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('config')) {\n this.columns = this.config.columns.filter(column => column.sortable)\n this.sorters = this.sorters || this.config.sorters || []\n }\n }\n\n render(): TemplateResult {\n const columns = this.columns\n\n const current = this.sorters || []\n\n return html`\n ${columns.map(column => {\n const { name } = column\n var rank = current.findIndex(sorter => sorter.name === name) + 1\n var desc = rank !== 0 ? current[rank - 1].desc : null\n\n if (current.length <= 1) {\n rank = 0\n }\n\n return html`\n <div\n option\n @click=${(e: MouseEvent) => {\n this.onChangeSort(name)\n }}\n >\n <span>${column.header.renderer.call(this, column)}</span>\n ${desc === null\n ? html``\n : html`\n <mwc-icon>${desc ? 'keyboard_arrow_down' : 'keyboard_arrow_up'}</mwc-icon>\n ${rank === 0 ? html`` : html`<sub>${rank}</sub>`}\n `}\n </div>\n `\n })}\n `\n }\n\n onChangeSort(name: string) {\n var sorters = [...this.sorters]\n\n var idx = sorters.findIndex(sorter => sorter.name == name)\n if (idx !== -1) {\n let sorter = sorters[idx]\n if (sorter.desc) {\n sorters.splice(idx, 1)\n } else {\n sorter.desc = true\n }\n } else {\n var sorter = {\n name\n }\n\n sorters.push(sorter)\n }\n\n this.sorters = sorters\n\n this.dispatchEvent(\n new CustomEvent('fetch-params-change', {\n bubbles: true,\n composed: true,\n detail: {\n sorters: this.sorters,\n from: 'sorters-control'\n }\n })\n )\n }\n}\n"]}
@@ -105,6 +105,17 @@ export type HeaderConfig = {
105
105
  renderer: HeaderRenderer;
106
106
  };
107
107
  export type HeaderRenderer = (column: ColumnConfig) => any;
108
+ export type ValueGeneratorFn = (...args: any[]) => any;
109
+ export type DefaultValueFnConfig = {
110
+ /**
111
+ * The name of the default value function to be used for the column.
112
+ */
113
+ name: string;
114
+ /**
115
+ * The parameters to be passed to the default value function.
116
+ */
117
+ params?: any[];
118
+ } | Function;
108
119
  export type RecordConfig = {
109
120
  renderer: FieldRenderer;
110
121
  editor?: FieldEditor;
@@ -116,6 +127,7 @@ export type RecordConfig = {
116
127
  [key: string]: any;
117
128
  };
118
129
  rowOptionField?: string;
130
+ defaultValue?: DefaultValueFnConfig;
119
131
  [extended: string]: any;
120
132
  };
121
133
  export type FieldRenderer = (value: any, column: ColumnConfig, record: GristRecord, rowIndex: number, owner: DataGridField | RecordCard | DataCardGutter | DataCardField | DataListGutter | DataListField | RecordPartial | DataReportField | Element) => OxGristRenderer | TemplateResult | string | void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAmFA,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,mCAAa,CAAA;IACb,yCAAmB,CAAA;IACnB,mCAAa,CAAA;AACf,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B","sourcesContent":["import { TemplateResult } from 'lit-html'\n\nimport { DataCardField } from './data-card/data-card-field'\nimport { DataCardGutter } from './data-card/data-card-gutter'\nimport { RecordCard } from './data-card/record-card'\nimport { DataGridField } from './data-grid/data-grid-field'\nimport { DataListField } from './data-list/data-list-field'\nimport { DataListGutter } from './data-list/data-list-gutter'\nimport { RecordPartial } from './data-list/record-partial'\nimport { DataReportField } from './data-report/data-report-field'\nimport { OxGristEditor } from './editors'\nimport { QueryFilter } from './filters'\nimport { OxGristRenderer } from './renderers/ox-grist-renderer'\n\nexport type GristConfig = {\n columns: ColumnConfig[]\n rows: RowsConfig\n list: ListConfig\n pagination?: PaginationConfig\n sorters?: SortersConfig\n filters?: FiltersConfig\n}\n\nexport type SorterConfig = { name: string; desc?: boolean }\nexport type SortersConfig = SorterConfig[]\nexport type FilterOperator =\n | 'search'\n | 'eq'\n | 'between'\n | 'gte'\n | 'lte'\n | 'is_not_true'\n | 'in'\n | 'like'\n | 'i_like'\n | 'noteq'\n | 'is_empty_num_id'\n | 'is_blank'\n | 'is_present'\n | 'is_not_false'\n | 'is_true'\n | 'is_false'\n | 'is_not_null'\n | 'is_null'\n | 'notin_with_null'\n | 'notin'\n | 'gt'\n | 'lt'\n | 'i_nlike'\n | 'nlike'\n\nexport type FilterConfigObject = {\n type: string\n operator?: FilterOperator\n options?: { [key: string]: any }\n value?: string | number | boolean | string[] | number[] | undefined\n label?: string\n}\nexport type FilterConfig = FilterConfigObject | FilterOperator | boolean\n\nexport type FilterValue = {\n name: string\n operator: FilterOperator\n value: string | number | boolean | string[] | number[] | undefined\n}\n\n/**\n * Configuration options for filters.\n */\nexport type FiltersConfig = {\n /**\n * Specifies whether to provide filtering functionality in the header.\n */\n header?: boolean\n}\n\nexport type PaginationConfig = {\n page?: number\n limit?: number\n pages?: number[]\n infinite?: boolean\n}\n\nexport enum InheritedValueType {\n None = 'None',\n Include = 'Include',\n Only = 'Only'\n}\n\nexport type FetchOption = {\n page?: number\n limit?: number\n sorters?: SortersConfig\n sortings?: SortersConfig\n filters?: QueryFilter[]\n inherited?: InheritedValueType\n options?: object\n}\nexport type FetchResult = {\n page?: number\n limit?: number\n total: number\n records: GristRecord[]\n} | void\nexport type FetchHandler = (param: FetchOption) => Promise<FetchResult>\n\nexport type GristEventHandler = (\n columns: ColumnConfig[],\n data?: GristData,\n column?: ColumnConfig,\n record?: GristRecord,\n rowIndex?: number,\n target?: any\n) => void\n\nexport type ColumnConfig = {\n type: string\n name: string\n gutterName?: string\n header: HeaderConfig\n record: RecordConfig\n handlers: GristEventHandlerSet\n label: LabelConfig\n hidden?: boolean\n sortable?: boolean\n resizable?: boolean\n width?: number | string | ColumnWidthCallback\n forList?: boolean\n validation?: ValidationCallback\n filter?: FilterConfig\n imex?: ImexConfig | boolean\n multiple?: boolean\n rowCount?: boolean\n}\n\nexport type ValidationCallback = (after: any, before: any, record: GristRecord, column: ColumnConfig) => boolean\n\nexport type LabelConfig =\n | string\n | boolean\n | {\n renderer: LabelRenderer\n }\n\nexport type LabelRenderer = () => void\n\nexport type ColumnWidthCallback = (column: ColumnConfig) => string\n\nexport type HeaderConfig = {\n renderer: HeaderRenderer\n}\nexport type HeaderRenderer = (column: ColumnConfig) => any\n\nexport type RecordConfig = {\n renderer: FieldRenderer\n editor?: FieldEditor\n editable?: boolean\n mandatory?: boolean\n classifier: GristClassifier\n align?: 'left' | 'right' | 'center'\n options: { [key: string]: any }\n rowOptionField?: string\n [extended: string]: any\n}\n\nexport type FieldRenderer = (\n value: any,\n column: ColumnConfig,\n record: GristRecord,\n rowIndex: number,\n owner:\n | DataGridField\n | RecordCard\n | DataCardGutter\n | DataCardField\n | DataListGutter\n | DataListField\n | RecordPartial\n | DataReportField\n | Element\n) => OxGristRenderer | TemplateResult | string | void\nexport type FieldEditor = (\n value: any,\n column: ColumnConfig,\n record: GristRecord,\n rowIndex: number,\n field: DataGridField\n) => OxGristEditor\n\nexport type FilterSelectRenderer = (\n column: ColumnConfig,\n value: string | number | boolean | string[] | number[] | any | undefined,\n owner: Element\n) => TemplateResult | string | void\n\nexport type GristEventHandlerSet = {\n click?: GristEventHandler\n dblclick?: GristEventHandler\n}\n\nexport type ListConfig = {\n thumbnail?: string\n fields: string[]\n details: string[]\n}\n\nexport type ImexConfig = {\n header: string\n key: string\n width: number\n type: string\n}\n\nexport type RowsConfig = {\n appendable: boolean\n insertable: boolean\n selectable?: RowSelectableConfig\n groups: GroupConfig[]\n totals: string[]\n classifier: GristClassifier\n handlers: GristEventHandlerSet\n}\n\nexport type GristClassifier = (\n record: GristRecord,\n rowIndex: number\n) => { emphasized?: boolean | string | string[]; [key: string]: any } | void\n\nexport type GroupConfig = {\n align: string\n titleColumn?: ColumnConfig\n title: string\n value?: string\n groupName?: string\n row?: number\n column: string | number\n rowspan: number\n colspan?: number\n}\n\nexport type RowSelectableConfig = {\n multiple?: boolean\n}\n\nexport type GristRecord = {\n id?: string\n name?: string\n __seq__?: number\n __dirty__?: string\n __selected__?: boolean\n __changes__?: object[]\n __dirtyfields__?: { [key: string]: any }\n __origin__?: any\n [key: string]: any\n}\n\nexport type GristData = {\n page?: number\n total?: number\n limit?: number\n records: GristRecord[]\n}\n\nexport type GristSelectFunction = (record: GristRecord) => boolean\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAmFA,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,mCAAa,CAAA;IACb,yCAAmB,CAAA;IACnB,mCAAa,CAAA;AACf,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B","sourcesContent":["import { TemplateResult } from 'lit-html'\n\nimport { DataCardField } from './data-card/data-card-field'\nimport { DataCardGutter } from './data-card/data-card-gutter'\nimport { RecordCard } from './data-card/record-card'\nimport { DataGridField } from './data-grid/data-grid-field'\nimport { DataListField } from './data-list/data-list-field'\nimport { DataListGutter } from './data-list/data-list-gutter'\nimport { RecordPartial } from './data-list/record-partial'\nimport { DataReportField } from './data-report/data-report-field'\nimport { OxGristEditor } from './editors'\nimport { QueryFilter } from './filters'\nimport { OxGristRenderer } from './renderers/ox-grist-renderer'\n\nexport type GristConfig = {\n columns: ColumnConfig[]\n rows: RowsConfig\n list: ListConfig\n pagination?: PaginationConfig\n sorters?: SortersConfig\n filters?: FiltersConfig\n}\n\nexport type SorterConfig = { name: string; desc?: boolean }\nexport type SortersConfig = SorterConfig[]\nexport type FilterOperator =\n | 'search'\n | 'eq'\n | 'between'\n | 'gte'\n | 'lte'\n | 'is_not_true'\n | 'in'\n | 'like'\n | 'i_like'\n | 'noteq'\n | 'is_empty_num_id'\n | 'is_blank'\n | 'is_present'\n | 'is_not_false'\n | 'is_true'\n | 'is_false'\n | 'is_not_null'\n | 'is_null'\n | 'notin_with_null'\n | 'notin'\n | 'gt'\n | 'lt'\n | 'i_nlike'\n | 'nlike'\n\nexport type FilterConfigObject = {\n type: string\n operator?: FilterOperator\n options?: { [key: string]: any }\n value?: string | number | boolean | string[] | number[] | undefined\n label?: string\n}\nexport type FilterConfig = FilterConfigObject | FilterOperator | boolean\n\nexport type FilterValue = {\n name: string\n operator: FilterOperator\n value: string | number | boolean | string[] | number[] | undefined\n}\n\n/**\n * Configuration options for filters.\n */\nexport type FiltersConfig = {\n /**\n * Specifies whether to provide filtering functionality in the header.\n */\n header?: boolean\n}\n\nexport type PaginationConfig = {\n page?: number\n limit?: number\n pages?: number[]\n infinite?: boolean\n}\n\nexport enum InheritedValueType {\n None = 'None',\n Include = 'Include',\n Only = 'Only'\n}\n\nexport type FetchOption = {\n page?: number\n limit?: number\n sorters?: SortersConfig\n sortings?: SortersConfig\n filters?: QueryFilter[]\n inherited?: InheritedValueType\n options?: object\n}\nexport type FetchResult = {\n page?: number\n limit?: number\n total: number\n records: GristRecord[]\n} | void\nexport type FetchHandler = (param: FetchOption) => Promise<FetchResult>\n\nexport type GristEventHandler = (\n columns: ColumnConfig[],\n data?: GristData,\n column?: ColumnConfig,\n record?: GristRecord,\n rowIndex?: number,\n target?: any\n) => void\n\nexport type ColumnConfig = {\n type: string\n name: string\n gutterName?: string\n header: HeaderConfig\n record: RecordConfig\n handlers: GristEventHandlerSet\n label: LabelConfig\n hidden?: boolean\n sortable?: boolean\n resizable?: boolean\n width?: number | string | ColumnWidthCallback\n forList?: boolean\n validation?: ValidationCallback\n filter?: FilterConfig\n imex?: ImexConfig | boolean\n multiple?: boolean\n rowCount?: boolean\n}\n\nexport type ValidationCallback = (after: any, before: any, record: GristRecord, column: ColumnConfig) => boolean\n\nexport type LabelConfig =\n | string\n | boolean\n | {\n renderer: LabelRenderer\n }\n\nexport type LabelRenderer = () => void\n\nexport type ColumnWidthCallback = (column: ColumnConfig) => string\n\nexport type HeaderConfig = {\n renderer: HeaderRenderer\n}\nexport type HeaderRenderer = (column: ColumnConfig) => any\n\nexport type ValueGeneratorFn = (...args: any[]) => any\nexport type DefaultValueFnConfig =\n | {\n /**\n * The name of the default value function to be used for the column.\n */\n name: string\n\n /**\n * The parameters to be passed to the default value function.\n */\n params?: any[]\n }\n | Function\n\nexport type RecordConfig = {\n renderer: FieldRenderer\n editor?: FieldEditor\n editable?: boolean\n mandatory?: boolean\n classifier: GristClassifier\n align?: 'left' | 'right' | 'center'\n options: { [key: string]: any }\n rowOptionField?: string\n defaultValue?: DefaultValueFnConfig\n [extended: string]: any\n}\n\nexport type FieldRenderer = (\n value: any,\n column: ColumnConfig,\n record: GristRecord,\n rowIndex: number,\n owner:\n | DataGridField\n | RecordCard\n | DataCardGutter\n | DataCardField\n | DataListGutter\n | DataListField\n | RecordPartial\n | DataReportField\n | Element\n) => OxGristRenderer | TemplateResult | string | void\nexport type FieldEditor = (\n value: any,\n column: ColumnConfig,\n record: GristRecord,\n rowIndex: number,\n field: DataGridField\n) => OxGristEditor\n\nexport type FilterSelectRenderer = (\n column: ColumnConfig,\n value: string | number | boolean | string[] | number[] | any | undefined,\n owner: Element\n) => TemplateResult | string | void\n\nexport type GristEventHandlerSet = {\n click?: GristEventHandler\n dblclick?: GristEventHandler\n}\n\nexport type ListConfig = {\n thumbnail?: string\n fields: string[]\n details: string[]\n}\n\nexport type ImexConfig = {\n header: string\n key: string\n width: number\n type: string\n}\n\nexport type RowsConfig = {\n appendable: boolean\n insertable: boolean\n selectable?: RowSelectableConfig\n groups: GroupConfig[]\n totals: string[]\n classifier: GristClassifier\n handlers: GristEventHandlerSet\n}\n\nexport type GristClassifier = (\n record: GristRecord,\n rowIndex: number\n) => { emphasized?: boolean | string | string[]; [key: string]: any } | void\n\nexport type GroupConfig = {\n align: string\n titleColumn?: ColumnConfig\n title: string\n value?: string\n groupName?: string\n row?: number\n column: string | number\n rowspan: number\n colspan?: number\n}\n\nexport type RowSelectableConfig = {\n multiple?: boolean\n}\n\nexport type GristRecord = {\n id?: string\n name?: string\n __seq__?: number\n __dirty__?: string\n __selected__?: boolean\n __changes__?: object[]\n __dirtyfields__?: { [key: string]: any }\n __origin__?: any\n [key: string]: any\n}\n\nexport type GristData = {\n page?: number\n total?: number\n limit?: number\n records: GristRecord[]\n}\n\nexport type GristSelectFunction = (record: GristRecord) => boolean\n"]}
@@ -0,0 +1,6 @@
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;
@@ -0,0 +1,30 @@
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
@@ -0,0 +1 @@
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;QACZ,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;KAC7C;SAAM;QACL,WAAW,GAAG,GAAG,CAAA;KAClB;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;QACrB,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;KAC5B;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,UAAU,CAAA;KAClB;SAAM,IAAI,MAAM,EAAE;QACjB,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;KAC9C;SAAM;QACL,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;KAC5B;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"]}
@@ -0,0 +1,7 @@
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;
@@ -0,0 +1,29 @@
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
@@ -0,0 +1 @@
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;QACZ,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;KAC7C;SAAM;QACL,WAAW,GAAG,GAAG,CAAA;KAClB;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;QACrB,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;KAC5B;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,UAAU,CAAA;KAClB;SAAM,IAAI,MAAM,EAAE;QACjB,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;KAC9C;SAAM;QACL,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;KAC5B;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"]}
@@ -0,0 +1 @@
1
+ export * from './registry';
@@ -0,0 +1,2 @@
1
+ export * from './registry';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/value-generator/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA","sourcesContent":["export * from './registry'\n"]}
@@ -0,0 +1,7 @@
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;
@@ -0,0 +1,29 @@
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
@@ -0,0 +1 @@
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;QACZ,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;KAC7C;SAAM;QACL,WAAW,GAAG,GAAG,CAAA;KAClB;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;QACrB,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;KAC5B;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,UAAU,CAAA;KAClB;SAAM,IAAI,MAAM,EAAE;QACjB,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;KAC9C;SAAM;QACL,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;KAC5B;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"]}
@@ -0,0 +1,7 @@
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;
@@ -0,0 +1,31 @@
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
@@ -0,0 +1 @@
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;QACZ,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;KAC7C;SAAM;QACL,WAAW,GAAG,GAAG,CAAA;KAClB;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;QACrB,OAAO,UAAU,CAAA;KAClB;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,UAAU,CAAC,OAAO,EAAE,CAAA;KAC5B;SAAM,IAAI,MAAM,EAAE;QACjB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC5D,OAAO,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;KACpC;SAAM;QACL,OAAO,UAAU,CAAA;KAClB;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"]}
@@ -0,0 +1,4 @@
1
+ export declare const getCurrentTime: (params?: {
2
+ timeZone?: string;
3
+ format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions;
4
+ }) => Date | number | string;
@@ -0,0 +1,8 @@
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
@@ -0,0 +1 @@
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"]}
@@ -0,0 +1,11 @@
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;
@@ -0,0 +1,50 @@
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
@@ -0,0 +1 @@
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;QAClC,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAA;KACtC;SAAM,IAAI,OAAO,SAAS,IAAI,QAAQ,EAAE;QACvC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;QAClC,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAEzC,IAAI,SAAS,KAAK,IAAI,EAAE;YACtB,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,MAAM,CAAC,CAAA;SAC9C;KACF;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"]}
@@ -0,0 +1,6 @@
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;
@@ -0,0 +1,28 @@
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
@@ -0,0 +1 @@
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;QACZ,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;KAC7C;SAAM;QACL,WAAW,GAAG,GAAG,CAAA;KAClB;IAED,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,eAAe,GAAG,IAAI,CAAA;IAEjE,IAAI,MAAM,KAAK,MAAM,EAAE;QACrB,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;KAC5B;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,UAAU,CAAA;KAClB;SAAM,IAAI,MAAM,EAAE;QACjB,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;KAC9C;SAAM;QACL,OAAO,UAAU,CAAA;KAClB;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"]}
@@ -0,0 +1,4 @@
1
+ export declare const getToday: (params?: {
2
+ timeZone?: string;
3
+ format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions;
4
+ }) => Date | number | string;
@@ -0,0 +1,8 @@
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
@@ -0,0 +1 @@
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"]}
@@ -0,0 +1,7 @@
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;
@@ -0,0 +1,29 @@
1
+ export const getRelativeWeekDate = (params = {}) => {
2
+ const { relativeWeeks = 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 startOfWeek = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate() - currentDate.getDay() + 1);
14
+ const targetDate = startOfWeek.getTime() + relativeWeeks * 7 * 24 * 60 * 60 * 1000 + relativeDates * 24 * 60 * 60 * 1000;
15
+ if (format === 'date') {
16
+ return new Date(targetDate);
17
+ }
18
+ else if (format === 'timestamp') {
19
+ return targetDate;
20
+ }
21
+ else if (format) {
22
+ const formatter = new Intl.DateTimeFormat(undefined, format);
23
+ return formatter.format(new Date(targetDate));
24
+ }
25
+ else {
26
+ return targetDate;
27
+ }
28
+ };
29
+ //# sourceMappingURL=week-date-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"week-date-generator.js","sourceRoot":"","sources":["../../../src/value-generator/week-date-generator.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAiC,EAAE,EAA0B,EAAE;IACjG,MAAM,EAAE,aAAa,GAAG,CAAC,EAAE,aAAa,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAEzE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,IAAI,WAAiB,CAAA;IAErB,IAAI,QAAQ,EAAE;QACZ,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;KAC7C;SAAM;QACL,WAAW,GAAG,GAAG,CAAA;KAClB;IAED,MAAM,WAAW,GAAG,IAAI,IAAI,CAC1B,WAAW,CAAC,WAAW,EAAE,EACzB,WAAW,CAAC,QAAQ,EAAE,EACtB,WAAW,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CACjD,CAAA;IACD,MAAM,UAAU,GACd,WAAW,CAAC,OAAO,EAAE,GAAG,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IAEvG,IAAI,MAAM,KAAK,MAAM,EAAE;QACrB,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;KAC5B;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,UAAU,CAAA;KAClB;SAAM,IAAI,MAAM,EAAE;QACjB,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;KAC9C;SAAM;QACL,OAAO,UAAU,CAAA;KAClB;AACH,CAAC,CAAA","sourcesContent":["export type RelativeWeekDateParams = {\n timeZone?: string\n format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions\n relativeWeeks?: number\n relativeDates?: number\n}\n\nexport const getRelativeWeekDate = (params: RelativeWeekDateParams = {}): Date | number | string => {\n const { relativeWeeks = 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 startOfWeek = new Date(\n currentDate.getFullYear(),\n currentDate.getMonth(),\n currentDate.getDate() - currentDate.getDay() + 1\n )\n const targetDate =\n startOfWeek.getTime() + relativeWeeks * 7 * 24 * 60 * 60 * 1000 + relativeDates * 24 * 60 * 60 * 1000\n\n if (format === 'date') {\n return new Date(targetDate)\n } else if (format === 'timestamp') {\n return targetDate\n } else if (format) {\n const formatter = new Intl.DateTimeFormat(undefined, format)\n return formatter.format(new Date(targetDate))\n } else {\n return targetDate\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ export type RelativeYearDateParams = {
2
+ timeZone?: string;
3
+ format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions;
4
+ relativeYears?: number;
5
+ relativeDates?: number;
6
+ };
7
+ export declare const getRelativeYearDate: (params?: RelativeYearDateParams) => Date | number | string;
@@ -0,0 +1,29 @@
1
+ export const getRelativeYearDate = (params = {}) => {
2
+ const { relativeYears = 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 targetYear = currentDate.getFullYear() + relativeYears;
14
+ const targetDate = new Date(targetYear, currentDate.getMonth(), currentDate.getDate() + relativeDates);
15
+ if (format === 'date') {
16
+ return targetDate;
17
+ }
18
+ else if (format === 'timestamp') {
19
+ return targetDate.getTime();
20
+ }
21
+ else if (format) {
22
+ const formatter = new Intl.DateTimeFormat(undefined, format);
23
+ return formatter.format(targetDate);
24
+ }
25
+ else {
26
+ return targetDate;
27
+ }
28
+ };
29
+ //# sourceMappingURL=year-date-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"year-date-generator.js","sourceRoot":"","sources":["../../../src/value-generator/year-date-generator.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAiC,EAAE,EAA0B,EAAE;IACjG,MAAM,EAAE,aAAa,GAAG,CAAC,EAAE,aAAa,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAEzE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,IAAI,WAAiB,CAAA;IAErB,IAAI,QAAQ,EAAE;QACZ,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;KAC7C;SAAM;QACL,WAAW,GAAG,GAAG,CAAA;KAClB;IAED,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,GAAG,aAAa,CAAA;IAE5D,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,CAAA;IAEtG,IAAI,MAAM,KAAK,MAAM,EAAE;QACrB,OAAO,UAAU,CAAA;KAClB;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,UAAU,CAAC,OAAO,EAAE,CAAA;KAC5B;SAAM,IAAI,MAAM,EAAE;QACjB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC5D,OAAO,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;KACpC;SAAM;QACL,OAAO,UAAU,CAAA;KAClB;AACH,CAAC,CAAA","sourcesContent":["export type RelativeYearDateParams = {\n timeZone?: string\n format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions\n relativeYears?: number\n relativeDates?: number\n}\n\nexport const getRelativeYearDate = (params: RelativeYearDateParams = {}): Date | number | string => {\n const { relativeYears = 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 targetYear = currentDate.getFullYear() + relativeYears\n\n const targetDate = new Date(targetYear, currentDate.getMonth(), 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"]}