@openmrs/esm-framework 9.0.3-pre.4715 → 9.0.3-pre.4735

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.
@@ -1,3 +1,3 @@
1
- [0] Successfully compiled: 3 files with swc (121.29ms)
1
+ [0] Successfully compiled: 3 files with swc (137.44ms)
2
2
  [0] swc --strip-leading-paths src -d dist exited with code 0
3
3
  [1] tsc --project tsconfig.build.json exited with code 0
@@ -0,0 +1,62 @@
1
+ [O3 Framework](../API.md) / matchLocale
2
+
3
+ # Function: matchLocale()
4
+
5
+ > **matchLocale**(`requested`, `available`, `fallback?`): `undefined` \| `string`
6
+
7
+ Defined in: [packages/framework/esm-utils/src/match-locale.ts:53](https://github.com/openmrs/openmrs-esm-core/blob/main/packages/framework/esm-utils/src/match-locale.ts#L53)
8
+
9
+ Resolves a requested locale against a list of available locales using the
10
+ BCP 47 lookup algorithm (RFC 4647, §3.4).
11
+
12
+ Tags are compared in canonical form via Intl.Locale, so casing and
13
+ underscore-vs-hyphen differences in the inputs do not affect matching. The
14
+ value returned is taken verbatim from `available`, preserving the caller's
15
+ original casing.
16
+
17
+ In addition to the truncation steps prescribed by RFC 4647, this function
18
+ also performs prefix expansion at each level: when the requested tag is
19
+ truncated to a more general range (e.g. `en` after stripping `en-CA`), any
20
+ available locale whose canonical form begins with that range plus a hyphen
21
+ (e.g. `en-US`, `en-GB`) is treated as a match. This is a relaxation of the
22
+ strict lookup algorithm but typically reflects user intent — a user who
23
+ asked for `en-CA` will usually accept `en-US` over a non-English fallback.
24
+
25
+ Tags that fail to parse are skipped with a console warning; they never match
26
+ and never throw.
27
+
28
+ ## Parameters
29
+
30
+ ### requested
31
+
32
+ The locale the caller would like to use, or `null`/`undefined`
33
+ if no preference is known.
34
+
35
+ `undefined` | `null` | `string`
36
+
37
+ ### available
38
+
39
+ readonly `string`[]
40
+
41
+ The list of locales the application supports.
42
+
43
+ ### fallback?
44
+
45
+ `string`
46
+
47
+ The value to return when no match is found. Defaults to
48
+ `undefined`.
49
+
50
+ ## Returns
51
+
52
+ `undefined` \| `string`
53
+
54
+ The matched locale from `available`, or `fallback` if nothing matches.
55
+
56
+ ## Example
57
+
58
+ ```ts
59
+ matchLocale('en-CA', ['en-US', 'en-GB', 'fr-FR'], 'en-US'); // => 'en-US'
60
+ matchLocale('fr-BE', ['en-US', 'fr-FR', 'de-DE'], 'en-US'); // => 'fr-FR'
61
+ matchLocale('zh-Hant-TW', ['zh-Hant', 'zh-Hans', 'en'], 'en'); // => 'zh-Hant'
62
+ ```
@@ -716,6 +716,16 @@ By default, this is determined by the user's locale.
716
716
 
717
717
  ***
718
718
 
719
+ ### size?
720
+
721
+ > `optional` **size**: `"sm"` \| `"md"` \| `"lg"`
722
+
723
+ Defined in: [packages/framework/esm-styleguide/src/datepicker/openmrs-date-range-picker.component.tsx:36](https://github.com/openmrs/openmrs-esm-core/blob/main/packages/framework/esm-styleguide/src/datepicker/openmrs-date-range-picker.component.tsx#L36)
724
+
725
+ Specifies the size of the input. Currently supports either `sm`, `md`, or `lg` as an option
726
+
727
+ ***
728
+
719
729
  ### slot?
720
730
 
721
731
  > `optional` **slot**: `null` \| `string`
@@ -812,6 +822,6 @@ or invalid via ARIA.
812
822
 
813
823
  > `optional` **value**: \[`DateInputValue`, `DateInputValue`\]
814
824
 
815
- Defined in: [packages/framework/esm-styleguide/src/datepicker/openmrs-date-range-picker.component.tsx:36](https://github.com/openmrs/openmrs-esm-core/blob/main/packages/framework/esm-styleguide/src/datepicker/openmrs-date-range-picker.component.tsx#L36)
825
+ Defined in: [packages/framework/esm-styleguide/src/datepicker/openmrs-date-range-picker.component.tsx:38](https://github.com/openmrs/openmrs-esm-core/blob/main/packages/framework/esm-styleguide/src/datepicker/openmrs-date-range-picker.component.tsx#L38)
816
826
 
817
827
  The value (controlled)
@@ -4,6 +4,6 @@
4
4
 
5
5
  > `const` **OpenmrsDateRangePicker**: `ForwardRefExoticComponent`\<[`OpenmrsDateRangePickerProps`](../interfaces/OpenmrsDateRangePickerProps.md) & `RefAttributes`\<`HTMLDivElement`\>\>
6
6
 
7
- Defined in: [packages/framework/esm-styleguide/src/datepicker/openmrs-date-range-picker.component.tsx:42](https://github.com/openmrs/openmrs-esm-core/blob/main/packages/framework/esm-styleguide/src/datepicker/openmrs-date-range-picker.component.tsx#L42)
7
+ Defined in: [packages/framework/esm-styleguide/src/datepicker/openmrs-date-range-picker.component.tsx:44](https://github.com/openmrs/openmrs-esm-core/blob/main/packages/framework/esm-styleguide/src/datepicker/openmrs-date-range-picker.component.tsx#L44)
8
8
 
9
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
@@ -17,7 +17,7 @@ export * from '@openmrs/esm-state/mock';
17
17
  export * from '@openmrs/esm-styleguide/mock';
18
18
  export * from '@openmrs/esm-translations/mock';
19
19
 
20
- export { parseDate, formatDate, formatDatetime, formatTime, isOmrsDateToday } from '@openmrs/esm-utils';
20
+ export { parseDate, formatDate, formatDatetime, formatTime, isOmrsDateToday, matchLocale } from '@openmrs/esm-utils';
21
21
 
22
22
  /* esm-globals */
23
23
 
package/mock.tsx CHANGED
@@ -18,7 +18,7 @@ export * from '@openmrs/esm-state/mock';
18
18
  export * from '@openmrs/esm-styleguide/mock';
19
19
  export * from '@openmrs/esm-translations/mock';
20
20
 
21
- export { parseDate, formatDate, formatDatetime, formatTime, isOmrsDateToday } from '@openmrs/esm-utils';
21
+ export { parseDate, formatDate, formatDatetime, formatTime, isOmrsDateToday, matchLocale } from '@openmrs/esm-utils';
22
22
 
23
23
  /* esm-globals */
24
24
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openmrs/esm-framework",
3
- "version": "9.0.3-pre.4715",
3
+ "version": "9.0.3-pre.4735",
4
4
  "license": "MPL-2.0",
5
5
  "type": "module",
6
6
  "module": "dist/index.js",
@@ -59,24 +59,24 @@
59
59
  "access": "public"
60
60
  },
61
61
  "dependencies": {
62
- "@openmrs/esm-api": "9.0.3-pre.4715",
63
- "@openmrs/esm-config": "9.0.3-pre.4715",
64
- "@openmrs/esm-context": "9.0.3-pre.4715",
65
- "@openmrs/esm-dynamic-loading": "9.0.3-pre.4715",
66
- "@openmrs/esm-emr-api": "9.0.3-pre.4715",
67
- "@openmrs/esm-error-handling": "9.0.3-pre.4715",
68
- "@openmrs/esm-expression-evaluator": "9.0.3-pre.4715",
69
- "@openmrs/esm-extensions": "9.0.3-pre.4715",
70
- "@openmrs/esm-feature-flags": "9.0.3-pre.4715",
71
- "@openmrs/esm-globals": "9.0.3-pre.4715",
72
- "@openmrs/esm-navigation": "9.0.3-pre.4715",
73
- "@openmrs/esm-offline": "9.0.3-pre.4715",
74
- "@openmrs/esm-react-utils": "9.0.3-pre.4715",
75
- "@openmrs/esm-routes": "9.0.3-pre.4715",
76
- "@openmrs/esm-state": "9.0.3-pre.4715",
77
- "@openmrs/esm-styleguide": "9.0.3-pre.4715",
78
- "@openmrs/esm-translations": "9.0.3-pre.4715",
79
- "@openmrs/esm-utils": "9.0.3-pre.4715"
62
+ "@openmrs/esm-api": "9.0.3-pre.4735",
63
+ "@openmrs/esm-config": "9.0.3-pre.4735",
64
+ "@openmrs/esm-context": "9.0.3-pre.4735",
65
+ "@openmrs/esm-dynamic-loading": "9.0.3-pre.4735",
66
+ "@openmrs/esm-emr-api": "9.0.3-pre.4735",
67
+ "@openmrs/esm-error-handling": "9.0.3-pre.4735",
68
+ "@openmrs/esm-expression-evaluator": "9.0.3-pre.4735",
69
+ "@openmrs/esm-extensions": "9.0.3-pre.4735",
70
+ "@openmrs/esm-feature-flags": "9.0.3-pre.4735",
71
+ "@openmrs/esm-globals": "9.0.3-pre.4735",
72
+ "@openmrs/esm-navigation": "9.0.3-pre.4735",
73
+ "@openmrs/esm-offline": "9.0.3-pre.4735",
74
+ "@openmrs/esm-react-utils": "9.0.3-pre.4735",
75
+ "@openmrs/esm-routes": "9.0.3-pre.4735",
76
+ "@openmrs/esm-state": "9.0.3-pre.4735",
77
+ "@openmrs/esm-styleguide": "9.0.3-pre.4735",
78
+ "@openmrs/esm-translations": "9.0.3-pre.4735",
79
+ "@openmrs/esm-utils": "9.0.3-pre.4735"
80
80
  },
81
81
  "peerDependencies": {
82
82
  "dayjs": "1.x",
@@ -89,7 +89,7 @@
89
89
  "swr": "2.x"
90
90
  },
91
91
  "devDependencies": {
92
- "@openmrs/typedoc-plugin-file-categories": "9.0.3-pre.4715",
92
+ "@openmrs/typedoc-plugin-file-categories": "9.0.3-pre.4735",
93
93
  "@swc/cli": "0.8.1",
94
94
  "@swc/core": "1.15.21",
95
95
  "@vitest/coverage-v8": "^4.1.2",