@sasindi/samplecollection 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/30.js +1 -1
- package/dist/30.js.map +1 -1
- package/dist/340.js +1 -0
- package/dist/340.js.map +1 -0
- package/dist/425.js +1 -0
- package/dist/425.js.map +1 -0
- package/dist/529.js +1 -1
- package/dist/529.js.map +1 -1
- package/dist/577.js +1 -0
- package/dist/577.js.map +1 -0
- package/dist/981.js +2 -2
- package/dist/main.js +3 -3
- package/dist/main.js.map +1 -1
- package/dist/openmrs-esm-samplecollection.js +3 -3
- package/dist/openmrs-esm-samplecollection.js.buildmanifest.json +92 -42
- package/dist/openmrs-esm-samplecollection.js.map +1 -1
- package/dist/routes.json +1 -1
- package/package.json +1 -1
- package/src/constants.ts +1 -1
- package/src/index.ts +1 -0
- package/src/root.component.tsx +3 -10
- package/src/routes.json +6 -0
- package/src/samplecollection.component.tsx +167 -150
- package/src/samplecollection.scss +235 -101
- package/src/samplecollectionroom.component.tsx +234 -218
- package/dist/435.js +0 -1
- package/dist/435.js.map +0 -1
|
@@ -1,36 +1,22 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
|
-
import { useNavigate } from 'react-router-dom';
|
|
3
2
|
import { useTranslation } from 'react-i18next';
|
|
4
|
-
import {
|
|
5
|
-
Tile,
|
|
6
|
-
TextInput,
|
|
7
|
-
Select,
|
|
8
|
-
SelectItem,
|
|
9
|
-
TextArea,
|
|
10
|
-
Button,
|
|
11
|
-
Table,
|
|
12
|
-
TableHead,
|
|
13
|
-
TableRow,
|
|
14
|
-
TableHeader,
|
|
15
|
-
TableBody,
|
|
16
|
-
TableCell,
|
|
17
|
-
Checkbox,
|
|
18
|
-
Loading,
|
|
19
|
-
InlineNotification
|
|
20
|
-
} from '@carbon/react';
|
|
21
3
|
import styles from './samplecollection.scss';
|
|
22
4
|
|
|
23
5
|
const UserAvatar = () => (
|
|
24
|
-
<svg width="
|
|
6
|
+
<svg width="60" height="60" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg" style={{ borderRadius: '16px', border: '3px solid #20e5bf' }}>
|
|
25
7
|
<circle cx="50" cy="50" r="50" fill="#E0F2F1"/>
|
|
26
8
|
<circle cx="50" cy="40" r="18" fill="#009384"/>
|
|
27
9
|
<path d="M18 78C18 62.536 32.3269 50 50 50C67.6731 50 82 62.536 82 78" stroke="#009384" strokeWidth="8" strokeLinecap="round"/>
|
|
28
10
|
</svg>
|
|
29
11
|
);
|
|
30
12
|
|
|
13
|
+
const navigateTo = (url: string) => {
|
|
14
|
+
window.history.pushState({}, '', url);
|
|
15
|
+
window.dispatchEvent(new PopStateEvent('popstate'));
|
|
16
|
+
};
|
|
17
|
+
|
|
31
18
|
const SamplecollectionRoom: React.FC = () => {
|
|
32
19
|
const { t } = useTranslation();
|
|
33
|
-
const navigate = useNavigate();
|
|
34
20
|
|
|
35
21
|
// Route state read from localstorage
|
|
36
22
|
const phnNo = localStorage.getItem('phnNo') || '';
|
|
@@ -269,7 +255,7 @@ const SamplecollectionRoom: React.FC = () => {
|
|
|
269
255
|
// Ported JSP behavior: Just show success and redirect/reload
|
|
270
256
|
setSuccessMsg('Status saved successfully as Not Done!');
|
|
271
257
|
setTimeout(() => {
|
|
272
|
-
|
|
258
|
+
navigateTo('/openmrs/spa/samplecollection');
|
|
273
259
|
}, 1500);
|
|
274
260
|
return;
|
|
275
261
|
}
|
|
@@ -416,223 +402,253 @@ const SamplecollectionRoom: React.FC = () => {
|
|
|
416
402
|
}
|
|
417
403
|
};
|
|
418
404
|
|
|
419
|
-
if (loading)
|
|
405
|
+
if (loading) {
|
|
406
|
+
return (
|
|
407
|
+
<div className={styles.container} style={{ textAlign: 'center', padding: '50px' }}>
|
|
408
|
+
Loading patient details...
|
|
409
|
+
</div>
|
|
410
|
+
);
|
|
411
|
+
}
|
|
420
412
|
|
|
421
413
|
return (
|
|
422
414
|
<div className={styles.container}>
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
<div className={styles.
|
|
426
|
-
<
|
|
427
|
-
|
|
428
|
-
</h1>
|
|
429
|
-
<div className={styles.locationBadge}>
|
|
430
|
-
<span className="icon-hospital" />
|
|
431
|
-
<span>{locationName}</span>
|
|
432
|
-
</div>
|
|
415
|
+
{/* Clinic/Hospital Header */}
|
|
416
|
+
<div style={{ display: 'flex', justifyContent: 'flex-end', marginBottom: '10px' }}>
|
|
417
|
+
<div className={styles.locationBadge} style={{ background: '#e9ecef', color: '#495057' }}>
|
|
418
|
+
<span className="icon-hospital" />
|
|
419
|
+
<span id="lblInstituteName" style={{ fontWeight: 'bold' }}>{locationName}</span>
|
|
433
420
|
</div>
|
|
421
|
+
</div>
|
|
434
422
|
|
|
435
|
-
|
|
436
|
-
{
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
subtitle={successMsg}
|
|
450
|
-
onClose={() => setSuccessMsg('')}
|
|
451
|
-
style={{ marginBottom: '1rem' }}
|
|
452
|
-
/>
|
|
453
|
-
)}
|
|
454
|
-
|
|
455
|
-
{/* Patient Profile Card */}
|
|
456
|
-
<div className={styles.patientCard}>
|
|
457
|
-
<div className={styles.patientGrid}>
|
|
458
|
-
<div className={styles.patientField}>
|
|
459
|
-
<span className={styles.fieldLabel}>Full Name</span>
|
|
460
|
-
<span className={styles.fieldValue}>{patientName || 'N/A'}</span>
|
|
461
|
-
</div>
|
|
462
|
-
<div className={styles.patientField}>
|
|
463
|
-
<span className={styles.fieldLabel}>Section</span>
|
|
464
|
-
<span className={styles.fieldValue}>{initialSection || 'N/A'}</span>
|
|
423
|
+
<div className={styles.card}>
|
|
424
|
+
<div className={styles.cardBody}>
|
|
425
|
+
|
|
426
|
+
{/* Section title */}
|
|
427
|
+
<div className={styles.col12} style={{ marginBottom: '1rem', padding: 0 }}>
|
|
428
|
+
<h2 className={styles.heading} style={{ margin: 0 }}>
|
|
429
|
+
{t('samplecollectionRoomHeading', 'Sample Collection Room')}
|
|
430
|
+
</h2>
|
|
431
|
+
</div>
|
|
432
|
+
|
|
433
|
+
{/* Messages */}
|
|
434
|
+
{errorMsg && (
|
|
435
|
+
<div style={{ padding: '8px', color: '#721c24', backgroundColor: '#f8d7da', border: '1px solid #f5c6cb', borderRadius: '4px', marginBottom: '10px' }}>
|
|
436
|
+
{errorMsg}
|
|
465
437
|
</div>
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
438
|
+
)}
|
|
439
|
+
{successMsg && (
|
|
440
|
+
<div style={{ padding: '8px', color: '#155724', backgroundColor: '#d4edda', border: '1px solid #c3e6cb', borderRadius: '4px', marginBottom: '10px' }}>
|
|
441
|
+
{successMsg}
|
|
469
442
|
</div>
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
443
|
+
)}
|
|
444
|
+
|
|
445
|
+
{/* Patient Card Grid (Col-10 fields, Col-2 avatar) */}
|
|
446
|
+
<div className={styles.row} style={{ marginBottom: '1.5rem' }}>
|
|
447
|
+
<div className={styles.col10}>
|
|
448
|
+
<div className={styles.row}>
|
|
449
|
+
|
|
450
|
+
<div className={styles.formGroupCol}>
|
|
451
|
+
<label className={styles.labelCompact}>Full Name</label>
|
|
452
|
+
<input type="text" className={styles.formControl} value={patientName} readOnly />
|
|
453
|
+
</div>
|
|
454
|
+
|
|
455
|
+
<div className={styles.formGroupCol}>
|
|
456
|
+
<label className={styles.labelCompact}>Section</label>
|
|
457
|
+
<input type="text" className={styles.formControl} value={initialSection} readOnly />
|
|
458
|
+
</div>
|
|
459
|
+
|
|
460
|
+
<div className={styles.formGroupCol}>
|
|
461
|
+
<label className={styles.labelCompact}>PHN No</label>
|
|
462
|
+
<input type="text" className={styles.formControl} value={phnNo} readOnly />
|
|
463
|
+
</div>
|
|
464
|
+
|
|
465
|
+
<div className={styles.formGroupCol}>
|
|
466
|
+
<label className={styles.labelCompact}>Age</label>
|
|
467
|
+
<input type="text" className={styles.formControl} value={patientAge} readOnly />
|
|
468
|
+
</div>
|
|
469
|
+
|
|
470
|
+
<div className={styles.formGroupCol}>
|
|
471
|
+
<label className={styles.labelCompact}>Gender</label>
|
|
472
|
+
<input type="text" className={styles.formControl} value={patientGender} readOnly />
|
|
473
|
+
</div>
|
|
474
|
+
|
|
475
|
+
</div>
|
|
473
476
|
</div>
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
<
|
|
477
|
+
|
|
478
|
+
<div className={styles.col2}>
|
|
479
|
+
<div className={styles.avatarContainer}>
|
|
480
|
+
{profileImgName ? (
|
|
481
|
+
<img
|
|
482
|
+
src={`${window.location.origin}/openmrs/owa/PatientImagesUploaded/${profileImgName}`}
|
|
483
|
+
alt="Patient avatar"
|
|
484
|
+
className={styles.uploadImg}
|
|
485
|
+
onError={(e) => {
|
|
486
|
+
(e.target as HTMLElement).style.display = 'none';
|
|
487
|
+
}}
|
|
488
|
+
/>
|
|
489
|
+
) : (
|
|
490
|
+
<UserAvatar />
|
|
491
|
+
)}
|
|
492
|
+
</div>
|
|
477
493
|
</div>
|
|
478
494
|
</div>
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
495
|
+
|
|
496
|
+
{/* Pending Tests Table */}
|
|
497
|
+
<div className={styles.tableResponsive} style={{ maxHeight: '200px', overflowY: 'auto', border: '1px solid #dee2e6', marginBottom: '1.5rem' }}>
|
|
498
|
+
<table className={`${styles.table} ${styles.tableBordered} ${styles.tableHover} ${styles.tableStriped}`}>
|
|
499
|
+
<thead>
|
|
500
|
+
<tr>
|
|
501
|
+
<th style={{ width: '50px' }}>No</th>
|
|
502
|
+
<th style={{ whiteSpace: 'nowrap' }}>Test Name</th>
|
|
503
|
+
<th style={{ whiteSpace: 'nowrap' }}>Order By</th>
|
|
504
|
+
<th style={{ whiteSpace: 'nowrap' }}>Order Date/Time</th>
|
|
505
|
+
<th style={{ width: '40px' }}></th>
|
|
506
|
+
</tr>
|
|
507
|
+
</thead>
|
|
508
|
+
<tbody>
|
|
509
|
+
{testList.length === 0 ? (
|
|
510
|
+
<tr>
|
|
511
|
+
<td colSpan={5} style={{ textAlign: 'center', padding: '10px' }}>
|
|
512
|
+
No active tests pending collection.
|
|
513
|
+
</td>
|
|
514
|
+
</tr>
|
|
515
|
+
) : (
|
|
516
|
+
testList.map((row, index) => {
|
|
517
|
+
const id = row[8];
|
|
518
|
+
const testName = row[2];
|
|
519
|
+
const orderBy = row[5];
|
|
520
|
+
const orderDateTime = row[6];
|
|
521
|
+
const urgent = row[9];
|
|
522
|
+
const isChecked = selectedIds.includes(String(id));
|
|
523
|
+
|
|
524
|
+
return (
|
|
525
|
+
<tr key={id || index}>
|
|
526
|
+
<td>{index + 1}</td>
|
|
527
|
+
<td>{testName}</td>
|
|
528
|
+
<td>{orderBy}</td>
|
|
529
|
+
<td>{orderDateTime}</td>
|
|
530
|
+
<td style={{ textAlign: 'center' }}>
|
|
531
|
+
<input
|
|
532
|
+
type="checkbox"
|
|
533
|
+
className={styles.formControl}
|
|
534
|
+
style={{ width: '16px', height: '16px', margin: 0 }}
|
|
535
|
+
checked={isChecked}
|
|
536
|
+
onChange={(e) =>
|
|
537
|
+
handleCheckboxChange(e.target.checked, String(id), testName, String(urgent), row)
|
|
538
|
+
}
|
|
539
|
+
/>
|
|
540
|
+
</td>
|
|
541
|
+
</tr>
|
|
542
|
+
);
|
|
543
|
+
})
|
|
544
|
+
)}
|
|
545
|
+
</tbody>
|
|
546
|
+
</table>
|
|
493
547
|
</div>
|
|
494
|
-
</div>
|
|
495
548
|
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
<
|
|
500
|
-
<
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
<TableHeader>Order By</TableHeader>
|
|
504
|
-
<TableHeader>Order Date/Time</TableHeader>
|
|
505
|
-
<TableHeader className={styles.checkboxCell} />
|
|
506
|
-
</TableRow>
|
|
507
|
-
</TableHead>
|
|
508
|
-
<TableBody>
|
|
509
|
-
{testList.length === 0 ? (
|
|
510
|
-
<TableRow>
|
|
511
|
-
<TableCell colSpan={5} style={{ textAlign: 'center' }}>
|
|
512
|
-
No active tests pending collection.
|
|
513
|
-
</TableCell>
|
|
514
|
-
</TableRow>
|
|
515
|
-
) : (
|
|
516
|
-
testList.map((row, index) => {
|
|
517
|
-
const id = row[8];
|
|
518
|
-
const testName = row[2];
|
|
519
|
-
const orderBy = row[5];
|
|
520
|
-
const orderDateTime = row[6];
|
|
521
|
-
const urgent = row[9]; // 'true' or 'false'
|
|
522
|
-
const isChecked = selectedIds.includes(String(id));
|
|
523
|
-
|
|
524
|
-
return (
|
|
525
|
-
<TableRow key={id || index}>
|
|
526
|
-
<TableCell>{index + 1}</TableCell>
|
|
527
|
-
<TableCell>{testName}</TableCell>
|
|
528
|
-
<TableCell>{orderBy}</TableCell>
|
|
529
|
-
<TableCell>{orderDateTime}</TableCell>
|
|
530
|
-
<TableCell className={styles.checkboxCell}>
|
|
531
|
-
<Checkbox
|
|
532
|
-
id={`chk-${id}`}
|
|
533
|
-
labelText=""
|
|
534
|
-
checked={isChecked}
|
|
535
|
-
onChange={(e, { checked }) =>
|
|
536
|
-
handleCheckboxChange(checked, String(id), testName, String(urgent), row)
|
|
537
|
-
}
|
|
538
|
-
/>
|
|
539
|
-
</TableCell>
|
|
540
|
-
</TableRow>
|
|
541
|
-
);
|
|
542
|
-
})
|
|
543
|
-
)}
|
|
544
|
-
</TableBody>
|
|
545
|
-
</Table>
|
|
546
|
-
</div>
|
|
549
|
+
{/* Test Detail Display inputs */}
|
|
550
|
+
<div className={styles.row} style={{ marginBottom: '1rem' }}>
|
|
551
|
+
|
|
552
|
+
<div className={styles.formGroupCol}>
|
|
553
|
+
<label className={styles.labelCompact}>Test Name</label>
|
|
554
|
+
<input type="text" className={styles.formControl} value={displayTestNames} readOnly />
|
|
555
|
+
</div>
|
|
547
556
|
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
readOnly
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
value={
|
|
561
|
-
|
|
562
|
-
/>
|
|
563
|
-
<TextInput
|
|
564
|
-
id="txtorderdate"
|
|
565
|
-
labelText="Order Date"
|
|
566
|
-
value={displayOrderDate}
|
|
567
|
-
readOnly
|
|
568
|
-
/>
|
|
569
|
-
<TextInput
|
|
570
|
-
id="txtordertime"
|
|
571
|
-
labelText="Order Time"
|
|
572
|
-
value={displayOrderTime}
|
|
573
|
-
readOnly
|
|
574
|
-
/>
|
|
575
|
-
</div>
|
|
557
|
+
<div className={styles.formGroupCol}>
|
|
558
|
+
<label className={styles.labelCompact}>Order By</label>
|
|
559
|
+
<input type="text" className={styles.formControl} value={displayOrderBy} readOnly />
|
|
560
|
+
</div>
|
|
561
|
+
|
|
562
|
+
<div className={styles.formGroupCol}>
|
|
563
|
+
<label className={styles.labelCompact}>Order Date</label>
|
|
564
|
+
<input type="text" className={styles.formControl} value={displayOrderDate} readOnly />
|
|
565
|
+
</div>
|
|
566
|
+
|
|
567
|
+
<div className={styles.formGroupCol}>
|
|
568
|
+
<label className={styles.labelCompact}>Order Time</label>
|
|
569
|
+
<input type="text" className={styles.formControl} value={displayOrderTime} readOnly />
|
|
570
|
+
</div>
|
|
576
571
|
|
|
577
|
-
<hr style={{ border: 'none', height: '1px', backgroundColor: '#e0e0e0', margin: '20px 0' }} />
|
|
578
|
-
|
|
579
|
-
{/* User inputs */}
|
|
580
|
-
<div className={styles.formGrid}>
|
|
581
|
-
<TextInput
|
|
582
|
-
id="txtdate"
|
|
583
|
-
labelText="Date"
|
|
584
|
-
type="date"
|
|
585
|
-
value={saveDate}
|
|
586
|
-
onChange={(e) => setSaveDate(e.target.value)}
|
|
587
|
-
/>
|
|
588
|
-
<TextInput
|
|
589
|
-
id="txttime"
|
|
590
|
-
labelText="Time"
|
|
591
|
-
type="time"
|
|
592
|
-
value={saveTime}
|
|
593
|
-
onChange={(e) => setSaveTime(e.target.value)}
|
|
594
|
-
/>
|
|
595
|
-
<Select
|
|
596
|
-
id="drpstatus"
|
|
597
|
-
labelText="Collection Status"
|
|
598
|
-
value={saveStatus}
|
|
599
|
-
onChange={(e) => setSaveStatus(e.target.value)}
|
|
600
|
-
>
|
|
601
|
-
<SelectItem value="0" text="--Select--" />
|
|
602
|
-
<SelectItem value="Done" text="Done" />
|
|
603
|
-
<SelectItem value="Not Done" text="Not Done" />
|
|
604
|
-
</Select>
|
|
605
572
|
</div>
|
|
606
573
|
|
|
607
|
-
<
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
574
|
+
<hr style={{ border: 'none', height: '1px', backgroundColor: '#000', margin: '20px 0' }} />
|
|
575
|
+
|
|
576
|
+
{/* Date, Time, Status fields */}
|
|
577
|
+
<div className={styles.row} style={{ marginBottom: '1rem' }}>
|
|
578
|
+
|
|
579
|
+
<div className={styles.formGroupCol}>
|
|
580
|
+
<label className={styles.labelCompact}>Date</label>
|
|
581
|
+
<input
|
|
582
|
+
type="date"
|
|
583
|
+
className={styles.formControl}
|
|
584
|
+
value={saveDate}
|
|
585
|
+
onChange={(e) => setSaveDate(e.target.value)}
|
|
586
|
+
/>
|
|
587
|
+
</div>
|
|
588
|
+
|
|
589
|
+
<div className={styles.formGroupCol}>
|
|
590
|
+
<label className={styles.labelCompact}>Time</label>
|
|
591
|
+
<input
|
|
592
|
+
type="time"
|
|
593
|
+
className={styles.formControl}
|
|
594
|
+
value={saveTime}
|
|
595
|
+
onChange={(e) => setSaveTime(e.target.value)}
|
|
596
|
+
/>
|
|
597
|
+
</div>
|
|
598
|
+
|
|
599
|
+
<div className={styles.formGroupCol}>
|
|
600
|
+
<label className={styles.labelCompact}>Collection Status</label>
|
|
601
|
+
<select
|
|
602
|
+
className={styles.formControl}
|
|
603
|
+
value={saveStatus}
|
|
604
|
+
onChange={(e) => setSaveStatus(e.target.value)}
|
|
605
|
+
>
|
|
606
|
+
<option value="0">--Select--</option>
|
|
607
|
+
<option value="Done">Done</option>
|
|
608
|
+
<option value="Not Done">Not Done</option>
|
|
609
|
+
</select>
|
|
610
|
+
</div>
|
|
611
|
+
|
|
615
612
|
</div>
|
|
616
613
|
|
|
617
|
-
{/* Action buttons */}
|
|
618
|
-
<div className={styles.
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
>
|
|
631
|
-
|
|
632
|
-
|
|
614
|
+
{/* Remark text box and Action buttons row */}
|
|
615
|
+
<div className={styles.row}>
|
|
616
|
+
|
|
617
|
+
<div className={styles.formGroupCol} style={{ flex: '0 0 66.6666%', maxWidth: '66.6666%', alignItems: 'flex-start' }}>
|
|
618
|
+
<label className={styles.labelCompact}>Remark</label>
|
|
619
|
+
<textarea
|
|
620
|
+
className={`${styles.formControl} ${styles.textareaControl}`}
|
|
621
|
+
rows={3}
|
|
622
|
+
value={saveRemark}
|
|
623
|
+
onChange={(e) => setSaveRemark(e.target.value)}
|
|
624
|
+
/>
|
|
625
|
+
</div>
|
|
626
|
+
|
|
627
|
+
<div className={`${styles.formGroupCol} ${styles.justifyContentEnd}`} style={{ flex: '0 0 33.3333%', maxWidth: '33.3333%', alignSelf: 'flex-end' }}>
|
|
628
|
+
<button
|
|
629
|
+
type="button"
|
|
630
|
+
className={`${styles.btn} ${styles.btnSuccess} ${styles.mx2}`}
|
|
631
|
+
style={{ height: '40px', width: '100px' }}
|
|
632
|
+
disabled={saving || testList.length === 0}
|
|
633
|
+
onClick={handleSave}
|
|
634
|
+
>
|
|
635
|
+
{saving ? 'Saving...' : 'Save'}
|
|
636
|
+
</button>
|
|
637
|
+
<button
|
|
638
|
+
type="button"
|
|
639
|
+
className={`${styles.btn} ${styles.btnDanger}`}
|
|
640
|
+
style={{ height: '40px', width: '100px' }}
|
|
641
|
+
disabled={saving}
|
|
642
|
+
onClick={() => navigateTo('/openmrs/spa/samplecollection')}
|
|
643
|
+
>
|
|
644
|
+
Back
|
|
645
|
+
</button>
|
|
646
|
+
</div>
|
|
647
|
+
|
|
633
648
|
</div>
|
|
649
|
+
|
|
634
650
|
</div>
|
|
635
|
-
</
|
|
651
|
+
</div>
|
|
636
652
|
</div>
|
|
637
653
|
);
|
|
638
654
|
};
|
package/dist/435.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_sasindi_samplecollection=globalThis.webpackChunk_sasindi_samplecollection||[]).push([["435"],{6582(e,t,n){n.r(t),n.d(t,{default:()=>y});var r=n(658),a=n.n(r),l=n(853),o=n(1189),s=n(7080),c=n(2549),i=n(960);function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function d(e,t,n,r,a,l,o){try{var s=e[l](o),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,a)}function m(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function o(e){d(l,r,a,o,s,"next",e)}function s(e){d(l,r,a,o,s,"throw",e)}o(void 0)})}}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],o=!0,s=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(s)throw r}}return l}}(e,t)||h(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||h(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e,t){if(e){if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(e,t)}}function v(e,t){var n,r,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),s=Object.defineProperty;return s(o,"next",{value:c(0)}),s(o,"throw",{value:c(1)}),s(o,"return",{value:c(2)}),"function"==typeof Symbol&&s(o,Symbol.iterator,{value:function(){return this}}),o;function c(s){return function(c){var i=[s,c];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,i[0]&&(l=0)),l;)try{if(n=1,r&&(a=2&i[0]?r.return:i[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,i[1])).done)return a;switch(r=0,a&&(i=[2&i[0],a.value]),i[0]){case 0:case 1:a=i;break;case 4:return l.label++,{value:i[1],done:!1};case 5:l.label++,r=i[1],i=[0];continue;case 7:i=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===i[0]||2===i[0])){l=0;continue}if(3===i[0]&&(!a||i[1]>a[0]&&i[1]<a[3])){l.label=i[1];break}if(6===i[0]&&l.label<a[1]){l.label=a[1],a=i;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(i);break}a[2]&&l.ops.pop(),l.trys.pop();continue}i=t.call(e,l)}catch(e){i=[6,e],r=0}finally{n=a=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}}}var b=function(){return a().createElement("svg",{width:"100",height:"100",viewBox:"0 0 100 100",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{borderRadius:"50%",border:"3px solid #009384"}},a().createElement("circle",{cx:"50",cy:"50",r:"50",fill:"#E0F2F1"}),a().createElement("circle",{cx:"50",cy:"40",r:"18",fill:"#009384"}),a().createElement("path",{d:"M18 78C18 62.536 32.3269 50 50 50C67.6731 50 82 62.536 82 78",stroke:"#009384",strokeWidth:"8",strokeLinecap:"round"}))};let g=function(){var e=(0,s.useTranslation)().t,t=(0,l.useNavigate)(),n=localStorage.getItem("phnNo")||"",o=localStorage.getItem("section")||"",u=p((0,r.useState)(""),2),d=u[0],h=u[1],g=p((0,r.useState)(""),2),y=g[0],E=g[1],w=p((0,r.useState)(""),2),S=w[0],N=w[1],x=p((0,r.useState)(""),2),T=x[0],A=x[1],k=p((0,r.useState)(""),2),C=k[0],I=k[1],D=p((0,r.useState)(""),2),O=D[0],j=D[1],P=p((0,r.useState)(""),2),B=P[0],F=P[1],R=p((0,r.useState)(""),2),H=R[0],_=R[1],L=p((0,r.useState)([]),2),M=L[0],Y=L[1],V=p((0,r.useState)(!0),2),G=V[0],U=V[1],z=p((0,r.useState)(""),2),J=z[0],W=z[1],q=p((0,r.useState)(""),2),$=q[0],K=q[1],Q=p((0,r.useState)([]),2),X=Q[0],Z=Q[1],ee=p((0,r.useState)([]),2),et=ee[0],en=ee[1],er=p((0,r.useState)([]),2),ea=er[0],el=er[1],eo=p((0,r.useState)(""),2),es=eo[0],ec=eo[1],ei=p((0,r.useState)(""),2),eu=ei[0],ed=ei[1],em=p((0,r.useState)(""),2),ep=em[0],ef=em[1],eh=p((0,r.useState)(""),2),ev=eh[0],eb=eh[1],eg=p((0,r.useState)(""),2),ey=eg[0],eE=eg[1],ew=p((0,r.useState)(""),2),eS=ew[0],eN=ew[1],ex=p((0,r.useState)("Done"),2),eT=ex[0],eA=ex[1],ek=p((0,r.useState)(""),2),eC=ek[0],eI=ek[1],eD=p((0,r.useState)(!1),2),eO=eD[0],ej=eD[1],eP=function(e,t){return e.toString().padStart(t,"0")},eB=function(){var e=new Date;return e.getFullYear().toString().substr(-2)+eP(e.getMonth()+1,2)+eP(e.getDate(),2)+eP(e.getHours(),2)+eP(e.getMinutes(),2)+eP(e.getSeconds(),2)},eF=function(e){if(!e)return"";var t=new Date,n=new Date(e),r=t.getFullYear()-n.getFullYear(),a=t.getMonth()-n.getMonth();return(a<0||0===a&&t.getDate()<n.getDate())&&r--,r.toString()};(0,r.useEffect)(function(){var e=new Date,t="".concat(e.getFullYear(),"-").concat(eP(e.getMonth()+1,2),"-").concat(eP(e.getDate(),2)),n="".concat(eP(e.getHours(),2),":").concat(eP(e.getMinutes(),2));eE(t),eN(n)},[]),(0,r.useEffect)(function(){if(!n){W("No patient PHN provided"),U(!1);return}m(function(){var e,t,r,a,l,s,c,i,u,d,m,f,b,g,y,w,S,x,T,k;return v(this,function(v){switch(v.label){case 0:return v.trys.push([0,13,14,15]),[4,fetch("/openmrs/ws/rest/v1/session")];case 1:if(!(u=v.sent()).ok)throw Error("Session request failed");return[4,u.json()];case 2:return I((d=v.sent()).user.uuid),m=d.user.person.uuid,[4,fetch("/openmrs/ws/rest/v1/person/".concat(m))];case 3:if(!(f=v.sent()).ok)throw Error("User person details failed");return[4,f.json()];case 4:if(b=v.sent(),g="",b.attributes&&b.attributes.forEach(function(e){if(e.display){var t=p(e.display.split("="),2),n=t[0],r=t[1];n&&r&&"Institute Id"===n.trim()&&(g=r.trim())}}),!g)return[3,7];return j(g),[4,fetch("/openmrs/ws/rest/v1/location/".concat(g))];case 5:if(!(y=v.sent()).ok)return[3,7];return[4,y.json()];case 6:F((w=v.sent()).display||""),w.attributes&&w.attributes.forEach(function(e){if(e.display&&e.display.includes("POI")){var t=e.display.split(":")[1];t&&_(t.split(",")[0].trim())}}),v.label=7;case 7:return[4,fetch("/openmrs/ws/rest/v1/patientexamination/phn/".concat(n))];case 8:if(!(S=v.sent()).ok)throw Error("Patient not found");return[4,S.json()];case 9:if(h((null==(t=(x=v.sent()).person_id)||null==(e=t.person)?void 0:e.display)||""),E((null==(a=x.person_id)||null==(r=a.person)?void 0:r.gender)||""),(null==(s=x.person_id)||null==(l=s.person)?void 0:l.birthdate)&&N(eF(x.person_id.person.birthdate)),(null==(i=x.person_id)||null==(c=i.person)?void 0:c.attributes)&&x.person_id.person.attributes.forEach(function(e){e.display&&"ProfileImage"===e.display.split("=")[0].trim()&&A(e.display.split("=")[1].trim())}),!g)return[3,12];return[4,fetch("/openmrs/ws/rest/v1/samplecollection/loadview/".concat(n,"/").concat(o,"/").concat(g))];case 10:if(!(T=v.sent()).ok)return[3,12];return[4,T.json()];case 11:Y(v.sent()||[]),v.label=12;case 12:return[3,15];case 13:return console.error("Error loading page context details:",k=v.sent()),W(k.message||"Error occurred during data load"),[3,15];case 14:return U(!1),[7];case 15:return[2]}})})()},[n,o]);var eR=function(e,t,n,r,a){var l=f(X),o=f(ea),s=f(et);if(e?(l.push(t),o.push(n),s.push(r)):(l=l.filter(function(e){return e!==t}),o=o.filter(function(e){return e!==n}),s=s.filter(function(e){return e!==r})),Z(l),el(o),en(s),ec(o.join(", ")),0===l.length)ed(""),ef(""),eb("");else{var c=a[5]||"",i=p((a[6]||"").split(" "),2),u=i[0],d=i[1];ed(c),ef(u||""),eb(d||"")}};return G?a().createElement(c.Loading,{description:"Loading page details...",withOverlay:!0}):a().createElement("div",{className:i.A.container},a().createElement(c.Tile,{className:i.A.tile},a().createElement("div",{className:i.A.headerRow},a().createElement("h1",{className:i.A.heading},e("samplecollectionRoomHeading","Sample Collection Room")),a().createElement("div",{className:i.A.locationBadge},a().createElement("span",{className:"icon-hospital"}),a().createElement("span",null,B))),J&&a().createElement(c.InlineNotification,{kind:"error",title:"Error",subtitle:J,onClose:function(){return W("")},style:{marginBottom:"1rem"}}),$&&a().createElement(c.InlineNotification,{kind:"success",title:"Success",subtitle:$,onClose:function(){return K("")},style:{marginBottom:"1rem"}}),a().createElement("div",{className:i.A.patientCard},a().createElement("div",{className:i.A.patientGrid},a().createElement("div",{className:i.A.patientField},a().createElement("span",{className:i.A.fieldLabel},"Full Name"),a().createElement("span",{className:i.A.fieldValue},d||"N/A")),a().createElement("div",{className:i.A.patientField},a().createElement("span",{className:i.A.fieldLabel},"Section"),a().createElement("span",{className:i.A.fieldValue},o||"N/A")),a().createElement("div",{className:i.A.patientField},a().createElement("span",{className:i.A.fieldLabel},"PHN No"),a().createElement("span",{className:i.A.fieldValue},n||"N/A")),a().createElement("div",{className:i.A.patientField},a().createElement("span",{className:i.A.fieldLabel},"Age"),a().createElement("span",{className:i.A.fieldValue},S?"".concat(S," years"):"N/A")),a().createElement("div",{className:i.A.patientField},a().createElement("span",{className:i.A.fieldLabel},"Gender"),a().createElement("span",{className:i.A.fieldValue},y||"N/A"))),a().createElement("div",{className:i.A.avatarContainer},T?a().createElement("img",{src:"".concat(window.location.origin,"/openmrs/owa/PatientImagesUploaded/").concat(T),alt:"Patient profile",className:i.A.avatarImg,onError:function(e){e.target.style.display="none"}}):a().createElement(b,null))),a().createElement("div",{style:{maxHeight:"250px",overflowY:"auto",marginBottom:"2rem"}},a().createElement(c.Table,null,a().createElement(c.TableHead,null,a().createElement(c.TableRow,null,a().createElement(c.TableHeader,null,"No"),a().createElement(c.TableHeader,null,"Test Name"),a().createElement(c.TableHeader,null,"Order By"),a().createElement(c.TableHeader,null,"Order Date/Time"),a().createElement(c.TableHeader,{className:i.A.checkboxCell}))),a().createElement(c.TableBody,null,0===M.length?a().createElement(c.TableRow,null,a().createElement(c.TableCell,{colSpan:5,style:{textAlign:"center"}},"No active tests pending collection.")):M.map(function(e,t){var n=e[8],r=e[2],l=e[5],o=e[6],s=e[9],u=X.includes(String(n));return a().createElement(c.TableRow,{key:n||t},a().createElement(c.TableCell,null,t+1),a().createElement(c.TableCell,null,r),a().createElement(c.TableCell,null,l),a().createElement(c.TableCell,null,o),a().createElement(c.TableCell,{className:i.A.checkboxCell},a().createElement(c.Checkbox,{id:"chk-".concat(n),labelText:"",checked:u,onChange:function(t,a){return eR(a.checked,String(n),r,String(s),e)}})))})))),a().createElement("div",{className:i.A.roomFormSection},a().createElement("div",{className:i.A.formGrid},a().createElement(c.TextInput,{id:"txttestname",labelText:"Test Name",value:es,readOnly:!0}),a().createElement(c.TextInput,{id:"txtorderby",labelText:"Order By",value:eu,readOnly:!0}),a().createElement(c.TextInput,{id:"txtorderdate",labelText:"Order Date",value:ep,readOnly:!0}),a().createElement(c.TextInput,{id:"txtordertime",labelText:"Order Time",value:ev,readOnly:!0})),a().createElement("hr",{style:{border:"none",height:"1px",backgroundColor:"#e0e0e0",margin:"20px 0"}}),a().createElement("div",{className:i.A.formGrid},a().createElement(c.TextInput,{id:"txtdate",labelText:"Date",type:"date",value:ey,onChange:function(e){return eE(e.target.value)}}),a().createElement(c.TextInput,{id:"txttime",labelText:"Time",type:"time",value:eS,onChange:function(e){return eN(e.target.value)}}),a().createElement(c.Select,{id:"drpstatus",labelText:"Collection Status",value:eT,onChange:function(e){return eA(e.target.value)}},a().createElement(c.SelectItem,{value:"0",text:"--Select--"}),a().createElement(c.SelectItem,{value:"Done",text:"Done"}),a().createElement(c.SelectItem,{value:"Not Done",text:"Not Done"}))),a().createElement("div",{style:{marginBottom:"2rem"}},a().createElement(c.TextArea,{id:"txtnote",labelText:"Remark",rows:3,value:eC,onChange:function(e){return eI(e.target.value)}})),a().createElement("div",{className:i.A.actionsContainer},a().createElement(c.Button,{kind:"danger",onClick:function(){return t("/samplecollection")},disabled:eO},"Back"),a().createElement(c.Button,{kind:"primary",onClick:function(){return m(function(){var e,r,a,l,s,c,i,u,m,p,f,h,b,g,y,E,w,N,x,T,A,k,I,D,j;return v(this,function(v){switch(v.label){case 0:if("0"===eT)return W("Please select a valid Collection Status"),[2];if(0===X.length)return W("Please select at least one test to process"),[2];if(!ey||!eS)return W("Please specify both Date and Time of collection"),[2];if(!C)return W("Invalid session. Please login again."),[2];ej(!0),W(""),K(""),v.label=1;case 1:if(v.trys.push([1,22,23,24]),"Not Done"===eT)return K("Status saved successfully as Not Done!"),setTimeout(function(){t("/samplecollection")},1500),[2];e=eB(),r=et.some(function(e){return"true"===e})?"*".concat(e).concat(H):"".concat(e).concat(H),a="Done"===eT?"samplecollected":"samplenotcollected",l=({OPD:"/openmrs/ws/rest/v1/samplecollection/labtestssave",Clinic:"/openmrs/ws/rest/v1/samplecollection/labtestssaveclinic",Ward:"/openmrs/ws/rest/v1/samplecollection/labtestssaveward"})["OPD"===o?"OPD":"Clinic"===o?"Clinic":"Ward"],s=!0,c=!1,i=void 0,v.label=2;case 2:v.trys.push([2,7,8,9]),u=X[Symbol.iterator](),v.label=3;case 3:if(s=(m=u.next()).done)return[3,6];return f={id:p=m.value,collectionstatus:eT,remark:eC,barcodenumber:r,collectiondate:ey,collectiontime:eS,collectioncby:C,status:"processing",progress:a},[4,fetch(l,{method:"POST",body:JSON.stringify(f),headers:{"Content-Type":"application/json"}})];case 4:if(!v.sent().ok)throw Error("Failed to save test record for ID: ".concat(p));v.label=5;case 5:return s=!0,[3,3];case 6:return[3,9];case 7:return h=v.sent(),c=!0,i=h,[3,9];case 8:try{s||null==u.return||u.return()}finally{if(c)throw i}return[7];case 9:K("Sample status updated successfully! Preparing barcode print..."),b=[],g=!0,y=!1,E=void 0,v.label=10;case 10:v.trys.push([10,16,17,18]),w=ea[Symbol.iterator](),v.label=11;case 11:if(g=(N=w.next()).done)return[3,15];return x=N.value,[4,fetch("/openmrs/ws/rest/v1/samplecollection/getshortcode/".concat(encodeURIComponent(x)))];case 12:if(!(T=v.sent()).ok)return[3,14];return[4,T.json()];case 13:(null==(A=v.sent())?void 0:A.shortcode)&&b.push(A.shortcode),v.label=14;case 14:return g=!0,[3,11];case 15:return[3,18];case 16:return h=v.sent(),y=!0,E=h,[3,18];case 17:try{g||null==w.return||w.return()}finally{if(y)throw E}return[7];case 18:return k=b.join(", "),(I=window.open("","_blank"))&&(I.document.write('\n <!DOCTYPE html>\n <html>\n <head>\n <title>Barcode Print</title>\n <script src="https://cdnjs.cloudflare.com/ajax/libs/jsbarcode/3.11.5/JsBarcode.all.min.js"><\/script>\n <style>\n body { \n margin: 0; \n padding: 0; \n text-align: center; \n }\n .container {\n width: 1.96in; /* 5cm */\n height: 0.98in; /* 2.5cm */\n margin: 0 auto;\n position: relative;\n }\n svg {\n width: 100%;\n height: 80%;\n }\n .shortcode {\n font-family: Arial, sans-serif;\n font-size: 10px;\n margin-top: -14px;\n }\n @media print {\n body { margin: 0; padding: 0; }\n }\n </style>\n </head>\n <body>\n <div class="container">\n <svg id="barcode"></svg>\n <div class="shortcode">'.concat(d," (").concat(S,'Y)</div>\n <div style="font-size: 10px; font-family: Arial, sans-serif;">').concat(o,"/").concat(k,'</div>\n </div>\n <script>\n document.addEventListener("DOMContentLoaded", function() {\n JsBarcode("#barcode", "').concat(r,'", {\n width: 2,\n height: 50,\n displayValue: true,\n fontSize: 14,\n margin: 5\n });\n setTimeout(function() {\n window.print();\n window.close();\n }, 800);\n });\n <\/script>\n </body>\n </html>\n ')),I.document.close()),Z([]),el([]),en([]),ec(""),ed(""),ef(""),eb(""),[4,fetch("/openmrs/ws/rest/v1/samplecollection/loadview/".concat(n,"/").concat(o,"/").concat(O))];case 19:if(!(D=v.sent()).ok)return[3,21];return[4,D.json()];case 20:Y(v.sent()||[]),v.label=21;case 21:return[3,24];case 22:return console.error("Error during save process:",j=v.sent()),W(j.message||"Error occurred saving collection data"),[3,24];case 23:return ej(!1),[7];case 24:return[2]}})})()},disabled:eO||0===M.length},eO?"Saving...":"Save")))))},y=function(){return a().createElement(l.BrowserRouter,{basename:window.getOpenmrsSpaBase()},a().createElement(l.Routes,null,a().createElement(l.Route,{path:"samplecollection",element:a().createElement(o.default,null)}),a().createElement(l.Route,{path:"samplecollection/room",element:a().createElement(g,null)})))}}}]);
|
package/dist/435.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"435.js","sources":["webpack://@sasindi/samplecollection/./src/samplecollectionroom.component.tsx","webpack://@sasindi/samplecollection/./src/root.component.tsx"],"names":["UserAvatar","t","useTranslation","navigate","useNavigate","phnNo","localStorage","initialSection","_useState","patientName","setPatientName","_useState1","patientGender","setPatientGender","_useState2","patientAge","setPatientAge","_useState3","profileImgName","setProfileImgName","_useState4","userUuid","setUserUuid","_useState5","locationUuid","setLocationUuid","_useState6","locationName","setLocationName","_useState7","poi","setPoi","_useState8","testList","setTestList","_useState9","loading","setLoading","_useState10","errorMsg","setErrorMsg","_useState11","successMsg","setSuccessMsg","_useState12","selectedIds","setSelectedIds","_useState13","selectedUrgents","setSelectedUrgents","_useState14","selectedTestnames","setSelectedTestnames","_useState15","displayTestNames","setDisplayTestNames","_useState16","displayOrderBy","setDisplayOrderBy","_useState17","displayOrderDate","setDisplayOrderDate","_useState18","displayOrderTime","setDisplayOrderTime","_useState19","saveDate","setSaveDate","_useState20","saveTime","setSaveTime","_useState21","saveStatus","setSaveStatus","_useState22","saveRemark","setSaveRemark","_useState23","saving","setSaving","padNumber","number","length","getCurrentDateFormatted","now","Date","year","calculateAge","birthdateString","dob","age","monthDiff","useEffect","today","formattedDate","formattedTime","_patientData_person_id_person","_patientData_person_id_person1","_patientData_person_id_person2","_patientData_person_id_person3","sessionRes","sessionData","personUuid","personAttrRes","personAttrData","locUuid","locRes","locData","patientRes","patientData","loadViewRes","err","fetch","Error","attr","_attr_display_split","key","value","val","loadViewData","console","handleCheckboxChange","checked","id","testName","urgent","row","nextIds","nextTestnames","nextUrgents","item","orderby","_timestamp_split","date","time","Loading","styles","Tile","InlineNotification","onClose","window","onError","e","Table","TableHead","TableRow","TableHeader","TableBody","TableCell","index","orderBy","orderDateTime","isChecked","String","Checkbox","onChange","TextInput","Select","SelectItem","TextArea","Button","onClick","currentDate","generatedBarcode","progress","saveEndpoint","_iteratorError","payload","response","shortcodes","_iteratorError1","test","res","shortcodeData","combinedShortcodes","printWindow","err1","setTimeout","hasUrgent","u","JSON","encodeURIComponent","BrowserRouter","Routes","Route","Samplecollection","SamplecollectionRoom"],"mappings":"w/FAsBA,IAAMA,EAAa,W,OACjB,kBAAC,OAAI,MAAM,MAAM,OAAO,MAAM,QAAQ,cAAc,KAAK,OAAO,MAAM,6BAA6B,MAAO,CAAE,aAAc,MAAO,OAAQ,mBAAoB,C,EAC3J,kBAAC,UAAO,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,KAAK,S,GACpC,kBAAC,UAAO,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,KAAK,S,GACpC,kBAAC,QAAK,EAAE,+DAA+D,OAAO,UAAU,YAAY,IAAI,cAAc,O,KAqmB1H,MAjmBuC,WACrC,IAAQC,EAAMC,AAAAA,GAAAA,EAAAA,cAAAA,AAAAA,IAAND,CAAC,CACHE,EAAWC,AAAAA,GAAAA,EAAAA,WAAAA,AAAAA,IAGXC,EAAQC,aAAa,OAAO,CAAC,UAAY,GACzCC,EAAiBD,aAAa,OAAO,CAAC,YAAc,GAGpBE,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAAhDC,EAA+BD,CAAAA,CAAAA,EAAAA,CAAlBE,EAAkBF,CAAAA,CAAAA,EAAAA,CACIG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAApDC,EAAmCD,CAAAA,CAAAA,EAAAA,CAApBE,EAAoBF,CAAAA,CAAAA,EAAAA,CACNG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA9CC,EAA6BD,CAAAA,CAAAA,EAAAA,CAAjBE,EAAiBF,CAAAA,CAAAA,EAAAA,CACQG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAAtDC,EAAqCD,CAAAA,CAAAA,EAAAA,CAArBE,EAAqBF,CAAAA,CAAAA,EAAAA,CAGZG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA1CC,EAAyBD,CAAAA,CAAAA,EAAAA,CAAfE,EAAeF,CAAAA,CAAAA,EAAAA,CACQG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAAlDC,EAAiCD,CAAAA,CAAAA,EAAAA,CAAnBE,EAAmBF,CAAAA,CAAAA,EAAAA,CACAG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAAlDC,EAAiCD,CAAAA,CAAAA,EAAAA,CAAnBE,EAAmBF,CAAAA,CAAAA,EAAAA,CAClBG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAAhCC,EAAeD,CAAAA,CAAAA,EAAAA,CAAVE,EAAUF,CAAAA,CAAAA,EAAAA,CAGUG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAgB,EAAE,KAA3CC,EAAyBD,CAAAA,CAAAA,EAAAA,CAAfE,EAAeF,CAAAA,CAAAA,EAAAA,CACFG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAkB,OAAzCC,EAAuBD,CAAAA,CAAAA,EAAAA,CAAdE,EAAcF,CAAAA,CAAAA,EAAAA,CACEG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA1CC,EAAyBD,CAAAA,CAAAA,EAAAA,CAAfE,EAAeF,CAAAA,CAAAA,EAAAA,CACIG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA9CC,EAA6BD,CAAAA,CAAAA,EAAAA,CAAjBE,EAAiBF,CAAAA,CAAAA,EAAAA,CAGEG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAmB,EAAE,KAApDC,EAA+BD,CAAAA,CAAAA,EAAAA,CAAlBE,EAAkBF,CAAAA,CAAAA,EAAAA,CACQG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAmB,EAAE,KAA5DC,GAAuCD,EAAAA,CAAAA,EAAAA,CAAtBE,GAAsBF,EAAAA,CAAAA,EAAAA,CACIG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAmB,EAAE,KAAhEC,GAA2CD,EAAAA,CAAAA,EAAAA,CAAxBE,GAAwBF,EAAAA,CAAAA,EAAAA,CAEFG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA1DC,GAAyCD,EAAAA,CAAAA,EAAAA,CAAvBE,GAAuBF,EAAAA,CAAAA,EAAAA,CACJG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAAtDC,GAAqCD,EAAAA,CAAAA,EAAAA,CAArBE,GAAqBF,EAAAA,CAAAA,EAAAA,CACIG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA1DC,GAAyCD,EAAAA,CAAAA,EAAAA,CAAvBE,GAAuBF,EAAAA,CAAAA,EAAAA,CACAG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA1DC,GAAyCD,EAAAA,CAAAA,EAAAA,CAAvBE,GAAuBF,EAAAA,CAAAA,EAAAA,CAGhBG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA1CC,GAAyBD,EAAAA,CAAAA,EAAAA,CAAfE,GAAeF,EAAAA,CAAAA,EAAAA,CACAG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA1CC,GAAyBD,EAAAA,CAAAA,EAAAA,CAAfE,GAAeF,EAAAA,CAAAA,EAAAA,CACIG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,WAA9CC,GAA6BD,EAAAA,CAAAA,EAAAA,CAAjBE,GAAiBF,EAAAA,CAAAA,EAAAA,CACAG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA9CC,GAA6BD,EAAAA,CAAAA,EAAAA,CAAjBE,GAAiBF,EAAAA,CAAAA,EAAAA,CACRG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAkB,OAAvCC,GAAqBD,EAAAA,CAAAA,EAAAA,CAAbE,GAAaF,EAAAA,CAAAA,EAAAA,CAGtBG,GAAY,SAACC,CAAM,CAAUC,CAAM,EACvC,OAAOD,EAAO,QAAQ,GAAG,QAAQ,CAACC,EAAQ,IAC5C,EAGMC,GAA0B,WAC9B,IAAMC,EAAM,IAAIC,KAOhB,OAAOC,AANMF,EAAI,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC,IACnCJ,GAAUI,EAAI,QAAQ,GAAK,EAAG,GAChCJ,GAAUI,EAAI,OAAO,GAAI,GACvBJ,GAAUI,EAAI,QAAQ,GAAI,GACxBJ,GAAUI,EAAI,UAAU,GAAI,GAC5BJ,GAAUI,EAAI,UAAU,GAAI,EAE9C,EAGMG,GAAe,SAACC,CAAe,EACnC,GAAI,CAACA,EAAiB,MAAO,GAC7B,IAAMJ,EAAM,IAAIC,KACVI,EAAM,IAAIJ,KAAKG,GACjBE,EAAMN,EAAI,WAAW,GAAKK,EAAI,WAAW,GACvCE,EAAYP,EAAI,QAAQ,GAAKK,EAAI,QAAQ,GAI/C,MAHIE,CAAAA,EAAY,GAAMA,AAAc,IAAdA,GAAmBP,EAAI,OAAO,GAAKK,EAAI,OAAO,EAAC,GACnEC,IAEKA,EAAI,QAAQ,EACrB,EAGAE,AAAAA,GAAAA,EAAAA,SAAAA,AAAAA,EAAU,WACR,IAAMC,EAAQ,IAAIR,KACZS,EAAiB,GAAyBd,MAAAA,CAAvBa,EAAM,WAAW,GAAG,KAAyCb,MAAAA,CAAtCA,GAAUa,EAAM,QAAQ,GAAK,EAAG,GAAG,KAAiC,OAA9Bb,GAAUa,EAAM,OAAO,GAAI,IAC3GE,EAAiB,GAAoCf,MAAAA,CAAlCA,GAAUa,EAAM,QAAQ,GAAI,GAAG,KAAoC,OAAjCb,GAAUa,EAAM,UAAU,GAAI,IAEzF1B,GAAY2B,GACZxB,GAAYyB,EACd,EAAG,EAAE,EAGLH,AAAAA,GAAAA,EAAAA,SAAAA,AAAAA,EAAU,WACR,GAAI,CAACvF,EAAO,CACVmC,EAAY,2BACZH,EAAW,IACX,MACF,C,iBAqDmB2D,EAAAA,EACEC,EAAAA,EACbC,EAAAA,EAKAC,EAAAA,EAvDEC,EAEAC,EAEAC,EAGAC,EAEAC,EAEFC,EAgBIC,EAEEC,EAeJC,EAEAC,EAmBEC,EAMDC,E,iDAvEY,O,0BAAA,C,EAAMC,MAAM,+B,QAC/B,GAAI,CAACZ,AADCA,CAAAA,EAAa,UACH,EAAE,CAAE,MAAM,AAAIa,MAAM,0BAChB,O,EAAMb,EAAW,IAAI,G,QAKnB,OAJtB9E,EAAY+E,AADNA,CAAAA,EAAc,UACI,IAAI,CAAC,IAAI,EAC3BC,EAAaD,EAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAGzB,C,EAAMW,MAAO,8BAAwC,OAAXV,I,QAChE,GAAI,CAACC,AADCA,CAAAA,EAAgB,UACH,EAAE,CAAE,MAAM,AAAIU,MAAM,8BAChB,O,EAAMV,EAAc,IAAI,G,WAAzCC,EAAiB,SAEnBC,EAAU,GACVD,EAAe,UAAU,EAC3BA,EAAe,UAAU,CAAC,OAAO,CAAC,SAACU,CAAI,EACrC,GAAIA,EAAK,OAAO,CAAE,CAChB,IAAqBC,EAAAA,EAAAA,EAAK,OAAO,CAAC,KAAK,CAAC,QAAjCC,EAAcD,CAAAA,CAAAA,EAAAA,CAATE,EAASF,CAAAA,CAAAA,EAAAA,AACjBC,CAAAA,GAAOC,GAASD,AAAe,iBAAfA,EAAI,IAAI,IAC1BX,CAAAA,EAAUY,EAAM,IAAI,EAAC,CAEzB,CACF,G,CAGEZ,EAAAA,MAAAA,C,KAIa,OAHfhF,EAAgBgF,GAGD,C,EAAMO,MAAO,gCAAuC,OAARP,I,YACvDC,AADEA,CAAAA,EAAS,UACJ,EAAE,CAATA,MAAAA,C,KACc,O,EAAMA,EAAO,IAAI,G,QACjC9E,EAAgB+E,AADVA,CAAAA,EAAU,UACQ,OAAO,EAAI,IAE/BA,EAAQ,UAAU,EACpBA,EAAQ,UAAU,CAAC,OAAO,CAAC,SAACO,CAAI,EAC9B,GAAIA,EAAK,OAAO,EAAIA,EAAK,OAAO,CAAC,QAAQ,CAAC,OAAQ,CAChD,IAAMI,EAAMJ,EAAK,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,AAClCI,CAAAA,GAAKvF,EAAOuF,EAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GACxC,CACF,G,iBAMa,O,EAAMN,MAAO,8CAAmD,OAAN3G,I,QAC7E,GAAI,CAACuG,AADCA,CAAAA,EAAa,UACH,EAAE,CAAE,MAAM,AAAIK,MAAM,qBAChB,O,EAAML,EAAW,IAAI,G,WAEzClG,EAAesF,OAAAA,CAAAA,EAAAA,AAFTa,CAAAA,EAAc,UAEO,SAAS,AAAD,GAApBb,MAAAA,CAAAA,EAAAA,EAAuB,MAAM,AAAD,EAA5BA,KAAAA,EAAAA,EAA+B,OAAO,GAAI,IACzDnF,EAAiBoF,OAAAA,CAAAA,EAAAA,EAAY,SAAS,AAAD,GAApBA,MAAAA,CAAAA,EAAAA,EAAuB,MAAM,AAAD,EAA5BA,KAAAA,EAAAA,EAA+B,MAAM,GAAI,IACtD,OAAAC,CAAAA,EAAAA,EAAY,SAAS,AAAD,GAApBA,MAAAA,CAAAA,EAAAA,EAAuB,MAAM,AAAD,EAA5BA,KAAAA,EAAAA,EAA+B,SAAS,GAC1ClF,EAAcuE,GAAasB,EAAY,SAAS,CAAC,MAAM,CAAC,SAAS,GAI/D,OAAAV,CAAAA,EAAAA,EAAY,SAAS,AAAD,GAApBA,MAAAA,CAAAA,EAAAA,EAAuB,MAAM,AAAD,EAA5BA,KAAAA,EAAAA,EAA+B,UAAU,GAC3CU,EAAY,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,SAACK,CAAI,EAC/CA,EAAK,OAAO,EAAIA,AAAsC,iBAAtCA,EAAK,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IACjD/F,EAAkB+F,EAAK,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAErD,G,CAIET,EAAAA,MAAAA,C,MACkB,O,EAAMO,MAAO,iDAAyDzG,MAAAA,CAATF,EAAM,KAAqBoG,MAAAA,CAAlBlG,EAAe,KAAW,OAARkG,I,aACxGK,AADEA,CAAAA,EAAc,UACJ,EAAE,CAAdA,MAAAA,C,MACmB,O,EAAMA,EAAY,IAAI,G,SAC3C5E,EAAYqF,AADS,UACO,EAAE,E,+CAIlCC,QAAQ,KAAK,CAAC,sCADPT,EAAAA,EAAAA,IAAAA,IAEPvE,EAAYuE,EAAI,OAAO,EAAI,mC,sBAE3B1E,EAAW,I,wBAEf,IAGF,EAAG,CAAChC,EAAOE,EAAe,EAG1B,IAAMkH,GAAuB,SAACC,CAAO,CAAWC,CAAE,CAAUC,CAAQ,CAAUC,CAAM,CAAUC,CAAG,EAC/F,IAAIC,EAAW,EAAGlF,GACdmF,EAAiB,EAAG7E,IACpB8E,EAAe,EAAGjF,IAmBtB,GAjBI0E,GACFK,EAAQ,IAAI,CAACJ,GACbK,EAAc,IAAI,CAACJ,GACnBK,EAAY,IAAI,CAACJ,KAEjBE,EAAUA,EAAQ,MAAM,CAAC,SAACG,CAAI,E,OAAKA,IAASP,C,GAC5CK,EAAgBA,EAAc,MAAM,CAAC,SAACE,CAAI,E,OAAKA,IAASN,C,GACxDK,EAAcA,EAAY,MAAM,CAAC,SAACC,CAAI,E,OAAKA,IAASL,C,IAGtD/E,EAAeiF,GACf3E,GAAqB4E,GACrB/E,GAAmBgF,GAGnB1E,GAAoByE,EAAc,IAAI,CAAC,OAEnCD,AAAmB,IAAnBA,EAAQ,MAAM,CAChBrE,GAAkB,IAClBG,GAAoB,IACpBG,GAAoB,QACf,CAEL,IAAMmE,EAAUL,CAAG,CAAC,EAAE,EAAI,GAELM,EAAAA,EAAAA,AADHN,CAAAA,CAAG,CAAC,EAAE,EAAI,EAAC,EACE,KAAK,CAAC,QAA9BO,EAAcD,CAAAA,CAAAA,EAAAA,CAARE,EAAQF,CAAAA,CAAAA,EAAAA,CACrB1E,GAAkByE,GAClBtE,GAAoBwE,GAAQ,IAC5BrE,GAAoBsE,GAAQ,GAC9B,CACF,SAgLA,AAAIlG,EAAgB,kBAACmG,EAAAA,OAAOA,CAAAA,CAAC,YAAY,0BAA0B,YAAa,E,GAG9E,kBAAC,OAAI,UAAWC,EAAAA,CAAAA,CAAAA,SAAgB,A,EAC9B,kBAACC,EAAAA,IAAIA,CAAAA,CAAC,UAAWD,EAAAA,CAAAA,CAAAA,IAAW,A,EAE1B,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,SAAgB,A,EAC9B,kBAAC,MAAG,UAAWA,EAAAA,CAAAA,CAAAA,OAAc,A,EAC1BvI,EAAE,8BAA+B,2BAEpC,kBAAC,OAAI,UAAWuI,EAAAA,CAAAA,CAAAA,aAAoB,A,EAClC,kBAAC,QAAK,UAAU,e,GAChB,kBAAC,YAAM7G,KAKVY,GACC,kBAACmG,EAAAA,kBAAkBA,CAAAA,CACjB,KAAK,QACL,MAAM,QACN,SAAUnG,EACVoG,QAAS,W,OAAMnG,EAAY,G,EAC3B,MAAO,CAAE,aAAc,MAAO,C,GAGjCE,GACC,kBAACgG,EAAAA,kBAAkBA,CAAAA,CACjB,KAAK,UACL,MAAM,UACN,SAAUhG,EACViG,QAAS,W,OAAMhG,EAAc,G,EAC7B,MAAO,CAAE,aAAc,MAAO,C,GAKlC,kBAAC,OAAI,UAAW6F,EAAAA,CAAAA,CAAAA,WAAkB,A,EAChC,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,A,EAChC,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,YAAmB,A,EACjC,kBAAC,QAAK,UAAWA,EAAAA,CAAAA,CAAAA,UAAiB,A,EAAE,aACpC,kBAAC,QAAK,UAAWA,EAAAA,CAAAA,CAAAA,UAAiB,A,EAAG/H,GAAe,QAEtD,kBAAC,OAAI,UAAW+H,EAAAA,CAAAA,CAAAA,YAAmB,A,EACjC,kBAAC,QAAK,UAAWA,EAAAA,CAAAA,CAAAA,UAAiB,A,EAAE,WACpC,kBAAC,QAAK,UAAWA,EAAAA,CAAAA,CAAAA,UAAiB,A,EAAGjI,GAAkB,QAEzD,kBAAC,OAAI,UAAWiI,EAAAA,CAAAA,CAAAA,YAAmB,A,EACjC,kBAAC,QAAK,UAAWA,EAAAA,CAAAA,CAAAA,UAAiB,A,EAAE,UACpC,kBAAC,QAAK,UAAWA,EAAAA,CAAAA,CAAAA,UAAiB,A,EAAGnI,GAAS,QAEhD,kBAAC,OAAI,UAAWmI,EAAAA,CAAAA,CAAAA,YAAmB,A,EACjC,kBAAC,QAAK,UAAWA,EAAAA,CAAAA,CAAAA,UAAiB,A,EAAE,OACpC,kBAAC,QAAK,UAAWA,EAAAA,CAAAA,CAAAA,UAAiB,A,EAAGzH,EAAc,GAAa,OAAXA,EAAW,UAAU,QAE5E,kBAAC,OAAI,UAAWyH,EAAAA,CAAAA,CAAAA,YAAmB,A,EACjC,kBAAC,QAAK,UAAWA,EAAAA,CAAAA,CAAAA,UAAiB,A,EAAE,UACpC,kBAAC,QAAK,UAAWA,EAAAA,CAAAA,CAAAA,UAAiB,A,EAAG5H,GAAiB,SAG1D,kBAAC,OAAI,UAAW4H,EAAAA,CAAAA,CAAAA,eAAsB,A,EACnCtH,EACC,kBAAC,OACC,IAAM,GAA8DA,MAAAA,CAA5D0H,OAAO,QAAQ,CAAC,MAAM,CAAC,uCAAoD,OAAf1H,GACpE,IAAI,kBACJ,UAAWsH,EAAAA,CAAAA,CAAAA,SAAgB,CAC3BK,QAAS,SAACC,CAAC,EAERA,EAAE,MAAM,CAAiB,KAAK,CAAC,OAAO,CAAG,MAC5C,C,GAGF,kBAAC9I,EAAUA,QAMjB,kBAAC,OAAI,MAAO,CAAE,UAAW,QAAS,UAAW,OAAQ,aAAc,MAAO,C,EACxE,kBAAC+I,EAAAA,KAAKA,CAAAA,KACJ,kBAACC,EAAAA,SAASA,CAAAA,KACR,kBAACC,EAAAA,QAAQA,CAAAA,KACP,kBAACC,EAAAA,WAAWA,CAAAA,KAAC,MACb,kBAACA,EAAAA,WAAWA,CAAAA,KAAC,aACb,kBAACA,EAAAA,WAAWA,CAAAA,KAAC,YACb,kBAACA,EAAAA,WAAWA,CAAAA,KAAC,mBACb,kBAACA,EAAAA,WAAWA,CAAAA,CAAC,UAAWV,EAAAA,CAAAA,CAAAA,YAAmB,A,KAG/C,kBAACW,EAAAA,SAASA,CAAAA,KACPlH,AAAoB,IAApBA,EAAS,MAAM,CACd,kBAACgH,EAAAA,QAAQA,CAAAA,KACP,kBAACG,EAAAA,SAASA,CAAAA,CAAC,QAAS,EAAG,MAAO,CAAE,UAAW,QAAS,C,EAAG,wCAKzDnH,EAAS,GAAG,CAAC,SAAC6F,CAAG,CAAEuB,CAAK,EACtB,IAAM1B,EAAKG,CAAG,CAAC,EAAE,CACXF,EAAWE,CAAG,CAAC,EAAE,CACjBwB,EAAUxB,CAAG,CAAC,EAAE,CAChByB,EAAgBzB,CAAG,CAAC,EAAE,CACtBD,EAASC,CAAG,CAAC,EAAE,CACf0B,EAAY3G,EAAY,QAAQ,CAAC4G,OAAO9B,IAE9C,OACE,kBAACsB,EAAAA,QAAQA,CAAAA,CAAC,IAAKtB,GAAM0B,C,EACnB,kBAACD,EAAAA,SAASA,CAAAA,KAAEC,EAAQ,GACpB,kBAACD,EAAAA,SAASA,CAAAA,KAAExB,GACZ,kBAACwB,EAAAA,SAASA,CAAAA,KAAEE,GACZ,kBAACF,EAAAA,SAASA,CAAAA,KAAEG,GACZ,kBAACH,EAAAA,SAASA,CAAAA,CAAC,UAAWZ,EAAAA,CAAAA,CAAAA,YAAmB,A,EACvC,kBAACkB,EAAAA,QAAQA,CAAAA,CACP,GAAK,OAAS,OAAH/B,GACX,UAAU,GACV,QAAS6B,EACTG,SAAU,SAACb,CAAC,CAAE,CAAHA,E,OACTrB,GADcC,EAAAA,OAAO,CACS+B,OAAO9B,GAAKC,EAAU6B,OAAO5B,GAASC,E,KAMhF,MAOR,kBAAC,OAAI,UAAWU,EAAAA,CAAAA,CAAAA,eAAsB,A,EACpC,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,QAAe,A,EAC7B,kBAACoB,EAAAA,SAASA,CAAAA,CACR,GAAG,cACH,UAAU,YACV,MAAOtG,GACP,W,GAEF,kBAACsG,EAAAA,SAASA,CAAAA,CACR,GAAG,aACH,UAAU,WACV,MAAOnG,GACP,W,GAEF,kBAACmG,EAAAA,SAASA,CAAAA,CACR,GAAG,eACH,UAAU,aACV,MAAOhG,GACP,W,GAEF,kBAACgG,EAAAA,SAASA,CAAAA,CACR,GAAG,eACH,UAAU,aACV,MAAO7F,GACP,W,IAIJ,kBAAC,MAAG,MAAO,CAAE,OAAQ,OAAQ,OAAQ,MAAO,gBAAiB,UAAW,OAAQ,QAAS,C,GAGzF,kBAAC,OAAI,UAAWyE,EAAAA,CAAAA,CAAAA,QAAe,A,EAC7B,kBAACoB,EAAAA,SAASA,CAAAA,CACR,GAAG,UACH,UAAU,OACV,KAAK,OACL,MAAO1F,GACPyF,SAAU,SAACb,CAAC,E,OAAK3E,GAAY2E,EAAE,MAAM,CAAC,KAAK,C,IAE7C,kBAACc,EAAAA,SAASA,CAAAA,CACR,GAAG,UACH,UAAU,OACV,KAAK,OACL,MAAOvF,GACPsF,SAAU,SAACb,CAAC,E,OAAKxE,GAAYwE,EAAE,MAAM,CAAC,KAAK,C,IAE7C,kBAACe,EAAAA,MAAMA,CAAAA,CACL,GAAG,YACH,UAAU,oBACV,MAAOrF,GACPmF,SAAU,SAACb,CAAC,E,OAAKrE,GAAcqE,EAAE,MAAM,CAAC,KAAK,C,GAE7C,kBAACgB,EAAAA,UAAUA,CAAAA,CAAC,MAAM,IAAI,KAAK,Y,GAC3B,kBAACA,EAAAA,UAAUA,CAAAA,CAAC,MAAM,OAAO,KAAK,M,GAC9B,kBAACA,EAAAA,UAAUA,CAAAA,CAAC,MAAM,WAAW,KAAK,U,KAItC,kBAAC,OAAI,MAAO,CAAE,aAAc,MAAO,C,EACjC,kBAACC,EAAAA,QAAQA,CAAAA,CACP,GAAG,UACH,UAAU,SACV,KAAM,EACN,MAAOpF,GACPgF,SAAU,SAACb,CAAC,E,OAAKlE,GAAckE,EAAE,MAAM,CAAC,KAAK,C,KAKjD,kBAAC,OAAI,UAAWN,EAAAA,CAAAA,CAAAA,gBAAuB,A,EACrC,kBAACwB,EAAAA,MAAMA,CAAAA,CACL,KAAK,SACLC,QAAS,W,OAAM9J,EAAS,oB,EACxB,SAAU2E,E,EACX,QAGD,kBAACkF,EAAAA,MAAMA,CAAAA,CACL,KAAK,UACL,QA/XO,W,wBAiCTE,EAEAC,EAGAC,EAIAC,EAODC,EAAAA,EAAAA,EAAAA,EAAAA,EAAM3C,EACH4C,EAYAC,EAcFC,EACDC,EAAAA,EAAAA,EAAAA,EAAAA,EAAMC,EACHC,EAEEC,EAOJC,EAGAC,EAuEAjE,EAKCkE,E,iDArKT,GAAIxG,AAAe,MAAfA,GAEF,OADAhC,EAAY,2CACZ,C,GAEF,GAAIK,AAAuB,IAAvBA,EAAY,MAAM,CAEpB,OADAL,EAAY,8CACZ,C,GAEF,GAAI,CAAC0B,IAAY,CAACG,GAEhB,OADA7B,EAAY,mDACZ,C,GAEF,GAAI,CAACnB,EAEH,OADAmB,EAAY,wCACZ,C,GAGFuC,GAAU,IACVvC,EAAY,IACZG,EAAc,I,iBAGZ,G,0BAAI6B,AAAe,aAAfA,GAMF,OAJA7B,EAAc,0CACdsI,WAAW,WACT9K,EAAS,oBACX,EAAG,MACH,C,GAII+J,EAAc/E,KAEdgF,EAAmBe,AADTlI,GAAgB,IAAI,CAAC,SAACmI,CAAC,E,MAAKA,AAAM,SAANA,C,GACN,IAAiBrJ,MAAAA,CAAdoI,GAAkB,OAAJpI,GAAS,GAAgBA,MAAAA,CAAdoI,GAAkB,OAAJpI,GAG1EsI,EAAW5F,AAAe,SAAfA,GAAwB,kBAAoB,qBAIvD6F,EAAe,EACnB,IAAK,oDACL,OAAQ,0DACR,KAAM,uDACR,EAAC,CALmB9J,AAAmB,QAAnBA,EAA2B,MAAQA,AAAmB,WAAnBA,EAA8B,SAAW,OAKlF,CAGT+J,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,O,wCAAAA,EAAYzH,CAAW,CAAXA,OAAAA,QAAAA,CAAAA,G,oBAAZyH,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,CAAAA,MAAAA,C,KAac,OAZXC,EAAU,CACd,GAFO5C,EAAN2C,EAAAA,KAAAA,CAGD,iBAAkB9F,GAClB,OAAQG,GACR,cAAewF,EACf,eAAgBjG,GAChB,eAAgBG,GAChB,cAAehD,EACf,OAAQ,aACR,SAAU+I,CACZ,EAEiB,C,EAAMpD,MAAMqD,EAAc,CACzC,OAAQ,OACR,KAAMe,KAAK,SAAS,CAACb,GACrB,QAAS,CAAE,eAAgB,kBAAmB,CAChD,G,QAEA,GAAI,CAACC,AANY,SAMH,EAAE,CACd,MAAM,AAAIvD,MAAO,sCAAwC,OAAHU,G,yBApBrD2C,EAAAA,G,kDAAAA,EAAAA,GAAAA,EAAAA,E,iBAAAA,GAAAA,AAAAA,MAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,E,YAAAA,E,MAAAA,C,kBAwBL3H,EAAc,kEAGR8H,EAAAA,EAAAA,CACDC,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,O,8CAAAA,EAAcvH,EAAiB,CAAjBA,OAAAA,QAAAA,CAAAA,G,sBAAduH,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,CAAAA,MAAAA,C,MACS,OADHC,EAAND,EAAAA,KAAAA,CACS,C,EAAM1D,MAAO,qDAA6E,OAAzBqE,mBAAmBV,K,aAC5FC,AADEA,CAAAA,EAAM,UACJ,EAAE,CAANA,MAAAA,C,MACoB,O,EAAMA,EAAI,IAAI,G,SAChCC,OADEA,CAAAA,EAAgB,UAClBA,KAAAA,EAAAA,EAAe,SAAS,AAAD,GACzBJ,EAAW,IAAI,CAACI,EAAc,SAAS,E,0BALxCH,EAAAA,G,sDAAAA,EAAAA,GAAAA,EAAAA,E,mBAAAA,GAAAA,AAAAA,MAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,E,YAAAA,E,MAAAA,C,mBAoFe,OA1EdI,EAAqBL,EAAW,IAAI,CAAC,MAGrCM,CAAAA,EAAcnC,OAAO,IAAI,CAAC,GAAI,SAAQ,IAE1CmC,EAAY,QAAQ,CAAC,KAAK,CAAE,4lCAmCmBhK,MAAAA,CAAhBN,EAAY,MAC2BF,MAAAA,CADvBQ,EAAW,0FAC8B+J,MAAAA,CAAlBvK,EAAe,KAIpD4J,MAAAA,CAJuDW,EAAmB,uKAIzD,OAAjBX,EAAiB,maAgBlDY,EAAY,QAAQ,CAAC,KAAK,IAI5BjI,EAAe,EAAE,EACjBM,GAAqB,EAAE,EACvBH,GAAmB,EAAE,EACrBM,GAAoB,IACpBG,GAAkB,IAClBG,GAAoB,IACpBG,GAAoB,IAGA,C,EAAMgD,MAAO,iDAAyDzG,MAAAA,CAATF,EAAM,KAAqBmB,MAAAA,CAAlBjB,EAAe,KAAgB,OAAbiB,I,aACxGsF,AADEA,CAAAA,EAAc,UACJ,EAAE,CAAdA,MAAAA,C,MACmB,O,EAAMA,EAAY,IAAI,G,SAC3C5E,EAAYqF,AADS,UACO,EAAE,E,+CAGhCC,QAAQ,KAAK,CAAC,6BADPwD,EAAAA,EAAAA,IAAAA,IAEPxI,EAAYwI,EAAI,OAAO,EAAI,yC,sBAE3BjG,GAAU,I,wBAEd,I,EAoNY,SAAUD,IAAU7C,AAAoB,IAApBA,EAAS,MAAM,A,EAElC6C,GAAS,YAAc,WAOtC,EC/mBA,EATuB,W,OACrB,kBAACwG,EAAAA,aAAaA,CAAAA,CAAC,SAAU1C,OAAO,iBAAiB,E,EAC/C,kBAAC2C,EAAAA,MAAMA,CAAAA,KACL,kBAACC,EAAAA,KAAKA,CAAAA,CAAC,KAAK,mBAAmB,QAAS,kBAACC,EAAAA,OAAgBA,CAAAA,K,GACzD,kBAACD,EAAAA,KAAKA,CAAAA,CAAC,KAAK,wBAAwB,QAAS,kBAACE,EAAoBA,K"}
|