@openmrs/esm-patient-immunizations-app 11.3.1-patch.9310 → 11.3.1-patch.9508

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 (40) hide show
  1. package/.turbo/turbo-build.log +20 -23
  2. package/README.md +170 -1
  3. package/dist/3606.js +1 -1
  4. package/dist/3606.js.map +1 -1
  5. package/dist/3677.js +1 -1
  6. package/dist/3677.js.map +1 -1
  7. package/dist/4055.js +1 -1
  8. package/dist/439.js +1 -0
  9. package/dist/5134.js +2 -0
  10. package/dist/5134.js.map +1 -0
  11. package/dist/5670.js +1 -1
  12. package/dist/5670.js.map +1 -1
  13. package/dist/5858.js +1 -0
  14. package/dist/5858.js.map +1 -0
  15. package/dist/6589.js +1 -0
  16. package/dist/795.js +1 -1
  17. package/dist/795.js.map +1 -1
  18. package/dist/8371.js +1 -0
  19. package/dist/main.js +1 -1
  20. package/dist/main.js.map +1 -1
  21. package/dist/openmrs-esm-patient-immunizations-app.js +1 -1
  22. package/dist/openmrs-esm-patient-immunizations-app.js.buildmanifest.json +122 -56
  23. package/dist/routes.json +1 -1
  24. package/package.json +2 -2
  25. package/src/immunizations/immunization-history-dashboard.component.tsx +12 -10
  26. package/src/immunizations/immunizations-detailed-summary.component.tsx +2 -2
  27. package/src/immunizations/immunizations-detailed-summary.test.tsx +8 -24
  28. package/src/immunizations/immunizations-form.test.tsx +8 -14
  29. package/src/immunizations/immunizations-form.workspace.tsx +162 -157
  30. package/src/immunizations/immunizations-overview.component.tsx +2 -2
  31. package/src/routes.json +6 -12
  32. package/translations/cs.json +47 -0
  33. package/translations/fr.json +4 -4
  34. package/translations/sq.json +47 -0
  35. package/translations/zh_TW.json +47 -0
  36. package/dist/1268.js +0 -2
  37. package/dist/1268.js.map +0 -1
  38. package/dist/7955.js +0 -1
  39. package/dist/7955.js.map +0 -1
  40. /package/dist/{1268.js.LICENSE.txt → 5134.js.LICENSE.txt} +0 -0
@@ -1,27 +1,24 @@
1
- Browserslist: browsers data (caniuse-lite) is 6 months old. Please run:
2
- npx update-browserslist-db@latest
3
- Why you should do it regularly: https://github.com/browserslist/update-db#readme
4
- assets by path *.js 3.58 MiB
1
+ assets by path *.js 3.59 MiB
5
2
  assets by chunk 2.67 MiB (id hint: vendors)
6
3
  assets by status 2.4 MiB [big]
7
- asset 1268.js 1.99 MiB [emitted] [minimized] [big] (id hint: vendors) 2 related assets
8
- asset 795.js 414 KiB [emitted] [minimized] [big] (id hint: vendors) 2 related assets
4
+ asset 5134.js 2 MiB [emitted] [minimized] [big] (id hint: vendors) 2 related assets
5
+ asset 795.js 415 KiB [emitted] [minimized] [big] (id hint: vendors) 2 related assets
9
6
  + 8 assets
10
- + 52 assets
11
- assets by path *.json 32 KiB
12
- asset openmrs-esm-patient-immunizations-app.js.buildmanifest.json 30.9 KiB [emitted]
13
- asset routes.json 1.09 KiB [emitted] [from: src/routes.json] [copied]
14
- orphan modules 9.8 MiB [orphan] 3071 modules
7
+ + 55 assets
8
+ assets by path *.json 33.2 KiB
9
+ asset openmrs-esm-patient-immunizations-app.js.buildmanifest.json 32.2 KiB [emitted]
10
+ asset routes.json 1.01 KiB [emitted] [from: src/routes.json] [copied]
11
+ orphan modules 9.81 MiB [orphan] 3072 modules
15
12
  runtime modules 44.2 KiB 28 modules
16
- built modules 8.21 MiB (javascript) 420 bytes (share-init) 420 bytes (consume-shared) [built]
17
- modules by path ../../node_modules/ 7.71 MiB 596 modules
18
- modules by path ./ 269 KiB
19
- modules by path ./translations/ 66.4 KiB 40 modules
20
- modules by path ./src/ 202 KiB 13 modules
13
+ built modules 8.22 MiB (javascript) 420 bytes (share-init) 420 bytes (consume-shared) [built]
14
+ modules by path ../../node_modules/ 7.72 MiB 597 modules
15
+ modules by path ./ 274 KiB
16
+ optional modules 71.4 KiB [optional] 42 modules
17
+ javascript modules 203 KiB 14 modules
21
18
  provide-module modules 420 bytes 10 modules
22
19
  consume-shared-module modules 420 bytes 10 modules
23
- modules by path ../esm-patient-common-lib/src/ 240 KiB
24
- ../esm-patient-common-lib/src/index.ts + 47 modules 111 KiB [built] [code generated]
20
+ modules by path ../esm-patient-common-lib/src/ 235 KiB
21
+ ../esm-patient-common-lib/src/index.ts + 46 modules 106 KiB [built] [code generated]
25
22
  ../../node_modules/@openmrs/webpack-config/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../esm-patient-common-lib/src/cards/card-header.scss 31.5 KiB [built] [code generated]
26
23
  + 3 modules
27
24
  container entry 42 bytes [built] [code generated]
