@openmrs/esm-framework 6.3.1-pre.3182 → 6.3.1-pre.3204

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.
@@ -0,0 +1,9 @@
1
+ [O3 Framework](../API.md) / OpenmrsDateRangePicker
2
+
3
+ # Variable: OpenmrsDateRangePicker
4
+
5
+ > `const` **OpenmrsDateRangePicker**: `ForwardRefExoticComponent`\<[`OpenmrsDateRangePickerProps`](../interfaces/OpenmrsDateRangePickerProps.md) & `RefAttributes`\<`HTMLDivElement`\>\>
6
+
7
+ Defined in: [packages/framework/esm-styleguide/src/datepicker/date-range/date-range-picker.component.tsx:70](https://github.com/openmrs/openmrs-esm-core/blob/main/packages/framework/esm-styleguide/src/datepicker/date-range/date-range-picker.component.tsx#L70)
8
+
9
+ A date range picker to enter or select a date and time range. Based on React Aria, but styled to look like Carbon.
package/mock-jest.tsx CHANGED
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { useState } from 'react';
2
2
  import { NEVER } from 'rxjs';
3
3
  import type {} from '@openmrs/esm-globals';
4
4
  import * as utils from '@openmrs/esm-utils';
@@ -110,6 +110,36 @@ export const OpenmrsDatePicker = jest.fn(({ id, labelText, value, onChange, isIn
110
110
  </>
111
111
  ));
112
112
 
113
+ export const OpenmrsDateRangePicker = jest.fn(({ id, labelText, value = [], onChange, isInvalid, invalidText }) => {
114
+ const [inputValue, setInputValue] = useState(() => {
115
+ const [start, end] = value;
116
+ const formattedStart = start ? dayjs(start).format('DD/MM/YYYY') : 'dd/mm/yyyy';
117
+ const formattedEnd = end ? dayjs(end).format('DD/MM/YYYY') : 'dd/mm/yyyy';
118
+ return `${formattedStart}–${formattedEnd}`;
119
+ });
120
+
121
+ const handleChange = (e) => {
122
+ const raw = e.target.value;
123
+ setInputValue(raw);
124
+
125
+ const [startStr, endStr] = raw.split('–');
126
+ const start = dayjs(startStr, 'DD/MM/YYYY', true);
127
+ const end = dayjs(endStr, 'DD/MM/YYYY', true);
128
+
129
+ if (start.isValid() && end.isValid()) {
130
+ onChange?.([start.toDate(), end.toDate()]);
131
+ }
132
+ };
133
+
134
+ return (
135
+ <div>
136
+ <label htmlFor={id}>{labelText}</label>
137
+ <input id={id} type="text" value={inputValue} onChange={handleChange} />
138
+ {isInvalid && <span>{invalidText}</span>}
139
+ </div>
140
+ );
141
+ });
142
+
113
143
  /* esm-utils */
114
144
  export {
115
145
  getDefaultsFromConfigSchema,
package/mock.tsx CHANGED
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { useState } from 'react';
2
2
  import { vi } from 'vitest';
3
3
  import { NEVER } from 'rxjs';
4
4
  import type {} from '@openmrs/esm-globals';
@@ -111,6 +111,36 @@ export const OpenmrsDatePicker = vi.fn(({ id, labelText, value, onChange, isInva
111
111
  </>
112
112
  ));
113
113
 
114
+ export const OpenmrsDateRangePicker = vi.fn(({ id, labelText, value = [], onChange, isInvalid, invalidText }) => {
115
+ const [inputValue, setInputValue] = useState(() => {
116
+ const [start, end] = value;
117
+ const formattedStart = start ? dayjs(start).format('DD/MM/YYYY') : 'dd/mm/yyyy';
118
+ const formattedEnd = end ? dayjs(end).format('DD/MM/YYYY') : 'dd/mm/yyyy';
119
+ return `${formattedStart}–${formattedEnd}`;
120
+ });
121
+
122
+ const handleChange = (e) => {
123
+ const raw = e.target.value;
124
+ setInputValue(raw);
125
+
126
+ const [startStr, endStr] = raw.split('–');
127
+ const start = dayjs(startStr, 'DD/MM/YYYY', true);
128
+ const end = dayjs(endStr, 'DD/MM/YYYY', true);
129
+
130
+ if (start.isValid() && end.isValid()) {
131
+ onChange?.([start.toDate(), end.toDate()]);
132
+ }
133
+ };
134
+
135
+ return (
136
+ <div>
137
+ <label htmlFor={id}>{labelText}</label>
138
+ <input id={id} type="text" value={inputValue} onChange={handleChange} />
139
+ {isInvalid && <span>{invalidText}</span>}
140
+ </div>
141
+ );
142
+ });
143
+
114
144
  /* esm-utils */
115
145
  export {
116
146
  getDefaultsFromConfigSchema,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openmrs/esm-framework",
3
- "version": "6.3.1-pre.3182",
3
+ "version": "6.3.1-pre.3204",
4
4
  "license": "MPL-2.0",
5
5
  "type": "module",
6
6
  "module": "dist/openmrs-esm-framework.js",
@@ -59,24 +59,24 @@
59
59
  "access": "public"
60
60
  },
61
61
  "dependencies": {
62
- "@openmrs/esm-api": "6.3.1-pre.3182",
63
- "@openmrs/esm-config": "6.3.1-pre.3182",
64
- "@openmrs/esm-context": "6.3.1-pre.3182",
65
- "@openmrs/esm-dynamic-loading": "6.3.1-pre.3182",
66
- "@openmrs/esm-emr-api": "6.3.1-pre.3182",
67
- "@openmrs/esm-error-handling": "6.3.1-pre.3182",
68
- "@openmrs/esm-expression-evaluator": "6.3.1-pre.3182",
69
- "@openmrs/esm-extensions": "6.3.1-pre.3182",
70
- "@openmrs/esm-feature-flags": "6.3.1-pre.3182",
71
- "@openmrs/esm-globals": "6.3.1-pre.3182",
72
- "@openmrs/esm-navigation": "6.3.1-pre.3182",
73
- "@openmrs/esm-offline": "6.3.1-pre.3182",
74
- "@openmrs/esm-react-utils": "6.3.1-pre.3182",
75
- "@openmrs/esm-routes": "6.3.1-pre.3182",
76
- "@openmrs/esm-state": "6.3.1-pre.3182",
77
- "@openmrs/esm-styleguide": "6.3.1-pre.3182",
78
- "@openmrs/esm-translations": "6.3.1-pre.3182",
79
- "@openmrs/esm-utils": "6.3.1-pre.3182"
62
+ "@openmrs/esm-api": "6.3.1-pre.3204",
63
+ "@openmrs/esm-config": "6.3.1-pre.3204",
64
+ "@openmrs/esm-context": "6.3.1-pre.3204",
65
+ "@openmrs/esm-dynamic-loading": "6.3.1-pre.3204",
66
+ "@openmrs/esm-emr-api": "6.3.1-pre.3204",
67
+ "@openmrs/esm-error-handling": "6.3.1-pre.3204",
68
+ "@openmrs/esm-expression-evaluator": "6.3.1-pre.3204",
69
+ "@openmrs/esm-extensions": "6.3.1-pre.3204",
70
+ "@openmrs/esm-feature-flags": "6.3.1-pre.3204",
71
+ "@openmrs/esm-globals": "6.3.1-pre.3204",
72
+ "@openmrs/esm-navigation": "6.3.1-pre.3204",
73
+ "@openmrs/esm-offline": "6.3.1-pre.3204",
74
+ "@openmrs/esm-react-utils": "6.3.1-pre.3204",
75
+ "@openmrs/esm-routes": "6.3.1-pre.3204",
76
+ "@openmrs/esm-state": "6.3.1-pre.3204",
77
+ "@openmrs/esm-styleguide": "6.3.1-pre.3204",
78
+ "@openmrs/esm-translations": "6.3.1-pre.3204",
79
+ "@openmrs/esm-utils": "6.3.1-pre.3204"
80
80
  },
81
81
  "peerDependencies": {
82
82
  "dayjs": "1.x",
@@ -98,7 +98,7 @@
98
98
  "sass-embedded": "^1.89.0",
99
99
  "svgo-loader": "^4.0.0",
100
100
  "typedoc": "^0.28.5",
101
- "typedoc-plugin-file-categories": "6.3.1-pre.3182",
101
+ "typedoc-plugin-file-categories": "6.3.1-pre.3204",
102
102
  "typedoc-plugin-markdown": "^4.6.3",
103
103
  "typedoc-plugin-no-inherit": "^1.6.1",
104
104
  "typescript": "^5.8.3",