@@ -29,14 +26,14 @@ built modules 8.21 MiB (javascript) 420 bytes (share-init) 420 bytes (consume-sh
29
26
  WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
30
27
  This can impact web performance.
31
28
  Assets:
32
- main.js (508 KiB)
33
- 1268.js (1.99 MiB)
34
- 795.js (414 KiB)
29
+ main.js (509 KiB)
30
+ 5134.js (2 MiB)
31
+ 795.js (415 KiB)
35
32
 
36
33
  WARNING in entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.
37
34
  Entrypoints:
38
- main (508 KiB)
35
+ main (509 KiB)
39
36
  main.js
40
37
  
41
38
 
42
- webpack 5.99.9 compiled with 2 warnings in 136534 ms
39
+ webpack 5.99.9 compiled with 2 warnings in 122377 ms
package/README.md CHANGED
@@ -1,4 +1,173 @@
1
1
  # esm-patient-immunizations-app
2
2
 
3
- The immunizations widget. It provides a tabular overview of the immunizations recorded for a patient as well as a form for recording new immunizations.
3
+ The immunizations widget provides a visual, intuitive system for clinicians to record immunizations, track vaccination schedules, and monitor a patient's vaccination status.
4
4
 
5
+ ## Usage
6
+
7
+ This module is a patient chart widget that can be added to any patient chart dashboard. It provides two main views:
8
+
9
+ 1. **Immunization Summary**: A detailed, collapsible table that groups immunizations by vaccine type. It provides an overview of the patient's vaccination history with expandable rows for more detail.
10
+ From this view, users can add new immunizations or edit/delete existing doses, which launches the immunization workspace form.
11
+
12
+ 2. **Immunization History**: A separate card that provides a simple, chronological list of all immunizations the patient has received.
13
+ This card, in conjunction with the summary view, helps clinicians track whether a patient's next scheduled dose is upcoming or overdue.
14
+
15
+ ## Key Features
16
+
17
+ ### Enhanced Immunization Form
18
+
19
+ - **Comprehensive Data Entry**: A workspace form allows for recording new vaccinations with fields for:
20
+ - Vaccination Date
21
+ - Immunization (Vaccine Name)
22
+ - Dose Number
23
+ - Manufacturer
24
+ - Lot Number
25
+ - Expiration Date
26
+ - Next Dose Date
27
+ - Free-text Notes
28
+ - **Smart Validation**: Includes checks for future dates and ensures the vaccination date is on or after the patient's birth date.
29
+ - **Loading & Error States**: Provides clear user feedback during form submission and validation.
30
+
31
+ ### Detailed Summary & History
32
+
33
+ - **Grouped Summary Table**: Displays a consolidated list of all vaccine types the patient has received. Each entry shows the vaccine name and details of the most recent dose.
34
+ - **Expandable Details**: Users can expand each vaccine entry to see a detailed history for that specific vaccine, including dose number, dates, lot number, manufacturer, notes, and actions.
35
+ - **Chronological History Card**: A separate view shows all immunization events sorted by date.
36
+
37
+ ### Next Dose Tracking
38
+
39
+ - **Visual Indicators**: The system uses visual cues to highlight the status of upcoming vaccinations:
40
+ - 🔴 **Red flag**: Indicates an overdue or currently due vaccination.
41
+ - 🟢 **Green flag**: Indicates an upcoming vaccination.
42
+ - **Scheduling Logic**: The `Next Dose Date` field helps clinicians plan future appointments and prevents scheduling errors (e.g., setting a next dose date before the current vaccination date).
43
+
44
+ ### Full Record Management
45
+
46
+ - **Edit Functionality**: Allows modification of existing immunization records. The form is pre-populated with existing data, and the vaccine name is locked to maintain data integrity.
47
+ - **Delete Functionality**: Individual immunization doses can be safely deleted after a confirmation prompt.
48
+ - **User Feedback**: Toast notifications confirm the success or failure of create, update, and delete operations.
49
+
50
+ ## Configuration
51
+
52
+ ### Available Widgets
53
+
54
+ This module registers several extensions that create the complete immunization feature. Here is a breakdown of the key widgets and how they are used:
55
+
56
+ 1. **Immunizations Dashboard Link (`immunization-summary-dashboard`)**: Adds the "Immunizations" link to the patient chart's side navigation menu and automatically creates a dedicated dashboard page for immunization widgets.
57
+
58
+ 2. **Immunization Summary Table (`immunization-details-widget`)**: The main collapsible table that groups immunizations by vaccine type. Automatically placed on the Immunizations Dashboard.
59
+
60
+ 3. **Immunization History Card (`immunization-detailed-history-card`)**: A chronological list of all immunizations. Automatically placed on the Immunizations Dashboard.
61
+
62
+ 4. **Immunization Overview Widget (`immunization-overview-widget`)**: This is a small, summary card intended for placement on other dashboards, like the main patient summary. It is **not assigned to a dashboard slot by default**.
63
+
64
+ To add the overview widget to the patient summary dashboard, add the following to your `extensions.json` configuration:
65
+
66
+ ```json
67
+ {
68
+ "name": "immunization-overview-widget",
69
+ "slot": "patient-chart-summary-dashboard-slot",
70
+ "order": 8
71
+ }
72
+ ```
73
+
74
+ ### Frontend Configuration
75
+
76
+ Configure the widget by setting values in your implementation's configuration file (typically `config.json` or via the System Administration module). The following parameters are available:
77
+
78
+ ---
79
+
80
+ ### Configurable Parameters Summary
81
+
82
+ | Parameter | Type | Description | Default |
83
+ | ---------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------- | ----------------- |
84
+ | **`immunizationConceptSet`** | `string` | A UUID or concept mapping (e.g., `"CIEL:984"`) that resolves to a **concept set** containing all available vaccine concepts. | `"CIEL:984"` |
85
+ | **`sequenceDefinitions`** | `array` | Defines the **dose and booster schedules** for each vaccine. Each entry represents one vaccine and its sequence definitions. | See example below |
86
+
87
+ ---
88
+
89
+ ### Example Configuration
90
+
91
+ ```json
92
+ {
93
+ "immunizationConceptSet": "CIEL:984",
94
+ "sequenceDefinitions": [
95
+ {
96
+ "vaccineConceptUuid": "783AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
97
+ "sequences": [
98
+ { "sequenceLabel": "Dose-1", "sequenceNumber": 1 },
99
+ { "sequenceLabel": "Dose-2", "sequenceNumber": 2 },
100
+ { "sequenceLabel": "Dose-3", "sequenceNumber": 3 },
101
+ { "sequenceLabel": "Dose-4", "sequenceNumber": 4 },
102
+ { "sequenceLabel": "Booster-1", "sequenceNumber": 11 },
103
+ { "sequenceLabel": "Booster-2", "sequenceNumber": 12 }
104
+ ]
105
+ }
106
+ ]
107
+ }
108
+ ```
109
+
110
+ **Note**: Replace `vaccineConceptUuid` with your actual vaccine concept UUIDs.
111
+
112
+ ---
113
+
114
+ ### Configuration Notes
115
+
116
+ - **Dose numbering convention**:
117
+ - `1–9` → Primary doses
118
+ - `11–19` → Booster doses
119
+ - If `sequenceDefinitions` is not provided, vaccines are treated as single-dose vaccines without predefined schedules.
120
+ - `sequenceLabel` values are used as translation keys in the UI for localization.
121
+ - You can add multiple vaccine definitions to represent your national or local immunization program.
122
+
123
+ ## Backend Setup Requirements
124
+
125
+ The immunizations feature requires backend configuration in the OpenMRS [FHIR2 module](https://github.com/openmrs/openmrs-module-fhir2).
126
+
127
+ ### Required Global Properties
128
+
129
+ - `fhir2.immunizationsEncounterTypeUuid` - UUID of the encounter type for immunization encounters
130
+ - `fhir2.administeringEncounterRoleUuid` - UUID of the encounter role for the administering provider
131
+
132
+ ### Required Concept Mappings
133
+
134
+ The following CIEL concepts must be mapped:
135
+
136
+ | CIEL Code | Concept Name | Required |
137
+ |-----------|--------------|----------|
138
+ | CIEL:1421 | Immunization grouping concept | ✅ Required |
139
+ | CIEL:984 | Vaccine | ✅ Required |
140
+ | CIEL:1410 | Vaccination date | ✅ Required |
141
+ | CIEL:1418 | Dose number | ✅ Required |
142
+ | CIEL:1419 | Manufacturer | ✅ Required |
143
+ | CIEL:1420 | Lot number | ✅ Required |
144
+ | CIEL:165907 | Expiration date | ✅ Required |
145
+ | CIEL:161011 | Free text comment | ⚠️ Optional |
146
+ | CIEL:170000 | Date next dose | ⚠️ Optional |
147
+
148
+ ## Implementation Checklist
149
+
150
+ ### Backend Setup (Required)
151
+
152
+ - [ ] Configure global property `fhir2.immunizationsEncounterTypeUuid` with encounter type UUID
153
+ - [ ] Configure global property `fhir2.administeringEncounterRoleUuid` with encounter role UUID
154
+ - [ ] Verify all required CIEL concept mappings exist (CIEL:1421, CIEL:984, CIEL:1410, CIEL:1418, CIEL:1419, CIEL:1420, CIEL:165907)
155
+ - [ ] Verify optional CIEL concept mappings if using notes or next dose date features (CIEL:161011, CIEL:170000)
156
+
157
+ ### Frontend Setup (Required)
158
+
159
+ - [ ] Configure `immunizationConceptSet` to point to your implementation's concept set for vaccines.
160
+ - [ ] Configure `sequenceDefinitions` for all vaccines that have a multi-dose or booster schedule.
161
+ - [ ] Set user permissions for recording and managing immunizations.
162
+
163
+ ### Optional Customizations
164
+
165
+ - [ ] Add or modify `sequenceDefinitions` to match local or national immunization programs.
166
+ - [ ] Add translations for custom `sequenceLabel` values if supporting multiple languages.
167
+
168
+ ## Key Files for Customization
169
+
170
+ - **`src/config-schema.ts`**: Main configuration for vaccine concept sets and dose schedules.
171
+ - **`src/immunizations/immunizations-detailed-summary.component.tsx`**: The main component for the immunization summary view.
172
+ - **`src/immunizations/immunization-history-dashboard.component.tsx`**: The component for the chronological history view.
173
+ - **`src/immunizations/immunizations-form.workspace.tsx`**: The workspace form for adding and editing immunizations.
package/dist/3606.js CHANGED
@@ -1 +1 @@
1
- "use strict";(globalThis.webpackChunk_openmrs_esm_patient_immunizations_app=globalThis.webpackChunk_openmrs_esm_patient_immunizations_app||[]).push([[3606],{17526:(e,n,t)=>{t.d(n,{A:()=>s});var a=t(30977),i=t.n(a),o=t(95924),r=t.n(o)()(i());r.push([e.id,":root{--brand-01: #005d5d;--brand-02: #004144;--brand-03: #007d79;--bottom-nav-height: 4rem;--workspace-header-height: 3rem;--tablet-workspace-window-height: calc(100vh - var(--omrs-navbar-height) - var(--bottom-nav-height));--desktop-workspace-window-height: calc(100vh - var(--omrs-navbar-height) - var(--workspace-header-height))}.-esm-patient-immunizations__immunizations-form__container___ykiCq{margin:1rem}.-esm-patient-immunizations__immunizations-form__form___0QVLq{display:flex;flex-direction:column;justify-content:space-between;height:100%}.-esm-patient-immunizations__immunizations-form__button___RclnW{height:4rem;display:flex;align-content:flex-start;align-items:baseline;min-width:50%}.-esm-patient-immunizations__immunizations-form__tablet___kmjCS{padding:1.5rem 1rem;background-color:#fff}.-esm-patient-immunizations__immunizations-form__desktop___AOAM6{padding:0}.-esm-patient-immunizations__immunizations-form__datePicker___--vcC .cds--date-picker-input__wrapper{inline-size:10rem}.-esm-patient-immunizations__immunizations-form__spinner___\\+Yqvs.cds--inline-loading{min-height:1rem}.-esm-patient-immunizations__immunizations-form__vaccineBatchHeading___90lMn{font-size:var(--cds-heading-compact-02-font-size, 1rem);font-weight:var(--cds-heading-compact-02-font-weight, 600);line-height:var(--cds-heading-compact-02-line-height, 1.375);letter-spacing:var(--cds-heading-compact-02-letter-spacing, 0)}","",{version:3,sources:["webpack://./../../node_modules/@openmrs/esm-styleguide/src/_vars.scss","webpack://./src/immunizations/immunizations-form.scss","webpack://./../../node_modules/@carbon/layout/scss/generated/_spacing.scss","webpack://./../../node_modules/@carbon/type/scss/_styles.scss"],names:[],mappings:"AAsDA,MACE,mBAAA,CACA,mBAAA,CACA,mBAAA,CACA,yBAAA,CACA,+BAAA,CACA,oGAAA,CACA,2GAAA,CCzDF,mEACE,WC0BW,CDvBb,8DACE,YAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAGF,gEACE,WCwCW,CDvCX,YAAA,CACA,wBAAA,CACA,oBAAA,CACA,aAAA,CAGF,gEACE,mBAAA,CACA,qBDtBM,CCyBR,iEACE,SAAA,CAIA,qGACE,iBCqCS,CDhCX,sFACE,eCTS,CDab,6EEszBI,uDAAA,CAAA,0DAAA,CAAA,4DAAA,CAAA,8DAAA",sourcesContent:["@use '@carbon/layout';\n\n$ui-01: #f4f4f4;\n$ui-02: #ffffff;\n$ui-03: #e0e0e0;\n$ui-04: #8d8d8d;\n$ui-05: #161616;\n$text-02: #525252;\n$text-03: #a8a8a8;\n$ui-background: #ffffff;\n$color-gray-30: #c6c6c6;\n$color-gray-70: #525252;\n$color-gray-100: #161616;\n$color-blue-60-2: #0f62fe;\n$color-blue-10: #edf5ff;\n$color-yellow-50: #feecae;\n$carbon--red-50: #fa4d56;\n$inverse-link: #78a9ff;\n$support-02: #24a148;\n$inverse-support-03: #f1c21b;\n$warning-background: #fff8e1;\n$openmrs-background-grey: #f4f4f4;\n$danger: #da1e28;\n$interactive-01: #0f62fe;\n$field-01: #f4f4f4;\n$grey-2: #e0e0e0;\n$labeldropdown: #c6c6c6;\n\n$brand-primary-10: #d9fbfb;\n$brand-primary-20: #9ef0f0;\n$brand-primary-30: #3ddbd9;\n$brand-primary-40: #08bdba;\n$brand-primary-50: #009d9a;\n\n/* 60,70 and 80 are already declared as brand-01, 02 and 03 respectively */\n\n$brand-primary-90: #022b30;\n$brand-primary-100: #081a1c;\n\n@mixin brand-01($property) {\n #{$property}: #005d5d;\n #{$property}: var(--brand-01);\n}\n\n@mixin brand-02($property) {\n #{$property}: #004144;\n #{$property}: var(--brand-02);\n}\n\n@mixin brand-03($property) {\n #{$property}: #007d79;\n #{$property}: var(--brand-03);\n}\n\n:root {\n --brand-01: #005d5d;\n --brand-02: #004144;\n --brand-03: #007d79;\n --bottom-nav-height: #{layout.$spacing-10};\n --workspace-header-height: #{layout.$spacing-09};\n --tablet-workspace-window-height: calc(100vh - var(--omrs-navbar-height) - var(--bottom-nav-height));\n --desktop-workspace-window-height: calc(100vh - var(--omrs-navbar-height) - var(--workspace-header-height));\n}\n\n$breakpoint-phone-min: 0px;\n$breakpoint-phone-max: 600px;\n$breakpoint-tablet-min: 601px;\n$breakpoint-tablet-max: 1023px;\n$breakpoint-small-desktop-min: 1024px;\n$breakpoint-small-desktop-max: 1439px;\n$breakpoint-large-desktop-min: 1440px;\n$breakpoint-large-desktop-max: 99999999px;\n\n/* These color variables will be removed in a future release */\n$brand-teal-01: #007d79;\n$brand-01: #005d5d;\n$brand-02: #004144;\n","@use '@carbon/layout';\n@use '@carbon/type';\n@use '@openmrs/esm-styleguide/src/vars' as *;\n\n.container {\n margin: layout.$spacing-05;\n}\n\n.form {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n}\n\n.button {\n height: layout.$spacing-10;\n display: flex;\n align-content: flex-start;\n align-items: baseline;\n min-width: 50%;\n}\n\n.tablet {\n padding: layout.$spacing-06 layout.$spacing-05;\n background-color: $ui-02;\n}\n\n.desktop {\n padding: 0;\n}\n\n.datePicker {\n :global(.cds--date-picker-input__wrapper) {\n inline-size: layout.$spacing-13;\n }\n}\n\n.spinner {\n &:global(.cds--inline-loading) {\n min-height: layout.$spacing-05;\n }\n}\n\n.vaccineBatchHeading {\n @include type.type-style('heading-compact-02');\n}\n","// Code generated by @carbon/layout. DO NOT EDIT.\n//\n// Copyright IBM Corp. 2018, 2023\n//\n// This source code is licensed under the Apache-2.0 license found in the\n// LICENSE file in the root directory of this source tree.\n//\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-01: 0.125rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-02: 0.25rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-03: 0.5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-04: 0.75rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-05: 1rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-06: 1.5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-07: 2rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-08: 2.5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-09: 3rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-10: 4rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-11: 5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-12: 6rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-13: 10rem !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/layout\n$spacing: (\n spacing-01: $spacing-01,\n spacing-02: $spacing-02,\n spacing-03: $spacing-03,\n spacing-04: $spacing-04,\n spacing-05: $spacing-05,\n spacing-06: $spacing-06,\n spacing-07: $spacing-07,\n spacing-08: $spacing-08,\n spacing-09: $spacing-09,\n spacing-10: $spacing-10,\n spacing-11: $spacing-11,\n spacing-12: $spacing-12,\n spacing-13: $spacing-13,\n);\n","//\n// Copyright IBM Corp. 2018, 2023\n//\n// This source code is licensed under the Apache-2.0 license found in the\n// LICENSE file in the root directory of this source tree.\n//\n\n// stylelint-disable number-max-precision\n\n@use 'sass:map';\n@use 'sass:math';\n@use '@carbon/grid/scss/config' as gridconfig;\n@use '@carbon/grid/scss/breakpoint' as grid;\n@use 'prefix' as *;\n@use 'font-family';\n@use 'scale';\n\n/// @type Map\n/// @access public\n/// @deprecated\n/// @group @carbon/type\n$caption-01: (\n font-size: scale.type-scale(1),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.33333,\n letter-spacing: 0.32px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @deprecated\n/// @group @carbon/type\n$caption-02: (\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.28572,\n letter-spacing: 0.32px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$label-01: (\n font-size: scale.type-scale(1),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.33333,\n letter-spacing: 0.32px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$label-02: (\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.28572,\n letter-spacing: 0.16px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$legal-01: (\n font-size: scale.type-scale(1),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.33333,\n letter-spacing: 0.32px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$legal-02: (\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.28572,\n letter-spacing: 0.16px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @deprecated\n/// @group @carbon/type\n$helper-text-01: (\n font-size: scale.type-scale(1),\n line-height: 1.33333,\n letter-spacing: 0.32px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @deprecated\n/// @group @carbon/type\n$helper-text-02: (\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.28572,\n letter-spacing: 0.16px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$body-short-01: (\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.28572,\n letter-spacing: 0.16px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$body-compact-01: $body-short-01 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$body-long-01: (\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.42857,\n letter-spacing: 0.16px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$body-01: $body-long-01 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$body-short-02: (\n font-size: scale.type-scale(3),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.375,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$body-compact-02: $body-short-02 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$body-long-02: (\n font-size: scale.type-scale(3),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.5,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$body-02: $body-long-02 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$code-01: (\n font-family: font-family.font-family('mono'),\n font-size: scale.type-scale(1),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.33333,\n letter-spacing: 0.32px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$code-02: (\n font-family: font-family.font-family('mono'),\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.42857,\n letter-spacing: 0.32px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-01: (\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('semibold'),\n line-height: 1.42857,\n letter-spacing: 0.16px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$productive-heading-01: (\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('semibold'),\n line-height: 1.28572,\n letter-spacing: 0.16px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-compact-01: $productive-heading-01 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-02: (\n font-size: scale.type-scale(3),\n font-weight: font-family.font-weight('semibold'),\n line-height: 1.5,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$productive-heading-02: (\n font-size: scale.type-scale(3),\n font-weight: font-family.font-weight('semibold'),\n line-height: 1.375,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-compact-02: $productive-heading-02 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$productive-heading-03: (\n font-size: scale.type-scale(5),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.4,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-03: $productive-heading-03 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$productive-heading-04: (\n font-size: scale.type-scale(7),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.28572,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-04: $productive-heading-04 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$productive-heading-05: (\n font-size: scale.type-scale(8),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.25,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-05: $productive-heading-05 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$productive-heading-06: (\n font-size: scale.type-scale(10),\n font-weight: font-family.font-weight('light'),\n // Extra digit needed for precision in Chrome\n line-height: 1.199,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-06: $productive-heading-06 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$productive-heading-07: (\n font-size: scale.type-scale(12),\n font-weight: font-family.font-weight('light'),\n line-height: 1.19,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-07: $productive-heading-07 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$expressive-heading-01: $heading-01 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$expressive-heading-02: $heading-02 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$expressive-heading-03: (\n font-size: scale.type-scale(5),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.4,\n letter-spacing: 0,\n breakpoints: (\n xlg: (\n font-size: scale.type-scale(5),\n line-height: 1.4,\n ),\n max: (\n font-size: scale.type-scale(6),\n line-height: 1.334,\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-heading-03: $expressive-heading-03 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$expressive-heading-04: (\n font-size: scale.type-scale(7),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.28572,\n letter-spacing: 0,\n breakpoints: (\n xlg: (\n font-size: scale.type-scale(8),\n line-height: 1.25,\n font-weight: font-family.font-weight('regular'),\n ),\n max: (\n font-size: scale.type-scale(8),\n font-weight: font-family.font-weight('regular'),\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-heading-04: $expressive-heading-04 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$expressive-heading-05: (\n font-size: scale.type-scale(8),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.25,\n letter-spacing: 0,\n breakpoints: (\n md: (\n font-size: scale.type-scale(9),\n font-weight: font-family.font-weight('light'),\n line-height: 1.22,\n ),\n lg: (\n font-size: scale.type-scale(10),\n line-height: 1.19,\n ),\n xlg: (\n font-size: scale.type-scale(11),\n line-height: 1.17,\n ),\n max: (\n font-size: scale.type-scale(13),\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-heading-05: $expressive-heading-05 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$expressive-heading-06: (\n font-size: scale.type-scale(8),\n font-weight: font-family.font-weight('semibold'),\n line-height: 1.25,\n letter-spacing: 0,\n breakpoints: (\n md: (\n font-size: scale.type-scale(9),\n line-height: 1.22,\n ),\n lg: (\n font-size: scale.type-scale(10),\n line-height: 1.19,\n ),\n xlg: (\n font-size: scale.type-scale(11),\n line-height: 1.17,\n ),\n max: (\n font-size: scale.type-scale(13),\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-heading-06: $expressive-heading-06 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$expressive-paragraph-01: (\n font-size: scale.type-scale(6),\n font-weight: font-family.font-weight('light'),\n line-height: 1.334,\n letter-spacing: 0,\n breakpoints: (\n lg: (\n font-size: scale.type-scale(7),\n line-height: 1.28572,\n ),\n max: (\n font-size: scale.type-scale(8),\n line-height: 1.25,\n ),\n ),\n);\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-paragraph-01: $expressive-paragraph-01 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$quotation-01: (\n font-family: font-family.font-family('serif'),\n font-size: scale.type-scale(5),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.3,\n letter-spacing: 0,\n breakpoints: (\n md: (\n font-size: scale.type-scale(5),\n ),\n lg: (\n font-size: scale.type-scale(6),\n line-height: 1.334,\n ),\n xlg: (\n font-size: scale.type-scale(7),\n line-height: 1.28572,\n ),\n max: (\n font-size: scale.type-scale(8),\n line-height: 1.25,\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-quotation-01: $quotation-01 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$quotation-02: (\n font-family: font-family.font-family('serif'),\n font-size: scale.type-scale(8),\n font-weight: font-family.font-weight('light'),\n line-height: 1.25,\n letter-spacing: 0,\n breakpoints: (\n md: (\n font-size: scale.type-scale(9),\n line-height: 1.22,\n ),\n lg: (\n font-size: scale.type-scale(10),\n line-height: 1.19,\n ),\n xlg: (\n font-size: scale.type-scale(11),\n line-height: 1.17,\n ),\n max: (\n font-size: scale.type-scale(13),\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-quotation-02: $quotation-02 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$display-01: (\n font-size: scale.type-scale(10),\n font-weight: font-family.font-weight('light'),\n line-height: 1.19,\n letter-spacing: 0,\n breakpoints: (\n md: (\n font-size: scale.type-scale(10),\n ),\n lg: (\n font-size: scale.type-scale(12),\n ),\n xlg: (\n font-size: scale.type-scale(13),\n line-height: 1.17,\n ),\n max: (\n font-size: scale.type-scale(15),\n line-height: 1.13,\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-display-01: $display-01 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$display-02: (\n font-size: scale.type-scale(10),\n font-weight: font-family.font-weight('semibold'),\n line-height: 1.19,\n letter-spacing: 0,\n breakpoints: (\n md: (\n font-size: scale.type-scale(10),\n ),\n lg: (\n font-size: scale.type-scale(12),\n ),\n xlg: (\n font-size: scale.type-scale(13),\n line-height: 1.16,\n ),\n max: (\n font-size: scale.type-scale(15),\n line-height: 1.13,\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-display-02: $display-02 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$display-03: (\n font-size: scale.type-scale(10),\n font-weight: font-family.font-weight('light'),\n line-height: 1.19,\n letter-spacing: 0,\n breakpoints: (\n md: (\n font-size: scale.type-scale(12),\n line-height: 1.18,\n ),\n lg: (\n font-size: scale.type-scale(13),\n line-height: 1.16,\n letter-spacing: -0.64px,\n ),\n xlg: (\n font-size: scale.type-scale(15),\n line-height: 1.13,\n letter-spacing: -0.64px,\n ),\n max: (\n font-size: scale.type-scale(16),\n line-height: 1.11,\n letter-spacing: -0.96px,\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-display-03: $display-03 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$display-04: (\n font-size: scale.type-scale(10),\n font-weight: font-family.font-weight('light'),\n line-height: 1.19,\n letter-spacing: 0,\n breakpoints: (\n md: (\n font-size: scale.type-scale(14),\n line-height: 1.15,\n ),\n lg: (\n font-size: scale.type-scale(17),\n line-height: 1.11,\n letter-spacing: -0.64px,\n ),\n xlg: (\n font-size: scale.type-scale(20),\n line-height: 1.07,\n letter-spacing: -0.64px,\n ),\n max: (\n font-size: scale.type-scale(23),\n line-height: 1.05,\n letter-spacing: -0.96px,\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-display-04: $display-04 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$tokens: (\n caption-01: $caption-01,\n caption-02: $caption-02,\n label-01: $label-01,\n label-02: $label-02,\n helper-text-01: $helper-text-01,\n helper-text-02: $helper-text-02,\n body-short-01: $body-short-01,\n body-short-02: $body-short-02,\n body-long-01: $body-long-01,\n body-long-02: $body-long-02,\n code-01: $code-01,\n code-02: $code-02,\n heading-01: $heading-01,\n heading-02: $heading-02,\n productive-heading-01: $productive-heading-01,\n productive-heading-02: $productive-heading-02,\n productive-heading-03: $productive-heading-03,\n productive-heading-04: $productive-heading-04,\n productive-heading-05: $productive-heading-05,\n productive-heading-06: $productive-heading-06,\n productive-heading-07: $productive-heading-07,\n expressive-paragraph-01: $expressive-paragraph-01,\n expressive-heading-01: $expressive-heading-01,\n expressive-heading-02: $expressive-heading-02,\n expressive-heading-03: $expressive-heading-03,\n expressive-heading-04: $expressive-heading-04,\n expressive-heading-05: $expressive-heading-05,\n expressive-heading-06: $expressive-heading-06,\n quotation-01: $quotation-01,\n quotation-02: $quotation-02,\n display-01: $display-01,\n display-02: $display-02,\n display-03: $display-03,\n display-04: $display-04,\n // V11 Tokens\n legal-01: $legal-01,\n legal-02: $legal-02,\n body-compact-01: $body-compact-01,\n body-compact-02: $body-compact-02,\n heading-compact-01: $heading-compact-01,\n heading-compact-02: $heading-compact-02,\n body-01: $body-01,\n body-02: $body-02,\n heading-03: $heading-03,\n heading-04: $heading-04,\n heading-05: $heading-05,\n heading-06: $heading-06,\n heading-07: $heading-07,\n fluid-heading-03: $fluid-heading-03,\n fluid-heading-04: $fluid-heading-04,\n fluid-heading-05: $fluid-heading-05,\n fluid-heading-06: $fluid-heading-06,\n fluid-paragraph-01: $fluid-paragraph-01,\n fluid-quotation-01: $fluid-quotation-01,\n fluid-quotation-02: $fluid-quotation-02,\n fluid-display-01: $fluid-display-01,\n fluid-display-02: $fluid-display-02,\n fluid-display-03: $fluid-display-03,\n fluid-display-04: $fluid-display-04,\n) !default;\n\n/// @param {Map} $map\n/// @access public\n/// @group @carbon/type\n@mixin properties($map) {\n @each $name, $value in $map {\n #{$name}: $value;\n }\n}\n\n/// @param {Number} $value - Number with units\n/// @return {Number} Without units\n/// @access public\n/// @group @carbon/type\n@function strip-unit($value) {\n @return math.div($value, $value * 0 + 1);\n}\n\n/// This helper includes fluid type styles for the given token value. Fluid type\n/// means that the `font-size` is computed using `calc()` in order to be\n/// determined by the screen size instead of a breakpoint. As a result, fluid\n/// styles should be used with caution in fixed width contexts.\n///\n/// In addition, we make use of %-based line-heights so that the line-height of\n/// each type style is computed correctly due to the dynamic nature of the\n/// `font-size`.\n///\n/// Most of the logic for this work comes from CSS Tricks:\n/// https://css-tricks.com/snippets/css/fluid-typography/\n///\n/// @param {Map} $type-styles - The value of a given type token\n/// @param {Map} $breakpoints [$grid-breakpoints] - Custom breakpoints to use\n/// @access public\n/// @group @carbon/type\n@mixin fluid-type($type-styles, $breakpoints: gridconfig.$grid-breakpoints) {\n // Include the initial styles for the given token by default without any\n // media query guard. This includes `font-size` as a fallback in the case\n // that a browser does not support `calc()`\n @include properties(map.remove($type-styles, breakpoints));\n // We also need to include the `sm` styles by default since they don't\n // appear in the fluid styles for tokens\n @include fluid-type-size($type-styles, sm, $breakpoints);\n\n // Finally, we need to go through all the breakpoints defined in the type\n // token and apply the properties and fluid type size for that given\n // breakpoint\n @each $name, $values in map.get($type-styles, breakpoints) {\n @include grid.breakpoint($name) {\n @include properties($values);\n @include fluid-type-size($type-styles, $name, $breakpoints);\n }\n }\n}\n\n/// Computes the fluid `font-size` for a given type style and breakpoint\n/// @param {Map} $type-styles - The styles for a given token\n/// @param {String} $name - The name of the breakpoint to which we apply the fluid\n/// @param {Map} $breakpoints [$grid-breakpoints] - The breakpoints for the grid system\n/// @access public\n/// @group @carbon/type\n@mixin fluid-type-size(\n $type-styles,\n $name,\n $breakpoints: gridconfig.$grid-breakpoints\n) {\n // Get the information about the breakpoint we're currently working in. Useful\n // for getting initial width information\n $breakpoint: map.get($breakpoints, $name);\n\n // Our fluid styles are captured under the 'breakpoints' property in our type\n // styles map. These define what values to treat as `max-` variables below\n $fluid-sizes: map.get($type-styles, breakpoints);\n $fluid-breakpoint: ();\n // Special case for `sm` because the styles for small are on the type style\n // directly\n @if $name == sm {\n $fluid-breakpoint: map.remove($type-styles, breakpoints);\n } @else {\n $fluid-breakpoint: map.get($fluid-sizes, $name);\n }\n\n // Initialize our font-sizes to the default size for the type style\n $max-font-size: map.get($type-styles, font-size);\n $min-font-size: map.get($type-styles, font-size);\n @if map.has-key($fluid-breakpoint, font-size) {\n $min-font-size: map.get($fluid-breakpoint, font-size);\n }\n\n // Initialize our min and max width to the width of the current breakpoint\n $max-vw: map.get($breakpoint, width);\n $min-vw: map.get($breakpoint, width);\n\n // We can use `breakpoint-next` to see if there is another breakpoint we can\n // use to update `max-font-size` and `max-vw` with larger values\n $next-breakpoint-available: grid.breakpoint-next($name, $breakpoints);\n $next-fluid-breakpoint-name: null;\n\n // We need to figure out what the next available fluid breakpoint is for our\n // given $type-styles. In this loop we try and iterate through breakpoints\n // until we either manually set $next-breakpoint-available to null or\n // `breakpoint-next` returns null.\n @while $next-breakpoint-available {\n @if map.has-key($fluid-sizes, $next-breakpoint-available) {\n $next-fluid-breakpoint-name: $next-breakpoint-available;\n $next-breakpoint-available: null;\n } @else {\n $next-breakpoint-available: grid.breakpoint-next(\n $next-breakpoint-available,\n $breakpoints\n );\n }\n }\n\n // If we have found the next available fluid breakpoint name, then we know\n // that we have values that we can use to set max-font-size and max-vw as both\n // values derive from the next breakpoint\n @if $next-fluid-breakpoint-name {\n $next-fluid-breakpoint: map.get($breakpoints, $next-fluid-breakpoint-name);\n $max-font-size: map.get(\n map.get($fluid-sizes, $next-fluid-breakpoint-name),\n font-size\n );\n $max-vw: map.get($next-fluid-breakpoint, width);\n\n // prettier-ignore\n font-size: calc(#{$min-font-size} +\n #{strip-unit($max-font-size - $min-font-size)} *\n ((100vw - #{$min-vw}) / #{strip-unit($max-vw - $min-vw)})\n );\n } @else {\n // Otherwise, just default to setting the font size found from the type\n // style or the given fluid breakpoint in the type style\n font-size: $min-font-size;\n }\n}\n\n// TODO move following variable and `custom-property` mixin into shared file for\n// both `@carbon/type` and `@carbon/themes`\n\n/// @access private\n/// @group @carbon/type\n@mixin custom-properties($name, $value) {\n @each $property, $value in $value {\n #{$property}: var(\n --#{$custom-property-prefix}-#{$name}-#{$property},\n #{$value}\n );\n }\n}\n\n/// Helper mixin to include the styles for a given token in any selector in your\n/// project. Also includes an optional fluid option that will enable fluid\n/// styles for the token if they are defined. Fluid styles will cause the\n/// token's font-size to be computed based on the viewport size. As a result, use\n/// with caution in fixed contexts.\n/// @param {String} $name - The name of the token to get the styles for\n/// @param {Boolean} $fluid [false] - Specify whether to include fluid styles for the\n/// @param {Map} $breakpoints [$grid-breakpoints] - Provide a custom breakpoint map to use\n/// @access public\n/// @group @carbon/type\n@mixin type-style(\n $name,\n $fluid: false,\n $breakpoints: gridconfig.$grid-breakpoints\n) {\n @if not map.has-key($tokens, $name) {\n @error 'Unable to find a token with the name: `#{$name}`';\n }\n\n $token: map.get($tokens, $name);\n\n // If $fluid is set to true and the token has breakpoints defined for fluid\n // styles, delegate to the fluid-type helper for the given token\n @if $fluid == true and map.has-key($token, 'breakpoints') {\n @include fluid-type($token, $breakpoints);\n } @else {\n @include custom-properties($name, $token);\n }\n}\n"],sourceRoot:""}]),r.locals={container:"-esm-patient-immunizations__immunizations-form__container___ykiCq",form:"-esm-patient-immunizations__immunizations-form__form___0QVLq",button:"-esm-patient-immunizations__immunizations-form__button___RclnW",tablet:"-esm-patient-immunizations__immunizations-form__tablet___kmjCS",desktop:"-esm-patient-immunizations__immunizations-form__desktop___AOAM6",datePicker:"-esm-patient-immunizations__immunizations-form__datePicker___--vcC",spinner:"-esm-patient-immunizations__immunizations-form__spinner___+Yqvs",vaccineBatchHeading:"-esm-patient-immunizations__immunizations-form__vaccineBatchHeading___90lMn"};const s=r},38783:(e,n,t)=>{t.d(n,{b:()=>o});var a=t(54440),i=t(71123);function o(e){var n=(0,i.Ay)("".concat(a.restBaseUrl,"/concept?references=").concat(e.immunizationConceptSet,"&v=").concat("custom:(uuid,display,answers:(uuid,display),conceptMappings:(conceptReferenceTerm:(conceptSource:(name),code)))"),a.openmrsFetch),t=n.data,o=n.isLoading;return{immunizationsConceptSet:t&&t.data.results[0],isLoading:o}}},73606:(e,n,t)=>{t.r(n),t.d(n,{default:()=>j});var a=t(1343),i=t.n(a),o=t(46372),r=t.n(o),s=t(72339),l=t(80824),c=t(81160),p=t(46195),u=t(76896),d=t(54440),f=t(72591),g=t.n(f),m=t(1740),h=t.n(m),y=t(88128),b=t.n(y),$=t(30855),v=t.n($),x=t(93051),w=t.n(x),k=t(73656),z=t.n(k),A=t(17526),_={};_.styleTagTransform=z(),_.setAttributes=v(),_.insert=b().bind(null,"head"),_.domAPI=h(),_.insertStyleElement=w(),g()(A.A,_);const C=A.A&&A.A.locals?A.A.locals:void 0;var D=function(e){var n=e.vaccine,t=e.sequences,o=e.control,r=(0,s.useTranslation)().t,c=(0,l.as)({name:"doseNumber",control:o}).field,p=(0,a.useMemo)((function(){var e;return(null==t||null===(e=t.find((function(e){return e.vaccineConceptUuid===n})))||void 0===e?void 0:e.sequences)||[]}),[t,n]),d=(0,a.useCallback)((function(e,n){var t=n.value,a=""===t||null===t||"string"==typeof t&&!t.trim()?void 0:Number(t);c.onChange(isNaN(a)?void 0:a)}),[c]);return i().createElement("div",{className:C.row},p.length?i().createElement(u.msM,{id:"sequence",items:(null==p?void 0:p.map((function(e){return e.sequenceNumber})))||[],itemToString:function(e){var n;return null===(n=p.find((function(n){return n.sequenceNumber===e})))||void 0===n?void 0:n.sequenceLabel},label:r("pleaseSelect","Please select"),onChange:function(e){return c.onChange(parseInt(e.selectedItem||0))},selectedItem:c.value,titleText:r("sequence","Sequence")}):i().createElement(u.Q7x,{allowEmpty:!0,disableWheel:!0,hideSteppers:!0,id:"doseNumber",label:r("doseNumberWithinSeries","Dose number within series"),min:1,onChange:d,required:!0,value:c.value}))},M=t(12219),E=t(55650);function N(e,n,t){var a="".concat(d.fhirBaseUrl,"/Immunization");return n&&(a="".concat(a,"/").concat(n)),(0,d.openmrsFetch)(a,{headers:{"Content-Type":"application/json"},method:n?"PUT":"POST",body:e,signal:t.signal})}var S=t(94559),O=t(38783);function T(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,a=new Array(n);t<n;t++)a[t]=e[t];return a}function I(e,n,t,a,i,o,r){try{var s=e[o](r),l=s.value}catch(e){return void t(e)}s.done?n(l):Promise.resolve(l).then(a,i)}function q(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function B(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},a=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),a.forEach((function(n){q(e,n,t[n])}))}return e}function P(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):function(e){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n}(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})),e}const j=function(e){var n,t,o,f,g=e.closeWorkspace,m=e.groupProps,h=m.patientUuid,y=m.patient,b=m.visitContext,$=(0,d.useConfig)(),v=(0,d.useSession)(),x="tablet"===(0,d.useLayoutType)(),w=(0,s.useTranslation)().t,k=(0,O.b)($).immunizationsConceptSet,z=(0,S.v)(h).mutate,A=(o=(0,a.useState)(),f=2,function(e){if(Array.isArray(e))return e}(o)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var a,i,o=[],r=!0,s=!1;try{for(t=t.call(e);!(r=(a=t.next()).done)&&(o.push(a.value),!n||o.length!==n);r=!0);}catch(e){s=!0,i=e}finally{try{r||null==t.return||t.return()}finally{if(s)throw i}}return o}}(o,f)||function(e,n){if(e){if("string"==typeof e)return T(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(t):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?T(e,n):void 0}}(o,f)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),_=A[0],q=A[1],j=(0,a.useMemo)((function(){return p.z.object({vaccineUuid:p.z.string().min(1,w("vaccineRequired","Vaccine is required")),vaccinationDate:p.z.date().min(new Date(y.birthDate),{message:w("vaccinationDateCannotBeBeforeBirthDate","Vaccination date cannot precede birth date")}).refine((function(e){var n=r()(e).startOf("day"),t=r()().startOf("day");return n.isSame(t)||n.isBefore(t)}),{message:w("vaccinationDateCannotBeInTheFuture","Vaccination date cannot be in the future")}),doseNumber:p.z.union([p.z.number({coerce:!0}).int().min(1),p.z.null()]).optional(),note:p.z.string().trim().max(255).optional(),nextDoseDate:p.z.date().nullable().optional(),expirationDate:p.z.date().nullable().optional(),lotNumber:p.z.string().nullable().optional(),manufacturer:p.z.string().nullable().optional()})}),[y.birthDate,w]),U=(0,l.mN)({mode:"all",resolver:(0,c.u)(j),defaultValues:{vaccineUuid:"",vaccinationDate:r()().startOf("day").toDate(),doseNumber:1,nextDoseDate:null,note:"",expirationDate:null,lotNumber:"",manufacturer:""}}),W=U.control,R=U.handleSubmit,L=U.reset,F=U.formState,V=F.errors,Y=F.isDirty,G=F.isSubmitting,H=U.watch,Q=H("vaccinationDate"),K=H("vaccineUuid");(0,a.useEffect)((function(){var e=M.RA.subscribe((function(e){if(e){var n=e.vaccinationDate?(0,d.parseDate)(e.vaccinationDate):new Date;L({vaccineUuid:e.vaccineUuid,vaccinationDate:n,doseNumber:e.doseNumber,nextDoseDate:e.nextDoseDate?(0,d.parseDate)(e.nextDoseDate):null,note:e.note,expirationDate:e.expirationDate?(0,d.parseDate)(e.expirationDate):null,lotNumber:e.lotNumber,manufacturer:e.manufacturer}),q({immunizationObsUuid:e.immunizationId,visitUuid:e.visitId})}}));return function(){e.unsubscribe(),M.RA.next(null)}}),[L]);var X=(0,a.useCallback)((function(e){return(n=function(){var n,t,a,i,o,s,l,c,p,u,f,m,y;return function(e,n){var t,a,i,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},r=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return r.next=s(0),r.throw=s(1),r.return=s(2),"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function s(s){return function(l){return function(s){if(t)throw new TypeError("Generator is already executing.");for(;r&&(r=0,s[0]&&(o=0)),o;)try{if(t=1,a&&(i=2&s[0]?a.return:s[0]?a.throw||((i=a.return)&&i.call(a),0):a.next)&&!(i=i.call(a,s[1])).done)return i;switch(a=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,a=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!((i=(i=o.trys).length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]<i[3])){o.label=s[1];break}if(6===s[0]&&o.label<i[1]){o.label=i[1],i=s;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(s);break}i[2]&&o.ops.pop(),o.trys.pop();continue}s=n.call(e,o)}catch(e){s=[6,e],a=0}finally{t=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}(this,(function($){switch($.label){case 0:return $.trys.push([0,2,,3]),a=e.vaccineUuid,i=e.vaccinationDate,o=e.doseNumber,s=e.expirationDate,l=e.lotNumber,c=e.manufacturer,p=e.note,u=e.nextDoseDate,f=new AbortController,m={patientUuid:h,immunizationId:null==_?void 0:_.immunizationObsUuid,vaccineName:k.answers.find((function(e){return e.uuid===a})).display,vaccineUuid:a,vaccinationDate:r()(i).startOf("day").toDate().toISOString(),doseNumber:o,nextDoseDate:u?r()(u).startOf("day").toDate().toISOString():null,note:p,expirationDate:s?r()(s).format("YYYY-MM-DD"):null,lotNumber:l,manufacturer:c},[4,N((0,E.DA)(m,(null==_?void 0:_.visitUuid)||(null==b?void 0:b.uuid),null==v||null===(n=v.sessionLocation)||void 0===n?void 0:n.uuid,null==v||null===(t=v.currentProvider)||void 0===t?void 0:t.uuid),null==_?void 0:_.immunizationObsUuid,f)];case 1:return $.sent(),g({discardUnsavedChanges:!0}),z(),(0,d.showSnackbar)({kind:"success",title:w("vaccinationSaved","Vaccination saved successfully"),isLowContrast:!0}),[3,3];case 2:return y=$.sent(),(0,d.showSnackbar)({title:w("errorSaving","Error saving vaccination"),kind:"error",isLowContrast:!1,subtitle:null==y?void 0:y.message}),[3,3];case 3:return[2]}}))},function(){var e=this,t=arguments;return new Promise((function(a,i){var o=n.apply(e,t);function r(e){I(o,a,i,r,s,"next",e)}function s(e){I(o,a,i,r,s,"throw",e)}r(void 0)}))})();var n}),[null==v||null===(n=v.sessionLocation)||void 0===n?void 0:n.uuid,h,null==v||null===(t=v.currentProvider)||void 0===t?void 0:t.uuid,null==b?void 0:b.uuid,_,k,g,w,z]);return i().createElement(d.Workspace2,{title:w("immunizationWorkspaceTitle","Immunization"),hasUnsavedChanges:Y},i().createElement(l.Op,U,i().createElement(u.lVW,{className:C.form,onSubmit:R(X)},i().createElement(u.BJc,{gap:5,className:C.container},i().createElement(d.ResponsiveWrapper,null,i().createElement(l.xI,{name:"vaccinationDate",control:W,render:function(e){var n,t,a=e.field,o=e.fieldState;return i().createElement(d.OpenmrsDatePicker,P(B({},a),{className:C.datePicker,id:"vaccinationDate",invalid:Boolean(null==o||null===(n=o.error)||void 0===n?void 0:n.message),invalidText:null==o||null===(t=o.error)||void 0===t?void 0:t.message,labelText:w("vaccinationDate","Vaccination date"),maxDate:new Date}))}})),i().createElement(d.ResponsiveWrapper,null,i().createElement(l.xI,{name:"vaccineUuid",control:W,render:function(e){var n,t,a=e.field,o=a.onChange,r=a.value;return i().createElement(u.msM,{disabled:!!_,id:"immunization",invalid:!!(null==V?void 0:V.vaccineUuid),invalidText:null==V||null===(n=V.vaccineUuid)||void 0===n?void 0:n.message,itemToString:function(e){var n;return null==k||null===(n=k.answers.find((function(n){return n.uuid==e})))||void 0===n?void 0:n.display},items:(null==k||null===(t=k.answers)||void 0===t?void 0:t.map((function(e){return e.uuid})))||[],label:w("selectImmunization","Select immunization"),onChange:function(e){return o(e.selectedItem)},selectedItem:r,titleText:w("immunization","Immunization")})}})),K&&i().createElement(d.ResponsiveWrapper,null,i().createElement(D,{vaccine:K,sequences:$.sequenceDefinitions,control:W})),i().createElement("div",{className:C.vaccineBatchHeading},w("vaccineBatchInformation","Vaccine Batch Information")),i().createElement(d.ResponsiveWrapper,null,i().createElement(l.xI,{name:"manufacturer",control:W,render:function(e){var n=e.field,t=n.onChange,a=n.value;return i().createElement(u.ksK,{id:"manufacturer",labelText:w("manufacturer","Manufacturer"),onChange:function(e){return t(e.target.value)},type:"text",value:a})}})),i().createElement(d.ResponsiveWrapper,null,i().createElement(l.xI,{name:"lotNumber",control:W,render:function(e){var n=e.field,t=n.onChange,a=n.value;return i().createElement(u.ksK,{id:"lotNumber",labelText:w("lotNumber","Lot Number"),onChange:function(e){return t(e.target.value)},type:"text",value:a})}})),i().createElement(d.ResponsiveWrapper,null,i().createElement(l.xI,{name:"expirationDate",control:W,render:function(e){var n,t,a=e.field,o=e.fieldState;return i().createElement(d.OpenmrsDatePicker,P(B({},a),{className:C.datePicker,id:"vaccinationExpiration",invalid:Boolean(null==o||null===(n=o.error)||void 0===n?void 0:n.message),invalidText:null==o||null===(t=o.error)||void 0===t?void 0:t.message,labelText:w("expirationDate","Expiration date"),minDate:Q}))}})),i().createElement(d.ResponsiveWrapper,null,i().createElement(l.xI,{name:"note",control:W,render:function(e){var n,t=e.field,a=t.onChange,o=t.value;return i().createElement(u.fs1,{enableCounter:!0,id:"note",invalidText:null==V||null===(n=V.note)||void 0===n?void 0:n.message,labelText:w("note","Note"),maxCount:255,onChange:function(e){return a(e.target.value)},placeholder:w("immunizationNotePlaceholder","For example: mild redness at injection site"),value:o})}})),i().createElement(d.ResponsiveWrapper,null,i().createElement(l.xI,{name:"nextDoseDate",control:W,render:function(e){var n,t,a=e.field,o=e.fieldState;return i().createElement(d.OpenmrsDatePicker,P(B({},a),{className:C.datePicker,id:"nextDoseDate",invalid:Boolean(null==o||null===(n=o.error)||void 0===n?void 0:n.message),invalidText:null==o||null===(t=o.error)||void 0===t?void 0:t.message,labelText:w("nextDoseDate","Next dose date"),minDate:Q}))}}))),i().createElement(u.Te$,{className:x?C.tablet:C.desktop},i().createElement(u.$nd,{className:C.button,kind:"secondary",onClick:function(){return g()}},(0,d.getCoreTranslation)("cancel")),i().createElement(u.$nd,{className:C.button,kind:"primary",disabled:G,type:"submit"},G?i().createElement(u.OuH,{className:C.spinner,description:w("saving","Saving")+"..."}):i().createElement("span",null,(0,d.getCoreTranslation)("save")))))))}}}]);
1
+ "use strict";(globalThis.webpackChunk_openmrs_esm_patient_immunizations_app=globalThis.webpackChunk_openmrs_esm_patient_immunizations_app||[]).push([[3606],{17526:(e,n,t)=>{t.d(n,{A:()=>s});var a=t(30977),i=t.n(a),o=t(95924),r=t.n(o)()(i());r.push([e.id,":root{--brand-01: #005d5d;--brand-02: #004144;--brand-03: #007d79;--bottom-nav-height: 4rem;--workspace-header-height: 3rem;--tablet-workspace-window-height: calc(100vh - var(--omrs-navbar-height) - var(--bottom-nav-height));--desktop-workspace-window-height: calc(100vh - var(--omrs-navbar-height) - var(--workspace-header-height))}.-esm-patient-immunizations__immunizations-form__container___ykiCq{margin:1rem}.-esm-patient-immunizations__immunizations-form__form___0QVLq{display:flex;flex-direction:column;justify-content:space-between;height:100%}.-esm-patient-immunizations__immunizations-form__button___RclnW{height:4rem;display:flex;align-content:flex-start;align-items:baseline;min-width:50%}.-esm-patient-immunizations__immunizations-form__tablet___kmjCS{padding:1.5rem 1rem;background-color:#fff}.-esm-patient-immunizations__immunizations-form__desktop___AOAM6{padding:0}.-esm-patient-immunizations__immunizations-form__datePicker___--vcC .cds--date-picker-input__wrapper{inline-size:10rem}.-esm-patient-immunizations__immunizations-form__spinner___\\+Yqvs.cds--inline-loading{min-height:1rem}.-esm-patient-immunizations__immunizations-form__vaccineBatchHeading___90lMn{font-size:var(--cds-heading-compact-02-font-size, 1rem);font-weight:var(--cds-heading-compact-02-font-weight, 600);line-height:var(--cds-heading-compact-02-line-height, 1.375);letter-spacing:var(--cds-heading-compact-02-letter-spacing, 0)}","",{version:3,sources:["webpack://./../../node_modules/@openmrs/esm-styleguide/src/_vars.scss","webpack://./src/immunizations/immunizations-form.scss","webpack://./../../node_modules/@carbon/layout/scss/generated/_spacing.scss","webpack://./../../node_modules/@carbon/type/scss/_styles.scss"],names:[],mappings:"AAsDA,MACE,mBAAA,CACA,mBAAA,CACA,mBAAA,CACA,yBAAA,CACA,+BAAA,CACA,oGAAA,CACA,2GAAA,CCzDF,mEACE,WC0BW,CDvBb,8DACE,YAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CAGF,gEACE,WCwCW,CDvCX,YAAA,CACA,wBAAA,CACA,oBAAA,CACA,aAAA,CAGF,gEACE,mBAAA,CACA,qBDtBM,CCyBR,iEACE,SAAA,CAIA,qGACE,iBCqCS,CDhCX,sFACE,eCTS,CDab,6EEszBI,uDAAA,CAAA,0DAAA,CAAA,4DAAA,CAAA,8DAAA",sourcesContent:["@use '@carbon/layout';\n\n$ui-01: #f4f4f4;\n$ui-02: #ffffff;\n$ui-03: #e0e0e0;\n$ui-04: #8d8d8d;\n$ui-05: #161616;\n$text-02: #525252;\n$text-03: #a8a8a8;\n$ui-background: #ffffff;\n$color-gray-30: #c6c6c6;\n$color-gray-70: #525252;\n$color-gray-100: #161616;\n$color-blue-60-2: #0f62fe;\n$color-blue-10: #edf5ff;\n$color-yellow-50: #feecae;\n$carbon--red-50: #fa4d56;\n$inverse-link: #78a9ff;\n$support-02: #24a148;\n$inverse-support-03: #f1c21b;\n$warning-background: #fff8e1;\n$openmrs-background-grey: #f4f4f4;\n$danger: #da1e28;\n$interactive-01: #0f62fe;\n$field-01: #f4f4f4;\n$grey-2: #e0e0e0;\n$labeldropdown: #c6c6c6;\n\n$brand-primary-10: #d9fbfb;\n$brand-primary-20: #9ef0f0;\n$brand-primary-30: #3ddbd9;\n$brand-primary-40: #08bdba;\n$brand-primary-50: #009d9a;\n\n/* 60,70 and 80 are already declared as brand-01, 02 and 03 respectively */\n\n$brand-primary-90: #022b30;\n$brand-primary-100: #081a1c;\n\n@mixin brand-01($property) {\n #{$property}: #005d5d;\n #{$property}: var(--brand-01);\n}\n\n@mixin brand-02($property) {\n #{$property}: #004144;\n #{$property}: var(--brand-02);\n}\n\n@mixin brand-03($property) {\n #{$property}: #007d79;\n #{$property}: var(--brand-03);\n}\n\n:root {\n --brand-01: #005d5d;\n --brand-02: #004144;\n --brand-03: #007d79;\n --bottom-nav-height: #{layout.$spacing-10};\n --workspace-header-height: #{layout.$spacing-09};\n --tablet-workspace-window-height: calc(100vh - var(--omrs-navbar-height) - var(--bottom-nav-height));\n --desktop-workspace-window-height: calc(100vh - var(--omrs-navbar-height) - var(--workspace-header-height));\n}\n\n$breakpoint-phone-min: 0px;\n$breakpoint-phone-max: 600px;\n$breakpoint-tablet-min: 601px;\n$breakpoint-tablet-max: 1023px;\n$breakpoint-small-desktop-min: 1024px;\n$breakpoint-small-desktop-max: 1439px;\n$breakpoint-large-desktop-min: 1440px;\n$breakpoint-large-desktop-max: 99999999px;\n\n/* These color variables will be removed in a future release */\n$brand-teal-01: #007d79;\n$brand-01: #005d5d;\n$brand-02: #004144;\n","@use '@carbon/layout';\n@use '@carbon/type';\n@use '@openmrs/esm-styleguide/src/vars' as *;\n\n.container {\n margin: layout.$spacing-05;\n}\n\n.form {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n}\n\n.button {\n height: layout.$spacing-10;\n display: flex;\n align-content: flex-start;\n align-items: baseline;\n min-width: 50%;\n}\n\n.tablet {\n padding: layout.$spacing-06 layout.$spacing-05;\n background-color: $ui-02;\n}\n\n.desktop {\n padding: 0;\n}\n\n.datePicker {\n :global(.cds--date-picker-input__wrapper) {\n inline-size: layout.$spacing-13;\n }\n}\n\n.spinner {\n &:global(.cds--inline-loading) {\n min-height: layout.$spacing-05;\n }\n}\n\n.vaccineBatchHeading {\n @include type.type-style('heading-compact-02');\n}\n","// Code generated by @carbon/layout. DO NOT EDIT.\n//\n// Copyright IBM Corp. 2018, 2023\n//\n// This source code is licensed under the Apache-2.0 license found in the\n// LICENSE file in the root directory of this source tree.\n//\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-01: 0.125rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-02: 0.25rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-03: 0.5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-04: 0.75rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-05: 1rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-06: 1.5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-07: 2rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-08: 2.5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-09: 3rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-10: 4rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-11: 5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-12: 6rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-13: 10rem !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/layout\n$spacing: (\n spacing-01: $spacing-01,\n spacing-02: $spacing-02,\n spacing-03: $spacing-03,\n spacing-04: $spacing-04,\n spacing-05: $spacing-05,\n spacing-06: $spacing-06,\n spacing-07: $spacing-07,\n spacing-08: $spacing-08,\n spacing-09: $spacing-09,\n spacing-10: $spacing-10,\n spacing-11: $spacing-11,\n spacing-12: $spacing-12,\n spacing-13: $spacing-13,\n);\n","//\n// Copyright IBM Corp. 2018, 2023\n//\n// This source code is licensed under the Apache-2.0 license found in the\n// LICENSE file in the root directory of this source tree.\n//\n\n// stylelint-disable number-max-precision\n\n@use 'sass:map';\n@use 'sass:math';\n@use '@carbon/grid/scss/config' as gridconfig;\n@use '@carbon/grid/scss/breakpoint' as grid;\n@use 'prefix' as *;\n@use 'font-family';\n@use 'scale';\n\n/// @type Map\n/// @access public\n/// @deprecated\n/// @group @carbon/type\n$caption-01: (\n font-size: scale.type-scale(1),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.33333,\n letter-spacing: 0.32px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @deprecated\n/// @group @carbon/type\n$caption-02: (\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.28572,\n letter-spacing: 0.32px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$label-01: (\n font-size: scale.type-scale(1),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.33333,\n letter-spacing: 0.32px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$label-02: (\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.28572,\n letter-spacing: 0.16px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$legal-01: (\n font-size: scale.type-scale(1),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.33333,\n letter-spacing: 0.32px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$legal-02: (\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.28572,\n letter-spacing: 0.16px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @deprecated\n/// @group @carbon/type\n$helper-text-01: (\n font-size: scale.type-scale(1),\n line-height: 1.33333,\n letter-spacing: 0.32px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @deprecated\n/// @group @carbon/type\n$helper-text-02: (\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.28572,\n letter-spacing: 0.16px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$body-short-01: (\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.28572,\n letter-spacing: 0.16px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$body-compact-01: $body-short-01 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$body-long-01: (\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.42857,\n letter-spacing: 0.16px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$body-01: $body-long-01 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$body-short-02: (\n font-size: scale.type-scale(3),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.375,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$body-compact-02: $body-short-02 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$body-long-02: (\n font-size: scale.type-scale(3),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.5,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$body-02: $body-long-02 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$code-01: (\n font-family: font-family.font-family('mono'),\n font-size: scale.type-scale(1),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.33333,\n letter-spacing: 0.32px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$code-02: (\n font-family: font-family.font-family('mono'),\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.42857,\n letter-spacing: 0.32px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-01: (\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('semibold'),\n line-height: 1.42857,\n letter-spacing: 0.16px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$productive-heading-01: (\n font-size: scale.type-scale(2),\n font-weight: font-family.font-weight('semibold'),\n line-height: 1.28572,\n letter-spacing: 0.16px,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-compact-01: $productive-heading-01 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-02: (\n font-size: scale.type-scale(3),\n font-weight: font-family.font-weight('semibold'),\n line-height: 1.5,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$productive-heading-02: (\n font-size: scale.type-scale(3),\n font-weight: font-family.font-weight('semibold'),\n line-height: 1.375,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-compact-02: $productive-heading-02 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$productive-heading-03: (\n font-size: scale.type-scale(5),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.4,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-03: $productive-heading-03 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$productive-heading-04: (\n font-size: scale.type-scale(7),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.28572,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-04: $productive-heading-04 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$productive-heading-05: (\n font-size: scale.type-scale(8),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.25,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-05: $productive-heading-05 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$productive-heading-06: (\n font-size: scale.type-scale(10),\n font-weight: font-family.font-weight('light'),\n // Extra digit needed for precision in Chrome\n line-height: 1.199,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-06: $productive-heading-06 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$productive-heading-07: (\n font-size: scale.type-scale(12),\n font-weight: font-family.font-weight('light'),\n line-height: 1.19,\n letter-spacing: 0,\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$heading-07: $productive-heading-07 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$expressive-heading-01: $heading-01 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$expressive-heading-02: $heading-02 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$expressive-heading-03: (\n font-size: scale.type-scale(5),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.4,\n letter-spacing: 0,\n breakpoints: (\n xlg: (\n font-size: scale.type-scale(5),\n line-height: 1.4,\n ),\n max: (\n font-size: scale.type-scale(6),\n line-height: 1.334,\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-heading-03: $expressive-heading-03 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$expressive-heading-04: (\n font-size: scale.type-scale(7),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.28572,\n letter-spacing: 0,\n breakpoints: (\n xlg: (\n font-size: scale.type-scale(8),\n line-height: 1.25,\n font-weight: font-family.font-weight('regular'),\n ),\n max: (\n font-size: scale.type-scale(8),\n font-weight: font-family.font-weight('regular'),\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-heading-04: $expressive-heading-04 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$expressive-heading-05: (\n font-size: scale.type-scale(8),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.25,\n letter-spacing: 0,\n breakpoints: (\n md: (\n font-size: scale.type-scale(9),\n font-weight: font-family.font-weight('light'),\n line-height: 1.22,\n ),\n lg: (\n font-size: scale.type-scale(10),\n line-height: 1.19,\n ),\n xlg: (\n font-size: scale.type-scale(11),\n line-height: 1.17,\n ),\n max: (\n font-size: scale.type-scale(13),\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-heading-05: $expressive-heading-05 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$expressive-heading-06: (\n font-size: scale.type-scale(8),\n font-weight: font-family.font-weight('semibold'),\n line-height: 1.25,\n letter-spacing: 0,\n breakpoints: (\n md: (\n font-size: scale.type-scale(9),\n line-height: 1.22,\n ),\n lg: (\n font-size: scale.type-scale(10),\n line-height: 1.19,\n ),\n xlg: (\n font-size: scale.type-scale(11),\n line-height: 1.17,\n ),\n max: (\n font-size: scale.type-scale(13),\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-heading-06: $expressive-heading-06 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$expressive-paragraph-01: (\n font-size: scale.type-scale(6),\n font-weight: font-family.font-weight('light'),\n line-height: 1.334,\n letter-spacing: 0,\n breakpoints: (\n lg: (\n font-size: scale.type-scale(7),\n line-height: 1.28572,\n ),\n max: (\n font-size: scale.type-scale(8),\n line-height: 1.25,\n ),\n ),\n);\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-paragraph-01: $expressive-paragraph-01 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$quotation-01: (\n font-family: font-family.font-family('serif'),\n font-size: scale.type-scale(5),\n font-weight: font-family.font-weight('regular'),\n line-height: 1.3,\n letter-spacing: 0,\n breakpoints: (\n md: (\n font-size: scale.type-scale(5),\n ),\n lg: (\n font-size: scale.type-scale(6),\n line-height: 1.334,\n ),\n xlg: (\n font-size: scale.type-scale(7),\n line-height: 1.28572,\n ),\n max: (\n font-size: scale.type-scale(8),\n line-height: 1.25,\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-quotation-01: $quotation-01 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$quotation-02: (\n font-family: font-family.font-family('serif'),\n font-size: scale.type-scale(8),\n font-weight: font-family.font-weight('light'),\n line-height: 1.25,\n letter-spacing: 0,\n breakpoints: (\n md: (\n font-size: scale.type-scale(9),\n line-height: 1.22,\n ),\n lg: (\n font-size: scale.type-scale(10),\n line-height: 1.19,\n ),\n xlg: (\n font-size: scale.type-scale(11),\n line-height: 1.17,\n ),\n max: (\n font-size: scale.type-scale(13),\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-quotation-02: $quotation-02 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$display-01: (\n font-size: scale.type-scale(10),\n font-weight: font-family.font-weight('light'),\n line-height: 1.19,\n letter-spacing: 0,\n breakpoints: (\n md: (\n font-size: scale.type-scale(10),\n ),\n lg: (\n font-size: scale.type-scale(12),\n ),\n xlg: (\n font-size: scale.type-scale(13),\n line-height: 1.17,\n ),\n max: (\n font-size: scale.type-scale(15),\n line-height: 1.13,\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-display-01: $display-01 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$display-02: (\n font-size: scale.type-scale(10),\n font-weight: font-family.font-weight('semibold'),\n line-height: 1.19,\n letter-spacing: 0,\n breakpoints: (\n md: (\n font-size: scale.type-scale(10),\n ),\n lg: (\n font-size: scale.type-scale(12),\n ),\n xlg: (\n font-size: scale.type-scale(13),\n line-height: 1.16,\n ),\n max: (\n font-size: scale.type-scale(15),\n line-height: 1.13,\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-display-02: $display-02 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$display-03: (\n font-size: scale.type-scale(10),\n font-weight: font-family.font-weight('light'),\n line-height: 1.19,\n letter-spacing: 0,\n breakpoints: (\n md: (\n font-size: scale.type-scale(12),\n line-height: 1.18,\n ),\n lg: (\n font-size: scale.type-scale(13),\n line-height: 1.16,\n letter-spacing: -0.64px,\n ),\n xlg: (\n font-size: scale.type-scale(15),\n line-height: 1.13,\n letter-spacing: -0.64px,\n ),\n max: (\n font-size: scale.type-scale(16),\n line-height: 1.11,\n letter-spacing: -0.96px,\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-display-03: $display-03 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$display-04: (\n font-size: scale.type-scale(10),\n font-weight: font-family.font-weight('light'),\n line-height: 1.19,\n letter-spacing: 0,\n breakpoints: (\n md: (\n font-size: scale.type-scale(14),\n line-height: 1.15,\n ),\n lg: (\n font-size: scale.type-scale(17),\n line-height: 1.11,\n letter-spacing: -0.64px,\n ),\n xlg: (\n font-size: scale.type-scale(20),\n line-height: 1.07,\n letter-spacing: -0.64px,\n ),\n max: (\n font-size: scale.type-scale(23),\n line-height: 1.05,\n letter-spacing: -0.96px,\n ),\n ),\n) !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$fluid-display-04: $display-04 !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/type\n$tokens: (\n caption-01: $caption-01,\n caption-02: $caption-02,\n label-01: $label-01,\n label-02: $label-02,\n helper-text-01: $helper-text-01,\n helper-text-02: $helper-text-02,\n body-short-01: $body-short-01,\n body-short-02: $body-short-02,\n body-long-01: $body-long-01,\n body-long-02: $body-long-02,\n code-01: $code-01,\n code-02: $code-02,\n heading-01: $heading-01,\n heading-02: $heading-02,\n productive-heading-01: $productive-heading-01,\n productive-heading-02: $productive-heading-02,\n productive-heading-03: $productive-heading-03,\n productive-heading-04: $productive-heading-04,\n productive-heading-05: $productive-heading-05,\n productive-heading-06: $productive-heading-06,\n productive-heading-07: $productive-heading-07,\n expressive-paragraph-01: $expressive-paragraph-01,\n expressive-heading-01: $expressive-heading-01,\n expressive-heading-02: $expressive-heading-02,\n expressive-heading-03: $expressive-heading-03,\n expressive-heading-04: $expressive-heading-04,\n expressive-heading-05: $expressive-heading-05,\n expressive-heading-06: $expressive-heading-06,\n quotation-01: $quotation-01,\n quotation-02: $quotation-02,\n display-01: $display-01,\n display-02: $display-02,\n display-03: $display-03,\n display-04: $display-04,\n // V11 Tokens\n legal-01: $legal-01,\n legal-02: $legal-02,\n body-compact-01: $body-compact-01,\n body-compact-02: $body-compact-02,\n heading-compact-01: $heading-compact-01,\n heading-compact-02: $heading-compact-02,\n body-01: $body-01,\n body-02: $body-02,\n heading-03: $heading-03,\n heading-04: $heading-04,\n heading-05: $heading-05,\n heading-06: $heading-06,\n heading-07: $heading-07,\n fluid-heading-03: $fluid-heading-03,\n fluid-heading-04: $fluid-heading-04,\n fluid-heading-05: $fluid-heading-05,\n fluid-heading-06: $fluid-heading-06,\n fluid-paragraph-01: $fluid-paragraph-01,\n fluid-quotation-01: $fluid-quotation-01,\n fluid-quotation-02: $fluid-quotation-02,\n fluid-display-01: $fluid-display-01,\n fluid-display-02: $fluid-display-02,\n fluid-display-03: $fluid-display-03,\n fluid-display-04: $fluid-display-04,\n) !default;\n\n/// @param {Map} $map\n/// @access public\n/// @group @carbon/type\n@mixin properties($map) {\n @each $name, $value in $map {\n #{$name}: $value;\n }\n}\n\n/// @param {Number} $value - Number with units\n/// @return {Number} Without units\n/// @access public\n/// @group @carbon/type\n@function strip-unit($value) {\n @return math.div($value, $value * 0 + 1);\n}\n\n/// This helper includes fluid type styles for the given token value. Fluid type\n/// means that the `font-size` is computed using `calc()` in order to be\n/// determined by the screen size instead of a breakpoint. As a result, fluid\n/// styles should be used with caution in fixed width contexts.\n///\n/// In addition, we make use of %-based line-heights so that the line-height of\n/// each type style is computed correctly due to the dynamic nature of the\n/// `font-size`.\n///\n/// Most of the logic for this work comes from CSS Tricks:\n/// https://css-tricks.com/snippets/css/fluid-typography/\n///\n/// @param {Map} $type-styles - The value of a given type token\n/// @param {Map} $breakpoints [$grid-breakpoints] - Custom breakpoints to use\n/// @access public\n/// @group @carbon/type\n@mixin fluid-type($type-styles, $breakpoints: gridconfig.$grid-breakpoints) {\n // Include the initial styles for the given token by default without any\n // media query guard. This includes `font-size` as a fallback in the case\n // that a browser does not support `calc()`\n @include properties(map.remove($type-styles, breakpoints));\n // We also need to include the `sm` styles by default since they don't\n // appear in the fluid styles for tokens\n @include fluid-type-size($type-styles, sm, $breakpoints);\n\n // Finally, we need to go through all the breakpoints defined in the type\n // token and apply the properties and fluid type size for that given\n // breakpoint\n @each $name, $values in map.get($type-styles, breakpoints) {\n @include grid.breakpoint($name) {\n @include properties($values);\n @include fluid-type-size($type-styles, $name, $breakpoints);\n }\n }\n}\n\n/// Computes the fluid `font-size` for a given type style and breakpoint\n/// @param {Map} $type-styles - The styles for a given token\n/// @param {String} $name - The name of the breakpoint to which we apply the fluid\n/// @param {Map} $breakpoints [$grid-breakpoints] - The breakpoints for the grid system\n/// @access public\n/// @group @carbon/type\n@mixin fluid-type-size(\n $type-styles,\n $name,\n $breakpoints: gridconfig.$grid-breakpoints\n) {\n // Get the information about the breakpoint we're currently working in. Useful\n // for getting initial width information\n $breakpoint: map.get($breakpoints, $name);\n\n // Our fluid styles are captured under the 'breakpoints' property in our type\n // styles map. These define what values to treat as `max-` variables below\n $fluid-sizes: map.get($type-styles, breakpoints);\n $fluid-breakpoint: ();\n // Special case for `sm` because the styles for small are on the type style\n // directly\n @if $name == sm {\n $fluid-breakpoint: map.remove($type-styles, breakpoints);\n } @else {\n $fluid-breakpoint: map.get($fluid-sizes, $name);\n }\n\n // Initialize our font-sizes to the default size for the type style\n $max-font-size: map.get($type-styles, font-size);\n $min-font-size: map.get($type-styles, font-size);\n @if map.has-key($fluid-breakpoint, font-size) {\n $min-font-size: map.get($fluid-breakpoint, font-size);\n }\n\n // Initialize our min and max width to the width of the current breakpoint\n $max-vw: map.get($breakpoint, width);\n $min-vw: map.get($breakpoint, width);\n\n // We can use `breakpoint-next` to see if there is another breakpoint we can\n // use to update `max-font-size` and `max-vw` with larger values\n $next-breakpoint-available: grid.breakpoint-next($name, $breakpoints);\n $next-fluid-breakpoint-name: null;\n\n // We need to figure out what the next available fluid breakpoint is for our\n // given $type-styles. In this loop we try and iterate through breakpoints\n // until we either manually set $next-breakpoint-available to null or\n // `breakpoint-next` returns null.\n @while $next-breakpoint-available {\n @if map.has-key($fluid-sizes, $next-breakpoint-available) {\n $next-fluid-breakpoint-name: $next-breakpoint-available;\n $next-breakpoint-available: null;\n } @else {\n $next-breakpoint-available: grid.breakpoint-next(\n $next-breakpoint-available,\n $breakpoints\n );\n }\n }\n\n // If we have found the next available fluid breakpoint name, then we know\n // that we have values that we can use to set max-font-size and max-vw as both\n // values derive from the next breakpoint\n @if $next-fluid-breakpoint-name {\n $next-fluid-breakpoint: map.get($breakpoints, $next-fluid-breakpoint-name);\n $max-font-size: map.get(\n map.get($fluid-sizes, $next-fluid-breakpoint-name),\n font-size\n );\n $max-vw: map.get($next-fluid-breakpoint, width);\n\n // prettier-ignore\n font-size: calc(#{$min-font-size} +\n #{strip-unit($max-font-size - $min-font-size)} *\n ((100vw - #{$min-vw}) / #{strip-unit($max-vw - $min-vw)})\n );\n } @else {\n // Otherwise, just default to setting the font size found from the type\n // style or the given fluid breakpoint in the type style\n font-size: $min-font-size;\n }\n}\n\n// TODO move following variable and `custom-property` mixin into shared file for\n// both `@carbon/type` and `@carbon/themes`\n\n/// @access private\n/// @group @carbon/type\n@mixin custom-properties($name, $value) {\n @each $property, $value in $value {\n #{$property}: var(\n --#{$custom-property-prefix}-#{$name}-#{$property},\n #{$value}\n );\n }\n}\n\n/// Helper mixin to include the styles for a given token in any selector in your\n/// project. Also includes an optional fluid option that will enable fluid\n/// styles for the token if they are defined. Fluid styles will cause the\n/// token's font-size to be computed based on the viewport size. As a result, use\n/// with caution in fixed contexts.\n/// @param {String} $name - The name of the token to get the styles for\n/// @param {Boolean} $fluid [false] - Specify whether to include fluid styles for the\n/// @param {Map} $breakpoints [$grid-breakpoints] - Provide a custom breakpoint map to use\n/// @access public\n/// @group @carbon/type\n@mixin type-style(\n $name,\n $fluid: false,\n $breakpoints: gridconfig.$grid-breakpoints\n) {\n @if not map.has-key($tokens, $name) {\n @error 'Unable to find a token with the name: `#{$name}`';\n }\n\n $token: map.get($tokens, $name);\n\n // If $fluid is set to true and the token has breakpoints defined for fluid\n // styles, delegate to the fluid-type helper for the given token\n @if $fluid == true and map.has-key($token, 'breakpoints') {\n @include fluid-type($token, $breakpoints);\n } @else {\n @include custom-properties($name, $token);\n }\n}\n"],sourceRoot:""}]),r.locals={container:"-esm-patient-immunizations__immunizations-form__container___ykiCq",form:"-esm-patient-immunizations__immunizations-form__form___0QVLq",button:"-esm-patient-immunizations__immunizations-form__button___RclnW",tablet:"-esm-patient-immunizations__immunizations-form__tablet___kmjCS",desktop:"-esm-patient-immunizations__immunizations-form__desktop___AOAM6",datePicker:"-esm-patient-immunizations__immunizations-form__datePicker___--vcC",spinner:"-esm-patient-immunizations__immunizations-form__spinner___+Yqvs",vaccineBatchHeading:"-esm-patient-immunizations__immunizations-form__vaccineBatchHeading___90lMn"};const s=r},38783:(e,n,t)=>{t.d(n,{b:()=>o});var a=t(54440),i=t(71123);function o(e){var n=(0,i.Ay)("".concat(a.restBaseUrl,"/concept?references=").concat(e.immunizationConceptSet,"&v=").concat("custom:(uuid,display,answers:(uuid,display),conceptMappings:(conceptReferenceTerm:(conceptSource:(name),code)))"),a.openmrsFetch),t=n.data,o=n.isLoading;return{immunizationsConceptSet:t&&t.data.results[0],isLoading:o}}},73606:(e,n,t)=>{t.r(n),t.d(n,{default:()=>j});var a=t(1343),i=t.n(a),o=t(46372),r=t.n(o),s=t(72339),l=t(80824),c=t(81160),p=t(46195),u=t(76896),d=t(54440),f=t(72591),g=t.n(f),m=t(1740),h=t.n(m),y=t(88128),b=t.n(y),$=t(30855),v=t.n($),x=t(93051),w=t.n(x),k=t(73656),z=t.n(k),A=t(17526),_={};_.styleTagTransform=z(),_.setAttributes=v(),_.insert=b().bind(null,"head"),_.domAPI=h(),_.insertStyleElement=w(),g()(A.A,_);const C=A.A&&A.A.locals?A.A.locals:void 0;var M=function(e){var n=e.vaccine,t=e.sequences,o=e.control,r=(0,s.useTranslation)().t,c=(0,l.as)({name:"doseNumber",control:o}).field,p=(0,a.useMemo)((function(){var e;return(null==t||null===(e=t.find((function(e){return e.vaccineConceptUuid===n})))||void 0===e?void 0:e.sequences)||[]}),[t,n]),d=(0,a.useCallback)((function(e,n){var t=n.value,a=""===t||null===t||"string"==typeof t&&!t.trim()?void 0:Number(t);c.onChange(isNaN(a)?void 0:a)}),[c]);return i().createElement("div",{className:C.row},p.length?i().createElement(u.msM,{id:"sequence",items:(null==p?void 0:p.map((function(e){return e.sequenceNumber})))||[],itemToString:function(e){var n;return null===(n=p.find((function(n){return n.sequenceNumber===e})))||void 0===n?void 0:n.sequenceLabel},label:r("pleaseSelect","Please select"),onChange:function(e){return c.onChange(parseInt(e.selectedItem||0))},selectedItem:c.value,titleText:r("sequence","Sequence")}):i().createElement(u.Q7x,{allowEmpty:!0,disableWheel:!0,hideSteppers:!0,id:"doseNumber",label:r("doseNumberWithinSeries","Dose number within series"),min:1,onChange:d,required:!0,value:c.value}))},D=t(12219),E=t(55650);function N(e,n,t){var a="".concat(d.fhirBaseUrl,"/Immunization");return n&&(a="".concat(a,"/").concat(n)),(0,d.openmrsFetch)(a,{headers:{"Content-Type":"application/json"},method:n?"PUT":"POST",body:e,signal:t.signal})}var S=t(94559),O=t(38783);function T(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,a=new Array(n);t<n;t++)a[t]=e[t];return a}function I(e,n,t,a,i,o,r){try{var s=e[o](r),l=s.value}catch(e){return void t(e)}s.done?n(l):Promise.resolve(l).then(a,i)}function B(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function q(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},a=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),a.forEach((function(n){B(e,n,t[n])}))}return e}function P(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):function(e){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n.push.apply(n,t)}return n}(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})),e}const j=function(e){var n,t,o,f,g=e.patient,m=e.patientUuid,h=e.closeWorkspace,y=e.closeWorkspaceWithSavedChanges,b=e.promptBeforeClosing,$=e.visitContext,v=(0,d.useConfig)(),x=(0,d.useSession)(),w="tablet"===(0,d.useLayoutType)(),k=(0,s.useTranslation)().t,z=(0,O.b)(v).immunizationsConceptSet,A=(0,S.v)(m).mutate,_=(o=(0,a.useState)(),f=2,function(e){if(Array.isArray(e))return e}(o)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var a,i,o=[],r=!0,s=!1;try{for(t=t.call(e);!(r=(a=t.next()).done)&&(o.push(a.value),!n||o.length!==n);r=!0);}catch(e){s=!0,i=e}finally{try{r||null==t.return||t.return()}finally{if(s)throw i}}return o}}(o,f)||function(e,n){if(e){if("string"==typeof e)return T(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(t):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?T(e,n):void 0}}(o,f)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),B=_[0],j=_[1],W=(0,a.useMemo)((function(){return new Date}),[]),U=(0,a.useMemo)((function(){return p.z.object({vaccineUuid:p.z.string().min(1,k("vaccineRequired","Vaccine is required")),vaccinationDate:p.z.date().min(new Date(g.birthDate),{message:k("vaccinationDateCannotBeBeforeBirthDate","Vaccination date cannot precede birth date")}).refine((function(e){var n=r()(e).startOf("day"),t=r()(W).startOf("day");return n.isSame(t)||n.isBefore(t)}),{message:k("vaccinationDateCannotBeInTheFuture","Vaccination date cannot be in the future")}),doseNumber:p.z.union([p.z.number({coerce:!0}).int().min(1),p.z.null()]).optional(),note:p.z.string().trim().max(255).optional(),nextDoseDate:p.z.date().nullable().optional(),expirationDate:p.z.date().nullable().optional(),lotNumber:p.z.string().nullable().optional(),manufacturer:p.z.string().nullable().optional()})}),[g.birthDate,k,W]),R=(0,l.mN)({mode:"all",resolver:(0,c.u)(U),defaultValues:{vaccineUuid:"",vaccinationDate:r()(W).startOf("day").toDate(),doseNumber:1,nextDoseDate:null,note:"",expirationDate:null,lotNumber:"",manufacturer:""}}),L=R.control,F=R.handleSubmit,V=R.reset,Y=R.formState,G=Y.errors,H=Y.isDirty,Q=Y.isSubmitting,K=R.watch,X=K("vaccinationDate");(0,a.useEffect)((function(){b((function(){return H}))}),[H,b]);var J=K("vaccineUuid");(0,a.useEffect)((function(){var e=D.RA.subscribe((function(e){if(e){var n=e.vaccinationDate?(0,d.parseDate)(e.vaccinationDate):W;V({vaccineUuid:e.vaccineUuid,vaccinationDate:n,doseNumber:e.doseNumber,nextDoseDate:e.nextDoseDate?(0,d.parseDate)(e.nextDoseDate):null,note:e.note,expirationDate:e.expirationDate?(0,d.parseDate)(e.expirationDate):null,lotNumber:e.lotNumber,manufacturer:e.manufacturer}),j({immunizationObsUuid:e.immunizationId,visitUuid:e.visitId})}}));return function(){e.unsubscribe(),D.RA.next(null)}}),[V,W]);var Z=(0,a.useCallback)((function(e){return(n=function(){var n,t,a,i,o,s,l,c,p,u,f,g,h;return function(e,n){var t,a,i,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},r=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return r.next=s(0),r.throw=s(1),r.return=s(2),"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function s(s){return function(l){return function(s){if(t)throw new TypeError("Generator is already executing.");for(;r&&(r=0,s[0]&&(o=0)),o;)try{if(t=1,a&&(i=2&s[0]?a.return:s[0]?a.throw||((i=a.return)&&i.call(a),0):a.next)&&!(i=i.call(a,s[1])).done)return i;switch(a=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,a=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!((i=(i=o.trys).length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]<i[3])){o.label=s[1];break}if(6===s[0]&&o.label<i[1]){o.label=i[1],i=s;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(s);break}i[2]&&o.ops.pop(),o.trys.pop();continue}s=n.call(e,o)}catch(e){s=[6,e],a=0}finally{t=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}(this,(function(b){switch(b.label){case 0:return b.trys.push([0,2,,3]),a=e.vaccineUuid,i=e.vaccinationDate,o=e.doseNumber,s=e.expirationDate,l=e.lotNumber,c=e.manufacturer,p=e.note,u=e.nextDoseDate,f=new AbortController,g={patientUuid:m,immunizationId:null==B?void 0:B.immunizationObsUuid,vaccineName:z.answers.find((function(e){return e.uuid===a})).display,vaccineUuid:a,vaccinationDate:r()(i).startOf("day").toDate().toISOString(),doseNumber:o,nextDoseDate:u?r()(u).startOf("day").toDate().toISOString():null,note:p,expirationDate:s?r()(s).format("YYYY-MM-DD"):null,lotNumber:l,manufacturer:c},[4,N((0,E.DA)(g,(null==B?void 0:B.visitUuid)||(null==$?void 0:$.uuid),null==x||null===(n=x.sessionLocation)||void 0===n?void 0:n.uuid,null==x||null===(t=x.currentProvider)||void 0===t?void 0:t.uuid),null==B?void 0:B.immunizationObsUuid,f)];case 1:return b.sent(),y(),A(),(0,d.showSnackbar)({kind:"success",title:k("vaccinationSaved","Vaccination saved successfully"),isLowContrast:!0}),[3,3];case 2:return h=b.sent(),(0,d.showSnackbar)({title:k("errorSaving","Error saving vaccination"),kind:"error",isLowContrast:!1,subtitle:null==h?void 0:h.message}),[3,3];case 3:return[2]}}))},function(){var e=this,t=arguments;return new Promise((function(a,i){var o=n.apply(e,t);function r(e){I(o,a,i,r,s,"next",e)}function s(e){I(o,a,i,r,s,"throw",e)}r(void 0)}))})();var n}),[null==x||null===(n=x.sessionLocation)||void 0===n?void 0:n.uuid,m,null==x||null===(t=x.currentProvider)||void 0===t?void 0:t.uuid,null==$?void 0:$.uuid,B,z,y,k,A]);return i().createElement(l.Op,R,i().createElement(u.lVW,{className:C.form,onSubmit:F(Z)},i().createElement(u.BJc,{gap:5,className:C.container},i().createElement(d.ResponsiveWrapper,null,i().createElement(l.xI,{name:"vaccinationDate",control:L,render:function(e){var n,t,a=e.field,o=e.fieldState;return i().createElement(d.OpenmrsDatePicker,P(q({},a),{className:C.datePicker,id:"vaccinationDate",invalid:Boolean(null==o||null===(n=o.error)||void 0===n?void 0:n.message),invalidText:null==o||null===(t=o.error)||void 0===t?void 0:t.message,labelText:k("vaccinationDate","Vaccination date"),maxDate:W}))}})),i().createElement(d.ResponsiveWrapper,null,i().createElement(l.xI,{name:"vaccineUuid",control:L,render:function(e){var n,t,a=e.field,o=a.onChange,r=a.value;return i().createElement(u.msM,{disabled:!!B,id:"immunization",invalid:!!(null==G?void 0:G.vaccineUuid),invalidText:null==G||null===(n=G.vaccineUuid)||void 0===n?void 0:n.message,itemToString:function(e){var n;return null==z||null===(n=z.answers.find((function(n){return n.uuid==e})))||void 0===n?void 0:n.display},items:(null==z||null===(t=z.answers)||void 0===t?void 0:t.map((function(e){return e.uuid})))||[],label:k("selectImmunization","Select immunization"),onChange:function(e){return o(e.selectedItem)},selectedItem:r,titleText:k("immunization","Immunization")})}})),J&&i().createElement(d.ResponsiveWrapper,null,i().createElement(M,{vaccine:J,sequences:v.sequenceDefinitions,control:L})),i().createElement("div",{className:C.vaccineBatchHeading},k("vaccineBatchInformation","Vaccine Batch Information")),i().createElement(d.ResponsiveWrapper,null,i().createElement(l.xI,{name:"manufacturer",control:L,render:function(e){var n=e.field,t=n.onChange,a=n.value;return i().createElement(u.ksK,{id:"manufacturer",labelText:k("manufacturer","Manufacturer"),onChange:function(e){return t(e.target.value)},type:"text",value:a})}})),i().createElement(d.ResponsiveWrapper,null,i().createElement(l.xI,{name:"lotNumber",control:L,render:function(e){var n=e.field,t=n.onChange,a=n.value;return i().createElement(u.ksK,{id:"lotNumber",labelText:k("lotNumber","Lot Number"),onChange:function(e){return t(e.target.value)},type:"text",value:a})}})),i().createElement(d.ResponsiveWrapper,null,i().createElement(l.xI,{name:"expirationDate",control:L,render:function(e){var n,t,a=e.field,o=e.fieldState;return i().createElement(d.OpenmrsDatePicker,P(q({},a),{className:C.datePicker,id:"vaccinationExpiration",invalid:Boolean(null==o||null===(n=o.error)||void 0===n?void 0:n.message),invalidText:null==o||null===(t=o.error)||void 0===t?void 0:t.message,labelText:k("expirationDate","Expiration date"),minDate:X}))}})),i().createElement(d.ResponsiveWrapper,null,i().createElement(l.xI,{name:"note",control:L,render:function(e){var n,t=e.field,a=t.onChange,o=t.value;return i().createElement(u.fs1,{enableCounter:!0,id:"note",invalidText:null==G||null===(n=G.note)||void 0===n?void 0:n.message,labelText:k("note","Note"),maxCount:255,onChange:function(e){return a(e.target.value)},placeholder:k("immunizationNotePlaceholder","For example: mild redness at injection site"),value:o})}})),i().createElement(d.ResponsiveWrapper,null,i().createElement(l.xI,{name:"nextDoseDate",control:L,render:function(e){var n,t,a=e.field,o=e.fieldState;return i().createElement(d.OpenmrsDatePicker,P(q({},a),{className:C.datePicker,id:"nextDoseDate",invalid:Boolean(null==o||null===(n=o.error)||void 0===n?void 0:n.message),invalidText:null==o||null===(t=o.error)||void 0===t?void 0:t.message,labelText:k("nextDoseDate","Next dose date"),minDate:X}))}}))),i().createElement(u.Te$,{className:w?C.tablet:C.desktop},i().createElement(u.$nd,{className:C.button,kind:"secondary",onClick:function(){return h()}},(0,d.getCoreTranslation)("cancel")),i().createElement(u.$nd,{className:C.button,kind:"primary",disabled:Q,type:"submit"},Q?i().createElement(u.OuH,{className:C.spinner,description:k("saving","Saving")+"..."}):i().createElement("span",null,(0,d.getCoreTranslation)("save"))))))}}}]);
package/dist/3606.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"3606.js","mappings":"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","sources":["webpack://@openmrs/esm-patient-immunizations-app/./src/immunizations/immunizations-form.scss","webpack://@openmrs/esm-patient-immunizations-app/./src/hooks/useImmunizationsConceptSet.ts","webpack://@openmrs/esm-patient-immunizations-app/./src/immunizations/immunizations-form.scss?68e6","webpack://@openmrs/esm-patient-immunizations-app/./src/immunizations/components/dose-input.component.tsx","webpack://@openmrs/esm-patient-immunizations-app/./src/immunizations/immunizations.resource.ts","webpack://@openmrs/esm-patient-immunizations-app/./src/immunizations/immunizations-form.workspace.tsx"],"names":["___CSS_LOADER_EXPORT___","push","module","id","locals","useImmunizationsConceptSet","config","useSWR","restBaseUrl","conceptRepresentation","immunizationConceptSet","openmrsFetch","data","isLoading","immunizationsConceptSet","results","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","undefined","DoseInput","vaccine","sequences","control","useTranslation","t","useController","name","field","vaccineSequences","useMemo","find","sequence","vaccineConceptUuid","handleChange","useCallback","event","value","parsedValue","trim","Number","onChange","isNaN","div","className","styles","row","length","Dropdown","items","map","sequenceNumber","itemToString","item","s","sequenceLabel","label","val","parseInt","selectedItem","titleText","NumberInput","allowEmpty","disableWheel","hideSteppers","min","required","savePatientImmunization","patientImmunization","immunizationObsUuid","abortController","immunizationEndpoint","fhirBaseUrl","headers","method","body","signal","currentUser","closeWorkspace","groupProps","patientUuid","patient","visitContext","useConfig","useSession","isTablet","useLayoutType","useImmunizations","mutate","useState","immunizationToEditMeta","setImmunizationToEditMeta","immunizationFormSchema","z","object","vaccineUuid","string","vaccinationDate","date","Date","birthDate","message","refine","inputDate","dayjs","startOf","today","isSame","isBefore","doseNumber","union","number","coerce","int","null","optional","note","max","nextDoseDate","nullable","expirationDate","lotNumber","manufacturer","formProps","useForm","mode","resolver","zodResolver","defaultValues","toDate","handleSubmit","reset","formState","errors","isDirty","isSubmitting","watch","useEffect","sub","immunizationFormSub","subscribe","props","vaccinationDateOrNow","parseDate","immunizationId","visitUuid","visitId","unsubscribe","next","onSubmit","immunization","err","AbortController","vaccineName","answers","answer","uuid","display","toISOString","format","mapToFHIRImmunizationResource","sessionLocation","currentProvider","discardUnsavedChanges","showSnackbar","kind","title","isLowContrast","subtitle","Workspace2","hasUnsavedChanges","FormProvider","Form","form","Stack","gap","container","ResponsiveWrapper","Controller","render","fieldState","OpenmrsDatePicker","datePicker","invalid","Boolean","error","invalidText","labelText","maxDate","disabled","candidate","sequenceDefinitions","vaccineBatchHeading","TextInput","evt","target","type","minDate","TextArea","enableCounter","maxCount","placeholder","ButtonSet","tablet","desktop","Button","button","onClick","getCoreTranslation","InlineLoading","spinner","description","span"],"sourceRoot":""}
1
+ {"version":3,"file":"3606.js","mappings":"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","sources":["webpack://@openmrs/esm-patient-immunizations-app/./src/immunizations/immunizations-form.scss","webpack://@openmrs/esm-patient-immunizations-app/./src/hooks/useImmunizationsConceptSet.ts","webpack://@openmrs/esm-patient-immunizations-app/./src/immunizations/immunizations-form.scss?68e6","webpack://@openmrs/esm-patient-immunizations-app/./src/immunizations/components/dose-input.component.tsx","webpack://@openmrs/esm-patient-immunizations-app/./src/immunizations/immunizations.resource.ts","webpack://@openmrs/esm-patient-immunizations-app/./src/immunizations/immunizations-form.workspace.tsx"],"names":["___CSS_LOADER_EXPORT___","push","module","id","locals","useImmunizationsConceptSet","config","useSWR","restBaseUrl","conceptRepresentation","immunizationConceptSet","openmrsFetch","data","isLoading","immunizationsConceptSet","results","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","undefined","DoseInput","vaccine","sequences","control","useTranslation","t","useController","name","field","vaccineSequences","useMemo","find","sequence","vaccineConceptUuid","handleChange","useCallback","event","value","parsedValue","trim","Number","onChange","isNaN","div","className","styles","row","length","Dropdown","items","map","sequenceNumber","itemToString","item","s","sequenceLabel","label","val","parseInt","selectedItem","titleText","NumberInput","allowEmpty","disableWheel","hideSteppers","min","required","savePatientImmunization","patientImmunization","immunizationObsUuid","abortController","immunizationEndpoint","fhirBaseUrl","headers","method","body","signal","currentUser","patient","patientUuid","closeWorkspace","closeWorkspaceWithSavedChanges","promptBeforeClosing","visitContext","useConfig","useSession","isTablet","useLayoutType","useImmunizations","mutate","useState","immunizationToEditMeta","setImmunizationToEditMeta","now","Date","immunizationFormSchema","z","object","vaccineUuid","string","vaccinationDate","date","birthDate","message","refine","inputDate","dayjs","startOf","today","isSame","isBefore","doseNumber","union","number","coerce","int","null","optional","note","max","nextDoseDate","nullable","expirationDate","lotNumber","manufacturer","formProps","useForm","mode","resolver","zodResolver","defaultValues","toDate","handleSubmit","reset","formState","errors","isDirty","isSubmitting","watch","useEffect","sub","immunizationFormSub","subscribe","props","vaccinationDateOrNow","parseDate","immunizationId","visitUuid","visitId","unsubscribe","next","onSubmit","immunization","err","AbortController","vaccineName","answers","answer","uuid","display","toISOString","format","mapToFHIRImmunizationResource","sessionLocation","currentProvider","showSnackbar","kind","title","isLowContrast","subtitle","FormProvider","Form","form","Stack","gap","container","ResponsiveWrapper","Controller","render","fieldState","OpenmrsDatePicker","datePicker","invalid","Boolean","error","invalidText","labelText","maxDate","disabled","candidate","sequenceDefinitions","vaccineBatchHeading","TextInput","evt","target","type","minDate","TextArea","enableCounter","maxCount","placeholder","ButtonSet","tablet","desktop","Button","button","onClick","getCoreTranslation","InlineLoading","spinner","description","span"],"sourceRoot":""}