From 41bb9b5dd7e0f10785144d564e4c144fb29e3e9a Mon Sep 17 00:00:00 2001 From: ismail Date: Sun, 19 Jul 2026 12:27:55 +0300 Subject: [PATCH] update api doc --- .gitignore | 3 +- .../page-2026-07-12T20-33-12-565Z.yml | 39 + .../page-2026-07-12T20-33-40-832Z.yml | 41 + .../page-2026-07-12T20-33-55-371Z.yml | 227 +++ .../page-2026-07-12T20-34-06-540Z.yml | 258 +++ .../page-2026-07-12T20-34-28-605Z.yml | 172 ++ .../page-2026-07-12T20-34-49-571Z.yml | 344 ++++ .../page-2026-07-12T20-35-19-622Z.yml | 259 +++ .../page-2026-07-12T20-35-37-343Z.yml | 201 +++ .../page-2026-07-12T20-35-50-710Z.yml | 188 ++ .../page-2026-07-12T20-36-00-595Z.yml | 221 +++ .../page-2026-07-12T20-36-13-189Z.yml | 137 ++ .../page-2026-07-12T20-36-24-641Z.yml | 256 +++ .../page-2026-07-12T20-37-03-048Z.yml | 258 +++ .../page-2026-07-12T20-39-22-820Z.yml | 258 +++ .../page-2026-07-12T20-40-03-758Z.yml | 39 + .../page-2026-07-12T20-40-08-887Z.yml | 350 ++++ .../page-2026-07-12T20-40-21-782Z.yml | 258 +++ .../page-2026-07-12T20-40-22-923Z.yml | 243 +++ .../page-2026-07-12T20-40-24-046Z.yml | 344 ++++ .../page-2026-07-12T20-40-25-079Z.yml | 201 +++ .../page-2026-07-12T20-40-26-032Z.yml | 221 +++ .../page-2026-07-12T20-40-27-116Z.yml | 256 +++ .../page-2026-07-12T20-40-27-876Z.yml | 124 ++ .../page-2026-07-12T20-40-29-030Z.yml | 133 ++ .../page-2026-07-12T20-40-30-328Z.yml | 260 +++ .../page-2026-07-12T20-40-51-825Z.yml | 172 ++ .../page-2026-07-12T20-40-53-136Z.yml | 243 +++ .../page-2026-07-12T20-40-56-706Z.yml | 259 +++ .../page-2026-07-12T20-40-58-505Z.yml | 188 ++ .../page-2026-07-12T20-41-00-163Z.yml | 137 ++ .target-last-build | 2 +- PX360/settings.py | 2 +- apps/appreciation/forms.py | 42 +- .../migrations/0007_add_reminder_fields.py | 23 + .../0008_remove_ai_analyzed_status.py | 21 + .../migrations/0009_add_national_id.py | 24 + apps/appreciation/models.py | 23 +- apps/appreciation/tasks.py | 208 ++- apps/appreciation/ui_views.py | 393 ++++- apps/appreciation/urls.py | 6 +- apps/appreciation/views.py | 2 +- apps/complaints/forms.py | 54 +- .../migrations/0043_alter_inquiry_status.py | 18 + ..._alter_complaint_contact_phone_and_more.py | 24 + .../0045_inquiry_add_national_id.py | 24 + apps/complaints/models.py | 26 +- apps/complaints/tasks.py | 71 +- apps/complaints/ui_views.py | 426 ++++- apps/complaints/urls_inquiries.py | 2 + apps/complaints/views.py | 28 +- apps/core/ai_service.py | 40 +- apps/core/middleware.py | 4 +- apps/core/validators.py | 45 + apps/feedback/forms.py | 9 +- .../migrations/0009_add_activation_fields.py | 26 + .../0010_alter_feedback_contact_phone.py | 19 + apps/feedback/models.py | 7 +- apps/feedback/urls.py | 1 + apps/feedback/views.py | 112 +- apps/integrations/api_serializers.py | 137 +- apps/integrations/api_views.py | 143 +- ...ternalapikey_allowed_entities_help_text.py | 18 + apps/integrations/models.py | 2 +- apps/integrations/urls_external.py | 11 + apps/journeys/ui_views.py | 28 +- apps/notifications/services.py | 95 +- apps/observations/forms.py | 72 +- .../0021_alter_observation_reporter_phone.py | 19 + .../0022_observation_add_national_id.py | 18 + .../0023_add_patient_info_fields.py | 33 + apps/observations/models.py | 8 +- apps/observations/services.py | 2 + apps/observations/tasks.py | 36 + apps/observations/views.py | 169 +- .../management/commands/export_sections.py | 59 + apps/organizations/ui_views.py | 90 +- apps/organizations/views.py | 2 +- apps/presentations/views.py | 26 + apps/projects/ui_views.py | 11 +- apps/surveys/his_views.py | 15 +- apps/surveys/ui_views.py | 29 +- config/settings/base.py | 2 +- config/settings/dev.py | 8 +- deploy/compose.dev-home.yml | 78 + deploy/compose.dev.yml | 2 +- deploy/target.dev.yaml | 10 +- docs/API_ENDPOINTS.md | 1 + ...PX360_External_API.postman_collection.json | 4 +- docs/external-api.md | 98 +- exports/admin_notifications.html | 506 ++++++ exports/appointment_email.html | 140 ++ ...complaint_escalation_artboard_variant.html | 311 ++++ exports/complaint_escalation_templates.html | 383 +++++ exports/explanation_requests.html | 502 ++++++ ...nquiry_escalation_logo_header_variant.html | 412 +++++ exports/inquiry_escalation_templates.html | 380 +++++ exports/observation_escalation_templates.html | 380 +++++ exports/sections.csv | 172 ++ exports/status_changes.html | 384 +++++ exports/suggestion_escalation_templates.html | 380 +++++ exports/survey_emails.html | 262 +++ requirements.txt | 1 - static/vendor/chartjs/chart.umd.min.js | 14 + .../chartjs/chartjs-plugin-datalabels.min.js | 7 + static/vendor/datastar/datastar.js | 9 - static/vendor/font-awesome/css/all.min.css | 6 + .../font-awesome/webfonts/fa-brands-400.ttf | Bin 0 -> 180148 bytes .../font-awesome/webfonts/fa-brands-400.woff2 | Bin 0 -> 104544 bytes .../font-awesome/webfonts/fa-regular-400.ttf | Bin 0 -> 60380 bytes .../webfonts/fa-regular-400.woff2 | Bin 0 -> 23900 bytes .../font-awesome/webfonts/fa-solid-900.ttf | Bin 0 -> 303480 bytes .../font-awesome/webfonts/fa-solid-900.woff2 | Bin 0 -> 126828 bytes .../webfonts/fa-v4compatibility.ttf | Bin 0 -> 10556 bytes .../webfonts/fa-v4compatibility.woff2 | Bin 0 -> 4956 bytes .../appreciation/great-vibes-latin.woff2 | Bin 0 -> 42800 bytes .../vendor/fonts/certificate/cinzel-400.woff2 | Bin 0 -> 14128 bytes .../vendor/fonts/certificate/cinzel-600.woff2 | Bin 0 -> 15204 bytes .../vendor/fonts/certificate/cinzel-700.woff2 | Bin 0 -> 15184 bytes .../cormorant-garamond-400-italic.woff2 | Bin 0 -> 23660 bytes .../certificate/cormorant-garamond-400.woff2 | Bin 0 -> 22876 bytes .../cormorant-garamond-500-italic.woff2 | Bin 0 -> 23924 bytes .../certificate/cormorant-garamond-500.woff2 | Bin 0 -> 23312 bytes .../playfair-display-400-italic.woff2 | Bin 0 -> 21884 bytes .../certificate/playfair-display-400.woff2 | Bin 0 -> 21856 bytes .../playfair-display-500-italic.woff2 | Bin 0 -> 23076 bytes .../certificate/playfair-display-500.woff2 | Bin 0 -> 23048 bytes .../playfair-display-600-italic.woff2 | Bin 0 -> 23176 bytes .../certificate/playfair-display-600.woff2 | Bin 0 -> 23228 bytes .../certificate/playfair-display-700.woff2 | Bin 0 -> 23224 bytes static/vendor/sortablejs/Sortable.min.js | 2 + .../tom-select/tom-select.complete.min.js | 440 +++++ static/vendor/tom-select/tom-select.css | 412 +++++ templates/accounts/change_password.html | 4 +- templates/accounts/login.html | 4 +- templates/accounts/password_reset.html | 4 +- .../accounts/password_reset_confirm.html | 4 +- templates/analytics/dashboard.html | 4 +- templates/analytics/kpi_report_detail.html | 3 +- .../appreciation_certificate.html | 169 ++ .../appreciation/appreciation_create.html | 96 +- .../appreciation/appreciation_detail.html | 359 ++-- .../appreciation/appreciation_letter.html | 135 ++ templates/appreciation/appreciation_list.html | 10 +- templates/appreciation/appreciation_pdf.html | 27 - templates/callcenter/inquiry_form.html | 6 +- templates/complaints/analytics.html | 3 +- templates/complaints/complaint_detail.html | 14 + templates/complaints/complaint_detail_ds.html | 1508 ----------------- .../explanation_already_submitted.html | 4 +- templates/complaints/explanation_form.html | 4 +- .../explanation_routing_rejected.html | 2 +- templates/complaints/explanation_success.html | 2 +- .../complaints/inquiry_create_modal.html | 240 +++ templates/complaints/inquiry_detail.html | 135 +- .../complaints/inquiry_explanation_form.html | 2 +- templates/complaints/inquiry_form.html | 13 + templates/complaints/inquiry_list.html | 46 +- .../investigation_already_started.html | 2 +- .../investigation_already_submitted.html | 2 +- templates/complaints/investigation_error.html | 2 +- .../complaints/investigation_questions.html | 4 +- .../complaints/investigation_respond.html | 2 +- .../complaints/investigation_review.html | 2 +- .../complaints/investigation_success.html | 2 +- .../complaints/partials/resolution_panel.html | 4 +- .../complaints/public_complaint_form.html | 4 +- templates/complaints/public_inquiry_form.html | 3 +- .../components/department_response_modal.html | 7 +- templates/core/public_submit.html | 8 +- templates/core/select_hospital.html | 4 +- templates/dashboard/admin_evaluation.html | 3 +- templates/dashboard/analytics-template.html | 6 +- .../dashboard/department_benchmarks.html | 3 +- templates/dashboard/employee_evaluation.html | 3 +- .../dashboard/staff_performance_detail.html | 3 +- templates/emails/base_email_template.html | 23 +- templates/feedback/feedback_detail.html | 63 +- templates/feedback/feedback_form.html | 22 +- templates/layouts/base.html | 7 +- templates/layouts/partials/sidebar.html | 4 +- templates/layouts/public_base.html | 4 +- .../observations/observation_create.html | 294 ++-- .../observations/observation_detail.html | 110 +- templates/observations/public_new.html | 41 +- .../organizations/department_detail.html | 95 +- .../organizations/department_inquiries.html | 35 +- .../department_inquiry_detail.html | 81 +- .../department_observation_detail.html | 2 +- templates/presentations/template_detail.html | 3 +- templates/social/social_analytics.html | 2 +- templates/surveys/invalid_token.html | 2 +- templates/surveys/public_form.html | 2 +- templates/surveys/survey_template.html | 2 +- templates/surveys/template_form.html | 2 +- templates/surveys/thank_you.html | 2 +- templates/temp/complaint_detail_temp.html | 2 +- templates/temp/complaint_list_temp.html | 4 +- templates/template.html | 4 +- 199 files changed, 15393 insertions(+), 2576 deletions(-) create mode 100644 .playwright-cli/page-2026-07-12T20-33-12-565Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-33-40-832Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-33-55-371Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-34-06-540Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-34-28-605Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-34-49-571Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-35-19-622Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-35-37-343Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-35-50-710Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-36-00-595Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-36-13-189Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-36-24-641Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-37-03-048Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-39-22-820Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-40-03-758Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-40-08-887Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-40-21-782Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-40-22-923Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-40-24-046Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-40-25-079Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-40-26-032Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-40-27-116Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-40-27-876Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-40-29-030Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-40-30-328Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-40-51-825Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-40-53-136Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-40-56-706Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-40-58-505Z.yml create mode 100644 .playwright-cli/page-2026-07-12T20-41-00-163Z.yml create mode 100644 apps/appreciation/migrations/0007_add_reminder_fields.py create mode 100644 apps/appreciation/migrations/0008_remove_ai_analyzed_status.py create mode 100644 apps/appreciation/migrations/0009_add_national_id.py create mode 100644 apps/complaints/migrations/0043_alter_inquiry_status.py create mode 100644 apps/complaints/migrations/0044_alter_complaint_contact_phone_and_more.py create mode 100644 apps/complaints/migrations/0045_inquiry_add_national_id.py create mode 100644 apps/core/validators.py create mode 100644 apps/feedback/migrations/0009_add_activation_fields.py create mode 100644 apps/feedback/migrations/0010_alter_feedback_contact_phone.py create mode 100644 apps/integrations/migrations/0004_alter_externalapikey_allowed_entities_help_text.py create mode 100644 apps/observations/migrations/0021_alter_observation_reporter_phone.py create mode 100644 apps/observations/migrations/0022_observation_add_national_id.py create mode 100644 apps/observations/migrations/0023_add_patient_info_fields.py create mode 100644 apps/organizations/management/commands/export_sections.py create mode 100644 deploy/compose.dev-home.yml create mode 100644 exports/admin_notifications.html create mode 100644 exports/appointment_email.html create mode 100644 exports/complaint_escalation_artboard_variant.html create mode 100644 exports/complaint_escalation_templates.html create mode 100644 exports/explanation_requests.html create mode 100644 exports/inquiry_escalation_logo_header_variant.html create mode 100644 exports/inquiry_escalation_templates.html create mode 100644 exports/observation_escalation_templates.html create mode 100644 exports/sections.csv create mode 100644 exports/status_changes.html create mode 100644 exports/suggestion_escalation_templates.html create mode 100644 exports/survey_emails.html create mode 100644 static/vendor/chartjs/chart.umd.min.js create mode 100644 static/vendor/chartjs/chartjs-plugin-datalabels.min.js delete mode 100644 static/vendor/datastar/datastar.js create mode 100644 static/vendor/font-awesome/css/all.min.css create mode 100644 static/vendor/font-awesome/webfonts/fa-brands-400.ttf create mode 100644 static/vendor/font-awesome/webfonts/fa-brands-400.woff2 create mode 100644 static/vendor/font-awesome/webfonts/fa-regular-400.ttf create mode 100644 static/vendor/font-awesome/webfonts/fa-regular-400.woff2 create mode 100644 static/vendor/font-awesome/webfonts/fa-solid-900.ttf create mode 100644 static/vendor/font-awesome/webfonts/fa-solid-900.woff2 create mode 100644 static/vendor/font-awesome/webfonts/fa-v4compatibility.ttf create mode 100644 static/vendor/font-awesome/webfonts/fa-v4compatibility.woff2 create mode 100644 static/vendor/fonts/appreciation/great-vibes-latin.woff2 create mode 100644 static/vendor/fonts/certificate/cinzel-400.woff2 create mode 100644 static/vendor/fonts/certificate/cinzel-600.woff2 create mode 100644 static/vendor/fonts/certificate/cinzel-700.woff2 create mode 100644 static/vendor/fonts/certificate/cormorant-garamond-400-italic.woff2 create mode 100644 static/vendor/fonts/certificate/cormorant-garamond-400.woff2 create mode 100644 static/vendor/fonts/certificate/cormorant-garamond-500-italic.woff2 create mode 100644 static/vendor/fonts/certificate/cormorant-garamond-500.woff2 create mode 100644 static/vendor/fonts/certificate/playfair-display-400-italic.woff2 create mode 100644 static/vendor/fonts/certificate/playfair-display-400.woff2 create mode 100644 static/vendor/fonts/certificate/playfair-display-500-italic.woff2 create mode 100644 static/vendor/fonts/certificate/playfair-display-500.woff2 create mode 100644 static/vendor/fonts/certificate/playfair-display-600-italic.woff2 create mode 100644 static/vendor/fonts/certificate/playfair-display-600.woff2 create mode 100644 static/vendor/fonts/certificate/playfair-display-700.woff2 create mode 100644 static/vendor/sortablejs/Sortable.min.js create mode 100644 static/vendor/tom-select/tom-select.complete.min.js create mode 100644 static/vendor/tom-select/tom-select.css create mode 100644 templates/appreciation/appreciation_certificate.html create mode 100644 templates/appreciation/appreciation_letter.html delete mode 100644 templates/appreciation/appreciation_pdf.html delete mode 100644 templates/complaints/complaint_detail_ds.html create mode 100644 templates/complaints/inquiry_create_modal.html diff --git a/.gitignore b/.gitignore index aedc945..67193fb 100644 --- a/.gitignore +++ b/.gitignore @@ -103,4 +103,5 @@ dump.rdb .~lock.* node_modules -data/Documents \ No newline at end of file +data/Documents +deploy/target.dev-home.yaml \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-33-12-565Z.yml b/.playwright-cli/page-2026-07-12T20-33-12-565Z.yml new file mode 100644 index 0000000..00ab721 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-33-12-565Z.yml @@ -0,0 +1,39 @@ +- generic [ref=e3]: + - generic [ref=e4]: + - img "HH Logo" [ref=e6] + - heading "Welcome to PX360" [level=1] [ref=e7] + - paragraph [ref=e8]: Patient Experience Management System + - generic [ref=e10]: + - generic [ref=e11]: + - generic [ref=e12]: + - img [ref=e13] + - text: Email Address + - generic [ref=e16]: + - img [ref=e17] + - textbox "Email Address" [active] [ref=e20]: + - /placeholder: Enter your email + - generic [ref=e21]: + - generic [ref=e22]: + - img [ref=e23] + - text: Password + - generic [ref=e26]: + - img [ref=e27] + - textbox "Password" [ref=e31]: + - /placeholder: Enter your password + - button [ref=e32] [cursor=pointer]: + - img [ref=e33] + - generic [ref=e36]: + - generic [ref=e37] [cursor=pointer]: + - checkbox "Remember me" [ref=e38] + - generic [ref=e39]: Remember me + - link "Forgot password?" [ref=e40] [cursor=pointer]: + - /url: /accounts/password/reset/ + - button "Sign In" [ref=e41] [cursor=pointer]: + - img [ref=e42] + - text: Sign In + - generic [ref=e45]: + - paragraph [ref=e46]: + - text: Secure login powered by + - link "tenhal.sa" [ref=e47] [cursor=pointer]: + - /url: https://tenhal.sa + - paragraph [ref=e48]: © 2026 Al Hammadi Hospital \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-33-40-832Z.yml b/.playwright-cli/page-2026-07-12T20-33-40-832Z.yml new file mode 100644 index 0000000..4fd56af --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-33-40-832Z.yml @@ -0,0 +1,41 @@ +- generic [ref=e3]: + - generic [ref=e4]: + - img "HH Logo" [ref=e6] + - heading "Welcome to PX360" [level=1] [ref=e7] + - paragraph [ref=e8]: Patient Experience Management System + - generic [ref=e10]: + - generic [ref=e11]: + - generic [ref=e12]: + - img [ref=e49] + - text: Email Address + - generic [ref=e16]: + - img [ref=e52] + - textbox "Email Address" [ref=e20]: + - /placeholder: Enter your email + - text: e2e-px-employee@px360.test + - generic [ref=e21]: + - generic [ref=e22]: + - img [ref=e55] + - text: Password + - generic [ref=e26]: + - img [ref=e58] + - textbox "Password" [ref=e31]: + - /placeholder: Enter your password + - text: Dev@123456 + - button [active] [ref=e32] [cursor=pointer]: + - img [ref=e62] + - generic [ref=e36]: + - generic [ref=e37] [cursor=pointer]: + - checkbox "Remember me" [ref=e38] + - generic [ref=e39]: Remember me + - link "Forgot password?" [ref=e40] [cursor=pointer]: + - /url: /accounts/password/reset/ + - button "Sign In" [ref=e41] [cursor=pointer]: + - img [ref=e67] + - text: Sign In + - generic [ref=e45]: + - paragraph [ref=e46]: + - text: Secure login powered by + - link "tenhal.sa" [ref=e47] [cursor=pointer]: + - /url: https://tenhal.sa + - paragraph [ref=e48]: © 2026 Al Hammadi Hospital \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-33-55-371Z.yml b/.playwright-cli/page-2026-07-12T20-33-55-371Z.yml new file mode 100644 index 0000000..892fd0b --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-33-55-371Z.yml @@ -0,0 +1,227 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e139]: + - generic [ref=e140]: + - link "Departments" [ref=e141] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e142] + - generic [ref=e144]: Contact Center Department + - generic [ref=e147]: + - generic [ref=e148]: + - img [ref=e150] + - generic [ref=e154]: + - heading "Contact Center Department" [level=1] [ref=e155] + - paragraph [ref=e156]: قسم مركز الاتصال + - generic [ref=e157]: + - generic [ref=e158]: + - img [ref=e159] + - text: hh_n_contact_center_department + - generic [ref=e162]: Administrative + - generic [ref=e163]: + - img [ref=e164] + - text: E2E Test Hospital + - generic [ref=e168]: + - generic [ref=e170]: + - img [ref=e172] + - generic [ref=e177]: + - paragraph [ref=e178]: Staff + - paragraph [ref=e179]: "4" + - link "Open Complaints 3 3 total" [ref=e180] [cursor=pointer]: + - /url: /organizations/departments/d810102c-d14a-4661-8672-6ef85a77fc8f/complaints/?status=open + - generic [ref=e181]: + - img [ref=e183] + - generic [ref=e186]: + - paragraph [ref=e187]: Open Complaints + - paragraph [ref=e188]: "3" + - paragraph [ref=e189]: 3 total + - link "Pending Inquiries 0 2 total" [ref=e190] [cursor=pointer]: + - /url: /organizations/departments/d810102c-d14a-4661-8672-6ef85a77fc8f/inquiries/?status=open + - generic [ref=e191]: + - img [ref=e193] + - generic [ref=e196]: + - paragraph [ref=e197]: Pending Inquiries + - paragraph [ref=e198]: "0" + - paragraph [ref=e199]: 2 total + - link "Open Observations 1 1 total" [ref=e200] [cursor=pointer]: + - /url: /organizations/departments/d810102c-d14a-4661-8672-6ef85a77fc8f/observations/?status=open + - generic [ref=e201]: + - img [ref=e203] + - generic [ref=e206]: + - paragraph [ref=e207]: Open Observations + - paragraph [ref=e208]: "1" + - paragraph [ref=e209]: 1 total + - generic [ref=e210]: + - generic [ref=e211]: + - img [ref=e213] + - generic [ref=e215]: + - heading "Pending Actions" [level=3] [ref=e216] + - paragraph [ref=e217]: 3 items awaiting response + - table [ref=e219]: + - rowgroup [ref=e220]: + - row "Type Reference Subject SLA Deadline Action" [ref=e221]: + - columnheader "Type" [ref=e222] + - columnheader "Reference" [ref=e223] + - columnheader "Subject" [ref=e224] + - columnheader "SLA Deadline" [ref=e225] + - columnheader "Action" [ref=e226] + - rowgroup [ref=e227]: + - row "Complaint Response CMP-202607-0006 Test Complaint - Analysis Required - Respond" [ref=e228]: + - cell "Complaint Response" [ref=e229]: + - generic [ref=e230]: Complaint Response + - cell "CMP-202607-0006" [ref=e231] + - cell "Test Complaint - Analysis Required" [ref=e232] + - cell "-" [ref=e233] + - cell "Respond" [ref=e234]: + - link "Respond" [ref=e236] [cursor=pointer]: + - /url: /complaints/f8aa6216-bb94-455e-ba18-d16a01024662/explain/dM0ilaUpzA1OuAceyjvwV9oxYA0geW_jsgipvrYUt_g/ + - img [ref=e237] + - text: Respond + - row "Complaint Explanation CMP-202607-0005 Test Complaint - No Details - Respond" [ref=e239]: + - cell "Complaint Explanation" [ref=e240]: + - generic [ref=e241]: Complaint Explanation + - cell "CMP-202607-0005" [ref=e242] + - cell "Test Complaint - No Details" [ref=e243] + - cell "-" [ref=e244] + - cell "Respond" [ref=e245]: + - link "Respond" [ref=e247] [cursor=pointer]: + - /url: /complaints/9ca01d52-712d-4bca-b30d-6f1f818ff839/explain/iBIf0PrMq1RZYSEIDxSn4WZik4PFk6dunoNwarFTnXI/ + - img [ref=e248] + - text: Respond + - row "Complaint Explanation CMP-202607-0005 Test Complaint - No Details - Respond" [ref=e252]: + - cell "Complaint Explanation" [ref=e253]: + - generic [ref=e254]: Complaint Explanation + - cell "CMP-202607-0005" [ref=e255] + - cell "Test Complaint - No Details" [ref=e256] + - cell "-" [ref=e257] + - cell "Respond" [ref=e258]: + - link "Respond" [ref=e260] [cursor=pointer]: + - /url: /complaints/9ca01d52-712d-4bca-b30d-6f1f818ff839/explain/X1Zd54Tb1NcExZeRr6ACN5RtPCwB_RTKeqNeFcVP24E/ + - img [ref=e261] + - text: Respond + - generic [ref=e266]: + - button "Dashboard" [ref=e267] [cursor=pointer]: + - img [ref=e268] + - text: Dashboard + - button "Staff (4)" [ref=e270] [cursor=pointer]: + - img [ref=e271] + - text: Staff (4) + - button "Roles" [ref=e276] [cursor=pointer]: + - img [ref=e277] + - text: Roles + - button "Sections (2)" [ref=e289] [cursor=pointer]: + - img [ref=e290] + - text: Sections (2) + - button "Complaints (3)" [ref=e294] [cursor=pointer]: + - img [ref=e295] + - text: Complaints (3) + - button "Inquiries (2)" [ref=e298] [cursor=pointer]: + - img [ref=e299] + - text: Inquiries (2) + - button "Observations (1)" [ref=e302] [cursor=pointer]: + - img [ref=e303] + - text: Observations (1) + - button "Suggestions (1)" [ref=e306] [cursor=pointer]: + - img [ref=e307] + - text: Suggestions (1) + - button "Appreciations (2)" [ref=e309] [cursor=pointer]: + - img [ref=e310] + - text: Appreciations (2) + - button "Standards (0)" [ref=e312] [cursor=pointer]: + - img [ref=e313] + - text: Standards (0) + - button "Projects (8)" [ref=e316] [cursor=pointer]: + - img [ref=e317] + - text: Projects (8) + - paragraph [ref=e324]: Loading analytics... + - contentinfo [ref=e325]: + - paragraph [ref=e326]: + - text: Powered by + - link "tenhal.sa" [ref=e327] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-34-06-540Z.yml b/.playwright-cli/page-2026-07-12T20-34-06-540Z.yml new file mode 100644 index 0000000..1f12389 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-34-06-540Z.yml @@ -0,0 +1,258 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e140]: + - generic [ref=e141]: + - heading "Inquiries Console" [level=1] [ref=e142] + - paragraph [ref=e143]: Manage patient inquiries and requests + - link "New Inquiry" [ref=e144] [cursor=pointer]: + - /url: /inquiries/new/ + - img [ref=e145] + - text: New Inquiry + - generic [ref=e146]: + - generic [ref=e147]: + - img [ref=e150] + - generic [ref=e153]: + - heading "Total Inquiries" [level=6] [ref=e154] + - heading "5" [level=2] [ref=e155] + - generic [ref=e156]: + - img [ref=e159] + - generic [ref=e162]: + - heading "Resolved" [level=6] [ref=e163] + - heading "2 (40.0%)" [level=2] [ref=e164] + - generic [ref=e165]: + - img [ref=e168] + - generic [ref=e171]: + - heading "In Progress" [level=6] [ref=e172] + - heading "1" [level=2] [ref=e173] + - generic [ref=e174]: + - img [ref=e177] + - generic [ref=e179]: + - heading "Overdue" [level=6] [ref=e180] + - heading "0" [level=2] [ref=e181] + - generic [ref=e182]: + - generic [ref=e183]: + - img [ref=e185] + - heading "Filters" [level=5] [ref=e186] + - generic [ref=e188]: + - generic [ref=e189]: + - generic [ref=e190]: Search + - textbox "Subject, contact name..." [ref=e191] + - generic [ref=e192]: + - generic [ref=e193]: Status + - combobox [ref=e194]: + - option "All Status" [selected] + - option "Open" + - option "In Progress" + - option "Resolved" + - option "Closed" + - generic [ref=e195]: + - generic [ref=e196]: Category + - combobox [ref=e197]: + - option "All Categories" [selected] + - option "General" + - option "Appointments" + - option "Billing" + - option "Medical Records" + - option "Pharmacy" + - option "Insurance" + - option "Feedback" + - option "Other" + - button "Filter" [ref=e198] [cursor=pointer]: + - img [ref=e199] + - text: Filter + - generic [ref=e202]: + - generic [ref=e203]: + - generic [ref=e204]: + - img [ref=e206] + - heading "All Inquiries" [level=5] [ref=e209] + - generic [ref=e210]: "Total: 5" + - paragraph [ref=e211]: "Showing: 1-5 of 5" + - generic [ref=e212]: + - table [ref=e213]: + - rowgroup [ref=e214]: + - row "Reference Subject Contact Category Status Priority Created Assigned" [ref=e215]: + - columnheader "Reference" [ref=e216] + - columnheader "Subject" [ref=e217] + - columnheader "Contact" [ref=e218] + - columnheader "Category" [ref=e219] + - columnheader "Status" [ref=e220] + - columnheader "Priority" [ref=e221] + - columnheader "Created" [ref=e222] + - columnheader "Assigned" [ref=e223] + - rowgroup [ref=e224]: + - row "INQ-202607-0007 test12121212 ismail mosa 0569874563 General Information Open Medium Jul 12, 2026 Unassigned" [ref=e225] [cursor=pointer]: + - cell "INQ-202607-0007" [ref=e226]: + - code [ref=e227]: INQ-202607-0007 + - cell "test12121212" [ref=e228]: + - link "test12121212" [ref=e229]: + - /url: /inquiries/b4a65498-e8d8-403c-82bb-ae09adc7fc1c/ + - cell "ismail mosa 0569874563" [ref=e230]: + - generic [ref=e231]: ismail mosa + - generic [ref=e232]: "0569874563" + - cell "General Information" [ref=e233] + - cell "Open" [ref=e234] + - cell "Medium" [ref=e235] + - cell "Jul 12, 2026" [ref=e236] + - cell "Unassigned" [ref=e237] + - row "INQ-202607-0006 test12121212 test 0569874563 General Information Open Medium Jul 12, 2026 Unassigned" [ref=e238] [cursor=pointer]: + - cell "INQ-202607-0006" [ref=e239]: + - code [ref=e240]: INQ-202607-0006 + - cell "test12121212" [ref=e241]: + - link "test12121212" [ref=e242]: + - /url: /inquiries/1c3eda08-ff03-4521-bcb8-ec137c79b417/ + - cell "test 0569874563" [ref=e243]: + - generic [ref=e244]: test + - generic [ref=e245]: "0569874563" + - cell "General Information" [ref=e246] + - cell "Open" [ref=e247] + - cell "Medium" [ref=e248] + - cell "Jul 12, 2026" [ref=e249] + - cell "Unassigned" [ref=e250] + - row "INQ-202607-0005 test test 0569874589 General Information In Progress Medium Jul 09, 2026 Unassigned" [ref=e251] [cursor=pointer]: + - cell "INQ-202607-0005" [ref=e252]: + - code [ref=e253]: INQ-202607-0005 + - cell "test" [ref=e254]: + - link "test" [ref=e255]: + - /url: /inquiries/c05309c2-3518-46ae-9b1c-c144acdb5d58/ + - cell "test 0569874589" [ref=e256]: + - generic [ref=e257]: test + - generic [ref=e258]: "0569874589" + - cell "General Information" [ref=e259] + - cell "In Progress" [ref=e260] + - cell "Medium" [ref=e261] + - cell "Jul 09, 2026" [ref=e262] + - cell "Unassigned" [ref=e263] + - row "INQ-202607-0004 hi ismail 0569874589 General Information Resolved Medium Jul 09, 2026 ismail mosa" [ref=e264] [cursor=pointer]: + - cell "INQ-202607-0004" [ref=e265]: + - code [ref=e266]: INQ-202607-0004 + - cell "hi" [ref=e267]: + - link "hi" [ref=e268]: + - /url: /inquiries/d1df0b83-5c16-4f51-b735-e89f612deb50/ + - cell "ismail 0569874589" [ref=e269]: + - generic [ref=e270]: ismail + - generic [ref=e271]: "0569874589" + - cell "General Information" [ref=e272] + - cell "Resolved" [ref=e273] + - cell "Medium" [ref=e274] + - cell "Jul 09, 2026" [ref=e275] + - cell "ismail mosa" [ref=e276] + - row "INQ-202607-0003 test test 0569874589 General Information Resolved Medium Jul 08, 2026 ismail mosa" [ref=e277] [cursor=pointer]: + - cell "INQ-202607-0003" [ref=e278]: + - code [ref=e279]: INQ-202607-0003 + - cell "test" [ref=e280]: + - link "test" [ref=e281]: + - /url: /inquiries/031cbd06-e2dc-4cd9-9b81-b1218e090d6c/ + - cell "test 0569874589" [ref=e282]: + - generic [ref=e283]: test + - generic [ref=e284]: "0569874589" + - cell "General Information" [ref=e285] + - cell "Resolved" [ref=e286] + - cell "Medium" [ref=e287] + - cell "Jul 08, 2026" [ref=e288] + - cell "ismail mosa" [ref=e289] + - generic [ref=e290]: + - generic [ref=e291]: + - generic [ref=e292]: Showing 1-5 of 5 + - generic [ref=e293]: + - generic [ref=e294]: Show + - combobox [ref=e295]: + - option "10" + - option "25" [selected] + - option "50" + - option "100" + - generic [ref=e296]: + - img [ref=e298] + - generic [ref=e300]: "1" + - img [ref=e302] + - contentinfo [ref=e304]: + - paragraph [ref=e305]: + - text: Powered by + - link "tenhal.sa" [ref=e306] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-34-28-605Z.yml b/.playwright-cli/page-2026-07-12T20-34-28-605Z.yml new file mode 100644 index 0000000..178fa5d --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-34-28-605Z.yml @@ -0,0 +1,172 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e139]: + - generic [ref=e140]: + - link "Inquiries" [ref=e141] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e142] + - generic [ref=e144]: INQ-202607-0007 + - generic [ref=e145]: Open + - generic [ref=e146]: Medium + - generic [ref=e147]: + - img [ref=e148] + - text: Not Sent to Dept + - generic [ref=e150]: + - heading "test12121212" [level=1] [ref=e151] + - generic [ref=e153]: + - img [ref=e154] + - text: 2026-07-12 + - generic [ref=e157]: + - generic [ref=e158]: + - img [ref=e160] + - generic [ref=e162]: Created + - generic [ref=e164]: + - img [ref=e166] + - generic [ref=e169]: Assigned + - generic [ref=e171]: + - img [ref=e173] + - generic [ref=e176]: Sent to Dept + - generic [ref=e178]: + - img [ref=e180] + - generic [ref=e182]: Dept Response + - generic [ref=e184]: + - img [ref=e186] + - generic [ref=e189]: Resolved + - generic [ref=e190]: + - generic [ref=e191]: + - img [ref=e193] + - generic [ref=e195]: + - paragraph [ref=e196]: Activate this inquiry + - paragraph [ref=e197]: Activation moves it to In Progress so actions become available. + - generic [ref=e198]: + - button "Cancel" [ref=e200] [cursor=pointer] + - button "Activate" [ref=e202] [cursor=pointer] + - navigation [ref=e203]: + - button "Details" [ref=e204] [cursor=pointer] + - button "Timeline" [ref=e205] [cursor=pointer] + - button "Notes" [ref=e206] [cursor=pointer] + - main [ref=e207]: + - generic [ref=e209]: + - generic [ref=e210]: + - generic [ref=e211]: + - paragraph + - paragraph [ref=e212]: "231313131" + - paragraph + - generic [ref=e213]: + - generic [ref=e215]: + - img [ref=e216] + - generic [ref=e219]: AI Analysis + - generic [ref=e220]: + - paragraph [ref=e221]: "231313131" + - paragraph [ref=e222]: "231313131" + - generic [ref=e223]: + - heading "Patient" [level=3] [ref=e224]: + - img [ref=e225] + - text: Patient + - generic [ref=e228]: + - generic [ref=e229]: ismail mosa + - generic [ref=e230]: "|" + - generic [ref=e231]: + - img [ref=e232] + - text: "0569874563" + - generic [ref=e235]: + - heading "Quick Actions" [level=3] [ref=e236] + - generic [ref=e237]: + - button "Activate" [ref=e239] [cursor=pointer]: + - img [ref=e240] + - generic [ref=e243]: Activate + - button "Cancel Inquiry" [ref=e245] [cursor=pointer]: + - img [ref=e246] + - generic [ref=e250]: Cancel Inquiry + - contentinfo [ref=e251]: + - paragraph [ref=e252]: + - text: Powered by + - link "tenhal.sa" [ref=e253] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-34-49-571Z.yml b/.playwright-cli/page-2026-07-12T20-34-49-571Z.yml new file mode 100644 index 0000000..8f4ebf2 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-34-49-571Z.yml @@ -0,0 +1,344 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e140]: + - generic [ref=e141]: + - heading "Observations" [level=1] [ref=e142]: + - img [ref=e143] + - text: Observations + - paragraph [ref=e146]: Manage and triage staff-reported observations + - generic [ref=e147]: + - link "New Observation" [ref=e148] [cursor=pointer]: + - /url: /observations/create/ + - img [ref=e149] + - text: New Observation + - link "Public Form" [ref=e151] [cursor=pointer]: + - /url: /core/public/submit/ + - img [ref=e152] + - text: Public Form + - generic [ref=e153]: + - generic [ref=e155]: + - generic [ref=e156]: + - paragraph [ref=e157]: Total + - paragraph [ref=e158]: "2" + - img [ref=e160] + - generic [ref=e162]: + - generic [ref=e163]: + - paragraph [ref=e164]: New + - paragraph + - img [ref=e166] + - generic [ref=e170]: + - generic [ref=e171]: + - paragraph [ref=e172]: In Progress + - paragraph [ref=e173]: "2" + - img [ref=e175] + - generic [ref=e178]: + - generic [ref=e179]: + - img [ref=e181] + - heading "Filters" [level=5] [ref=e183] + - button [ref=e184] [cursor=pointer]: + - img [ref=e185] + - generic [ref=e188]: + - generic [ref=e189]: + - generic [ref=e190]: + - generic [ref=e191]: Search + - textbox "Tracking code, description..." [ref=e192] + - generic [ref=e193]: + - generic [ref=e194]: Status + - combobox [ref=e195]: + - option "All Statuses" [selected] + - option "Open" + - option "In Progress" + - option "Resolved" + - option "Closed" + - generic [ref=e196]: + - generic [ref=e197]: Severity + - combobox [ref=e198]: + - option "All Severities" [selected] + - option "Low" + - option "Medium" + - option "High" + - option "Critical" + - generic [ref=e199]: + - generic [ref=e200]: Category + - combobox [ref=e201]: + - option "All Categories" [selected] + - option "Patient Safety" + - option "Clinical Quality" + - option "Infection Control" + - option "Medication Safety" + - option "Equipment & Devices" + - option "Facility & Environment" + - option "Staff Behavior" + - option "Communication" + - option "Documentation" + - option "Process & Workflow" + - option "Security" + - option "IT & Systems" + - option "Housekeeping" + - option "Food Services" + - option "Other" + - generic [ref=e202]: + - generic [ref=e203]: Department + - combobox [ref=e204]: + - option "All Departments" [selected] + - option "Contact Center Department" + - option "Emergency Administrative Department" + - option "Executive Administration" + - option "Financial Collection & Claims Department" + - option "Inpatient Department" + - option "Medical Approvals Department" + - option "Medical Records Department" + - option "Outpatient Department" + - option "Patient Affairs Department" + - option "Patient Experience Department" + - option "Security Department" + - option "Anesthesia Department" + - option "Critical Care Department" + - option "Dental Department" + - option "Dermatology Department" + - option "Emergency Medicine Department" + - option "IVF" + - option "Infection Control Department" + - option "Internal Medicine Department" + - option "Laboratory Department" + - option "Medical Administration" + - option "Medical Ancillary Services Department" + - option "ONCOLOGY Department" + - option "Obstetrics & Gynecology Department" + - option "Operating Rooms (OR) Department" + - option "Ophthalmology Department" + - option "Pediatric Department" + - option "Pharmacy Department" + - option "Radiology Department" + - option "Surgery Department" + - option "E2E Dept 1781720032405" + - option "E2E Dept 1781720188555" + - option "Nursing Department" + - option "Biomedical Department" + - option "Facility Management & Maintenance Department" + - option "Food Services Department" + - option "Housekeeping & Hospitality Department" + - option "Information Technology Department" + - option "Laundry Department" + - generic [ref=e206] [cursor=pointer]: + - generic [ref=e207]: All Departments + - combobox "All Departments" [ref=e208] + - generic [ref=e209]: + - generic [ref=e210]: Assigned To + - combobox [ref=e211]: + - option "All Users" [selected] + - option "E2E PX Employee" + - option "test test" + - option "test test" + - generic [ref=e212]: + - generic [ref=e213]: Date From + - textbox [ref=e214] + - generic [ref=e215]: + - generic [ref=e216]: Date To + - textbox [ref=e217] + - generic [ref=e218]: + - button "Apply Filters" [ref=e219] [cursor=pointer]: + - img [ref=e220] + - text: Apply Filters + - link "Clear" [ref=e223] [cursor=pointer]: + - /url: /observations/ + - img [ref=e224] + - text: Clear + - generic [ref=e229]: + - img [ref=e231] + - heading "Observations List" [level=5] [ref=e233] + - generic [ref=e234]: Showing 1 to 4 of 4 observations + - table [ref=e237]: + - rowgroup [ref=e238]: + - row "Reference Date Category Description Severity Status Reporter Department Assigned Actions" [ref=e239]: + - columnheader "Reference" [ref=e240] + - columnheader "Date" [ref=e241] + - columnheader "Category" [ref=e242] + - columnheader "Description" [ref=e243] + - columnheader "Severity" [ref=e244] + - columnheader "Status" [ref=e245] + - columnheader "Reporter" [ref=e246] + - columnheader "Department" [ref=e247] + - columnheader "Assigned" [ref=e248] + - columnheader "Actions" [ref=e249] + - rowgroup [ref=e250]: + - row "OBS-202607-0001 Jul 08, 2026 16:33 - test observation Medium In Progress ismail mosa Contact Center Department ismail mosa" [ref=e251]: + - cell "OBS-202607-0001" [ref=e252] + - cell "Jul 08, 2026 16:33" [ref=e253]: + - text: Jul 08, 2026 + - text: 16:33 + - cell "-" [ref=e254] + - cell "test observation" [ref=e255]: + - generic [ref=e256]: test observation + - cell "Medium" [ref=e257] + - cell "In Progress" [ref=e258] + - cell "ismail mosa" [ref=e259] + - cell "Contact Center Department" [ref=e260] + - cell "ismail mosa" [ref=e261] + - cell [ref=e262]: + - link [ref=e263] [cursor=pointer]: + - /url: /observations/1d925706-110e-4bad-808f-26aae2029144/ + - img [ref=e264] + - row "OBS-202606-E2EHOSP-0056 Jun 22, 2026 10:16 Other Observation i notice some trash in the hall Medium In Progress E2E PX Admin Contact Center Department E2E PX Admin" [ref=e267]: + - cell "OBS-202606-E2EHOSP-0056" [ref=e268] + - cell "Jun 22, 2026 10:16" [ref=e269]: + - text: Jun 22, 2026 + - text: 10:16 + - cell "Other" [ref=e270]: + - generic [ref=e271]: Other + - cell "Observation i notice some trash in the hall" [ref=e272]: + - generic [ref=e273]: + - strong [ref=e274]: Observation + - text: i notice some trash in the hall + - cell "Medium" [ref=e275] + - cell "In Progress" [ref=e276] + - cell "E2E PX Admin" [ref=e277] + - cell "Contact Center Department" [ref=e278] + - cell "E2E PX Admin" [ref=e279] + - cell [ref=e280]: + - link [ref=e281] [cursor=pointer]: + - /url: /observations/b9a80c99-31dc-4cda-a1e3-c20d94a28729/ + - img [ref=e282] + - row "OBS-O8TCIC Jun 09, 2026 13:36 - Wet floor near the main entrance, no warning sign posted. Medium In Progress Anonymous Reporter - ismail mosa" [ref=e285]: + - cell "OBS-O8TCIC" [ref=e286] + - cell "Jun 09, 2026 13:36" [ref=e287]: + - text: Jun 09, 2026 + - text: 13:36 + - cell "-" [ref=e288] + - cell "Wet floor near the main entrance, no warning sign posted." [ref=e289]: + - generic [ref=e290]: Wet floor near the main entrance, no warning sign posted. + - cell "Medium" [ref=e291] + - cell "In Progress" [ref=e292] + - cell "Anonymous Reporter" [ref=e293] + - cell "-" [ref=e294] + - cell "ismail mosa" [ref=e295] + - cell [ref=e296]: + - link [ref=e297] [cursor=pointer]: + - /url: /observations/5f8fc6c6-3b38-4b88-8144-3f926c24e290/ + - img [ref=e298] + - row "OBS-QPE02F Jun 07, 2026 21:08 Other Observation safsafsad Medium Open ismail Daif - Unassigned" [ref=e301]: + - cell "OBS-QPE02F" [ref=e302] + - cell "Jun 07, 2026 21:08" [ref=e303]: + - text: Jun 07, 2026 + - text: 21:08 + - cell "Other" [ref=e304]: + - generic [ref=e305]: Other + - cell "Observation safsafsad" [ref=e306]: + - generic [ref=e307]: + - strong [ref=e308]: Observation + - text: safsafsad + - cell "Medium" [ref=e309] + - cell "Open" [ref=e310] + - cell "ismail Daif" [ref=e311] + - cell "-" [ref=e312] + - cell "Unassigned" [ref=e313] + - cell [ref=e314]: + - link [ref=e315] [cursor=pointer]: + - /url: /observations/327d9b79-2126-4800-8cd7-647f006271ce/ + - img [ref=e316] + - generic [ref=e319]: + - generic [ref=e320]: + - generic [ref=e321]: Showing 1-4 of 4 + - generic [ref=e322]: + - generic [ref=e323]: Show + - combobox [ref=e324]: + - option "10" + - option "25" [selected] + - option "50" + - option "100" + - generic [ref=e325]: + - img [ref=e327] + - generic [ref=e329]: "1" + - img [ref=e331] + - contentinfo [ref=e333]: + - paragraph [ref=e334]: + - text: Powered by + - link "tenhal.sa" [ref=e335] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-35-19-622Z.yml b/.playwright-cli/page-2026-07-12T20-35-19-622Z.yml new file mode 100644 index 0000000..96ab83c --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-35-19-622Z.yml @@ -0,0 +1,259 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e139]: + - generic [ref=e140]: + - link "Observations" [ref=e141] [cursor=pointer]: + - /url: /observations/ + - img [ref=e142] + - generic [ref=e144]: OBS-202607-0001 + - generic [ref=e145]: In Progress + - generic [ref=e146]: Medium + - generic [ref=e147]: + - img [ref=e148] + - text: Not Sent to Dept + - heading "test observation" [level=1] [ref=e151] + - generic [ref=e153]: + - generic [ref=e154]: + - img [ref=e156] + - generic [ref=e158]: Created + - generic [ref=e160]: + - img [ref=e162] + - generic [ref=e164]: Assigned + - generic [ref=e166]: + - img [ref=e168] + - generic [ref=e171]: Sent to Dept + - generic [ref=e173]: + - img [ref=e175] + - generic [ref=e177]: Dept Response + - generic [ref=e179]: + - img [ref=e181] + - generic [ref=e184]: Resolved + - navigation [ref=e185]: + - button "Details" [ref=e186] [cursor=pointer] + - button "Timeline" [ref=e187] [cursor=pointer] + - button "RCA" [ref=e188] [cursor=pointer] + - button "Notes" [ref=e189] [cursor=pointer] + - main [ref=e190]: + - generic [ref=e192]: + - generic [ref=e193]: + - paragraph [ref=e195]: test observation + - generic [ref=e196]: + - generic [ref=e197]: + - paragraph [ref=e198]: Category + - paragraph [ref=e199]: "-" + - generic [ref=e200]: + - paragraph [ref=e201]: Location + - paragraph [ref=e202]: "-" + - generic [ref=e203]: + - paragraph [ref=e204]: Incident Date + - paragraph [ref=e205]: 08 Jul 2026 + - generic [ref=e209]: + - img [ref=e210] + - paragraph [ref=e214]: No department assigned to this observation + - generic [ref=e215]: + - generic [ref=e216]: + - heading "Quick Actions" [level=3] [ref=e217] + - generic [ref=e218]: + - button "Respond to Patient" [ref=e219] [cursor=pointer]: + - img [ref=e220] + - generic [ref=e222]: Respond to Patient + - button "Reassign" [ref=e223] [cursor=pointer]: + - img [ref=e224] + - generic [ref=e227]: Reassign + - button "Send to Dept" [ref=e228] [cursor=pointer]: + - img [ref=e229] + - generic [ref=e232]: Send to Dept + - button "Resolve" [ref=e234] [cursor=pointer]: + - img [ref=e235] + - generic [ref=e238]: Resolve + - link "RCA" [ref=e239] [cursor=pointer]: + - /url: /rca/create/?related_model=observation&related_id=1d925706-110e-4bad-808f-26aae2029144 + - img [ref=e240] + - generic [ref=e243]: RCA + - link "QI Project" [ref=e244] [cursor=pointer]: + - /url: /projects/create/?related_model=observation&related_id=1d925706-110e-4bad-808f-26aae2029144 + - img [ref=e245] + - generic [ref=e247]: QI Project + - button "Delete" [ref=e249] [cursor=pointer]: + - img [ref=e250] + - generic [ref=e253]: Delete + - generic [ref=e254]: + - heading "Assignment" [level=3] [ref=e255]: + - img [ref=e256] + - text: Assignment + - list [ref=e261]: + - listitem [ref=e262]: + - generic [ref=e263]: Department + - generic [ref=e264]: Contact Center Department + - listitem [ref=e265]: + - generic [ref=e266]: Assigned To + - generic [ref=e267]: ismail mosa + - generic [ref=e268]: + - heading "Linked PX Action" [level=3] [ref=e269]: + - img [ref=e270] + - text: Linked PX Action + - paragraph [ref=e273]: Observation OBS-202607-0001 + - link "View Action" [ref=e274] [cursor=pointer]: + - /url: /actions/9b185c2a-e3fe-4e13-a727-7aab21df8754/ + - img [ref=e275] + - text: View Action + - generic [ref=e277]: + - heading "Triage" [level=3] [ref=e278]: + - img [ref=e279] + - text: Triage + - generic [ref=e280]: + - generic [ref=e281]: + - generic [ref=e282]: Department + - combobox [ref=e283]: + - option "Select department" + - option "Contact Center Department" [selected] + - option "Emergency Administrative Department" + - option "Executive Administration" + - option "Financial Collection & Claims Department" + - option "Inpatient Department" + - option "Medical Approvals Department" + - option "Medical Records Department" + - option "Outpatient Department" + - option "Patient Affairs Department" + - option "Patient Experience Department" + - option "Security Department" + - option "Anesthesia Department" + - option "Critical Care Department" + - option "Dental Department" + - option "Dermatology Department" + - option "Emergency Medicine Department" + - option "IVF" + - option "Infection Control Department" + - option "Internal Medicine Department" + - option "Laboratory Department" + - option "Medical Administration" + - option "Medical Ancillary Services Department" + - option "ONCOLOGY Department" + - option "Obstetrics & Gynecology Department" + - option "Operating Rooms (OR) Department" + - option "Ophthalmology Department" + - option "Pediatric Department" + - option "Pharmacy Department" + - option "Radiology Department" + - option "Surgery Department" + - option "E2E Dept 1781720032405" + - option "E2E Dept 1781720188555" + - option "Nursing Department" + - option "Biomedical Department" + - option "Facility Management & Maintenance Department" + - option "Food Services Department" + - option "Housekeeping & Hospitality Department" + - option "Information Technology Department" + - option "Laundry Department" + - generic [ref=e284]: + - generic [ref=e285]: Assign To + - combobox [ref=e286]: + - option "Select assignee" [selected] + - option "E2E PX Employee (e2e-px-employee@px360.test)" + - option "test test (9m5s6gzmft@ruutukf.com)" + - option "test test (esma3el555@gmail.com)" + - generic [ref=e287]: + - generic [ref=e288]: Status + - combobox [ref=e289]: + - option "Open" + - option "In Progress" [selected] + - option "Resolved" + - option "Closed" + - generic [ref=e290]: + - generic [ref=e291]: Note + - textbox "Add a note about this triage action (optional)..." [ref=e292] + - button "Update" [ref=e293] [cursor=pointer]: + - img [ref=e294] + - text: Update + - contentinfo [ref=e297]: + - paragraph [ref=e298]: + - text: Powered by + - link "tenhal.sa" [ref=e299] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-35-37-343Z.yml b/.playwright-cli/page-2026-07-12T20-35-37-343Z.yml new file mode 100644 index 0000000..d6747b0 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-35-37-343Z.yml @@ -0,0 +1,201 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e140]: + - generic [ref=e141]: + - heading "Suggestions" [level=1] [ref=e142] + - paragraph [ref=e143]: Manage and review submitted suggestions + - link "New Suggestion" [ref=e145] [cursor=pointer]: + - /url: /suggestions/create/ + - img [ref=e146] + - text: New Suggestion + - generic [ref=e147]: + - generic [ref=e148]: + - img [ref=e151] + - generic [ref=e153]: + - heading "Total Suggestions" [level=6] [ref=e154] + - heading "3" [level=2] [ref=e155] + - generic [ref=e156]: + - img [ref=e159] + - generic [ref=e161]: + - heading "Compliments" [level=6] [ref=e162] + - heading "0" [level=2] [ref=e163] + - generic [ref=e164]: + - img [ref=e167] + - generic [ref=e169]: + - heading "Avg Rating" [level=6] [ref=e170] + - heading "0.0 /5" [level=2] [ref=e171] + - generic [ref=e172]: + - img [ref=e175] + - generic [ref=e178]: + - heading "Pending Review" [level=6] [ref=e179] + - heading "2" [level=2] [ref=e180] + - generic [ref=e181]: + - generic [ref=e182]: + - generic [ref=e183]: + - img [ref=e185] + - heading "Suggestions" [level=5] [ref=e187] + - generic [ref=e188]: + - link "All" [ref=e189] [cursor=pointer]: + - /url: "?" + - link "Suggestions" [ref=e190] [cursor=pointer]: + - /url: "?feedback_type=suggestion" + - link "Compliments" [ref=e191] [cursor=pointer]: + - /url: "?feedback_type=compliment" + - button "Advanced" [ref=e193] [cursor=pointer]: + - img [ref=e194] + - text: Advanced + - paragraph [ref=e195]: "Showing: 1-3 of 3" + - table [ref=e197]: + - rowgroup [ref=e198]: + - row "ID Type Contact Title Category Rating Sentiment Status Created Actions" [ref=e199]: + - columnheader "ID" [ref=e200] + - columnheader "Type" [ref=e201] + - columnheader "Contact" [ref=e202] + - columnheader "Title" [ref=e203] + - columnheader "Category" [ref=e204] + - columnheader "Rating" [ref=e205] + - columnheader "Sentiment" [ref=e206] + - columnheader "Status" [ref=e207] + - columnheader "Created" [ref=e208] + - columnheader "Actions" [ref=e209] + - rowgroup [ref=e210]: + - row "SGT-202607-0003 Suggestion ismail Daif t Other - Neutral Submitted Jul 09, 2026" [ref=e211] [cursor=pointer]: + - cell "SGT-202607-0003" [ref=e212] + - cell "Suggestion" [ref=e213] + - cell "ismail Daif" [ref=e214]: + - generic [ref=e215]: ismail Daif + - cell "t" [ref=e216]: + - generic [ref=e217]: t + - cell "Other" [ref=e218] + - cell "-" [ref=e219] + - cell "Neutral" [ref=e220] + - cell "Submitted" [ref=e221] + - cell "Jul 09, 2026" [ref=e222] + - cell [ref=e223]: + - link "View" [ref=e225]: + - /url: /suggestions/78f015c5-fbed-4e10-987f-aa8ced75545a/ + - img [ref=e226] + - row "SGT-202607-0002 Suggestion ismail test Other - Neutral Submitted Jul 09, 2026" [ref=e229] [cursor=pointer]: + - cell "SGT-202607-0002" [ref=e230] + - cell "Suggestion" [ref=e231] + - cell "ismail" [ref=e232]: + - generic [ref=e233]: ismail + - cell "test" [ref=e234]: + - generic [ref=e235]: test + - cell "Other" [ref=e236] + - cell "-" [ref=e237] + - cell "Neutral" [ref=e238] + - cell "Submitted" [ref=e239] + - cell "Jul 09, 2026" [ref=e240] + - cell [ref=e241]: + - link "View" [ref=e243]: + - /url: /suggestions/04b009f3-53aa-4eac-9baf-39b3633e56b0/ + - img [ref=e244] + - row "SGT-202607-0001 Suggestion ismail The suggestion titled 'test' with content 'test' appears … Other - Neutral Closed Jul 09, 2026" [ref=e247] [cursor=pointer]: + - cell "SGT-202607-0001" [ref=e248] + - cell "Suggestion" [ref=e249] + - cell "ismail" [ref=e250]: + - generic [ref=e251]: ismail + - cell "The suggestion titled 'test' with content 'test' appears …" [ref=e252]: + - generic [ref=e253]: The suggestion titled 'test' with content 'test' appears … + - cell "Other" [ref=e254] + - cell "-" [ref=e255] + - cell "Neutral" [ref=e256] + - cell "Closed" [ref=e257] + - cell "Jul 09, 2026" [ref=e258] + - cell [ref=e259]: + - link "View" [ref=e261]: + - /url: /suggestions/ef1e633b-7fae-46e2-baab-0d5bdd71e7b7/ + - img [ref=e262] + - contentinfo [ref=e265]: + - paragraph [ref=e266]: + - text: Powered by + - link "tenhal.sa" [ref=e267] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-35-50-710Z.yml b/.playwright-cli/page-2026-07-12T20-35-50-710Z.yml new file mode 100644 index 0000000..3cd5765 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-35-50-710Z.yml @@ -0,0 +1,188 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e139]: + - generic [ref=e140]: + - link "Suggestions" [ref=e141] [cursor=pointer]: + - /url: /suggestions/ + - img [ref=e142] + - generic [ref=e144]: test + - generic [ref=e145]: Submitted + - generic [ref=e146]: Medium + - generic [ref=e147]: + - heading "Suggestion Detail" [level=1] [ref=e148] + - link "Edit" [ref=e150] [cursor=pointer]: + - /url: /suggestions/04b009f3-53aa-4eac-9baf-39b3633e56b0/update/ + - img [ref=e151] + - text: Edit + - generic [ref=e155]: + - generic [ref=e156]: + - img [ref=e158] + - generic [ref=e160]: Submitted + - generic [ref=e162]: + - img [ref=e164] + - generic [ref=e167]: Assigned + - generic [ref=e169]: + - img [ref=e171] + - generic [ref=e174]: Reviewed + - generic [ref=e176]: + - img [ref=e178] + - generic [ref=e180]: Acknowledged + - generic [ref=e182]: + - img [ref=e184] + - generic [ref=e187]: Closed + - navigation [ref=e188]: + - button "Details" [ref=e189] [cursor=pointer] + - button "AI Analysis" [ref=e190] [cursor=pointer] + - button "Notes" [ref=e191] [cursor=pointer] + - main [ref=e192]: + - generic [ref=e195]: + - heading "Suggestion Details" [level=3] [ref=e196]: + - img [ref=e197] + - text: Suggestion Details + - paragraph [ref=e200]: test + - generic [ref=e201]: + - generic [ref=e202]: + - generic [ref=e203]: Hospital + - generic [ref=e204]: E2E Test Hospital + - generic [ref=e205]: + - generic [ref=e206]: Category + - generic [ref=e207]: Other + - generic [ref=e208]: + - generic [ref=e209]: Location + - generic [ref=e210]: Not specified + - generic [ref=e211]: + - generic [ref=e212]: Sentiment + - generic [ref=e214]: Neutral + - generic [ref=e215]: + - heading "Contact" [level=6] [ref=e216] + - generic [ref=e217]: + - generic [ref=e218]: ismail + - generic [ref=e219]: "0569874589" + - generic [ref=e221]: + - img [ref=e222] + - text: July 09, 2026 13:46 + - generic [ref=e225]: + - heading "Quick Actions" [level=3] [ref=e226] + - generic [ref=e227]: + - generic [ref=e228]: + - text: Status + - combobox [ref=e229]: + - option "Submitted" [selected] + - option "Reviewed" + - option "Acknowledged" + - option "Closed" + - option "Reopened" + - textbox "Add a note..." [ref=e230] + - button "Update" [ref=e231] [cursor=pointer]: + - img [ref=e232] + - text: Update + - separator [ref=e237] + - generic [ref=e238]: + - text: Assign To + - combobox [ref=e239]: + - option "Select user..." [selected] + - option "E2E PX Employee" + - option "test test" + - option "test test" + - button "Assign" [ref=e240] [cursor=pointer]: + - img [ref=e241] + - text: Assign + - separator [ref=e245] + - generic [ref=e246]: + - text: Department + - button "Send to Department" [ref=e247] [cursor=pointer]: + - img [ref=e248] + - text: Send to Department + - separator [ref=e251] + - contentinfo [ref=e252]: + - paragraph [ref=e253]: + - text: Powered by + - link "tenhal.sa" [ref=e254] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-36-00-595Z.yml b/.playwright-cli/page-2026-07-12T20-36-00-595Z.yml new file mode 100644 index 0000000..ddeb3a0 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-36-00-595Z.yml @@ -0,0 +1,221 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e140]: + - generic [ref=e141]: + - heading "Appreciations" [level=1] [ref=e142]: + - img [ref=e143] + - text: Appreciations + - paragraph [ref=e145]: Manage and review patient appreciation submissions + - generic [ref=e146]: + - link "Create Internal" [ref=e147] [cursor=pointer]: + - /url: /appreciation/new/ + - img [ref=e148] + - text: Create Internal + - link "Public Form" [ref=e149] [cursor=pointer]: + - /url: /core/public/submit/ + - img [ref=e150] + - text: Public Form + - generic [ref=e154]: + - paragraph [ref=e155]: "0" + - paragraph [ref=e156]: Pending + - generic [ref=e157]: + - generic [ref=e159]: + - img [ref=e161] + - generic [ref=e164]: + - paragraph [ref=e165]: Total + - paragraph [ref=e166]: "3" + - generic [ref=e168]: + - img [ref=e170] + - generic [ref=e173]: + - paragraph [ref=e174]: Draft + - paragraph [ref=e175]: "0" + - generic [ref=e177]: + - img [ref=e179] + - generic [ref=e181]: + - paragraph [ref=e182]: Activated + - paragraph [ref=e183]: "0" + - generic [ref=e185]: + - img [ref=e187] + - generic [ref=e190]: + - paragraph [ref=e191]: Sent + - paragraph [ref=e192]: "3" + - generic [ref=e193]: + - link "Leaderboard See top performers" [ref=e194] [cursor=pointer]: + - /url: /appreciation/leaderboard/ + - generic [ref=e196]: + - img [ref=e198] + - generic [ref=e204]: + - heading "Leaderboard" [level=3] [ref=e205] + - paragraph [ref=e206]: See top performers + - link "My Badges View earned badges" [ref=e207] [cursor=pointer]: + - /url: /appreciation/badges/ + - generic [ref=e209]: + - img [ref=e211] + - generic [ref=e214]: + - heading "My Badges" [level=3] [ref=e215] + - paragraph [ref=e216]: View earned badges + - generic [ref=e217]: + - generic [ref=e218]: + - img [ref=e220] + - heading "Filters" [level=3] [ref=e222] + - generic [ref=e224]: + - generic [ref=e225]: + - generic [ref=e226]: Search + - textbox "Search messages..." [ref=e227] + - generic [ref=e228]: + - generic [ref=e229]: Status + - combobox [ref=e230]: + - option "All Status" [selected] + - option "Draft" + - option "Activated" + - option "AI Analyzed" + - option "Sent" + - option "Acknowledged" + - button "Search" [ref=e231] [cursor=pointer]: + - img [ref=e232] + - text: Search + - link "Clear" [ref=e235] [cursor=pointer]: + - /url: /appreciation/ + - table [ref=e237]: + - rowgroup [ref=e238]: + - row "From Message Staff Department Category Status Date Actions" [ref=e239]: + - columnheader "From" [ref=e240] + - columnheader "Message" [ref=e241] + - columnheader "Staff" [ref=e242] + - columnheader "Department" [ref=e243] + - columnheader "Category" [ref=e244] + - columnheader "Status" [ref=e245] + - columnheader "Date" [ref=e246] + - columnheader "Actions" [ref=e247] + - rowgroup [ref=e248]: + - row "ismail thank - Contact Center Department - Sent Jul 09, 2026" [ref=e249] [cursor=pointer]: + - cell "ismail" [ref=e250] + - cell "thank" [ref=e251]: + - generic [ref=e252]: thank + - cell "-" [ref=e253] + - cell "Contact Center Department" [ref=e254] + - cell "-" [ref=e255] + - cell "Sent" [ref=e256] + - cell "Jul 09, 2026" [ref=e257] + - cell [ref=e258]: + - link "View" [ref=e260]: + - /url: /appreciation/detail/5306821e-d596-498f-88c5-fa3addcdd491/ + - img [ref=e261] + - row "ismail mosa test - Contact Center Department - Sent Jul 09, 2026" [ref=e264] [cursor=pointer]: + - cell "ismail mosa" [ref=e265] + - cell "test" [ref=e266]: + - generic [ref=e267]: test + - cell "-" [ref=e268] + - cell "Contact Center Department" [ref=e269] + - cell "-" [ref=e270] + - cell "Sent" [ref=e271] + - cell "Jul 09, 2026" [ref=e272] + - cell [ref=e273]: + - link "View" [ref=e275]: + - /url: /appreciation/detail/3697b78b-5ff3-4392-8982-af20f58daebf/ + - img [ref=e276] + - row "ismail mosa thank you - Contact Center Department - Sent Jul 09, 2026" [ref=e279] [cursor=pointer]: + - cell "ismail mosa" [ref=e280] + - cell "thank you" [ref=e281]: + - generic [ref=e282]: thank you + - cell "-" [ref=e283] + - cell "Contact Center Department" [ref=e284] + - cell "-" [ref=e285] + - cell "Sent" [ref=e286] + - cell "Jul 09, 2026" [ref=e287] + - cell [ref=e288]: + - link "View" [ref=e290]: + - /url: /appreciation/detail/240ea5bd-a12d-4f76-8a79-a8dd9de5714a/ + - img [ref=e291] + - contentinfo [ref=e294]: + - paragraph [ref=e295]: + - text: Powered by + - link "tenhal.sa" [ref=e296] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-36-13-189Z.yml b/.playwright-cli/page-2026-07-12T20-36-13-189Z.yml new file mode 100644 index 0000000..9bee09b --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-36-13-189Z.yml @@ -0,0 +1,137 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e139]: + - generic [ref=e140]: + - link "Appreciations" [ref=e141] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e142] + - generic [ref=e144]: Detail + - generic [ref=e145]: Sent + - generic [ref=e146]: + - heading "Appreciation Detail" [level=1] [ref=e147]: + - img [ref=e148] + - text: Appreciation Detail + - generic [ref=e151]: 2026-07-09 13:55 — E2E Test Hospital + - navigation [ref=e152]: + - button "Details" [ref=e153] [cursor=pointer] + - button "AI Analysis" [ref=e154] [cursor=pointer] + - button "Notes" [ref=e155] [cursor=pointer] + - main [ref=e156]: + - generic [ref=e158]: + - generic [ref=e159]: + - heading "Appreciation Message" [level=3] [ref=e160]: + - img [ref=e161] + - text: Appreciation Message + - paragraph + - paragraph [ref=e163]: thank + - paragraph + - generic [ref=e164]: + - heading "Submitted By" [level=3] [ref=e165]: + - img [ref=e166] + - text: Submitted By + - generic [ref=e169]: + - generic [ref=e170]: + - paragraph [ref=e171]: Name + - paragraph [ref=e172]: ismail + - generic [ref=e173]: + - paragraph [ref=e174]: Phone + - paragraph [ref=e175]: "0569874589" + - generic [ref=e176]: + - heading "Sent" [level=3] [ref=e177]: + - img [ref=e178] + - text: Sent + - generic [ref=e182]: + - paragraph [ref=e183]: Sent At + - paragraph [ref=e184]: 2026-07-09 13:57 + - contentinfo [ref=e186]: + - paragraph [ref=e187]: + - text: Powered by + - link "tenhal.sa" [ref=e188] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-36-24-641Z.yml b/.playwright-cli/page-2026-07-12T20-36-24-641Z.yml new file mode 100644 index 0000000..1ec6ae9 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-36-24-641Z.yml @@ -0,0 +1,256 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e141]: + - generic [ref=e142]: + - link "Inquiries" [ref=e143] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e144] + - generic [ref=e146]: New Inquiry + - heading "Create New Inquiry" [level=1] [ref=e147] + - generic [ref=e149]: + - generic [ref=e150]: + - img [ref=e152] + - heading "Inquiry Information" [level=5] [ref=e155] + - generic [ref=e156]: + - generic [ref=e157]: + - heading "Organization" [level=6] [ref=e158]: + - img [ref=e159] + - text: Organization + - generic [ref=e162]: + - generic [ref=e163]: + - generic [ref=e164]: Location Type * + - combobox "Location Type *" [ref=e165]: + - option "Select Location Type" [selected] + - option "Outpatient" + - option "Inpatient" + - option "Emergency" + - option "General" + - generic [ref=e166]: + - generic [ref=e167]: Area + - combobox "Area" [ref=e168]: + - option "Select Area (optional)" [selected] + - option "Anesthesia (E2E-HOSP)" + - option "Dialysis (E2E-HOSP)" + - option "Emergency (E2E-HOSP)" + - option "Endoscopy (E2E-HOSP)" + - option "ICCU (E2E-HOSP)" + - option "ICU (E2E-HOSP)" + - option "ICU Stepdown (E2E-HOSP)" + - option "LTACU (E2E-HOSP)" + - option "Labor & Delivery (E2E-HOSP)" + - option "Main OR (E2E-HOSP)" + - option "Medical Ward (E2E-HOSP)" + - option "NICU - Neonatal Intensive Care Unit (E2E-HOSP)" + - option "Nursery (E2E-HOSP)" + - option "OB Wards (E2E-HOSP)" + - option "OPD1 (E2E-HOSP)" + - option "OPD2 (E2E-HOSP)" + - option "OPD3 (E2E-HOSP)" + - option "OPD4 (E2E-HOSP)" + - option "OPD5 (E2E-HOSP)" + - option "OPD6 (E2E-HOSP)" + - option "OPD7 (E2E-HOSP)" + - option "PICU (E2E-HOSP)" + - option "PICU Stepdown (E2E-HOSP)" + - option "Pediatric Ward (E2E-HOSP)" + - option "Recovery (E2E-HOSP)" + - option "Stepdown 3-4 (E2E-HOSP)" + - option "Surgical Wards (E2E-HOSP)" + - generic [ref=e169]: + - generic [ref=e170]: Department Category * + - combobox [ref=e171]: + - option "Select Category" [selected] + - option "Medical" + - option "Nursing" + - option "Administrative" + - option "Support Services" + - generic [ref=e172]: + - generic [ref=e173]: Department (Optional) + - combobox "Department (Optional)" [ref=e174]: + - option "Select Department" [selected] + - option "Anesthesia Department" + - option "Biomedical Department" + - option "Contact Center Department" + - option "Critical Care Department" + - option "Dental Department" + - option "Dermatology Department" + - option "E2E Dept 1781720032405" + - option "E2E Dept 1781720188555" + - option "Emergency Administrative Department" + - option "Emergency Medicine Department" + - option "Executive Administration" + - option "Facility Management & Maintenance Department" + - option "Financial Collection & Claims Department" + - option "Food Services Department" + - option "Housekeeping & Hospitality Department" + - option "IVF" + - option "Infection Control Department" + - option "Information Technology Department" + - option "Inpatient Department" + - option "Internal Medicine Department" + - option "Laboratory Department" + - option "Laundry Department" + - option "Medical Administration" + - option "Medical Ancillary Services Department" + - option "Medical Approvals Department" + - option "Medical Records Department" + - option "Nursing Department" + - option "ONCOLOGY Department" + - option "Obstetrics & Gynecology Department" + - option "Operating Rooms (OR) Department" + - option "Ophthalmology Department" + - option "Outpatient Department" + - option "Patient Affairs Department" + - option "Patient Experience Department" + - option "Pediatric Department" + - option "Pharmacy Department" + - option "Radiology Department" + - option "Security Department" + - option "Surgery Department" + - generic [ref=e175]: + - generic [ref=e176]: Section + - combobox "Section" [ref=e177]: + - option "Select Section" [selected] + - generic [ref=e178]: + - heading "Contact Information" [level=6] [ref=e179]: + - img [ref=e180] + - text: Contact Information + - generic [ref=e183]: + - generic [ref=e184]: + - generic [ref=e185]: Contact Name * + - textbox "Contact Name *" [ref=e186] + - generic [ref=e187]: + - generic [ref=e188]: Contact Phone * + - textbox "Contact Phone *" [ref=e189] + - generic [ref=e190]: + - generic [ref=e191]: Contact Email + - textbox "Contact Email" [ref=e192] + - generic [ref=e193]: + - heading "Inquiry Details" [level=6] [ref=e194]: + - img [ref=e195] + - text: Inquiry Details + - generic [ref=e198]: + - generic [ref=e199]: + - generic [ref=e200]: Inquiry Type * + - combobox "Inquiry Type *" [ref=e201]: + - option "General Inquiry" [selected] + - option "Appointment Related" + - option "Billing & Insurance" + - option "Medical Records" + - option "Pharmacy" + - option "Insurance" + - option "Feedback" + - option "Other" + - generic [ref=e202]: + - generic [ref=e203]: Priority + - combobox "Priority" [ref=e204]: + - option "Low" + - option "Medium" [selected] + - option "High" + - option "Critical" + - generic [ref=e205]: + - generic [ref=e206]: Subject * + - textbox "Subject *" [ref=e207]: + - /placeholder: Brief subject + - generic [ref=e208]: + - generic [ref=e209]: Message * + - textbox "Message *" [ref=e210]: + - /placeholder: Describe your inquiry + - generic [ref=e211]: + - button "Create Inquiry" [ref=e212] [cursor=pointer]: + - img [ref=e213] + - text: Create Inquiry + - link "Cancel" [ref=e216] [cursor=pointer]: + - /url: /inquiries/ + - contentinfo [ref=e217]: + - paragraph [ref=e218]: + - text: Powered by + - link "tenhal.sa" [ref=e219] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-37-03-048Z.yml b/.playwright-cli/page-2026-07-12T20-37-03-048Z.yml new file mode 100644 index 0000000..9745960 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-37-03-048Z.yml @@ -0,0 +1,258 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e141]: + - generic [ref=e142]: + - link "Inquiries" [ref=e143] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e144] + - generic [ref=e146]: New Inquiry + - heading "Create New Inquiry" [level=1] [ref=e147] + - generic [ref=e149]: + - generic [ref=e150]: + - img [ref=e152] + - heading "Inquiry Information" [level=5] [ref=e155] + - generic [ref=e156]: + - generic [ref=e157]: + - heading "Organization" [level=6] [ref=e158]: + - img [ref=e159] + - text: Organization + - generic [ref=e162]: + - generic [ref=e163]: + - generic [ref=e164]: Location Type * + - combobox "Location Type *" [active] [ref=e165]: + - option "Select Location Type" [selected] + - option "Outpatient" + - option "Inpatient" + - option "Emergency" + - option "General" + - generic [ref=e166]: + - generic [ref=e167]: Area + - combobox "Area" [ref=e168]: + - option "Select Area (optional)" [selected] + - option "Anesthesia (E2E-HOSP)" + - option "Dialysis (E2E-HOSP)" + - option "Emergency (E2E-HOSP)" + - option "Endoscopy (E2E-HOSP)" + - option "ICCU (E2E-HOSP)" + - option "ICU (E2E-HOSP)" + - option "ICU Stepdown (E2E-HOSP)" + - option "LTACU (E2E-HOSP)" + - option "Labor & Delivery (E2E-HOSP)" + - option "Main OR (E2E-HOSP)" + - option "Medical Ward (E2E-HOSP)" + - option "NICU - Neonatal Intensive Care Unit (E2E-HOSP)" + - option "Nursery (E2E-HOSP)" + - option "OB Wards (E2E-HOSP)" + - option "OPD1 (E2E-HOSP)" + - option "OPD2 (E2E-HOSP)" + - option "OPD3 (E2E-HOSP)" + - option "OPD4 (E2E-HOSP)" + - option "OPD5 (E2E-HOSP)" + - option "OPD6 (E2E-HOSP)" + - option "OPD7 (E2E-HOSP)" + - option "PICU (E2E-HOSP)" + - option "PICU Stepdown (E2E-HOSP)" + - option "Pediatric Ward (E2E-HOSP)" + - option "Recovery (E2E-HOSP)" + - option "Stepdown 3-4 (E2E-HOSP)" + - option "Surgical Wards (E2E-HOSP)" + - generic [ref=e169]: + - generic [ref=e170]: Department Category * + - combobox [ref=e171]: + - option "Select Category" [selected] + - option "Medical" + - option "Nursing" + - option "Administrative" + - option "Support Services" + - generic [ref=e172]: + - generic [ref=e173]: Department (Optional) + - combobox "Department (Optional)" [ref=e174]: + - option "Select Department" [selected] + - option "Anesthesia Department" + - option "Biomedical Department" + - option "Contact Center Department" + - option "Critical Care Department" + - option "Dental Department" + - option "Dermatology Department" + - option "E2E Dept 1781720032405" + - option "E2E Dept 1781720188555" + - option "Emergency Administrative Department" + - option "Emergency Medicine Department" + - option "Executive Administration" + - option "Facility Management & Maintenance Department" + - option "Financial Collection & Claims Department" + - option "Food Services Department" + - option "Housekeeping & Hospitality Department" + - option "IVF" + - option "Infection Control Department" + - option "Information Technology Department" + - option "Inpatient Department" + - option "Internal Medicine Department" + - option "Laboratory Department" + - option "Laundry Department" + - option "Medical Administration" + - option "Medical Ancillary Services Department" + - option "Medical Approvals Department" + - option "Medical Records Department" + - option "Nursing Department" + - option "ONCOLOGY Department" + - option "Obstetrics & Gynecology Department" + - option "Operating Rooms (OR) Department" + - option "Ophthalmology Department" + - option "Outpatient Department" + - option "Patient Affairs Department" + - option "Patient Experience Department" + - option "Pediatric Department" + - option "Pharmacy Department" + - option "Radiology Department" + - option "Security Department" + - option "Surgery Department" + - generic [ref=e175]: + - generic [ref=e176]: Section + - combobox "Section" [ref=e177]: + - option "Select Section" [selected] + - generic [ref=e178]: + - heading "Contact Information" [level=6] [ref=e179]: + - img [ref=e180] + - text: Contact Information + - generic [ref=e183]: + - generic [ref=e184]: + - generic [ref=e185]: Contact Name * + - textbox "Contact Name *" [ref=e186]: Test User + - generic [ref=e187]: + - generic [ref=e188]: Contact Phone * + - textbox "Contact Phone *" [ref=e189]: "+966501234567" + - generic [ref=e190]: + - generic [ref=e191]: Contact Email + - textbox "Contact Email" [ref=e192] + - generic [ref=e193]: + - heading "Inquiry Details" [level=6] [ref=e194]: + - img [ref=e195] + - text: Inquiry Details + - generic [ref=e198]: + - generic [ref=e199]: + - generic [ref=e200]: Inquiry Type * + - combobox "Inquiry Type *" [ref=e201]: + - option "General Inquiry" [selected] + - option "Appointment Related" + - option "Billing & Insurance" + - option "Medical Records" + - option "Pharmacy" + - option "Insurance" + - option "Feedback" + - option "Other" + - generic [ref=e202]: + - generic [ref=e203]: Priority + - combobox "Priority" [ref=e204]: + - option "Low" + - option "Medium" [selected] + - option "High" + - option "Critical" + - generic [ref=e205]: + - generic [ref=e206]: Subject * + - textbox "Subject *" [ref=e207]: + - /placeholder: Brief subject + - text: Playwright Test Inquiry + - generic [ref=e208]: + - generic [ref=e209]: Message * + - textbox "Message *" [ref=e210]: + - /placeholder: Describe your inquiry + - text: This is a test inquiry created by Playwright to verify px-employee access. + - generic [ref=e211]: + - button "Create Inquiry" [ref=e212] [cursor=pointer]: + - img [ref=e213] + - text: Create Inquiry + - link "Cancel" [ref=e216] [cursor=pointer]: + - /url: /inquiries/ + - contentinfo [ref=e217]: + - paragraph [ref=e218]: + - text: Powered by + - link "tenhal.sa" [ref=e219] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-39-22-820Z.yml b/.playwright-cli/page-2026-07-12T20-39-22-820Z.yml new file mode 100644 index 0000000..d20e4e7 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-39-22-820Z.yml @@ -0,0 +1,258 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e141]: + - generic [ref=e142]: + - link "Inquiries" [ref=e143] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e144] + - generic [ref=e146]: New Inquiry + - heading "Create New Inquiry" [level=1] [ref=e147] + - generic [ref=e149]: + - generic [ref=e150]: + - img [ref=e152] + - heading "Inquiry Information" [level=5] [ref=e155] + - generic [ref=e156]: + - generic [ref=e157]: + - heading "Organization" [level=6] [ref=e158]: + - img [ref=e159] + - text: Organization + - generic [ref=e162]: + - generic [ref=e163]: + - generic [ref=e164]: Location Type * + - combobox "Location Type *" [active] [ref=e165]: + - option "Select Location Type" + - option "Outpatient" + - option "Inpatient" + - option "Emergency" + - option "General" + - generic [ref=e166]: + - generic [ref=e167]: Area + - combobox "Area" [ref=e168]: + - option "Select Area (optional)" [selected] + - option "Anesthesia" + - option "Dialysis" + - option "Emergency" + - option "Endoscopy" + - option "ICCU" + - option "ICU" + - option "ICU Stepdown" + - option "LTACU" + - option "Labor & Delivery" + - option "Main OR" + - option "Medical Ward" + - option "NICU - Neonatal Intensive Care Unit" + - option "Nursery" + - option "OB Wards" + - option "OPD1" + - option "OPD2" + - option "OPD3" + - option "OPD4" + - option "OPD5" + - option "OPD6" + - option "OPD7" + - option "PICU" + - option "PICU Stepdown" + - option "Pediatric Ward" + - option "Recovery" + - option "Stepdown 3-4" + - option "Surgical Wards" + - generic [ref=e169]: + - generic [ref=e170]: Department Category * + - combobox [ref=e171]: + - option "Select Category" [selected] + - option "Medical" + - option "Nursing" + - option "Administrative" + - option "Support Services" + - generic [ref=e172]: + - generic [ref=e173]: Department (Optional) + - combobox "Department (Optional)" [ref=e174]: + - option "Select Department" [selected] + - option "Anesthesia Department" + - option "Biomedical Department" + - option "Contact Center Department" + - option "Critical Care Department" + - option "Dental Department" + - option "Dermatology Department" + - option "E2E Dept 1781720032405" + - option "E2E Dept 1781720188555" + - option "Emergency Administrative Department" + - option "Emergency Medicine Department" + - option "Executive Administration" + - option "Facility Management & Maintenance Department" + - option "Financial Collection & Claims Department" + - option "Food Services Department" + - option "Housekeeping & Hospitality Department" + - option "IVF" + - option "Infection Control Department" + - option "Information Technology Department" + - option "Inpatient Department" + - option "Internal Medicine Department" + - option "Laboratory Department" + - option "Laundry Department" + - option "Medical Administration" + - option "Medical Ancillary Services Department" + - option "Medical Approvals Department" + - option "Medical Records Department" + - option "Nursing Department" + - option "ONCOLOGY Department" + - option "Obstetrics & Gynecology Department" + - option "Operating Rooms (OR) Department" + - option "Ophthalmology Department" + - option "Outpatient Department" + - option "Patient Affairs Department" + - option "Patient Experience Department" + - option "Pediatric Department" + - option "Pharmacy Department" + - option "Radiology Department" + - option "Security Department" + - option "Surgery Department" + - generic [ref=e175]: + - generic [ref=e176]: Section + - combobox "Section" [ref=e177]: + - option "Select Section" [selected] + - generic [ref=e178]: + - heading "Contact Information" [level=6] [ref=e179]: + - img [ref=e180] + - text: Contact Information + - generic [ref=e183]: + - generic [ref=e184]: + - generic [ref=e185]: Contact Name * + - textbox "Contact Name *" [ref=e186]: Test User + - generic [ref=e187]: + - generic [ref=e188]: Contact Phone * + - textbox "Contact Phone *" [ref=e189]: "+966501234567" + - generic [ref=e190]: + - generic [ref=e191]: Contact Email + - textbox "Contact Email" [ref=e192] + - generic [ref=e193]: + - heading "Inquiry Details" [level=6] [ref=e194]: + - img [ref=e195] + - text: Inquiry Details + - generic [ref=e198]: + - generic [ref=e199]: + - generic [ref=e200]: Inquiry Type * + - combobox "Inquiry Type *" [ref=e201]: + - option "General Inquiry" + - option "Appointment Related" [selected] + - option "Billing & Insurance" + - option "Medical Records" + - option "Pharmacy" + - option "Insurance" + - option "Feedback" + - option "Other" + - generic [ref=e202]: + - generic [ref=e203]: Priority + - combobox "Priority" [ref=e204]: + - option "Low" + - option "Medium" [selected] + - option "High" + - option "Critical" + - generic [ref=e205]: + - generic [ref=e206]: Subject * + - textbox "Subject *" [ref=e207]: + - /placeholder: Brief subject + - text: Playwright Test Inquiry + - generic [ref=e208]: + - generic [ref=e209]: Message * + - textbox "Message *" [ref=e210]: + - /placeholder: Describe your inquiry + - text: This is a test inquiry created by Playwright to verify px-employee access. + - generic [ref=e211]: + - button "Create Inquiry" [ref=e212] [cursor=pointer]: + - img [ref=e213] + - text: Create Inquiry + - link "Cancel" [ref=e216] [cursor=pointer]: + - /url: /inquiries/ + - contentinfo [ref=e217]: + - paragraph [ref=e218]: + - text: Powered by + - link "tenhal.sa" [ref=e219] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-40-03-758Z.yml b/.playwright-cli/page-2026-07-12T20-40-03-758Z.yml new file mode 100644 index 0000000..00ab721 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-40-03-758Z.yml @@ -0,0 +1,39 @@ +- generic [ref=e3]: + - generic [ref=e4]: + - img "HH Logo" [ref=e6] + - heading "Welcome to PX360" [level=1] [ref=e7] + - paragraph [ref=e8]: Patient Experience Management System + - generic [ref=e10]: + - generic [ref=e11]: + - generic [ref=e12]: + - img [ref=e13] + - text: Email Address + - generic [ref=e16]: + - img [ref=e17] + - textbox "Email Address" [active] [ref=e20]: + - /placeholder: Enter your email + - generic [ref=e21]: + - generic [ref=e22]: + - img [ref=e23] + - text: Password + - generic [ref=e26]: + - img [ref=e27] + - textbox "Password" [ref=e31]: + - /placeholder: Enter your password + - button [ref=e32] [cursor=pointer]: + - img [ref=e33] + - generic [ref=e36]: + - generic [ref=e37] [cursor=pointer]: + - checkbox "Remember me" [ref=e38] + - generic [ref=e39]: Remember me + - link "Forgot password?" [ref=e40] [cursor=pointer]: + - /url: /accounts/password/reset/ + - button "Sign In" [ref=e41] [cursor=pointer]: + - img [ref=e42] + - text: Sign In + - generic [ref=e45]: + - paragraph [ref=e46]: + - text: Secure login powered by + - link "tenhal.sa" [ref=e47] [cursor=pointer]: + - /url: https://tenhal.sa + - paragraph [ref=e48]: © 2026 Al Hammadi Hospital \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-40-08-887Z.yml b/.playwright-cli/page-2026-07-12T20-40-08-887Z.yml new file mode 100644 index 0000000..2dc8a26 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-40-08-887Z.yml @@ -0,0 +1,350 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e139]: + - generic [ref=e140]: + - link "Departments" [ref=e141] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e142] + - generic [ref=e144]: Contact Center Department + - generic [ref=e147]: + - generic [ref=e148]: + - img [ref=e150] + - generic [ref=e154]: + - heading "Contact Center Department" [level=1] [ref=e155] + - paragraph [ref=e156]: قسم مركز الاتصال + - generic [ref=e157]: + - generic [ref=e158]: + - img [ref=e159] + - text: hh_n_contact_center_department + - generic [ref=e162]: Administrative + - generic [ref=e163]: + - img [ref=e164] + - text: E2E Test Hospital + - generic [ref=e168]: + - generic [ref=e170]: + - img [ref=e172] + - generic [ref=e177]: + - paragraph [ref=e178]: Staff + - paragraph [ref=e179]: "4" + - link "Open Complaints 3 3 total" [ref=e180] [cursor=pointer]: + - /url: /organizations/departments/d810102c-d14a-4661-8672-6ef85a77fc8f/complaints/?status=open + - generic [ref=e181]: + - img [ref=e183] + - generic [ref=e186]: + - paragraph [ref=e187]: Open Complaints + - paragraph [ref=e188]: "3" + - paragraph [ref=e189]: 3 total + - link "Pending Inquiries 0 2 total" [ref=e190] [cursor=pointer]: + - /url: /organizations/departments/d810102c-d14a-4661-8672-6ef85a77fc8f/inquiries/?status=open + - generic [ref=e191]: + - img [ref=e193] + - generic [ref=e196]: + - paragraph [ref=e197]: Pending Inquiries + - paragraph [ref=e198]: "0" + - paragraph [ref=e199]: 2 total + - link "Open Observations 1 1 total" [ref=e200] [cursor=pointer]: + - /url: /organizations/departments/d810102c-d14a-4661-8672-6ef85a77fc8f/observations/?status=open + - generic [ref=e201]: + - img [ref=e203] + - generic [ref=e206]: + - paragraph [ref=e207]: Open Observations + - paragraph [ref=e208]: "1" + - paragraph [ref=e209]: 1 total + - generic [ref=e210]: + - generic [ref=e211]: + - img [ref=e213] + - generic [ref=e215]: + - heading "Pending Actions" [level=3] [ref=e216] + - paragraph [ref=e217]: 3 items awaiting response + - table [ref=e219]: + - rowgroup [ref=e220]: + - row "Type Reference Subject SLA Deadline Action" [ref=e221]: + - columnheader "Type" [ref=e222] + - columnheader "Reference" [ref=e223] + - columnheader "Subject" [ref=e224] + - columnheader "SLA Deadline" [ref=e225] + - columnheader "Action" [ref=e226] + - rowgroup [ref=e227]: + - row "Complaint Response CMP-202607-0006 Test Complaint - Analysis Required - Respond" [ref=e228]: + - cell "Complaint Response" [ref=e229]: + - generic [ref=e230]: Complaint Response + - cell "CMP-202607-0006" [ref=e231] + - cell "Test Complaint - Analysis Required" [ref=e232] + - cell "-" [ref=e233] + - cell "Respond" [ref=e234]: + - link "Respond" [ref=e236] [cursor=pointer]: + - /url: /complaints/f8aa6216-bb94-455e-ba18-d16a01024662/explain/dM0ilaUpzA1OuAceyjvwV9oxYA0geW_jsgipvrYUt_g/ + - img [ref=e237] + - text: Respond + - row "Complaint Explanation CMP-202607-0005 Test Complaint - No Details - Respond" [ref=e239]: + - cell "Complaint Explanation" [ref=e240]: + - generic [ref=e241]: Complaint Explanation + - cell "CMP-202607-0005" [ref=e242] + - cell "Test Complaint - No Details" [ref=e243] + - cell "-" [ref=e244] + - cell "Respond" [ref=e245]: + - link "Respond" [ref=e247] [cursor=pointer]: + - /url: /complaints/9ca01d52-712d-4bca-b30d-6f1f818ff839/explain/iBIf0PrMq1RZYSEIDxSn4WZik4PFk6dunoNwarFTnXI/ + - img [ref=e248] + - text: Respond + - row "Complaint Explanation CMP-202607-0005 Test Complaint - No Details - Respond" [ref=e252]: + - cell "Complaint Explanation" [ref=e253]: + - generic [ref=e254]: Complaint Explanation + - cell "CMP-202607-0005" [ref=e255] + - cell "Test Complaint - No Details" [ref=e256] + - cell "-" [ref=e257] + - cell "Respond" [ref=e258]: + - link "Respond" [ref=e260] [cursor=pointer]: + - /url: /complaints/9ca01d52-712d-4bca-b30d-6f1f818ff839/explain/X1Zd54Tb1NcExZeRr6ACN5RtPCwB_RTKeqNeFcVP24E/ + - img [ref=e261] + - text: Respond + - generic [ref=e266]: + - button "Dashboard" [ref=e267] [cursor=pointer]: + - img [ref=e268] + - text: Dashboard + - button "Staff (4)" [ref=e270] [cursor=pointer]: + - img [ref=e271] + - text: Staff (4) + - button "Roles" [ref=e276] [cursor=pointer]: + - img [ref=e277] + - text: Roles + - button "Sections (2)" [ref=e289] [cursor=pointer]: + - img [ref=e290] + - text: Sections (2) + - button "Complaints (3)" [ref=e294] [cursor=pointer]: + - img [ref=e295] + - text: Complaints (3) + - button "Inquiries (2)" [ref=e298] [cursor=pointer]: + - img [ref=e299] + - text: Inquiries (2) + - button "Observations (1)" [ref=e302] [cursor=pointer]: + - img [ref=e303] + - text: Observations (1) + - button "Suggestions (1)" [ref=e306] [cursor=pointer]: + - img [ref=e307] + - text: Suggestions (1) + - button "Appreciations (2)" [ref=e309] [cursor=pointer]: + - img [ref=e310] + - text: Appreciations (2) + - button "Standards (0)" [ref=e312] [cursor=pointer]: + - img [ref=e313] + - text: Standards (0) + - button "Projects (8)" [ref=e316] [cursor=pointer]: + - img [ref=e317] + - text: Projects (8) + - generic [ref=e321]: + - generic [ref=e322]: + - generic [ref=e323]: + - paragraph [ref=e324]: Avg Physician Rating + - paragraph [ref=e325]: "0.0" + - paragraph [ref=e326]: out of 5.0 + - generic [ref=e327]: + - paragraph [ref=e328]: Resolution Rate + - paragraph [ref=e329]: 0% + - paragraph [ref=e330]: 3 total + - generic [ref=e331]: + - paragraph [ref=e332]: Open Actions + - paragraph [ref=e333]: "3" + - paragraph [ref=e334]: PX actions pending + - generic [ref=e335]: + - paragraph [ref=e336]: Satisfaction Rate + - paragraph [ref=e337]: 0% + - paragraph [ref=e338]: resolution satisfaction + - generic [ref=e339]: + - paragraph [ref=e340]: Reopened + - paragraph [ref=e341]: "0" + - paragraph [ref=e342]: reopened complaints + - generic [ref=e343]: + - paragraph [ref=e344]: Reassigned + - paragraph [ref=e345]: "5" + - paragraph [ref=e346]: reassigned complaints + - generic [ref=e347]: + - generic [ref=e348]: + - heading "Complaint Trend" [level=4] [ref=e349] + - generic [ref=e351]: + - application "area chart with 1 data series" [ref=e352]: + - generic [ref=e355]: + - generic "4" [ref=e356] + - generic "3.5" [ref=e357] + - generic "3" [ref=e358] + - generic "2.5" [ref=e359] + - generic "2" [ref=e360] + - generic [ref=e361]: + - generic [ref=e365]: + - generic: + - generic: + - generic: "3" + - generic "2026-07" [ref=e371] + - tooltip: ● + - generic [ref=e372]: + - heading "Physician Rating Trend" [level=4] [ref=e373] + - paragraph [ref=e375]: No physician rating data + - generic [ref=e376]: + - heading "Complaint Status" [level=4] [ref=e377] + - generic [ref=e379]: + - application "donut chart with 1 data series" [ref=e380]: + - generic [ref=e386]: + - generic: + - generic: 100.0% + - button "In Progress, visible. Press Enter or Space to toggle." [ref=e390] [cursor=pointer]: + - generic [ref=e391]: + - img + - generic [ref=e392]: In Progress + - text: ● + - generic [ref=e393]: + - heading "Actions Overview" [level=4] [ref=e394] + - generic [ref=e396]: + - application "donut chart with 2 data series" [ref=e397]: + - generic [ref=e403]: + - generic: + - generic: 66.7% + - generic: + - generic: 33.3% + - generic [ref=e406]: + - button "In Progress, visible. Press Enter or Space to toggle." [ref=e407] [cursor=pointer]: + - generic [ref=e408]: + - img + - generic [ref=e409]: In Progress + - button "Open, visible. Press Enter or Space to toggle." [ref=e410] [cursor=pointer]: + - generic [ref=e411]: + - img + - generic [ref=e412]: Open + - text: ● ● + - generic [ref=e413]: + - heading "Complaint Severity" [level=4] [ref=e414] + - generic [ref=e416]: + - application "bar chart with 1 data series" [ref=e417]: + - generic [ref=e420]: + - generic "2" [ref=e421] + - generic "1.5" [ref=e422] + - generic "1" [ref=e423] + - generic "0.5" [ref=e424] + - generic "0" [ref=e425] + - generic [ref=e426]: + - generic [ref=e430]: + - generic: + - generic: + - generic: "2" + - generic: + - generic: "1" + - generic [ref=e435]: + - generic "Low" [ref=e436] + - generic "Medium" [ref=e437] + - tooltip: ● + - generic [ref=e438]: + - heading "Satisfaction Distribution" [level=4] [ref=e439] + - paragraph [ref=e441]: No satisfaction data + - generic [ref=e442]: + - heading "Top Physicians" [level=4] [ref=e443] + - paragraph [ref=e445]: No physician data + - generic [ref=e446]: + - heading "Top Categories" [level=4] [ref=e447] + - generic [ref=e449]: + - application "bar chart with 1 data series" [ref=e450]: + - generic [ref=e452]: + - generic [ref=e455]: + - generic: + - generic: + - generic: "3" + - generic "Institutional Issues" [ref=e460] + - generic [ref=e462]: + - generic "3.0" [ref=e463] + - generic "2.5" [ref=e464] + - generic "2.0" [ref=e465] + - generic "1.5" [ref=e466] + - generic "1.0" [ref=e467] + - generic "0.5" [ref=e468] + - generic "0.0" [ref=e469] + - tooltip: ● + - contentinfo [ref=e470]: + - paragraph [ref=e471]: + - text: Powered by + - link "tenhal.sa" [ref=e472] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-40-21-782Z.yml b/.playwright-cli/page-2026-07-12T20-40-21-782Z.yml new file mode 100644 index 0000000..1f12389 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-40-21-782Z.yml @@ -0,0 +1,258 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e140]: + - generic [ref=e141]: + - heading "Inquiries Console" [level=1] [ref=e142] + - paragraph [ref=e143]: Manage patient inquiries and requests + - link "New Inquiry" [ref=e144] [cursor=pointer]: + - /url: /inquiries/new/ + - img [ref=e145] + - text: New Inquiry + - generic [ref=e146]: + - generic [ref=e147]: + - img [ref=e150] + - generic [ref=e153]: + - heading "Total Inquiries" [level=6] [ref=e154] + - heading "5" [level=2] [ref=e155] + - generic [ref=e156]: + - img [ref=e159] + - generic [ref=e162]: + - heading "Resolved" [level=6] [ref=e163] + - heading "2 (40.0%)" [level=2] [ref=e164] + - generic [ref=e165]: + - img [ref=e168] + - generic [ref=e171]: + - heading "In Progress" [level=6] [ref=e172] + - heading "1" [level=2] [ref=e173] + - generic [ref=e174]: + - img [ref=e177] + - generic [ref=e179]: + - heading "Overdue" [level=6] [ref=e180] + - heading "0" [level=2] [ref=e181] + - generic [ref=e182]: + - generic [ref=e183]: + - img [ref=e185] + - heading "Filters" [level=5] [ref=e186] + - generic [ref=e188]: + - generic [ref=e189]: + - generic [ref=e190]: Search + - textbox "Subject, contact name..." [ref=e191] + - generic [ref=e192]: + - generic [ref=e193]: Status + - combobox [ref=e194]: + - option "All Status" [selected] + - option "Open" + - option "In Progress" + - option "Resolved" + - option "Closed" + - generic [ref=e195]: + - generic [ref=e196]: Category + - combobox [ref=e197]: + - option "All Categories" [selected] + - option "General" + - option "Appointments" + - option "Billing" + - option "Medical Records" + - option "Pharmacy" + - option "Insurance" + - option "Feedback" + - option "Other" + - button "Filter" [ref=e198] [cursor=pointer]: + - img [ref=e199] + - text: Filter + - generic [ref=e202]: + - generic [ref=e203]: + - generic [ref=e204]: + - img [ref=e206] + - heading "All Inquiries" [level=5] [ref=e209] + - generic [ref=e210]: "Total: 5" + - paragraph [ref=e211]: "Showing: 1-5 of 5" + - generic [ref=e212]: + - table [ref=e213]: + - rowgroup [ref=e214]: + - row "Reference Subject Contact Category Status Priority Created Assigned" [ref=e215]: + - columnheader "Reference" [ref=e216] + - columnheader "Subject" [ref=e217] + - columnheader "Contact" [ref=e218] + - columnheader "Category" [ref=e219] + - columnheader "Status" [ref=e220] + - columnheader "Priority" [ref=e221] + - columnheader "Created" [ref=e222] + - columnheader "Assigned" [ref=e223] + - rowgroup [ref=e224]: + - row "INQ-202607-0007 test12121212 ismail mosa 0569874563 General Information Open Medium Jul 12, 2026 Unassigned" [ref=e225] [cursor=pointer]: + - cell "INQ-202607-0007" [ref=e226]: + - code [ref=e227]: INQ-202607-0007 + - cell "test12121212" [ref=e228]: + - link "test12121212" [ref=e229]: + - /url: /inquiries/b4a65498-e8d8-403c-82bb-ae09adc7fc1c/ + - cell "ismail mosa 0569874563" [ref=e230]: + - generic [ref=e231]: ismail mosa + - generic [ref=e232]: "0569874563" + - cell "General Information" [ref=e233] + - cell "Open" [ref=e234] + - cell "Medium" [ref=e235] + - cell "Jul 12, 2026" [ref=e236] + - cell "Unassigned" [ref=e237] + - row "INQ-202607-0006 test12121212 test 0569874563 General Information Open Medium Jul 12, 2026 Unassigned" [ref=e238] [cursor=pointer]: + - cell "INQ-202607-0006" [ref=e239]: + - code [ref=e240]: INQ-202607-0006 + - cell "test12121212" [ref=e241]: + - link "test12121212" [ref=e242]: + - /url: /inquiries/1c3eda08-ff03-4521-bcb8-ec137c79b417/ + - cell "test 0569874563" [ref=e243]: + - generic [ref=e244]: test + - generic [ref=e245]: "0569874563" + - cell "General Information" [ref=e246] + - cell "Open" [ref=e247] + - cell "Medium" [ref=e248] + - cell "Jul 12, 2026" [ref=e249] + - cell "Unassigned" [ref=e250] + - row "INQ-202607-0005 test test 0569874589 General Information In Progress Medium Jul 09, 2026 Unassigned" [ref=e251] [cursor=pointer]: + - cell "INQ-202607-0005" [ref=e252]: + - code [ref=e253]: INQ-202607-0005 + - cell "test" [ref=e254]: + - link "test" [ref=e255]: + - /url: /inquiries/c05309c2-3518-46ae-9b1c-c144acdb5d58/ + - cell "test 0569874589" [ref=e256]: + - generic [ref=e257]: test + - generic [ref=e258]: "0569874589" + - cell "General Information" [ref=e259] + - cell "In Progress" [ref=e260] + - cell "Medium" [ref=e261] + - cell "Jul 09, 2026" [ref=e262] + - cell "Unassigned" [ref=e263] + - row "INQ-202607-0004 hi ismail 0569874589 General Information Resolved Medium Jul 09, 2026 ismail mosa" [ref=e264] [cursor=pointer]: + - cell "INQ-202607-0004" [ref=e265]: + - code [ref=e266]: INQ-202607-0004 + - cell "hi" [ref=e267]: + - link "hi" [ref=e268]: + - /url: /inquiries/d1df0b83-5c16-4f51-b735-e89f612deb50/ + - cell "ismail 0569874589" [ref=e269]: + - generic [ref=e270]: ismail + - generic [ref=e271]: "0569874589" + - cell "General Information" [ref=e272] + - cell "Resolved" [ref=e273] + - cell "Medium" [ref=e274] + - cell "Jul 09, 2026" [ref=e275] + - cell "ismail mosa" [ref=e276] + - row "INQ-202607-0003 test test 0569874589 General Information Resolved Medium Jul 08, 2026 ismail mosa" [ref=e277] [cursor=pointer]: + - cell "INQ-202607-0003" [ref=e278]: + - code [ref=e279]: INQ-202607-0003 + - cell "test" [ref=e280]: + - link "test" [ref=e281]: + - /url: /inquiries/031cbd06-e2dc-4cd9-9b81-b1218e090d6c/ + - cell "test 0569874589" [ref=e282]: + - generic [ref=e283]: test + - generic [ref=e284]: "0569874589" + - cell "General Information" [ref=e285] + - cell "Resolved" [ref=e286] + - cell "Medium" [ref=e287] + - cell "Jul 08, 2026" [ref=e288] + - cell "ismail mosa" [ref=e289] + - generic [ref=e290]: + - generic [ref=e291]: + - generic [ref=e292]: Showing 1-5 of 5 + - generic [ref=e293]: + - generic [ref=e294]: Show + - combobox [ref=e295]: + - option "10" + - option "25" [selected] + - option "50" + - option "100" + - generic [ref=e296]: + - img [ref=e298] + - generic [ref=e300]: "1" + - img [ref=e302] + - contentinfo [ref=e304]: + - paragraph [ref=e305]: + - text: Powered by + - link "tenhal.sa" [ref=e306] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-40-22-923Z.yml b/.playwright-cli/page-2026-07-12T20-40-22-923Z.yml new file mode 100644 index 0000000..f34d18f --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-40-22-923Z.yml @@ -0,0 +1,243 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e140]: + - generic [ref=e141]: + - heading "Complaints Registry" [level=1] [ref=e142] + - paragraph [ref=e143]: Manage and monitor patient feedback in real-time + - generic [ref=e144]: + - generic [ref=e145]: + - img [ref=e146] + - textbox "Search ID, Name or Dept..." [ref=e149] + - link "Public Form" [ref=e150] [cursor=pointer]: + - /url: /core/public/submit/ + - img [ref=e151] + - text: Public Form + - button "Export" [ref=e155] [cursor=pointer]: + - img [ref=e156] + - text: Export + - link "New Case" [ref=e159] [cursor=pointer]: + - /url: /complaints/new/ + - img [ref=e160] + - text: New Case + - generic [ref=e161]: + - generic [ref=e162]: + - img [ref=e165] + - generic [ref=e169]: + - heading "Total Received" [level=6] [ref=e170] + - heading "3" [level=2] [ref=e171] + - generic [ref=e172]: + - img [ref=e175] + - generic [ref=e178]: + - heading "Resolved" [level=6] [ref=e179] + - heading "0 (0.0%)" [level=2] [ref=e180] + - generic [ref=e181]: + - img [ref=e184] + - generic [ref=e187]: + - heading "Pending" [level=6] [ref=e188] + - heading "3 (100.0%)" [level=2] [ref=e189] + - generic [ref=e190]: + - img [ref=e193] + - generic [ref=e195]: + - heading "TAT Alert" [level=6] [ref=e196] + - heading "3 (100.0%)" [level=2] [ref=e197] + - generic [ref=e198]: + - generic [ref=e199]: + - generic [ref=e200]: + - img [ref=e202] + - heading "Complaints" [level=5] [ref=e204] + - generic [ref=e205]: + - link "All Cases" [ref=e206] [cursor=pointer]: + - /url: "?" + - link "Pending" [ref=e207] [cursor=pointer]: + - /url: "?status=open" + - link "In Progress" [ref=e208] [cursor=pointer]: + - /url: "?status=in_progress" + - link "Resolved" [ref=e209] [cursor=pointer]: + - /url: "?status=resolved" + - button "Advanced" [ref=e211] [cursor=pointer]: + - img [ref=e212] + - text: Advanced + - paragraph [ref=e213]: "Showing: 1-3 of 3" + - generic [ref=e214]: + - table [ref=e215]: + - rowgroup [ref=e216]: + - row "Complaint ID Patient Name Description Source Department Status SLA Severity Priority Assigned Actions" [ref=e217]: + - columnheader "Complaint ID" [ref=e218] + - columnheader "Patient Name" [ref=e219] + - columnheader "Description" [ref=e220] + - columnheader "Source" [ref=e221] + - columnheader "Department" [ref=e222] + - columnheader "Status" [ref=e223] + - columnheader "SLA" [ref=e224] + - columnheader "Severity" [ref=e225] + - columnheader "Priority" [ref=e226] + - columnheader "Assigned" [ref=e227] + - columnheader "Actions" [ref=e228] + - rowgroup [ref=e229]: + - row "CMP-202607-0006 test شكوى عامة Patient Patient Experience Department In Progress Overdue 21h 46m Medium Medium test test" [ref=e230] [cursor=pointer]: + - cell "CMP-202607-0006" [ref=e231] + - cell "test" [ref=e232]: + - generic [ref=e233]: test + - cell "شكوى عامة" [ref=e234]: + - generic [ref=e235]: شكوى عامة + - button "View description" [ref=e236]: + - img [ref=e237] + - cell "Patient" [ref=e246] + - cell "Patient Experience Department" [ref=e247] + - cell "In Progress" [ref=e248] + - cell "Overdue 21h 46m" [ref=e249] + - cell "Medium" [ref=e250] + - cell "Medium" [ref=e251] + - cell "test test" [ref=e252] + - cell [ref=e253]: + - generic [ref=e254]: + - link "View" [ref=e255]: + - /url: /complaints/f8aa6216-bb94-455e-ba18-d16a01024662/ + - img [ref=e256] + - link "Assign" [ref=e259]: + - /url: /complaints/f8aa6216-bb94-455e-ba18-d16a01024662/assign/ + - img [ref=e260] + - row "CMP-202607-0005 ismail شكوى اختبار Patient Contact Center Department In Progress Overdue 23h 22m Low Low test test" [ref=e263] [cursor=pointer]: + - cell "CMP-202607-0005" [ref=e264] + - cell "ismail" [ref=e265]: + - generic [ref=e266]: ismail + - cell "شكوى اختبار" [ref=e267]: + - generic [ref=e268]: شكوى اختبار + - button "View description" [ref=e269]: + - img [ref=e270] + - cell "Patient" [ref=e279] + - cell "Contact Center Department" [ref=e280] + - cell "In Progress" [ref=e281] + - cell "Overdue 23h 22m" [ref=e282] + - cell "Low" [ref=e283] + - cell "Low" [ref=e284] + - cell "test test" [ref=e285] + - cell [ref=e286]: + - link "View" [ref=e288]: + - /url: /complaints/9ca01d52-712d-4bca-b30d-6f1f818ff839/ + - img [ref=e289] + - row "CMP-202607-0004 OVR ismail اختبار عام Internal Contact Center Department In Progress Overdue 4d 7h 22m Low Low ismail mosa" [ref=e292] [cursor=pointer]: + - cell "CMP-202607-0004 OVR" [ref=e293] + - cell "ismail" [ref=e294]: + - generic [ref=e295]: ismail + - cell "اختبار عام" [ref=e296]: + - generic [ref=e297]: اختبار عام + - button "View description" [ref=e298]: + - img [ref=e299] + - cell "Internal" [ref=e308] + - cell "Contact Center Department" [ref=e309] + - cell "In Progress" [ref=e310] + - cell "Overdue 4d 7h 22m" [ref=e311] + - cell "Low" [ref=e312] + - cell "Low" [ref=e313] + - cell "ismail mosa" [ref=e314] + - cell [ref=e315]: + - link "View" [ref=e317]: + - /url: /complaints/1c4e8dde-48d8-42ab-8c8d-4ada8314fc40/ + - img [ref=e318] + - generic [ref=e321]: + - generic [ref=e322]: + - generic [ref=e323]: Showing 1-3 of 3 + - generic [ref=e324]: + - generic [ref=e325]: Show + - combobox [ref=e326]: + - option "10" + - option "25" [selected] + - option "50" + - option "100" + - generic [ref=e327]: + - img [ref=e329] + - generic [ref=e331]: "1" + - img [ref=e333] + - contentinfo [ref=e335]: + - paragraph [ref=e336]: + - text: Powered by + - link "tenhal.sa" [ref=e337] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-40-24-046Z.yml b/.playwright-cli/page-2026-07-12T20-40-24-046Z.yml new file mode 100644 index 0000000..8f4ebf2 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-40-24-046Z.yml @@ -0,0 +1,344 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e140]: + - generic [ref=e141]: + - heading "Observations" [level=1] [ref=e142]: + - img [ref=e143] + - text: Observations + - paragraph [ref=e146]: Manage and triage staff-reported observations + - generic [ref=e147]: + - link "New Observation" [ref=e148] [cursor=pointer]: + - /url: /observations/create/ + - img [ref=e149] + - text: New Observation + - link "Public Form" [ref=e151] [cursor=pointer]: + - /url: /core/public/submit/ + - img [ref=e152] + - text: Public Form + - generic [ref=e153]: + - generic [ref=e155]: + - generic [ref=e156]: + - paragraph [ref=e157]: Total + - paragraph [ref=e158]: "2" + - img [ref=e160] + - generic [ref=e162]: + - generic [ref=e163]: + - paragraph [ref=e164]: New + - paragraph + - img [ref=e166] + - generic [ref=e170]: + - generic [ref=e171]: + - paragraph [ref=e172]: In Progress + - paragraph [ref=e173]: "2" + - img [ref=e175] + - generic [ref=e178]: + - generic [ref=e179]: + - img [ref=e181] + - heading "Filters" [level=5] [ref=e183] + - button [ref=e184] [cursor=pointer]: + - img [ref=e185] + - generic [ref=e188]: + - generic [ref=e189]: + - generic [ref=e190]: + - generic [ref=e191]: Search + - textbox "Tracking code, description..." [ref=e192] + - generic [ref=e193]: + - generic [ref=e194]: Status + - combobox [ref=e195]: + - option "All Statuses" [selected] + - option "Open" + - option "In Progress" + - option "Resolved" + - option "Closed" + - generic [ref=e196]: + - generic [ref=e197]: Severity + - combobox [ref=e198]: + - option "All Severities" [selected] + - option "Low" + - option "Medium" + - option "High" + - option "Critical" + - generic [ref=e199]: + - generic [ref=e200]: Category + - combobox [ref=e201]: + - option "All Categories" [selected] + - option "Patient Safety" + - option "Clinical Quality" + - option "Infection Control" + - option "Medication Safety" + - option "Equipment & Devices" + - option "Facility & Environment" + - option "Staff Behavior" + - option "Communication" + - option "Documentation" + - option "Process & Workflow" + - option "Security" + - option "IT & Systems" + - option "Housekeeping" + - option "Food Services" + - option "Other" + - generic [ref=e202]: + - generic [ref=e203]: Department + - combobox [ref=e204]: + - option "All Departments" [selected] + - option "Contact Center Department" + - option "Emergency Administrative Department" + - option "Executive Administration" + - option "Financial Collection & Claims Department" + - option "Inpatient Department" + - option "Medical Approvals Department" + - option "Medical Records Department" + - option "Outpatient Department" + - option "Patient Affairs Department" + - option "Patient Experience Department" + - option "Security Department" + - option "Anesthesia Department" + - option "Critical Care Department" + - option "Dental Department" + - option "Dermatology Department" + - option "Emergency Medicine Department" + - option "IVF" + - option "Infection Control Department" + - option "Internal Medicine Department" + - option "Laboratory Department" + - option "Medical Administration" + - option "Medical Ancillary Services Department" + - option "ONCOLOGY Department" + - option "Obstetrics & Gynecology Department" + - option "Operating Rooms (OR) Department" + - option "Ophthalmology Department" + - option "Pediatric Department" + - option "Pharmacy Department" + - option "Radiology Department" + - option "Surgery Department" + - option "E2E Dept 1781720032405" + - option "E2E Dept 1781720188555" + - option "Nursing Department" + - option "Biomedical Department" + - option "Facility Management & Maintenance Department" + - option "Food Services Department" + - option "Housekeeping & Hospitality Department" + - option "Information Technology Department" + - option "Laundry Department" + - generic [ref=e206] [cursor=pointer]: + - generic [ref=e207]: All Departments + - combobox "All Departments" [ref=e208] + - generic [ref=e209]: + - generic [ref=e210]: Assigned To + - combobox [ref=e211]: + - option "All Users" [selected] + - option "E2E PX Employee" + - option "test test" + - option "test test" + - generic [ref=e212]: + - generic [ref=e213]: Date From + - textbox [ref=e214] + - generic [ref=e215]: + - generic [ref=e216]: Date To + - textbox [ref=e217] + - generic [ref=e218]: + - button "Apply Filters" [ref=e219] [cursor=pointer]: + - img [ref=e220] + - text: Apply Filters + - link "Clear" [ref=e223] [cursor=pointer]: + - /url: /observations/ + - img [ref=e224] + - text: Clear + - generic [ref=e229]: + - img [ref=e231] + - heading "Observations List" [level=5] [ref=e233] + - generic [ref=e234]: Showing 1 to 4 of 4 observations + - table [ref=e237]: + - rowgroup [ref=e238]: + - row "Reference Date Category Description Severity Status Reporter Department Assigned Actions" [ref=e239]: + - columnheader "Reference" [ref=e240] + - columnheader "Date" [ref=e241] + - columnheader "Category" [ref=e242] + - columnheader "Description" [ref=e243] + - columnheader "Severity" [ref=e244] + - columnheader "Status" [ref=e245] + - columnheader "Reporter" [ref=e246] + - columnheader "Department" [ref=e247] + - columnheader "Assigned" [ref=e248] + - columnheader "Actions" [ref=e249] + - rowgroup [ref=e250]: + - row "OBS-202607-0001 Jul 08, 2026 16:33 - test observation Medium In Progress ismail mosa Contact Center Department ismail mosa" [ref=e251]: + - cell "OBS-202607-0001" [ref=e252] + - cell "Jul 08, 2026 16:33" [ref=e253]: + - text: Jul 08, 2026 + - text: 16:33 + - cell "-" [ref=e254] + - cell "test observation" [ref=e255]: + - generic [ref=e256]: test observation + - cell "Medium" [ref=e257] + - cell "In Progress" [ref=e258] + - cell "ismail mosa" [ref=e259] + - cell "Contact Center Department" [ref=e260] + - cell "ismail mosa" [ref=e261] + - cell [ref=e262]: + - link [ref=e263] [cursor=pointer]: + - /url: /observations/1d925706-110e-4bad-808f-26aae2029144/ + - img [ref=e264] + - row "OBS-202606-E2EHOSP-0056 Jun 22, 2026 10:16 Other Observation i notice some trash in the hall Medium In Progress E2E PX Admin Contact Center Department E2E PX Admin" [ref=e267]: + - cell "OBS-202606-E2EHOSP-0056" [ref=e268] + - cell "Jun 22, 2026 10:16" [ref=e269]: + - text: Jun 22, 2026 + - text: 10:16 + - cell "Other" [ref=e270]: + - generic [ref=e271]: Other + - cell "Observation i notice some trash in the hall" [ref=e272]: + - generic [ref=e273]: + - strong [ref=e274]: Observation + - text: i notice some trash in the hall + - cell "Medium" [ref=e275] + - cell "In Progress" [ref=e276] + - cell "E2E PX Admin" [ref=e277] + - cell "Contact Center Department" [ref=e278] + - cell "E2E PX Admin" [ref=e279] + - cell [ref=e280]: + - link [ref=e281] [cursor=pointer]: + - /url: /observations/b9a80c99-31dc-4cda-a1e3-c20d94a28729/ + - img [ref=e282] + - row "OBS-O8TCIC Jun 09, 2026 13:36 - Wet floor near the main entrance, no warning sign posted. Medium In Progress Anonymous Reporter - ismail mosa" [ref=e285]: + - cell "OBS-O8TCIC" [ref=e286] + - cell "Jun 09, 2026 13:36" [ref=e287]: + - text: Jun 09, 2026 + - text: 13:36 + - cell "-" [ref=e288] + - cell "Wet floor near the main entrance, no warning sign posted." [ref=e289]: + - generic [ref=e290]: Wet floor near the main entrance, no warning sign posted. + - cell "Medium" [ref=e291] + - cell "In Progress" [ref=e292] + - cell "Anonymous Reporter" [ref=e293] + - cell "-" [ref=e294] + - cell "ismail mosa" [ref=e295] + - cell [ref=e296]: + - link [ref=e297] [cursor=pointer]: + - /url: /observations/5f8fc6c6-3b38-4b88-8144-3f926c24e290/ + - img [ref=e298] + - row "OBS-QPE02F Jun 07, 2026 21:08 Other Observation safsafsad Medium Open ismail Daif - Unassigned" [ref=e301]: + - cell "OBS-QPE02F" [ref=e302] + - cell "Jun 07, 2026 21:08" [ref=e303]: + - text: Jun 07, 2026 + - text: 21:08 + - cell "Other" [ref=e304]: + - generic [ref=e305]: Other + - cell "Observation safsafsad" [ref=e306]: + - generic [ref=e307]: + - strong [ref=e308]: Observation + - text: safsafsad + - cell "Medium" [ref=e309] + - cell "Open" [ref=e310] + - cell "ismail Daif" [ref=e311] + - cell "-" [ref=e312] + - cell "Unassigned" [ref=e313] + - cell [ref=e314]: + - link [ref=e315] [cursor=pointer]: + - /url: /observations/327d9b79-2126-4800-8cd7-647f006271ce/ + - img [ref=e316] + - generic [ref=e319]: + - generic [ref=e320]: + - generic [ref=e321]: Showing 1-4 of 4 + - generic [ref=e322]: + - generic [ref=e323]: Show + - combobox [ref=e324]: + - option "10" + - option "25" [selected] + - option "50" + - option "100" + - generic [ref=e325]: + - img [ref=e327] + - generic [ref=e329]: "1" + - img [ref=e331] + - contentinfo [ref=e333]: + - paragraph [ref=e334]: + - text: Powered by + - link "tenhal.sa" [ref=e335] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-40-25-079Z.yml b/.playwright-cli/page-2026-07-12T20-40-25-079Z.yml new file mode 100644 index 0000000..d6747b0 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-40-25-079Z.yml @@ -0,0 +1,201 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e140]: + - generic [ref=e141]: + - heading "Suggestions" [level=1] [ref=e142] + - paragraph [ref=e143]: Manage and review submitted suggestions + - link "New Suggestion" [ref=e145] [cursor=pointer]: + - /url: /suggestions/create/ + - img [ref=e146] + - text: New Suggestion + - generic [ref=e147]: + - generic [ref=e148]: + - img [ref=e151] + - generic [ref=e153]: + - heading "Total Suggestions" [level=6] [ref=e154] + - heading "3" [level=2] [ref=e155] + - generic [ref=e156]: + - img [ref=e159] + - generic [ref=e161]: + - heading "Compliments" [level=6] [ref=e162] + - heading "0" [level=2] [ref=e163] + - generic [ref=e164]: + - img [ref=e167] + - generic [ref=e169]: + - heading "Avg Rating" [level=6] [ref=e170] + - heading "0.0 /5" [level=2] [ref=e171] + - generic [ref=e172]: + - img [ref=e175] + - generic [ref=e178]: + - heading "Pending Review" [level=6] [ref=e179] + - heading "2" [level=2] [ref=e180] + - generic [ref=e181]: + - generic [ref=e182]: + - generic [ref=e183]: + - img [ref=e185] + - heading "Suggestions" [level=5] [ref=e187] + - generic [ref=e188]: + - link "All" [ref=e189] [cursor=pointer]: + - /url: "?" + - link "Suggestions" [ref=e190] [cursor=pointer]: + - /url: "?feedback_type=suggestion" + - link "Compliments" [ref=e191] [cursor=pointer]: + - /url: "?feedback_type=compliment" + - button "Advanced" [ref=e193] [cursor=pointer]: + - img [ref=e194] + - text: Advanced + - paragraph [ref=e195]: "Showing: 1-3 of 3" + - table [ref=e197]: + - rowgroup [ref=e198]: + - row "ID Type Contact Title Category Rating Sentiment Status Created Actions" [ref=e199]: + - columnheader "ID" [ref=e200] + - columnheader "Type" [ref=e201] + - columnheader "Contact" [ref=e202] + - columnheader "Title" [ref=e203] + - columnheader "Category" [ref=e204] + - columnheader "Rating" [ref=e205] + - columnheader "Sentiment" [ref=e206] + - columnheader "Status" [ref=e207] + - columnheader "Created" [ref=e208] + - columnheader "Actions" [ref=e209] + - rowgroup [ref=e210]: + - row "SGT-202607-0003 Suggestion ismail Daif t Other - Neutral Submitted Jul 09, 2026" [ref=e211] [cursor=pointer]: + - cell "SGT-202607-0003" [ref=e212] + - cell "Suggestion" [ref=e213] + - cell "ismail Daif" [ref=e214]: + - generic [ref=e215]: ismail Daif + - cell "t" [ref=e216]: + - generic [ref=e217]: t + - cell "Other" [ref=e218] + - cell "-" [ref=e219] + - cell "Neutral" [ref=e220] + - cell "Submitted" [ref=e221] + - cell "Jul 09, 2026" [ref=e222] + - cell [ref=e223]: + - link "View" [ref=e225]: + - /url: /suggestions/78f015c5-fbed-4e10-987f-aa8ced75545a/ + - img [ref=e226] + - row "SGT-202607-0002 Suggestion ismail test Other - Neutral Submitted Jul 09, 2026" [ref=e229] [cursor=pointer]: + - cell "SGT-202607-0002" [ref=e230] + - cell "Suggestion" [ref=e231] + - cell "ismail" [ref=e232]: + - generic [ref=e233]: ismail + - cell "test" [ref=e234]: + - generic [ref=e235]: test + - cell "Other" [ref=e236] + - cell "-" [ref=e237] + - cell "Neutral" [ref=e238] + - cell "Submitted" [ref=e239] + - cell "Jul 09, 2026" [ref=e240] + - cell [ref=e241]: + - link "View" [ref=e243]: + - /url: /suggestions/04b009f3-53aa-4eac-9baf-39b3633e56b0/ + - img [ref=e244] + - row "SGT-202607-0001 Suggestion ismail The suggestion titled 'test' with content 'test' appears … Other - Neutral Closed Jul 09, 2026" [ref=e247] [cursor=pointer]: + - cell "SGT-202607-0001" [ref=e248] + - cell "Suggestion" [ref=e249] + - cell "ismail" [ref=e250]: + - generic [ref=e251]: ismail + - cell "The suggestion titled 'test' with content 'test' appears …" [ref=e252]: + - generic [ref=e253]: The suggestion titled 'test' with content 'test' appears … + - cell "Other" [ref=e254] + - cell "-" [ref=e255] + - cell "Neutral" [ref=e256] + - cell "Closed" [ref=e257] + - cell "Jul 09, 2026" [ref=e258] + - cell [ref=e259]: + - link "View" [ref=e261]: + - /url: /suggestions/ef1e633b-7fae-46e2-baab-0d5bdd71e7b7/ + - img [ref=e262] + - contentinfo [ref=e265]: + - paragraph [ref=e266]: + - text: Powered by + - link "tenhal.sa" [ref=e267] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-40-26-032Z.yml b/.playwright-cli/page-2026-07-12T20-40-26-032Z.yml new file mode 100644 index 0000000..ddeb3a0 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-40-26-032Z.yml @@ -0,0 +1,221 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e140]: + - generic [ref=e141]: + - heading "Appreciations" [level=1] [ref=e142]: + - img [ref=e143] + - text: Appreciations + - paragraph [ref=e145]: Manage and review patient appreciation submissions + - generic [ref=e146]: + - link "Create Internal" [ref=e147] [cursor=pointer]: + - /url: /appreciation/new/ + - img [ref=e148] + - text: Create Internal + - link "Public Form" [ref=e149] [cursor=pointer]: + - /url: /core/public/submit/ + - img [ref=e150] + - text: Public Form + - generic [ref=e154]: + - paragraph [ref=e155]: "0" + - paragraph [ref=e156]: Pending + - generic [ref=e157]: + - generic [ref=e159]: + - img [ref=e161] + - generic [ref=e164]: + - paragraph [ref=e165]: Total + - paragraph [ref=e166]: "3" + - generic [ref=e168]: + - img [ref=e170] + - generic [ref=e173]: + - paragraph [ref=e174]: Draft + - paragraph [ref=e175]: "0" + - generic [ref=e177]: + - img [ref=e179] + - generic [ref=e181]: + - paragraph [ref=e182]: Activated + - paragraph [ref=e183]: "0" + - generic [ref=e185]: + - img [ref=e187] + - generic [ref=e190]: + - paragraph [ref=e191]: Sent + - paragraph [ref=e192]: "3" + - generic [ref=e193]: + - link "Leaderboard See top performers" [ref=e194] [cursor=pointer]: + - /url: /appreciation/leaderboard/ + - generic [ref=e196]: + - img [ref=e198] + - generic [ref=e204]: + - heading "Leaderboard" [level=3] [ref=e205] + - paragraph [ref=e206]: See top performers + - link "My Badges View earned badges" [ref=e207] [cursor=pointer]: + - /url: /appreciation/badges/ + - generic [ref=e209]: + - img [ref=e211] + - generic [ref=e214]: + - heading "My Badges" [level=3] [ref=e215] + - paragraph [ref=e216]: View earned badges + - generic [ref=e217]: + - generic [ref=e218]: + - img [ref=e220] + - heading "Filters" [level=3] [ref=e222] + - generic [ref=e224]: + - generic [ref=e225]: + - generic [ref=e226]: Search + - textbox "Search messages..." [ref=e227] + - generic [ref=e228]: + - generic [ref=e229]: Status + - combobox [ref=e230]: + - option "All Status" [selected] + - option "Draft" + - option "Activated" + - option "AI Analyzed" + - option "Sent" + - option "Acknowledged" + - button "Search" [ref=e231] [cursor=pointer]: + - img [ref=e232] + - text: Search + - link "Clear" [ref=e235] [cursor=pointer]: + - /url: /appreciation/ + - table [ref=e237]: + - rowgroup [ref=e238]: + - row "From Message Staff Department Category Status Date Actions" [ref=e239]: + - columnheader "From" [ref=e240] + - columnheader "Message" [ref=e241] + - columnheader "Staff" [ref=e242] + - columnheader "Department" [ref=e243] + - columnheader "Category" [ref=e244] + - columnheader "Status" [ref=e245] + - columnheader "Date" [ref=e246] + - columnheader "Actions" [ref=e247] + - rowgroup [ref=e248]: + - row "ismail thank - Contact Center Department - Sent Jul 09, 2026" [ref=e249] [cursor=pointer]: + - cell "ismail" [ref=e250] + - cell "thank" [ref=e251]: + - generic [ref=e252]: thank + - cell "-" [ref=e253] + - cell "Contact Center Department" [ref=e254] + - cell "-" [ref=e255] + - cell "Sent" [ref=e256] + - cell "Jul 09, 2026" [ref=e257] + - cell [ref=e258]: + - link "View" [ref=e260]: + - /url: /appreciation/detail/5306821e-d596-498f-88c5-fa3addcdd491/ + - img [ref=e261] + - row "ismail mosa test - Contact Center Department - Sent Jul 09, 2026" [ref=e264] [cursor=pointer]: + - cell "ismail mosa" [ref=e265] + - cell "test" [ref=e266]: + - generic [ref=e267]: test + - cell "-" [ref=e268] + - cell "Contact Center Department" [ref=e269] + - cell "-" [ref=e270] + - cell "Sent" [ref=e271] + - cell "Jul 09, 2026" [ref=e272] + - cell [ref=e273]: + - link "View" [ref=e275]: + - /url: /appreciation/detail/3697b78b-5ff3-4392-8982-af20f58daebf/ + - img [ref=e276] + - row "ismail mosa thank you - Contact Center Department - Sent Jul 09, 2026" [ref=e279] [cursor=pointer]: + - cell "ismail mosa" [ref=e280] + - cell "thank you" [ref=e281]: + - generic [ref=e282]: thank you + - cell "-" [ref=e283] + - cell "Contact Center Department" [ref=e284] + - cell "-" [ref=e285] + - cell "Sent" [ref=e286] + - cell "Jul 09, 2026" [ref=e287] + - cell [ref=e288]: + - link "View" [ref=e290]: + - /url: /appreciation/detail/240ea5bd-a12d-4f76-8a79-a8dd9de5714a/ + - img [ref=e291] + - contentinfo [ref=e294]: + - paragraph [ref=e295]: + - text: Powered by + - link "tenhal.sa" [ref=e296] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-40-27-116Z.yml b/.playwright-cli/page-2026-07-12T20-40-27-116Z.yml new file mode 100644 index 0000000..1ec6ae9 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-40-27-116Z.yml @@ -0,0 +1,256 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e141]: + - generic [ref=e142]: + - link "Inquiries" [ref=e143] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e144] + - generic [ref=e146]: New Inquiry + - heading "Create New Inquiry" [level=1] [ref=e147] + - generic [ref=e149]: + - generic [ref=e150]: + - img [ref=e152] + - heading "Inquiry Information" [level=5] [ref=e155] + - generic [ref=e156]: + - generic [ref=e157]: + - heading "Organization" [level=6] [ref=e158]: + - img [ref=e159] + - text: Organization + - generic [ref=e162]: + - generic [ref=e163]: + - generic [ref=e164]: Location Type * + - combobox "Location Type *" [ref=e165]: + - option "Select Location Type" [selected] + - option "Outpatient" + - option "Inpatient" + - option "Emergency" + - option "General" + - generic [ref=e166]: + - generic [ref=e167]: Area + - combobox "Area" [ref=e168]: + - option "Select Area (optional)" [selected] + - option "Anesthesia (E2E-HOSP)" + - option "Dialysis (E2E-HOSP)" + - option "Emergency (E2E-HOSP)" + - option "Endoscopy (E2E-HOSP)" + - option "ICCU (E2E-HOSP)" + - option "ICU (E2E-HOSP)" + - option "ICU Stepdown (E2E-HOSP)" + - option "LTACU (E2E-HOSP)" + - option "Labor & Delivery (E2E-HOSP)" + - option "Main OR (E2E-HOSP)" + - option "Medical Ward (E2E-HOSP)" + - option "NICU - Neonatal Intensive Care Unit (E2E-HOSP)" + - option "Nursery (E2E-HOSP)" + - option "OB Wards (E2E-HOSP)" + - option "OPD1 (E2E-HOSP)" + - option "OPD2 (E2E-HOSP)" + - option "OPD3 (E2E-HOSP)" + - option "OPD4 (E2E-HOSP)" + - option "OPD5 (E2E-HOSP)" + - option "OPD6 (E2E-HOSP)" + - option "OPD7 (E2E-HOSP)" + - option "PICU (E2E-HOSP)" + - option "PICU Stepdown (E2E-HOSP)" + - option "Pediatric Ward (E2E-HOSP)" + - option "Recovery (E2E-HOSP)" + - option "Stepdown 3-4 (E2E-HOSP)" + - option "Surgical Wards (E2E-HOSP)" + - generic [ref=e169]: + - generic [ref=e170]: Department Category * + - combobox [ref=e171]: + - option "Select Category" [selected] + - option "Medical" + - option "Nursing" + - option "Administrative" + - option "Support Services" + - generic [ref=e172]: + - generic [ref=e173]: Department (Optional) + - combobox "Department (Optional)" [ref=e174]: + - option "Select Department" [selected] + - option "Anesthesia Department" + - option "Biomedical Department" + - option "Contact Center Department" + - option "Critical Care Department" + - option "Dental Department" + - option "Dermatology Department" + - option "E2E Dept 1781720032405" + - option "E2E Dept 1781720188555" + - option "Emergency Administrative Department" + - option "Emergency Medicine Department" + - option "Executive Administration" + - option "Facility Management & Maintenance Department" + - option "Financial Collection & Claims Department" + - option "Food Services Department" + - option "Housekeeping & Hospitality Department" + - option "IVF" + - option "Infection Control Department" + - option "Information Technology Department" + - option "Inpatient Department" + - option "Internal Medicine Department" + - option "Laboratory Department" + - option "Laundry Department" + - option "Medical Administration" + - option "Medical Ancillary Services Department" + - option "Medical Approvals Department" + - option "Medical Records Department" + - option "Nursing Department" + - option "ONCOLOGY Department" + - option "Obstetrics & Gynecology Department" + - option "Operating Rooms (OR) Department" + - option "Ophthalmology Department" + - option "Outpatient Department" + - option "Patient Affairs Department" + - option "Patient Experience Department" + - option "Pediatric Department" + - option "Pharmacy Department" + - option "Radiology Department" + - option "Security Department" + - option "Surgery Department" + - generic [ref=e175]: + - generic [ref=e176]: Section + - combobox "Section" [ref=e177]: + - option "Select Section" [selected] + - generic [ref=e178]: + - heading "Contact Information" [level=6] [ref=e179]: + - img [ref=e180] + - text: Contact Information + - generic [ref=e183]: + - generic [ref=e184]: + - generic [ref=e185]: Contact Name * + - textbox "Contact Name *" [ref=e186] + - generic [ref=e187]: + - generic [ref=e188]: Contact Phone * + - textbox "Contact Phone *" [ref=e189] + - generic [ref=e190]: + - generic [ref=e191]: Contact Email + - textbox "Contact Email" [ref=e192] + - generic [ref=e193]: + - heading "Inquiry Details" [level=6] [ref=e194]: + - img [ref=e195] + - text: Inquiry Details + - generic [ref=e198]: + - generic [ref=e199]: + - generic [ref=e200]: Inquiry Type * + - combobox "Inquiry Type *" [ref=e201]: + - option "General Inquiry" [selected] + - option "Appointment Related" + - option "Billing & Insurance" + - option "Medical Records" + - option "Pharmacy" + - option "Insurance" + - option "Feedback" + - option "Other" + - generic [ref=e202]: + - generic [ref=e203]: Priority + - combobox "Priority" [ref=e204]: + - option "Low" + - option "Medium" [selected] + - option "High" + - option "Critical" + - generic [ref=e205]: + - generic [ref=e206]: Subject * + - textbox "Subject *" [ref=e207]: + - /placeholder: Brief subject + - generic [ref=e208]: + - generic [ref=e209]: Message * + - textbox "Message *" [ref=e210]: + - /placeholder: Describe your inquiry + - generic [ref=e211]: + - button "Create Inquiry" [ref=e212] [cursor=pointer]: + - img [ref=e213] + - text: Create Inquiry + - link "Cancel" [ref=e216] [cursor=pointer]: + - /url: /inquiries/ + - contentinfo [ref=e217]: + - paragraph [ref=e218]: + - text: Powered by + - link "tenhal.sa" [ref=e219] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-40-27-876Z.yml b/.playwright-cli/page-2026-07-12T20-40-27-876Z.yml new file mode 100644 index 0000000..c6b59e6 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-40-27-876Z.yml @@ -0,0 +1,124 @@ +- generic [active] [ref=e1]: + - banner [ref=e2]: + - generic [ref=e4]: + - generic [ref=e5]: + - img "HH Logo" [ref=e7] + - generic [ref=e8]: + - heading "PX360" [level=1] [ref=e9] + - paragraph [ref=e10]: Patient Experience Management + - generic [ref=e11]: + - link "🇬🇧 English" [ref=e12] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e13]: 🇬🇧 + - generic [ref=e14]: English + - link "🇸🇦 Arabic" [ref=e15] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e16]: 🇸🇦 + - generic [ref=e17]: Arabic + - main [ref=e18]: + - generic [ref=e21]: + - generic [ref=e22]: + - img [ref=e24] + - heading "Report an Observation" [level=1] [ref=e27] + - paragraph [ref=e28]: Help us improve by reporting issues you notice + - generic [ref=e30]: + - img [ref=e31] + - generic [ref=e34]: + - strong [ref=e35]: Anonymous Reporting + - paragraph [ref=e36]: You can submit this report anonymously. Providing your information is optional but may help us follow up if needed. + - generic [ref=e37]: + - generic [ref=e38]: + - generic [ref=e39]: + - img [ref=e40] + - text: Hospital + - generic [ref=e44]: (optional) + - combobox [ref=e45]: + - option "Select hospital" [selected] + - option "Al Nuzha" + - option "Al Olya" + - option "Al Suwaidi" + - option "Al-Hammadi Hospital (KPI Test)" + - option "E2E Test Hospital" + - generic [ref=e46]: + - generic [ref=e47]: + - img [ref=e48] + - text: Location Type + - generic [ref=e51]: "*" + - combobox [ref=e52]: + - option "Select Location Type" [selected] + - option "Outpatient (OP)" + - option "Inpatient (IP)" + - option "Emergency (ER)" + - option "General" + - generic [ref=e53]: + - generic [ref=e54]: + - img [ref=e55] + - text: Category + - generic [ref=e58]: (optional) + - combobox [ref=e59]: + - option "Select Category" [selected] + - option "Medical" + - option "Nursing" + - option "Administrative" + - option "Support Services" + - generic [ref=e60]: + - generic [ref=e61]: + - img [ref=e62] + - text: Description + - generic [ref=e65]: "*" + - textbox "Please describe what you observed in detail..." [ref=e66] + - paragraph [ref=e67]: Please describe what you observed in detail. + - generic [ref=e68]: + - generic [ref=e69]: + - img [ref=e70] + - text: Location Details + - generic [ref=e73]: (optional) + - textbox "e.g., Building A, Floor 2, Room 205" [ref=e74] + - generic [ref=e75]: + - generic [ref=e76]: + - img [ref=e77] + - text: When did this occur? + - textbox [ref=e79]: 2026-07-12T23:40:27 + - generic [ref=e80]: + - generic [ref=e81]: + - img [ref=e82] + - text: Attachments + - generic [ref=e84]: (optional) + - generic [ref=e85] [cursor=pointer]: + - img [ref=e86] + - paragraph [ref=e89]: Click to upload files + - paragraph [ref=e90]: Images, PDF, Word, Excel (max 10MB each) + - generic [ref=e91]: + - generic [ref=e92]: + - img [ref=e93] + - text: Your Information + - generic [ref=e96]: (optional) + - paragraph [ref=e97]: Providing your information helps us follow up if needed. Leave blank to submit anonymously. + - generic [ref=e98]: + - generic [ref=e99]: + - generic [ref=e100]: Staff ID + - textbox "Your staff ID (optional)" [ref=e101] + - generic [ref=e102]: + - generic [ref=e103]: Name + - textbox "Your name (optional)" [ref=e104] + - generic [ref=e105]: + - generic [ref=e106]: Phone + - textbox "Your phone number (optional)" [ref=e107] + - generic [ref=e108]: + - generic [ref=e109]: Email + - textbox "Your email (optional)" [ref=e110] + - button "Submit Observation" [ref=e111] [cursor=pointer]: + - img [ref=e112] + - text: Submit Observation + - link "Track an existing observation" [ref=e116] [cursor=pointer]: + - /url: /observations/track/ + - img [ref=e117] + - text: Track an existing observation + - contentinfo [ref=e120]: + - generic [ref=e121]: + - paragraph [ref=e122]: © 2026 Al Hammadi Hospital - PX360. All rights reserved. + - paragraph [ref=e123]: Your feedback helps us improve our services + - paragraph [ref=e124]: + - text: Powered by + - link "tenhal.sa" [ref=e125] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-40-29-030Z.yml b/.playwright-cli/page-2026-07-12T20-40-29-030Z.yml new file mode 100644 index 0000000..027f8ee --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-40-29-030Z.yml @@ -0,0 +1,133 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e140]: + - generic [ref=e141]: + - generic [ref=e142]: + - link "Suggestions" [ref=e143] [cursor=pointer]: + - /url: /suggestions/ + - img [ref=e144] + - generic [ref=e146]: New + - heading "New Suggestion" [level=1] [ref=e147] + - link "Back" [ref=e148] [cursor=pointer]: + - /url: /suggestions/ + - img [ref=e149] + - text: Back + - generic [ref=e151]: + - generic [ref=e152]: + - img [ref=e154] + - heading "Suggestion Details" [level=5] [ref=e156] + - generic [ref=e157]: + - generic [ref=e158]: + - generic [ref=e159]: + - generic [ref=e160]: Your Name * + - textbox "Your full name" [ref=e161] + - generic [ref=e162]: + - generic [ref=e163]: Phone Number * + - textbox "Your phone number" [ref=e164] + - generic [ref=e165]: + - generic [ref=e166]: Hospital * + - combobox [ref=e167]: + - option "Select Hospital" [selected] + - option "Al Nuzha" + - option "Al Olya" + - option "Al Suwaidi" + - option "Al-Hammadi Hospital (KPI Test)" + - option "E2E Test Hospital" + - generic [ref=e168]: + - generic [ref=e169]: Message * + - textbox "Describe your suggestion in detail..." [ref=e170] + - button "Submit Suggestion" [ref=e172] [cursor=pointer]: + - img [ref=e173] + - text: Submit Suggestion + - contentinfo [ref=e176]: + - paragraph [ref=e177]: + - text: Powered by + - link "tenhal.sa" [ref=e178] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-40-30-328Z.yml b/.playwright-cli/page-2026-07-12T20-40-30-328Z.yml new file mode 100644 index 0000000..344e645 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-40-30-328Z.yml @@ -0,0 +1,260 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e139]: + - generic [ref=e141]: + - generic [ref=e142]: + - heading "New Appreciation" [level=1] [ref=e143]: + - img [ref=e144] + - text: New Appreciation + - paragraph [ref=e146]: Recognize a department for excellent service or care. + - link "Back" [ref=e147] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e148] + - text: Back + - generic [ref=e150]: + - generic [ref=e151]: + - generic [ref=e152]: Hospital * + - combobox "Hospital *" [ref=e153]: + - option "---------" + - option "Al Nuzha" + - option "Al Olya" + - option "Al Suwaidi" + - option "Al-Hammadi Hospital (KPI Test)" + - option "E2E Test Hospital" [selected] + - generic [ref=e154]: + - generic [ref=e155]: Department * + - combobox "Department *" [ref=e156]: + - option "---------" [selected] + - option "Anesthesia Department — Al Nuzha" + - option "Biomedical Department — Al Nuzha" + - option "Contact Center Department — Al Nuzha" + - option "Critical Care Department — Al Nuzha" + - option "Dental Department — Al Nuzha" + - option "Dermatology Department — Al Nuzha" + - option "Emergency Administrative Department — Al Nuzha" + - option "Emergency Medicine Department — Al Nuzha" + - option "Executive Administration — Al Nuzha" + - option "Facility Management & Maintenance Department — Al Nuzha" + - option "Financial Collection & Claims Department — Al Nuzha" + - option "Food Services Department — Al Nuzha" + - option "Housekeeping & Hospitality Department — Al Nuzha" + - option "IVF — Al Nuzha" + - option "Infection Control Department — Al Nuzha" + - option "Information Technology Department — Al Nuzha" + - option "Inpatient Department — Al Nuzha" + - option "Internal Medicine Department — Al Nuzha" + - option "Laboratory Department — Al Nuzha" + - option "Laundry Department — Al Nuzha" + - option "Medical Administration — Al Nuzha" + - option "Medical Ancillary Services Department — Al Nuzha" + - option "Medical Approvals Department — Al Nuzha" + - option "Medical Records Department — Al Nuzha" + - option "Nursing Department — Al Nuzha" + - option "ONCOLOGY Department — Al Nuzha" + - option "Obstetrics & Gynecology Department — Al Nuzha" + - option "Operating Rooms (OR) Department — Al Nuzha" + - option "Ophthalmology Department — Al Nuzha" + - option "Outpatient Department — Al Nuzha" + - option "Patient Affairs Department — Al Nuzha" + - option "Patient Experience Department — Al Nuzha" + - option "Pediatric Department — Al Nuzha" + - option "Pharmacy Department — Al Nuzha" + - option "Radiology Department — Al Nuzha" + - option "Security Department — Al Nuzha" + - option "Surgery Department — Al Nuzha" + - option "Facility Management & Maintenance Department — Al Olya" + - option "HR Department — Al Olya" + - option "Support Services Department — Al Olya" + - option "Anesthesia Department — Al Suwaidi" + - option "Biomedical Department — Al Suwaidi" + - option "Contact Center Department — Al Suwaidi" + - option "Critical Care Department — Al Suwaidi" + - option "Dental Department — Al Suwaidi" + - option "Dermatology Department — Al Suwaidi" + - option "Emergency Administrative Department — Al Suwaidi" + - option "Emergency Medicine Department — Al Suwaidi" + - option "Executive Administration — Al Suwaidi" + - option "Facility Management & Maintenance Department — Al Suwaidi" + - option "Financial Collection & Claims Department — Al Suwaidi" + - option "Food Services Department — Al Suwaidi" + - option "Housekeeping & Hospitality Department — Al Suwaidi" + - option "IVF — Al Suwaidi" + - option "Infection Control Department — Al Suwaidi" + - option "Information Technology Department — Al Suwaidi" + - option "Inpatient Department — Al Suwaidi" + - option "Internal Medicine Department — Al Suwaidi" + - option "Laboratory Department — Al Suwaidi" + - option "Laundry Department — Al Suwaidi" + - option "Medical Administration — Al Suwaidi" + - option "Medical Ancillary Services Department — Al Suwaidi" + - option "Medical Approvals Department — Al Suwaidi" + - option "Medical Records Department — Al Suwaidi" + - option "Nursing Department — Al Suwaidi" + - option "ONCOLOGY Department — Al Suwaidi" + - option "Obstetrics & Gynecology Department — Al Suwaidi" + - option "Operating Rooms (OR) Department — Al Suwaidi" + - option "Ophthalmology Department — Al Suwaidi" + - option "Outpatient Department — Al Suwaidi" + - option "Patient Affairs Department — Al Suwaidi" + - option "Patient Experience Department — Al Suwaidi" + - option "Pediatric Department — Al Suwaidi" + - option "Pharmacy Department — Al Suwaidi" + - option "Radiology Department — Al Suwaidi" + - option "Security Department — Al Suwaidi" + - option "Surgery Department — Al Suwaidi" + - option "Administration — Al-Hammadi Hospital (KPI Test)" + - option "Cardiology — Al-Hammadi Hospital (KPI Test)" + - option "Emergency — Al-Hammadi Hospital (KPI Test)" + - option "Housekeeping — Al-Hammadi Hospital (KPI Test)" + - option "ICU — Al-Hammadi Hospital (KPI Test)" + - option "Laboratory — Al-Hammadi Hospital (KPI Test)" + - option "Maintenance — Al-Hammadi Hospital (KPI Test)" + - option "Medical Reports — Al-Hammadi Hospital (KPI Test)" + - option "Nursing — Al-Hammadi Hospital (KPI Test)" + - option "Orthopedics — Al-Hammadi Hospital (KPI Test)" + - option "Pediatrics — Al-Hammadi Hospital (KPI Test)" + - option "Pharmacy — Al-Hammadi Hospital (KPI Test)" + - option "Reception — Al-Hammadi Hospital (KPI Test)" + - option "Security — Al-Hammadi Hospital (KPI Test)" + - option "Surgery — Al-Hammadi Hospital (KPI Test)" + - option "Anesthesia Department — E2E Test Hospital" + - option "Biomedical Department — E2E Test Hospital" + - option "Contact Center Department — E2E Test Hospital" + - option "Critical Care Department — E2E Test Hospital" + - option "Dental Department — E2E Test Hospital" + - option "Dermatology Department — E2E Test Hospital" + - option "E2E Dept 1781720032405 — E2E Test Hospital" + - option "E2E Dept 1781720188555 — E2E Test Hospital" + - option "Emergency Administrative Department — E2E Test Hospital" + - option "Emergency Medicine Department — E2E Test Hospital" + - option "Executive Administration — E2E Test Hospital" + - option "Facility Management & Maintenance Department — E2E Test Hospital" + - option "Financial Collection & Claims Department — E2E Test Hospital" + - option "Food Services Department — E2E Test Hospital" + - option "Housekeeping & Hospitality Department — E2E Test Hospital" + - option "IVF — E2E Test Hospital" + - option "Infection Control Department — E2E Test Hospital" + - option "Information Technology Department — E2E Test Hospital" + - option "Inpatient Department — E2E Test Hospital" + - option "Internal Medicine Department — E2E Test Hospital" + - option "Laboratory Department — E2E Test Hospital" + - option "Laundry Department — E2E Test Hospital" + - option "Medical Administration — E2E Test Hospital" + - option "Medical Ancillary Services Department — E2E Test Hospital" + - option "Medical Approvals Department — E2E Test Hospital" + - option "Medical Records Department — E2E Test Hospital" + - option "Nursing Department — E2E Test Hospital" + - option "ONCOLOGY Department — E2E Test Hospital" + - option "Obstetrics & Gynecology Department — E2E Test Hospital" + - option "Operating Rooms (OR) Department — E2E Test Hospital" + - option "Ophthalmology Department — E2E Test Hospital" + - option "Outpatient Department — E2E Test Hospital" + - option "Patient Affairs Department — E2E Test Hospital" + - option "Patient Experience Department — E2E Test Hospital" + - option "Pediatric Department — E2E Test Hospital" + - option "Pharmacy Department — E2E Test Hospital" + - option "Radiology Department — E2E Test Hospital" + - option "Security Department — E2E Test Hospital" + - option "Surgery Department — E2E Test Hospital" + - generic [ref=e157]: + - generic [ref=e158]: Message * + - textbox "Message *" [ref=e159]: + - /placeholder: Write your message of appreciation... + - generic [ref=e160]: + - button "Create Appreciation" [ref=e161] [cursor=pointer]: + - img [ref=e162] + - text: Create Appreciation + - link "Cancel" [ref=e164] [cursor=pointer]: + - /url: /appreciation/ + - contentinfo [ref=e165]: + - paragraph [ref=e166]: + - text: Powered by + - link "tenhal.sa" [ref=e167] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-40-51-825Z.yml b/.playwright-cli/page-2026-07-12T20-40-51-825Z.yml new file mode 100644 index 0000000..178fa5d --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-40-51-825Z.yml @@ -0,0 +1,172 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e139]: + - generic [ref=e140]: + - link "Inquiries" [ref=e141] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e142] + - generic [ref=e144]: INQ-202607-0007 + - generic [ref=e145]: Open + - generic [ref=e146]: Medium + - generic [ref=e147]: + - img [ref=e148] + - text: Not Sent to Dept + - generic [ref=e150]: + - heading "test12121212" [level=1] [ref=e151] + - generic [ref=e153]: + - img [ref=e154] + - text: 2026-07-12 + - generic [ref=e157]: + - generic [ref=e158]: + - img [ref=e160] + - generic [ref=e162]: Created + - generic [ref=e164]: + - img [ref=e166] + - generic [ref=e169]: Assigned + - generic [ref=e171]: + - img [ref=e173] + - generic [ref=e176]: Sent to Dept + - generic [ref=e178]: + - img [ref=e180] + - generic [ref=e182]: Dept Response + - generic [ref=e184]: + - img [ref=e186] + - generic [ref=e189]: Resolved + - generic [ref=e190]: + - generic [ref=e191]: + - img [ref=e193] + - generic [ref=e195]: + - paragraph [ref=e196]: Activate this inquiry + - paragraph [ref=e197]: Activation moves it to In Progress so actions become available. + - generic [ref=e198]: + - button "Cancel" [ref=e200] [cursor=pointer] + - button "Activate" [ref=e202] [cursor=pointer] + - navigation [ref=e203]: + - button "Details" [ref=e204] [cursor=pointer] + - button "Timeline" [ref=e205] [cursor=pointer] + - button "Notes" [ref=e206] [cursor=pointer] + - main [ref=e207]: + - generic [ref=e209]: + - generic [ref=e210]: + - generic [ref=e211]: + - paragraph + - paragraph [ref=e212]: "231313131" + - paragraph + - generic [ref=e213]: + - generic [ref=e215]: + - img [ref=e216] + - generic [ref=e219]: AI Analysis + - generic [ref=e220]: + - paragraph [ref=e221]: "231313131" + - paragraph [ref=e222]: "231313131" + - generic [ref=e223]: + - heading "Patient" [level=3] [ref=e224]: + - img [ref=e225] + - text: Patient + - generic [ref=e228]: + - generic [ref=e229]: ismail mosa + - generic [ref=e230]: "|" + - generic [ref=e231]: + - img [ref=e232] + - text: "0569874563" + - generic [ref=e235]: + - heading "Quick Actions" [level=3] [ref=e236] + - generic [ref=e237]: + - button "Activate" [ref=e239] [cursor=pointer]: + - img [ref=e240] + - generic [ref=e243]: Activate + - button "Cancel Inquiry" [ref=e245] [cursor=pointer]: + - img [ref=e246] + - generic [ref=e250]: Cancel Inquiry + - contentinfo [ref=e251]: + - paragraph [ref=e252]: + - text: Powered by + - link "tenhal.sa" [ref=e253] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-40-53-136Z.yml b/.playwright-cli/page-2026-07-12T20-40-53-136Z.yml new file mode 100644 index 0000000..0d8032a --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-40-53-136Z.yml @@ -0,0 +1,243 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e140]: + - generic [ref=e141]: + - heading "Complaints Registry" [level=1] [ref=e142] + - paragraph [ref=e143]: Manage and monitor patient feedback in real-time + - generic [ref=e144]: + - generic [ref=e145]: + - img [ref=e146] + - textbox "Search ID, Name or Dept..." [ref=e149] + - link "Public Form" [ref=e150] [cursor=pointer]: + - /url: /core/public/submit/ + - img [ref=e151] + - text: Public Form + - button "Export" [ref=e155] [cursor=pointer]: + - img [ref=e156] + - text: Export + - link "New Case" [ref=e159] [cursor=pointer]: + - /url: /complaints/new/ + - img [ref=e160] + - text: New Case + - generic [ref=e161]: + - generic [ref=e162]: + - img [ref=e165] + - generic [ref=e169]: + - heading "Total Received" [level=6] [ref=e170] + - heading "3" [level=2] [ref=e171] + - generic [ref=e172]: + - img [ref=e175] + - generic [ref=e178]: + - heading "Resolved" [level=6] [ref=e179] + - heading "0 (0.0%)" [level=2] [ref=e180] + - generic [ref=e181]: + - img [ref=e184] + - generic [ref=e187]: + - heading "Pending" [level=6] [ref=e188] + - heading "3 (100.0%)" [level=2] [ref=e189] + - generic [ref=e190]: + - img [ref=e193] + - generic [ref=e195]: + - heading "TAT Alert" [level=6] [ref=e196] + - heading "3 (100.0%)" [level=2] [ref=e197] + - generic [ref=e198]: + - generic [ref=e199]: + - generic [ref=e200]: + - img [ref=e202] + - heading "Complaints" [level=5] [ref=e204] + - generic [ref=e205]: + - link "All Cases" [ref=e206] [cursor=pointer]: + - /url: "?" + - link "Pending" [ref=e207] [cursor=pointer]: + - /url: "?status=open" + - link "In Progress" [ref=e208] [cursor=pointer]: + - /url: "?status=in_progress" + - link "Resolved" [ref=e209] [cursor=pointer]: + - /url: "?status=resolved" + - button "Advanced" [ref=e211] [cursor=pointer]: + - img [ref=e212] + - text: Advanced + - paragraph [ref=e213]: "Showing: 1-3 of 3" + - generic [ref=e214]: + - table [ref=e215]: + - rowgroup [ref=e216]: + - row "Complaint ID Patient Name Description Source Department Status SLA Severity Priority Assigned Actions" [ref=e217]: + - columnheader "Complaint ID" [ref=e218] + - columnheader "Patient Name" [ref=e219] + - columnheader "Description" [ref=e220] + - columnheader "Source" [ref=e221] + - columnheader "Department" [ref=e222] + - columnheader "Status" [ref=e223] + - columnheader "SLA" [ref=e224] + - columnheader "Severity" [ref=e225] + - columnheader "Priority" [ref=e226] + - columnheader "Assigned" [ref=e227] + - columnheader "Actions" [ref=e228] + - rowgroup [ref=e229]: + - row "CMP-202607-0006 test شكوى عامة Patient Patient Experience Department In Progress Overdue 21h 47m Medium Medium test test" [ref=e230] [cursor=pointer]: + - cell "CMP-202607-0006" [ref=e231] + - cell "test" [ref=e232]: + - generic [ref=e233]: test + - cell "شكوى عامة" [ref=e234]: + - generic [ref=e235]: شكوى عامة + - button "View description" [ref=e236]: + - img [ref=e237] + - cell "Patient" [ref=e246] + - cell "Patient Experience Department" [ref=e247] + - cell "In Progress" [ref=e248] + - cell "Overdue 21h 47m" [ref=e249] + - cell "Medium" [ref=e250] + - cell "Medium" [ref=e251] + - cell "test test" [ref=e252] + - cell [ref=e253]: + - generic [ref=e254]: + - link "View" [ref=e255]: + - /url: /complaints/f8aa6216-bb94-455e-ba18-d16a01024662/ + - img [ref=e256] + - link "Assign" [ref=e259]: + - /url: /complaints/f8aa6216-bb94-455e-ba18-d16a01024662/assign/ + - img [ref=e260] + - row "CMP-202607-0005 ismail شكوى اختبار Patient Contact Center Department In Progress Overdue 23h 22m Low Low test test" [ref=e263] [cursor=pointer]: + - cell "CMP-202607-0005" [ref=e264] + - cell "ismail" [ref=e265]: + - generic [ref=e266]: ismail + - cell "شكوى اختبار" [ref=e267]: + - generic [ref=e268]: شكوى اختبار + - button "View description" [ref=e269]: + - img [ref=e270] + - cell "Patient" [ref=e279] + - cell "Contact Center Department" [ref=e280] + - cell "In Progress" [ref=e281] + - cell "Overdue 23h 22m" [ref=e282] + - cell "Low" [ref=e283] + - cell "Low" [ref=e284] + - cell "test test" [ref=e285] + - cell [ref=e286]: + - link "View" [ref=e288]: + - /url: /complaints/9ca01d52-712d-4bca-b30d-6f1f818ff839/ + - img [ref=e289] + - row "CMP-202607-0004 OVR ismail اختبار عام Internal Contact Center Department In Progress Overdue 4d 7h 22m Low Low ismail mosa" [ref=e292] [cursor=pointer]: + - cell "CMP-202607-0004 OVR" [ref=e293] + - cell "ismail" [ref=e294]: + - generic [ref=e295]: ismail + - cell "اختبار عام" [ref=e296]: + - generic [ref=e297]: اختبار عام + - button "View description" [ref=e298]: + - img [ref=e299] + - cell "Internal" [ref=e308] + - cell "Contact Center Department" [ref=e309] + - cell "In Progress" [ref=e310] + - cell "Overdue 4d 7h 22m" [ref=e311] + - cell "Low" [ref=e312] + - cell "Low" [ref=e313] + - cell "ismail mosa" [ref=e314] + - cell [ref=e315]: + - link "View" [ref=e317]: + - /url: /complaints/1c4e8dde-48d8-42ab-8c8d-4ada8314fc40/ + - img [ref=e318] + - generic [ref=e321]: + - generic [ref=e322]: + - generic [ref=e323]: Showing 1-3 of 3 + - generic [ref=e324]: + - generic [ref=e325]: Show + - combobox [ref=e326]: + - option "10" + - option "25" [selected] + - option "50" + - option "100" + - generic [ref=e327]: + - img [ref=e329] + - generic [ref=e331]: "1" + - img [ref=e333] + - contentinfo [ref=e335]: + - paragraph [ref=e336]: + - text: Powered by + - link "tenhal.sa" [ref=e337] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-40-56-706Z.yml b/.playwright-cli/page-2026-07-12T20-40-56-706Z.yml new file mode 100644 index 0000000..96ab83c --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-40-56-706Z.yml @@ -0,0 +1,259 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e139]: + - generic [ref=e140]: + - link "Observations" [ref=e141] [cursor=pointer]: + - /url: /observations/ + - img [ref=e142] + - generic [ref=e144]: OBS-202607-0001 + - generic [ref=e145]: In Progress + - generic [ref=e146]: Medium + - generic [ref=e147]: + - img [ref=e148] + - text: Not Sent to Dept + - heading "test observation" [level=1] [ref=e151] + - generic [ref=e153]: + - generic [ref=e154]: + - img [ref=e156] + - generic [ref=e158]: Created + - generic [ref=e160]: + - img [ref=e162] + - generic [ref=e164]: Assigned + - generic [ref=e166]: + - img [ref=e168] + - generic [ref=e171]: Sent to Dept + - generic [ref=e173]: + - img [ref=e175] + - generic [ref=e177]: Dept Response + - generic [ref=e179]: + - img [ref=e181] + - generic [ref=e184]: Resolved + - navigation [ref=e185]: + - button "Details" [ref=e186] [cursor=pointer] + - button "Timeline" [ref=e187] [cursor=pointer] + - button "RCA" [ref=e188] [cursor=pointer] + - button "Notes" [ref=e189] [cursor=pointer] + - main [ref=e190]: + - generic [ref=e192]: + - generic [ref=e193]: + - paragraph [ref=e195]: test observation + - generic [ref=e196]: + - generic [ref=e197]: + - paragraph [ref=e198]: Category + - paragraph [ref=e199]: "-" + - generic [ref=e200]: + - paragraph [ref=e201]: Location + - paragraph [ref=e202]: "-" + - generic [ref=e203]: + - paragraph [ref=e204]: Incident Date + - paragraph [ref=e205]: 08 Jul 2026 + - generic [ref=e209]: + - img [ref=e210] + - paragraph [ref=e214]: No department assigned to this observation + - generic [ref=e215]: + - generic [ref=e216]: + - heading "Quick Actions" [level=3] [ref=e217] + - generic [ref=e218]: + - button "Respond to Patient" [ref=e219] [cursor=pointer]: + - img [ref=e220] + - generic [ref=e222]: Respond to Patient + - button "Reassign" [ref=e223] [cursor=pointer]: + - img [ref=e224] + - generic [ref=e227]: Reassign + - button "Send to Dept" [ref=e228] [cursor=pointer]: + - img [ref=e229] + - generic [ref=e232]: Send to Dept + - button "Resolve" [ref=e234] [cursor=pointer]: + - img [ref=e235] + - generic [ref=e238]: Resolve + - link "RCA" [ref=e239] [cursor=pointer]: + - /url: /rca/create/?related_model=observation&related_id=1d925706-110e-4bad-808f-26aae2029144 + - img [ref=e240] + - generic [ref=e243]: RCA + - link "QI Project" [ref=e244] [cursor=pointer]: + - /url: /projects/create/?related_model=observation&related_id=1d925706-110e-4bad-808f-26aae2029144 + - img [ref=e245] + - generic [ref=e247]: QI Project + - button "Delete" [ref=e249] [cursor=pointer]: + - img [ref=e250] + - generic [ref=e253]: Delete + - generic [ref=e254]: + - heading "Assignment" [level=3] [ref=e255]: + - img [ref=e256] + - text: Assignment + - list [ref=e261]: + - listitem [ref=e262]: + - generic [ref=e263]: Department + - generic [ref=e264]: Contact Center Department + - listitem [ref=e265]: + - generic [ref=e266]: Assigned To + - generic [ref=e267]: ismail mosa + - generic [ref=e268]: + - heading "Linked PX Action" [level=3] [ref=e269]: + - img [ref=e270] + - text: Linked PX Action + - paragraph [ref=e273]: Observation OBS-202607-0001 + - link "View Action" [ref=e274] [cursor=pointer]: + - /url: /actions/9b185c2a-e3fe-4e13-a727-7aab21df8754/ + - img [ref=e275] + - text: View Action + - generic [ref=e277]: + - heading "Triage" [level=3] [ref=e278]: + - img [ref=e279] + - text: Triage + - generic [ref=e280]: + - generic [ref=e281]: + - generic [ref=e282]: Department + - combobox [ref=e283]: + - option "Select department" + - option "Contact Center Department" [selected] + - option "Emergency Administrative Department" + - option "Executive Administration" + - option "Financial Collection & Claims Department" + - option "Inpatient Department" + - option "Medical Approvals Department" + - option "Medical Records Department" + - option "Outpatient Department" + - option "Patient Affairs Department" + - option "Patient Experience Department" + - option "Security Department" + - option "Anesthesia Department" + - option "Critical Care Department" + - option "Dental Department" + - option "Dermatology Department" + - option "Emergency Medicine Department" + - option "IVF" + - option "Infection Control Department" + - option "Internal Medicine Department" + - option "Laboratory Department" + - option "Medical Administration" + - option "Medical Ancillary Services Department" + - option "ONCOLOGY Department" + - option "Obstetrics & Gynecology Department" + - option "Operating Rooms (OR) Department" + - option "Ophthalmology Department" + - option "Pediatric Department" + - option "Pharmacy Department" + - option "Radiology Department" + - option "Surgery Department" + - option "E2E Dept 1781720032405" + - option "E2E Dept 1781720188555" + - option "Nursing Department" + - option "Biomedical Department" + - option "Facility Management & Maintenance Department" + - option "Food Services Department" + - option "Housekeeping & Hospitality Department" + - option "Information Technology Department" + - option "Laundry Department" + - generic [ref=e284]: + - generic [ref=e285]: Assign To + - combobox [ref=e286]: + - option "Select assignee" [selected] + - option "E2E PX Employee (e2e-px-employee@px360.test)" + - option "test test (9m5s6gzmft@ruutukf.com)" + - option "test test (esma3el555@gmail.com)" + - generic [ref=e287]: + - generic [ref=e288]: Status + - combobox [ref=e289]: + - option "Open" + - option "In Progress" [selected] + - option "Resolved" + - option "Closed" + - generic [ref=e290]: + - generic [ref=e291]: Note + - textbox "Add a note about this triage action (optional)..." [ref=e292] + - button "Update" [ref=e293] [cursor=pointer]: + - img [ref=e294] + - text: Update + - contentinfo [ref=e297]: + - paragraph [ref=e298]: + - text: Powered by + - link "tenhal.sa" [ref=e299] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-40-58-505Z.yml b/.playwright-cli/page-2026-07-12T20-40-58-505Z.yml new file mode 100644 index 0000000..3cd5765 --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-40-58-505Z.yml @@ -0,0 +1,188 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e139]: + - generic [ref=e140]: + - link "Suggestions" [ref=e141] [cursor=pointer]: + - /url: /suggestions/ + - img [ref=e142] + - generic [ref=e144]: test + - generic [ref=e145]: Submitted + - generic [ref=e146]: Medium + - generic [ref=e147]: + - heading "Suggestion Detail" [level=1] [ref=e148] + - link "Edit" [ref=e150] [cursor=pointer]: + - /url: /suggestions/04b009f3-53aa-4eac-9baf-39b3633e56b0/update/ + - img [ref=e151] + - text: Edit + - generic [ref=e155]: + - generic [ref=e156]: + - img [ref=e158] + - generic [ref=e160]: Submitted + - generic [ref=e162]: + - img [ref=e164] + - generic [ref=e167]: Assigned + - generic [ref=e169]: + - img [ref=e171] + - generic [ref=e174]: Reviewed + - generic [ref=e176]: + - img [ref=e178] + - generic [ref=e180]: Acknowledged + - generic [ref=e182]: + - img [ref=e184] + - generic [ref=e187]: Closed + - navigation [ref=e188]: + - button "Details" [ref=e189] [cursor=pointer] + - button "AI Analysis" [ref=e190] [cursor=pointer] + - button "Notes" [ref=e191] [cursor=pointer] + - main [ref=e192]: + - generic [ref=e195]: + - heading "Suggestion Details" [level=3] [ref=e196]: + - img [ref=e197] + - text: Suggestion Details + - paragraph [ref=e200]: test + - generic [ref=e201]: + - generic [ref=e202]: + - generic [ref=e203]: Hospital + - generic [ref=e204]: E2E Test Hospital + - generic [ref=e205]: + - generic [ref=e206]: Category + - generic [ref=e207]: Other + - generic [ref=e208]: + - generic [ref=e209]: Location + - generic [ref=e210]: Not specified + - generic [ref=e211]: + - generic [ref=e212]: Sentiment + - generic [ref=e214]: Neutral + - generic [ref=e215]: + - heading "Contact" [level=6] [ref=e216] + - generic [ref=e217]: + - generic [ref=e218]: ismail + - generic [ref=e219]: "0569874589" + - generic [ref=e221]: + - img [ref=e222] + - text: July 09, 2026 13:46 + - generic [ref=e225]: + - heading "Quick Actions" [level=3] [ref=e226] + - generic [ref=e227]: + - generic [ref=e228]: + - text: Status + - combobox [ref=e229]: + - option "Submitted" [selected] + - option "Reviewed" + - option "Acknowledged" + - option "Closed" + - option "Reopened" + - textbox "Add a note..." [ref=e230] + - button "Update" [ref=e231] [cursor=pointer]: + - img [ref=e232] + - text: Update + - separator [ref=e237] + - generic [ref=e238]: + - text: Assign To + - combobox [ref=e239]: + - option "Select user..." [selected] + - option "E2E PX Employee" + - option "test test" + - option "test test" + - button "Assign" [ref=e240] [cursor=pointer]: + - img [ref=e241] + - text: Assign + - separator [ref=e245] + - generic [ref=e246]: + - text: Department + - button "Send to Department" [ref=e247] [cursor=pointer]: + - img [ref=e248] + - text: Send to Department + - separator [ref=e251] + - contentinfo [ref=e252]: + - paragraph [ref=e253]: + - text: Powered by + - link "tenhal.sa" [ref=e254] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.playwright-cli/page-2026-07-12T20-41-00-163Z.yml b/.playwright-cli/page-2026-07-12T20-41-00-163Z.yml new file mode 100644 index 0000000..9bee09b --- /dev/null +++ b/.playwright-cli/page-2026-07-12T20-41-00-163Z.yml @@ -0,0 +1,137 @@ +- generic [ref=e2]: + - complementary [ref=e3]: + - generic [ref=e4]: + - img "Al Hammadi" [ref=e6] + - img "Al Hammadi" [ref=e8] + - navigation [ref=e9]: + - link [ref=e10] [cursor=pointer]: + - /url: /analytics/dashboard/ + - img [ref=e11] + - link [ref=e16] [cursor=pointer]: + - /url: /projects/my-tasks/ + - img [ref=e17] + - link [ref=e20] [cursor=pointer]: + - /url: / + - img [ref=e21] + - link [ref=e23] [cursor=pointer]: + - /url: /complaints/ + - img [ref=e24] + - link [ref=e27] [cursor=pointer]: + - /url: /inquiries/ + - img [ref=e28] + - link [ref=e31] [cursor=pointer]: + - /url: /observations/ + - img [ref=e32] + - link [ref=e35] [cursor=pointer]: + - /url: /suggestions/?feedback_type=suggestion + - img [ref=e36] + - link [ref=e38] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e39] + - link [ref=e41] [cursor=pointer]: + - /url: /organizations/patients/ + - img [ref=e42] + - button [ref=e46] [cursor=pointer]: + - img [ref=e47] + - button [ref=e52] [cursor=pointer]: + - img [ref=e53] + - link [ref=e58] [cursor=pointer]: + - /url: /organizations/departments/ + - img [ref=e59] + - link [ref=e63] [cursor=pointer]: + - /url: /projects/ + - img [ref=e64] + - button [ref=e69] [cursor=pointer]: + - img [ref=e70] + - button [ref=e74] [cursor=pointer]: + - img [ref=e75] + - button [ref=e80] [cursor=pointer]: + - img [ref=e81] + - button [ref=e88] [cursor=pointer]: + - img [ref=e89] + - button [ref=e93] [cursor=pointer]: + - img [ref=e94] + - link [ref=e96] [cursor=pointer]: + - /url: /accounts/acknowledgements/my-acknowledgements/ + - img [ref=e97] + - button [ref=e103] [cursor=pointer]: + - img [ref=e104] + - generic [ref=e107]: + - link "🇬🇧" [ref=e108] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e109]: 🇬🇧 + - link "🇸🇦" [ref=e110] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e111]: 🇸🇦 + - generic [ref=e112]: + - banner [ref=e113]: + - generic [ref=e114]: + - heading "Welcome, E2E" [level=2] [ref=e115] + - paragraph [ref=e116]: Welcome to PX360 Patient Experience Management + - generic [ref=e117]: + - button [ref=e119] [cursor=pointer]: + - img [ref=e120] + - generic [ref=e123]: + - link "🇬🇧 English" [ref=e124] [cursor=pointer]: + - /url: /core/set-language/?language=en + - generic [ref=e125]: 🇬🇧 + - generic [ref=e126]: English + - link "🇸🇦 Arabic" [ref=e127] [cursor=pointer]: + - /url: /core/set-language/?language=ar + - generic [ref=e128]: 🇸🇦 + - generic [ref=e129]: Arabic + - button "E2E PX Employee PX Employee E" [ref=e131] [cursor=pointer]: + - generic [ref=e132]: + - generic [ref=e133]: E2E PX Employee + - generic [ref=e134]: PX Employee + - generic [ref=e135]: E + - img [ref=e136] + - main [ref=e138]: + - generic [ref=e139]: + - generic [ref=e140]: + - link "Appreciations" [ref=e141] [cursor=pointer]: + - /url: /appreciation/ + - img [ref=e142] + - generic [ref=e144]: Detail + - generic [ref=e145]: Sent + - generic [ref=e146]: + - heading "Appreciation Detail" [level=1] [ref=e147]: + - img [ref=e148] + - text: Appreciation Detail + - generic [ref=e151]: 2026-07-09 13:55 — E2E Test Hospital + - navigation [ref=e152]: + - button "Details" [ref=e153] [cursor=pointer] + - button "AI Analysis" [ref=e154] [cursor=pointer] + - button "Notes" [ref=e155] [cursor=pointer] + - main [ref=e156]: + - generic [ref=e158]: + - generic [ref=e159]: + - heading "Appreciation Message" [level=3] [ref=e160]: + - img [ref=e161] + - text: Appreciation Message + - paragraph + - paragraph [ref=e163]: thank + - paragraph + - generic [ref=e164]: + - heading "Submitted By" [level=3] [ref=e165]: + - img [ref=e166] + - text: Submitted By + - generic [ref=e169]: + - generic [ref=e170]: + - paragraph [ref=e171]: Name + - paragraph [ref=e172]: ismail + - generic [ref=e173]: + - paragraph [ref=e174]: Phone + - paragraph [ref=e175]: "0569874589" + - generic [ref=e176]: + - heading "Sent" [level=3] [ref=e177]: + - img [ref=e178] + - text: Sent + - generic [ref=e182]: + - paragraph [ref=e183]: Sent At + - paragraph [ref=e184]: 2026-07-09 13:57 + - contentinfo [ref=e186]: + - paragraph [ref=e187]: + - text: Powered by + - link "tenhal.sa" [ref=e188] [cursor=pointer]: + - /url: https://tenhal.sa \ No newline at end of file diff --git a/.target-last-build b/.target-last-build index 0ffb86d..8f8b46d 100644 --- a/.target-last-build +++ b/.target-last-build @@ -1 +1 @@ -hh-dev:hh-dev-build-1783592335|1783592388 +hh-dev:hh-dev-build-1784025225|1784026493 diff --git a/PX360/settings.py b/PX360/settings.py index 163c203..8f892a9 100644 --- a/PX360/settings.py +++ b/PX360/settings.py @@ -207,4 +207,4 @@ META_APP_SECRET = "b80750bd12ab7f1c21d7d0ca891ba5ab" META_REDIRECT_URI = "https://micha-nonparabolic-lovie.ngrok-free.dev/social/callback/META/" META_WEBHOOK_VERIFY_TOKEN = "random_secret_string_khanfaheed123456" -EMAIL_LOGO_URL = "http://127.0.0.1:8000/static/img/HH_R_H_Logo.png" +EMAIL_LOGO_URL = "http://127.0.0.1:8000/static/images/logos/HH_P_H_Logo_CMYK---LANDSCIP1.png" diff --git a/apps/appreciation/forms.py b/apps/appreciation/forms.py index 6ae830e..3beedd4 100644 --- a/apps/appreciation/forms.py +++ b/apps/appreciation/forms.py @@ -1,5 +1,6 @@ """Forms for the appreciation module.""" from django import forms +from django.utils.translation import gettext_lazy as _ from apps.appreciation.models import Appreciation from apps.organizations.models import Department @@ -8,13 +9,25 @@ from apps.organizations.models import Department class AppreciationForm(forms.ModelForm): """Internal form for creating an appreciation (department-targeted).""" + national_id = forms.CharField( + label=_("National ID/Iqama No."), + max_length=10, + required=True, + widget=forms.TextInput(attrs={ + "class": "w-full px-4 py-3 border border-slate-200 rounded-xl text-sm focus:ring-2 focus:ring-navy/20 outline-none", + "placeholder": _("National ID or Iqama number"), + "inputmode": "numeric", + "pattern": "[0-9]{10}", + "maxlength": "10", + "minlength": "10", + }), + help_text=_("Exactly 10 digits, numbers only."), + ) + class Meta: model = Appreciation - fields = ["hospital", "department", "message_en"] + fields = ["department", "message_en", "national_id"] widgets = { - "hospital": forms.Select( - attrs={"class": "w-full px-4 py-3 border border-slate-200 rounded-xl text-sm focus:ring-2 focus:ring-navy/20 outline-none"} - ), "message_en": forms.Textarea( attrs={ "rows": 5, @@ -27,14 +40,21 @@ class AppreciationForm(forms.ModelForm): ), } + def clean_national_id(self): + national_id = self.cleaned_data.get("national_id", "").replace(" ", "") + if not national_id.isdigit(): + raise forms.ValidationError(_("National ID/Iqama must contain digits only.")) + if len(national_id) != 10: + raise forms.ValidationError(_("National ID/Iqama must be exactly 10 digits (you entered %(n)d).") % {"n": len(national_id)}) + return national_id + def __init__(self, *args, hospital=None, **kwargs): super().__init__(*args, **kwargs) if hospital: - self.fields["hospital"].initial = hospital - dept_qs = Department.objects.filter(status="active").select_related("hospital").order_by( - "hospital__name", "name" - ) + dept_qs = Department.objects.filter(hospital=hospital, status="active").order_by("name") + else: + dept_qs = Department.objects.filter(status="active").select_related("hospital").order_by("name") + self.fields["department"].label_from_instance = lambda obj: ( + f"{obj.name} — {obj.hospital.name}" if obj.hospital else obj.name + ) self.fields["department"].queryset = dept_qs - self.fields["department"].label_from_instance = lambda obj: ( - f"{obj.name} — {obj.hospital.name}" if obj.hospital else obj.name - ) diff --git a/apps/appreciation/migrations/0007_add_reminder_fields.py b/apps/appreciation/migrations/0007_add_reminder_fields.py new file mode 100644 index 0000000..c2660dc --- /dev/null +++ b/apps/appreciation/migrations/0007_add_reminder_fields.py @@ -0,0 +1,23 @@ +# Generated by Django 6.0.1 on 2026-07-13 16:35 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('appreciation', '0006_appreciation_reference_number_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='appreciation', + name='dept_response_reminder_sent_at', + field=models.DateTimeField(blank=True, null=True), + ), + migrations.AddField( + model_name='appreciation', + name='dept_response_second_reminder_sent_at', + field=models.DateTimeField(blank=True, null=True), + ), + ] diff --git a/apps/appreciation/migrations/0008_remove_ai_analyzed_status.py b/apps/appreciation/migrations/0008_remove_ai_analyzed_status.py new file mode 100644 index 0000000..84bffea --- /dev/null +++ b/apps/appreciation/migrations/0008_remove_ai_analyzed_status.py @@ -0,0 +1,21 @@ +from django.db import migrations + + +def convert_ai_analyzed_to_activated(apps, schema_editor): + Appreciation = apps.get_model("appreciation", "Appreciation") + Appreciation.objects.filter(status="ai_analyzed").update(status="activated") + + +def reverse_conversion(apps, schema_editor): + pass + + +class Migration(migrations.Migration): + + dependencies = [ + ("appreciation", "0007_add_reminder_fields"), + ] + + operations = [ + migrations.RunPython(convert_ai_analyzed_to_activated, reverse_conversion), + ] diff --git a/apps/appreciation/migrations/0009_add_national_id.py b/apps/appreciation/migrations/0009_add_national_id.py new file mode 100644 index 0000000..669b865 --- /dev/null +++ b/apps/appreciation/migrations/0009_add_national_id.py @@ -0,0 +1,24 @@ +# Generated by Django 6.0.1 on 2026-07-18 15:10 + +import apps.core.encryption +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('appreciation', '0008_remove_ai_analyzed_status'), + ] + + operations = [ + migrations.AddField( + model_name='appreciation', + name='national_id', + field=apps.core.encryption.EncryptedCharField(blank=True, help_text='National ID/Iqama of the submitter', max_length=512), + ), + migrations.AddField( + model_name='appreciation', + name='national_id_hash', + field=models.CharField(blank=True, db_index=True, max_length=64), + ), + ] diff --git a/apps/appreciation/models.py b/apps/appreciation/models.py index 1586847..25aeed3 100644 --- a/apps/appreciation/models.py +++ b/apps/appreciation/models.py @@ -12,6 +12,7 @@ from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelatio from django.contrib.contenttypes.models import ContentType from django.db import models +from apps.core.encryption import EncryptedCharField, compute_national_id_hash from apps.core.models import SoftDeleteModel, TimeStampedModel, UUIDModel @@ -220,6 +221,14 @@ class Appreciation(UUIDModel, TimeStampedModel, SoftDeleteModel): notification_sent = models.BooleanField(default=False) notification_sent_at = models.DateTimeField(null=True, blank=True) + # Reminder tracking + dept_response_reminder_sent_at = models.DateTimeField(null=True, blank=True) + dept_response_second_reminder_sent_at = models.DateTimeField(null=True, blank=True) + + # Submitter identity + national_id = EncryptedCharField(max_length=512, blank=True, help_text="National ID/Iqama of the submitter") + national_id_hash = models.CharField(max_length=64, blank=True, db_index=True) + # Metadata metadata = models.JSONField(default=dict, blank=True) @@ -245,6 +254,10 @@ class Appreciation(UUIDModel, TimeStampedModel, SoftDeleteModel): from apps.core.reference import generate_reference self.reference_number = generate_reference("APR", self.hospital) + if self.national_id: + self.national_id_hash = compute_national_id_hash(self.national_id) + else: + self.national_id_hash = "" super().save(*args, **kwargs) def get_owner(self): @@ -320,20 +333,16 @@ class Appreciation(UUIDModel, TimeStampedModel, SoftDeleteModel): def mark_ai_analyzed(self, analysis_data): from django.utils import timezone - if self.status != AppreciationStatus.ACTIVATED: - raise ValueError(f"Cannot mark as AI analyzed from '{self.status}' status. Must be in 'activated'.") - - self.status = AppreciationStatus.AI_ANALYZED self.ai_analyzed_at = timezone.now() self.ai_analysis = analysis_data - self.save(update_fields=["status", "ai_analyzed_at", "ai_analysis"]) + self.save(update_fields=["ai_analyzed_at", "ai_analysis"]) def send(self): """Send appreciation and trigger notification""" from django.utils import timezone - if self.status not in (AppreciationStatus.ACTIVATED, AppreciationStatus.AI_ANALYZED): - raise ValueError(f"Cannot send appreciation in '{self.status}' status. Must be 'activated' or 'ai_analyzed'.") + if self.status not in (AppreciationStatus.ACTIVATED,): + raise ValueError(f"Cannot send appreciation in '{self.status}' status. Must be 'activated'.") self.status = AppreciationStatus.SENT self.sent_at = timezone.now() diff --git a/apps/appreciation/tasks.py b/apps/appreciation/tasks.py index e40e6a7..929344a 100644 --- a/apps/appreciation/tasks.py +++ b/apps/appreciation/tasks.py @@ -15,10 +15,17 @@ def send_appreciation_notifications( email_body="", host="", ): - """Send email + SMS to champion, manager, and appreciated staff in the background. + """Send the appreciation email to the appreciated staff member with the + department champion and manager CC'd. - Replaces the synchronous notification loop that used to block the - appreciation_send_to response. + Behaviour: + - If ``staff_id`` is provided AND the staff member has an email: ONE email + is sent To: the staff member with champion + manager as CC: (deduplicated). + - If no staff member is selected (or the staff has no email): separate + emails are sent To: each of the champion and manager (current behaviour). + - In-app notifications are created for every recipient (To and CC) whose + email maps to a User account. + - SMS notifications are NOT sent (email-only flow). """ from apps.appreciation.models import Appreciation from apps.notifications.services import NotificationService, get_email_header_html @@ -40,20 +47,95 @@ def send_appreciation_notifications( link = f"https://{host}/appreciation/detail/{appreciation.pk}/" notified = [] - # Notify champion + manager - for target in targets: - display_name = ( - target["staff"].get_full_name() if target.get("staff") - else (target["user"].get_full_name() if target.get("user") else target["label"]) + # Generate the appreciation letter PDF once and reuse for all email notifications. + # Wrapped in try/except so email delivery still succeeds if PDF rendering fails. + pdf_attachment = None + try: + from apps.appreciation.ui_views import _render_appreciation_pdf_bytes, _appreciation_pdf_context + + ctx = _appreciation_pdf_context(appreciation) + pdf_bytes = _render_appreciation_pdf_bytes( + "appreciation/appreciation_letter.html", ctx, obj=appreciation, ) - if target.get("email"): + pdf_attachment = ( + f"appreciation_letter_{appreciation.reference_number}.pdf", + pdf_bytes, + "application/pdf", + ) + except Exception: + logger.exception( + f"Failed to generate appreciation letter PDF for {appreciation_id}; " + f"sending notifications without attachment" + ) + + # Build the champion + manager email list (in order: champion first, then manager) + target_emails_raw = [t["email"] for t in targets if t.get("email")] + + # Resolve the appreciated staff member (if any) and their email + staff_email = None + appreciated_staff = None + if staff_id: + try: + appreciated_staff = Staff.objects.get(id=staff_id) + s_email, _ = _staff_contact(appreciated_staff) + staff_email = s_email or None + except Staff.DoesNotExist: + appreciated_staff = None + + # Build the deduplicated CC list (exclude the staff member's own email) + seen_lower = {staff_email.lower()} if staff_email else set() + cc_emails = [] + for email in target_emails_raw: + key = email.lower() + if key not in seen_lower: + seen_lower.add(key) + cc_emails.append(email) + + attachments_arg = [pdf_attachment] if pdf_attachment else None + + if staff_email: + # CASE 1 (primary): ONE email to the staff member, CC champion + manager. + send_subject = email_subject or f"An Appreciation Has Been Submitted About You - {appreciation.reference_number}" + send_body = email_body or ( + f"An appreciation (#{appreciation.reference_number}) has been submitted about you." + ) + try: + NotificationService.send_email( + email=staff_email, + subject=send_subject, + message=send_body + f"\n\n{link}", + html_message=f""" +
+ {get_email_header_html()} +
+

You've Been Appreciated!

+

An appreciation #{appreciation.reference_number} has been submitted about you.

+

Message: {appreciation.message_en or 'N/A'}

+ {f'

Note: {note}

' if note else ''} +

View Appreciation

+
+
+ """, + related_object=appreciation, + attachments=attachments_arg, + cc=cc_emails, + ) + notified.append(staff_email) + for cc_addr in cc_emails: + notified.append(f"CC: {cc_addr}") + except Exception: + logger.exception(f"Failed to send staff email to {staff_email} with CC {cc_emails}") + + elif cc_emails: + # CASE 2 (fallback): no specific staff — separate emails to champion + manager. + send_subject = email_subject or f"Appreciation Sent to Department - {appreciation.reference_number}" + send_body = email_body or ( + f"Appreciation #{appreciation.reference_number} has been sent to your department ({department.name})." + ) + for email in cc_emails: try: - send_subject = email_subject or f"Appreciation Sent to Department - {appreciation.reference_number}" - send_body = email_body or ( - f"Appreciation #{appreciation.reference_number} has been sent to your department ({department.name})." - ) NotificationService.send_email( - email=target["email"], + email=email, subject=send_subject, message=send_body + f"\n\n{link}", html_message=f""" @@ -64,67 +146,57 @@ def send_appreciation_notifications(

Appreciation #{appreciation.reference_number} has been sent to your department ({department.name}).

Message: {appreciation.message_en or 'N/A'}

{f'

Note: {note}

' if note else ''} -

Role: {target['label']}

View Appreciation

""", related_object=appreciation, + attachments=attachments_arg, ) + notified.append(email) except Exception: - logger.exception(f"Failed to send email to {target.get('email')}") - if target.get("phone"): - try: - NotificationService.send_sms( - target["phone"], - f"PX360: Appreciation #{appreciation.reference_number} sent to {department.name}. {link}", - related_object=appreciation, - ) - except Exception: - pass - notified.append(f"{display_name} ({target['label']})") + logger.exception(f"Failed to send department email to {email}") - # Notify the appreciated staff member - if staff_id: - try: - appreciated_staff = Staff.objects.get(id=staff_id) - except Staff.DoesNotExist: - appreciated_staff = None - - if appreciated_staff: - s_email, s_phone = _staff_contact(appreciated_staff) - s_name = appreciated_staff.get_full_name() - if s_email: - try: - NotificationService.send_email( - email=s_email, - subject=f"An Appreciation Has Been Submitted About You - {appreciation.reference_number}", - message=f"An appreciation (#{appreciation.reference_number}) has been submitted about you.\n\nMessage: {appreciation.message_en or 'N/A'}\n\nView: {link}", - html_message=f""" -
- {get_email_header_html()} -
-

You've Been Appreciated!

-

An appreciation #{appreciation.reference_number} has been submitted about you.

-

Message: {appreciation.message_en or 'N/A'}

- {f'

Note: {note}

' if note else ''} -

View Appreciation

-
-
- """, - related_object=appreciation, - ) - notified.append(f"{s_name} (Staff)") - except Exception: - logger.exception(f"Failed to send email to staff {s_email}") - if s_phone: - try: - NotificationService.send_sms( - s_phone, - f"PX360: An appreciation has been submitted about you. {link}", - related_object=appreciation, - ) - except Exception: - pass + else: + logger.warning( + f"Appreciation {appreciation_id}: no recipients to notify " + f"(no staff email and no champion/manager emails)" + ) logger.info(f"Appreciation {appreciation_id} notifications sent to: {', '.join(notified)}") + + +@shared_task +def send_appreciation_reminder_email(appreciation_id, reminder_type, recipients): + """Send a reminder email to department champion and manager for an appreciation.""" + import logging + + logger = logging.getLogger(__name__) + + try: + from apps.appreciation.models import Appreciation + from apps.notifications.services import NotificationService, get_email_header_html + + appreciation = Appreciation.objects.get(pk=appreciation_id) + + for recipient in recipients: + NotificationService.send_email( + email=recipient["email"], + subject=f"Reminder: Appreciation {appreciation.reference_number} - Acknowledgment Required", + message=f"This is a reminder that appreciation {appreciation.reference_number} is awaiting acknowledgment. Please acknowledge it as soon as possible.", + html_message=f""" +
+ {get_email_header_html()} +
+

Reminder: Acknowledgment Required

+

This is a reminder that appreciation {appreciation.reference_number} is awaiting acknowledgment from your department.

+

Please acknowledge it as soon as possible.

+
+
+""", + related_object=appreciation, + ) + + logger.info(f"Appreciation {appreciation_id} {reminder_type} reminder sent to {len(recipients)} recipients") + except Exception as e: + logger.error(f"Failed to send appreciation reminder email for {appreciation_id}: {e}") diff --git a/apps/appreciation/ui_views.py b/apps/appreciation/ui_views.py index 6f33f04..863ba29 100644 --- a/apps/appreciation/ui_views.py +++ b/apps/appreciation/ui_views.py @@ -41,8 +41,22 @@ def appreciation_list(request): ).order_by("-created_at") user = request.user + selected_hospital = getattr(request, "tenant_hospital", None) + if user.is_px_admin(): - pass + if selected_hospital: + queryset = queryset.filter(hospital=selected_hospital) + elif user.is_hospital_admin() and user.hospital: + queryset = queryset.filter(hospital=user.hospital) + elif user.is_px_management() or user.is_px_employee(): + if user.hospital: + queryset = queryset.filter(hospital=user.hospital) + elif user.is_department_manager() and user.department: + queryset = queryset.filter(department=user.department) + elif user.is_champion() and user.department: + queryset = queryset.filter(department=user.department) + elif user.is_source_user(): + queryset = queryset.filter(created_by=user) elif user.hospital: queryset = queryset.filter(hospital=user.hospital) else: @@ -61,16 +75,30 @@ def appreciation_list(request): ) base_qs = Appreciation.objects.all() - if not user.is_px_admin() and user.hospital: + if user.is_px_admin(): + if selected_hospital: + base_qs = base_qs.filter(hospital=selected_hospital) + elif user.is_hospital_admin() and user.hospital: base_qs = base_qs.filter(hospital=user.hospital) - elif not user.is_px_admin(): + elif user.is_px_management() or user.is_px_employee(): + if user.hospital: + base_qs = base_qs.filter(hospital=user.hospital) + elif user.is_department_manager() and user.department: + base_qs = base_qs.filter(department=user.department) + elif user.is_champion() and user.department: + base_qs = base_qs.filter(department=user.department) + elif user.is_source_user(): + base_qs = base_qs.filter(created_by=user) + elif user.hospital: + base_qs = base_qs.filter(hospital=user.hospital) + else: base_qs = base_qs.none() stats = { "total": base_qs.count(), "draft": base_qs.filter(status=AppreciationStatus.DRAFT).count(), "activated": base_qs.filter( - status__in=[AppreciationStatus.ACTIVATED, AppreciationStatus.AI_ANALYZED] + status=AppreciationStatus.ACTIVATED ).count(), "sent": base_qs.filter(status__in=[AppreciationStatus.SENT, AppreciationStatus.ACKNOWLEDGED]).count(), } @@ -132,6 +160,9 @@ def appreciation_detail(request, pk): appreciation_ct = ContentType.objects.get_for_model(appreciation) generic_notes = appreciation.notes.select_related("created_by").all() + has_recipient = appreciation.recipient is not None + is_activated = appreciation.status == AppreciationStatus.ACTIVATED + context = { "appreciation": appreciation, "metadata": metadata, @@ -140,13 +171,23 @@ def appreciation_detail(request, pk): "categories": categories, "hospital_departments": hospital_departments, "can_activate": appreciation.status == AppreciationStatus.DRAFT, - "can_send": appreciation.status in (AppreciationStatus.ACTIVATED, AppreciationStatus.AI_ANALYZED), + "can_send": is_activated and appreciation.department_id is not None, + "has_recipient": has_recipient, "is_recipient": False, "content_type_id": appreciation_ct.pk, "object_id": appreciation.pk, "notes": generic_notes, "notes_count": generic_notes.count(), } + _apr_steps = [ + {"label": _("Activate"), "icon": "zap", "done": appreciation.activated_at is not None}, + {"label": _("Select Staff"), "icon": "user-check", "done": has_recipient or appreciation.sent_at is not None}, + {"label": _("Send"), "icon": "send", "done": appreciation.sent_at is not None}, + ] + _apr_next = next((i for i, s in enumerate(_apr_steps) if not s["done"]), len(_apr_steps)) + if _apr_next < len(_apr_steps): + _apr_steps[_apr_next]["current"] = True + context["workflow_steps"] = _apr_steps return render(request, "appreciation/appreciation_detail.html", context) @@ -165,17 +206,30 @@ def appreciation_create(request): from .forms import AppreciationForm - hospital = user.hospital + hospital = getattr(request, "tenant_hospital", None) or user.hospital if request.method == "POST": form = AppreciationForm(request.POST, hospital=hospital) if form.is_valid(): appreciation = form.save(commit=False) appreciation.sender = user - appreciation.hospital = form.cleaned_data["hospital"] + appreciation.hospital = hospital appreciation.status = AppreciationStatus.DRAFT appreciation.save() form.save_m2m() + + staff_id = request.POST.get("staff_id") + if staff_id: + try: + from django.contrib.contenttypes.models import ContentType + staff_ct = ContentType.objects.get_for_model(Staff) + staff = Staff.objects.get(pk=staff_id, status="active") + appreciation.recipient_content_type = staff_ct + appreciation.recipient_object_id = staff.id + appreciation.save(update_fields=["recipient_content_type", "recipient_object_id"]) + except Staff.DoesNotExist: + pass + messages.success(request, _("Appreciation created successfully.")) return redirect("appreciation:appreciation_detail", pk=appreciation.pk) else: @@ -261,12 +315,71 @@ def appreciation_activate(request, pk): return redirect("appreciation:appreciation_detail", pk=appreciation.pk) +@login_required +@require_http_methods(["POST"]) +def appreciation_select_recipient(request, pk): + """Select the department and optional staff recipient for an appreciation (without sending).""" + appreciation = get_object_or_404(Appreciation, pk=pk) + + if appreciation.status != AppreciationStatus.ACTIVATED: + messages.error(request, _("Appreciation must be activated before selecting a recipient.")) + return redirect("appreciation:appreciation_detail", pk=appreciation.pk) + + user = request.user + if not ( + user.is_px_admin() or user.is_hospital_admin() + or user.is_px_management() or user.is_px_employee() + ): + messages.error(request, _("Permission denied.")) + return redirect("appreciation:appreciation_list") + + department_id = request.POST.get("department_id") + staff_id = request.POST.get("staff_id") + + if request.POST.get("clear_recipient"): + appreciation.department = None + appreciation.recipient_content_type = None + appreciation.recipient_object_id = None + appreciation.save(update_fields=["department", "recipient_content_type", "recipient_object_id"]) + messages.info(request, _("Recipient cleared. Please select a new recipient.")) + return redirect("appreciation:appreciation_detail", pk=appreciation.pk) + + if not department_id: + messages.error(request, _("Please select a department.")) + return redirect("appreciation:appreciation_detail", pk=appreciation.pk) + + try: + department = Department.objects.get(id=department_id, status="active") + except Department.DoesNotExist: + messages.error(request, _("Invalid department selected.")) + return redirect("appreciation:appreciation_detail", pk=appreciation.pk) + + appreciation.department = department + + if staff_id: + try: + from django.contrib.contenttypes.models import ContentType + staff_ct = ContentType.objects.get_for_model(Staff) + staff = Staff.objects.get(pk=staff_id, status="active") + appreciation.recipient_content_type = staff_ct + appreciation.recipient_object_id = staff.id + except Staff.DoesNotExist: + pass + else: + appreciation.recipient_content_type = None + appreciation.recipient_object_id = None + + appreciation.save() + messages.success(request, _("Recipient selected: {}").format(department.name)) + return redirect("appreciation:appreciation_detail", pk=appreciation.pk) + + @login_required @require_http_methods(["POST"]) def appreciation_send(request, pk): appreciation = get_object_or_404(Appreciation, pk=pk) - if appreciation.status not in (AppreciationStatus.ACTIVATED, AppreciationStatus.AI_ANALYZED): + if appreciation.status != AppreciationStatus.ACTIVATED: messages.error(request, _("This appreciation must be activated before sending.")) return redirect("appreciation:appreciation_detail", pk=pk) @@ -341,7 +454,7 @@ def appreciation_send_to(request, pk): ) # Must be activated before it can be sent - if appreciation.status not in (AppreciationStatus.ACTIVATED, AppreciationStatus.AI_ANALYZED): + if appreciation.status != AppreciationStatus.ACTIVATED: return JsonResponse( {"success": False, "error": str(_("Activate this appreciation before sending it to a department."))}, status=400, @@ -435,7 +548,7 @@ def appreciation_send_to(request, pk): except Staff.DoesNotExist: pass - # Advance to SENT (validates status is ACTIVATED/AI_ANALYZED) + # Advance to SENT (validates status is ACTIVATED) appreciation.send() # Send notifications (email + SMS to champion, manager, staff) in the background @@ -508,6 +621,79 @@ def appreciation_acknowledge(request, pk): return redirect('appreciation:appreciation_detail', pk=pk) +@login_required +@require_http_methods(["POST"]) +def appreciation_send_dept_reminder(request, pk): + """Send a reminder to the department that hasn't acknowledged an appreciation.""" + appreciation = get_object_or_404(Appreciation, pk=pk) + + user = request.user + if not ( + user.is_px_admin() or user.is_hospital_admin() + or user.is_px_management() or user.is_px_employee() + ): + messages.error(request, _("You don't have permission to send reminders.")) + return redirect("appreciation:appreciation_detail", pk=pk) + + if appreciation.status not in (AppreciationStatus.SENT, AppreciationStatus.ACKNOWLEDGED): + messages.warning(request, _("Appreciation must be sent before sending reminders.")) + return redirect("appreciation:appreciation_detail", pk=pk) + + dept = appreciation.department + if not dept: + messages.error(request, _("No department assigned.")) + return redirect("appreciation:appreciation_detail", pk=pk) + + reminder_type = request.POST.get("reminder_type", "first") + + if reminder_type == "first" and appreciation.dept_response_reminder_sent_at: + messages.warning(request, _("First reminder already sent.")) + return redirect("appreciation:appreciation_detail", pk=pk) + if reminder_type == "second" and appreciation.dept_response_second_reminder_sent_at: + messages.warning(request, _("Second reminder already sent.")) + return redirect("appreciation:appreciation_detail", pk=pk) + if reminder_type == "second" and not appreciation.dept_response_reminder_sent_at: + messages.warning(request, _("Please send the first reminder before the second.")) + return redirect("appreciation:appreciation_detail", pk=pk) + + try: + from apps.notifications.services import NotificationService, get_email_header_html + from apps.organizations.department_contacts import get_champion_and_manager + + targets = get_champion_and_manager(dept) + if not targets: + messages.error(request, _(f"No champion or manager assigned to {dept.name}.")) + return redirect("appreciation:appreciation_detail", pk=pk) + + recipients = [] + for target in targets: + email = target.get("email") or "" + if email: + recipients.append({"email": email, "name": target.get("display_name", "")}) + + if reminder_type == "first": + appreciation.dept_response_reminder_sent_at = timezone.now() + else: + appreciation.dept_response_second_reminder_sent_at = timezone.now() + appreciation.save(update_fields=["dept_response_reminder_sent_at", "dept_response_second_reminder_sent_at"]) + + from apps.appreciation.tasks import send_appreciation_reminder_email + send_appreciation_reminder_email.delay(str(appreciation.id), reminder_type, recipients) + + AuditService.log_event( + event_type="appreciation_reminder_sent", + description=f"{reminder_type.capitalize()} reminder sent for appreciation {appreciation.reference_number} by {user.get_full_name()}", + content_object=appreciation, + ) + + messages.success(request, _(f"{reminder_type.capitalize()} reminder sent to {len(recipients)} recipient(s).")) + except Exception as e: + logger.error(f"Failed to send appreciation reminder: {e}") + messages.error(request, _("Failed to send reminder.")) + + return redirect("appreciation:appreciation_detail", pk=pk) + + # ============================================================================ # LEADERBOARD VIEWS # ============================================================================ @@ -533,8 +719,23 @@ def leaderboard_view(request): queryset = AppreciationStats.objects.filter(year=year, month=month) # Apply RBAC - if not user.is_px_admin() and user.hospital: + selected_hospital = getattr(request, "tenant_hospital", None) + if user.is_px_admin(): + if selected_hospital: + queryset = queryset.filter(hospital=selected_hospital) + elif user.is_hospital_admin() and user.hospital: queryset = queryset.filter(hospital=user.hospital) + elif user.is_px_management() or user.is_px_employee(): + if user.hospital: + queryset = queryset.filter(hospital=user.hospital) + elif user.is_department_manager() and user.department: + queryset = queryset.filter(department=user.department) + elif user.is_champion() and user.department: + queryset = queryset.filter(department=user.department) + elif user.hospital: + queryset = queryset.filter(hospital=user.hospital) + else: + queryset = queryset.none() # Apply filters hospital_filter = request.GET.get('hospital') @@ -669,7 +870,7 @@ def category_list(request): user = request.user # Check permission - if not (user.is_px_admin() or user.is_hospital_admin()): + if not (user.is_px_admin() or user.is_hospital_admin() or user.is_px_employee()): messages.error(request, "You don't have permission to manage categories.") return redirect('appreciation:appreciation_list') @@ -715,7 +916,7 @@ def category_create(request): user = request.user # Check permission - if not (user.is_px_admin() or user.is_hospital_admin()): + if not (user.is_px_admin() or user.is_hospital_admin() or user.is_px_employee()): messages.error(request, "You don't have permission to create categories.") return redirect('appreciation:appreciation_list') @@ -773,7 +974,7 @@ def category_edit(request, pk): user = request.user # Check permission - if not (user.is_px_admin() or user.is_hospital_admin()): + if not (user.is_px_admin() or user.is_hospital_admin() or user.is_px_employee()): messages.error(request, "You don't have permission to edit categories.") return redirect('appreciation:appreciation_list') @@ -818,7 +1019,7 @@ def category_delete(request, pk): user = request.user # Check permission - if not (user.is_px_admin() or user.is_hospital_admin()): + if not (user.is_px_admin() or user.is_hospital_admin() or user.is_px_employee()): messages.error(request, "You don't have permission to delete categories.") return redirect('appreciation:appreciation_list') @@ -853,7 +1054,7 @@ def badge_list(request): user = request.user # Check permission - if not (user.is_px_admin() or user.is_hospital_admin()): + if not (user.is_px_admin() or user.is_hospital_admin() or user.is_px_employee()): messages.error(request, "You don't have permission to manage badges.") return redirect('appreciation:appreciation_list') @@ -899,7 +1100,7 @@ def badge_create(request): user = request.user # Check permission - if not (user.is_px_admin() or user.is_hospital_admin()): + if not (user.is_px_admin() or user.is_hospital_admin() or user.is_px_employee()): messages.error(request, "You don't have permission to create badges.") return redirect('appreciation:appreciation_list') @@ -961,7 +1162,7 @@ def badge_edit(request, pk): user = request.user # Check permission - if not (user.is_px_admin() or user.is_hospital_admin()): + if not (user.is_px_admin() or user.is_hospital_admin() or user.is_px_employee()): messages.error(request, "You don't have permission to edit badges.") return redirect('appreciation:appreciation_list') @@ -1008,7 +1209,7 @@ def badge_delete(request, pk): user = request.user # Check permission - if not (user.is_px_admin() or user.is_hospital_admin()): + if not (user.is_px_admin() or user.is_hospital_admin() or user.is_px_employee()): messages.error(request, "You don't have permission to delete badges.") return redirect('appreciation:appreciation_list') @@ -1039,7 +1240,7 @@ def appreciation_restore(request, pk): """Restore deleted appreciation""" user = request.user - if not (user.is_px_admin() or user.is_hospital_admin()): + if not (user.is_px_admin() or user.is_hospital_admin() or user.is_px_employee()): messages.error(request, "You don't have permission to restore appreciation.") return redirect('config:deleted_items') @@ -1224,6 +1425,16 @@ def public_appreciation_submit(request): if not contact_name or not contact_phone or not message: return JsonResponse({"success": False, "message": "Name, phone, and message are required."}, status=400) + from apps.core.validators import validate_saudi_phone + from django.core.exceptions import ValidationError + try: + validate_saudi_phone(contact_phone) + except ValidationError: + return JsonResponse( + {"success": False, "message": "Please enter a valid Saudi mobile number (e.g. 05XXXXXXXX or +9665XXXXXXXX)."}, + status=400, + ) + if not hospital_id: return JsonResponse({"success": False, "message": "Please select a hospital."}, status=400) @@ -1273,13 +1484,143 @@ def public_appreciation_submit(request): logger.exception("ERROR in public_appreciation_submit") return JsonResponse({"success": False, "message": str(e)}, status=500) +def _appreciation_pdf_context(appreciation): + """Build the common context for the appreciation letter & certificate PDFs.""" + hospital = appreciation.hospital + hospital_name = hospital.name if hospital else "" + hospital_name_ar = getattr(hospital, "name_ar", "") if hospital else "" + + recipient = appreciation.recipient + recipient_name = appreciation.get_recipient_name() or "—" + department_name = appreciation.department.get_localized_name() if appreciation.department else "" + recipient_title = "" + if recipient is not None: + getter = getattr(recipient, "get_localized_job_title", None) + if callable(getter): + recipient_title = getter() or "" + recipient_title = recipient_title or getattr(recipient, "job_title", "") or "" + + meta = appreciation.metadata or {} + is_patient = meta.get("source") == "public_form" or bool(meta.get("submitted_by_name")) + patient_name = (meta.get("submitted_by_name") or "").strip() + + # Signer: sender (unless anonymous), else the activating officer, else generic PX team. + signer = appreciation.sender if (appreciation.sender and not appreciation.is_anonymous) else appreciation.activated_by + signer_name = _("Al Hammadi Patient Experience") + signer_role = _("Patient Experience Team") + if signer: + signer_name = signer.get_full_name() or signer_name + role_names = signer.get_role_names() if hasattr(signer, "get_role_names") else [] + if role_names: + signer_role = ", ".join(role_names) + + date_dt = appreciation.sent_at or appreciation.activated_at or appreciation.created_at + + return { + "hospital_name": hospital_name, + "hospital_name_ar": hospital_name_ar, + "recipient_name": recipient_name, + "recipient_title": recipient_title, + "department_name": department_name, + "is_patient": is_patient, + "patient_name": patient_name, + "message_en": appreciation.message_en or "", + "message_ar": appreciation.message_ar or "", + "has_ar": bool((appreciation.message_ar or "").strip()), + "signer_name": signer_name, + "signer_role": signer_role, + "date_dt": date_dt, + "reference": appreciation.reference_number or "", + } + + +def _render_appreciation_pdf_bytes(template_name, context, obj=None): + """Render a PDF template via WeasyPrint and return the raw PDF bytes. + + When ``obj`` is provided, its hospital letterhead is injected into the context + as ``letterhead_path`` (data URI) via the shared ``pdf_utils`` helper. + Used by both the PDF download views (wraps bytes in HttpResponse) and the + notification task (attaches bytes to email). + """ + from django.conf import settings + from django.template.loader import render_to_string + from weasyprint import HTML + + full_context = dict(context) + if obj is not None: + from apps.core.pdf_utils import _get_letterhead_data_uri + full_context.setdefault("letterhead_path", _get_letterhead_data_uri(obj)) + + html_string = render_to_string(template_name, full_context) + return HTML(string=html_string, base_url=str(settings.BASE_DIR / "static")).write_pdf() + + +def _appreciation_pdf_response(template_name, context, filename, obj=None): + """Render a PDF template via WeasyPrint and return it as an attachment response.""" + from django.http import HttpResponse + + pdf_file = _render_appreciation_pdf_bytes(template_name, context, obj=obj) + response = HttpResponse(pdf_file, content_type="application/pdf") + response["Content-Disposition"] = f'attachment; filename="{filename}"' + return response + + +def _check_appreciation_pdf_access(request, appreciation): + """Shared permission + activation gate for the appreciation PDF views.""" + user = request.user + allowed = ( + user.is_px_admin() + or user.is_hospital_admin() + or user.is_px_management() + or user.is_px_employee() + or (user.hospital_id and appreciation.hospital_id == user.hospital_id) + ) + if not allowed: + messages.error(request, _("You don't have permission to view this appreciation.")) + return redirect("appreciation:appreciation_detail", pk=appreciation.pk) + if not appreciation.activated_at: + messages.error(request, _("This appreciation must be activated before generating a document.")) + return redirect("appreciation:appreciation_detail", pk=appreciation.pk) + if not appreciation.recipient: + messages.error(request, _("Select a recipient before generating a document.")) + return redirect("appreciation:appreciation_detail", pk=appreciation.pk) + return None + + @login_required -def appreciation_pdf(request, pk): - from apps.core.pdf_utils import generate_letterhead_pdf +def appreciation_letter(request, pk): + """Everyday Letter of Appreciation (portrait, message-forward, sender-signed).""" obj = get_object_or_404(Appreciation, id=pk) - return generate_letterhead_pdf( - 'appreciation/appreciation_pdf.html', - {'object': obj}, - f'appreciation_{obj.reference_number}.pdf', + denied = _check_appreciation_pdf_access(request, obj) + if denied: + return denied + ctx = _appreciation_pdf_context(obj) + return _appreciation_pdf_response( + "appreciation/appreciation_letter.html", + ctx, + f"appreciation_letter_{obj.reference_number}.pdf", obj=obj, ) + + +@login_required +def appreciation_certificate(request, pk): + """Formal Certificate of Appreciation (landscape, leadership-signed).""" + obj = get_object_or_404(Appreciation, id=pk) + denied = _check_appreciation_pdf_access(request, obj) + if denied: + return denied + ctx = _appreciation_pdf_context(obj) + hospital = obj.hospital + ctx["ceo_name"] = hospital.ceo.get_full_name() if hospital and hospital.ceo else "" + ctx["medical_director_name"] = ( + hospital.medical_director.get_full_name() if hospital and hospital.medical_director else "" + ) + ctx["hospital_initials"] = ( + "".join(w[0] for w in (hospital.name or "").split()[:2]).upper() if hospital and hospital.name else "HH" + ) + return _appreciation_pdf_response( + "appreciation/appreciation_certificate.html", + ctx, + f"appreciation_certificate_{obj.reference_number}.pdf", + ) diff --git a/apps/appreciation/urls.py b/apps/appreciation/urls.py index 55fe3de..6ba6ea4 100644 --- a/apps/appreciation/urls.py +++ b/apps/appreciation/urls.py @@ -34,8 +34,10 @@ urlpatterns = [ path('new/', ui_views.appreciation_create, name='appreciation_create'), path('detail//', ui_views.appreciation_detail, name='appreciation_detail'), path('detail//activate/', ui_views.appreciation_activate, name='appreciation_activate'), + path('detail//select-recipient/', ui_views.appreciation_select_recipient, name='appreciation_select_recipient'), path('detail//send/', ui_views.appreciation_send, name='appreciation_send'), path('detail//send-to/', ui_views.appreciation_send_to, name='appreciation_send_to'), + path('detail//send-reminder/', ui_views.appreciation_send_dept_reminder, name='appreciation_send_dept_reminder'), path('acknowledge//', ui_views.appreciation_acknowledge, name='appreciation_acknowledge'), path('leaderboard/', ui_views.leaderboard_view, name='leaderboard_view'), path('badges/', ui_views.my_badges_view, name='my_badges_view'), @@ -64,5 +66,7 @@ urlpatterns = [ # Public submission (no auth required) path('public/submit/', ui_views.public_appreciation_submit, name='public_appreciation_submit'), - path('detail//pdf/', ui_views.appreciation_pdf, name='appreciation_pdf'), + # PDF downloads (require activation) + path('detail//letter/', ui_views.appreciation_letter, name='appreciation_letter'), + path('detail//certificate/', ui_views.appreciation_certificate, name='appreciation_certificate'), ] diff --git a/apps/appreciation/views.py b/apps/appreciation/views.py index 439404b..a2624c2 100644 --- a/apps/appreciation/views.py +++ b/apps/appreciation/views.py @@ -398,7 +398,7 @@ class AppreciationBadgeViewSet(viewsets.ModelViewSet): queryset = AppreciationBadge.objects.all() serializer_class = AppreciationBadgeSerializer - permission_classes = [IsAuthenticated, IsPXAdminOrHospitalAdmin] + permission_classes = [IsAuthenticated] def get_queryset(self): """Filter badges by hospital""" diff --git a/apps/complaints/forms.py b/apps/complaints/forms.py index cc6729c..0bbb76f 100644 --- a/apps/complaints/forms.py +++ b/apps/complaints/forms.py @@ -26,6 +26,7 @@ from apps.complaints.models import ( ) from apps.core.models import PriorityChoices, SeverityChoices from apps.core.form_mixins import HospitalFieldMixin, DepartmentFieldMixin +from apps.core.validators import SAUDI_PHONE_HTML_PATTERN, validate_saudi_phone from apps.organizations.models import Area, Department, Hospital, LocationType, Patient, Staff, Section @@ -93,7 +94,12 @@ class PublicComplaintForm(forms.ModelForm): label=_("Mobile Number"), max_length=20, required=True, - widget=forms.TextInput(attrs={"class": "form-control", "placeholder": _("Your mobile number")}), + widget=forms.TextInput(attrs={ + "class": "form-control", + "placeholder": _("05XXXXXXXX or +9665XXXXXXXX"), + "pattern": SAUDI_PHONE_HTML_PATTERN, + "inputmode": "tel", + }), ) # Patient Information @@ -280,16 +286,10 @@ class PublicComplaintForm(forms.ModelForm): ).order_by("name_en") def clean_mobile_number(self): - """Validate mobile number format""" + """Validate Saudi mobile number format (05xxxxxxxx / 5xxxxxxxx / +9665xxxxxxxx / 9665xxxxxxxx).""" mobile_number = self.cleaned_data.get("mobile_number") - - # Remove spaces and dashes - mobile_number = mobile_number.replace(" ", "").replace("-", "") - - # Validate Saudi mobile format (05xxxxxxxx) - if not mobile_number.startswith("05") or len(mobile_number) != 10: - raise ValidationError(_("Please enter a valid Saudi mobile number (10 digits starting with 05)")) - + if mobile_number: + validate_saudi_phone(mobile_number) return mobile_number def clean_national_id(self): @@ -711,6 +711,7 @@ class InquiryForm(HospitalFieldMixin, forms.ModelForm): "contact_name", "contact_phone", "contact_email", + "national_id", "section", "priority", "source", @@ -763,6 +764,24 @@ class InquiryForm(HospitalFieldMixin, forms.ModelForm): department_id=department_id ).order_by("name_en") + def clean_area(self): + area = self.cleaned_data.get("area") + if not area: + return None + return area + + def clean_department(self): + dept = self.cleaned_data.get("department") + if not dept: + return None + return dept + + def clean_section(self): + section = self.cleaned_data.get("section") + if not section: + return None + return section + class SLAConfigForm(HospitalFieldMixin, forms.ModelForm): """Form for creating and editing SLA configurations""" @@ -869,7 +888,13 @@ class PublicInquiryForm(forms.Form): label=_("Phone Number"), max_length=20, required=True, - widget=forms.TextInput(attrs={"class": "form-control", "placeholder": _("Your phone number")}), + validators=[validate_saudi_phone], + widget=forms.TextInput(attrs={ + "class": "form-control", + "placeholder": _("05XXXXXXXX or +9665XXXXXXXX"), + "pattern": SAUDI_PHONE_HTML_PATTERN, + "inputmode": "tel", + }), ) email = forms.EmailField( @@ -878,6 +903,13 @@ class PublicInquiryForm(forms.Form): widget=forms.EmailInput(attrs={"class": "form-control", "placeholder": _("your@email.com")}), ) + national_id = forms.CharField( + label=_("National ID/Iqama"), + max_length=20, + required=False, + widget=forms.TextInput(attrs={"class": "form-control", "placeholder": _("National ID or Iqama (optional)")}), + ) + # Inquiry Details hospital = forms.ModelChoiceField( label=_("Hospital"), diff --git a/apps/complaints/migrations/0043_alter_inquiry_status.py b/apps/complaints/migrations/0043_alter_inquiry_status.py new file mode 100644 index 0000000..0abe28a --- /dev/null +++ b/apps/complaints/migrations/0043_alter_inquiry_status.py @@ -0,0 +1,18 @@ +# Generated by Django 6.0.1 on 2026-07-15 15:11 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('complaints', '0042_inquiry_closed_by_inquiry_resolved_by'), + ] + + operations = [ + migrations.AlterField( + model_name='inquiry', + name='status', + field=models.CharField(choices=[('open', 'Open'), ('in_progress', 'In Progress'), ('resolved', 'Resolved'), ('closed', 'Closed'), ('contact_no_response', 'Contacted - No Response')], db_index=True, default='open', max_length=25), + ), + ] diff --git a/apps/complaints/migrations/0044_alter_complaint_contact_phone_and_more.py b/apps/complaints/migrations/0044_alter_complaint_contact_phone_and_more.py new file mode 100644 index 0000000..c878320 --- /dev/null +++ b/apps/complaints/migrations/0044_alter_complaint_contact_phone_and_more.py @@ -0,0 +1,24 @@ +# Generated by Django 6.0.1 on 2026-07-18 14:46 + +import apps.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('complaints', '0043_alter_inquiry_status'), + ] + + operations = [ + migrations.AlterField( + model_name='complaint', + name='contact_phone', + field=models.CharField(blank=True, max_length=20, validators=[apps.core.validators.validate_saudi_phone]), + ), + migrations.AlterField( + model_name='inquiry', + name='contact_phone', + field=models.CharField(blank=True, max_length=20, validators=[apps.core.validators.validate_saudi_phone]), + ), + ] diff --git a/apps/complaints/migrations/0045_inquiry_add_national_id.py b/apps/complaints/migrations/0045_inquiry_add_national_id.py new file mode 100644 index 0000000..be3641e --- /dev/null +++ b/apps/complaints/migrations/0045_inquiry_add_national_id.py @@ -0,0 +1,24 @@ +# Generated by Django 6.0.1 on 2026-07-19 06:23 + +import apps.core.encryption +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('complaints', '0044_alter_complaint_contact_phone_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='inquiry', + name='national_id', + field=apps.core.encryption.EncryptedCharField(blank=True, help_text='National ID/Iqama of the contact', max_length=512), + ), + migrations.AddField( + model_name='inquiry', + name='national_id_hash', + field=models.CharField(blank=True, db_index=True, max_length=64), + ), + ] diff --git a/apps/complaints/models.py b/apps/complaints/models.py index f846acf..f568d60 100644 --- a/apps/complaints/models.py +++ b/apps/complaints/models.py @@ -16,9 +16,10 @@ from django.contrib.contenttypes.fields import GenericRelation from django.db import models from django.utils import timezone from django.utils.translation import gettext_lazy as _ - from apps.core.encryption import EncryptedCharField, compute_national_id_hash, mask_national_id + from apps.core.models import PriorityChoices, SeverityChoices, SoftDeleteModel, TenantModel, TimeStampedModel, UUIDModel +from apps.core.validators import validate_saudi_phone from apps.organizations.models import LocationType @@ -213,7 +214,7 @@ class Complaint(UUIDModel, TimeStampedModel, SoftDeleteModel): # Contact information for anonymous/unregistered submissions contact_name = models.CharField(max_length=200, blank=True) - contact_phone = models.CharField(max_length=20, blank=True) + contact_phone = models.CharField(max_length=20, blank=True, validators=[validate_saudi_phone]) contact_email = models.EmailField(blank=True) # Public complaint form fields @@ -1539,8 +1540,10 @@ class Inquiry(UUIDModel, TimeStampedModel, SoftDeleteModel): # Contact information (if patient not in system) contact_name = models.CharField(max_length=200, blank=True) - contact_phone = models.CharField(max_length=20, blank=True) + contact_phone = models.CharField(max_length=20, blank=True, validators=[validate_saudi_phone]) contact_email = models.EmailField(blank=True) + national_id = EncryptedCharField(max_length=512, blank=True, help_text="National ID/Iqama of the contact") + national_id_hash = models.CharField(max_length=64, blank=True, db_index=True) # Organization hospital = models.ForeignKey("organizations.Hospital", on_delete=models.CASCADE, related_name="inquiries") @@ -1699,6 +1702,7 @@ class Inquiry(UUIDModel, TimeStampedModel, SoftDeleteModel): ("in_progress", _("In Progress")), ("resolved", _("Resolved")), ("closed", _("Closed")), + ("contact_no_response", _("Contacted - No Response")), ], default="open", db_index=True, @@ -2024,11 +2028,27 @@ class Inquiry(UUIDModel, TimeStampedModel, SoftDeleteModel): else: self.timeline_sla = "more_than_72_hours" + if self.national_id: + self.national_id_hash = compute_national_id_hash(self.national_id) + else: + self.national_id_hash = "" + super().save(*args, **kwargs) def __str__(self): return f"{self.subject} ({self.status})" + @property + def handling_department_id(self): + """The department currently responsible for handling this inquiry. + + When the inquiry has been forwarded, this is the receiving department + (``transferred_to_department``); otherwise it's the primary ``department``. + Used to gate department actions so a department that has forwarded an + inquiry away can no longer act on it — only the current handler can. + """ + return self.transferred_to_department_id or self.department_id + def get_absolute_url(self): from django.urls import reverse diff --git a/apps/complaints/tasks.py b/apps/complaints/tasks.py index 8a21fd5..eb36e59 100644 --- a/apps/complaints/tasks.py +++ b/apps/complaints/tasks.py @@ -3069,26 +3069,36 @@ def _apply_inquiry_ai_analysis(inquiry, analysis, emotion_analysis): inquiry.priority = analysis.get("priority", inquiry.priority) - department_name = analysis.get("department", "") - if department_name: - if department := Department.objects.filter( - hospital_id=inquiry.hospital.id, name__iexact=department_name, status="active" - ).first(): - inquiry.department = department - logger.info(f"Matched department exactly: {department.name}") - elif department := Department.objects.filter( - hospital_id=inquiry.hospital.id, name__icontains=department_name, status="active" - ).first(): - inquiry.department = department - logger.info(f"Matched department partially: {department.name} from '{department_name}'") + # Department auto-detection — skip when the user already provided one + # (quick-create modal sets metadata.ai_skip_department). For those, AI only + # fills subject + priority, never overriding the user's department. + if not (inquiry.metadata or {}).get("ai_skip_department"): + department_name = analysis.get("department", "") + if department_name: + if department := Department.objects.filter( + hospital_id=inquiry.hospital.id, name__iexact=department_name, status="active" + ).first(): + inquiry.department = department + logger.info(f"Matched department exactly: {department.name}") + elif department := Department.objects.filter( + hospital_id=inquiry.hospital.id, name__icontains=department_name, status="active" + ).first(): + inquiry.department = department + logger.info(f"Matched department partially: {department.name} from '{department_name}'") if analysis.get("brief_summary_en"): inquiry.ai_brief_en = analysis["brief_summary_en"] if analysis.get("brief_summary_ar"): inquiry.ai_brief_ar = analysis["brief_summary_ar"] + # For quick-created inquiries (no user-authored subject), let the AI title + # become the subject. Guarded by a metadata flag so user subjects are never + # overwritten for inquiries created via the full form. if not inquiry.metadata: inquiry.metadata = {} + if inquiry.metadata.get("subject_pending_ai") and analysis.get("title_en"): + inquiry.subject = analysis["title_en"][:500] + inquiry.metadata["subject_pending_ai"] = False inquiry.metadata["ai_analysis"] = { "title_en": analysis.get("title_en", ""), @@ -3123,6 +3133,7 @@ def _apply_inquiry_ai_analysis(inquiry, analysis, emotion_analysis): inquiry.save( update_fields=[ + "subject", "priority", "department", "ai_brief_en", @@ -3696,3 +3707,39 @@ def send_department_notification_task(payload): f"{emailed} emailed, {smsed} smsed" ) return {"emailed": emailed, "smsed": smsed} + + +@shared_task +def send_inquiry_reminder_email(inquiry_id, reminder_type, recipients): + """Send a reminder email to department champion and manager for an inquiry.""" + import logging + + logger = logging.getLogger(__name__) + + try: + from apps.complaints.models import Inquiry + from apps.notifications.services import NotificationService, get_email_header_html + + inquiry = Inquiry.objects.get(pk=inquiry_id) + + for recipient in recipients: + NotificationService.send_email( + email=recipient["email"], + subject=f"Reminder: Inquiry #{inquiry.reference_number} - Response Required", + message=f"This is a reminder that inquiry #{inquiry.reference_number} is awaiting your department's response. Please submit your response as soon as possible.", + html_message=f""" +
+ {get_email_header_html()} +
+

Reminder: Response Required

+

This is a reminder that inquiry #{inquiry.reference_number} is awaiting your department's response.

+

Please submit your response as soon as possible.

+
+
+""", + related_object=inquiry, + ) + + logger.info(f"Inquiry {inquiry_id} {reminder_type} reminder sent to {len(recipients)} recipients") + except Exception as e: + logger.error(f"Failed to send inquiry reminder email for {inquiry_id}: {e}") diff --git a/apps/complaints/ui_views.py b/apps/complaints/ui_views.py index adccf64..d741dd4 100644 --- a/apps/complaints/ui_views.py +++ b/apps/complaints/ui_views.py @@ -25,6 +25,25 @@ from apps.organizations.models import Department, Hospital, Staff from apps.observations.models import Observation from apps.px_sources.models import SourceUser, PXSource + +def _safe_next_redirect(request, fallback): + """Redirect to request.POST['next'] if it's a safe relative URL. + + Blocks open-redirect attacks. A URL is considered safe only if it starts + with a single leading slash and is not a protocol-relative form (``//`` + or ``/\\``) which browsers may resolve against a different host. + Falls back to ``fallback`` (a redirect()/reverse() result) otherwise. + """ + next_url = request.POST.get("next") if hasattr(request, "POST") else None + if ( + next_url + and next_url.startswith("/") + and not next_url.startswith("//") + and not next_url.startswith("/\\") + ): + return redirect(next_url) + return fallback + from .models import ( Complaint, ComplaintAttachment, @@ -330,6 +349,9 @@ def complaint_list(request): queryset = queryset.filter(hospital=selected_hospital) elif user.is_hospital_admin() and user.hospital: queryset = queryset.filter(hospital=user.hospital) + elif user.is_px_management() or user.is_px_employee(): + if user.hospital: + queryset = queryset.filter(hospital=user.hospital) elif user.is_department_manager() and user.department: queryset = queryset.filter(department=user.department) elif user.is_champion() and user.department: @@ -877,9 +899,7 @@ def complaint_detail(request, pk): context["notes"] = complaint.notes.select_related("created_by").all() context["notes_count"] = context["notes"].count() - # Datastar variant for testing: /complaints//?ds=1 renders complaint_detail_ds.html - template = "complaints/complaint_detail_ds.html" if request.GET.get("ds") else "complaints/complaint_detail.html" - return render(request, template, context) + return render(request, "complaints/complaint_detail.html", context) @login_required @@ -1462,6 +1482,18 @@ def complaint_send_dept_reminder(request, pk): ) department = involved_dept.department + reminder_type = request.POST.get("reminder_type", "first") + + if reminder_type == "first" and involved_dept.first_reminder_sent_at: + messages.warning(request, _("First reminder already sent to this department.")) + return redirect("complaints:complaint_detail", pk=pk) + if reminder_type == "second" and involved_dept.second_reminder_sent_at: + messages.warning(request, _("Second reminder already sent to this department.")) + return redirect("complaints:complaint_detail", pk=pk) + if reminder_type == "second" and not involved_dept.first_reminder_sent_at: + messages.warning(request, _("Please send the first reminder before the second.")) + return redirect("complaints:complaint_detail", pk=pk) + targets = get_champion_and_manager(department) if not targets: messages.error( @@ -1522,10 +1554,16 @@ def complaint_send_dept_reminder(request, pk): notified.append(f"{display_name} ({label})") if sent_any: + if reminder_type == "first": + involved_dept.first_reminder_sent_at = timezone.now() + else: + involved_dept.second_reminder_sent_at = timezone.now() + involved_dept.save(update_fields=["first_reminder_sent_at", "second_reminder_sent_at"]) + ComplaintUpdate.objects.create( complaint=complaint, update_type="communication", - message=f"Manual reminder sent to {department.get_localized_name()} — {', '.join(notified)}", + message=f"Manual {reminder_type} reminder sent to {department.get_localized_name()} — {', '.join(notified)}", created_by=user, metadata={ "event_type": "manual_reminder", @@ -2762,7 +2800,7 @@ def inquiry_list(request): from .models import Inquiry # Base queryset with optimizations - queryset = Inquiry.objects.select_related("patient", "hospital", "department", "assigned_to", "responded_by") + queryset = Inquiry.objects.select_related("patient", "hospital", "department", "outgoing_department", "assigned_to", "responded_by") # Apply RBAC filters user = request.user @@ -2774,6 +2812,9 @@ def inquiry_list(request): queryset = queryset.filter(hospital=selected_hospital) elif user.is_hospital_admin() and user.hospital: queryset = queryset.filter(hospital=user.hospital) + elif user.is_px_management() or user.is_px_employee(): + if user.hospital: + queryset = queryset.filter(hospital=user.hospital) elif user.is_department_manager() and user.department: queryset = queryset.filter( Q(department=user.department) | Q(outgoing_department=user.department) @@ -2789,33 +2830,55 @@ def inquiry_list(request): else: queryset = queryset.none() - # Apply filters + # Snapshot the RBAC base before direction/filters so we can compute + # incoming/outgoing counts for the tabs. + base_qs = queryset + + # Apply non-direction filters (status, category, hospital, department, search) status_filter = request.GET.get("status") if status_filter: - queryset = queryset.filter(status=status_filter) + base_qs = base_qs.filter(status=status_filter) category_filter = request.GET.get("category") if category_filter: - queryset = queryset.filter(category=category_filter) + base_qs = base_qs.filter(category=category_filter) hospital_filter = request.GET.get("hospital") if hospital_filter: - queryset = queryset.filter(hospital_id=hospital_filter) + base_qs = base_qs.filter(hospital_id=hospital_filter) department_filter = request.GET.get("department") if department_filter: - queryset = queryset.filter(department_id=department_filter) + base_qs = base_qs.filter(department_id=department_filter) - # Search search_query = request.GET.get("search") if search_query: - queryset = queryset.filter( + base_qs = base_qs.filter( Q(subject__icontains=search_query) | Q(message__icontains=search_query) | Q(contact_name__icontains=search_query) | Q(contact_email__icontains=search_query) ) + # Direction split: incoming vs outgoing + direction = request.GET.get("direction", "incoming") + dept = getattr(user, "department", None) + is_dept_scoped = user.is_department_manager() or user.is_champion() + if is_dept_scoped and dept: + sent_away = Q(department=dept) & Q(transferred_to_department__isnull=False) & ~Q(transferred_to_department=dept) + incoming_qs = base_qs.filter( + Q(department=dept) | Q(transferred_to_department=dept) | Q(outgoing_department=dept) + ).exclude(sent_away) + outgoing_qs = base_qs.filter(sent_away) + else: + # PX roles: incoming = not forwarded; outgoing = forwarded to a department + incoming_qs = base_qs.exclude(transferred_to_department__isnull=False) + outgoing_qs = base_qs.filter(transferred_to_department__isnull=False) + + incoming_count = incoming_qs.count() + outgoing_count = outgoing_qs.count() + queryset = outgoing_qs if direction == "outgoing" else incoming_qs + # Ordering order_by = request.GET.get("order_by", "-created_at") queryset = queryset.order_by(order_by) @@ -2850,6 +2913,9 @@ def inquiry_list(request): "stats": stats, "departments": departments, "filters": request.GET, + "direction": direction, + "incoming_count": incoming_count, + "outgoing_count": outgoing_count, } return render(request, "complaints/inquiry_list.html", context) @@ -2884,7 +2950,11 @@ def inquiry_detail(request, pk): # Check access user = request.user if not user.is_px_admin(): - if user.is_hospital_admin() and inquiry.hospital != user.hospital: + if user.is_px_management() or user.is_px_employee(): + if user.hospital and inquiry.hospital != user.hospital: + messages.error(request, "You don't have permission to view this inquiry.") + return redirect("inquiries:inquiry_list") + elif user.is_hospital_admin() and inquiry.hospital != user.hospital: messages.error(request, "You don't have permission to view this inquiry.") return redirect("inquiries:inquiry_list") elif ( @@ -3146,6 +3216,151 @@ def inquiry_send_to_staff(request, pk): return redirect("inquiries:inquiry_detail", pk=pk) +@login_required +@require_http_methods(["POST"]) +def inquiry_quick_create(request): + """Quick-create an inquiry from the simple modal (PX staff only). + + Fields: message, contact name, phone (required), email (optional), + location type, category, department, section. The inquiry is auto-activated + and assigned to the current user. AI fills subject (from its title) and + priority in the background; the user's department/section/category are kept. + """ + from .models import Inquiry, InquiryUpdate + + user = request.user + if not ( + user.is_px_admin() or user.is_hospital_admin() + or user.is_px_management() or user.is_px_employee() + ): + return JsonResponse( + {"success": False, "error": str(_("You don't have permission to create inquiries."))}, + status=403, + ) + + message = (request.POST.get("message") or "").strip() + contact_name = (request.POST.get("contact_name") or "").strip() + contact_phone = (request.POST.get("contact_phone") or "").strip() + contact_email = (request.POST.get("contact_email") or "").strip() + location_type = (request.POST.get("location_type") or "").strip() + department_id = (request.POST.get("department") or "").strip() + section_id = (request.POST.get("section") or "").strip() + + # Required-field validation (the inquiry-type `category` is intentionally NOT + # collected here — the model field is required at DB level so it is defaulted + # to "general" below. The department-category in the modal is a UI filter only.) + missing = { + "message": message, + "contact_name": contact_name, + "contact_phone": contact_phone, + "location_type": location_type, + "department": department_id, + } + for field, value in missing.items(): + if not value: + return JsonResponse( + {"success": False, "error": str(_("This field is required: {}").format(field))}, + status=400, + ) + + hospital = getattr(request, "tenant_hospital", None) or user.hospital + if not hospital: + return JsonResponse({"success": False, "error": str(_("No hospital assigned to your account."))}, status=400) + + # Validate location_type + from apps.complaints.models import Inquiry as _Inquiry + valid_location_types = {c for c, _ in _Inquiry._meta.get_field("location_type").choices or []} + if valid_location_types and location_type not in valid_location_types: + return JsonResponse({"success": False, "error": str(_("Invalid location type."))}, status=400) + + # Validate department belongs to the hospital + from apps.organizations.models import Department, Section + try: + department = Department.objects.get(id=department_id, hospital=hospital, status="active") + except Department.DoesNotExist: + return JsonResponse({"success": False, "error": str(_("Invalid department for this hospital."))}, status=400) + + # Section is optional — only validate if provided + section = None + if section_id: + try: + section = Section.objects.get(id=section_id, department=department) + except Section.DoesNotExist: + return JsonResponse( + {"success": False, "error": str(_("Selected section does not belong to this department."))}, + status=400, + ) + + try: + inquiry = Inquiry.objects.create( + hospital=hospital, + created_by=user, + message=message, + contact_name=contact_name, + contact_phone=contact_phone, + contact_email=contact_email, + location_type=location_type, + category="general", + department=department, + section=section, + # The inquiry is routed to this department for handling — mark it as + # sent so it appears in the department's incoming queue (not outgoing). + sent_to_department=True, + sent_to_department_at=timezone.now(), + # Defaults — AI refines subject/priority in the background (NOT department) + subject=message[:80], + priority="medium", + # Auto-activate + auto-assign to the creator + status="in_progress", + assigned_to=user, + assigned_at=timezone.now(), + activated_at=timezone.now(), + metadata={ + "subject_pending_ai": True, # AI fills the subject from its generated title + "ai_skip_department": True, # user provided department — AI must not override it + }, + ) + + # Background AI analysis (fills subject/priority/department) + notifications + from apps.complaints.tasks import analyze_inquiry_with_ai, notify_staff_new_item + analyze_inquiry_with_ai.delay(str(inquiry.id)) + notify_staff_new_item.delay("inquiry", str(inquiry.id)) + + InquiryUpdate.objects.create( + inquiry=inquiry, + update_type="note", + message="Inquiry created.", + created_by=user, + ) + roles_display = ", ".join(user.get_role_names()) if hasattr(user, "get_role_names") else "" + InquiryUpdate.objects.create( + inquiry=inquiry, + update_type="assignment", + message=f"Inquiry auto-activated and assigned to {user.get_full_name()} ({roles_display})", + created_by=user, + ) + + AuditService.log_event( + event_type="inquiry_created", + description=f"Quick inquiry created: {inquiry.subject}", + user=user, + content_object=inquiry, + metadata={"category": inquiry.category, "quick_create": True}, + ) + + return JsonResponse({ + "success": True, + "inquiry_id": str(inquiry.id), + "reference_number": inquiry.reference_number, + }) + except Exception as e: + logger.error(f"Quick inquiry create failed: {e}") + return JsonResponse( + {"success": False, "error": str(_("An error occurred while creating the inquiry."))}, + status=500, + ) + + @login_required @require_http_methods(["GET", "POST"]) def inquiry_create(request): @@ -3431,6 +3646,8 @@ def inquiry_assign(request, pk): user.is_px_admin() or user.is_hospital_admin() or (user.is_department_manager() and user.department and user.department == inquiry.department) + or user.is_px_management() + or user.is_px_employee() ) if not can_assign: messages.error(request, "You don't have permission to assign inquiries.") @@ -3509,24 +3726,37 @@ def inquiry_change_status(request, pk): if not ( user.is_px_admin() or user.is_hospital_admin() or user.is_px_management() or user.is_px_employee() + or (user.is_department_manager() and user.department_id == inquiry.handling_department_id) + or (user.is_champion() and user.department_id == inquiry.handling_department_id) ): messages.error(request, "You don't have permission to change inquiry status.") - return redirect("inquiries:inquiry_detail", pk=pk) + return _safe_next_redirect(request, redirect("inquiries:inquiry_detail", pk=pk)) new_status = request.POST.get("status") note = request.POST.get("note", "") if not new_status: messages.error(request, "Please select a status.") - return redirect("inquiries:inquiry_detail", pk=pk) + return _safe_next_redirect(request, redirect("inquiries:inquiry_detail", pk=pk)) old_status = inquiry.status inquiry.status = new_status # Handle status-specific logic - if new_status == "resolved" and not inquiry.response: - messages.error(request, "Please add a response before resolving.") - return redirect("inquiries:inquiry_detail", pk=pk) + # Department users (champion / dept manager) must record a patient contact + # outcome before closing/resolving an inquiry. PX roles follow their own flow. + if new_status in ("resolved", "closed") and (user.is_champion() or user.is_department_manager()): + if inquiry.contact_status not in ("contacted", "contacted_no_response"): + messages.error(request, _("Please record a patient contact outcome before closing.")) + return _safe_next_redirect(request, redirect("inquiries:inquiry_detail", pk=pk)) + + # "Contacted - No Response" is a terminal status set when the department could + # not reach the patient. Auto-sync the contact_status tracking so outreach data + # stays consistent without double data entry. + if new_status == "contact_no_response": + inquiry.contact_status = "contacted_no_response" + inquiry.contact_status_at = timezone.now() + inquiry.contact_status_by = user inquiry._acting_user = request.user inquiry.save() @@ -3551,7 +3781,67 @@ def inquiry_change_status(request, pk): ) messages.success(request, f"Inquiry status changed to {new_status}.") - return redirect("inquiries:inquiry_detail", pk=pk) + return _safe_next_redirect(request, redirect("inquiries:inquiry_detail", pk=pk)) + + +@login_required +@require_http_methods(["POST"]) +def inquiry_set_contact_status(request, pk): + """Record the outcome of the department's patient-contact attempt. + + Sets the existing ``contact_status`` field (not_contacted / contacted / + contacted_no_response). Used by the department (champion/manager) that owns + the inquiry to log communication outcomes with the patient. + """ + from .models import Inquiry, InquiryUpdate + + inquiry = get_object_or_404(Inquiry, pk=pk) + + user = request.user + if not ( + user.is_px_admin() or user.is_hospital_admin() + or user.is_px_management() or user.is_px_employee() + or (user.is_department_manager() and user.department_id == inquiry.handling_department_id) + or (user.is_champion() and user.department_id == inquiry.handling_department_id) + ): + messages.error(request, _("You don't have permission to set the contact status.")) + return redirect("inquiries:inquiry_detail", pk=pk) + + new_contact_status = request.POST.get("contact_status") + note = request.POST.get("note", "").strip() + + valid = {c for c, _ in Inquiry._meta.get_field("contact_status").choices} + if new_contact_status not in valid: + messages.error(request, _("Please select a valid contact status.")) + return redirect("inquiries:inquiry_detail", pk=pk) + + old_contact_status = inquiry.contact_status + inquiry.contact_status = new_contact_status + inquiry.contact_status_at = timezone.now() + inquiry.contact_status_by = user + inquiry.save(update_fields=["contact_status", "contact_status_at", "contact_status_by"]) + + display = dict(Inquiry._meta.get_field("contact_status").choices).get(new_contact_status, new_contact_status) + InquiryUpdate.objects.create( + inquiry=inquiry, + update_type="communication", + message=note or _("Contact status set to: {status}").format(status=display), + created_by=user, + ) + + AuditService.log_event( + event_type="inquiry_contact_status", + description=_("Contact status changed from {old} to {new}").format( + old=old_contact_status or "—", new=new_contact_status + ), + user=user, + content_object=inquiry, + metadata={"old_contact_status": old_contact_status, "new_contact_status": new_contact_status}, + ) + + messages.success(request, _("Contact status updated to: {status}").format(status=display)) + + return _safe_next_redirect(request, redirect("inquiries:inquiry_detail", pk=pk)) @login_required @@ -3566,6 +3856,8 @@ def inquiry_reopen(request, pk): user.is_px_admin() or user.is_hospital_admin() or (user.is_department_manager() and user.department == inquiry.department) + or user.is_px_management() + or user.is_px_employee() ): messages.error(request, "You don't have permission to reopen inquiries.") return redirect("inquiries:inquiry_detail", pk=pk) @@ -3643,6 +3935,8 @@ def inquiry_respond(request, pk): and user.department and user.department in [inquiry.department, inquiry.outgoing_department] ) + or user.is_px_management() + or user.is_px_employee() ) if not can_respond: messages.error(request, "You don't have permission to respond to inquiries.") @@ -3755,8 +4049,9 @@ def inquiry_transfer_to_department(request, pk): if not ( user.is_px_admin() or user.is_hospital_admin() - or user.is_department_manager() + or (user.is_department_manager() and user.department_id == inquiry.handling_department_id) or user.is_px_management() or user.is_px_employee() + or (user.is_champion() and user.department_id == inquiry.handling_department_id) ): messages.error(request, _("You don't have permission to transfer inquiries to departments.")) return redirect("inquiries:inquiry_detail", pk=pk) @@ -4000,8 +4295,9 @@ def inquiry_send_to(request, pk): if not ( user.is_px_admin() or user.is_hospital_admin() - or user.is_department_manager() + or (user.is_department_manager() and user.department_id == inquiry.handling_department_id) or user.is_px_management() or user.is_px_employee() + or (user.is_champion() and user.department_id == inquiry.handling_department_id) ): return JsonResponse({ "success": False, @@ -4097,9 +4393,8 @@ def inquiry_send_to(request, pk): inquiry.transferred_to_department = department inquiry.transfer_count = (inquiry.transfer_count or 0) + 1 - if inquiry.department_id == department.pk: - inquiry.sent_to_department = True - inquiry.sent_to_department_at = timezone.now() + inquiry.sent_to_department = True + inquiry.sent_to_department_at = timezone.now() sla_config = inquiry.get_sla_config() if sla_config and sla_config.dept_response_hours: @@ -4184,6 +4479,8 @@ def inquiry_department_response(request, pk): inquiry.department == user.department or inquiry.outgoing_department == user.department )) + or user.is_px_management() + or user.is_px_employee() ): messages.error(request, "You don't have permission to respond to this inquiry.") return redirect("inquiries:inquiry_detail", pk=pk) @@ -4243,28 +4540,6 @@ Generate a JSON response with: content_object=inquiry, ) - # Notify inquirer that department has responded - try: - from apps.notifications.services import NotificationService - from apps.core.utils import build_public_track_url - - track_url = build_public_track_url("inquiry", inquiry.reference_number) - if inquiry.contact_phone: - NotificationService.send_sms( - phone=inquiry.contact_phone, - message=f"PX360: Your inquiry {inquiry.reference_number} has been responded to. View: {track_url}", - related_object=inquiry, - ) - if inquiry.contact_email: - NotificationService.send_email( - email=inquiry.contact_email, - subject=f"PX360: Response to Your Inquiry {inquiry.reference_number}", - message=f"Your inquiry has been responded to.\n\nView: {track_url}", - related_object=inquiry, - ) - except Exception as e: - logger.warning(f"Failed to send inquirer notification: {e}") - messages.success(request, "Department response submitted successfully.") if request.headers.get('X-Requested-With') == 'XMLHttpRequest': from django.http import JsonResponse @@ -4307,30 +4582,29 @@ def inquiry_send_dept_response_reminder(request, pk): reminder_type = request.POST.get("reminder_type", "first") + if reminder_type == "first" and inquiry.dept_response_reminder_sent_at: + messages.warning(request, "First reminder already sent.") + return redirect("inquiries:inquiry_detail", pk=pk) + if reminder_type == "second" and inquiry.dept_response_second_reminder_sent_at: + messages.warning(request, "Second reminder already sent.") + return redirect("inquiries:inquiry_detail", pk=pk) + if reminder_type == "second" and not inquiry.dept_response_reminder_sent_at: + messages.warning(request, "Please send the first reminder before the second.") + return redirect("inquiries:inquiry_detail", pk=pk) + try: - from apps.notifications.services import NotificationService, get_email_header_html + from apps.organizations.department_contacts import get_champion_and_manager + + targets = get_champion_and_manager(dept) + if not targets: + messages.error(request, f"No champion or manager assigned to {dept.name}.") + return redirect("inquiries:inquiry_detail", pk=pk) recipients = [] - if dept.champion and dept.champion.user and dept.champion.user.email: - recipients.append(dept.champion.user) - - for recipient in recipients: - NotificationService.send_email( - email=recipient.email, - subject=f"Reminder: Inquiry #{inquiry.reference_number} - Response Required", - message=f"This is a reminder that inquiry #{inquiry.reference_number} is awaiting your department's response. Please submit your response as soon as possible.", - html_message=f""" -
- {get_email_header_html()} -
-

Reminder: Response Required

-

This is a reminder that inquiry #{inquiry.reference_number} is awaiting your department's response.

-

Please submit your response as soon as possible.

-
-
-""", - related_object=inquiry, - ) + for target in targets: + email = target.get("email") or "" + if email: + recipients.append({"email": email, "name": target.get("display_name", "")}) if reminder_type == "first": inquiry.dept_response_reminder_sent_at = timezone.now() @@ -4338,6 +4612,9 @@ def inquiry_send_dept_response_reminder(request, pk): inquiry.dept_response_second_reminder_sent_at = timezone.now() inquiry.save() + from .tasks import send_inquiry_reminder_email + send_inquiry_reminder_email.delay(str(inquiry.id), reminder_type, recipients) + InquiryUpdate.objects.create( inquiry=inquiry, update_type="note", @@ -4400,7 +4677,7 @@ def inquiry_update_contact_stage(request, pk): inquiry = get_object_or_404(Inquiry, pk=pk) user = request.user - if not (user.is_px_admin() or user.is_hospital_admin() or inquiry.assigned_to == user): + if not (user.is_px_admin() or user.is_hospital_admin() or inquiry.assigned_to == user or user.is_px_management() or user.is_px_employee()): messages.error(request, _("You don't have permission to update contact tracking.")) return redirect("inquiries:inquiry_detail", pk=pk) @@ -4885,6 +5162,7 @@ def public_inquiry_submit(request): name = request.POST.get("name") email = request.POST.get("email") phone = request.POST.get("phone") + national_id = request.POST.get("national_id", "") hospital_id = request.POST.get("hospital") location_type = request.POST.get("location_type", "") department_id = request.POST.get("department", "") @@ -4949,6 +5227,7 @@ def public_inquiry_submit(request): contact_name=name, contact_phone=phone, contact_email=email, + national_id=national_id, status="open", is_outgoing=False, ) @@ -6508,7 +6787,7 @@ def adverse_action_add(request, complaint_pk): "complaint": complaint, "action_type_choices": ComplaintAdverseAction.ActionType.choices, "severity_choices": ComplaintAdverseAction.SeverityLevel.choices, - "staff_list": Staff.objects.filter(hospital=complaint.hospital, is_active=True), + "staff_list": Staff.objects.filter(hospital=complaint.hospital, status="active"), }, ) @@ -6561,11 +6840,10 @@ def adverse_action_add(request, complaint_pk): "complaint": complaint, "action_type_choices": ComplaintAdverseAction.ActionType.choices, "severity_choices": ComplaintAdverseAction.SeverityLevel.choices, - "staff_list": Staff.objects.filter(hospital=complaint.hospital, is_active=True) + "staff_list": Staff.objects.filter(hospital=complaint.hospital, status="active") if complaint.hospital - else Staff.objects.filter(is_active=True), + else Staff.objects.filter(status="active"), } - return render(request, "complaints/adverse_action_form.html", context) @@ -6623,9 +6901,9 @@ def adverse_action_edit(request, pk): "complaint": complaint, "action_type_choices": ComplaintAdverseAction.ActionType.choices, "severity_choices": ComplaintAdverseAction.SeverityLevel.choices, - "staff_list": Staff.objects.filter(hospital=complaint.hospital, is_active=True) + "staff_list": Staff.objects.filter(hospital=complaint.hospital, status="active") if complaint.hospital - else Staff.objects.filter(is_active=True), + else Staff.objects.filter(status="active"), "selected_staff": list(adverse_action.involved_staff.values_list("id", flat=True)), } diff --git a/apps/complaints/urls_inquiries.py b/apps/complaints/urls_inquiries.py index 14c1ae8..385692b 100644 --- a/apps/complaints/urls_inquiries.py +++ b/apps/complaints/urls_inquiries.py @@ -9,11 +9,13 @@ urlpatterns = [ # Inquiries UI Views path("", ui_views.inquiry_list, name="inquiry_list"), path("new/", ui_views.inquiry_create, name="inquiry_create"), + path("new/quick/", ui_views.inquiry_quick_create, name="inquiry_quick_create"), path("/", ui_views.inquiry_detail, name="inquiry_detail"), path("/edit/", ui_views.inquiry_edit, name="inquiry_edit"), path("/activate/", ui_views.inquiry_activate, name="inquiry_activate"), path("/assign/", ui_views.inquiry_assign, name="inquiry_assign"), path("/change-status/", ui_views.inquiry_change_status, name="inquiry_change_status"), + path("/contact-status/", ui_views.inquiry_set_contact_status, name="inquiry_set_contact_status"), path("/reopen/", ui_views.inquiry_reopen, name="inquiry_reopen"), path("/add-note/", ui_views.inquiry_add_note, name="inquiry_add_note"), path("/respond/", ui_views.inquiry_respond, name="inquiry_respond"), diff --git a/apps/complaints/views.py b/apps/complaints/views.py index 3419328..0a86902 100644 --- a/apps/complaints/views.py +++ b/apps/complaints/views.py @@ -1721,7 +1721,7 @@ Provide 3-5 suggestions. Keep them concise and focused on how to respond to the user.is_px_admin() or (user.is_hospital_admin() and user.hospital == complaint.hospital) or (user.is_department_manager() and user.department == complaint.department) - or (user.is_px_employee and complaint.hospital == user.hospital) + or (user.is_px_employee() and complaint.hospital == user.hospital) ) if not can_generate: return Response( @@ -1804,7 +1804,7 @@ Provide 3-5 suggestions. Keep them concise and focused on how to respond to the user.is_px_admin() or (user.is_hospital_admin() and user.hospital == complaint.hospital) or (user.is_department_manager() and user.department == complaint.department) - or (user.is_px_employee and complaint.hospital == user.hospital) + or (user.is_px_employee() and complaint.hospital == user.hospital) ) if not can_generate: return Response( @@ -2992,6 +2992,8 @@ class InquiryViewSet(viewsets.ModelViewSet): user = request.user can_generate = ( user.is_px_admin() + or user.is_px_management() + or user.is_px_employee() or (user.is_hospital_admin() and user.hospital == inquiry.hospital) or inquiry.assigned_to == user ) @@ -5210,28 +5212,6 @@ Generate JSON with "summary_en" and "summary_ar".""" except Exception: pass - # Notify inquirer - track_url = build_public_track_url("inquiry", inquiry.reference_number) - if inquiry.contact_phone: - try: - NotificationService.send_sms( - phone=inquiry.contact_phone, - message=f"PX360: Your inquiry {inquiry.reference_number} has been responded to. View: {track_url}", - related_object=inquiry, - ) - except Exception: - pass - if inquiry.contact_email: - try: - NotificationService.send_email( - email=inquiry.contact_email, - subject=f"PX360: Response to Your Inquiry {inquiry.reference_number}", - message=f"Your inquiry has been responded to.\n\nView: {track_url}", - related_object=inquiry, - ) - except Exception: - pass - return render(request, "complaints/inquiry_response_success_token.html", {"inquiry": inquiry}) return render(request, "complaints/inquiry_response_form_token.html", {"inquiry": inquiry}) diff --git a/apps/core/ai_service.py b/apps/core/ai_service.py index 1fb10e9..9e62d6b 100644 --- a/apps/core/ai_service.py +++ b/apps/core/ai_service.py @@ -1010,8 +1010,8 @@ class AIService: "title": title or "Complaint", "title_en": title or "Complaint", "title_ar": title or "شكوى", - "short_description_en": description[:200] if description else "", - "short_description_ar": description[:200] if description else "", + "short_description_en": "", + "short_description_ar": "", "severity": "medium", "priority": "medium", "category": "other", @@ -1032,8 +1032,8 @@ class AIService: "title": title or "Complaint", "title_en": title or "Complaint", "title_ar": title or "شكوى", - "short_description_en": description[:200] if description else "", - "short_description_ar": description[:200] if description else "", + "short_description_en": "", + "short_description_ar": "", "severity": "medium", "priority": "medium", "category": "other", @@ -1182,8 +1182,8 @@ Always use EXACT names and codes from the provided taxonomy - do not invent new "title_ar": subject, "brief_summary_en": "Inquiry", "brief_summary_ar": "استفسار", - "short_description_en": message[:200] if message else "", - "short_description_ar": message[:200] if message else "", + "short_description_en": "", + "short_description_ar": "", "priority": "medium", "department": "", "reasoning_en": "AI analysis failed, using default values", @@ -1198,8 +1198,8 @@ Always use EXACT names and codes from the provided taxonomy - do not invent new "title_ar": subject, "brief_summary_en": "Inquiry", "brief_summary_ar": "استفسار", - "short_description_en": message[:200] if message else "", - "short_description_ar": message[:200] if message else "", + "short_description_en": "", + "short_description_ar": "", "priority": "medium", "department": "", "reasoning_en": f"AI service unavailable: {str(e)}", @@ -1418,8 +1418,8 @@ Always use EXACT names and codes from the provided taxonomy - do not invent new "title_ar": title or "ملاحظة", "brief_summary_en": "Observation", "brief_summary_ar": "ملاحظة", - "short_description_en": description[:200] if description else "", - "short_description_ar": description[:200] if description else "", + "short_description_en": "", + "short_description_ar": "", "severity": "medium", "category": "Other", "department": "", @@ -1439,8 +1439,8 @@ Always use EXACT names and codes from the provided taxonomy - do not invent new "title_ar": title or "ملاحظة", "brief_summary_en": "Observation", "brief_summary_ar": "ملاحظة", - "short_description_en": description[:200] if description else "", - "short_description_ar": description[:200] if description else "", + "short_description_en": "", + "short_description_ar": "", "severity": "medium", "category": "Other", "department": "", @@ -2218,10 +2218,10 @@ Respond in JSON format: except json.JSONDecodeError as e: logger.error(f"Failed to parse suggestion AI response: {e}") return { - "short_description_en": message[:200] if message else "", - "short_description_ar": message[:200] if message else "", - "description_en": message[:500] if message else "", - "description_ar": message[:500] if message else "", + "short_description_en": "", + "short_description_ar": "", + "description_en": "", + "description_ar": "", "category": "other", "priority": "medium", "suggested_actions": [], @@ -2233,10 +2233,10 @@ Respond in JSON format: except AIServiceError as e: logger.error(f"AI service error for suggestion: {e}") return { - "short_description_en": message[:200] if message else "", - "short_description_ar": message[:200] if message else "", - "description_en": message[:500] if message else "", - "description_ar": message[:500] if message else "", + "short_description_en": "", + "short_description_ar": "", + "description_en": "", + "description_ar": "", "category": "other", "priority": "medium", "suggested_actions": [], diff --git a/apps/core/middleware.py b/apps/core/middleware.py index de8714e..c3cb377 100644 --- a/apps/core/middleware.py +++ b/apps/core/middleware.py @@ -118,7 +118,9 @@ class DepartmentRespondentMiddleware(MiddlewareMixin): if not request.user.is_champion(): return None - if request.user.is_px_admin() or request.user.is_hospital_admin() or request.user.is_department_manager() or request.user.is_director(): + if (request.user.is_px_admin() or request.user.is_hospital_admin() + or request.user.is_department_manager() or request.user.is_director() + or request.user.is_px_employee() or request.user.is_px_management()): return None if request.headers.get("x-requested-with") == "XMLHttpRequest": diff --git a/apps/core/validators.py b/apps/core/validators.py new file mode 100644 index 0000000..e8db3a3 --- /dev/null +++ b/apps/core/validators.py @@ -0,0 +1,45 @@ +""" +Shared validators used across multiple apps. +""" +import re + +from django.core.exceptions import ValidationError +from django.utils.translation import gettext_lazy as _ + +# Regex for a Saudi mobile number after stripping spaces/dashes/parens/plus. +# Accepts any of: +# 05XXXXXXXX (10 digits, local with trunk 0) +# 5XXXXXXXX (9 digits, no trunk) +# 9665XXXXXXXX (12 digits, country code without +) +# +9665XXXXXXXX (13 digits, country code with +) +SAUDI_MOBILE_REGEX = re.compile(r"^(?:\+?966|0)?5\d{8}$") + +# HTML5 form pattern equivalent (HTML anchors ^...$ implicitly). +# Exposed for reuse in widget attrs and template . +SAUDI_PHONE_HTML_PATTERN = r"(\+?966|0)?5[0-9]{8}" + + +def validate_saudi_phone(value): + """ + Validate that ``value`` is a Saudi mobile number. + + Accepts the following formats (spaces, dashes and parentheses are ignored): + 05XXXXXXXX + 5XXXXXXXX + 9665XXXXXXXX + +9665XXXXXXXX + + Stored value is returned unchanged (no normalization). + Raises ``ValidationError`` if the number is not a valid Saudi mobile. + """ + if value is None or value == "": + return value + + cleaned = re.sub(r"[\s\-()]", "", str(value)) + if not SAUDI_MOBILE_REGEX.match(cleaned): + raise ValidationError( + _("Please enter a valid Saudi mobile number " + "(e.g. 05XXXXXXXX or +9665XXXXXXXX)."), + code="invalid_saudi_phone", + ) + return value diff --git a/apps/feedback/forms.py b/apps/feedback/forms.py index adb24a5..55f6f25 100644 --- a/apps/feedback/forms.py +++ b/apps/feedback/forms.py @@ -7,6 +7,7 @@ from django.utils.translation import gettext_lazy as _ from apps.organizations.models import Department, Hospital, Patient, Staff from apps.core.form_mixins import HospitalFieldMixin +from apps.core.validators import SAUDI_PHONE_HTML_PATTERN, validate_saudi_phone from .models import Feedback, FeedbackResponse, FeedbackStatus, FeedbackType, FeedbackCategory @@ -259,7 +260,13 @@ class PublicSuggestionForm(forms.Form): label=_("Mobile Number"), max_length=20, required=True, - widget=forms.TextInput(attrs={"class": "form-control", "placeholder": _("Your mobile number")}), + validators=[validate_saudi_phone], + widget=forms.TextInput(attrs={ + "class": "form-control", + "placeholder": _("05XXXXXXXX or +9665XXXXXXXX"), + "pattern": SAUDI_PHONE_HTML_PATTERN, + "inputmode": "tel", + }), ) contact_email = forms.EmailField( label=_("Email Address"), diff --git a/apps/feedback/migrations/0009_add_activation_fields.py b/apps/feedback/migrations/0009_add_activation_fields.py new file mode 100644 index 0000000..e21f842 --- /dev/null +++ b/apps/feedback/migrations/0009_add_activation_fields.py @@ -0,0 +1,26 @@ +# Generated by Django 6.0.1 on 2026-07-14 12:00 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('feedback', '0008_feedback_reference_number_and_more'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AddField( + model_name='feedback', + name='activated_at', + field=models.DateTimeField(blank=True, null=True), + ), + migrations.AddField( + model_name='feedback', + name='activated_by', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='activated_feedbacks', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/apps/feedback/migrations/0010_alter_feedback_contact_phone.py b/apps/feedback/migrations/0010_alter_feedback_contact_phone.py new file mode 100644 index 0000000..2c40f8a --- /dev/null +++ b/apps/feedback/migrations/0010_alter_feedback_contact_phone.py @@ -0,0 +1,19 @@ +# Generated by Django 6.0.1 on 2026-07-18 14:46 + +import apps.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('feedback', '0009_add_activation_fields'), + ] + + operations = [ + migrations.AlterField( + model_name='feedback', + name='contact_phone', + field=models.CharField(blank=True, max_length=20, validators=[apps.core.validators.validate_saudi_phone]), + ), + ] diff --git a/apps/feedback/models.py b/apps/feedback/models.py index 5765851..671a911 100644 --- a/apps/feedback/models.py +++ b/apps/feedback/models.py @@ -15,6 +15,7 @@ from django.utils import timezone from django.utils.translation import gettext_lazy as _ from apps.core.models import PriorityChoices, SoftDeleteModel, TimeStampedModel, UUIDModel +from apps.core.validators import validate_saudi_phone class FeedbackType(models.TextChoices): @@ -94,7 +95,7 @@ class Feedback(UUIDModel, TimeStampedModel, SoftDeleteModel): is_anonymous = models.BooleanField(default=False) contact_name = models.CharField(max_length=200, blank=True) contact_email = models.EmailField(blank=True) - contact_phone = models.CharField(max_length=20, blank=True) + contact_phone = models.CharField(max_length=20, blank=True, validators=[validate_saudi_phone]) encounter_id = models.CharField( max_length=100, blank=True, db_index=True, help_text="Related encounter ID if applicable" @@ -196,6 +197,10 @@ class Feedback(UUIDModel, TimeStampedModel, SoftDeleteModel): status = models.CharField( max_length=20, choices=FeedbackStatus.choices, default=FeedbackStatus.SUBMITTED, db_index=True ) + activated_at = models.DateTimeField(null=True, blank=True) + activated_by = models.ForeignKey( + "accounts.User", on_delete=models.SET_NULL, null=True, blank=True, related_name="activated_feedbacks" + ) # Assignment assigned_to = models.ForeignKey( diff --git a/apps/feedback/urls.py b/apps/feedback/urls.py index 94b66df..ba5fc62 100644 --- a/apps/feedback/urls.py +++ b/apps/feedback/urls.py @@ -17,6 +17,7 @@ urlpatterns = [ path("/update/", views.feedback_update, name="feedback_update"), path("/delete/", views.feedback_delete, name="feedback_delete"), # Workflow actions + path("/activate/", views.feedback_activate, name="feedback_activate"), path("/assign/", views.feedback_assign, name="feedback_assign"), path("/change-status/", views.feedback_change_status, name="feedback_change_status"), path("/send-to-department/", views.feedback_send_to_department, name="feedback_send_to_department"), diff --git a/apps/feedback/views.py b/apps/feedback/views.py index e985c06..62a7ed7 100644 --- a/apps/feedback/views.py +++ b/apps/feedback/views.py @@ -259,11 +259,14 @@ def feedback_detail(request, pk): hospital=feedback.hospital, status="active" ).order_by("name"), "status_choices": FeedbackStatus.choices, + "can_activate": feedback.activated_at is None, + "is_active": feedback.activated_at is not None, "can_edit": ( - user.is_px_admin() + (user.is_px_admin() or user.is_hospital_admin() or user.is_px_management() - or user.is_px_employee() + or user.is_px_employee()) + and feedback.activated_at is not None ), "can_admin": user.is_px_admin() or user.is_hospital_admin(), "can_send_to_department": ( @@ -282,8 +285,8 @@ def feedback_detail(request, pk): # Workflow stepper _fb_steps = [ {"label": "Submitted", "icon": "plus-circle", "done": True}, - {"label": "Assigned", "icon": "user-plus", "done": feedback.assigned_to is not None}, - {"label": "Reviewed", "icon": "eye", "done": feedback.status in ("reviewed", "acknowledged", "closed")}, + {"label": "Activated", "icon": "zap", "done": feedback.activated_at is not None}, + {"label": "Sent to Dept", "icon": "send", "done": feedback.department_id is not None or feedback.status in ("acknowledged", "closed")}, {"label": "Acknowledged", "icon": "thumbs-up", "done": feedback.status in ("acknowledged", "closed")}, {"label": "Closed", "icon": "check-circle-2", "done": feedback.status == "closed"}, ] @@ -298,7 +301,6 @@ def feedback_detail(request, pk): @login_required @require_http_methods(["GET", "POST"]) def feedback_create(request): - from apps.organizations.models import LegacyLocation, LegacyMainSection, LegacySubSection, Hospital from apps.feedback.models import FeedbackType, FeedbackCategory, FeedbackStatus communication_request = None @@ -313,11 +315,12 @@ def feedback_create(request): except Exception: pass + hospital = getattr(request, "tenant_hospital", None) or request.user.hospital + if request.method == "POST": contact_name = request.POST.get("contact_name", "").strip() contact_phone = request.POST.get("contact_phone", "").strip() message = request.POST.get("message", "").strip() - hospital_id = request.POST.get("hospital", "") title = request.POST.get("title", message[:100]).strip() errors = [] @@ -327,23 +330,15 @@ def feedback_create(request): errors.append("Phone is required") if not message: errors.append("Message is required") - if not hospital_id: - errors.append("Hospital is required") + if hospital is None: + errors.append("No hospital context. Contact your administrator.") if errors: for e in errors: messages.error(request, e) else: try: - hospital = Hospital.objects.get(id=hospital_id) - - # Auto-link patient by phone (local first, then HIS). Never blocks creation. - from apps.organizations.patient_lookup import find_or_link_patient - - linked_patient = find_or_link_patient(phone=contact_phone, hospital=hospital) - feedback = Feedback( - patient=linked_patient, hospital=hospital, feedback_type=FeedbackType.SUGGESTION, title=title, @@ -365,10 +360,11 @@ def feedback_create(request): except Exception: pass - from apps.feedback.tasks import analyze_suggestion_with_ai from apps.complaints.tasks import notify_staff_new_item + from apps.feedback.tasks import analyze_suggestion_with_ai, link_feedback_patient analyze_suggestion_with_ai.delay(str(feedback.id)) notify_staff_new_item.delay("suggestion", str(feedback.id)) + link_feedback_patient.delay(str(feedback.id), phone=contact_phone) FeedbackResponse.objects.create( feedback=feedback, @@ -400,9 +396,8 @@ def feedback_create(request): except Exception as e: messages.error(request, f"Error creating suggestion: {str(e)}") - hospitals = Hospital.objects.filter(status="active").order_by("name") context = { - "hospitals": hospitals, + "selected_hospital_id": str(hospital.id) if hospital else "", "is_create": True, "communication_request": communication_request, "prefill": prefill, @@ -418,7 +413,7 @@ def feedback_update(request, pk): # Check permission user = request.user - if not (user.is_px_admin() or user.is_hospital_admin()): + if not (user.is_px_admin() or user.is_hospital_admin() or user.is_px_management() or user.is_px_employee()): messages.error(request, "You don't have permission to edit this suggestion.") return redirect("feedback:feedback_detail", pk=pk) @@ -473,6 +468,14 @@ def feedback_update(request, pk): "feedback": feedback, "patients": patients, "is_create": False, + "prefill": { + "contact_name": feedback.contact_name or "", + "contact_phone": feedback.contact_phone or "", + "contact_email": feedback.contact_email or "", + "message": feedback.message or "", + "title": feedback.title or "", + }, + "selected_hospital_id": feedback.hospital_id or "", } return render(request, "feedback/feedback_form.html", context) @@ -486,7 +489,7 @@ def feedback_delete(request, pk): # Check permission user = request.user - if not (user.is_px_admin() or user.is_hospital_admin()): + if not (user.is_px_admin() or user.is_hospital_admin() or user.is_px_management() or user.is_px_employee()): messages.error(request, "You don't have permission to delete this suggestion.") return redirect("feedback:feedback_detail", pk=pk) @@ -525,7 +528,7 @@ def comment_import_list(request): """ from django.core.exceptions import PermissionDenied - if not (request.user.is_px_admin() or request.user.is_hospital_admin()): + if not (request.user.is_px_admin() or request.user.is_hospital_admin() or request.user.is_px_employee()): raise PermissionDenied from .models import CommentImport @@ -547,7 +550,7 @@ def comment_list(request): """ from django.core.exceptions import PermissionDenied - if not (request.user.is_px_admin() or request.user.is_hospital_admin()): + if not (request.user.is_px_admin() or request.user.is_hospital_admin() or request.user.is_px_employee()): raise PermissionDenied from .models import PatientComment @@ -616,7 +619,7 @@ def action_plan_list(request): """ from django.core.exceptions import PermissionDenied - if not (request.user.is_px_admin() or request.user.is_hospital_admin()): + if not (request.user.is_px_admin() or request.user.is_hospital_admin() or request.user.is_px_employee()): raise PermissionDenied from .models import CommentActionPlan @@ -653,7 +656,7 @@ def export_comments_step1(request): """ from django.core.exceptions import PermissionDenied - if not (request.user.is_px_admin() or request.user.is_hospital_admin()): + if not (request.user.is_px_admin() or request.user.is_hospital_admin() or request.user.is_px_employee()): raise PermissionDenied from .models import PatientComment @@ -682,7 +685,7 @@ def export_comments_step2(request): """ from django.core.exceptions import PermissionDenied - if not (request.user.is_px_admin() or request.user.is_hospital_admin()): + if not (request.user.is_px_admin() or request.user.is_hospital_admin() or request.user.is_px_employee()): raise PermissionDenied from .models import PatientComment @@ -708,7 +711,7 @@ def export_action_plans(request): """ from django.core.exceptions import PermissionDenied - if not (request.user.is_px_admin() or request.user.is_hospital_admin()): + if not (request.user.is_px_admin() or request.user.is_hospital_admin() or request.user.is_px_employee()): raise PermissionDenied from .models import CommentActionPlan @@ -723,6 +726,53 @@ def export_action_plans(request): return export_action_plans(qs) +@login_required +@require_http_methods(["POST"]) +def feedback_activate(request, pk): + """Activate a suggestion and auto-assign to the activating user.""" + feedback = get_object_or_404(Feedback, pk=pk, is_deleted=False) + + user = request.user + if not ( + user.is_px_admin() + or user.is_hospital_admin() + or user.is_px_management() + or user.is_px_employee() + ): + messages.error(request, _("You don't have permission to activate this suggestion.")) + return redirect("feedback:feedback_detail", pk=pk) + + if feedback.activated_at: + messages.warning(request, _("This suggestion has already been activated.")) + return redirect("feedback:feedback_detail", pk=pk) + + feedback.activated_at = timezone.now() + feedback.activated_by = user + feedback.assigned_to = user + feedback.assigned_at = timezone.now() + if feedback.status == FeedbackStatus.SUBMITTED: + feedback.status = FeedbackStatus.REVIEWED + feedback.save() + + FeedbackResponse.objects.create( + feedback=feedback, + response_type="note", + message=f"Suggestion activated and assigned to {user.get_full_name()}", + created_by=user, + is_internal=True, + ) + + AuditService.log_event( + event_type="suggestion_activated", + description=f"Suggestion '{feedback.title}' activated by {user.get_full_name()}", + user=user, + content_object=feedback, + ) + + messages.success(request, _("Suggestion activated successfully.")) + return redirect("feedback:feedback_detail", pk=pk) + + @login_required @require_http_methods(["POST"]) def feedback_assign(request, pk): @@ -887,7 +937,7 @@ def feedback_add_response(request, pk): user = request.user if not (user.is_px_admin() or user.is_hospital_admin() or user.is_px_management() - or user.is_department_manager()): + or user.is_department_manager() or user.is_px_employee()): messages.error(request, "You don't have permission to add responses to this suggestion.") return redirect("feedback:feedback_detail", pk=pk) @@ -920,7 +970,7 @@ def feedback_toggle_featured(request, pk): # Check permission user = request.user - if not (user.is_px_admin() or user.is_hospital_admin()): + if not (user.is_px_admin() or user.is_hospital_admin() or user.is_px_employee()): messages.error(request, "You don't have permission to feature this suggestion.") return redirect("feedback:feedback_detail", pk=pk) @@ -941,7 +991,7 @@ def feedback_toggle_follow_up(request, pk): # Check permission user = request.user - if not (user.is_px_admin() or user.is_hospital_admin()): + if not (user.is_px_admin() or user.is_hospital_admin() or user.is_px_employee()): messages.error(request, "You don't have permission to modify this suggestion.") return redirect("feedback:feedback_detail", pk=pk) @@ -1070,7 +1120,7 @@ def feedback_create_action(request, pk): feedback = get_object_or_404(Feedback, pk=pk, is_deleted=False) user = request.user - if not (user.is_px_admin() or user.is_hospital_admin()): + if not (user.is_px_admin() or user.is_hospital_admin() or user.is_px_employee()): messages.error(request, "You don't have permission to create actions from suggestions.") return redirect("feedback:feedback_detail", pk=pk) diff --git a/apps/integrations/api_serializers.py b/apps/integrations/api_serializers.py index 183301f..e3f0c5d 100644 --- a/apps/integrations/api_serializers.py +++ b/apps/integrations/api_serializers.py @@ -8,6 +8,7 @@ from apps.complaints.models import Complaint, Inquiry from apps.observations.models import Observation from apps.appreciation.models import Appreciation, AppreciationStatus, AppreciationVisibility from apps.feedback.models import Feedback, FeedbackType, FeedbackStatus, FeedbackCategory +from apps.physicians.models import PhysicianIndividualRating # --------------------------------------------------------------------------- @@ -36,7 +37,7 @@ class ExternalComplaintCreateSerializer(serializers.Serializer): # Hospital context hospital = serializers.CharField(max_length=200, required=True) - # Location hierarchy (all optional) + # Location hierarchy location_type = serializers.ChoiceField( choices=[("OP", "Outpatient"), ("IP", "Inpatient"), ("ER", "Emergency"), ("GENERAL", "General")], required=False, @@ -44,7 +45,7 @@ class ExternalComplaintCreateSerializer(serializers.Serializer): default="", ) area = serializers.CharField(max_length=200, required=False, allow_blank=True, default="") - department = serializers.CharField(max_length=200, required=False, allow_blank=True, default="") + department_code = serializers.CharField(max_length=200, required=True) section = serializers.CharField(max_length=200, required=False, allow_blank=True, default="") # Complaint content @@ -72,17 +73,19 @@ class ExternalComplaintCreateSerializer(serializers.Serializer): except Area.DoesNotExist: raise serializers.ValidationError({"area": f"Area '{area_name}' not found for this hospital."}) - dept_name = data.get("department") - if dept_name: + department_code = data.get("department_code") + if department_code: from apps.organizations.models import Department try: data["department"] = Department.objects.get( - name__iexact=dept_name.strip(), hospital=hospital, status="active" + code__iexact=department_code.strip(), hospital=hospital, status="active" ) except Department.DoesNotExist: raise serializers.ValidationError( - {"department": f"Department '{dept_name}' not found for this hospital."} + {"department_code": f"Department with code '{department_code}' not found for this hospital."} ) + else: + data["department"] = None section_name = data.get("section") if section_name: @@ -156,7 +159,7 @@ class ExternalInquiryCreateSerializer(serializers.Serializer): default="", ) area = serializers.CharField(max_length=200, required=False, allow_blank=True, default="") - department = serializers.CharField(max_length=200, required=False, allow_blank=True, default="") + department_code = serializers.CharField(max_length=200, required=False, allow_blank=True, default="") section = serializers.CharField(max_length=200, required=False, allow_blank=True, default="") # Inquiry content @@ -194,17 +197,19 @@ class ExternalInquiryCreateSerializer(serializers.Serializer): except Area.DoesNotExist: raise serializers.ValidationError({"area": f"Area '{area_name}' not found for this hospital."}) - dept_name = data.get("department") - if dept_name: + department_code = data.get("department_code") + if department_code: from apps.organizations.models import Department try: data["department"] = Department.objects.get( - name__iexact=dept_name.strip(), hospital=hospital, status="active" + code__iexact=department_code.strip(), hospital=hospital, status="active" ) except Department.DoesNotExist: raise serializers.ValidationError( - {"department": f"Department '{dept_name}' not found for this hospital."} + {"department_code": f"Department with code '{department_code}' not found for this hospital."} ) + else: + data["department"] = None section_name = data.get("section") if section_name: @@ -467,7 +472,7 @@ class ExternalComplaintSatisfactionSerializer(serializers.Serializer): class ExternalDoctorRatingCreateSerializer(serializers.Serializer): - hospital_id = serializers.IntegerField(required=True) + hospital = serializers.CharField(max_length=200, required=True) doctor_id = serializers.CharField(max_length=50, required=True) doctor_name = serializers.CharField(max_length=300, required=False, allow_blank=True, default="") rating = serializers.IntegerField(min_value=1, max_value=5, required=True) @@ -481,15 +486,15 @@ class ExternalDoctorRatingCreateSerializer(serializers.Serializer): allow_blank=True, default="", ) - department_name = serializers.CharField(max_length=200, required=False, allow_blank=True, default="") + department_code = serializers.CharField(max_length=200, required=False, allow_blank=True, default="") admit_date = serializers.DateField(required=False, allow_null=True, default=None) discharge_date = serializers.DateField(required=False, allow_null=True, default=None) - def validate_hospital_id(self, value): + def validate_hospital(self, value): from apps.organizations.models import Hospital try: - return Hospital.objects.get(id=value) + return Hospital.objects.get(name__iexact=value.strip()) except Hospital.DoesNotExist: raise serializers.ValidationError("Hospital not found.") @@ -497,21 +502,105 @@ class ExternalDoctorRatingCreateSerializer(serializers.Serializer): return value.strip() def validate(self, data): - from apps.organizations.models import Staff + from apps.organizations.models import Department, Staff + from apps.physicians.adapter import DoctorRatingAdapter - hospital = data.get("hospital_id") + hospital = data.get("hospital") doctor_id = data.get("doctor_id", "").strip() - if hospital and doctor_id: - staff = Staff.objects.filter( - hospital=hospital, employee_id=doctor_id + # Resolve department code → human-readable name (the rating model stores + # a text department_name; HIS sends a stable department_code instead). + department_code = data.get("department_code", "").strip() + data["department_name"] = "" + dept = None + if department_code and hospital: + dept = Department.objects.filter( + code__iexact=department_code, hospital=hospital, status="active" ).first() - if not staff: + if not dept: raise serializers.ValidationError( - { - "doctor_id": f"Doctor with employee ID '{doctor_id}' not found at this hospital." - } + {"department_code": f"Department with code '{department_code}' not found for this hospital."} ) + data["department_name"] = dept.name_en or dept.name + + if hospital and doctor_id: + doctor_name = (data.get("doctor_name") or "").strip() + + # 1. Canonical multi-strategy lookup (employee_id → license_number → name). + staff = DoctorRatingAdapter.find_staff_by_doctor_id( + doctor_id=doctor_id, hospital=hospital, doctor_name=doctor_name + ) + + # 2. Auto-create the Staff if not found and we have a name to populate + # the required first_name/last_name fields. + if not staff: + if not doctor_name: + raise serializers.ValidationError( + { + "doctor_name": ( + "Staff not found for this doctor_id; provide doctor_name " + "to auto-create the staff record." + ) + } + ) + name_parts = doctor_name.split() + first_name = name_parts[0] + last_name = name_parts[-1] if len(name_parts) > 1 else name_parts[0] + staff, created = Staff.objects.get_or_create( + employee_id=doctor_id, + defaults={ + "hospital": hospital, + "first_name": first_name, + "last_name": last_name, + "name": doctor_name, + "staff_type": Staff.StaffType.PHYSICIAN, + "job_title": "Physician", + "physician": True, + "status": "active", + "department": dept, + }, + ) + data["_staff_created"] = created + data["_staff"] = staff return data + + +class ExternalDoctorRatingRetrieveSerializer(serializers.ModelSerializer): + """Read-only serializer for retrieving a doctor rating.""" + + hospital_name = serializers.CharField(source="hospital.name", read_only=True) + staff_id = serializers.CharField(read_only=True, default=None) + doctor_name_display = serializers.SerializerMethodField() + + class Meta: + model = PhysicianIndividualRating + fields = [ + "id", + "staff_id", + "hospital_name", + "source", + "source_reference", + "doctor_id", + "doctor_name", + "doctor_name_raw", + "doctor_name_display", + "department_name", + "patient_uhid", + "patient_name", + "patient_type", + "admit_date", + "discharge_date", + "rating", + "feedback", + "rating_date", + "is_aggregated", + "aggregated_at", + "created_at", + "updated_at", + ] + read_only_fields = fields + + def get_doctor_name_display(self, obj): + return obj.doctor_name or obj.doctor_name_raw or "" diff --git a/apps/integrations/api_views.py b/apps/integrations/api_views.py index 472db84..69c4a58 100644 --- a/apps/integrations/api_views.py +++ b/apps/integrations/api_views.py @@ -1,5 +1,5 @@ """ -External API views for complaints, inquiries, observations, appreciations, and suggestions. +External API views for complaints, inquiries, observations, appreciations, suggestions, and doctor ratings. All endpoints require X-API-Key header authentication. """ @@ -24,6 +24,7 @@ from .api_serializers import ( ExternalComplaintRetrieveSerializer, ExternalComplaintSatisfactionSerializer, ExternalDoctorRatingCreateSerializer, + ExternalDoctorRatingRetrieveSerializer, ExternalInquiryCreateSerializer, ExternalInquiryRetrieveSerializer, ExternalObservationCreateSerializer, @@ -161,8 +162,8 @@ class ExternalComplaintCreateView(ExternalAPIBase, APIView): patient=None, hospital=data["hospital"], department=data.get("department"), - section=data.get("section"), - area=data.get("area"), + section=data.get("section") or None, + area=data.get("area") or None, location_type=data.get("location_type", ""), title=data["title"], description=data["description"], @@ -355,9 +356,9 @@ class ExternalInquiryCreateView(ExternalAPIBase, APIView): inquiry = Inquiry.objects.create( patient=None, hospital=data["hospital"], - department=data.get("department"), - section=data.get("section"), - area=data.get("area"), + department=data.get("department") or None, + section=data.get("section") or None, + area=data.get("area") or None, location_type=data.get("location_type", ""), subject=data["subject"], message=data["message"], @@ -955,9 +956,9 @@ class ExternalDepartmentsListView(ExternalAPIBase, APIView): class ExternalSectionsListView(ExternalAPIBase, APIView): """ - GET /api/v1/external/sections/?hospital=&department= + GET /api/v1/external/sections/?hospital=&department_code= - List sections for a department. + List sections for a department (identified by its stable HIS department code). """ entity_name = "lookup" @@ -966,11 +967,11 @@ class ExternalSectionsListView(ExternalAPIBase, APIView): from apps.organizations.models import Department, Hospital, Section hospital_name = request.query_params.get("hospital", "").strip() - department_name = request.query_params.get("department", "").strip() + department_code = request.query_params.get("department_code", "").strip() - if not hospital_name or not department_name: + if not hospital_name or not department_code: return Response( - {"detail": "hospital and department query parameters are required."}, + {"detail": "hospital and department_code query parameters are required."}, status=status.HTTP_400_BAD_REQUEST, ) @@ -981,10 +982,13 @@ class ExternalSectionsListView(ExternalAPIBase, APIView): try: department = Department.objects.get( - name__iexact=department_name, hospital=hospital, status="active" + code__iexact=department_code, hospital=hospital, status="active" ) except Department.DoesNotExist: - return Response({"detail": "Department not found."}, status=status.HTTP_404_NOT_FOUND) + return Response( + {"detail": f"Department with code '{department_code}' not found for this hospital."}, + status=status.HTTP_404_NOT_FOUND, + ) qs = Section.objects.filter(department=department, status="active").order_by("name_en") @@ -1023,8 +1027,9 @@ class ExternalDoctorRatingCreateView(ExternalAPIBase, APIView): ser.is_valid(raise_exception=True) data = ser.validated_data - hospital = data["hospital_id"] + hospital = data["hospital"] staff = data.pop("_staff") + staff_created = data.pop("_staff_created", False) api_key = getattr(request, "api_key", None) if api_key and api_key.hospital and hospital != api_key.hospital: @@ -1068,6 +1073,23 @@ class ExternalDoctorRatingCreateView(ExternalAPIBase, APIView): staff.physician = True staff.save(update_fields=["physician"]) + if staff_created: + AuditService.log_event( + event_type="external_staff_auto_created", + description=( + f"Staff auto-created via external API: {staff.get_full_name()} " + f"(employee_id={staff.employee_id})" + ), + content_object=staff, + metadata={ + "staff_id": str(staff.id), + "employee_id": staff.employee_id, + "doctor_id": data["doctor_id"], + "hospital_id": str(hospital.id), + "source": "external_api", + }, + ) + AuditService.log_event( event_type="external_doctor_rating_created", description=f"Doctor rating created via external API: {staff.get_full_name()} - {data['rating']}/5", @@ -1085,9 +1107,98 @@ class ExternalDoctorRatingCreateView(ExternalAPIBase, APIView): { "success": True, "rating_id": str(rating.id), - "staff_id": str(staff.id), - "doctor_name": staff.get_full_name(), "rating": data["rating"], }, status=status.HTTP_201_CREATED, ) + + +class ExternalDoctorRatingRetrieveView(ExternalAPIBase, APIView): + """ + GET /api/v1/external/doctor-ratings/list/ + GET /api/v1/external/doctor-ratings// + + List doctor ratings (scoped to the API key's hospital) or retrieve a + single rating by its UUID. + + List filters (all optional, in addition to hospital scoping): + - doctor_id HIS employee ID (exact match) + - rating Integer 1-5 (exact match) + - created_from/created_to Created-at date range + - updated_from/updated_to Updated-at date range + - rating_from/rating_to Rating-date range (`rating_date` column) + - page, page_size Pagination (default 20, max 100) + """ + + entity_name = "doctor_ratings" + + def get(self, request, rating_id=None): + access_err = self.check_entity_access() + if access_err: + return access_err + + if rating_id: + return self._retrieve(request, rating_id) + return self._list(request) + + def _retrieve(self, request, rating_id): + from apps.physicians.models import PhysicianIndividualRating + + qs = PhysicianIndividualRating.objects.filter(id=rating_id) + qs = self.filter_queryset_by_hospital(qs) + rating = qs.first() + if not rating: + return Response({"detail": "Doctor rating not found."}, status=status.HTTP_404_NOT_FOUND) + + ser = ExternalDoctorRatingRetrieveSerializer(rating) + return Response(ser.data) + + def _list(self, request): + from apps.physicians.models import PhysicianIndividualRating + + qs = PhysicianIndividualRating.objects.all() + qs = self.filter_queryset_by_hospital(qs) + qs = self.apply_list_filters(qs, request) + + # Doctor-rating-specific filters + doctor_id = request.query_params.get("doctor_id", "").strip() + if doctor_id: + qs = qs.filter(doctor_id=doctor_id) + + rating_value = request.query_params.get("rating", "").strip() + if rating_value: + try: + qs = qs.filter(rating=int(rating_value)) + except ValueError: + pass + + rating_from = request.query_params.get("rating_from", "").strip() + if rating_from: + try: + qs = qs.filter(rating_date__gte=self._parse_date(rating_from, start=True)) + except (ValueError, TypeError): + pass + + rating_to = request.query_params.get("rating_to", "").strip() + if rating_to: + try: + qs = qs.filter(rating_date__lte=self._parse_date(rating_to, start=False)) + except (ValueError, TypeError): + pass + + page_size = min(int(request.query_params.get("page_size", 20)), 100) + page = int(request.query_params.get("page", 1)) + offset = (page - 1) * page_size + total = qs.count() + + items = qs[offset : offset + page_size] + ser = ExternalDoctorRatingRetrieveSerializer(items, many=True) + + return Response( + { + "count": total, + "page": page, + "page_size": page_size, + "results": ser.data, + } + ) diff --git a/apps/integrations/migrations/0004_alter_externalapikey_allowed_entities_help_text.py b/apps/integrations/migrations/0004_alter_externalapikey_allowed_entities_help_text.py new file mode 100644 index 0000000..1e52f2a --- /dev/null +++ b/apps/integrations/migrations/0004_alter_externalapikey_allowed_entities_help_text.py @@ -0,0 +1,18 @@ +# Generated by Django 6.0.1 on 2026-07-19 08:44 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('integrations', '0003_external_api_key'), + ] + + operations = [ + migrations.AlterField( + model_name='externalapikey', + name='allowed_entities', + field=models.JSONField(blank=True, default=list, help_text='List of entities this key can access: ["complaints","inquiries","observations","appreciations","suggestions","doctor_ratings"]'), + ), + ] diff --git a/apps/integrations/models.py b/apps/integrations/models.py index 87386ac..eea1b0b 100644 --- a/apps/integrations/models.py +++ b/apps/integrations/models.py @@ -59,7 +59,7 @@ class ExternalAPIKey(UUIDModel, TimeStampedModel): allowed_entities = models.JSONField( default=list, blank=True, - help_text='List of entities this key can access: ["complaints","inquiries","observations","appreciations","suggestions"]', + help_text='List of entities this key can access: ["complaints","inquiries","observations","appreciations","suggestions","doctor_ratings"]', ) # Rate limiting diff --git a/apps/integrations/urls_external.py b/apps/integrations/urls_external.py index f192f01..d30a9c3 100644 --- a/apps/integrations/urls_external.py +++ b/apps/integrations/urls_external.py @@ -14,6 +14,7 @@ from .api_views import ( ExternalComplaintSatisfactionView, ExternalDepartmentsListView, ExternalDoctorRatingCreateView, + ExternalDoctorRatingRetrieveView, ExternalHospitalsListView, ExternalInquiryCreateView, ExternalInquiryRetrieveView, @@ -145,4 +146,14 @@ urlpatterns = [ ExternalDoctorRatingCreateView.as_view(), name="external-doctor-rating-create", ), + path( + "doctor-ratings/list/", + ExternalDoctorRatingRetrieveView.as_view(), + name="external-doctor-rating-list", + ), + path( + "doctor-ratings//", + ExternalDoctorRatingRetrieveView.as_view(), + name="external-doctor-rating-detail", + ), ] diff --git a/apps/journeys/ui_views.py b/apps/journeys/ui_views.py index 3be33cf..dcfd582 100644 --- a/apps/journeys/ui_views.py +++ b/apps/journeys/ui_views.py @@ -48,12 +48,22 @@ def journey_instance_list(request): # Apply RBAC filters user = request.user + selected_hospital = getattr(request, "tenant_hospital", None) + if user.is_px_admin(): - pass # See all + if selected_hospital: + queryset = queryset.filter(hospital=selected_hospital) elif user.is_hospital_admin() and user.hospital: queryset = queryset.filter(hospital=user.hospital) + elif user.is_px_management() or user.is_px_employee(): + if user.hospital: + queryset = queryset.filter(hospital=user.hospital) elif user.is_department_manager() and user.department: queryset = queryset.filter(department=user.department) + elif user.is_champion() and user.department: + queryset = queryset.filter(department=user.department) + elif user.is_source_user(): + queryset = queryset.filter(created_by=user) elif user.hospital: queryset = queryset.filter(hospital=user.hospital) else: @@ -185,8 +195,22 @@ def journey_template_list(request): # Apply RBAC filters user = request.user + selected_hospital = getattr(request, "tenant_hospital", None) + if user.is_px_admin(): - pass # See all + if selected_hospital: + queryset = queryset.filter(hospital=selected_hospital) + elif user.is_hospital_admin() and user.hospital: + queryset = queryset.filter(hospital=user.hospital) + elif user.is_px_management() or user.is_px_employee(): + if user.hospital: + queryset = queryset.filter(hospital=user.hospital) + elif user.is_department_manager() and user.department: + queryset = queryset.filter(department=user.department) + elif user.is_champion() and user.department: + queryset = queryset.filter(department=user.department) + elif user.is_source_user(): + queryset = queryset.filter(created_by=user) elif user.hospital: queryset = queryset.filter(hospital=user.hospital) else: diff --git a/apps/notifications/services.py b/apps/notifications/services.py index b09c593..6df44e3 100644 --- a/apps/notifications/services.py +++ b/apps/notifications/services.py @@ -23,17 +23,8 @@ def get_email_header_html(): logo_url = getattr(settings, "EMAIL_LOGO_URL", f"{settings.STATIC_URL}img/HH_P_V_Logo(hospital)_.png") if not logo_url.startswith("http"): logo_url = f"https://{settings.ALLOWED_HOSTS[0]}{logo_url}" if getattr(settings, "ALLOWED_HOSTS", []) else logo_url - return f"""
- - - - - -
- Al Hammadi - - مستشفى الحمادي -
+ return f"""
+ Al Hammadi
 
""" @@ -295,6 +286,8 @@ class NotificationService: metadata=None, notification_type="system", user=None, + attachments=None, + cc=None, ): """ Send Email notification and create corresponding in-app notification. @@ -308,6 +301,14 @@ class NotificationService: metadata: Additional metadata dict (optional) notification_type: Type of notification (default: 'system') user: User instance to create in-app notification for (optional, will try to lookup by email) + attachments: Optional list of (filename, content_bytes, mimetype) tuples. + Only applied on the standard Django email backend path; silently + skipped on the external Email API path (which would need its own + upload mechanism). + cc: Optional list of email addresses to CC. Only applied on the + standard Django email backend path; silently skipped on the + external Email API path. In-app notifications are created for + each CC'd user whose email maps to a User account. Returns: NotificationLog instance @@ -326,16 +327,34 @@ class NotificationService: from apps.accounts.models import User + # Normalise CC list to a clean list of strings (drop None/empty) + cc_list = [addr for addr in (cc or []) if addr] + + # Enrich metadata with CC trace + log_metadata = dict(metadata or {}) + if cc_list: + log_metadata = {**log_metadata, "cc": cc_list} + # Check if Email API is enabled and use it (simulator or external API) email_api_config = settings.EXTERNAL_NOTIFICATION_API.get("email", {}) if email_api_config.get("enabled", False): + skipped = [] + if attachments: + skipped.append(f"{len(attachments)} attachment(s)") + if cc_list: + skipped.append(f"{len(cc_list)} CC recipient(s)") + if skipped: + logger.warning( + f"Email API path does not support {' or '.join(skipped)}; " + f"sending email to {email} without them." + ) log = NotificationService.send_email_via_api( message=message, email=email, subject=subject, html_message=html_message, related_object=related_object, - metadata=metadata, + metadata=log_metadata, ) # Create in-app notification after sending via API NotificationService._create_in_app_notification_from_email( @@ -351,31 +370,61 @@ class NotificationService: message=message, content_object=related_object, provider="console", # TODO: Replace with actual provider - metadata=metadata or {}, + metadata=log_metadata, ) - # Create in-app notification + # Create in-app notification for the primary (To:) recipient NotificationService._create_in_app_notification_from_email( log, email, subject, message, notification_type, related_object, user ) + # Create in-app notifications for each CC'd user (silently skips emails + # that don't map to a User account). + for cc_addr in cc_list: + if cc_addr.lower() == email.lower(): + continue # Already covered by the To: notification + NotificationService._create_in_app_notification_from_email( + log, cc_addr, subject, message, notification_type, related_object, None + ) + # Check if Email is enabled email_config = settings.NOTIFICATION_CHANNELS.get("email", {}) if not email_config.get("enabled", True): - logger.info(f"[Email Console] To: {email} | Subject: {subject} | Message: {message}") + cc_summary = f" | CC: {', '.join(cc_list)}" if cc_list else "" + logger.info(f"[Email Console] To: {email}{cc_summary} | Subject: {subject} | Message: {message}") log.mark_sent() return log # Send email using Django's email backend try: - send_mail( - subject=subject, - message=message, - from_email=settings.DEFAULT_FROM_EMAIL, - recipient_list=[email], - html_message=html_message, - fail_silently=False, - ) + if attachments or cc_list: + from django.core.mail import EmailMultiAlternatives + + msg = EmailMultiAlternatives( + subject=subject, + body=message, + from_email=settings.DEFAULT_FROM_EMAIL, + to=[email], + cc=cc_list if cc_list else None, + ) + if html_message: + msg.attach_alternative(html_message, "text/html") + for att in (attachments or []): + # att is (filename, content_bytes, mimetype) + try: + msg.attach(*att) + except Exception: + logger.exception(f"Failed to attach {att[0] if att else '?'} to email for {email}") + msg.send(fail_silently=False) + else: + send_mail( + subject=subject, + message=message, + from_email=settings.DEFAULT_FROM_EMAIL, + recipient_list=[email], + html_message=html_message, + fail_silently=False, + ) log.mark_sent() logger.info(f"Email sent to {email}: {subject}") except Exception as e: diff --git a/apps/observations/forms.py b/apps/observations/forms.py index 9183c63..ddbf90d 100644 --- a/apps/observations/forms.py +++ b/apps/observations/forms.py @@ -8,6 +8,7 @@ from django.utils import timezone from django.utils.translation import gettext_lazy as _ from apps.accounts.models import User +from apps.core.validators import SAUDI_PHONE_HTML_PATTERN, validate_saudi_phone from apps.organizations.models import Area, Department, Hospital, LocationType from apps.organizations.models import Section as OrgSection @@ -77,6 +78,7 @@ class ObservationPublicForm(forms.ModelForm): "reporter_name", "reporter_phone", "reporter_email", + "national_id", ] widgets = { "location_type": forms.Select( @@ -139,6 +141,12 @@ class ObservationPublicForm(forms.ModelForm): "placeholder": "Your email (optional)", } ), + "national_id": forms.TextInput( + attrs={ + "class": "form-control", + "placeholder": "National ID/Iqama (optional)", + } + ), } def __init__(self, *args, **kwargs): @@ -198,11 +206,15 @@ class ObservationInternalForm(forms.ModelForm): "location_type", "area", "description", + "title", + "location_text", "section", "incident_datetime", - "patient_file_number", + "patient_name", + "patient_national_id", + "patient_phone", + "patient_email", "assigned_department", - "assigned_to", "px_source", ] widgets = { @@ -225,16 +237,46 @@ class ObservationInternalForm(forms.ModelForm): "placeholder": "Please describe what you observed in detail...", } ), + "title": forms.TextInput( + attrs={ + "class": "form-control", + "placeholder": "Brief title (optional)", + } + ), + "location_text": forms.TextInput( + attrs={ + "class": "form-control", + "placeholder": "Specific location details (e.g. room number, floor)", + } + ), "incident_datetime": forms.DateTimeInput( attrs={ "class": "form-control", "type": "datetime-local", } ), - "patient_file_number": forms.TextInput( + "patient_name": forms.TextInput( attrs={ "class": "form-control", - "placeholder": "Patient MRN / file number", + "placeholder": "Patient name (optional)", + } + ), + "patient_national_id": forms.TextInput( + attrs={ + "class": "form-control", + "placeholder": "National ID/Iqama (optional)", + } + ), + "patient_phone": forms.TextInput( + attrs={ + "class": "form-control", + "placeholder": "Patient phone (optional)", + } + ), + "patient_email": forms.EmailInput( + attrs={ + "class": "form-control", + "placeholder": "Patient email (optional)", } ), "assigned_department": forms.Select( @@ -242,11 +284,6 @@ class ObservationInternalForm(forms.ModelForm): "class": "form-select", } ), - "assigned_to": forms.Select( - attrs={ - "class": "form-select", - } - ), } section = forms.ModelChoiceField( @@ -311,15 +348,6 @@ class ObservationInternalForm(forms.ModelForm): self.fields["assigned_department"].queryset = Department.objects.filter(status="active").order_by("name_en") self.fields["assigned_department"].empty_label = "Select department (optional)" - if hospital: - from apps.core.utils import get_assignable_users - self.fields["assigned_to"].queryset = get_assignable_users(hospital) - else: - self.fields["assigned_to"].queryset = User.objects.filter(is_active=True).order_by( - "first_name", "last_name" - ) - self.fields["assigned_to"].empty_label = "Select assignee (optional)" - def clean_description(self): description = self.cleaned_data.get("description", "") if len(description.strip()) < 10: @@ -725,7 +753,13 @@ class PublicObservationForm(forms.ModelForm): label=_("Mobile Number"), max_length=20, required=True, - widget=forms.TextInput(attrs={"class": "form-control", "placeholder": _("Your mobile number")}), + validators=[validate_saudi_phone], + widget=forms.TextInput(attrs={ + "class": "form-control", + "placeholder": _("05XXXXXXXX or +9665XXXXXXXX"), + "pattern": SAUDI_PHONE_HTML_PATTERN, + "inputmode": "tel", + }), ) reporter_email = forms.EmailField( label=_("Email Address"), diff --git a/apps/observations/migrations/0021_alter_observation_reporter_phone.py b/apps/observations/migrations/0021_alter_observation_reporter_phone.py new file mode 100644 index 0000000..715af0b --- /dev/null +++ b/apps/observations/migrations/0021_alter_observation_reporter_phone.py @@ -0,0 +1,19 @@ +# Generated by Django 6.0.1 on 2026-07-18 14:46 + +import apps.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('observations', '0020_remove_observation_dept_response_acceptance_notes_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='observation', + name='reporter_phone', + field=models.CharField(blank=True, help_text='Optional phone number for follow-up', max_length=20, validators=[apps.core.validators.validate_saudi_phone]), + ), + ] diff --git a/apps/observations/migrations/0022_observation_add_national_id.py b/apps/observations/migrations/0022_observation_add_national_id.py new file mode 100644 index 0000000..ba0480d --- /dev/null +++ b/apps/observations/migrations/0022_observation_add_national_id.py @@ -0,0 +1,18 @@ +# Generated by Django 6.0.1 on 2026-07-19 06:23 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('observations', '0021_alter_observation_reporter_phone'), + ] + + operations = [ + migrations.AddField( + model_name='observation', + name='national_id', + field=models.CharField(blank=True, help_text='Optional National ID/Iqama of the reporter', max_length=20), + ), + ] diff --git a/apps/observations/migrations/0023_add_patient_info_fields.py b/apps/observations/migrations/0023_add_patient_info_fields.py new file mode 100644 index 0000000..bbefb03 --- /dev/null +++ b/apps/observations/migrations/0023_add_patient_info_fields.py @@ -0,0 +1,33 @@ +# Generated by Django 6.0.1 on 2026-07-19 08:24 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('observations', '0022_observation_add_national_id'), + ] + + operations = [ + migrations.AddField( + model_name='observation', + name='patient_email', + field=models.EmailField(blank=True, help_text='Email of the patient', max_length=254), + ), + migrations.AddField( + model_name='observation', + name='patient_name', + field=models.CharField(blank=True, help_text='Name of the patient involved', max_length=200), + ), + migrations.AddField( + model_name='observation', + name='patient_national_id', + field=models.CharField(blank=True, help_text='National ID/Iqama of the patient', max_length=20), + ), + migrations.AddField( + model_name='observation', + name='patient_phone', + field=models.CharField(blank=True, help_text='Phone number of the patient', max_length=20), + ), + ] diff --git a/apps/observations/models.py b/apps/observations/models.py index ff5e8cc..a67e2fd 100644 --- a/apps/observations/models.py +++ b/apps/observations/models.py @@ -20,6 +20,7 @@ from django.utils import timezone from django.utils.translation import gettext_lazy as _ from apps.core.models import SoftDeleteModel, TimeStampedModel, UUIDModel +from apps.core.validators import validate_saudi_phone from apps.organizations.models import LocationType @@ -363,13 +364,18 @@ class Observation(UUIDModel, TimeStampedModel, SoftDeleteModel): # Optional reporter information (anonymous supported) reporter_staff_id = models.CharField(max_length=50, blank=True, help_text="Optional staff ID of the reporter") reporter_name = models.CharField(max_length=200, blank=True, help_text="Optional name of the reporter") - reporter_phone = models.CharField(max_length=20, blank=True, help_text="Optional phone number for follow-up") + reporter_phone = models.CharField(max_length=20, blank=True, validators=[validate_saudi_phone], help_text="Optional phone number for follow-up") reporter_email = models.EmailField(blank=True, help_text="Optional email for follow-up") + national_id = models.CharField(max_length=20, blank=True, help_text="Optional National ID/Iqama of the reporter") # Patient / subject information patient_file_number = models.CharField( max_length=100, blank=True, help_text="Medical record number / file number of the patient" ) + patient_name = models.CharField(max_length=200, blank=True, help_text="Name of the patient involved") + patient_national_id = models.CharField(max_length=20, blank=True, help_text="National ID/Iqama of the patient") + patient_phone = models.CharField(max_length=20, blank=True, help_text="Phone number of the patient") + patient_email = models.EmailField(blank=True, help_text="Email of the patient") # Status and workflow status = models.CharField( diff --git a/apps/observations/services.py b/apps/observations/services.py index d869239..f866d93 100644 --- a/apps/observations/services.py +++ b/apps/observations/services.py @@ -55,6 +55,7 @@ class ObservationService: reporter_name: str = "", reporter_phone: str = "", reporter_email: str = "", + national_id: str = "", client_ip: str = None, user_agent: str = "", attachments: list = None, @@ -99,6 +100,7 @@ class ObservationService: reporter_name=reporter_name, reporter_phone=reporter_phone, reporter_email=reporter_email, + national_id=national_id, client_ip=client_ip, user_agent=user_agent, hospital=hospital, diff --git a/apps/observations/tasks.py b/apps/observations/tasks.py index 20cf7e9..b5337bb 100644 --- a/apps/observations/tasks.py +++ b/apps/observations/tasks.py @@ -627,3 +627,39 @@ def send_observation_dept_response_reminders(): "first_reminder_count": first_reminder_count, "second_reminder_count": second_reminder_count, } + + +@shared_task +def send_observation_reminder_email(observation_id, reminder_type, recipients): + """Send a reminder email to department champion and manager for an observation.""" + import logging + + logger = logging.getLogger(__name__) + + try: + from apps.observations.models import Observation + from apps.notifications.services import NotificationService, get_email_header_html + + observation = Observation.objects.get(pk=observation_id) + + for recipient in recipients: + NotificationService.send_email( + email=recipient["email"], + subject=f"Reminder: Observation {observation.tracking_code} - Response Required", + message=f"This is a reminder that observation {observation.tracking_code} is awaiting your department's response. Please submit your response as soon as possible.", + html_message=f""" +
+ {get_email_header_html()} +
+

Reminder: Response Required

+

This is a reminder that observation {observation.tracking_code} is awaiting your department's response.

+

Please submit your response as soon as possible.

+
+
+""", + related_object=observation, + ) + + logger.info(f"Observation {observation_id} {reminder_type} reminder sent to {len(recipients)} recipients") + except Exception as e: + logger.error(f"Failed to send observation reminder email for {observation_id}: {e}") diff --git a/apps/observations/views.py b/apps/observations/views.py index 09033f0..770d3e1 100644 --- a/apps/observations/views.py +++ b/apps/observations/views.py @@ -195,6 +195,7 @@ def observation_create_public(request): reporter_name=form.cleaned_data.get("reporter_name", ""), reporter_phone=form.cleaned_data.get("reporter_phone", ""), reporter_email=form.cleaned_data.get("reporter_email", ""), + national_id=form.cleaned_data.get("national_id", ""), client_ip=client_ip, user_agent=user_agent, attachments=attachments, @@ -316,8 +317,8 @@ def observation_create(request): description=form.cleaned_data["description"], severity=form.cleaned_data.get("severity") or request.POST.get("severity", "medium"), category=None, - title="", - location_text="", + title=form.cleaned_data.get("title", "") or "", + location_text=form.cleaned_data.get("location_text", "") or "", incident_datetime=form.cleaned_data.get("incident_datetime"), reporter_staff_id=user.employee_id or "", reporter_name=user.get_full_name(), @@ -332,23 +333,28 @@ def observation_create(request): ) assigned_dept = form.cleaned_data.get("assigned_department") - assigned_user = form.cleaned_data.get("assigned_to") section = form.cleaned_data.get("section") if assigned_dept: observation.assigned_department = assigned_dept - if assigned_user: - observation.assigned_to = assigned_user - observation.status = ObservationStatus.IN_PROGRESS - ObservationStatusLog.objects.create( - observation=observation, - from_status=ObservationStatus.OPEN, - to_status=ObservationStatus.IN_PROGRESS, - comment="Auto-assigned during creation", - ) if section: observation.section = section + + observation.patient_name = form.cleaned_data.get("patient_name", "") or "" + observation.patient_national_id = form.cleaned_data.get("patient_national_id", "") or "" + observation.patient_phone = form.cleaned_data.get("patient_phone", "") or "" + observation.patient_email = form.cleaned_data.get("patient_email", "") or "" + + observation.assigned_to = user + observation.status = ObservationStatus.IN_PROGRESS observation.save() + ObservationStatusLog.objects.create( + observation=observation, + from_status=ObservationStatus.OPEN, + to_status=ObservationStatus.IN_PROGRESS, + comment="Auto-assigned during creation", + ) + comm_req_id = request.POST.get("comm_req") if comm_req_id: try: @@ -644,13 +650,13 @@ def observation_detail(request, pk): "status_form": status_form, "note_form": note_form, "status_choices": ObservationStatus.choices, - "can_triage": user.has_perm("observations.triage_observation") or user.is_px_admin(), + "can_triage": user.has_perm("observations.triage_observation") or user.is_px_admin() or user.is_px_employee(), "can_convert": user.is_px_admin() or user.is_hospital_admin() or user.is_px_management() or user.is_px_employee(), "can_send_to_department": user.is_px_admin() or user.is_hospital_admin() or user.is_px_management() or user.is_px_employee() or user.is_department_manager() or user.is_px_management(), "can_respond_to_department": user.is_px_admin() or user.is_hospital_admin() or user.is_px_management() or user.is_px_employee() or (user.is_champion() and observation.assigned_department == user.department), "can_send_reminder": user.is_px_admin() or user.is_hospital_admin() or user.is_px_management() or user.is_px_employee(), "can_delete": user.is_px_admin() or user.is_hospital_admin() or user.is_px_management() or user.is_px_employee(), - "can_admin": user.is_px_admin() or user.is_hospital_admin(), + "can_admin": user.is_px_admin() or user.is_hospital_admin() or user.is_px_employee(), "linked_rcas": linked_rcas, } @@ -734,7 +740,7 @@ def observation_triage(request, pk): # Check permission user = request.user - if not (user.has_perm("observations.triage_observation") or user.is_px_admin()): + if not (user.has_perm("observations.triage_observation") or user.is_px_admin() or user.is_px_employee()): messages.error(request, "You don't have permission to triage observations.") return redirect("observations:observation_detail", pk=pk) @@ -770,7 +776,7 @@ def observation_change_status(request, pk): # Check permission user = request.user - if not (user.has_perm("observations.triage_observation") or user.is_px_admin() or user.is_hospital_admin()): + if not (user.has_perm("observations.triage_observation") or user.is_px_admin() or user.is_hospital_admin() or user.is_px_employee()): messages.error(request, "You don't have permission to change observation status.") return redirect("observations:observation_detail", pk=pk) @@ -1619,6 +1625,8 @@ def observation_department_response(request, pk): if not ( user.is_px_admin() or user.is_hospital_admin() + or user.is_px_management() + or user.is_px_employee() or (user.is_champion() and observation.assigned_department == user.department) ): messages.error(request, "You don't have permission to respond to this observation.") @@ -1681,61 +1689,31 @@ Generate a JSON response with: is_internal=True, ) - try: - from apps.notifications.services import NotificationService, get_email_header_html - from apps.core.utils import build_public_track_url - - track_url = build_public_track_url("observation", observation.tracking_code) - - if observation.reporter_phone: - NotificationService.send_sms( - phone=observation.reporter_phone, - message=f"PX360: Your observation {observation.tracking_code} has been responded to. View details: {track_url}", - related_object=observation, - metadata={"notification_type": "observation_department_response"}, - ) - - if observation.reporter_email: - email_subject = f"PX360: Response to Your Observation {observation.tracking_code}" - email_body = ( - f"Dear Valued Reporter,\n\n" - f"Your observation {observation.tracking_code} has been responded to.\n\n" - f"To view the full response, please visit:\n{track_url}\n\n" - f"Thank you for your contribution.\n\n" - f"Tracking Code: {observation.tracking_code}\n" - f"This is an automated message from PX 360." - ) - NotificationService.send_email( - email=observation.reporter_email, - subject=email_subject, - message=email_body, - html_message=f""" -
- {get_email_header_html()} -
-

Response to Your Observation

-

Dear Valued Reporter,

-

Your observation {observation.tracking_code} has been responded to.

- -

Tracking Code: {observation.tracking_code}

-

Thank you for your contribution.

-
-
-""", - related_object=observation, - metadata={"notification_type": "observation_department_response_email"}, - ) - except Exception as e: - logger.warning(f"Failed to send observation response notification: {e}") - messages.success(request, "Department response submitted successfully.") + # Prefer a user-supplied relative next URL (e.g. back to the department + # observation detail page) over the default department landing page. + # Block protocol-relative URLs (``//host/`` or ``/\\host/``) to prevent + # open-redirect abuse. + next_url = request.POST.get("next") + if not ( + next_url + and next_url.startswith("/") + and not next_url.startswith("//") + and not next_url.startswith("/\\") + ): + next_url = None if request.headers.get('X-Requested-With') == 'XMLHttpRequest': from django.http import JsonResponse from django.urls import reverse - redirect_url = reverse("organizations:department_detail", kwargs={"pk": user.department.pk}) if user.department else reverse("observations:observation_detail", kwargs={"pk": pk}) + if next_url: + redirect_url = next_url + elif user.department: + redirect_url = reverse("organizations:department_detail", kwargs={"pk": user.department.pk}) + else: + redirect_url = reverse("observations:observation_detail", kwargs={"pk": pk}) return JsonResponse({"success": True, "redirect_url": redirect_url}) + if next_url: + return redirect(next_url) if user.department: return redirect("organizations:department_detail", pk=user.department.pk) return redirect("observations:observation_detail", pk=pk) @@ -1771,30 +1749,30 @@ def observation_send_dept_response_reminder(request, pk): reminder_type = request.POST.get("reminder_type", "first") + if reminder_type == "first" and observation.dept_response_reminder_sent_at: + messages.warning(request, "First reminder already sent.") + return redirect("observations:observation_detail", pk=pk) + if reminder_type == "second" and observation.dept_response_second_reminder_sent_at: + messages.warning(request, "Second reminder already sent.") + return redirect("observations:observation_detail", pk=pk) + if reminder_type == "second" and not observation.dept_response_reminder_sent_at: + messages.warning(request, "Please send the first reminder before the second.") + return redirect("observations:observation_detail", pk=pk) + try: from apps.notifications.services import NotificationService, get_email_header_html + from apps.organizations.department_contacts import get_champion_and_manager + + targets = get_champion_and_manager(dept) + if not targets: + messages.error(request, f"No champion or manager assigned to {dept.name}.") + return redirect("observations:observation_detail", pk=pk) recipients = [] - if dept.champion and dept.champion.user and dept.champion.user.email: - recipients.append(dept.champion.user) - - for recipient in recipients: - NotificationService.send_email( - email=recipient.email, - subject=f"Reminder: Observation {observation.tracking_code} - Response Required", - message=f"This is a reminder that observation {observation.tracking_code} is awaiting your department's response. Please submit your response as soon as possible.", - html_message=f""" -
- {get_email_header_html()} -
-

Reminder: Response Required

-

This is a reminder that observation {observation.tracking_code} is awaiting your department's response.

-

Please submit your response as soon as possible.

-
-
-""", - related_object=observation, - ) + for target in targets: + email = target.get("email") or "" + if email: + recipients.append({"email": email, "name": target.get("display_name", "")}) if reminder_type == "first": observation.dept_response_reminder_sent_at = timezone.now() @@ -1802,6 +1780,9 @@ def observation_send_dept_response_reminder(request, pk): observation.dept_response_second_reminder_sent_at = timezone.now() observation.save() + from apps.observations.tasks import send_observation_reminder_email + send_observation_reminder_email.delay(str(observation.id), reminder_type, recipients) + ObservationNote.objects.create( observation=observation, note=f"Manual {reminder_type} reminder sent by {user.get_full_name()}", @@ -1823,11 +1804,13 @@ def observation_send_dept_response_reminder(request, pk): @login_required -@permission_required("observations.manage_categories", raise_exception=True) def category_list(request): """ List observation categories. """ + if not (request.user.has_perm("observations.manage_categories") or request.user.is_px_admin() or request.user.is_px_employee()): + from django.core.exceptions import PermissionDenied + raise PermissionDenied categories = ObservationCategory.objects.all().order_by("sort_order", "name_en") context = { @@ -1838,12 +1821,14 @@ def category_list(request): @login_required -@permission_required("observations.manage_categories", raise_exception=True) @require_http_methods(["GET", "POST"]) def category_create(request): """ Create new observation category. """ + if not (request.user.has_perm("observations.manage_categories") or request.user.is_px_admin() or request.user.is_px_employee()): + from django.core.exceptions import PermissionDenied + raise PermissionDenied if request.method == "POST": form = ObservationCategoryForm(request.POST) if form.is_valid(): @@ -1862,12 +1847,14 @@ def category_create(request): @login_required -@permission_required("observations.manage_categories", raise_exception=True) @require_http_methods(["GET", "POST"]) def category_edit(request, pk): """ Edit observation category. """ + if not (request.user.has_perm("observations.manage_categories") or request.user.is_px_admin() or request.user.is_px_employee()): + from django.core.exceptions import PermissionDenied + raise PermissionDenied category = get_object_or_404(ObservationCategory, pk=pk) if request.method == "POST": @@ -1889,12 +1876,14 @@ def category_edit(request, pk): @login_required -@permission_required("observations.manage_categories", raise_exception=True) @require_http_methods(["POST"]) def category_delete(request, pk): """ Delete observation category. """ + if not (request.user.has_perm("observations.manage_categories") or request.user.is_px_admin() or request.user.is_px_employee()): + from django.core.exceptions import PermissionDenied + raise PermissionDenied category = get_object_or_404(ObservationCategory, pk=pk) # Check if category is in use diff --git a/apps/organizations/management/commands/export_sections.py b/apps/organizations/management/commands/export_sections.py new file mode 100644 index 0000000..7e22adf --- /dev/null +++ b/apps/organizations/management/commands/export_sections.py @@ -0,0 +1,59 @@ +""" +Management command to export sections (English name, Arabic name, department) to a CSV file. + +Usage: + python manage.py export_sections --output-dir ./exports +""" +import csv +import os + +from django.core.management.base import BaseCommand + +from apps.organizations.models import Section + + +class Command(BaseCommand): + help = 'Export sections (English name, Arabic name, department) to a CSV file' + + def add_arguments(self, parser): + parser.add_argument( + '--output-dir', + type=str, + default='./exports', + help='Directory to export the sections CSV file to', + ) + + def handle(self, *args, **options): + output_dir = options['output_dir'] + os.makedirs(output_dir, exist_ok=True) + + filepath = os.path.join(output_dir, 'sections.csv') + qs = ( + Section.objects.all() + .select_related('department') + .order_by('department__name_en', 'name_en') + ) + + seen = set() + rows = [] + for section in qs: + dept = section.department + row = ( + section.name_en or '', + section.name_ar or '', + dept.name_en if dept else '', + dept.name_ar if dept else '', + ) + if row in seen: + continue + seen.add(row) + rows.append(row) + + with open(filepath, 'w', newline='', encoding='utf-8-sig') as f: + writer = csv.writer(f) + writer.writerow(['Name (EN)', 'Name (AR)', 'Department (EN)', 'Department (AR)']) + writer.writerows(rows) + + self.stdout.write(self.style.SUCCESS( + f'Exported {len(rows)} unique sections to {filepath}' + )) diff --git a/apps/organizations/ui_views.py b/apps/organizations/ui_views.py index 6d07923..10b102e 100644 --- a/apps/organizations/ui_views.py +++ b/apps/organizations/ui_views.py @@ -1939,9 +1939,28 @@ def department_detail(request, pk): "involved_staff__staff" ).distinct().order_by("-created_at") - inquiries = Inquiry.objects.filter( - Q(department=department, sent_to_department=True) | Q(outgoing_department=department) - ).select_related("assigned_to", "patient").order_by("-created_at") + inquiry_direction = request.GET.get("inquiry_direction", "incoming") + sent_away = ( + Q(department=department) + & Q(transferred_to_department__isnull=False) + & ~Q(transferred_to_department=department) + ) + incoming_inquiries_qs = Inquiry.objects.filter( + Q(department=department, sent_to_department=True) + | Q(outgoing_department=department) + | Q(transferred_to_department=department) + ).exclude(sent_away) + outgoing_inquiries_qs = Inquiry.objects.filter(sent_away) + + if inquiry_direction == "outgoing": + inquiries = outgoing_inquiries_qs + else: + inquiries = incoming_inquiries_qs + inquiries = inquiries.select_related("assigned_to", "patient", "department", "outgoing_department", "transferred_to_department").order_by("-created_at") + + incoming_count = incoming_inquiries_qs.count() + outgoing_count = outgoing_inquiries_qs.count() + all_inquiries_count = incoming_count + outgoing_count observations = Observation.objects.filter( assigned_department=department, sent_to_department=True @@ -2166,18 +2185,17 @@ def department_detail(request, pk): pending_inquiries = Inquiry.objects.filter( Q(outgoing_department=department) | Q(department=department, sent_to_department=True), transferred_at__isnull=False, - department_responded_at__isnull=True, status__in=["open", "in_progress"], ).order_by("dept_response_sla_due_at") for inq in pending_inquiries: pending_actions.append({ "type": "inquiry_response", - "type_label": _("Inquiry Response"), + "type_label": _("Inquiry to Handle"), "reference": inq.reference_number or str(inq.id), "subject": inq.subject or inq.message[:80] if inq.message else "", "sla_due_at": inq.dept_response_sla_due_at, "is_overdue": inq.dept_response_sla_due_at and inq.dept_response_sla_due_at < dj_tz.now(), - "url": "/inquiries/{}/department-response/".format(inq.pk), + "url": "/organizations/departments/{}/inquiries/{}/".format(department.pk, inq.pk), "badge_color": "cyan", "item_id": str(inq.pk), "existing_en": inq.department_response_en or "", @@ -2241,6 +2259,10 @@ def department_detail(request, pk): "staff_complaint_counts": staff_complaint_counts, "complaints": complaints[:5], "inquiries": inquiries[:5], + "inquiry_direction": inquiry_direction, + "incoming_count": incoming_count, + "outgoing_count": outgoing_count, + "all_inquiries_count": all_inquiries_count, "observations": observations[:5], "appreciations": appreciations[:50], "suggestions": suggestions[:50], @@ -2423,7 +2445,7 @@ def department_complaints_list(request, pk): "complaint_dept_map": complaint_dept_map, "status_choices": Complaint.Status.choices if hasattr(Complaint, 'Status') else [], "list_stats": status_counts, - "status_labels": {"open": _("Open"), "in_progress": _("In Progress"), "resolved": _("Resolved"), "closed": _("Closed")}, + "status_labels": {"open": _("Open"), "in_progress": _("In Progress"), "resolved": _("Resolved"), "closed": _("Closed"), "contact_no_response": _("Contacted - No Response")}, } return render(request, "organizations/department_complaints.html", context) @@ -2442,9 +2464,26 @@ def department_inquiries_list(request, pk): messages.error(request, _("You don't have permission to view this department.")) return redirect("organizations:department_list") - queryset = Inquiry.objects.filter( - Q(department=department, sent_to_department=True) | Q(outgoing_department=department) - ).select_related("assigned_to", "patient").order_by("-created_at") + direction = request.GET.get("direction", "incoming") + + # Direction split (department POV): + # outgoing = this department transferred the inquiry away to another department + # incoming = inquiries this department currently handles (owned & not sent away, or transferred TO it) + sent_away = ( + Q(department=department) + & Q(transferred_to_department__isnull=False) + & ~Q(transferred_to_department=department) + ) + if direction == "outgoing": + queryset = Inquiry.objects.filter(sent_away) + else: + queryset = Inquiry.objects.filter( + Q(department=department, sent_to_department=True) + | Q(outgoing_department=department) + | Q(transferred_to_department=department) + ).exclude(sent_away) + + queryset = queryset.select_related("assigned_to", "patient").order_by("-created_at") from django.db.models import Count list_stats = queryset.values("status").annotate(count=Count("pk")) @@ -2495,7 +2534,8 @@ def department_inquiries_list(request, pk): "date_to": date_to or "", "can_respond": can_respond, "list_stats": status_counts, - "status_labels": {"open": _("Open"), "in_progress": _("In Progress"), "resolved": _("Resolved"), "closed": _("Closed")}, + "direction": direction, + "status_labels": {"open": _("Open"), "in_progress": _("In Progress"), "resolved": _("Resolved"), "closed": _("Closed"), "contact_no_response": _("Contacted - No Response")}, } return render(request, "organizations/department_inquiries.html", context) @@ -2731,12 +2771,8 @@ def department_inquiry_detail(request, pk, ipk): can_respond = ( user.is_px_admin() or user.is_hospital_admin() - or (user.is_department_manager() and user.department == department) - or ( - user.is_champion() - and user.department - and user.department in [inquiry.department, inquiry.outgoing_department] - ) + or (user.is_department_manager() and user.department_id == inquiry.handling_department_id) + or (user.is_champion() and user.department_id == inquiry.handling_department_id) ) location_parts = [] @@ -2750,12 +2786,21 @@ def department_inquiry_detail(request, pk, ipk): inquiry_ct = ContentType.objects.get_for_model(Inquiry) notes = inquiry.notes.select_related("created_by").order_by("-created_at") + departments = ( + Department.objects.filter(hospital=department.hospital, status="active") + .exclude(pk=department.pk) + .order_by("name_en") + ) + users = User.objects.filter(hospital=department.hospital, is_active=True) + context = { "department": department, "inquiry": inquiry, "location_str": " > ".join(location_parts) if location_parts else "", "can_respond": can_respond, "notes": notes, + "departments": departments, + "users": users, "content_type_id": inquiry_ct.pk, "object_id": inquiry.pk, } @@ -3084,6 +3129,17 @@ def department_record_inquiry(request, pk): "created_at": inquiry.created_at.strftime("%Y-%m-%d %H:%M"), "due_at": inquiry.due_at.strftime("%Y-%m-%d %H:%M") if hasattr(inquiry, 'due_at') and inquiry.due_at else None, "ai_summary": inquiry.short_description_en if hasattr(inquiry, 'short_description_en') else "", + "department_response_en": inquiry.department_response_en or "", + "department_response_ar": inquiry.department_response_ar or "", + "department_responded_at": inquiry.department_responded_at.strftime("%Y-%m-%d %H:%M") if inquiry.department_responded_at else None, + "priority_display": inquiry.get_priority_display() if hasattr(inquiry, 'priority') and inquiry.priority else "", + "contact_status_display": inquiry.get_contact_status_display() if inquiry.contact_status else "", + "response": inquiry.response or inquiry.response_en or "", + "responded_at": inquiry.responded_at.strftime("%Y-%m-%d %H:%M") if inquiry.responded_at else None, + "responded_by": inquiry.responded_by.get_full_name() if inquiry.responded_by else None, + "resolved_at": inquiry.resolved_at.strftime("%Y-%m-%d %H:%M") if inquiry.resolved_at else None, + "resolved_by": inquiry.resolved_by.get_full_name() if inquiry.resolved_by else None, + "outgoing_department": inquiry.outgoing_department.get_localized_name() if inquiry.outgoing_department else None, } return JsonResponse(data) diff --git a/apps/organizations/views.py b/apps/organizations/views.py index d58e546..15efad6 100644 --- a/apps/organizations/views.py +++ b/apps/organizations/views.py @@ -928,7 +928,7 @@ def api_department_staff(request, department_id): staff_qs = ( Staff.objects.select_related("user") - .filter(department=dept, hospital_id=dept.hospital_id, user__is_active=True) + .filter(department=dept, hospital_id=dept.hospital_id, status="active") .order_by("first_name", "last_name") ) diff --git a/apps/presentations/views.py b/apps/presentations/views.py index 9ce85bc..cd80e87 100644 --- a/apps/presentations/views.py +++ b/apps/presentations/views.py @@ -357,7 +357,33 @@ def presentation_generate(request): @login_required def template_list(request): + user = request.user + selected_hospital = getattr(request, "tenant_hospital", None) + templates = ReportTemplate.objects.select_related('created_by', 'hospital').prefetch_related('template_slides') + + # Apply RBAC filters (previously missing entirely — every user saw all hospitals' templates) + if user.is_px_admin(): + if selected_hospital: + templates = templates.filter(Q(hospital=selected_hospital) | Q(hospital__isnull=True)) + elif user.is_hospital_admin() and user.hospital: + templates = templates.filter(Q(hospital=user.hospital) | Q(hospital__isnull=True)) + elif user.is_px_management() or user.is_px_employee(): + if user.hospital: + templates = templates.filter(Q(hospital=user.hospital) | Q(hospital__isnull=True)) + else: + templates = templates.filter(hospital__isnull=True) + elif user.is_department_manager() and user.department: + templates = templates.filter(Q(hospital=user.hospital) | Q(hospital__isnull=True)) + elif user.is_champion() and user.department: + templates = templates.filter(Q(hospital=user.hospital) | Q(hospital__isnull=True)) + elif user.is_source_user(): + templates = templates.filter(created_by=user) + elif user.hospital: + templates = templates.filter(Q(hospital=user.hospital) | Q(hospital__isnull=True)) + else: + templates = templates.filter(hospital__isnull=True) + context = { 'templates': templates, 'data_sources': REPORT_DATA_SOURCES, diff --git a/apps/projects/ui_views.py b/apps/projects/ui_views.py index 1e0e1d5..2c1958a 100644 --- a/apps/projects/ui_views.py +++ b/apps/projects/ui_views.py @@ -52,7 +52,7 @@ def _notify_project_team(project): if not recipient_ids: return - recipients = Staff.objects.filter(id__in=recipient_ids, user__isnull=False).select_related("user") + recipients = Staff.objects.filter(id__in=recipient_ids).select_related("user") subject = f"New QI Project: {project.name}" plain = ( @@ -71,7 +71,7 @@ def _notify_project_team(project):
""" for sp in recipients: - email = getattr(sp.user, "email", None) + email = sp.email or getattr(sp.user, "email", None) if not email: continue try: @@ -1165,7 +1165,12 @@ def template_list(request): queryset = QIProject.objects.filter(is_template=True).select_related("hospital").prefetch_related("departments") # Apply RBAC filters - if not user.is_px_admin(): + selected_hospital = getattr(request, "tenant_hospital", None) + if user.is_px_admin(): + if selected_hospital: + queryset = queryset.filter(Q(hospital=selected_hospital) | Q(hospital__isnull=True)) + else: + # hospital_admin path (only px_admin/hospital_admin reach this point — gated above) queryset = queryset.filter(Q(hospital=user.hospital) | Q(hospital__isnull=True)) # Search diff --git a/apps/surveys/his_views.py b/apps/surveys/his_views.py index 59b20e3..41a618f 100644 --- a/apps/surveys/his_views.py +++ b/apps/surveys/his_views.py @@ -513,10 +513,21 @@ def bulk_job_list(request): List all bulk survey jobs for the user. """ user = request.user + selected_hospital = getattr(request, "tenant_hospital", None) - # Filter jobs + # Filter jobs by RBAC if user.is_px_admin(): - jobs = BulkSurveyJob.objects.all() + if selected_hospital: + jobs = BulkSurveyJob.objects.filter(hospital=selected_hospital) + else: + jobs = BulkSurveyJob.objects.none() + elif user.is_hospital_admin() and user.hospital: + jobs = BulkSurveyJob.objects.filter(hospital=user.hospital) + elif user.is_px_management() or user.is_px_employee(): + if user.hospital: + jobs = BulkSurveyJob.objects.filter(hospital=user.hospital) + else: + jobs = BulkSurveyJob.objects.none() elif user.hospital: jobs = BulkSurveyJob.objects.filter(hospital=user.hospital) else: diff --git a/apps/surveys/ui_views.py b/apps/surveys/ui_views.py index 31a09bf..7f54b2e 100644 --- a/apps/surveys/ui_views.py +++ b/apps/surveys/ui_views.py @@ -599,10 +599,22 @@ def survey_comments_list(request): # Apply RBAC filters user = request.user + selected_hospital = getattr(request, "tenant_hospital", None) + if user.is_px_admin(): - pass # See all + if selected_hospital: + queryset = queryset.filter(survey_template__hospital=selected_hospital) elif user.is_hospital_admin() and user.hospital: queryset = queryset.filter(survey_template__hospital=user.hospital) + elif user.is_px_management() or user.is_px_employee(): + if user.hospital: + queryset = queryset.filter(survey_template__hospital=user.hospital) + elif user.is_department_manager() and user.department: + queryset = queryset.filter(survey_template__department=user.department) + elif user.is_champion() and user.department: + queryset = queryset.filter(survey_template__department=user.department) + elif user.is_source_user(): + queryset = queryset.filter(created_by=user) elif user.hospital: queryset = queryset.filter(survey_template__hospital=user.hospital) else: @@ -1817,8 +1829,19 @@ def survey_analytics_dashboard(request): messages.error(request, "You don't have permission to view analytics.") return redirect("surveys:instance_list") - # Get available templates - templates = SurveyTemplate.objects.filter(is_active=True).order_by("name") + # Get available templates (scoped to user's hospital; system-wide templates included) + selected_hospital = getattr(request, "tenant_hospital", None) + if user.is_px_admin(): + scope_hospital = selected_hospital + else: + scope_hospital = user.hospital + + templates = SurveyTemplate.objects.filter(is_active=True) + if scope_hospital: + templates = templates.filter(Q(hospital=scope_hospital) | Q(hospital__isnull=True)) + else: + templates = templates.filter(hospital__isnull=True) + templates = templates.order_by("name") # Get selected template from query param selected_template_id = request.GET.get("template") diff --git a/config/settings/base.py b/config/settings/base.py index d709d02..2f209bf 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -441,7 +441,7 @@ DEFAULT_FROM_EMAIL = env("DEFAULT_FROM_EMAIL", default="noreply@px360.sa") SITE_URL = env("SITE_URL", default="http://localhost:8000") BASE_URL = SITE_URL SURVEY_BASE_URL = SITE_URL -EMAIL_LOGO_URL = env("EMAIL_LOGO_URL", default=f"{SITE_URL}{STATIC_URL}img/HH_P_H_Logo.png") +EMAIL_LOGO_URL = env("EMAIL_LOGO_URL", default=f"{SITE_URL}{STATIC_URL}images/logos/HH_P_H_Logo_CMYK---LANDSCIP1.png") # HIS Integration Settings HIS_API_URL = env("HIS_API_URL", default="https://his.alhammadi.med.sa/SSRCE/API/FetchPatientVisitTimeStamps") diff --git a/config/settings/dev.py b/config/settings/dev.py index f8c5c8c..5532131 100644 --- a/config/settings/dev.py +++ b/config/settings/dev.py @@ -6,7 +6,7 @@ from .base import * # noqa DEBUG = True -ALLOWED_HOSTS = ["192.168.8.13","localhost", "127.0.0.1", "0.0.0.0", ".ngrok-free.app", "micha-nonparabolic-lovie.ngrok-free.dev"] +ALLOWED_HOSTS = ["192.168.8.13","localhost", "127.0.0.1", "0.0.0.0"] # Database - Use PostgreSQL even in dev for consistency # Override with SQLite if needed for quick local testing @@ -17,11 +17,7 @@ ALLOWED_HOSTS = ["192.168.8.13","localhost", "127.0.0.1", "0.0.0.0", ".ngrok-fre # ) # } -CSRF_TRUSTED_ORIGINS = [ - "https://*.ngrok-free.app", - "https://*.ngrok.app", - "https://micha-nonparabolic-lovie.ngrok-free.dev", -] +CSRF_TRUSTED_ORIGINS = [] # Database inherits from base.py (PostgreSQL) # To temporarily switch back to SQLite for testing, uncomment: diff --git a/deploy/compose.dev-home.yml b/deploy/compose.dev-home.yml new file mode 100644 index 0000000..e44c869 --- /dev/null +++ b/deploy/compose.dev-home.yml @@ -0,0 +1,78 @@ +# PX360 — DEV compose for `target deploy` (bundled postgres + redis) +# +# target injects into the `web_app` service on deploy: +# - container_name: -web_app (so the shared Caddy can route to it) +# - networks: [target-proxy, default] +# - removes any `ports:` (the shared Caddy handles ingress) +# +# The web service MUST be named `web_app` — target's Caddy injection looks for it. +# `{{ .ImageTag }}` is replaced by target with the freshly built image tag. +# +# env file (in the deploy dir ~/.target/hh-dev/): +# .env — ALL config + secrets, shipped by `target deploy` (deploy/env.dev) +services: + web_app: + image: {{ .ImageTag }} + restart: unless-stopped + env_file: + - .env + volumes: + - media_volume:/app/media + depends_on: + db: + condition: service_healthy + redis: + condition: service_healthy + ports: + - "8888:8000" + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8000/health/"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s + + celery: + image: {{ .ImageTag }} + restart: unless-stopped + command: celery -A config worker -l info --concurrency=2 + env_file: + - .env + + celery-beat: + image: {{ .ImageTag }} + restart: unless-stopped + command: celery -A config beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler + env_file: + - .env + + db: + image: postgres:15-alpine + restart: unless-stopped + ports: + - "5432:5432" + env_file: + - .env + volumes: + - pg_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-px360}"] + interval: 10s + timeout: 5s + retries: 5 + + redis: + image: redis:7-alpine + restart: unless-stopped + volumes: + - redis_data:/data + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 10s + timeout: 5s + retries: 5 + +volumes: + pg_data: + redis_data: + media_volume: diff --git a/deploy/compose.dev.yml b/deploy/compose.dev.yml index e44c869..83b463f 100644 --- a/deploy/compose.dev.yml +++ b/deploy/compose.dev.yml @@ -24,7 +24,7 @@ services: redis: condition: service_healthy ports: - - "8888:8000" + - "8000:8000" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health/"] interval: 30s diff --git a/deploy/target.dev.yaml b/deploy/target.dev.yaml index 7dd6205..a03a930 100644 --- a/deploy/target.dev.yaml +++ b/deploy/target.dev.yaml @@ -2,12 +2,12 @@ # Usage: `make deploy-dev` (runs: target deploy --config deploy/target.dev.yaml) app: name: "hh-dev" # isolated project dir: ~/.target/hh-dev/ - domain: "px360.ismailmosaibrahim.com" # shared Caddy routes this domain → web_app - port: 8888 + domain: "px360.hh.med.sa" # shared Caddy routes this domain → web_app + port: 8000 server: - ip: "192.168.8.73" - user: "ismail" + ip: "10.132.16.5" + user: "ahh-ops" ssh_key: "~/.ssh/id_rsa" build: @@ -15,7 +15,7 @@ build: context: "." # repo root (where the Dockerfile lives) deploy: - use_caddy: false # shared target-caddy handles HTTPS + use_caddy: false # shared target-caddy handles HTTPS caddy_email: "ismail.mosa.ibrahim@gmail.com" compose_file: "deploy/compose.dev.yml" # user-provided compose (uses {{ .ImageTag }}) env_file: "deploy/env.dev" # shipped to ~/.target/hh-dev/.env each deploy diff --git a/docs/API_ENDPOINTS.md b/docs/API_ENDPOINTS.md index d6c718c..6b64bfb 100644 --- a/docs/API_ENDPOINTS.md +++ b/docs/API_ENDPOINTS.md @@ -705,3 +705,4 @@ For interactive API documentation with try-it-out functionality: --- **Last Updated:** December 14, 2025 + diff --git a/docs/PX360_External_API.postman_collection.json b/docs/PX360_External_API.postman_collection.json index 26194de..f250233 100644 --- a/docs/PX360_External_API.postman_collection.json +++ b/docs/PX360_External_API.postman_collection.json @@ -744,7 +744,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"hospital_id\": 1,\n \"doctor_id\": \"10738\",\n \"doctor_name\": \"Dr. Omaymah Yaqoub\",\n \"rating\": 4,\n \"feedback\": \"Great doctor, very caring and attentive.\",\n \"rating_date\": \"2026-06-10\",\n \"patient_uhid\": \"UHID12345\",\n \"patient_name\": \"Ahmed Ali\",\n \"patient_type\": \"OP\",\n \"department_name\": \"Internal Medicine\"\n}" + "raw": "{\n \"hospital\": \"Al Nuzha\",\n \"doctor_id\": \"10738\",\n \"doctor_name\": \"Dr. Omaymah Yaqoub\",\n \"rating\": 4,\n \"feedback\": \"Great doctor, very caring and attentive.\",\n \"rating_date\": \"2026-06-10\",\n \"patient_uhid\": \"UHID12345\",\n \"patient_name\": \"Ahmed Ali\",\n \"patient_type\": \"OP\",\n \"department_name\": \"Internal Medicine\"\n}" }, "url": { "raw": "{{base_url}}/api/v1/external/doctor-ratings/", @@ -765,7 +765,7 @@ }, "status": "Created", "code": 201, - "body": "{\n \"success\": true,\n \"rating_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"staff_id\": \"f1e2d3c4-b5a6-7890-abcd-ef1234567890\",\n \"doctor_name\": \"OMAYMAH YAQOUB ELAMEIAN\",\n \"rating\": 4\n}" + "body": "{\n \"success\": true,\n \"rating_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"rating\": 4\n}" }, { "name": "Doctor Not Found", diff --git a/docs/external-api.md b/docs/external-api.md index 067166f..f120986 100644 --- a/docs/external-api.md +++ b/docs/external-api.md @@ -545,7 +545,7 @@ GET /api/v1/external/suggestions// ### Submit a Doctor Rating -Submit a patient rating for a doctor. The `doctor_id` must be an existing employee ID in the Staff table for the given hospital. +Submit a patient rating for a doctor. The `doctor_id` should identify the doctor (existing staff matched by employee ID, license number, or name; otherwise a new Staff record is auto-created — see below). ``` POST /api/v1/external/doctor-ratings/ @@ -555,10 +555,10 @@ POST /api/v1/external/doctor-ratings/ | Field | Required | Type | Description | |---|---|---|---| -| `hospital_id` | Yes | integer | Hospital ID | -| `doctor_id` | Yes | string | Doctor's employee ID (must exist in the hospital's Staff records) | +| `hospital` | Yes | string | Hospital name (case-insensitive) | +| `doctor_id` | Yes | string | Doctor's employee ID | | `rating` | Yes | integer | Rating from 1 to 5 | -| `doctor_name` | No | string | Doctor name (stored for reference) | +| `doctor_name` | Conditional | string | Doctor name. Required when `doctor_id` does not match an existing staff record (see auto-creation below). Otherwise stored for reference. | | `feedback` | No | string | Patient feedback text | | `rating_date` | No | date | Date of rating (`YYYY-MM-DD`, defaults to current date) | | `patient_uhid` | No | string | Patient unique health ID | @@ -568,11 +568,13 @@ POST /api/v1/external/doctor-ratings/ | `admit_date` | No | date | Admission date (`YYYY-MM-DD`) | | `discharge_date` | No | date | Discharge date (`YYYY-MM-DD`) | +**Staff lookup & auto-creation:** When a rating is submitted, the server looks up the doctor by (in order) `employee_id`, `license_number`, then `doctor_name` (exact / contains / first+last name split). If no existing staff is matched, a new Staff record is **auto-created** with `staff_type=physician`, `job_title="Physician"`, `employee_id=doctor_id`, and the provided name. In that case `doctor_name` is required; omitting it returns `400`. The auto-creation is logged as an `external_staff_auto_created` audit event. + **Example:** ```json { - "hospital_id": 1, + "hospital": "Al Nuzha", "doctor_id": "10738", "doctor_name": "Dr. Omaymah Yaqoub", "rating": 4, @@ -591,8 +593,6 @@ POST /api/v1/external/doctor-ratings/ { "success": true, "rating_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", - "staff_id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890", - "doctor_name": "OMAYMAH YAQOUB ELAMEIAN", "rating": 4 } ``` @@ -601,21 +601,95 @@ POST /api/v1/external/doctor-ratings/ | HTTP Status | Condition | |---|---| -| `400` | `doctor_id` not found in the hospital's Staff records | +| `400` | `doctor_id` matches no existing staff AND `doctor_name` is missing (cannot auto-create) | | `400` | `rating` outside 1-5 range | -| `400` | `hospital_id` not found | +| `400` | `hospital` not found | | `403` | Hospital does not match API key scope | -**Error Example (doctor not found):** +**Error Example (cannot auto-create without a name):** ```json { - "doctor_id": [ - "Doctor with employee ID '99999' not found at this hospital." + "doctor_name": [ + "Staff not found for this doctor_id; provide doctor_name to auto-create the staff record." ] } ``` +### List Doctor Ratings + +Returns a paginated list of doctor ratings, scoped to the API key's hospital. + +``` +GET /api/v1/external/doctor-ratings/list/ +``` + +**Query Parameters (all optional):** + +| Parameter | Description | +|---|---| +| `doctor_id` | Filter by HIS employee ID (exact match) | +| `rating` | Filter by rating value 1-5 (exact match) | +| `rating_from` | Rating-date lower bound (`YYYY-MM-DD` or `YYYY-MM-DDTHH:MM:SS`) | +| `rating_to` | Rating-date upper bound (`YYYY-MM-DD` or `YYYY-MM-DDTHH:MM:SS`) | +| `created_from` / `created_to` | Created-at date range | +| `updated_from` / `updated_to` | Updated-at date range | +| `page` | Page number (default `1`) | +| `page_size` | Page size (default `20`, max `100`) | + +**Response (200):** + +```json +{ + "count": 42, + "page": 1, + "page_size": 20, + "results": [ + { + "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "staff_id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890", + "hospital_name": "Al Nuzha", + "source": "his_api", + "source_reference": "", + "doctor_id": "10738", + "doctor_name": "OMAYMAH YAQOUB ELAMEIAN", + "doctor_name_raw": "10738 - OMAYMAH YAQOUB ELAMEIAN", + "doctor_name_display": "OMAYMAH YAQOUB ELAMEIAN", + "department_name": "Internal Medicine", + "patient_uhid": "UHID12345", + "patient_name": "Ahmed Ali", + "patient_type": "OP", + "admit_date": null, + "discharge_date": null, + "rating": 4, + "feedback": "Great doctor, very caring and attentive.", + "rating_date": "2026-06-10T00:00:00+03:00", + "is_aggregated": false, + "aggregated_at": null, + "created_at": "2026-06-10T14:22:11+03:00", + "updated_at": "2026-06-10T14:22:11+03:00" + } + ] +} +``` + +### Retrieve a Doctor Rating + +Retrieve a single rating by its UUID (returned in the `rating_id` field on creation). + +``` +GET /api/v1/external/doctor-ratings// +``` + +**Response (200):** Same object shape as a single item from the list endpoint. + +**Error Responses:** + +| HTTP Status | Condition | +|---|---| +| `404` | Rating does not exist, or is outside the API key's hospital scope | +| `403` | API key does not have access to `doctor_ratings` | + --- ## Common Patterns diff --git a/exports/admin_notifications.html b/exports/admin_notifications.html new file mode 100644 index 0000000..2292610 --- /dev/null +++ b/exports/admin_notifications.html @@ -0,0 +1,506 @@ + + + + + + Admin Notification Templates + + + + + + + +
+ + + + + + + + + +
+ ▼ New Complaint (Admin Notification) +
+ + + + + + + + +
+ + + + + + +
+

إلى إدارة تجربة المريض

+

تحية طيبة

+ +

+ نود إبلاغكم باستلام شكوى جديدة بتاريخ: 20/يوليو/2026 10:45 ص برقم المرجع: CMP-202607-0067 الأولوية: عالية +

+ +

+ للاطلاع عليها وتفعيلها، يمكنكم النقر على +

+ +

+ (تفعيل الشكوى) +

+ +

+ نرجو مراجعتها وتفعيلها في أقرب وقت ممكن، وللإفادة إضغط على +

+ +

+ (نموذج الإفادة) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Patient Experience Management

+

Greetings,

+ +

+ We would like to inform you that a new complaint has been received on: 20/July/2026 10:45 AM with reference: CMP-202607-0067 Priority: High +

+ +

+ To view and activate it, you can click on: +

+ +

+ (Activate Complaint) +

+ +

+ Please review and activate it at your earliest convenience, and to provide feedback, click on: +

+ +

+ (Feedback Form) +

+ +
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + +
+ ▼ Communication Request +
+ + + + + + + + +
+ + + + + + +
+

إلى قسم علاقات المرضى

+

تحية طيبة

+ +

+ نود إبلاغكم بطلب تواصل جديد بتاريخ: 20/يوليو/2026 01:15 م من قبل المستخدم: نورة القحطاني رقم الطلب: CR-2026-0158 +

+ +

+ للاطلاع على الطلب والرد عليه، يمكنكم النقر على +

+ +

+ (نموذج الطلب) +

+ +

+ نرجو الرد على الطلب في أقرب وقت، وللإفادة إضغط على +

+ +

+ (نموذج الرد) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Patient Relations Department

+

Greetings,

+ +

+ We would like to inform you that a new communication request has been submitted on: 20/July/2026 01:15 PM by user: Noura Al-Qahtani Request ID: CR-2026-0158 +

+ +

+ To view and respond to the request, you can click on: +

+ +

+ (Request Form) +

+ +

+ Please respond to the request at your earliest convenience, and to provide feedback, click on: +

+ +

+ (Reply Form) +

+ +
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + +
+ ▼ Invitation Expired +
+ + + + + + + + +
+ + + + + + +
+

إلى السيد / محمد العمري

+

تحية طيبة

+ +

+ نود إبلاغكم بأن دعوتكم للانضمام إلى نظام PX360 قد انتهت صلاحيتها بتاريخ: 19/يوليو/2026 11:59 م +

+ +

+ لطلب دعوة جديدة، يرجى التواصل مع المسؤول، وللإطلاع إضغط على +

+ +

+ (طلب دعوة جديدة) +

+ +

+ سيتم إنشاء رابط دعوة جديد لكم لإكمال إعداد الحساب، وللإفادة إضغط على +

+ +

+ (نموذج الإفادة) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Mr. Mohammed Al-Omari

+

Greetings,

+ +

+ We would like to inform you that your invitation to join PX360 has expired on: 19/July/2026 11:59 PM +

+ +

+ To request a new invitation, please contact your administrator, and to view, click on: +

+ +

+ (Request New Invitation) +

+ +

+ A new invitation link will be generated for you to complete your account setup, and to provide feedback, click on: +

+ +

+ (Feedback Form) +

+ +
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + +
+ ▼ PX360 Weekly Digest +
+ + + + + + + + +
+ + + + + + +
+

ملخص الأسبوع - مستشفى الحمادي

+

تحية طيبة

+ +

+ نود إبلاغكم بالملخص الأسبوعي لأداء تجربة المريض للأسبوع: 14-20 يوليو 2026 إجمالي الشكاوى: 24 | معدل الالتزام بـ SLA: 87% +

+ +

+ للاطلاع على التفاصيل الكاملة، يمكنكم النقر على +

+ +

+ (لوحة المعلومات) +

+ +

+ نرجو مراجعة المؤشرات والتنبيهات والرد على المخاطر العالية، وللإفادة إضغط على +

+ +

+ (نموذج الإفادة) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

Weekly Digest - Al Hammadi Hospital

+

Greetings,

+ +

+ We would like to share the weekly patient experience performance digest for the week: 14-20 July 2026 Total Complaints: 24 | SLA Compliance: 87% +

+ +

+ To view the full dashboard, you can click on: +

+ +

+ (Dashboard) +

+ +

+ Please review the metrics, early warnings, and respond to high-risk items, and to provide feedback, click on: +

+ +

+ (Feedback Form) +

+ +
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ +
+ + + diff --git a/exports/appointment_email.html b/exports/appointment_email.html new file mode 100644 index 0000000..cca6f50 --- /dev/null +++ b/exports/appointment_email.html @@ -0,0 +1,140 @@ + + + + + + Appointment Confirmation Template + + + + + + + +
+ + + + + + + + + +
+ ▼ Appointment Confirmation +
+ + + + + + + + +
+ + + + + + +
+

إلى المريض / ماجد الحربي

+

تحية طيبة

+ +

+ نود إبلاغكم بتأكيد موعدكم بتاريخ: 25/يوليو/2026 10:30 ص رقم الموعد: APT-202607-0214 القسم: العيادات الخارجية - الباطنة الطبيب: د. سامي إبراهيم +

+ +

+ للاطلاع على تفاصيل الموعد، يمكنكم النقر على +

+ +

+ (تفاصيل الموعد) +

+ +

+ نرجو الحضور قبل الموعد بـ 15 دقيقة لإتمام التسجيل. لإعادة الجدولة إضغط على +

+ +

+ (إعادة الجدولة) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Patient / Majed Al-Harbi

+

Greetings,

+ +

+ We would like to confirm your appointment on: 25/July/2026 10:30 AM Appointment ID: APT-202607-0214 Department: Outpatient - Internal Medicine Doctor: Dr. Sami Ibrahim +

+ +

+ To view the appointment details, you can click on: +

+ +

+ (Appointment Details) +

+ +

+ Please arrive 15 minutes before the appointment for registration. To reschedule, click on: +

+ +

+ (Reschedule) +

+ +
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ +
+ + + diff --git a/exports/complaint_escalation_artboard_variant.html b/exports/complaint_escalation_artboard_variant.html new file mode 100644 index 0000000..96a2754 --- /dev/null +++ b/exports/complaint_escalation_artboard_variant.html @@ -0,0 +1,311 @@ + + + + + + Complaint Escalation - Artboard Variant + + + + +
+ + + + +
▼ Stage 1: New Complaint Notification
+
+
+ +
+

إلى قسم المختبر

+

تحية طيبة

+

+ نود إبلاغكم باستلام شكوى بتاريخ: + 23/يونيو/2026 12:15 م + من قبل وزارة الصحة برقم الهوية: + 1113543183 +

+

للإطلاع عليها، يمكنكم النقر على

+

(نموذج الشكوى)

+

نرجو النظر في الأمر والتحقق خلال 24 ساعة، وللإفادة إضغط على

+

(نموذج الرد على الشكوى)

+
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ رابط +

نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض

+
+ +
+ +
+

To: Laboratory Department

+

Greetings,

+

+ We would like to inform you that a complaint has been received on: + 23/June/2026 12:15 PM + by the Ministry of Health with ID number: + 1113543183 +

+

To view it, you can click on:

+

(Complaint Form)

+

Please look into the matter and verify within 24 hours, and to provide feedback, click on:

+

(Complaint Response Form)

+
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ Link +

We appreciate your commitment.
Regards, Patient Relations and Experience Management

+
+ +
+
+ + + + + +
▼ Stage 2: First Reminder Notification
+
+
+ +
+

إلى قسم الأمن

+

+ نقدر لكم انشغالكم وحرصكم، نود + تذكيركم + بالشكوى المقدمة + بتاريخ: 21/يونيو/2026 02:23 م + من قبل المراجع برقم الهوية: + 2343965287 +

+

(نموذج الشكوى)

+

نرجو منكم التكرم بالرد على هذه الشكوى خلال الـ 24 ساعة القادمة، حرصاً على تحسين تجربة المريض وضمان معالجة الشكوى في الوقت المناسب، للرد نأمل النقر على

+

(نموذج الرد على الشكوى)

+
+

للإستفسارات أو لمزيد من المعلومات، يُرجى التواصل على:

+

التحويلة: 1379 — رقم التواصل: 0537695000

+
+ رابط +

نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض

+
+ +
+ +
+

To: Security Department

+

+ We appreciate your dedication and diligence. We would like to + remind you + regarding the submitted complaint + dated: 21/June/2026 02:23 PM + by the visitor with National ID: + 2343965287 +

+

(Complaint Form)

+

Please kindly respond to this complaint within the next 24 hours, in our commitment to enhancing patient experience and ensuring timely resolution. To reply, please click on:

+

(Complaint Response Form)

+
+

For inquiries or more information, please contact us via:

+

Extension: 1379 — Contact Number: 0537695000

+
+ Link +

We appreciate your commitment.
Regards, Patient Relations and Experience Management

+
+ +
+
+ + + + + +
▼ Stage 3: Second Reminder Notification
+
+
+ +
+

إلى قسم المالية

+

تحية طيبة

+

+ نشكر لكم تعاونكم ونقدّر انشغالكم، ولكن نرجو + ملاحظة الوقت المتبقي للرد هو 6 ساعات + على الشكوى المقدمة بتاريخ: + 22/يونيو/2026 04:20 م + من قبل مجلس الضمان الصحي برقم الهوية: + 1050208576 +

+

(نموذج الشكوى)

+

لذا نأمل منكم التكرم بالرد والإفادة في أقرب وقت ممكن لتجنب أي تأخير إضافي في معالجة الشكوى. وللرد، يرجى النقر على

+

(نموذج الرد على الشكوى)

+
+

للإستفسارات أو لمزيد من المعلومات، يُرجى التواصل معنا:

+

التحويلة: 1379 — رقم التواصل: 0537695000

+
+ رابط +

نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض

+
+ +
+ +
+

To: Financial Department

+

Greetings,

+

+ We appreciate your cooperation and value your time, but please + note that the remaining time to respond is 6 hours + regarding the complaint submitted on: + 22/June/2026 04:20 PM + by the Council of Health Insurance with ID number: + 1050208576 +

+

(Complaint Form)

+

Therefore, we kindly request your response and feedback as soon as possible to avoid any further delay in processing the complaint. To reply, please click on:

+

(Complaint Response Form)

+
+

For inquiries or more information, please contact us via:

+

Extension: 1379 — Contact Number: 0537695000

+
+ Link +

We appreciate your commitment.
Regards, Patient Relations and Experience Management

+
+ +
+
+ +
+ + + diff --git a/exports/complaint_escalation_templates.html b/exports/complaint_escalation_templates.html new file mode 100644 index 0000000..a1fbf34 --- /dev/null +++ b/exports/complaint_escalation_templates.html @@ -0,0 +1,383 @@ + + + + + + Complaint System Escalation Templates + + + + + + + +
+ + + + + + + + + + +
+ ▼ Stage 1: New Complaint Notification +
+ + + + + + + + +
+ + + + + + +
+

إلى قسم المختبر

+

تحية طيبة

+ +

+ نود إبلاغكم باستلام شكوى بتاريخ: 23/يونيو/2026 12:15 م من قبل وزارة الصحة برقم الهوية: 1113543183 +

+ +

+ للإطلاع عليها، يمكنكم النقر على +

+ +

+ (نموذج الشكوى) +

+ +

+ نرجو النظر في الأمر والتحقق خلال 24 ساعة، وللإفادة إضغط على +

+ +

+ (نموذج الرد على الشكوى) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Laboratory Department

+

Greetings,

+ +

+ We would like to inform you that a complaint has been received on: 23/June/2026 12:15 PM by the Ministry of Health with ID number: 1113543183 +

+ +

+ To view it, you can click on: +

+ +

+ (Complaint Form) +

+ +

+ Please look into the matter and verify within 24 hours, and to provide feedback, click on: +

+ +

+ (Complaint Response Form) +

+ +
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + + +
+ ▼ Stage 2: First Reminder Notification +
+ + + + + + + + +
+ + + + + + +
+

إلى قسم الأمن

+ +

+ نقدر لكم انشغالكم وحرصكم، نود + تذكيركم + بالشكوى المقدمة +
+ بتاريخ: 21/يونيو/2026 02:23 م +
+ من قبل المراجع برقم الهوية: 2343965287 +

+ +

+ (نموذج الشكوى) +

+ +

+ نرجو منكم التكرم بالرد على هذه الشكوى خلال الـ 24 ساعة القادمة، حرصاً على تحسين تجربة المريض وضمان معالجة الشكوى في الوقت المناسب , للرد نأمل النقر على +

+ +

+ (نموذج الرد على الشكوى) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، يُرجى التواصل على:

+

التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Security Department

+ +

+ We appreciate your dedication and diligence. We would like to remind you regarding the submitted complaint +
+ Dated: 21/June/2026 02:23 PM +
+ By the visitor with National ID: 2343965287 +

+ +

+ (Complaint Form) +

+ +

+ Please kindly respond to this complaint within the next 24 hours, in our commitment to enhancing patient experience and ensuring timely resolution. To reply, please click on: +

+ +

+ (Complaint Response Form) +

+ +
+

For inquiries or more information, please contact us via:

+

Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + + +
+ ▼ Stage 3: Second Reminder Notification +
+ + + + + + + + +
+ + + + + + +
+

إلى قسم المالية

+

تحية طيبة

+ +

+ نشكر لكم تعاونكم ونقدّر انشغالكم، ولكن نرجو ملاحظة الوقت المتبقي للرد هو 6 ساعات على الشكوى المقدمة بتاريخ: 22/يونيو/2026 04:20 م من قبل مجلس الضمان الصحي برقم الهوية: 1050208576 +

+ +

+ (نموذج الشكوى) +

+ +

+ لذا نأمل منكم التكرم بالرد والإفادة في أقرب وقت ممكن لتجنب أي تأخير إضافي في معالجة الشكوى. وللرد، يرجى النقر على +

+ +

+ (نموذج الرد على الشكوى) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، يُرجى التواصل معنا:

+

التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Financial Department

+

Greetings,

+ +

+ We appreciate your cooperation and value your time, but please note that the remaining time to respond is 6 hours regarding the complaint submitted on: 22/June/2026 04:20 PM by the Council of Health Insurance with ID number: 1050208576 +

+ +

+ (Complaint Form) +

+ +

+ Therefore, we kindly request your response and feedback as soon as possible to avoid any further delay in processing the complaint. To reply, please click on: +

+ +

+ (Complaint Response Form) +

+ +
+

For inquiries or more information, please contact us via:

+

Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ +
+ + + diff --git a/exports/explanation_requests.html b/exports/explanation_requests.html new file mode 100644 index 0000000..0e4761e --- /dev/null +++ b/exports/explanation_requests.html @@ -0,0 +1,502 @@ + + + + + + Explanation Request Templates + + + + + + + +
+ + + + + + + + + +
+ ▼ Explanation Request (Complaint) +
+ + + + + + + + +
+ + + + + + +
+

إلى قسم الطوارئ

+

تحية طيبة

+ +

+ نود إبلاغكم بإسناد شكوى لقسمكم للرد عليها، بتاريخ: 20/يوليو/2026 09:00 ص برقم المرجع: CMP-202607-0072 الموعد النهائي: 22/يوليو/2026 05:00 م +

+ +

+ للاطلاع على تفاصيل الشكوى، يمكنكم النقر على +

+ +

+ (نموذج الشكوى) +

+ +

+ نرجو تقديم رد القسم قبل الموعد النهائي، وللإفادة إضغط على +

+ +

+ (نموذج الرد) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Emergency Department

+

Greetings,

+ +

+ Your department has been assigned to respond to a complaint, dated: 20/July/2026 09:00 AM with reference: CMP-202607-0072 Deadline: 22/July/2026 05:00 PM +

+ +

+ To view the complaint details, you can click on: +

+ +

+ (Complaint Form) +

+ +

+ Please submit your department's response before the deadline, and to provide feedback, click on: +

+ +

+ (Response Form) +

+ +
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + +
+ ▼ Explanation Reminder (First) +
+ + + + + + + + +
+ + + + + + +
+

إلى السيد / سعد الدوسري

+ +

+ نقدر لكم انشغالكم وحرصكم، نود + تذكيركم + بتقديم رد القسم على الشكوى +
+ بتاريخ: 19/يوليو/2026 11:00 ص +
+ برقم المرجع: CMP-202607-0069 +

+ +

+ (نموذج الشكوى) +

+ +

+ نرجو منكم التكرم بتقديم الشرح خلال الـ 24 ساعة القادمة لتجنب التصعيد إلى مديركم المباشر , للرد نأمل النقر على +

+ +

+ (نموذج الرد) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، يُرجى التواصل على:

+

التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Mr. Saad Al-Dosari

+ +

+ We appreciate your dedication and diligence. We would like to remind you to submit your department's response regarding the complaint +
+ Dated: 19/July/2026 11:00 AM +
+ Reference: CMP-202607-0069 +

+ +

+ (Complaint Form) +

+ +

+ Please kindly submit your explanation within the next 24 hours to avoid escalation to your direct manager. To reply, please click on: +

+ +

+ (Response Form) +

+ +
+

For inquiries or more information, please contact us via:

+

Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + +
+ ▼ Explanation Second Reminder (Final) +
+ + + + + + + + +
+ + + + + + +
+

إلى السيد / فهد الشمري

+

تحية طيبة

+ +

+ نشكر لكم تعاونكم، ولكن نرجو الملاحظة بأن هذا تذكيرك النهائي والعاجل لتقديم الشرح بخصوص الشكوى بتاريخ: 18/يوليو/2026 02:30 م برقم المرجع: CMP-202607-0065 +

+ +

+ (نموذج الشكوى) +

+ +

+ إذا لم يتم تقديم الشرح قبل الموعد النهائي، سيتم تصعيد الأمر إلى مديركم المباشر. يرجى التقديم فوراً +

+ +

+ (نموذج الرد) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، يُرجى التواصل معنا:

+

التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Mr. Fahad Al-Shammari

+

Greetings,

+ +

+ We appreciate your cooperation, but please note that this is your FINAL and URGENT reminder to submit your explanation regarding the complaint dated: 18/July/2026 02:30 PM with reference: CMP-202607-0065 +

+ +

+ (Complaint Form) +

+ +

+ If the explanation is not submitted before the deadline, this matter will be escalated to your direct manager. Please submit immediately: +

+ +

+ (Response Form) +

+ +
+

For inquiries or more information, please contact us via:

+

Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + +
+ ▼ Inquiry Explanation Request +
+ + + + + + + + +
+ + + + + + +
+

إلى السيد / عبدالله الغامدي

+

تحية طيبة

+ +

+ نود إبلاغكم بطلب رد على استفسار بتاريخ: 20/يوليو/2026 08:00 ص برقم المرجع: INQ-202607-0021 الموضوع: تأخر موعد موعد العيادة +

+ +

+ للاطلاع على تفاصيل الاستفسار، يمكنكم النقر على +

+ +

+ (نموذج الاستفسار) +

+ +

+ نرجو تقديم ردكم في أقرب وقت ممكن، وللإفادة إضغط على +

+ +

+ (نموذج الرد) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Mr. Abdullah Al-Ghamdi

+

Greetings,

+ +

+ You have been requested to provide a response regarding an inquiry, dated: 20/July/2026 08:00 AM with reference: INQ-202607-0021 Subject: Clinic appointment delay +

+ +

+ To view the inquiry details, you can click on: +

+ +

+ (Inquiry Form) +

+ +

+ Please submit your response as soon as possible, and to provide feedback, click on: +

+ +

+ (Response Form) +

+ +
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ +
+ + + diff --git a/exports/inquiry_escalation_logo_header_variant.html b/exports/inquiry_escalation_logo_header_variant.html new file mode 100644 index 0000000..fe5d302 --- /dev/null +++ b/exports/inquiry_escalation_logo_header_variant.html @@ -0,0 +1,412 @@ + + + + + + Inquiry Escalation - Logo Header Variant + + + + + + + + +
+ + + + + + + + + +
+ ▼ Stage 1: New Inquiry Notification +
+ + + + + + + + +
+ + Al Hammadi Hospital +
 
+
 
+ + + + + + +
+

إلى قسم الطوارئ

+

تحية طيبة

+ +

+ نود إبلاغكم باستلام استفسار بتاريخ: 15/يوليو/2026 09:30 ص من قبل المراجع برقم المرجع: INQ-202607-0012 +

+ +

+ للإطلاع عليها، يمكنكم النقر على +

+ +

+ (نموذج الاستفسار) +

+ +

+ نرجو النظر في الأمر والرد خلال 24 ساعة، وللإفادة إضغط على +

+ +

+ (نموذج الرد على الاستفسار) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Emergency Department

+

Greetings,

+ +

+ We would like to inform you that an inquiry has been received on: 15/July/2026 09:30 AM by the visitor with reference number: INQ-202607-0012 +

+ +

+ To view it, you can click on: +

+ +

+ (Inquiry Form) +

+ +

+ Please look into the matter and reply within 24 hours, and to provide feedback, click on: +

+ +

+ (Inquiry Response Form) +

+ +
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + +
+ ▼ Stage 2: First Reminder Notification +
+ + + + + + + + +
+ + Al Hammadi Hospital +
 
+
 
+ + + + + + +
+

إلى قسم الأشعة

+ +

+ نقدر لكم انشغالكم وحرصكم، نود + تذكيركم + بالاستفسار المقدم +
+ بتاريخ: 10/يوليو/2026 02:15 م +
+ برقم المرجع: INQ-202607-0008 +

+ +

+ (نموذج الاستفسار) +

+ +

+ نرجو منكم التكرم بالرد على هذا الاستفسار خلال الـ 24 ساعة القادمة، حرصاً على تحسين تجربة المريض وضمان معالجة الاستفسار في الوقت المناسب , للرد نأمل النقر على +

+ +

+ (نموذج الرد على الاستفسار) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، يُرجى التواصل على:

+

التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Radiology Department

+ +

+ We appreciate your dedication and diligence. We would like to remind you regarding the submitted inquiry +
+ Dated: 10/July/2026 02:15 PM +
+ Reference Number: INQ-202607-0008 +

+ +

+ (Inquiry Form) +

+ +

+ Please kindly respond to this inquiry within the next 24 hours, in our commitment to enhancing patient experience and ensuring timely resolution. To reply, please click on: +

+ +

+ (Inquiry Response Form) +

+ +
+

For inquiries or more information, please contact us via:

+

Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + +
+ ▼ Stage 3: Second Reminder Notification +
+ + + + + + + + +
+ + Al Hammadi Hospital +
 
+
 
+ + + + + + +
+

إلى قسم الصيدلية

+

تحية طيبة

+ +

+ نشكر لكم تعاونكم ونقدّر انشغالكم، ولكن نرجو ملاحظة الوقت المتبقي للرد هو 6 ساعات على الاستفسار المقدم بتاريخ: 08/يوليو/2026 11:45 ص برقم المرجع: INQ-202607-0003 +

+ +

+ (نموذج الاستفسار) +

+ +

+ لذا نأمل منكم التكرم بالرد والإفادة في أقرب وقت ممكن لتجنب أي تأخير إضافي في معالجة الاستفسار. وللرد، يرجى النقر على +

+ +

+ (نموذج الرد على الاستفسار) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، يُرجى التواصل معنا:

+

التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Pharmacy Department

+

Greetings,

+ +

+ We appreciate your cooperation and value your time, but please note that the remaining time to respond is 6 hours regarding the inquiry submitted on: 08/July/2026 11:45 AM with reference number: INQ-202607-0003 +

+ +

+ (Inquiry Form) +

+ +

+ Therefore, we kindly request your response and feedback as soon as possible to avoid any further delay in processing the inquiry. To reply, please click on: +

+ +

+ (Inquiry Response Form) +

+ +
+

For inquiries or more information, please contact us via:

+

Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ +
+ + + diff --git a/exports/inquiry_escalation_templates.html b/exports/inquiry_escalation_templates.html new file mode 100644 index 0000000..5bfe7d1 --- /dev/null +++ b/exports/inquiry_escalation_templates.html @@ -0,0 +1,380 @@ + + + + + + Inquiry System Escalation Templates + + + + + + + +
+ + + + + + + + + +
+ ▼ Stage 1: New Inquiry Notification +
+ + + + + + + + +
+ + + + + + +
+

إلى قسم الطوارئ

+

تحية طيبة

+ +

+ نود إبلاغكم باستلام استفسار بتاريخ: 15/يوليو/2026 09:30 ص من قبل المراجع برقم المرجع: INQ-202607-0012 +

+ +

+ للإطلاع عليها، يمكنكم النقر على +

+ +

+ (نموذج الاستفسار) +

+ +

+ نرجو النظر في الأمر والرد خلال 24 ساعة، وللإفادة إضغط على +

+ +

+ (نموذج الرد على الاستفسار) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Emergency Department

+

Greetings,

+ +

+ We would like to inform you that an inquiry has been received on: 15/July/2026 09:30 AM by the visitor with reference number: INQ-202607-0012 +

+ +

+ To view it, you can click on: +

+ +

+ (Inquiry Form) +

+ +

+ Please look into the matter and reply within 24 hours, and to provide feedback, click on: +

+ +

+ (Inquiry Response Form) +

+ +
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + +
+ ▼ Stage 2: First Reminder Notification +
+ + + + + + + + +
+ + + + + + +
+

إلى قسم الأشعة

+ +

+ نقدر لكم انشغالكم وحرصكم، نود + تذكيركم + بالاستفسار المقدم +
+ بتاريخ: 10/يوليو/2026 02:15 م +
+ برقم المرجع: INQ-202607-0008 +

+ +

+ (نموذج الاستفسار) +

+ +

+ نرجو منكم التكرم بالرد على هذا الاستفسار خلال الـ 24 ساعة القادمة، حرصاً على تحسين تجربة المريض وضمان معالجة الاستفسار في الوقت المناسب , للرد نأمل النقر على +

+ +

+ (نموذج الرد على الاستفسار) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، يُرجى التواصل على:

+

التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Radiology Department

+ +

+ We appreciate your dedication and diligence. We would like to remind you regarding the submitted inquiry +
+ Dated: 10/July/2026 02:15 PM +
+ Reference Number: INQ-202607-0008 +

+ +

+ (Inquiry Form) +

+ +

+ Please kindly respond to this inquiry within the next 24 hours, in our commitment to enhancing patient experience and ensuring timely resolution. To reply, please click on: +

+ +

+ (Inquiry Response Form) +

+ +
+

For inquiries or more information, please contact us via:

+

Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + +
+ ▼ Stage 3: Second Reminder Notification +
+ + + + + + + + +
+ + + + + + +
+

إلى قسم الصيدلية

+

تحية طيبة

+ +

+ نشكر لكم تعاونكم ونقدّر انشغالكم، ولكن نرجو ملاحظة الوقت المتبقي للرد هو 6 ساعات على الاستفسار المقدم بتاريخ: 08/يوليو/2026 11:45 ص برقم المرجع: INQ-202607-0003 +

+ +

+ (نموذج الاستفسار) +

+ +

+ لذا نأمل منكم التكرم بالرد والإفادة في أقرب وقت ممكن لتجنب أي تأخير إضافي في معالجة الاستفسار. وللرد، يرجى النقر على +

+ +

+ (نموذج الرد على الاستفسار) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، يُرجى التواصل معنا:

+

التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Pharmacy Department

+

Greetings,

+ +

+ We appreciate your cooperation and value your time, but please note that the remaining time to respond is 6 hours regarding the inquiry submitted on: 08/July/2026 11:45 AM with reference number: INQ-202607-0003 +

+ +

+ (Inquiry Form) +

+ +

+ Therefore, we kindly request your response and feedback as soon as possible to avoid any further delay in processing the inquiry. To reply, please click on: +

+ +

+ (Inquiry Response Form) +

+ +
+

For inquiries or more information, please contact us via:

+

Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ +
+ + + diff --git a/exports/observation_escalation_templates.html b/exports/observation_escalation_templates.html new file mode 100644 index 0000000..7c85f67 --- /dev/null +++ b/exports/observation_escalation_templates.html @@ -0,0 +1,380 @@ + + + + + + Observation System Escalation Templates + + + + + + + +
+ + + + + + + + + +
+ ▼ Stage 1: New Observation Notification +
+ + + + + + + + +
+ + + + + + +
+

إلى قسم التمريض

+

تحية طيبة

+ +

+ نود إبلاغكم بصدور ملاحظة بتاريخ: 18/يوليو/2026 08:45 ص من قبل الموظف: أحمد محمد برمز التتبع: OBS-202607-0034 +

+ +

+ للإطلاع عليها، يمكنكم النقر على +

+ +

+ (نموذج الملاحظة) +

+ +

+ نرجو النظر في الأمر والتحقق خلال 24 ساعة، وللإفادة إضغط على +

+ +

+ (نموذج الرد على الملاحظة) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Nursing Department

+

Greetings,

+ +

+ We would like to inform you that an observation has been reported on: 18/July/2026 08:45 AM by staff member: Ahmed Mohammed with tracking code: OBS-202607-0034 +

+ +

+ To view it, you can click on: +

+ +

+ (Observation Form) +

+ +

+ Please look into the matter and verify within 24 hours, and to provide feedback, click on: +

+ +

+ (Observation Response Form) +

+ +
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + +
+ ▼ Stage 2: First Reminder Notification +
+ + + + + + + + +
+ + + + + + +
+

إلى قسم الجراحة

+ +

+ نقدر لكم انشغالكم وحرصكم، نود + تذكيركم + بالملاحظة المقدمة +
+ بتاريخ: 14/يوليو/2026 11:20 م +
+ برمز التتبع: OBS-202607-0028 +

+ +

+ (نموذج الملاحظة) +

+ +

+ نرجو منكم التكرم بالرد على هذه الملاحظة خلال الـ 24 ساعة القادمة، حرصاً على تحسين تجربة المريض وضمان معالجة الملاحظة في الوقت المناسب , للرد نأمل النقر على +

+ +

+ (نموذج الرد على الملاحظة) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، يُرجى التواصل على:

+

التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Surgery Department

+ +

+ We appreciate your dedication and diligence. We would like to remind you regarding the reported observation +
+ Dated: 14/July/2026 11:20 PM +
+ Tracking Code: OBS-202607-0028 +

+ +

+ (Observation Form) +

+ +

+ Please kindly respond to this observation within the next 24 hours, in our commitment to enhancing patient experience and ensuring timely resolution. To reply, please click on: +

+ +

+ (Observation Response Form) +

+ +
+

For inquiries or more information, please contact us via:

+

Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + +
+ ▼ Stage 3: Second Reminder Notification +
+ + + + + + + + +
+ + + + + + +
+

إلى قسم العناية المركزة

+

تحية طيبة

+ +

+ نشكر لكم تعاونكم ونقدّر انشغالكم، ولكن نرجو ملاحظة الوقت المتبقي للرد هو 4 ساعات على الملاحظة المقدمة بتاريخ: 11/يوليو/2026 03:10 م برمز التتبع: OBS-202607-0021 +

+ +

+ (نموذج الملاحظة) +

+ +

+ لذا نأمل منكم التكرم بالرد والإفادة في أقرب وقت ممكن لتجنب أي تأخير إضافي في معالجة الملاحظة. وللرد، يرجى النقر على +

+ +

+ (نموذج الرد على الملاحظة) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، يُرجى التواصل معنا:

+

التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Critical Care Department

+

Greetings,

+ +

+ We appreciate your cooperation and value your time, but please note that the remaining time to respond is 4 hours regarding the observation reported on: 11/July/2026 03:10 PM with tracking code: OBS-202607-0021 +

+ +

+ (Observation Form) +

+ +

+ Therefore, we kindly request your response and feedback as soon as possible to avoid any further delay in processing the observation. To reply, please click on: +

+ +

+ (Observation Response Form) +

+ +
+

For inquiries or more information, please contact us via:

+

Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ +
+ + + diff --git a/exports/sections.csv b/exports/sections.csv new file mode 100644 index 0000000..bd8ebff --- /dev/null +++ b/exports/sections.csv @@ -0,0 +1,172 @@ +Name (EN),Name (AR),Department (EN),Department (AR) +Appointment Office,,Contact Center Department,قسم مركز الاتصال +Operator Office,,Contact Center Department,قسم مركز الاتصال +CCU,,Critical Care Department,قسم العناية المركزة +ICU,,Critical Care Department,قسم العناية المركزة +ICU Stepdown,,Critical Care Department,قسم العناية المركزة +Dermatology,,Dermatology Department,قسم الجلدية +Admission Office,,Emergency Administrative Department,إدارة الطوارئ +Emergency Coordination,,Emergency Administrative Department,إدارة الطوارئ +Emergency Management,,Emergency Administrative Department,إدارة الطوارئ +Emergency Reception,,Emergency Administrative Department,إدارة الطوارئ +Administrative Assistant,,Executive Administration,الإدارة التنفيذية +Chief Administrative Officer,,Executive Administration,الإدارة التنفيذية +Secretary,,Executive Administration,الإدارة التنفيذية +Software Programmer,,Executive Administration,الإدارة التنفيذية +Electrical Maintenance,,Facility Management & Maintenance Department,قسم إدارة المرافق والصيانة +General Maintenance,,Facility Management & Maintenance Department,قسم إدارة المرافق والصيانة +Mechanical Maintenance,,Facility Management & Maintenance Department,قسم إدارة المرافق والصيانة +Safety,,Facility Management & Maintenance Department,قسم إدارة المرافق والصيانة +Water Treatment,,Facility Management & Maintenance Department,قسم إدارة المرافق والصيانة +Financial Collection & Claims,,Financial Collection & Claims Department,قسم المالية والتحصيل والمطالبات +General,,Information Technology Department,قسم تقنية المعلومات +Service Desk,,Information Technology Department,قسم تقنية المعلومات +Software and Applications,,Information Technology Department,قسم تقنية المعلومات +Social Worker,,Inpatient Department,قسم التنويم +AKU,,Internal Medicine Department,قسم الباطنية +Cardiology,,Internal Medicine Department,قسم الباطنية +Endocrinology,,Internal Medicine Department,قسم الباطنية +Endoscopy,,Internal Medicine Department,قسم الباطنية +Gastroenterology,,Internal Medicine Department,قسم الباطنية +Infectious Disease,,Internal Medicine Department,قسم الباطنية +Internal Medicine,,Internal Medicine Department,قسم الباطنية +Long-Term Acute Care Unit (LTACU),,Internal Medicine Department,قسم الباطنية +Medical Ward,,Internal Medicine Department,قسم الباطنية +Nephrology,,Internal Medicine Department,قسم الباطنية +Neurology,,Internal Medicine Department,قسم الباطنية +Psychiatry,,Internal Medicine Department,قسم الباطنية +Pulmonology,,Internal Medicine Department,قسم الباطنية +Rheumatology,,Internal Medicine Department,قسم الباطنية +Blood Donation & Blood Bank,,Laboratory Department,قسم المختبر +Clinical Chemistry,,Laboratory Department,قسم المختبر +General,,Laboratory Department,قسم المختبر +Hematology,,Laboratory Department,قسم المختبر +Histopathology,,Laboratory Department,قسم المختبر +Microbiology,,Laboratory Department,قسم المختبر +Parasitology,,Laboratory Department,قسم المختبر +Phlepotomy,,Laboratory Department,قسم المختبر +Receiving ِArea,,Laboratory Department,قسم المختبر +Send Out,,Laboratory Department,قسم المختبر +Serology & Molecular,,Laboratory Department,قسم المختبر +Special Chemistry,,Laboratory Department,قسم المختبر +General,,Medical Administration,الإدارة الطبية +Medical Director,,Medical Administration,الإدارة الطبية +Secretary,,Medical Administration,الإدارة الطبية +Anesthesia Technology,,Medical Ancillary Services Department,قسم الخدمات الطبية المساندة +CSSD,,Medical Ancillary Services Department,قسم الخدمات الطبية المساندة +Cardiac Physiology Services,,Medical Ancillary Services Department,قسم الخدمات الطبية المساندة +Clinical Nutrition,,Medical Ancillary Services Department,قسم الخدمات الطبية المساندة +Dental Services,,Medical Ancillary Services Department,قسم الخدمات الطبية المساندة +Director of Ancillary Medical Services,,Medical Ancillary Services Department,قسم الخدمات الطبية المساندة +Emergency Medical Services,,Medical Ancillary Services Department,قسم الخدمات الطبية المساندة +General,,Medical Ancillary Services Department,قسم الخدمات الطبية المساندة +Health Education,,Medical Ancillary Services Department,قسم الخدمات الطبية المساندة +Neurophysiology Services,,Medical Ancillary Services Department,قسم الخدمات الطبية المساندة +Optometrist Services,,Medical Ancillary Services Department,قسم الخدمات الطبية المساندة +Physical Therapy,,Medical Ancillary Services Department,قسم الخدمات الطبية المساندة +Respiratory Therapy,,Medical Ancillary Services Department,قسم الخدمات الطبية المساندة +Secretary,,Medical Ancillary Services Department,قسم الخدمات الطبية المساندة +Swallowing Speech and Hearing Unit,,Medical Ancillary Services Department,قسم الخدمات الطبية المساندة +Emergency,,Medical Approvals Department,قسم الموافقات الطبية +General,,Medical Approvals Department,قسم الموافقات الطبية +Inpatient,,Medical Approvals Department,قسم الموافقات الطبية +Outpatient,,Medical Approvals Department,قسم الموافقات الطبية +AKU,,Nursing Department,قسم التمريض +Anesthesia,,Nursing Department,قسم التمريض +Cathlab,,Nursing Department,قسم التمريض +Emergency,,Nursing Department,قسم التمريض +Endoscopy,,Nursing Department,قسم التمريض +ICU/CCU,,Nursing Department,قسم التمريض +ICU/CCU Stepdown,,Nursing Department,قسم التمريض +L&D,,Nursing Department,قسم التمريض +LTACU,,Nursing Department,قسم التمريض +Main OR,,Nursing Department,قسم التمريض +Management,,Nursing Department,قسم التمريض +Medical Ward,,Nursing Department,قسم التمريض +NICU,,Nursing Department,قسم التمريض +NICU ISOLATOIN,,Nursing Department,قسم التمريض +Nursery,,Nursing Department,قسم التمريض +OB/OR,,Nursing Department,قسم التمريض +OPD 5,,Nursing Department,قسم التمريض +OPD 6,,Nursing Department,قسم التمريض +OPD 7,,Nursing Department,قسم التمريض +OPD1,,Nursing Department,قسم التمريض +OPD2,,Nursing Department,قسم التمريض +OPD3,,Nursing Department,قسم التمريض +OPD4 Dental,,Nursing Department,قسم التمريض +OPD4 Ophtha,,Nursing Department,قسم التمريض +Obgyne Ward,,Nursing Department,قسم التمريض +Oncology,,Nursing Department,قسم التمريض +Orthopedic Cast Technician,,Nursing Department,قسم التمريض +Outpatient,,Nursing Department,قسم التمريض +PICU,,Nursing Department,قسم التمريض +PICU Stepdown,,Nursing Department,قسم التمريض +Pediatric Ward,,Nursing Department,قسم التمريض +Recovery,,Nursing Department,قسم التمريض +Surgical Ward,,Nursing Department,قسم التمريض +Hematology,,ONCOLOGY Department,قسم الأورام +Clinics,,Obstetrics & Gynecology Department,قسم النساء والولادة +Labor & Delivery (L&D) / Obstetrics Operating Rooms,,Obstetrics & Gynecology Department,قسم النساء والولادة +Wards,,Obstetrics & Gynecology Department,قسم النساء والولادة +Coordination,,Outpatient Department,قسم العيادات الخارجية +Management,,Outpatient Department,قسم العيادات الخارجية +Medical Reports,,Outpatient Department,قسم العيادات الخارجية +Medical Secretarial,,Outpatient Department,قسم العيادات الخارجية +Outpatient Reception,,Outpatient Department,قسم العيادات الخارجية +Patient Affairs Director,,Patient Affairs Department,قسم علاقات المرضى +Secretary,,Patient Affairs Department,قسم علاقات المرضى +Patient Experience Director,,Patient Experience Department,قسم تجربة المريض +Patient Experience Staff,,Patient Experience Department,قسم تجربة المريض +Circumcision,,Pediatric Department,قسم الأطفال +General Pediatrics,,Pediatric Department,قسم الأطفال +NICU,,Pediatric Department,قسم الأطفال +NICU ISOLATOIN,,Pediatric Department,قسم الأطفال +NURSERY,,Pediatric Department,قسم الأطفال +PICU,,Pediatric Department,قسم الأطفال +PICU STEPDOWN,,Pediatric Department,قسم الأطفال +Pediatric Cardiology,,Pediatric Department,قسم الأطفال +Pediatric Endocrinology & Diabetes,,Pediatric Department,قسم الأطفال +Pediatric Gastroenterology,,Pediatric Department,قسم الأطفال +Pediatric General Surgery,,Pediatric Department,قسم الأطفال +Pediatric Hematology,,Pediatric Department,قسم الأطفال +Pediatric Nephrology,,Pediatric Department,قسم الأطفال +Pediatric Neurology,,Pediatric Department,قسم الأطفال +Pediatric Neurosurgery,,Pediatric Department,قسم الأطفال +Pediatric Orthopedic Surgery,,Pediatric Department,قسم الأطفال +Pediatric Otolaryngology (ENT),,Pediatric Department,قسم الأطفال +Pediatric Pulmonology,,Pediatric Department,قسم الأطفال +Pediatric Urology,,Pediatric Department,قسم الأطفال +Pediatric Ward,,Pediatric Department,قسم الأطفال +6th Floor Pharmacy,,Pharmacy Department,قسم الصيدلية +Central Outpatient Pharmacy,,Pharmacy Department,قسم الصيدلية +ER Pharmacy,,Pharmacy Department,قسم الصيدلية +General,,Pharmacy Department,قسم الصيدلية +IV Admixture Unit,,Pharmacy Department,قسم الصيدلية +Inpatient Oncology Pharmacy,,Pharmacy Department,قسم الصيدلية +Inpatient Pharmacy,,Pharmacy Department,قسم الصيدلية +Narcotic Pharmacy,,Pharmacy Department,قسم الصيدلية +Outpatient Oncology Pharmacy,,Pharmacy Department,قسم الصيدلية +Pediatric Pharmacy,,Pharmacy Department,قسم الصيدلية +Pharmacy Warehouse,,Pharmacy Department,قسم الصيدلية +Bone Mineral Density (BMD),,Radiology Department,قسم الأشعة +CT,,Radiology Department,قسم الأشعة +Fluoroscopy,,Radiology Department,قسم الأشعة +General,,Radiology Department,قسم الأشعة +Interventional Radiology (IR),,Radiology Department,قسم الأشعة +MRI,,Radiology Department,قسم الأشعة +Mamography,,Radiology Department,قسم الأشعة +Ultrasound,,Radiology Department,قسم الأشعة +X-Ray,,Radiology Department,قسم الأشعة +Camera Room,,Security Department,قسم الأمن +Security Guards,,Security Department,قسم الأمن +Bariatric,,Surgery Department,قسم الجراحة +ENT,,Surgery Department,قسم الجراحة +General Surgery,,Surgery Department,قسم الجراحة +Neurosurgery,,Surgery Department,قسم الجراحة +Orthopedic Surgery,,Surgery Department,قسم الجراحة +Plastic Surgery,,Surgery Department,قسم الجراحة +Spine Surgery,,Surgery Department,قسم الجراحة +Surgical Ward,,Surgery Department,قسم الجراحة +Thoracic Surgery,,Surgery Department,قسم الجراحة +Urology,,Surgery Department,قسم الجراحة +Vscular Surgery,,Surgery Department,قسم الجراحة diff --git a/exports/status_changes.html b/exports/status_changes.html new file mode 100644 index 0000000..f452a19 --- /dev/null +++ b/exports/status_changes.html @@ -0,0 +1,384 @@ + + + + + + Status Change Notification Templates + + + + + + + +
+ + + + + + + + + +
+ ▼ Observation Assigned +
+ + + + + + + + +
+ + + + + + +
+

إلى السيد / أحمد محمد

+

تحية طيبة

+ +

+ نود إبلاغكم بتعيين ملاحظة لكم للمراجعة واتخاذ الإجراء اللاحق، بتاريخ: 18/يوليو/2026 09:00 ص برمز التتبع: OBS-202607-0034 +

+ +

+ للإطلاع على التفاصيل، يمكنكم النقر على +

+ +

+ (نموذج الملاحظة) +

+ +

+ نرجو مراجعة التفاصيل وتحديث الحالة خلال 24 ساعة، وللإفادة إضغط على +

+ +

+ (نموذج التحديث) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Mr. Ahmed Mohammed

+

Greetings,

+ +

+ We would like to inform you that an observation has been assigned to you for review and action, dated: 18/July/2026 09:00 AM with tracking code: OBS-202607-0034 +

+ +

+ To view the details, you can click on: +

+ +

+ (Observation Form) +

+ +

+ Please review the details and update the status within 24 hours, and to provide feedback, click on: +

+ +

+ (Update Form) +

+ +
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + +
+ ▼ Observation Resolved +
+ + + + + + + + +
+ + + + + + +
+

إلى السيد / خالد العنزي

+

تحية طيبة

+ +

+ نود إبلاغكم بأنه قد تم حل الملاحظة المسندة إليكم بتاريخ: 19/يوليو/2026 11:30 ص برمز التتبع: OBS-202607-0041 +

+ +

+ للاطلاع على تفاصيل الحل، يمكنكم النقر على +

+ +

+ (نموذج الملاحظة) +

+ +

+ نرجو مراجعة تفاصيل الحل والإفادة في حال وجود أي ملاحظات، وللرد إضغط على +

+ +

+ (نموذج الرد) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Mr. Khalid Al-Anazi

+

Greetings,

+ +

+ We would like to inform you that the observation assigned to you has been resolved, dated: 19/July/2026 11:30 AM with tracking code: OBS-202607-0041 +

+ +

+ To view the resolution details, you can click on: +

+ +

+ (Observation Form) +

+ +

+ Please review the resolution details and provide feedback if any, and to reply, click on: +

+ +

+ (Reply Form) +

+ +
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + +
+ ▼ Observation Monthly Follow-Up +
+ + + + + + + + +
+ + + + + + +
+

إلى قسم الجودة

+

تحية طيبة

+ +

+ نود تذكيركم بمتابعة المراجعة الشهرية للملاحظة التي تم حلها بتاريخ: 19/يونيو/2026 برمز التتبع: OBS-202606-0019 +

+ +

+ للاطلاع على التفاصيل والتحقق من استمرار فعالية الإجراءات، يمكنكم النقر على +

+ +

+ (نموذج الملاحظة) +

+ +

+ نرجو تحديث الملاحظة بملاحظات المتابعة، وللإفادة إضغط على +

+ +

+ (نموذج التحديث) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Quality Department

+

Greetings,

+ +

+ We would like to remind you about the monthly follow-up review for the observation resolved on: 19/June/2026 with tracking code: OBS-202606-0019 +

+ +

+ To view details and verify the corrective actions remain effective, you can click on: +

+ +

+ (Observation Form) +

+ +

+ Please update the observation with follow-up notes, and to provide feedback, click on: +

+ +

+ (Update Form) +

+ +
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ +
+ + + diff --git a/exports/suggestion_escalation_templates.html b/exports/suggestion_escalation_templates.html new file mode 100644 index 0000000..f47d613 --- /dev/null +++ b/exports/suggestion_escalation_templates.html @@ -0,0 +1,380 @@ + + + + + + Suggestion System Escalation Templates + + + + + + + +
+ + + + + + + + + +
+ ▼ Stage 1: New Suggestion Notification +
+ + + + + + + + +
+ + + + + + +
+

إلى قسم العيادات الخارجية

+

تحية طيبة

+ +

+ نود إبلاغكم باستلام اقتراح بتاريخ: 20/يوليو/2026 03:00 م من قبل المراجع: فهد العتيبي +

+ +

+ للإطلاع عليه، يمكنكم النقر على +

+ +

+ (نموذج الاقتراح) +

+ +

+ نرجو دراسة الاقتراح وتقديم الملاحظات خلال 48 ساعة، وللإفادة إضغط على +

+ +

+ (نموذج الرد على الاقتراح) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Outpatient Department

+

Greetings,

+ +

+ We would like to inform you that a suggestion has been received on: 20/July/2026 03:00 PM from the visitor: Fahad Al-Otaibi +

+ +

+ To view it, you can click on: +

+ +

+ (Suggestion Form) +

+ +

+ Please review the suggestion and provide feedback within 48 hours, and to respond, click on: +

+ +

+ (Suggestion Response Form) +

+ +
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + +
+ ▼ Stage 2: First Reminder Notification +
+ + + + + + + + +
+ + + + + + +
+

إلى قسم تقنية المعلومات

+ +

+ نقدر لكم انشغالكم وحرصكم، نود + تذكيركم + بالاقتراح المقدم +
+ بتاريخ: 12/يوليو/2026 10:00 ص +
+ من قبل الموظف: منى السالم +

+ +

+ (نموذج الاقتراح) +

+ +

+ نرجو منكم التكرم بالرد على هذا الاقتراح خلال الـ 48 ساعة القادمة، حرصاً على تحسين تجربة المريض وضمان دراسة الاقتراح في الوقت المناسب , للرد نأمل النقر على +

+ +

+ (نموذج الرد على الاقتراح) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، يُرجى التواصل على:

+

التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Information Technology Department

+ +

+ We appreciate your dedication and diligence. We would like to remind you regarding the submitted suggestion +
+ Dated: 12/July/2026 10:00 AM +
+ From staff member: Mona Al-Salem +

+ +

+ (Suggestion Form) +

+ +

+ Please kindly respond to this suggestion within the next 48 hours, in our commitment to enhancing patient experience and ensuring timely review. To reply, please click on: +

+ +

+ (Suggestion Response Form) +

+ +
+

For inquiries or more information, please contact us via:

+

Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + +
+ ▼ Stage 3: Second Reminder Notification +
+ + + + + + + + +
+ + + + + + +
+

إلى قسم الموارد البشرية

+

تحية طيبة

+ +

+ نشكر لكم تعاونكم ونقدّر انشغالكم، ولكن نرجو ملاحظة اقتراب الموعد النهائي للرد (24 ساعة) على الاقتراح المقدم بتاريخ: 05/يوليو/2026 09:15 ص من قبل المراجع: سارة الحربي +

+ +

+ (نموذج الاقتراح) +

+ +

+ لذا نأمل منكم التكرم بالرد والإفادة في أقرب وقت ممكن لتجنب أي تأخير إضافي في دراسة الاقتراح. وللرد، يرجى النقر على +

+ +

+ (نموذج الرد على الاقتراح) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، يُرجى التواصل معنا:

+

التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Human Resources Department

+

Greetings,

+ +

+ We appreciate your cooperation and value your time, but please note that the deadline for response is approaching (24 hours) regarding the suggestion submitted on: 05/July/2026 09:15 AM from the visitor: Sarah Al-Harbi +

+ +

+ (Suggestion Form) +

+ +

+ Therefore, we kindly request your response and feedback as soon as possible to avoid any further delay in reviewing the suggestion. To reply, please click on: +

+ +

+ (Suggestion Response Form) +

+ +
+

For inquiries or more information, please contact us via:

+

Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ +
+ + + diff --git a/exports/survey_emails.html b/exports/survey_emails.html new file mode 100644 index 0000000..fb55437 --- /dev/null +++ b/exports/survey_emails.html @@ -0,0 +1,262 @@ + + + + + + Survey Email Templates + + + + + + + +
+ + + + + + + + + +
+ ▼ Survey Invitation (Patient) +
+ + + + + + + + +
+ + + + + + +
+

إلى المريض / عبدالرحمن السبيعي

+

تحية طيبة

+ +

+ نشكركم على اختياركم مستشفى الحمادي لاحتياجاتكم الصحية، ونأمل أن تكون زيارتكم بتاريخ: 18/يوليو/2026 قد حققت تطلعاتكم. +

+ +

+ نقدّر جداً تخصيص بضع دقائق لتعبئة استبيان الرضا. ملاحظاتكم تساعدنا على تحسين خدماتنا +

+ +

+ (ابدأ الاستبيان) +

+ +

+ يستغرق الاستبيان 3-5 دقائق فقط، وللاطلاع على التفاصيل إضغط على +

+ +

+ (التفاصيل) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Patient / Abdulrahman Al-Subaie

+

Greetings,

+ +

+ Thank you for choosing Al Hammadi Hospital for your healthcare needs. We hope your visit on: 18/July/2026 met your expectations. +

+ +

+ We would greatly appreciate it if you could take a few minutes to complete our satisfaction survey. Your feedback helps us improve our services. +

+ +

+ (Start Survey) +

+ +

+ The survey takes only 3-5 minutes, and to view details, click on: +

+ +

+ (Details) +

+ +
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ + + + + + + + + + +
+ ▼ Survey Results (Department Head) +
+ + + + + + + + +
+ + + + + + +
+

إلى السيد / مدير قسم الجراحة

+

تحية طيبة

+ +

+ نود إبلاغكم بتوفّر نتائج استبيان تجربة المريض لقسمكم للفترة: 1-15 يوليو 2026 المتوسط العام: 4.6/5 عدد الردود: 87 +

+ +

+ للاطلاع على التقرير التفصيلي، يمكنكم النقر على +

+ +

+ (التقرير الكامل) +

+ +

+ نرجو إعداد خطة عمل لمعالجة مجالات التحسين قبل نهاية الشهر، وللإفادة إضغط على +

+ +

+ (نموذج الإفادة) +

+ +
+

للإستفسارات أو لمزيد من المعلومات، على التحويلة: 1379

+

رقم التواصل: 0537695000

+
+ + + + + +
+ رابط +
+ +

+ نحن نقدر التزامكم، مع تحيات إدارة قسم علاقات المرضى وتجربة المريض +

+
+ +
+ + + + + + +
+

To: Surgery Department Head

+

Greetings,

+ +

+ The patient experience survey results for your department are now available for the period: 1-15 July 2026 Overall Score: 4.6/5 Responses: 87 +

+ +

+ To view the detailed report, you can click on: +

+ +

+ (Full Report) +

+ +

+ Please prepare an action plan to address the areas for improvement by the end of the month, and to provide feedback, click on: +

+ +

+ (Feedback Form) +

+ +
+

For inquiries or more information, via Extension: 1379

+

Contact Number: 0537695000

+
+ + + + + +
+ Link +
+ +

+ We appreciate your commitment.
Regards, Patient Relations and Experience Management +

+
+ +
+ جميع الحقوق محفوظة © Al Hammadi Hospitals Group +
+ +
+ + + diff --git a/requirements.txt b/requirements.txt index e339aa5..602c322 100644 --- a/requirements.txt +++ b/requirements.txt @@ -38,7 +38,6 @@ cron-descriptor==1.4.5 cryptography==41.0.7 cssselect2==0.8.0 cupshelpers==1.0 -datastar-py==1.0.0 dbus-python==1.3.2 defer==1.0.6 deprecation==2.0.7 diff --git a/static/vendor/chartjs/chart.umd.min.js b/static/vendor/chartjs/chart.umd.min.js new file mode 100644 index 0000000..008464f --- /dev/null +++ b/static/vendor/chartjs/chart.umd.min.js @@ -0,0 +1,14 @@ +/*! + * Chart.js v4.5.1 + * https://www.chartjs.org + * (c) 2025 Chart.js Contributors + * Released under the MIT License + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Chart=e()}(this,(function(){"use strict";var t=Object.freeze({__proto__:null,get Colors(){return Jo},get Decimation(){return ta},get Filler(){return ba},get Legend(){return Ma},get SubTitle(){return Pa},get Title(){return ka},get Tooltip(){return Na}});function e(){}const i=(()=>{let t=0;return()=>t++})();function s(t){return null==t}function n(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.slice(0,7)&&"Array]"===e.slice(-6)}function o(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function a(t){return("number"==typeof t||t instanceof Number)&&isFinite(+t)}function r(t,e){return a(t)?t:e}function l(t,e){return void 0===t?e:t}const h=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100:+t/e,c=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function d(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)}function u(t,e,i,s){let a,r,l;if(n(t))if(r=t.length,s)for(a=r-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;at,x:t=>t.x,y:t=>t.y};function v(t){const e=t.split("."),i=[];let s="";for(const t of e)s+=t,s.endsWith("\\")?s=s.slice(0,-1)+".":(i.push(s),s="");return i}function M(t,e){const i=y[e]||(y[e]=function(t){const e=v(t);return t=>{for(const i of e){if(""===i)break;t=t&&t[i]}return t}}(e));return i(t)}function w(t){return t.charAt(0).toUpperCase()+t.slice(1)}const k=t=>void 0!==t,S=t=>"function"==typeof t,P=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function D(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}const C=Math.PI,O=2*C,A=O+C,T=Number.POSITIVE_INFINITY,L=C/180,E=C/2,R=C/4,I=2*C/3,z=Math.log10,F=Math.sign;function V(t,e,i){return Math.abs(t-e)t-e)).pop(),e}function N(t){return!function(t){return"symbol"==typeof t||"object"==typeof t&&null!==t&&!(Symbol.toPrimitive in t||"toString"in t||"valueOf"in t)}(t)&&!isNaN(parseFloat(t))&&isFinite(t)}function H(t,e){const i=Math.round(t);return i-e<=t&&i+e>=t}function j(t,e,i){let s,n,o;for(s=0,n=t.length;sl&&h=Math.min(e,i)-s&&t<=Math.max(e,i)+s}function et(t,e,i){i=i||(i=>t[i]1;)s=o+n>>1,i(s)?o=s:n=s;return{lo:o,hi:n}}const it=(t,e,i,s)=>et(t,i,s?s=>{const n=t[s][e];return nt[s][e]et(t,i,(s=>t[s][e]>=i));function nt(t,e,i){let s=0,n=t.length;for(;ss&&t[n-1]>i;)n--;return s>0||n{const i="_onData"+w(e),s=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const n=s.apply(this,e);return t._chartjs.listeners.forEach((t=>{"function"==typeof t[i]&&t[i](...e)})),n}})})))}function rt(t,e){const i=t._chartjs;if(!i)return;const s=i.listeners,n=s.indexOf(e);-1!==n&&s.splice(n,1),s.length>0||(ot.forEach((e=>{delete t[e]})),delete t._chartjs)}function lt(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const ht="undefined"==typeof window?function(t){return t()}:window.requestAnimationFrame;function ct(t,e){let i=[],s=!1;return function(...n){i=n,s||(s=!0,ht.call(window,(()=>{s=!1,t.apply(e,i)})))}}function dt(t,e){let i;return function(...s){return e?(clearTimeout(i),i=setTimeout(t,e,s)):t.apply(this,s),e}}const ut=t=>"start"===t?"left":"end"===t?"right":"center",ft=(t,e,i)=>"start"===t?e:"end"===t?i:(e+i)/2,gt=(t,e,i,s)=>t===(s?"left":"right")?i:"center"===t?(e+i)/2:e;function pt(t,e,i){const n=e.length;let o=0,a=n;if(t._sorted){const{iScale:r,vScale:l,_parsed:h}=t,c=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,d=r.axis,{min:u,max:f,minDefined:g,maxDefined:p}=r.getUserBounds();if(g){if(o=Math.min(it(h,d,u).lo,i?n:it(e,d,r.getPixelForValue(u)).lo),c){const t=h.slice(0,o+1).reverse().findIndex((t=>!s(t[l.axis])));o-=Math.max(0,t)}o=Z(o,0,n-1)}if(p){let t=Math.max(it(h,r.axis,f,!0).hi+1,i?0:it(e,d,r.getPixelForValue(f),!0).hi+1);if(c){const e=h.slice(t-1).findIndex((t=>!s(t[l.axis])));t+=Math.max(0,e)}a=Z(t,o,n)-o}else a=n-o}return{start:o,count:a}}function mt(t){const{xScale:e,yScale:i,_scaleRanges:s}=t,n={xmin:e.min,xmax:e.max,ymin:i.min,ymax:i.max};if(!s)return t._scaleRanges=n,!0;const o=s.xmin!==e.min||s.xmax!==e.max||s.ymin!==i.min||s.ymax!==i.max;return Object.assign(s,n),o}class xt{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,e,i,s){const n=e.listeners[s],o=e.duration;n.forEach((s=>s({chart:t,initial:e.initial,numSteps:o,currentStep:Math.min(i-e.start,o)})))}_refresh(){this._request||(this._running=!0,this._request=ht.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(t=Date.now()){let e=0;this._charts.forEach(((i,s)=>{if(!i.running||!i.items.length)return;const n=i.items;let o,a=n.length-1,r=!1;for(;a>=0;--a)o=n[a],o._active?(o._total>i.duration&&(i.duration=o._total),o.tick(t),r=!0):(n[a]=n[n.length-1],n.pop());r&&(s.draw(),this._notify(s,i,t,"progress")),n.length||(i.running=!1,this._notify(s,i,t,"complete"),i.initial=!1),e+=n.length})),this._lastDate=t,0===e&&(this._running=!1)}_getAnims(t){const e=this._charts;let i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce(((t,e)=>Math.max(t,e._duration)),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!!(e&&e.running&&e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const i=e.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var bt=new xt; +/*! + * @kurkle/color v0.3.2 + * https://github.com/kurkle/color#readme + * (c) 2023 Jukka Kurkela + * Released under the MIT License + */function _t(t){return t+.5|0}const yt=(t,e,i)=>Math.max(Math.min(t,i),e);function vt(t){return yt(_t(2.55*t),0,255)}function Mt(t){return yt(_t(255*t),0,255)}function wt(t){return yt(_t(t/2.55)/100,0,1)}function kt(t){return yt(_t(100*t),0,100)}const St={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Pt=[..."0123456789ABCDEF"],Dt=t=>Pt[15&t],Ct=t=>Pt[(240&t)>>4]+Pt[15&t],Ot=t=>(240&t)>>4==(15&t);function At(t){var e=(t=>Ot(t.r)&&Ot(t.g)&&Ot(t.b)&&Ot(t.a))(t)?Dt:Ct;return t?"#"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t<255?e(t):"")(t.a,e):void 0}const Tt=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Lt(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function Et(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function Rt(t,e,i){const s=Lt(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i*=n),n=0;n<3;n++)s[n]*=1-e-i,s[n]+=e;return s}function It(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)/2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h/(2-n-o):h/(n+o),r=function(t,e,i,s,n){return t===n?(e-i)/s+(e>16&255,o>>8&255,255&o]}return t}(),Ht.transparent=[0,0,0,0]);const e=Ht[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const $t=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const Yt=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,Ut=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Xt(t,e,i){if(t){let s=It(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),s=Ft(s),t.r=s[0],t.g=s[1],t.b=s[2]}}function qt(t,e){return t?Object.assign(e||{},t):t}function Kt(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=Mt(t[3]))):(e=qt(t,{r:0,g:0,b:0,a:1})).a=Mt(e.a),e}function Gt(t){return"r"===t.charAt(0)?function(t){const e=$t.exec(t);let i,s,n,o=255;if(e){if(e[7]!==i){const t=+e[7];o=e[8]?vt(t):yt(255*t,0,255)}return i=+e[1],s=+e[3],n=+e[5],i=255&(e[2]?vt(i):yt(i,0,255)),s=255&(e[4]?vt(s):yt(s,0,255)),n=255&(e[6]?vt(n):yt(n,0,255)),{r:i,g:s,b:n,a:o}}}(t):Bt(t)}class Jt{constructor(t){if(t instanceof Jt)return t;const e=typeof t;let i;var s,n,o;"object"===e?i=Kt(t):"string"===e&&(o=(s=t).length,"#"===s[0]&&(4===o||5===o?n={r:255&17*St[s[1]],g:255&17*St[s[2]],b:255&17*St[s[3]],a:5===o?17*St[s[4]]:255}:7!==o&&9!==o||(n={r:St[s[1]]<<4|St[s[2]],g:St[s[3]]<<4|St[s[4]],b:St[s[5]]<<4|St[s[6]],a:9===o?St[s[7]]<<4|St[s[8]]:255})),i=n||jt(t)||Gt(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=qt(this._rgb);return t&&(t.a=wt(t.a)),t}set rgb(t){this._rgb=Kt(t)}rgbString(){return this._valid?(t=this._rgb)&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${wt(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`):void 0;var t}hexString(){return this._valid?At(this._rgb):void 0}hslString(){return this._valid?function(t){if(!t)return;const e=It(t),i=e[0],s=kt(e[1]),n=kt(e[2]);return t.a<255?`hsla(${i}, ${s}%, ${n}%, ${wt(t.a)})`:`hsl(${i}, ${s}%, ${n}%)`}(this._rgb):void 0}mix(t,e){if(t){const i=this.rgb,s=t.rgb;let n;const o=e===n?.5:e,a=2*o-1,r=i.a-s.a,l=((a*r==-1?a:(a+r)/(1+a*r))+1)/2;n=1-l,i.r=255&l*i.r+n*s.r+.5,i.g=255&l*i.g+n*s.g+.5,i.b=255&l*i.b+n*s.b+.5,i.a=o*i.a+(1-o)*s.a,this.rgb=i}return this}interpolate(t,e){return t&&(this._rgb=function(t,e,i){const s=Ut(wt(t.r)),n=Ut(wt(t.g)),o=Ut(wt(t.b));return{r:Mt(Yt(s+i*(Ut(wt(e.r))-s))),g:Mt(Yt(n+i*(Ut(wt(e.g))-n))),b:Mt(Yt(o+i*(Ut(wt(e.b))-o))),a:t.a+i*(e.a-t.a)}}(this._rgb,t._rgb,e)),this}clone(){return new Jt(this.rgb)}alpha(t){return this._rgb.a=Mt(t),this}clearer(t){return this._rgb.a*=1-t,this}greyscale(){const t=this._rgb,e=_t(.3*t.r+.59*t.g+.11*t.b);return t.r=t.g=t.b=e,this}opaquer(t){return this._rgb.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return Xt(this._rgb,2,t),this}darken(t){return Xt(this._rgb,2,-t),this}saturate(t){return Xt(this._rgb,1,t),this}desaturate(t){return Xt(this._rgb,1,-t),this}rotate(t){return function(t,e){var i=It(t);i[0]=Vt(i[0]+e),i=Ft(i),t.r=i[0],t.g=i[1],t.b=i[2]}(this._rgb,t),this}}function Zt(t){if(t&&"object"==typeof t){const e=t.toString();return"[object CanvasPattern]"===e||"[object CanvasGradient]"===e}return!1}function Qt(t){return Zt(t)?t:new Jt(t)}function te(t){return Zt(t)?t:new Jt(t).saturate(.5).darken(.1).hexString()}const ee=["x","y","borderWidth","radius","tension"],ie=["color","borderColor","backgroundColor"];const se=new Map;function ne(t,e,i){return function(t,e){e=e||{};const i=t+JSON.stringify(e);let s=se.get(i);return s||(s=new Intl.NumberFormat(t,e),se.set(i,s)),s}(e,i).format(t)}const oe={values:t=>n(t)?t:""+t,numeric(t,e,i){if(0===t)return"0";const s=this.chart.options.locale;let n,o=t;if(i.length>1){const e=Math.max(Math.abs(i[0].value),Math.abs(i[i.length-1].value));(e<1e-4||e>1e15)&&(n="scientific"),o=function(t,e){let i=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;Math.abs(i)>=1&&t!==Math.floor(t)&&(i=t-Math.floor(t));return i}(t,i)}const a=z(Math.abs(o)),r=isNaN(a)?1:Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:n,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(l,this.options.ticks.format),ne(t,s,l)},logarithmic(t,e,i){if(0===t)return"0";const s=i[e].significand||t/Math.pow(10,Math.floor(z(t)));return[1,2,3,5,10,15].includes(s)||e>.8*i.length?oe.numeric.call(this,t,e,i):""}};var ae={formatters:oe};const re=Object.create(null),le=Object.create(null);function he(t,e){if(!e)return t;const i=e.split(".");for(let e=0,s=i.length;et.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,e)=>te(e.backgroundColor),this.hoverBorderColor=(t,e)=>te(e.borderColor),this.hoverColor=(t,e)=>te(e.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(e)}set(t,e){return ce(this,t,e)}get(t){return he(this,t)}describe(t,e){return ce(le,t,e)}override(t,e){return ce(re,t,e)}route(t,e,i,s){const n=he(this,t),a=he(this,i),r="_"+e;Object.defineProperties(n,{[r]:{value:n[e],writable:!0},[e]:{enumerable:!0,get(){const t=this[r],e=a[s];return o(t)?Object.assign({},e,t):l(t,e)},set(t){this[r]=t}}})}apply(t){t.forEach((t=>t(this)))}}var ue=new de({_scriptable:t=>!t.startsWith("on"),_indexable:t=>"events"!==t,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[function(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:t=>"onProgress"!==t&&"onComplete"!==t&&"fn"!==t}),t.set("animations",{colors:{type:"color",properties:ie},numbers:{type:"number",properties:ee}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>0|t}}}})},function(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,e)=>e.lineWidth,tickColor:(t,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:ae.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&"callback"!==t&&"parser"!==t,_indexable:t=>"borderDash"!==t&&"tickBorderDash"!==t&&"dash"!==t}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:t=>"backdropPadding"!==t&&"callback"!==t,_indexable:t=>"backdropPadding"!==t})}]);function fe(){return"undefined"!=typeof window&&"undefined"!=typeof document}function ge(t){let e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e}function pe(t,e,i){let s;return"string"==typeof t?(s=parseInt(t,10),-1!==t.indexOf("%")&&(s=s/100*e.parentNode[i])):s=t,s}const me=t=>t.ownerDocument.defaultView.getComputedStyle(t,null);function xe(t,e){return me(t).getPropertyValue(e)}const be=["top","right","bottom","left"];function _e(t,e,i){const s={};i=i?"-"+i:"";for(let n=0;n<4;n++){const o=be[n];s[o]=parseFloat(t[e+"-"+o+i])||0}return s.width=s.left+s.right,s.height=s.top+s.bottom,s}const ye=(t,e,i)=>(t>0||e>0)&&(!i||!i.shadowRoot);function ve(t,e){if("native"in t)return t;const{canvas:i,currentDevicePixelRatio:s}=e,n=me(i),o="border-box"===n.boxSizing,a=_e(n,"padding"),r=_e(n,"border","width"),{x:l,y:h,box:c}=function(t,e){const i=t.touches,s=i&&i.length?i[0]:t,{offsetX:n,offsetY:o}=s;let a,r,l=!1;if(ye(n,o,t.target))a=n,r=o;else{const t=e.getBoundingClientRect();a=s.clientX-t.left,r=s.clientY-t.top,l=!0}return{x:a,y:r,box:l}}(t,i),d=a.left+(c&&r.left),u=a.top+(c&&r.top);let{width:f,height:g}=e;return o&&(f-=a.width+r.width,g-=a.height+r.height),{x:Math.round((l-d)/f*i.width/s),y:Math.round((h-u)/g*i.height/s)}}const Me=t=>Math.round(10*t)/10;function we(t,e,i,s){const n=me(t),o=_e(n,"margin"),a=pe(n.maxWidth,t,"clientWidth")||T,r=pe(n.maxHeight,t,"clientHeight")||T,l=function(t,e,i){let s,n;if(void 0===e||void 0===i){const o=t&&ge(t);if(o){const t=o.getBoundingClientRect(),a=me(o),r=_e(a,"border","width"),l=_e(a,"padding");e=t.width-l.width-r.width,i=t.height-l.height-r.height,s=pe(a.maxWidth,o,"clientWidth"),n=pe(a.maxHeight,o,"clientHeight")}else e=t.clientWidth,i=t.clientHeight}return{width:e,height:i,maxWidth:s||T,maxHeight:n||T}}(t,e,i);let{width:h,height:c}=l;if("content-box"===n.boxSizing){const t=_e(n,"border","width"),e=_e(n,"padding");h-=e.width+t.width,c-=e.height+t.height}h=Math.max(0,h-o.width),c=Math.max(0,s?h/s:c-o.height),h=Me(Math.min(h,a,l.maxWidth)),c=Me(Math.min(c,r,l.maxHeight)),h&&!c&&(c=Me(h/2));return(void 0!==e||void 0!==i)&&s&&l.height&&c>l.height&&(c=l.height,h=Me(Math.floor(c*s))),{width:h,height:c}}function ke(t,e,i){const s=e||1,n=Me(t.height*s),o=Me(t.width*s);t.height=Me(t.height),t.width=Me(t.width);const a=t.canvas;return a.style&&(i||!a.style.height&&!a.style.width)&&(a.style.height=`${t.height}px`,a.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==s||a.height!==n||a.width!==o)&&(t.currentDevicePixelRatio=s,a.height=n,a.width=o,t.ctx.setTransform(s,0,0,s,0,0),!0)}const Se=function(){let t=!1;try{const e={get passive(){return t=!0,!1}};fe()&&(window.addEventListener("test",null,e),window.removeEventListener("test",null,e))}catch(t){}return t}();function Pe(t,e){const i=xe(t,e),s=i&&i.match(/^(\d+)(\.\d+)?px$/);return s?+s[1]:void 0}function De(t){return!t||s(t.size)||s(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function Ce(t,e,i,s,n){let o=e[n];return o||(o=e[n]=t.measureText(n).width,i.push(n)),o>s&&(s=o),s}function Oe(t,e,i,s){let o=(s=s||{}).data=s.data||{},a=s.garbageCollect=s.garbageCollect||[];s.font!==e&&(o=s.data={},a=s.garbageCollect=[],s.font=e),t.save(),t.font=e;let r=0;const l=i.length;let h,c,d,u,f;for(h=0;hi.length){for(h=0;h0&&t.stroke()}}function Re(t,e,i){return i=i||.5,!e||t&&t.x>e.left-i&&t.xe.top-i&&t.y0&&""!==r.strokeColor;let c,d;for(t.save(),t.font=a.string,function(t,e){e.translation&&t.translate(e.translation[0],e.translation[1]),s(e.rotation)||t.rotate(e.rotation),e.color&&(t.fillStyle=e.color),e.textAlign&&(t.textAlign=e.textAlign),e.textBaseline&&(t.textBaseline=e.textBaseline)}(t,r),c=0;ct[0])){const o=i||t;void 0===s&&(s=ti("_fallback",t));const a={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:o,_fallback:s,_getTarget:n,override:i=>je([i,...t],e,o,s)};return new Proxy(a,{deleteProperty:(e,i)=>(delete e[i],delete e._keys,delete t[0][i],!0),get:(i,s)=>qe(i,s,(()=>function(t,e,i,s){let n;for(const o of e)if(n=ti(Ue(o,t),i),void 0!==n)return Xe(t,n)?Ze(i,s,t,n):n}(s,e,t,i))),getOwnPropertyDescriptor:(t,e)=>Reflect.getOwnPropertyDescriptor(t._scopes[0],e),getPrototypeOf:()=>Reflect.getPrototypeOf(t[0]),has:(t,e)=>ei(t).includes(e),ownKeys:t=>ei(t),set(t,e,i){const s=t._storage||(t._storage=n());return t[e]=s[e]=i,delete t._keys,!0}})}function $e(t,e,i,s){const a={_cacheable:!1,_proxy:t,_context:e,_subProxy:i,_stack:new Set,_descriptors:Ye(t,s),setContext:e=>$e(t,e,i,s),override:n=>$e(t.override(n),e,i,s)};return new Proxy(a,{deleteProperty:(e,i)=>(delete e[i],delete t[i],!0),get:(t,e,i)=>qe(t,e,(()=>function(t,e,i){const{_proxy:s,_context:a,_subProxy:r,_descriptors:l}=t;let h=s[e];S(h)&&l.isScriptable(e)&&(h=function(t,e,i,s){const{_proxy:n,_context:o,_subProxy:a,_stack:r}=i;if(r.has(t))throw new Error("Recursion detected: "+Array.from(r).join("->")+"->"+t);r.add(t);let l=e(o,a||s);r.delete(t),Xe(t,l)&&(l=Ze(n._scopes,n,t,l));return l}(e,h,t,i));n(h)&&h.length&&(h=function(t,e,i,s){const{_proxy:n,_context:a,_subProxy:r,_descriptors:l}=i;if(void 0!==a.index&&s(t))return e[a.index%e.length];if(o(e[0])){const i=e,s=n._scopes.filter((t=>t!==i));e=[];for(const o of i){const i=Ze(s,n,t,o);e.push($e(i,a,r&&r[t],l))}}return e}(e,h,t,l.isIndexable));Xe(e,h)&&(h=$e(h,a,r&&r[e],l));return h}(t,e,i))),getOwnPropertyDescriptor:(e,i)=>e._descriptors.allKeys?Reflect.has(t,i)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,i),getPrototypeOf:()=>Reflect.getPrototypeOf(t),has:(e,i)=>Reflect.has(t,i),ownKeys:()=>Reflect.ownKeys(t),set:(e,i,s)=>(t[i]=s,delete e[i],!0)})}function Ye(t,e={scriptable:!0,indexable:!0}){const{_scriptable:i=e.scriptable,_indexable:s=e.indexable,_allKeys:n=e.allKeys}=t;return{allKeys:n,scriptable:i,indexable:s,isScriptable:S(i)?i:()=>i,isIndexable:S(s)?s:()=>s}}const Ue=(t,e)=>t?t+w(e):e,Xe=(t,e)=>o(e)&&"adapters"!==t&&(null===Object.getPrototypeOf(e)||e.constructor===Object);function qe(t,e,i){if(Object.prototype.hasOwnProperty.call(t,e)||"constructor"===e)return t[e];const s=i();return t[e]=s,s}function Ke(t,e,i){return S(t)?t(e,i):t}const Ge=(t,e)=>!0===t?e:"string"==typeof t?M(e,t):void 0;function Je(t,e,i,s,n){for(const o of e){const e=Ge(i,o);if(e){t.add(e);const o=Ke(e._fallback,i,n);if(void 0!==o&&o!==i&&o!==s)return o}else if(!1===e&&void 0!==s&&i!==s)return null}return!1}function Ze(t,e,i,s){const a=e._rootScopes,r=Ke(e._fallback,i,s),l=[...t,...a],h=new Set;h.add(s);let c=Qe(h,l,i,r||i,s);return null!==c&&((void 0===r||r===i||(c=Qe(h,l,r,c,s),null!==c))&&je(Array.from(h),[""],a,r,(()=>function(t,e,i){const s=t._getTarget();e in s||(s[e]={});const a=s[e];if(n(a)&&o(i))return i;return a||{}}(e,i,s))))}function Qe(t,e,i,s,n){for(;i;)i=Je(t,e,i,s,n);return i}function ti(t,e){for(const i of e){if(!i)continue;const e=i[t];if(void 0!==e)return e}}function ei(t){let e=t._keys;return e||(e=t._keys=function(t){const e=new Set;for(const i of t)for(const t of Object.keys(i).filter((t=>!t.startsWith("_"))))e.add(t);return Array.from(e)}(t._scopes)),e}function ii(t,e,i,s){const{iScale:n}=t,{key:o="r"}=this._parsing,a=new Array(s);let r,l,h,c;for(r=0,l=s;re"x"===t?"y":"x";function ai(t,e,i,s){const n=t.skip?e:t,o=e,a=i.skip?e:i,r=q(o,n),l=q(a,o);let h=r/(r+l),c=l/(r+l);h=isNaN(h)?0:h,c=isNaN(c)?0:c;const d=s*h,u=s*c;return{previous:{x:o.x-d*(a.x-n.x),y:o.y-d*(a.y-n.y)},next:{x:o.x+u*(a.x-n.x),y:o.y+u*(a.y-n.y)}}}function ri(t,e="x"){const i=oi(e),s=t.length,n=Array(s).fill(0),o=Array(s);let a,r,l,h=ni(t,0);for(a=0;a!t.skip))),"monotone"===e.cubicInterpolationMode)ri(t,n);else{let i=s?t[t.length-1]:t[0];for(o=0,a=t.length;o0===t||1===t,di=(t,e,i)=>-Math.pow(2,10*(t-=1))*Math.sin((t-e)*O/i),ui=(t,e,i)=>Math.pow(2,-10*t)*Math.sin((t-e)*O/i)+1,fi={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*E),easeOutSine:t=>Math.sin(t*E),easeInOutSine:t=>-.5*(Math.cos(C*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>ci(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>ci(t)?t:di(t,.075,.3),easeOutElastic:t=>ci(t)?t:ui(t,.075,.3),easeInOutElastic(t){const e=.1125;return ci(t)?t:t<.5?.5*di(2*t,e,.45):.5+.5*ui(2*t-1,e,.45)},easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)},easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:t=>1-fi.easeOutBounce(1-t),easeOutBounce(t){const e=7.5625,i=2.75;return t<1/i?e*t*t:t<2/i?e*(t-=1.5/i)*t+.75:t<2.5/i?e*(t-=2.25/i)*t+.9375:e*(t-=2.625/i)*t+.984375},easeInOutBounce:t=>t<.5?.5*fi.easeInBounce(2*t):.5*fi.easeOutBounce(2*t-1)+.5};function gi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}}function pi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:"middle"===s?i<.5?t.y:e.y:"after"===s?i<1?t.y:e.y:i>0?e.y:t.y}}function mi(t,e,i,s){const n={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},a=gi(t,n,i),r=gi(n,o,i),l=gi(o,e,i),h=gi(a,r,i),c=gi(r,l,i);return gi(h,c,i)}const xi=/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,bi=/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;function _i(t,e){const i=(""+t).match(xi);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t}const yi=t=>+t||0;function vi(t,e){const i={},s=o(e),n=s?Object.keys(e):e,a=o(t)?s?i=>l(t[i],t[e[i]]):e=>t[e]:()=>t;for(const t of n)i[t]=yi(a(t));return i}function Mi(t){return vi(t,{top:"y",right:"x",bottom:"y",left:"x"})}function wi(t){return vi(t,["topLeft","topRight","bottomLeft","bottomRight"])}function ki(t){const e=Mi(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function Si(t,e){t=t||{},e=e||ue.font;let i=l(t.size,e.size);"string"==typeof i&&(i=parseInt(i,10));let s=l(t.style,e.style);s&&!(""+s).match(bi)&&(console.warn('Invalid font style specified: "'+s+'"'),s=void 0);const n={family:l(t.family,e.family),lineHeight:_i(l(t.lineHeight,e.lineHeight),i),size:i,style:s,weight:l(t.weight,e.weight),string:""};return n.string=De(n),n}function Pi(t,e,i,s){let o,a,r,l=!0;for(o=0,a=t.length;oi&&0===t?0:t+e;return{min:a(s,-Math.abs(o)),max:a(n,o)}}function Ci(t,e){return Object.assign(Object.create(t),e)}function Oi(t,e,i){return t?function(t,e){return{x:i=>t+t+e-i,setWidth(t){e=t},textAlign:t=>"center"===t?t:"right"===t?"left":"right",xPlus:(t,e)=>t-e,leftForLtr:(t,e)=>t-e}}(e,i):{x:t=>t,setWidth(t){},textAlign:t=>t,xPlus:(t,e)=>t+e,leftForLtr:(t,e)=>t}}function Ai(t,e){let i,s;"ltr"!==e&&"rtl"!==e||(i=t.canvas.style,s=[i.getPropertyValue("direction"),i.getPropertyPriority("direction")],i.setProperty("direction",e,"important"),t.prevTextDirection=s)}function Ti(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function Li(t){return"angle"===t?{between:J,compare:K,normalize:G}:{between:tt,compare:(t,e)=>t-e,normalize:t=>t}}function Ei({start:t,end:e,count:i,loop:s,style:n}){return{start:t%i,end:e%i,loop:s&&(e-t+1)%i==0,style:n}}function Ri(t,e,i){if(!i)return[t];const{property:s,start:n,end:o}=i,a=e.length,{compare:r,between:l,normalize:h}=Li(s),{start:c,end:d,loop:u,style:f}=function(t,e,i){const{property:s,start:n,end:o}=i,{between:a,normalize:r}=Li(s),l=e.length;let h,c,{start:d,end:u,loop:f}=t;if(f){for(d+=l,u+=l,h=0,c=l;hb||l(n,x,p)&&0!==r(n,x),v=()=>!b||0===r(o,p)||l(o,x,p);for(let t=c,i=c;t<=d;++t)m=e[t%a],m.skip||(p=h(m[s]),p!==x&&(b=l(p,n,o),null===_&&y()&&(_=0===r(p,n)?t:i),null!==_&&v()&&(g.push(Ei({start:_,end:t,loop:u,count:a,style:f})),_=null),i=t,x=p));return null!==_&&g.push(Ei({start:_,end:d,loop:u,count:a,style:f})),g}function Ii(t,e){const i=[],s=t.segments;for(let n=0;nn&&t[o%e].skip;)o--;return o%=e,{start:n,end:o}}(i,n,o,s);if(!0===s)return Fi(t,[{start:a,end:r,loop:o}],i,e);return Fi(t,function(t,e,i,s){const n=t.length,o=[];let a,r=e,l=t[e];for(a=e+1;a<=i;++a){const i=t[a%n];i.skip||i.stop?l.skip||(s=!1,o.push({start:e%n,end:(a-1)%n,loop:s}),e=r=i.stop?a:null):(r=a,l.skip&&(e=a)),l=i}return null!==r&&o.push({start:e%n,end:r%n,loop:s}),o}(i,a,r!s(t[e.axis])));n.lo-=Math.max(0,a);const r=i.slice(n.hi).findIndex((t=>!s(t[e.axis])));n.hi+=Math.max(0,r)}return n}if(o._sharedOptions){const t=a[0],s="function"==typeof t.getRange&&t.getRange(e);if(s){const t=r(a,e,i-s),n=r(a,e,i+s);return{lo:t.lo,hi:n.hi}}}}return{lo:0,hi:a.length-1}}function $i(t,e,i,s,n){const o=t.getSortedVisibleDatasetMetas(),a=i[e];for(let t=0,i=o.length;t{t[a]&&t[a](e[i],n)&&(o.push({element:t,datasetIndex:s,index:l}),r=r||t.inRange(e.x,e.y,n))})),s&&!r?[]:o}var Ki={evaluateInteractionItems:$i,modes:{index(t,e,i,s){const n=ve(e,t),o=i.axis||"x",a=i.includeInvisible||!1,r=i.intersect?Yi(t,n,o,s,a):Xi(t,n,o,!1,s,a),l=[];return r.length?(t.getSortedVisibleDatasetMetas().forEach((t=>{const e=r[0].index,i=t.data[e];i&&!i.skip&&l.push({element:i,datasetIndex:t.index,index:e})})),l):[]},dataset(t,e,i,s){const n=ve(e,t),o=i.axis||"xy",a=i.includeInvisible||!1;let r=i.intersect?Yi(t,n,o,s,a):Xi(t,n,o,!1,s,a);if(r.length>0){const e=r[0].datasetIndex,i=t.getDatasetMeta(e).data;r=[];for(let t=0;tYi(t,ve(e,t),i.axis||"xy",s,i.includeInvisible||!1),nearest(t,e,i,s){const n=ve(e,t),o=i.axis||"xy",a=i.includeInvisible||!1;return Xi(t,n,o,i.intersect,s,a)},x:(t,e,i,s)=>qi(t,ve(e,t),"x",i.intersect,s),y:(t,e,i,s)=>qi(t,ve(e,t),"y",i.intersect,s)}};const Gi=["left","top","right","bottom"];function Ji(t,e){return t.filter((t=>t.pos===e))}function Zi(t,e){return t.filter((t=>-1===Gi.indexOf(t.pos)&&t.box.axis===e))}function Qi(t,e){return t.sort(((t,i)=>{const s=e?i:t,n=e?t:i;return s.weight===n.weight?s.index-n.index:s.weight-n.weight}))}function ts(t,e){const i=function(t){const e={};for(const i of t){const{stack:t,pos:s,stackWeight:n}=i;if(!t||!Gi.includes(s))continue;const o=e[t]||(e[t]={count:0,placed:0,weight:0,size:0});o.count++,o.weight+=n}return e}(t),{vBoxMaxWidth:s,hBoxMaxHeight:n}=e;let o,a,r;for(o=0,a=t.length;o{s[t]=Math.max(e[t],i[t])})),s}return s(t?["left","right"]:["top","bottom"])}function os(t,e,i,s){const n=[];let o,a,r,l,h,c;for(o=0,a=t.length,h=0;ot.box.fullSize)),!0),s=Qi(Ji(e,"left"),!0),n=Qi(Ji(e,"right")),o=Qi(Ji(e,"top"),!0),a=Qi(Ji(e,"bottom")),r=Zi(e,"x"),l=Zi(e,"y");return{fullSize:i,leftAndTop:s.concat(o),rightAndBottom:n.concat(l).concat(a).concat(r),chartArea:Ji(e,"chartArea"),vertical:s.concat(n).concat(l),horizontal:o.concat(a).concat(r)}}(t.boxes),l=r.vertical,h=r.horizontal;u(t.boxes,(t=>{"function"==typeof t.beforeLayout&&t.beforeLayout()}));const c=l.reduce(((t,e)=>e.box.options&&!1===e.box.options.display?t:t+1),0)||1,d=Object.freeze({outerWidth:e,outerHeight:i,padding:n,availableWidth:o,availableHeight:a,vBoxMaxWidth:o/2/c,hBoxMaxHeight:a/2}),f=Object.assign({},n);is(f,ki(s));const g=Object.assign({maxPadding:f,w:o,h:a,x:n.left,y:n.top},n),p=ts(l.concat(h),d);os(r.fullSize,g,d,p),os(l,g,d,p),os(h,g,d,p)&&os(l,g,d,p),function(t){const e=t.maxPadding;function i(i){const s=Math.max(e[i]-t[i],0);return t[i]+=s,s}t.y+=i("top"),t.x+=i("left"),i("right"),i("bottom")}(g),rs(r.leftAndTop,g,d,p),g.x+=g.w,g.y+=g.h,rs(r.rightAndBottom,g,d,p),t.chartArea={left:g.left,top:g.top,right:g.left+g.w,bottom:g.top+g.h,height:g.h,width:g.w},u(r.chartArea,(e=>{const i=e.box;Object.assign(i,t.chartArea),i.update(g.w,g.h,{left:0,top:0,right:0,bottom:0})}))}};class hs{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,i){}removeEventListener(t,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,i,s){return e=Math.max(0,e||t.width),i=i||t.height,{width:e,height:Math.max(0,s?Math.floor(e/s):i)}}isAttached(t){return!0}updateConfig(t){}}class cs extends hs{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const ds="$chartjs",us={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},fs=t=>null===t||""===t;const gs=!!Se&&{passive:!0};function ps(t,e,i){t&&t.canvas&&t.canvas.removeEventListener(e,i,gs)}function ms(t,e){for(const i of t)if(i===e||i.contains(e))return!0}function xs(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ms(i.addedNodes,s),e=e&&!ms(i.removedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}function bs(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ms(i.removedNodes,s),e=e&&!ms(i.addedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}const _s=new Map;let ys=0;function vs(){const t=window.devicePixelRatio;t!==ys&&(ys=t,_s.forEach(((e,i)=>{i.currentDevicePixelRatio!==t&&e()})))}function Ms(t,e,i){const s=t.canvas,n=s&&ge(s);if(!n)return;const o=ct(((t,e)=>{const s=n.clientWidth;i(t,e),s{const e=t[0],i=e.contentRect.width,s=e.contentRect.height;0===i&&0===s||o(i,s)}));return a.observe(n),function(t,e){_s.size||window.addEventListener("resize",vs),_s.set(t,e)}(t,o),a}function ws(t,e,i){i&&i.disconnect(),"resize"===e&&function(t){_s.delete(t),_s.size||window.removeEventListener("resize",vs)}(t)}function ks(t,e,i){const s=t.canvas,n=ct((e=>{null!==t.ctx&&i(function(t,e){const i=us[t.type]||t.type,{x:s,y:n}=ve(t,e);return{type:i,chart:e,native:t,x:void 0!==s?s:null,y:void 0!==n?n:null}}(e,t))}),t);return function(t,e,i){t&&t.addEventListener(e,i,gs)}(s,e,n),n}class Ss extends hs{acquireContext(t,e){const i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(function(t,e){const i=t.style,s=t.getAttribute("height"),n=t.getAttribute("width");if(t[ds]={initial:{height:s,width:n,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",i.boxSizing=i.boxSizing||"border-box",fs(n)){const e=Pe(t,"width");void 0!==e&&(t.width=e)}if(fs(s))if(""===t.style.height)t.height=t.width/(e||2);else{const e=Pe(t,"height");void 0!==e&&(t.height=e)}}(t,e),i):null}releaseContext(t){const e=t.canvas;if(!e[ds])return!1;const i=e[ds].initial;["height","width"].forEach((t=>{const n=i[t];s(n)?e.removeAttribute(t):e.setAttribute(t,n)}));const n=i.style||{};return Object.keys(n).forEach((t=>{e.style[t]=n[t]})),e.width=e.width,delete e[ds],!0}addEventListener(t,e,i){this.removeEventListener(t,e);const s=t.$proxies||(t.$proxies={}),n={attach:xs,detach:bs,resize:Ms}[e]||ks;s[e]=n(t,e,i)}removeEventListener(t,e){const i=t.$proxies||(t.$proxies={}),s=i[e];if(!s)return;({attach:ws,detach:ws,resize:ws}[e]||ps)(t,e,s),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,i,s){return we(t,e,i,s)}isAttached(t){const e=t&&ge(t);return!(!e||!e.isConnected)}}function Ps(t){return!fe()||"undefined"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas?cs:Ss}var Ds=Object.freeze({__proto__:null,BasePlatform:hs,BasicPlatform:cs,DomPlatform:Ss,_detectPlatform:Ps});const Cs="transparent",Os={boolean:(t,e,i)=>i>.5?e:t,color(t,e,i){const s=Qt(t||Cs),n=s.valid&&Qt(e||Cs);return n&&n.valid?n.mix(s,i).hexString():e},number:(t,e,i)=>t+(e-t)*i};class As{constructor(t,e,i,s){const n=e[i];s=Pi([t.to,s,n,t.from]);const o=Pi([t.from,n,s]);this._active=!0,this._fn=t.fn||Os[t.type||typeof o],this._easing=fi[t.easing]||fi.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=i,this._from=o,this._to=s,this._promises=void 0}active(){return this._active}update(t,e,i){if(this._active){this._notify(!1);const s=this._target[this._prop],n=i-this._start,o=this._duration-n;this._start=i,this._duration=Math.floor(Math.max(o,t.duration)),this._total+=n,this._loop=!!t.loop,this._to=Pi([t.to,e,s,t.from]),this._from=Pi([t.from,s,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,i=this._duration,s=this._prop,n=this._from,o=this._loop,a=this._to;let r;if(this._active=n!==a&&(o||e1?2-r:r,r=this._easing(Math.min(1,Math.max(0,r))),this._target[s]=this._fn(n,a,r))}wait(){const t=this._promises||(this._promises=[]);return new Promise(((e,i)=>{t.push({res:e,rej:i})}))}_notify(t){const e=t?"res":"rej",i=this._promises||[];for(let t=0;t{const a=t[s];if(!o(a))return;const r={};for(const t of e)r[t]=a[t];(n(a.properties)&&a.properties||[s]).forEach((t=>{t!==s&&i.has(t)||i.set(t,r)}))}))}_animateOptions(t,e){const i=e.options,s=function(t,e){if(!e)return;let i=t.options;if(!i)return void(t.options=e);i.$shared&&(t.options=i=Object.assign({},i,{$shared:!1,$animations:{}}));return i}(t,i);if(!s)return[];const n=this._createAnimations(s,i);return i.$shared&&function(t,e){const i=[],s=Object.keys(e);for(let e=0;e{t.options=i}),(()=>{})),n}_createAnimations(t,e){const i=this._properties,s=[],n=t.$animations||(t.$animations={}),o=Object.keys(e),a=Date.now();let r;for(r=o.length-1;r>=0;--r){const l=o[r];if("$"===l.charAt(0))continue;if("options"===l){s.push(...this._animateOptions(t,e));continue}const h=e[l];let c=n[l];const d=i.get(l);if(c){if(d&&c.active()){c.update(d,h,a);continue}c.cancel()}d&&d.duration?(n[l]=c=new As(d,t,l,h),s.push(c)):t[l]=h}return s}update(t,e){if(0===this._properties.size)return void Object.assign(t,e);const i=this._createAnimations(t,e);return i.length?(bt.add(this._chart,i),!0):void 0}}function Ls(t,e){const i=t&&t.options||{},s=i.reverse,n=void 0===i.min?e:0,o=void 0===i.max?e:0;return{start:s?o:n,end:s?n:o}}function Es(t,e){const i=[],s=t._getSortedDatasetMetas(e);let n,o;for(n=0,o=s.length;n0||!i&&e<0)return n.index}return null}function Vs(t,e){const{chart:i,_cachedMeta:s}=t,n=i._stacks||(i._stacks={}),{iScale:o,vScale:a,index:r}=s,l=o.axis,h=a.axis,c=function(t,e,i){return`${t.id}.${e.id}.${i.stack||i.type}`}(o,a,s),d=e.length;let u;for(let t=0;ti[t].axis===e)).shift()}function Ws(t,e){const i=t.controller.index,s=t.vScale&&t.vScale.axis;if(s){e=e||t._parsed;for(const t of e){const e=t._stacks;if(!e||void 0===e[s]||void 0===e[s][i])return;delete e[s][i],void 0!==e[s]._visualValues&&void 0!==e[s]._visualValues[i]&&delete e[s]._visualValues[i]}}}const Ns=t=>"reset"===t||"none"===t,Hs=(t,e)=>e?t:Object.assign({},t);class js{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=Is(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&Ws(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,i=this.getDataset(),s=(t,e,i,s)=>"x"===t?e:"r"===t?s:i,n=e.xAxisID=l(i.xAxisID,Bs(t,"x")),o=e.yAxisID=l(i.yAxisID,Bs(t,"y")),a=e.rAxisID=l(i.rAxisID,Bs(t,"r")),r=e.indexAxis,h=e.iAxisID=s(r,n,o,a),c=e.vAxisID=s(r,o,n,a);e.xScale=this.getScaleForId(n),e.yScale=this.getScaleForId(o),e.rScale=this.getScaleForId(a),e.iScale=this.getScaleForId(h),e.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&rt(this._data,this),t._stacked&&Ws(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),i=this._data;if(o(e)){const t=this._cachedMeta;this._data=function(t,e){const{iScale:i,vScale:s}=e,n="x"===i.axis?"x":"y",o="x"===s.axis?"x":"y",a=Object.keys(t),r=new Array(a.length);let l,h,c;for(l=0,h=a.length;l0&&i._parsed[t-1];if(!1===this._parsing)i._parsed=s,i._sorted=!0,d=s;else{d=n(s[t])?this.parseArrayData(i,s,t,e):o(s[t])?this.parseObjectData(i,s,t,e):this.parsePrimitiveData(i,s,t,e);const a=()=>null===c[l]||f&&c[l]t&&!e.hidden&&e._stacked&&{keys:Es(i,!0),values:null})(e,i,this.chart),h={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:c,max:d}=function(t){const{min:e,max:i,minDefined:s,maxDefined:n}=t.getUserBounds();return{min:s?e:Number.NEGATIVE_INFINITY,max:n?i:Number.POSITIVE_INFINITY}}(r);let u,f;function g(){f=s[u];const e=f[r.axis];return!a(f[t.axis])||c>e||d=0;--u)if(!g()){this.updateRangeFromParsed(h,t,f,l);break}return h}getAllParsedValues(t){const e=this._cachedMeta._parsed,i=[];let s,n,o;for(s=0,n=e.length;s=0&&tthis.getContext(i,s,e)),c);return f.$shared&&(f.$shared=r,n[o]=Object.freeze(Hs(f,r))),f}_resolveAnimations(t,e,i){const s=this.chart,n=this._cachedDataOpts,o=`animation-${e}`,a=n[o];if(a)return a;let r;if(!1!==s.options.animation){const s=this.chart.config,n=s.datasetAnimationScopeKeys(this._type,e),o=s.getOptionScopes(this.getDataset(),n);r=s.createResolver(o,this.getContext(t,i,e))}const l=new Ts(s,r&&r.animations);return r&&r._cacheable&&(n[o]=Object.freeze(l)),l}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||Ns(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){const i=this.resolveDataElementOptions(t,e),s=this._sharedOptions,n=this.getSharedOptions(i),o=this.includeOptions(e,n)||n!==s;return this.updateSharedOptions(n,e,i),{sharedOptions:n,includeOptions:o}}updateElement(t,e,i,s){Ns(s)?Object.assign(t,i):this._resolveAnimations(e,s).update(t,i)}updateSharedOptions(t,e,i){t&&!Ns(e)&&this._resolveAnimations(void 0,e).update(t,i)}_setStyle(t,e,i,s){t.active=s;const n=this.getStyle(e,s);this._resolveAnimations(e,i,s).update(t,{options:!s&&this.getSharedOptions(n)||n})}removeHoverStyle(t,e,i){this._setStyle(t,i,"active",!1)}setHoverStyle(t,e,i){this._setStyle(t,i,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const e=this._data,i=this._cachedMeta.data;for(const[t,e,i]of this._syncList)this[t](e,i);this._syncList=[];const s=i.length,n=e.length,o=Math.min(n,s);o&&this.parse(0,o),n>s?this._insertElements(s,n-s,t):n{for(t.length+=e,a=t.length-1;a>=o;a--)t[a]=t[a-e]};for(r(n),a=t;a{s[t]=i[t]&&i[t].active()?i[t]._to:this[t]})),s}}function Ys(t,e){const i=t.options.ticks,n=function(t){const e=t.options.offset,i=t._tickSize(),s=t._length/i+(e?0:1),n=t._maxLength/i;return Math.floor(Math.min(s,n))}(t),o=Math.min(i.maxTicksLimit||n,n),a=i.major.enabled?function(t){const e=[];let i,s;for(i=0,s=t.length;io)return function(t,e,i,s){let n,o=0,a=i[0];for(s=Math.ceil(s),n=0;nn)return e}return Math.max(n,1)}(a,e,o);if(r>0){let t,i;const n=r>1?Math.round((h-l)/(r-1)):null;for(Us(e,c,d,s(n)?0:l-n,l),t=0,i=r-1;t"top"===e||"left"===e?t[e]+i:t[e]-i,qs=(t,e)=>Math.min(e||t,t);function Ks(t,e){const i=[],s=t.length/e,n=t.length;let o=0;for(;oa+r)))return h}function Js(t){return t.drawTicks?t.tickLength:0}function Zs(t,e){if(!t.display)return 0;const i=Si(t.font,e),s=ki(t.padding);return(n(t.text)?t.text.length:1)*i.lineHeight+s.height}function Qs(t,e,i){let s=ut(t);return(i&&"right"!==e||!i&&"right"===e)&&(s=(t=>"left"===t?"right":"right"===t?"left":t)(s)),s}class tn extends $s{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,e){return t}getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:i,_suggestedMax:s}=this;return t=r(t,Number.POSITIVE_INFINITY),e=r(e,Number.NEGATIVE_INFINITY),i=r(i,Number.POSITIVE_INFINITY),s=r(s,Number.NEGATIVE_INFINITY),{min:r(t,i),max:r(e,s),minDefined:a(t),maxDefined:a(e)}}getMinMax(t){let e,{min:i,max:s,minDefined:n,maxDefined:o}=this.getUserBounds();if(n&&o)return{min:i,max:s};const a=this.getMatchingVisibleMetas();for(let r=0,l=a.length;rs?s:i,s=n&&i>s?i:s,{min:r(i,r(s,i)),max:r(s,r(i,s))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){d(this.options.beforeUpdate,[this])}update(t,e,i){const{beginAtZero:s,grace:n,ticks:o}=this.options,a=o.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=Di(this,n,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const r=a=n||i<=1||!this.isHorizontal())return void(this.labelRotation=s);const h=this._getLabelSizes(),c=h.widest.width,d=h.highest.height,u=Z(this.chart.width-c,0,this.maxWidth);o=t.offset?this.maxWidth/i:u/(i-1),c+6>o&&(o=u/(i-(t.offset?.5:1)),a=this.maxHeight-Js(t.grid)-e.padding-Zs(t.title,this.chart.options.font),r=Math.sqrt(c*c+d*d),l=Y(Math.min(Math.asin(Z((h.highest.height+6)/o,-1,1)),Math.asin(Z(a/r,-1,1))-Math.asin(Z(d/r,-1,1)))),l=Math.max(s,Math.min(n,l))),this.labelRotation=l}afterCalculateLabelRotation(){d(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){d(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:i,title:s,grid:n}}=this,o=this._isVisible(),a=this.isHorizontal();if(o){const o=Zs(s,e.options.font);if(a?(t.width=this.maxWidth,t.height=Js(n)+o):(t.height=this.maxHeight,t.width=Js(n)+o),i.display&&this.ticks.length){const{first:e,last:s,widest:n,highest:o}=this._getLabelSizes(),r=2*i.padding,l=$(this.labelRotation),h=Math.cos(l),c=Math.sin(l);if(a){const e=i.mirror?0:c*n.width+h*o.height;t.height=Math.min(this.maxHeight,t.height+e+r)}else{const e=i.mirror?0:h*n.width+c*o.height;t.width=Math.min(this.maxWidth,t.width+e+r)}this._calculatePadding(e,s,c,h)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,i,s){const{ticks:{align:n,padding:o},position:a}=this.options,r=0!==this.labelRotation,l="top"!==a&&"x"===this.axis;if(this.isHorizontal()){const a=this.getPixelForTick(0)-this.left,h=this.right-this.getPixelForTick(this.ticks.length-1);let c=0,d=0;r?l?(c=s*t.width,d=i*e.height):(c=i*t.height,d=s*e.width):"start"===n?d=e.width:"end"===n?c=t.width:"inner"!==n&&(c=t.width/2,d=e.width/2),this.paddingLeft=Math.max((c-a+o)*this.width/(this.width-a),0),this.paddingRight=Math.max((d-h+o)*this.width/(this.width-h),0)}else{let i=e.height/2,s=t.height/2;"start"===n?(i=0,s=t.height):"end"===n&&(i=e.height,s=0),this.paddingTop=i+o,this.paddingBottom=s+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){d(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||"bottom"===e||"x"===t}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){let e,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(t),e=0,i=t.length;e{const i=t.gc,s=i.length/2;let n;if(s>e){for(n=0;n({width:r[t]||0,height:l[t]||0});return{first:P(0),last:P(e-1),widest:P(k),highest:P(S),widths:r,heights:l}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return Q(this._alignToPixels?Ae(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&ta*s?a/i:r/s:r*s0}_computeGridLineItems(t){const e=this.axis,i=this.chart,s=this.options,{grid:n,position:a,border:r}=s,h=n.offset,c=this.isHorizontal(),d=this.ticks.length+(h?1:0),u=Js(n),f=[],g=r.setContext(this.getContext()),p=g.display?g.width:0,m=p/2,x=function(t){return Ae(i,t,p)};let b,_,y,v,M,w,k,S,P,D,C,O;if("top"===a)b=x(this.bottom),w=this.bottom-u,S=b-m,D=x(t.top)+m,O=t.bottom;else if("bottom"===a)b=x(this.top),D=t.top,O=x(t.bottom)-m,w=b+m,S=this.top+u;else if("left"===a)b=x(this.right),M=this.right-u,k=b-m,P=x(t.left)+m,C=t.right;else if("right"===a)b=x(this.left),P=t.left,C=x(t.right)-m,M=b+m,k=this.left+u;else if("x"===e){if("center"===a)b=x((t.top+t.bottom)/2+.5);else if(o(a)){const t=Object.keys(a)[0],e=a[t];b=x(this.chart.scales[t].getPixelForValue(e))}D=t.top,O=t.bottom,w=b+m,S=w+u}else if("y"===e){if("center"===a)b=x((t.left+t.right)/2);else if(o(a)){const t=Object.keys(a)[0],e=a[t];b=x(this.chart.scales[t].getPixelForValue(e))}M=b-m,k=M-u,P=t.left,C=t.right}const A=l(s.ticks.maxTicksLimit,d),T=Math.max(1,Math.ceil(d/A));for(_=0;_0&&(o-=s/2)}d={left:o,top:n,width:s+e.width,height:i+e.height,color:t.backdropColor}}x.push({label:v,font:P,textOffset:O,options:{rotation:m,color:i,strokeColor:o,strokeWidth:h,textAlign:f,textBaseline:A,translation:[M,w],backdrop:d}})}return x}_getXAxisLabelAlignment(){const{position:t,ticks:e}=this.options;if(-$(this.labelRotation))return"top"===t?"left":"right";let i="center";return"start"===e.align?i="left":"end"===e.align?i="right":"inner"===e.align&&(i="inner"),i}_getYAxisLabelAlignment(t){const{position:e,ticks:{crossAlign:i,mirror:s,padding:n}}=this.options,o=t+n,a=this._getLabelSizes().widest.width;let r,l;return"left"===e?s?(l=this.right+n,"near"===i?r="left":"center"===i?(r="center",l+=a/2):(r="right",l+=a)):(l=this.right-o,"near"===i?r="right":"center"===i?(r="center",l-=a/2):(r="left",l=this.left)):"right"===e?s?(l=this.left+n,"near"===i?r="right":"center"===i?(r="center",l-=a/2):(r="left",l-=a)):(l=this.left+o,"near"===i?r="left":"center"===i?(r="center",l+=a/2):(r="right",l=this.right)):r="right",{textAlign:r,x:l}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,e=this.options.position;return"left"===e||"right"===e?{top:0,left:this.left,bottom:t.height,right:this.right}:"top"===e||"bottom"===e?{top:this.top,left:0,bottom:this.bottom,right:t.width}:void 0}drawBackground(){const{ctx:t,options:{backgroundColor:e},left:i,top:s,width:n,height:o}=this;e&&(t.save(),t.fillStyle=e,t.fillRect(i,s,n,o),t.restore())}getLineWidthForValue(t){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const i=this.ticks.findIndex((e=>e.value===t));if(i>=0){return e.setContext(this.getContext(i)).lineWidth}return 0}drawGrid(t){const e=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let n,o;const a=(t,e,s)=>{s.width&&s.color&&(i.save(),i.lineWidth=s.width,i.strokeStyle=s.color,i.setLineDash(s.borderDash||[]),i.lineDashOffset=s.borderDashOffset,i.beginPath(),i.moveTo(t.x,t.y),i.lineTo(e.x,e.y),i.stroke(),i.restore())};if(e.display)for(n=0,o=s.length;n{this.drawBackground(),this.drawGrid(t),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:e,draw:t=>{this.drawLabels(t)}}]:[{z:e,draw:t=>{this.draw(t)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[];let n,o;for(n=0,o=e.length;n{const s=i.split("."),n=s.pop(),o=[t].concat(s).join("."),a=e[i].split("."),r=a.pop(),l=a.join(".");ue.route(o,n,l,r)}))}(e,t.defaultRoutes);t.descriptors&&ue.describe(e,t.descriptors)}(t,o,i),this.override&&ue.override(t.id,t.overrides)),o}get(t){return this.items[t]}unregister(t){const e=this.items,i=t.id,s=this.scope;i in e&&delete e[i],s&&i in ue[s]&&(delete ue[s][i],this.override&&delete re[i])}}class sn{constructor(){this.controllers=new en(js,"datasets",!0),this.elements=new en($s,"elements"),this.plugins=new en(Object,"plugins"),this.scales=new en(tn,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,i){[...e].forEach((e=>{const s=i||this._getRegistryForType(e);i||s.isForType(e)||s===this.plugins&&e.id?this._exec(t,s,e):u(e,(e=>{const s=i||this._getRegistryForType(e);this._exec(t,s,e)}))}))}_exec(t,e,i){const s=w(t);d(i["before"+s],[],i),e[t](i),d(i["after"+s],[],i)}_getRegistryForType(t){for(let e=0;et.filter((t=>!e.some((e=>t.plugin.id===e.plugin.id))));this._notify(s(e,i),t,"stop"),this._notify(s(i,e),t,"start")}}function an(t,e){return e||!1!==t?!0===t?{}:t:null}function rn(t,{plugin:e,local:i},s,n){const o=t.pluginScopeKeys(e),a=t.getOptionScopes(s,o);return i&&e.defaults&&a.push(e.defaults),t.createResolver(a,n,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function ln(t,e){const i=ue.datasets[t]||{};return((e.datasets||{})[t]||{}).indexAxis||e.indexAxis||i.indexAxis||"x"}function hn(t){if("x"===t||"y"===t||"r"===t)return t}function cn(t,...e){if(hn(t))return t;for(const s of e){const e=s.axis||("top"===(i=s.position)||"bottom"===i?"x":"left"===i||"right"===i?"y":void 0)||t.length>1&&hn(t[0].toLowerCase());if(e)return e}var i;throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function dn(t,e,i){if(i[e+"AxisID"]===t)return{axis:e}}function un(t,e){const i=re[t.type]||{scales:{}},s=e.scales||{},n=ln(t.type,e),a=Object.create(null);return Object.keys(s).forEach((e=>{const r=s[e];if(!o(r))return console.error(`Invalid scale configuration for scale: ${e}`);if(r._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${e}`);const l=cn(e,r,function(t,e){if(e.data&&e.data.datasets){const i=e.data.datasets.filter((e=>e.xAxisID===t||e.yAxisID===t));if(i.length)return dn(t,"x",i[0])||dn(t,"y",i[0])}return{}}(e,t),ue.scales[r.type]),h=function(t,e){return t===e?"_index_":"_value_"}(l,n),c=i.scales||{};a[e]=b(Object.create(null),[{axis:l},r,c[l],c[h]])})),t.data.datasets.forEach((i=>{const n=i.type||t.type,o=i.indexAxis||ln(n,e),r=(re[n]||{}).scales||{};Object.keys(r).forEach((t=>{const e=function(t,e){let i=t;return"_index_"===t?i=e:"_value_"===t&&(i="x"===e?"y":"x"),i}(t,o),n=i[e+"AxisID"]||e;a[n]=a[n]||Object.create(null),b(a[n],[{axis:e},s[n],r[t]])}))})),Object.keys(a).forEach((t=>{const e=a[t];b(e,[ue.scales[e.type],ue.scale])})),a}function fn(t){const e=t.options||(t.options={});e.plugins=l(e.plugins,{}),e.scales=un(t,e)}function gn(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const pn=new Map,mn=new Set;function xn(t,e){let i=pn.get(t);return i||(i=e(),pn.set(t,i),mn.add(i)),i}const bn=(t,e,i)=>{const s=M(e,i);void 0!==s&&t.add(s)};class _n{constructor(t){this._config=function(t){return(t=t||{}).data=gn(t.data),fn(t),t}(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=gn(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),fn(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return xn(t,(()=>[[`datasets.${t}`,""]]))}datasetAnimationScopeKeys(t,e){return xn(`${t}.transition.${e}`,(()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]]))}datasetElementScopeKeys(t,e){return xn(`${t}-${e}`,(()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]]))}pluginScopeKeys(t){const e=t.id;return xn(`${this.type}-plugin-${e}`,(()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]]))}_cachedScopes(t,e){const i=this._scopeCache;let s=i.get(t);return s&&!e||(s=new Map,i.set(t,s)),s}getOptionScopes(t,e,i){const{options:s,type:n}=this,o=this._cachedScopes(t,i),a=o.get(e);if(a)return a;const r=new Set;e.forEach((e=>{t&&(r.add(t),e.forEach((e=>bn(r,t,e)))),e.forEach((t=>bn(r,s,t))),e.forEach((t=>bn(r,re[n]||{},t))),e.forEach((t=>bn(r,ue,t))),e.forEach((t=>bn(r,le,t)))}));const l=Array.from(r);return 0===l.length&&l.push(Object.create(null)),mn.has(e)&&o.set(e,l),l}chartOptionScopes(){const{options:t,type:e}=this;return[t,re[e]||{},ue.datasets[e]||{},{type:e},ue,le]}resolveNamedOptions(t,e,i,s=[""]){const o={$shared:!0},{resolver:a,subPrefixes:r}=yn(this._resolverCache,t,s);let l=a;if(function(t,e){const{isScriptable:i,isIndexable:s}=Ye(t);for(const o of e){const e=i(o),a=s(o),r=(a||e)&&t[o];if(e&&(S(r)||vn(r))||a&&n(r))return!0}return!1}(a,e)){o.$shared=!1;l=$e(a,i=S(i)?i():i,this.createResolver(t,i,r))}for(const t of e)o[t]=l[t];return o}createResolver(t,e,i=[""],s){const{resolver:n}=yn(this._resolverCache,t,i);return o(e)?$e(n,e,void 0,s):n}}function yn(t,e,i){let s=t.get(e);s||(s=new Map,t.set(e,s));const n=i.join();let o=s.get(n);if(!o){o={resolver:je(e,i),subPrefixes:i.filter((t=>!t.toLowerCase().includes("hover")))},s.set(n,o)}return o}const vn=t=>o(t)&&Object.getOwnPropertyNames(t).some((e=>S(t[e])));const Mn=["top","bottom","left","right","chartArea"];function wn(t,e){return"top"===t||"bottom"===t||-1===Mn.indexOf(t)&&"x"===e}function kn(t,e){return function(i,s){return i[t]===s[t]?i[e]-s[e]:i[t]-s[t]}}function Sn(t){const e=t.chart,i=e.options.animation;e.notifyPlugins("afterRender"),d(i&&i.onComplete,[t],e)}function Pn(t){const e=t.chart,i=e.options.animation;d(i&&i.onProgress,[t],e)}function Dn(t){return fe()&&"string"==typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const Cn={},On=t=>{const e=Dn(t);return Object.values(Cn).filter((t=>t.canvas===e)).pop()};function An(t,e,i){const s=Object.keys(t);for(const n of s){const s=+n;if(s>=e){const o=t[n];delete t[n],(i>0||s>e)&&(t[s+i]=o)}}}class Tn{static defaults=ue;static instances=Cn;static overrides=re;static registry=nn;static version="4.5.1";static getChart=On;static register(...t){nn.add(...t),Ln()}static unregister(...t){nn.remove(...t),Ln()}constructor(t,e){const s=this.config=new _n(e),n=Dn(t),o=On(n);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const a=s.createResolver(s.chartOptionScopes(),this.getContext());this.platform=new(s.platform||Ps(n)),this.platform.updateConfig(s);const r=this.platform.acquireContext(n,a.aspectRatio),l=r&&r.canvas,h=l&&l.height,c=l&&l.width;this.id=i(),this.ctx=r,this.canvas=l,this.width=c,this.height=h,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new on,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=dt((t=>this.update(t)),a.resizeDelay||0),this._dataChanges=[],Cn[this.id]=this,r&&l?(bt.listen(this,"complete",Sn),bt.listen(this,"progress",Pn),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:i,height:n,_aspectRatio:o}=this;return s(t)?e&&o?o:n?i/n:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return nn}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():ke(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Te(this.canvas,this.ctx),this}stop(){return bt.stop(this),this}resize(t,e){bt.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const i=this.options,s=this.canvas,n=i.maintainAspectRatio&&this.aspectRatio,o=this.platform.getMaximumSize(s,t,e,n),a=i.devicePixelRatio||this.platform.getDevicePixelRatio(),r=this.width?"resize":"attach";this.width=o.width,this.height=o.height,this._aspectRatio=this.aspectRatio,ke(this,a,!0)&&(this.notifyPlugins("resize",{size:o}),d(i.onResize,[this,o],this),this.attached&&this._doResize(r)&&this.render())}ensureScalesHaveIDs(){u(this.options.scales||{},((t,e)=>{t.id=e}))}buildOrUpdateScales(){const t=this.options,e=t.scales,i=this.scales,s=Object.keys(i).reduce(((t,e)=>(t[e]=!1,t)),{});let n=[];e&&(n=n.concat(Object.keys(e).map((t=>{const i=e[t],s=cn(t,i),n="r"===s,o="x"===s;return{options:i,dposition:n?"chartArea":o?"bottom":"left",dtype:n?"radialLinear":o?"category":"linear"}})))),u(n,(e=>{const n=e.options,o=n.id,a=cn(o,n),r=l(n.type,e.dtype);void 0!==n.position&&wn(n.position,a)===wn(e.dposition)||(n.position=e.dposition),s[o]=!0;let h=null;if(o in i&&i[o].type===r)h=i[o];else{h=new(nn.getScale(r))({id:o,type:r,ctx:this.ctx,chart:this}),i[h.id]=h}h.init(n,t)})),u(s,((t,e)=>{t||delete i[e]})),u(i,(t=>{ls.configure(this,t,t.options),ls.addBox(this,t)}))}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort(((t,e)=>t.index-e.index)),i>e){for(let t=e;te.length&&delete this._stacks,t.forEach(((t,i)=>{0===e.filter((e=>e===t._dataset)).length&&this._destroyDatasetMeta(i)}))}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=e.length;i{this.getDatasetMeta(e).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0}))return;const n=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let o=0;for(let t=0,e=this.data.datasets.length;t{t.reset()})),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(kn("z","_idx"));const{_active:a,_lastEvent:r}=this;r?this._eventHandler(r,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){u(this.scales,(t=>{ls.removeBox(this,t)})),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);P(e,i)&&!!this._responsiveListeners===t.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:n}of e){An(t,s,"_removeElements"===i?-n:n)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,i=e=>new Set(t.filter((t=>t[0]===e)).map(((t,e)=>e+","+t.splice(1).join(",")))),s=i(0);for(let t=1;tt.split(","))).map((t=>({method:t[1],start:+t[2],count:+t[3]})))}_updateLayout(t){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;ls.update(this,this.width,this.height,t);const e=this.chartArea,i=e.width<=0||e.height<=0;this._layers=[],u(this.boxes,(t=>{i&&"chartArea"===t.position||(t.configure&&t.configure(),this._layers.push(...t._layers()))}),this),this._layers.forEach(((t,e)=>{t._idx=e})),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})){for(let t=0,e=this.data.datasets.length;t=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,i={meta:t,index:t.index,cancelable:!0},s=Ni(this,t);!1!==this.notifyPlugins("beforeDatasetDraw",i)&&(s&&Ie(e,s),t.controller.draw(),s&&ze(e),i.cancelable=!1,this.notifyPlugins("afterDatasetDraw",i))}isPointInArea(t){return Re(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,i,s){const n=Ki.modes[e];return"function"==typeof n?n(this,t,i,s):[]}getDatasetMeta(t){const e=this.data.datasets[t],i=this._metasets;let s=i.filter((t=>t&&t._dataset===e)).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=Ci(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const i=this.getDatasetMeta(t);return"boolean"==typeof i.hidden?!i.hidden:!e.hidden}setDatasetVisibility(t,e){this.getDatasetMeta(t).hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){const s=i?"show":"hide",n=this.getDatasetMeta(t),o=n.controller._resolveAnimations(void 0,s);k(e)?(n.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),o.update(n,{visible:i}),this.update((e=>e.datasetIndex===t?s:void 0)))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),bt.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,i,s),t[i]=s},s=(t,e,i)=>{t.offsetX=e,t.offsetY=i,this._eventHandler(t)};u(this.options.events,(t=>i(t,s)))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},s=(i,s)=>{t[i]&&(e.removeEventListener(this,i,s),delete t[i])},n=(t,e)=>{this.canvas&&this.resize(t,e)};let o;const a=()=>{s("attach",a),this.attached=!0,this.resize(),i("resize",n),i("detach",o)};o=()=>{this.attached=!1,s("resize",n),this._stop(),this._resize(0,0),i("attach",a)},e.isAttached(this.canvas)?a():o()}unbindEvents(){u(this._listeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._listeners={},u(this._responsiveListeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){const s=i?"set":"remove";let n,o,a,r;for("dataset"===e&&(n=this.getDatasetMeta(t[0].datasetIndex),n.controller["_"+s+"DatasetHoverStyle"]()),a=0,r=t.length;a{const i=this.getDatasetMeta(t);if(!i)throw new Error("No dataset found at index "+t);return{datasetIndex:t,element:i.data[e],index:e}}));!f(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}isPluginEnabled(t){return 1===this._plugins._cache.filter((e=>e.plugin.id===t)).length}_updateHoverStyles(t,e,i){const s=this.options.hover,n=(t,e)=>t.filter((t=>!e.some((e=>t.datasetIndex===e.datasetIndex&&t.index===e.index)))),o=n(e,t),a=i?t:n(t,e);o.length&&this.updateHoverStyle(o,s.mode,!1),a.length&&s.mode&&this.updateHoverStyle(a,s.mode,!0)}_eventHandler(t,e){const i={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},s=e=>(e.options.events||this.options.events).includes(t.native.type);if(!1===this.notifyPlugins("beforeEvent",i,s))return;const n=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,s),(n||i.changed)&&this.render(),this}_handleEvent(t,e,i){const{_active:s=[],options:n}=this,o=e,a=this._getActiveElements(t,s,i,o),r=D(t),l=function(t,e,i,s){return i&&"mouseout"!==t.type?s?e:t:null}(t,this._lastEvent,i,r);i&&(this._lastEvent=null,d(n.onHover,[t,a,this],this),r&&d(n.onClick,[t,a,this],this));const h=!f(a,s);return(h||e)&&(this._active=a,this._updateHoverStyles(a,s,e)),this._lastEvent=l,h}_getActiveElements(t,e,i,s){if("mouseout"===t.type)return[];if(!i)return e;const n=this.options.hover;return this.getElementsAtEventForMode(t,n.mode,n,s)}}function Ln(){return u(Tn.instances,(t=>t._plugins.invalidate()))}function En(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class Rn{static override(t){Object.assign(Rn.prototype,t)}options;constructor(t){this.options=t||{}}init(){}formats(){return En()}parse(){return En()}format(){return En()}add(){return En()}diff(){return En()}startOf(){return En()}endOf(){return En()}}var In={_date:Rn};function zn(t){const e=t.iScale,i=function(t,e){if(!t._cache.$bar){const i=t.getMatchingVisibleMetas(e);let s=[];for(let e=0,n=i.length;et-e)))}return t._cache.$bar}(e,t.type);let s,n,o,a,r=e._length;const l=()=>{32767!==o&&-32768!==o&&(k(a)&&(r=Math.min(r,Math.abs(o-a)||r)),a=o)};for(s=0,n=i.length;sMath.abs(r)&&(l=r,h=a),e[i.axis]=h,e._custom={barStart:l,barEnd:h,start:n,end:o,min:a,max:r}}(t,e,i,s):e[i.axis]=i.parse(t,s),e}function Vn(t,e,i,s){const n=t.iScale,o=t.vScale,a=n.getLabels(),r=n===o,l=[];let h,c,d,u;for(h=i,c=i+s;ht.x,i="left",s="right"):(e=t.base"spacing"!==t,_indexable:t=>"spacing"!==t&&!t.startsWith("borderDash")&&!t.startsWith("hoverBorderDash")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data,{labels:{pointStyle:i,textAlign:s,color:n,useBorderRadius:o,borderRadius:a}}=t.legend.options;return e.labels.length&&e.datasets.length?e.labels.map(((e,r)=>{const l=t.getDatasetMeta(0).controller.getStyle(r);return{text:e,fillStyle:l.backgroundColor,fontColor:n,hidden:!t.getDataVisibility(r),lineDash:l.borderDash,lineDashOffset:l.borderDashOffset,lineJoin:l.borderJoinStyle,lineWidth:l.borderWidth,strokeStyle:l.borderColor,textAlign:s,pointStyle:i,borderRadius:o&&(a||l.borderRadius),index:r}})):[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}}}};constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){const i=this.getDataset().data,s=this._cachedMeta;if(!1===this._parsing)s._parsed=i;else{let n,a,r=t=>+i[t];if(o(i[t])){const{key:t="value"}=this._parsing;r=e=>+M(i[e],t)}for(n=t,a=t+e;nJ(t,r,l,!0)?1:Math.max(e,e*i,s,s*i),g=(t,e,s)=>J(t,r,l,!0)?-1:Math.min(e,e*i,s,s*i),p=f(0,h,d),m=f(E,c,u),x=g(C,h,d),b=g(C+E,c,u);s=(p-x)/2,n=(m-b)/2,o=-(p+x)/2,a=-(m+b)/2}return{ratioX:s,ratioY:n,offsetX:o,offsetY:a}}(u,d,r),x=(i.width-o)/f,b=(i.height-o)/g,_=Math.max(Math.min(x,b)/2,0),y=c(this.options.radius,_),v=(y-Math.max(y*r,0))/this._getVisibleDatasetWeightTotal();this.offsetX=p*y,this.offsetY=m*y,s.total=this.calculateTotal(),this.outerRadius=y-v*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-v*l,0),this.updateElements(n,0,n.length,t)}_circumference(t,e){const i=this.options,s=this._cachedMeta,n=this._getCircumference();return e&&i.animation.animateRotate||!this.chart.getDataVisibility(t)||null===s._parsed[t]||s.data[t].hidden?0:this.calculateCircumference(s._parsed[t]*n/O)}updateElements(t,e,i,s){const n="reset"===s,o=this.chart,a=o.chartArea,r=o.options.animation,l=(a.left+a.right)/2,h=(a.top+a.bottom)/2,c=n&&r.animateScale,d=c?0:this.innerRadius,u=c?0:this.outerRadius,{sharedOptions:f,includeOptions:g}=this._getSharedOptions(e,s);let p,m=this._getRotation();for(p=0;p0&&!isNaN(t)?O*(Math.abs(t)/e):0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=ne(e._parsed[t],i.options.locale);return{label:s[t]||"",value:n}}getMaxBorderWidth(t){let e=0;const i=this.chart;let s,n,o,a,r;if(!t)for(s=0,n=i.data.datasets.length;s{const o=t.getDatasetMeta(0).controller.getStyle(n);return{text:e,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,fontColor:s,lineWidth:o.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(n),index:n}}))}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};constructor(t,e){super(t,e),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=ne(e._parsed[t].r,i.options.locale);return{label:s[t]||"",value:n}}parseObjectData(t,e,i,s){return ii.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}getMinMax(){const t=this._cachedMeta,e={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach(((t,i)=>{const s=this.getParsed(i).r;!isNaN(s)&&this.chart.getDataVisibility(i)&&(se.max&&(e.max=s))})),e}_updateRadius(){const t=this.chart,e=t.chartArea,i=t.options,s=Math.min(e.right-e.left,e.bottom-e.top),n=Math.max(s/2,0),o=(n-Math.max(i.cutoutPercentage?n/100*i.cutoutPercentage:1,0))/t.getVisibleDatasetCount();this.outerRadius=n-o*this.index,this.innerRadius=this.outerRadius-o}updateElements(t,e,i,s){const n="reset"===s,o=this.chart,a=o.options.animation,r=this._cachedMeta.rScale,l=r.xCenter,h=r.yCenter,c=r.getIndexAngle(0)-.5*C;let d,u=c;const f=360/this.countVisibleElements();for(d=0;d{!isNaN(this.getParsed(i).r)&&this.chart.getDataVisibility(i)&&e++})),e}_computeAngle(t,e,i){return this.chart.getDataVisibility(t)?$(this.resolveDataElementOptions(t,e).angle||i):0}}var Un=Object.freeze({__proto__:null,BarController:class extends js{static id="bar";static defaults={datasetElementType:!1,dataElementType:"bar",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:"number",properties:["x","y","base","width","height"]}}};static overrides={scales:{_index_:{type:"category",offset:!0,grid:{offset:!0}},_value_:{type:"linear",beginAtZero:!0}}};parsePrimitiveData(t,e,i,s){return Vn(t,e,i,s)}parseArrayData(t,e,i,s){return Vn(t,e,i,s)}parseObjectData(t,e,i,s){const{iScale:n,vScale:o}=t,{xAxisKey:a="x",yAxisKey:r="y"}=this._parsing,l="x"===n.axis?a:r,h="x"===o.axis?a:r,c=[];let d,u,f,g;for(d=i,u=i+s;dt.controller.options.grouped)),o=i.options.stacked,a=[],r=this._cachedMeta.controller.getParsed(e),l=r&&r[i.axis],h=t=>{const e=t._parsed.find((t=>t[i.axis]===l)),n=e&&e[t.vScale.axis];if(s(n)||isNaN(n))return!0};for(const i of n)if((void 0===e||!h(i))&&((!1===o||-1===a.indexOf(i.stack)||void 0===o&&void 0===i.stack)&&a.push(i.stack),i.index===t))break;return a.length||a.push(void 0),a}_getStackCount(t){return this._getStacks(void 0,t).length}_getAxisCount(){return this._getAxis().length}getFirstScaleIdForIndexAxis(){const t=this.chart.scales,e=this.chart.options.indexAxis;return Object.keys(t).filter((i=>t[i].axis===e)).shift()}_getAxis(){const t={},e=this.getFirstScaleIdForIndexAxis();for(const i of this.chart.data.datasets)t[l("x"===this.chart.options.indexAxis?i.xAxisID:i.yAxisID,e)]=!0;return Object.keys(t)}_getStackIndex(t,e,i){const s=this._getStacks(t,i),n=void 0!==e?s.indexOf(e):-1;return-1===n?s.length-1:n}_getRuler(){const t=this.options,e=this._cachedMeta,i=e.iScale,s=[];let n,o;for(n=0,o=e.data.length;n=i?1:-1)}(u,e,r)*a,f===r&&(x-=u/2);const t=e.getPixelForDecimal(0),s=e.getPixelForDecimal(1),o=Math.min(t,s),h=Math.max(t,s);x=Math.max(Math.min(x,h),o),d=x+u,i&&!c&&(l._stacks[e.axis]._visualValues[n]=e.getValueForPixel(d)-e.getValueForPixel(x))}if(x===e.getPixelForValue(r)){const t=F(u)*e.getLineWidthForValue(r)/2;x+=t,u-=t}return{size:u,base:x,head:d,center:d+u/2}}_calculateBarIndexPixels(t,e){const i=e.scale,n=this.options,o=n.skipNull,a=l(n.maxBarThickness,1/0);let r,h;const c=this._getAxisCount();if(e.grouped){const i=o?this._getStackCount(t):e.stackCount,d="flex"===n.barThickness?function(t,e,i,s){const n=e.pixels,o=n[t];let a=t>0?n[t-1]:null,r=t=0;--i)e=Math.max(e,t[i].size(this.resolveDataElementOptions(i))/2);return e>0&&e}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart.data.labels||[],{xScale:s,yScale:n}=e,o=this.getParsed(t),a=s.getLabelForValue(o.x),r=n.getLabelForValue(o.y),l=o._custom;return{label:i[t]||"",value:"("+a+", "+r+(l?", "+l:"")+")"}}update(t){const e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,i,s){const n="reset"===s,{iScale:o,vScale:a}=this._cachedMeta,{sharedOptions:r,includeOptions:l}=this._getSharedOptions(e,s),h=o.axis,c=a.axis;for(let d=e;d0&&this.getParsed(e-1);for(let i=0;i<_;++i){const g=t[i],_=x?g:{};if(i=b){_.skip=!0;continue}const v=this.getParsed(i),M=s(v[f]),w=_[u]=a.getPixelForValue(v[u],i),k=_[f]=o||M?r.getBasePixel():r.getPixelForValue(l?this.applyStack(r,v,l):v[f],i);_.skip=isNaN(w)||isNaN(k)||M,_.stop=i>0&&Math.abs(v[u]-y[u])>m,p&&(_.parsed=v,_.raw=h.data[i]),d&&(_.options=c||this.resolveDataElementOptions(i,g.active?"active":n)),x||this.updateElement(g,i,_,n),y=v}}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,s=t.data||[];if(!s.length)return i;const n=s[0].size(this.resolveDataElementOptions(0)),o=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,n,o)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}},PieController:class extends $n{static id="pie";static defaults={cutout:0,rotation:0,circumference:360,radius:"100%"}},PolarAreaController:Yn,RadarController:class extends js{static id="radar";static defaults={datasetElementType:"line",dataElementType:"point",indexAxis:"r",showLine:!0,elements:{line:{fill:"start"}}};static overrides={aspectRatio:1,scales:{r:{type:"radialLinear"}}};getLabelAndValue(t){const e=this._cachedMeta.vScale,i=this.getParsed(t);return{label:e.getLabels()[t],value:""+e.getLabelForValue(i[e.axis])}}parseObjectData(t,e,i,s){return ii.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta,i=e.dataset,s=e.data||[],n=e.iScale.getLabels();if(i.points=s,"resize"!==t){const e=this.resolveDatasetElementOptions(t);this.options.showLine||(e.borderWidth=0);const o={_loop:!0,_fullLoop:n.length===s.length,options:e};this.updateElement(i,void 0,o,t)}this.updateElements(s,0,s.length,t)}updateElements(t,e,i,s){const n=this._cachedMeta.rScale,o="reset"===s;for(let a=e;a0&&this.getParsed(e-1);for(let c=e;c0&&Math.abs(i[f]-_[f])>x,m&&(p.parsed=i,p.raw=h.data[c]),u&&(p.options=d||this.resolveDataElementOptions(c,e.active?"active":n)),b||this.updateElement(e,c,p,n),_=i}this.updateSharedOptions(d,n,c)}getMaxOverflow(){const t=this._cachedMeta,e=t.data||[];if(!this.options.showLine){let t=0;for(let i=e.length-1;i>=0;--i)t=Math.max(t,e[i].size(this.resolveDataElementOptions(i))/2);return t>0&&t}const i=t.dataset,s=i.options&&i.options.borderWidth||0;if(!e.length)return s;const n=e[0].size(this.resolveDataElementOptions(0)),o=e[e.length-1].size(this.resolveDataElementOptions(e.length-1));return Math.max(s,n,o)/2}}});function Xn(t,e,i,s){const n=vi(t.options.borderRadius,["outerStart","outerEnd","innerStart","innerEnd"]);const o=(i-e)/2,a=Math.min(o,s*e/2),r=t=>{const e=(i-Math.min(o,t))*s/2;return Z(t,0,Math.min(o,e))};return{outerStart:r(n.outerStart),outerEnd:r(n.outerEnd),innerStart:Z(n.innerStart,0,a),innerEnd:Z(n.innerEnd,0,a)}}function qn(t,e,i,s){return{x:i+t*Math.cos(e),y:s+t*Math.sin(e)}}function Kn(t,e,i,s,n,o){const{x:a,y:r,startAngle:l,pixelMargin:h,innerRadius:c}=e,d=Math.max(e.outerRadius+s+i-h,0),u=c>0?c+s+i+h:0;let f=0;const g=n-l;if(s){const t=((c>0?c-s:0)+(d>0?d-s:0))/2;f=(g-(0!==t?g*t/(t+s):g))/2}const p=(g-Math.max(.001,g*d-i/C)/d)/2,m=l+p+f,x=n-p-f,{outerStart:b,outerEnd:_,innerStart:y,innerEnd:v}=Xn(e,u,d,x-m),M=d-b,w=d-_,k=m+b/M,S=x-_/w,P=u+y,D=u+v,O=m+y/P,A=x-v/D;if(t.beginPath(),o){const e=(k+S)/2;if(t.arc(a,r,d,k,e),t.arc(a,r,d,e,S),_>0){const e=qn(w,S,a,r);t.arc(e.x,e.y,_,S,x+E)}const i=qn(D,x,a,r);if(t.lineTo(i.x,i.y),v>0){const e=qn(D,A,a,r);t.arc(e.x,e.y,v,x+E,A+Math.PI)}const s=(x-v/u+(m+y/u))/2;if(t.arc(a,r,u,x-v/u,s,!0),t.arc(a,r,u,s,m+y/u,!0),y>0){const e=qn(P,O,a,r);t.arc(e.x,e.y,y,O+Math.PI,m-E)}const n=qn(M,m,a,r);if(t.lineTo(n.x,n.y),b>0){const e=qn(M,k,a,r);t.arc(e.x,e.y,b,m-E,k)}}else{t.moveTo(a,r);const e=Math.cos(k)*d+a,i=Math.sin(k)*d+r;t.lineTo(e,i);const s=Math.cos(S)*d+a,n=Math.sin(S)*d+r;t.lineTo(s,n)}t.closePath()}function Gn(t,e,i,s,n){const{fullCircles:o,startAngle:a,circumference:r,options:l}=e,{borderWidth:h,borderJoinStyle:c,borderDash:d,borderDashOffset:u,borderRadius:f}=l,g="inner"===l.borderAlign;if(!h)return;t.setLineDash(d||[]),t.lineDashOffset=u,g?(t.lineWidth=2*h,t.lineJoin=c||"round"):(t.lineWidth=h,t.lineJoin=c||"bevel");let p=e.endAngle;if(o){Kn(t,e,i,s,p,n);for(let e=0;en?(h=n/l,t.arc(o,a,l,i+h,s-h,!0)):t.arc(o,a,n,i+E,s-E),t.closePath(),t.clip()}(t,e,p),l.selfJoin&&p-a>=C&&0===f&&"miter"!==c&&function(t,e,i){const{startAngle:s,x:n,y:o,outerRadius:a,innerRadius:r,options:l}=e,{borderWidth:h,borderJoinStyle:c}=l,d=Math.min(h/a,G(s-i));if(t.beginPath(),t.arc(n,o,a-h/2,s+d/2,i-d/2),r>0){const e=Math.min(h/r,G(s-i));t.arc(n,o,r+h/2,i-e/2,s+e/2,!0)}else{const e=Math.min(h/2,a*G(s-i));if("round"===c)t.arc(n,o,e,i-C/2,s+C/2,!0);else if("bevel"===c){const a=2*e*e,r=-a*Math.cos(i+C/2)+n,l=-a*Math.sin(i+C/2)+o,h=a*Math.cos(s+C/2)+n,c=a*Math.sin(s+C/2)+o;t.lineTo(r,l),t.lineTo(h,c)}}t.closePath(),t.moveTo(0,0),t.rect(0,0,t.canvas.width,t.canvas.height),t.clip("evenodd")}(t,e,p),o||(Kn(t,e,i,s,p,n),t.stroke())}function Jn(t,e,i=e){t.lineCap=l(i.borderCapStyle,e.borderCapStyle),t.setLineDash(l(i.borderDash,e.borderDash)),t.lineDashOffset=l(i.borderDashOffset,e.borderDashOffset),t.lineJoin=l(i.borderJoinStyle,e.borderJoinStyle),t.lineWidth=l(i.borderWidth,e.borderWidth),t.strokeStyle=l(i.borderColor,e.borderColor)}function Zn(t,e,i){t.lineTo(i.x,i.y)}function Qn(t,e,i={}){const s=t.length,{start:n=0,end:o=s-1}=i,{start:a,end:r}=e,l=Math.max(n,a),h=Math.min(o,r),c=nr&&o>r;return{count:s,start:l,loop:e.loop,ilen:h(a+(h?r-t:t))%o,_=()=>{f!==g&&(t.lineTo(m,g),t.lineTo(m,f),t.lineTo(m,p))};for(l&&(d=n[b(0)],t.moveTo(d.x,d.y)),c=0;c<=r;++c){if(d=n[b(c)],d.skip)continue;const e=d.x,i=d.y,s=0|e;s===u?(ig&&(g=i),m=(x*m+e)/++x):(_(),t.lineTo(e,i),u=s,x=0,f=g=i),p=i}_()}function io(t){const e=t.options,i=e.borderDash&&e.borderDash.length;return!(t._decimated||t._loop||e.tension||"monotone"===e.cubicInterpolationMode||e.stepped||i)?eo:to}const so="function"==typeof Path2D;function no(t,e,i,s){so&&!e.options.segment?function(t,e,i,s){let n=e._path;n||(n=e._path=new Path2D,e.path(n,i,s)&&n.closePath()),Jn(t,e.options),t.stroke(n)}(t,e,i,s):function(t,e,i,s){const{segments:n,options:o}=e,a=io(e);for(const r of n)Jn(t,o,r.style),t.beginPath(),a(t,e,r,{start:i,end:i+s-1})&&t.closePath(),t.stroke()}(t,e,i,s)}class oo extends $s{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:t=>"borderDash"!==t&&"fill"!==t};constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const i=this.options;if((i.tension||"monotone"===i.cubicInterpolationMode)&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;hi(this._points,i,t,s,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=zi(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){const i=this.options,s=t[e],n=this.points,o=Ii(this,{property:e,start:s,end:s});if(!o.length)return;const a=[],r=function(t){return t.stepped?pi:t.tension||"monotone"===t.cubicInterpolationMode?mi:gi}(i);let l,h;for(l=0,h=o.length;l"borderDash"!==t};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(t){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.getProps(["x","y"],i),{angle:n,distance:o}=X(s,{x:t,y:e}),{startAngle:a,endAngle:r,innerRadius:h,outerRadius:c,circumference:d}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],i),u=(this.options.spacing+this.options.borderWidth)/2,f=l(d,r-a),g=J(n,a,r)&&a!==r,p=f>=O||g,m=tt(o,h+u,c+u);return p&&m}getCenterPoint(t){const{x:e,y:i,startAngle:s,endAngle:n,innerRadius:o,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],t),{offset:r,spacing:l}=this.options,h=(s+n)/2,c=(o+a+l+r)/2;return{x:e+Math.cos(h)*c,y:i+Math.sin(h)*c}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){const{options:e,circumference:i}=this,s=(e.offset||0)/4,n=(e.spacing||0)/2,o=e.circular;if(this.pixelMargin="inner"===e.borderAlign?.33:0,this.fullCircles=i>O?Math.floor(i/O):0,0===i||this.innerRadius<0||this.outerRadius<0)return;t.save();const a=(this.startAngle+this.endAngle)/2;t.translate(Math.cos(a)*s,Math.sin(a)*s);const r=s*(1-Math.sin(Math.min(C,i||0)));t.fillStyle=e.backgroundColor,t.strokeStyle=e.borderColor,function(t,e,i,s,n){const{fullCircles:o,startAngle:a,circumference:r}=e;let l=e.endAngle;if(o){Kn(t,e,i,s,l,n);for(let e=0;e("string"==typeof e?(i=t.push(e)-1,s.unshift({index:i,label:e})):isNaN(e)&&(i=null),i))(t,e,i,s);return n!==t.lastIndexOf(e)?i:n}function mo(t){const e=this.getLabels();return t>=0&&ts=e?s:t,a=t=>n=i?n:t;if(t){const t=F(s),e=F(n);t<0&&e<0?a(0):t>0&&e>0&&o(0)}if(s===n){let e=0===n?1:Math.abs(.05*n);a(n+e),t||o(s-e)}this.min=s,this.max=n}getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:i,stepSize:s}=t;return s?(e=Math.ceil(this.max/s)-Math.floor(this.min/s)+1,e>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${e} ticks. Limiting to 1000.`),e=1e3)):(e=this.computeTickLimit(),i=i||11),i&&(e=Math.min(i,e)),e}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let i=this.getTickLimit();i=Math.max(2,i);const n=function(t,e){const i=[],{bounds:n,step:o,min:a,max:r,precision:l,count:h,maxTicks:c,maxDigits:d,includeBounds:u}=t,f=o||1,g=c-1,{min:p,max:m}=e,x=!s(a),b=!s(r),_=!s(h),y=(m-p)/(d+1);let v,M,w,k,S=B((m-p)/g/f)*f;if(S<1e-14&&!x&&!b)return[{value:p},{value:m}];k=Math.ceil(m/S)-Math.floor(p/S),k>g&&(S=B(k*S/g/f)*f),s(l)||(v=Math.pow(10,l),S=Math.ceil(S*v)/v),"ticks"===n?(M=Math.floor(p/S)*S,w=Math.ceil(m/S)*S):(M=p,w=m),x&&b&&o&&H((r-a)/o,S/1e3)?(k=Math.round(Math.min((r-a)/S,c)),S=(r-a)/k,M=a,w=r):_?(M=x?a:M,w=b?r:w,k=h-1,S=(w-M)/k):(k=(w-M)/S,k=V(k,Math.round(k),S/1e3)?Math.round(k):Math.ceil(k));const P=Math.max(U(S),U(M));v=Math.pow(10,s(l)?P:l),M=Math.round(M*v)/v,w=Math.round(w*v)/v;let D=0;for(x&&(u&&M!==a?(i.push({value:a}),Mr)break;i.push({value:t})}return b&&u&&w!==r?i.length&&V(i[i.length-1].value,r,xo(r,y,t))?i[i.length-1].value=r:i.push({value:r}):b&&w!==r||i.push({value:w}),i}({maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return"ticks"===t.bounds&&j(n,this,"value"),t.reverse?(n.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),n}configure(){const t=this.ticks;let e=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){const s=(i-e)/Math.max(t.length-1,1)/2;e-=s,i+=s}this._startValue=e,this._endValue=i,this._valueRange=i-e}getLabelForValue(t){return ne(t,this.chart.options.locale,this.options.ticks.format)}}class _o extends bo{static id="linear";static defaults={ticks:{callback:ae.formatters.numeric}};determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=a(t)?t:0,this.max=a(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.height,i=$(this.options.ticks.minRotation),s=(t?Math.sin(i):Math.cos(i))||.001,n=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,n.lineHeight/s))}getPixelForValue(t){return null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}const yo=t=>Math.floor(z(t)),vo=(t,e)=>Math.pow(10,yo(t)+e);function Mo(t){return 1===t/Math.pow(10,yo(t))}function wo(t,e,i){const s=Math.pow(10,i),n=Math.floor(t/s);return Math.ceil(e/s)-n}function ko(t,{min:e,max:i}){e=r(t.min,e);const s=[],n=yo(e);let o=function(t,e){let i=yo(e-t);for(;wo(t,e,i)>10;)i++;for(;wo(t,e,i)<10;)i--;return Math.min(i,yo(t))}(e,i),a=o<0?Math.pow(10,Math.abs(o)):1;const l=Math.pow(10,o),h=n>o?Math.pow(10,n):0,c=Math.round((e-h)*a)/a,d=Math.floor((e-h)/l/10)*l*10;let u=Math.floor((c-d)/Math.pow(10,o)),f=r(t.min,Math.round((h+d+u*Math.pow(10,o))*a)/a);for(;f=10?u=u<15?15:20:u++,u>=20&&(o++,u=2,a=o>=0?1:a),f=Math.round((h+d+u*Math.pow(10,o))*a)/a;const g=r(t.max,f);return s.push({value:g,major:Mo(g),significand:u}),s}class So extends tn{static id="logarithmic";static defaults={ticks:{callback:ae.formatters.logarithmic,major:{enabled:!0}}};constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,e){const i=bo.prototype.parse.apply(this,[t,e]);if(0!==i)return a(i)&&i>0?i:null;this._zero=!0}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=a(t)?Math.max(0,t):null,this.max=a(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!a(this._userMin)&&(this.min=t===vo(this.min,0)?vo(this.min,-1):vo(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let i=this.min,s=this.max;const n=e=>i=t?i:e,o=t=>s=e?s:t;i===s&&(i<=0?(n(1),o(10)):(n(vo(i,-1)),o(vo(s,1)))),i<=0&&n(vo(s,-1)),s<=0&&o(vo(i,1)),this.min=i,this.max=s}buildTicks(){const t=this.options,e=ko({min:this._userMin,max:this._userMax},this);return"ticks"===t.bounds&&j(e,this,"value"),t.reverse?(e.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),e}getLabelForValue(t){return void 0===t?"0":ne(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=z(t),this._valueRange=z(this.max)-z(t)}getPixelForValue(t){return void 0!==t&&0!==t||(t=this.min),null===t||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(z(t)-this._startValue)/this._valueRange)}getValueForPixel(t){const e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}}function Po(t){const e=t.ticks;if(e.display&&t.display){const t=ki(e.backdropPadding);return l(e.font&&e.font.size,ue.font.size)+t.height}return 0}function Do(t,e,i,s,n){return t===s||t===n?{start:e-i/2,end:e+i/2}:tn?{start:e-i,end:e}:{start:e,end:e+i}}function Co(t){const e={l:t.left+t._padding.left,r:t.right-t._padding.right,t:t.top+t._padding.top,b:t.bottom-t._padding.bottom},i=Object.assign({},e),s=[],o=[],a=t._pointLabels.length,r=t.options.pointLabels,l=r.centerPointLabels?C/a:0;for(let u=0;ue.r&&(r=(s.end-e.r)/o,t.r=Math.max(t.r,e.r+r)),n.starte.b&&(l=(n.end-e.b)/a,t.b=Math.max(t.b,e.b+l))}function Ao(t,e,i){const s=t.drawingArea,{extra:n,additionalAngle:o,padding:a,size:r}=i,l=t.getPointPosition(e,s+n+a,o),h=Math.round(Y(G(l.angle+E))),c=function(t,e,i){90===i||270===i?t-=e/2:(i>270||i<90)&&(t-=e);return t}(l.y,r.h,h),d=function(t){if(0===t||180===t)return"center";if(t<180)return"left";return"right"}(h),u=function(t,e,i){"right"===i?t-=e:"center"===i&&(t-=e/2);return t}(l.x,r.w,d);return{visible:!0,x:l.x,y:c,textAlign:d,left:u,top:c,right:u+r.w,bottom:c+r.h}}function To(t,e){if(!e)return!0;const{left:i,top:s,right:n,bottom:o}=t;return!(Re({x:i,y:s},e)||Re({x:i,y:o},e)||Re({x:n,y:s},e)||Re({x:n,y:o},e))}function Lo(t,e,i){const{left:n,top:o,right:a,bottom:r}=i,{backdropColor:l}=e;if(!s(l)){const i=wi(e.borderRadius),s=ki(e.backdropPadding);t.fillStyle=l;const h=n-s.left,c=o-s.top,d=a-n+s.width,u=r-o+s.height;Object.values(i).some((t=>0!==t))?(t.beginPath(),He(t,{x:h,y:c,w:d,h:u,radius:i}),t.fill()):t.fillRect(h,c,d,u)}}function Eo(t,e,i,s){const{ctx:n}=t;if(i)n.arc(t.xCenter,t.yCenter,e,0,O);else{let i=t.getPointPosition(0,e);n.moveTo(i.x,i.y);for(let o=1;ot,padding:5,centerPointLabels:!1}};static defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"};static descriptors={angleLines:{_fallback:"grid"}};constructor(t){super(t),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){const t=this._padding=ki(Po(this.options)/2),e=this.width=this.maxWidth-t.width,i=this.height=this.maxHeight-t.height;this.xCenter=Math.floor(this.left+e/2+t.left),this.yCenter=Math.floor(this.top+i/2+t.top),this.drawingArea=Math.floor(Math.min(e,i)/2)}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!1);this.min=a(t)&&!isNaN(t)?t:0,this.max=a(e)&&!isNaN(e)?e:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/Po(this.options))}generateTickLabels(t){bo.prototype.generateTickLabels.call(this,t),this._pointLabels=this.getLabels().map(((t,e)=>{const i=d(this.options.pointLabels.callback,[t,e],this);return i||0===i?i:""})).filter(((t,e)=>this.chart.getDataVisibility(e)))}fit(){const t=this.options;t.display&&t.pointLabels.display?Co(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,i,s){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((i-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,i,s))}getIndexAngle(t){return G(t*(O/(this._pointLabels.length||1))+$(this.options.startAngle||0))}getDistanceFromCenterForValue(t){if(s(t))return NaN;const e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(s(t))return NaN;const e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&t=0;n--){const e=t._pointLabelItems[n];if(!e.visible)continue;const o=s.setContext(t.getPointLabelContext(n));Lo(i,o,e);const a=Si(o.font),{x:r,y:l,textAlign:h}=e;Ne(i,t._pointLabels[n],r,l+a.lineHeight/2,a,{color:o.color,textAlign:h,textBaseline:"middle"})}}(this,o),s.display&&this.ticks.forEach(((t,e)=>{if(0!==e||0===e&&this.min<0){r=this.getDistanceFromCenterForValue(t.value);const i=this.getContext(e),a=s.setContext(i),l=n.setContext(i);!function(t,e,i,s,n){const o=t.ctx,a=e.circular,{color:r,lineWidth:l}=e;!a&&!s||!r||!l||i<0||(o.save(),o.strokeStyle=r,o.lineWidth=l,o.setLineDash(n.dash||[]),o.lineDashOffset=n.dashOffset,o.beginPath(),Eo(t,i,a,s),o.closePath(),o.stroke(),o.restore())}(this,a,r,o,l)}})),i.display){for(t.save(),a=o-1;a>=0;a--){const s=i.setContext(this.getPointLabelContext(a)),{color:n,lineWidth:o}=s;o&&n&&(t.lineWidth=o,t.strokeStyle=n,t.setLineDash(s.borderDash),t.lineDashOffset=s.borderDashOffset,r=this.getDistanceFromCenterForValue(e.reverse?this.min:this.max),l=this.getPointPosition(a,r),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(l.x,l.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,e=this.options,i=e.ticks;if(!i.display)return;const s=this.getIndexAngle(0);let n,o;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach(((s,a)=>{if(0===a&&this.min>=0&&!e.reverse)return;const r=i.setContext(this.getContext(a)),l=Si(r.font);if(n=this.getDistanceFromCenterForValue(this.ticks[a].value),r.showLabelBackdrop){t.font=l.string,o=t.measureText(s.label).width,t.fillStyle=r.backdropColor;const e=ki(r.backdropPadding);t.fillRect(-o/2-e.left,-n-l.size/2-e.top,o+e.width,l.size+e.height)}Ne(t,s.label,0,-n,l,{color:r.color,strokeColor:r.textStrokeColor,strokeWidth:r.textStrokeWidth})})),t.restore()}drawTitle(){}}const Io={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},zo=Object.keys(Io);function Fo(t,e){return t-e}function Vo(t,e){if(s(e))return null;const i=t._adapter,{parser:n,round:o,isoWeekday:r}=t._parseOpts;let l=e;return"function"==typeof n&&(l=n(l)),a(l)||(l="string"==typeof n?i.parse(l,n):i.parse(l)),null===l?null:(o&&(l="week"!==o||!N(r)&&!0!==r?i.startOf(l,o):i.startOf(l,"isoWeek",r)),+l)}function Bo(t,e,i,s){const n=zo.length;for(let o=zo.indexOf(t);o=e?i[s]:i[n]]=!0}}else t[e]=!0}function No(t,e,i){const s=[],n={},o=e.length;let a,r;for(a=0;a=0&&(e[l].major=!0);return e}(t,s,n,i):s}class Ho extends tn{static id="time";static defaults={bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}};constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,e={}){const i=t.time||(t.time={}),s=this._adapter=new In._date(t.adapters.date);s.init(e),b(i.displayFormats,s.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(t),this._normalized=e.normalized}parse(t,e){return void 0===t?null:Vo(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,e=this._adapter,i=t.time.unit||"day";let{min:s,max:n,minDefined:o,maxDefined:r}=this.getUserBounds();function l(t){o||isNaN(t.min)||(s=Math.min(s,t.min)),r||isNaN(t.max)||(n=Math.max(n,t.max))}o&&r||(l(this._getLabelBounds()),"ticks"===t.bounds&&"labels"===t.ticks.source||l(this.getMinMax(!1))),s=a(s)&&!isNaN(s)?s:+e.startOf(Date.now(),i),n=a(n)&&!isNaN(n)?n:+e.endOf(Date.now(),i)+1,this.min=Math.min(s,n-1),this.max=Math.max(s+1,n)}_getLabelBounds(){const t=this.getLabelTimestamps();let e=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return t.length&&(e=t[0],i=t[t.length-1]),{min:e,max:i}}buildTicks(){const t=this.options,e=t.time,i=t.ticks,s="labels"===i.source?this.getLabelTimestamps():this._generate();"ticks"===t.bounds&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const n=this.min,o=nt(s,n,this.max);return this._unit=e.unit||(i.autoSkip?Bo(e.minUnit,this.min,this.max,this._getLabelCapacity(n)):function(t,e,i,s,n){for(let o=zo.length-1;o>=zo.indexOf(i);o--){const i=zo[o];if(Io[i].common&&t._adapter.diff(n,s,i)>=e-1)return i}return zo[i?zo.indexOf(i):0]}(this,o.length,e.minUnit,this.min,this.max)),this._majorUnit=i.major.enabled&&"year"!==this._unit?function(t){for(let e=zo.indexOf(t)+1,i=zo.length;e+t.value)))}initOffsets(t=[]){let e,i,s=0,n=0;this.options.offset&&t.length&&(e=this.getDecimalForValue(t[0]),s=1===t.length?1-e:(this.getDecimalForValue(t[1])-e)/2,i=this.getDecimalForValue(t[t.length-1]),n=1===t.length?i:(i-this.getDecimalForValue(t[t.length-2]))/2);const o=t.length<3?.5:.25;s=Z(s,0,o),n=Z(n,0,o),this._offsets={start:s,end:n,factor:1/(s+1+n)}}_generate(){const t=this._adapter,e=this.min,i=this.max,s=this.options,n=s.time,o=n.unit||Bo(n.minUnit,e,i,this._getLabelCapacity(e)),a=l(s.ticks.stepSize,1),r="week"===o&&n.isoWeekday,h=N(r)||!0===r,c={};let d,u,f=e;if(h&&(f=+t.startOf(f,"isoWeek",r)),f=+t.startOf(f,h?"day":o),t.diff(i,e,o)>1e5*a)throw new Error(e+" and "+i+" are too far apart with stepSize of "+a+" "+o);const g="data"===s.ticks.source&&this.getDataTimestamps();for(d=f,u=0;d+t))}getLabelForValue(t){const e=this._adapter,i=this.options.time;return i.tooltipFormat?e.format(t,i.tooltipFormat):e.format(t,i.displayFormats.datetime)}format(t,e){const i=this.options.time.displayFormats,s=this._unit,n=e||i[s];return this._adapter.format(t,n)}_tickFormatFunction(t,e,i,s){const n=this.options,o=n.ticks.callback;if(o)return d(o,[t,e,i],this);const a=n.time.displayFormats,r=this._unit,l=this._majorUnit,h=r&&a[r],c=l&&a[l],u=i[e],f=l&&c&&u&&u.major;return this._adapter.format(t,s||(f?c:h))}generateTickLabels(t){let e,i,s;for(e=0,i=t.length;e0?a:1}getDataTimestamps(){let t,e,i=this._cache.data||[];if(i.length)return i;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(t=0,e=s.length;t=t[r].pos&&e<=t[l].pos&&({lo:r,hi:l}=it(t,"pos",e)),({pos:s,time:o}=t[r]),({pos:n,time:a}=t[l])):(e>=t[r].time&&e<=t[l].time&&({lo:r,hi:l}=it(t,"time",e)),({time:s,pos:o}=t[r]),({time:n,pos:a}=t[l]));const h=n-s;return h?o+(a-o)*(e-s)/h:o}var $o=Object.freeze({__proto__:null,CategoryScale:class extends tn{static id="category";static defaults={ticks:{callback:mo}};constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const e=this._addedLabels;if(e.length){const t=this.getLabels();for(const{index:i,label:s}of e)t[i]===s&&t.splice(i,1);this._addedLabels=[]}super.init(t)}parse(t,e){if(s(t))return null;const i=this.getLabels();return((t,e)=>null===t?null:Z(Math.round(t),0,e))(e=isFinite(e)&&i[e]===t?e:po(i,t,l(e,t),this._addedLabels),i.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let{min:i,max:s}=this.getMinMax(!0);"ticks"===this.options.bounds&&(t||(i=0),e||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){const t=this.min,e=this.max,i=this.options.offset,s=[];let n=this.getLabels();n=0===t&&e===n.length-1?n:n.slice(t,e+1),this._valueRange=Math.max(n.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let i=t;i<=e;i++)s.push({value:i});return s}getLabelForValue(t){return mo.call(this,t)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return"number"!=typeof t&&(t=this.parse(t)),null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}},LinearScale:_o,LogarithmicScale:So,RadialLinearScale:Ro,TimeScale:Ho,TimeSeriesScale:class extends Ho{static id="timeseries";static defaults=Ho.defaults;constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=jo(e,this.min),this._tableRange=jo(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:e,max:i}=this,s=[],n=[];let o,a,r,l,h;for(o=0,a=t.length;o=e&&l<=i&&s.push(l);if(s.length<2)return[{time:e,pos:0},{time:i,pos:1}];for(o=0,a=s.length;ot-e))}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const e=this.getDataTimestamps(),i=this.getLabelTimestamps();return t=e.length&&i.length?this.normalize(e.concat(i)):e.length?e:i,t=this._cache.all=t,t}getDecimalForValue(t){return(jo(this._table,t)-this._minPos)/this._tableRange}getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)/e.factor-e.end;return jo(this._table,i*this._tableRange+this._minPos,!0)}}});const Yo=["rgb(54, 162, 235)","rgb(255, 99, 132)","rgb(255, 159, 64)","rgb(255, 205, 86)","rgb(75, 192, 192)","rgb(153, 102, 255)","rgb(201, 203, 207)"],Uo=Yo.map((t=>t.replace("rgb(","rgba(").replace(")",", 0.5)")));function Xo(t){return Yo[t%Yo.length]}function qo(t){return Uo[t%Uo.length]}function Ko(t){let e=0;return(i,s)=>{const n=t.getDatasetMeta(s).controller;n instanceof $n?e=function(t,e){return t.backgroundColor=t.data.map((()=>Xo(e++))),e}(i,e):n instanceof Yn?e=function(t,e){return t.backgroundColor=t.data.map((()=>qo(e++))),e}(i,e):n&&(e=function(t,e){return t.borderColor=Xo(e),t.backgroundColor=qo(e),++e}(i,e))}}function Go(t){let e;for(e in t)if(t[e].borderColor||t[e].backgroundColor)return!0;return!1}var Jo={id:"colors",defaults:{enabled:!0,forceOverride:!1},beforeLayout(t,e,i){if(!i.enabled)return;const{data:{datasets:s},options:n}=t.config,{elements:o}=n,a=Go(s)||(r=n)&&(r.borderColor||r.backgroundColor)||o&&Go(o)||"rgba(0,0,0,0.1)"!==ue.borderColor||"rgba(0,0,0,0.1)"!==ue.backgroundColor;var r;if(!i.forceOverride&&a)return;const l=Ko(t);s.forEach(l)}};function Zo(t){if(t._decimated){const e=t._data;delete t._decimated,delete t._data,Object.defineProperty(t,"data",{configurable:!0,enumerable:!0,writable:!0,value:e})}}function Qo(t){t.data.datasets.forEach((t=>{Zo(t)}))}var ta={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(t,e,i)=>{if(!i.enabled)return void Qo(t);const n=t.width;t.data.datasets.forEach(((e,o)=>{const{_data:a,indexAxis:r}=e,l=t.getDatasetMeta(o),h=a||e.data;if("y"===Pi([r,t.options.indexAxis]))return;if(!l.controller.supportsDecimation)return;const c=t.scales[l.xAxisID];if("linear"!==c.type&&"time"!==c.type)return;if(t.options.parsing)return;let{start:d,count:u}=function(t,e){const i=e.length;let s,n=0;const{iScale:o}=t,{min:a,max:r,minDefined:l,maxDefined:h}=o.getUserBounds();return l&&(n=Z(it(e,o.axis,a).lo,0,i-1)),s=h?Z(it(e,o.axis,r).hi+1,n,i)-n:i-n,{start:n,count:s}}(l,h);if(u<=(i.threshold||4*n))return void Zo(e);let f;switch(s(a)&&(e._data=h,delete e.data,Object.defineProperty(e,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(t){this._data=t}})),i.algorithm){case"lttb":f=function(t,e,i,s,n){const o=n.samples||s;if(o>=i)return t.slice(e,e+i);const a=[],r=(i-2)/(o-2);let l=0;const h=e+i-1;let c,d,u,f,g,p=e;for(a[l++]=t[p],c=0;cu&&(u=f,d=t[s],g=s);a[l++]=d,p=g}return a[l++]=t[h],a}(h,d,u,n,i);break;case"min-max":f=function(t,e,i,n){let o,a,r,l,h,c,d,u,f,g,p=0,m=0;const x=[],b=e+i-1,_=t[e].x,y=t[b].x-_;for(o=e;og&&(g=l,d=o),p=(m*p+a.x)/++m;else{const i=o-1;if(!s(c)&&!s(d)){const e=Math.min(c,d),s=Math.max(c,d);e!==u&&e!==i&&x.push({...t[e],x:p}),s!==u&&s!==i&&x.push({...t[s],x:p})}o>0&&i!==u&&x.push(t[i]),x.push(a),h=e,m=0,f=g=l,c=d=u=o}}return x}(h,d,u,n);break;default:throw new Error(`Unsupported decimation algorithm '${i.algorithm}'`)}e._decimated=f}))},destroy(t){Qo(t)}};function ea(t,e,i,s){if(s)return;let n=e[t],o=i[t];return"angle"===t&&(n=G(n),o=G(o)),{property:t,start:n,end:o}}function ia(t,e,i){for(;e>t;e--){const t=i[e];if(!isNaN(t.x)&&!isNaN(t.y))break}return e}function sa(t,e,i,s){return t&&e?s(t[i],e[i]):t?t[i]:e?e[i]:0}function na(t,e){let i=[],s=!1;return n(t)?(s=!0,i=t):i=function(t,e){const{x:i=null,y:s=null}=t||{},n=e.points,o=[];return e.segments.forEach((({start:t,end:e})=>{e=ia(t,e,n);const a=n[t],r=n[e];null!==s?(o.push({x:a.x,y:s}),o.push({x:r.x,y:s})):null!==i&&(o.push({x:i,y:a.y}),o.push({x:i,y:r.y}))})),o}(t,e),i.length?new oo({points:i,options:{tension:0},_loop:s,_fullLoop:s}):null}function oa(t){return t&&!1!==t.fill}function aa(t,e,i){let s=t[e].fill;const n=[e];let o;if(!i)return s;for(;!1!==s&&-1===n.indexOf(s);){if(!a(s))return s;if(o=t[s],!o)return!1;if(o.visible)return s;n.push(s),s=o.fill}return!1}function ra(t,e,i){const s=function(t){const e=t.options,i=e.fill;let s=l(i&&i.target,i);void 0===s&&(s=!!e.backgroundColor);if(!1===s||null===s)return!1;if(!0===s)return"origin";return s}(t);if(o(s))return!isNaN(s.value)&&s;let n=parseFloat(s);return a(n)&&Math.floor(n)===n?function(t,e,i,s){"-"!==t&&"+"!==t||(i=e+i);if(i===e||i<0||i>=s)return!1;return i}(s[0],e,n,i):["origin","start","end","stack","shape"].indexOf(s)>=0&&s}function la(t,e,i){const s=[];for(let n=0;n=0;--e){const i=n[e].$filler;i&&(i.line.updateControlPoints(o,i.axis),s&&i.fill&&ua(t.ctx,i,o))}},beforeDatasetsDraw(t,e,i){if("beforeDatasetsDraw"!==i.drawTime)return;const s=t.getSortedVisibleDatasetMetas();for(let e=s.length-1;e>=0;--e){const i=s[e].$filler;oa(i)&&ua(t.ctx,i,t.chartArea)}},beforeDatasetDraw(t,e,i){const s=e.meta.$filler;oa(s)&&"beforeDatasetDraw"===i.drawTime&&ua(t.ctx,s,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const _a=(t,e)=>{let{boxHeight:i=e,boxWidth:s=e}=t;return t.usePointStyle&&(i=Math.min(i,e),s=t.pointStyleWidth||Math.min(s,e)),{boxWidth:s,boxHeight:i,itemHeight:Math.max(e,i)}};class ya extends $s{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,i){this.maxWidth=t,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=d(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter((e=>t.filter(e,this.chart.data)))),t.sort&&(e=e.sort(((e,i)=>t.sort(e,i,this.chart.data)))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width=this.height=0);const i=t.labels,s=Si(i.font),n=s.size,o=this._computeTitleHeight(),{boxWidth:a,itemHeight:r}=_a(i,n);let l,h;e.font=s.string,this.isHorizontal()?(l=this.maxWidth,h=this._fitRows(o,n,a,r)+10):(h=this.maxHeight,l=this._fitCols(o,s,a,r)+10),this.width=Math.min(l,t.maxWidth||this.maxWidth),this.height=Math.min(h,t.maxHeight||this.maxHeight)}_fitRows(t,e,i,s){const{ctx:n,maxWidth:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.lineWidths=[0],h=s+a;let c=t;n.textAlign="left",n.textBaseline="middle";let d=-1,u=-h;return this.legendItems.forEach(((t,f)=>{const g=i+e/2+n.measureText(t.text).width;(0===f||l[l.length-1]+g+2*a>o)&&(c+=h,l[l.length-(f>0?0:1)]=0,u+=h,d++),r[f]={left:0,top:u,row:d,width:g,height:s},l[l.length-1]+=g+a})),c}_fitCols(t,e,i,s){const{ctx:n,maxHeight:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.columnSizes=[],h=o-t;let c=a,d=0,u=0,f=0,g=0;return this.legendItems.forEach(((t,o)=>{const{itemWidth:p,itemHeight:m}=function(t,e,i,s,n){const o=function(t,e,i,s){let n=t.text;n&&"string"!=typeof n&&(n=n.reduce(((t,e)=>t.length>e.length?t:e)));return e+i.size/2+s.measureText(n).width}(s,t,e,i),a=function(t,e,i){let s=t;"string"!=typeof e.text&&(s=va(e,i));return s}(n,s,e.lineHeight);return{itemWidth:o,itemHeight:a}}(i,e,n,t,s);o>0&&u+m+2*a>h&&(c+=d+a,l.push({width:d,height:u}),f+=d+a,g++,d=u=0),r[o]={left:f,top:u,col:g,width:p,height:m},d=Math.max(d,p),u+=m+a})),c+=d,l.push({width:d,height:u}),c}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:s},rtl:n}}=this,o=Oi(n,this.left,this.width);if(this.isHorizontal()){let n=0,a=ft(i,this.left+s,this.right-this.lineWidths[n]);for(const r of e)n!==r.row&&(n=r.row,a=ft(i,this.left+s,this.right-this.lineWidths[n])),r.top+=this.top+t+s,r.left=o.leftForLtr(o.x(a),r.width),a+=r.width+s}else{let n=0,a=ft(i,this.top+t+s,this.bottom-this.columnSizes[n].height);for(const r of e)r.col!==n&&(n=r.col,a=ft(i,this.top+t+s,this.bottom-this.columnSizes[n].height)),r.top=a,r.left+=this.left+s,r.left=o.leftForLtr(o.x(r.left),r.width),a+=r.height+s}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const t=this.ctx;Ie(t,this),this._draw(),ze(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:i,ctx:s}=this,{align:n,labels:o}=t,a=ue.color,r=Oi(t.rtl,this.left,this.width),h=Si(o.font),{padding:c}=o,d=h.size,u=d/2;let f;this.drawTitle(),s.textAlign=r.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=h.string;const{boxWidth:g,boxHeight:p,itemHeight:m}=_a(o,d),x=this.isHorizontal(),b=this._computeTitleHeight();f=x?{x:ft(n,this.left+c,this.right-i[0]),y:this.top+c+b,line:0}:{x:this.left+c,y:ft(n,this.top+b+c,this.bottom-e[0].height),line:0},Ai(this.ctx,t.textDirection);const _=m+c;this.legendItems.forEach(((y,v)=>{s.strokeStyle=y.fontColor,s.fillStyle=y.fontColor;const M=s.measureText(y.text).width,w=r.textAlign(y.textAlign||(y.textAlign=o.textAlign)),k=g+u+M;let S=f.x,P=f.y;r.setWidth(this.width),x?v>0&&S+k+c>this.right&&(P=f.y+=_,f.line++,S=f.x=ft(n,this.left+c,this.right-i[f.line])):v>0&&P+_>this.bottom&&(S=f.x=S+e[f.line].width+c,f.line++,P=f.y=ft(n,this.top+b+c,this.bottom-e[f.line].height));if(function(t,e,i){if(isNaN(g)||g<=0||isNaN(p)||p<0)return;s.save();const n=l(i.lineWidth,1);if(s.fillStyle=l(i.fillStyle,a),s.lineCap=l(i.lineCap,"butt"),s.lineDashOffset=l(i.lineDashOffset,0),s.lineJoin=l(i.lineJoin,"miter"),s.lineWidth=n,s.strokeStyle=l(i.strokeStyle,a),s.setLineDash(l(i.lineDash,[])),o.usePointStyle){const a={radius:p*Math.SQRT2/2,pointStyle:i.pointStyle,rotation:i.rotation,borderWidth:n},l=r.xPlus(t,g/2);Ee(s,a,l,e+u,o.pointStyleWidth&&g)}else{const o=e+Math.max((d-p)/2,0),a=r.leftForLtr(t,g),l=wi(i.borderRadius);s.beginPath(),Object.values(l).some((t=>0!==t))?He(s,{x:a,y:o,w:g,h:p,radius:l}):s.rect(a,o,g,p),s.fill(),0!==n&&s.stroke()}s.restore()}(r.x(S),P,y),S=gt(w,S+g+u,x?S+k:this.right,t.rtl),function(t,e,i){Ne(s,i.text,t,e+m/2,h,{strikethrough:i.hidden,textAlign:r.textAlign(i.textAlign)})}(r.x(S),P,y),x)f.x+=k+c;else if("string"!=typeof y.text){const t=h.lineHeight;f.y+=va(y,t)+c}else f.y+=_})),Ti(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,i=Si(e.font),s=ki(e.padding);if(!e.display)return;const n=Oi(t.rtl,this.left,this.width),o=this.ctx,a=e.position,r=i.size/2,l=s.top+r;let h,c=this.left,d=this.width;if(this.isHorizontal())d=Math.max(...this.lineWidths),h=this.top+l,c=ft(t.align,c,this.right-d);else{const e=this.columnSizes.reduce(((t,e)=>Math.max(t,e.height)),0);h=l+ft(t.align,this.top,this.bottom-e-t.labels.padding-this._computeTitleHeight())}const u=ft(a,c,c+d);o.textAlign=n.textAlign(ut(a)),o.textBaseline="middle",o.strokeStyle=e.color,o.fillStyle=e.color,o.font=i.string,Ne(o,e.text,u,h,i)}_computeTitleHeight(){const t=this.options.title,e=Si(t.font),i=ki(t.padding);return t.display?e.lineHeight+i.height:0}_getLegendItemAt(t,e){let i,s,n;if(tt(t,this.left,this.right)&&tt(e,this.top,this.bottom))for(n=this.legendHitBoxes,i=0;it.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:i,pointStyle:s,textAlign:n,color:o,useBorderRadius:a,borderRadius:r}}=t.legend.options;return t._getSortedDatasetMetas().map((t=>{const l=t.controller.getStyle(i?0:void 0),h=ki(l.borderWidth);return{text:e[t.index].label,fillStyle:l.backgroundColor,fontColor:o,hidden:!t.visible,lineCap:l.borderCapStyle,lineDash:l.borderDash,lineDashOffset:l.borderDashOffset,lineJoin:l.borderJoinStyle,lineWidth:(h.width+h.height)/4,strokeStyle:l.borderColor,pointStyle:s||l.pointStyle,rotation:l.rotation,textAlign:n||l.textAlign,borderRadius:a&&(r||l.borderRadius),datasetIndex:t.index}}),this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};class wa extends $s{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){const i=this.options;if(this.left=0,this.top=0,!i.display)return void(this.width=this.height=this.right=this.bottom=0);this.width=this.right=t,this.height=this.bottom=e;const s=n(i.text)?i.text.length:1;this._padding=ki(i.padding);const o=s*Si(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const t=this.options.position;return"top"===t||"bottom"===t}_drawArgs(t){const{top:e,left:i,bottom:s,right:n,options:o}=this,a=o.align;let r,l,h,c=0;return this.isHorizontal()?(l=ft(a,i,n),h=e+t,r=n-i):("left"===o.position?(l=i+t,h=ft(a,s,e),c=-.5*C):(l=n-t,h=ft(a,e,s),c=.5*C),r=s-e),{titleX:l,titleY:h,maxWidth:r,rotation:c}}draw(){const t=this.ctx,e=this.options;if(!e.display)return;const i=Si(e.font),s=i.lineHeight/2+this._padding.top,{titleX:n,titleY:o,maxWidth:a,rotation:r}=this._drawArgs(s);Ne(t,e.text,0,0,i,{color:e.color,maxWidth:a,rotation:r,textAlign:ut(e.align),textBaseline:"middle",translation:[n,o]})}}var ka={id:"title",_element:wa,start(t,e,i){!function(t,e){const i=new wa({ctx:t.ctx,options:e,chart:t});ls.configure(t,i,e),ls.addBox(t,i),t.titleBlock=i}(t,i)},stop(t){const e=t.titleBlock;ls.removeBox(t,e),delete t.titleBlock},beforeUpdate(t,e,i){const s=t.titleBlock;ls.configure(t,s,i),s.options=i},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const Sa=new WeakMap;var Pa={id:"subtitle",start(t,e,i){const s=new wa({ctx:t.ctx,options:i,chart:t});ls.configure(t,s,i),ls.addBox(t,s),Sa.set(t,s)},stop(t){ls.removeBox(t,Sa.get(t)),Sa.delete(t)},beforeUpdate(t,e,i){const s=Sa.get(t);ls.configure(t,s,i),s.options=i},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const Da={average(t){if(!t.length)return!1;let e,i,s=new Set,n=0,o=0;for(e=0,i=t.length;et+e))/s.size,y:n/o}},nearest(t,e){if(!t.length)return!1;let i,s,n,o=e.x,a=e.y,r=Number.POSITIVE_INFINITY;for(i=0,s=t.length;i-1?t.split("\n"):t}function Aa(t,e){const{element:i,datasetIndex:s,index:n}=e,o=t.getDatasetMeta(s).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:t,label:a,parsed:o.getParsed(n),raw:t.data.datasets[s].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:s,element:i}}function Ta(t,e){const i=t.chart.ctx,{body:s,footer:n,title:o}=t,{boxWidth:a,boxHeight:r}=e,l=Si(e.bodyFont),h=Si(e.titleFont),c=Si(e.footerFont),d=o.length,f=n.length,g=s.length,p=ki(e.padding);let m=p.height,x=0,b=s.reduce(((t,e)=>t+e.before.length+e.lines.length+e.after.length),0);if(b+=t.beforeBody.length+t.afterBody.length,d&&(m+=d*h.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),b){m+=g*(e.displayColors?Math.max(r,l.lineHeight):l.lineHeight)+(b-g)*l.lineHeight+(b-1)*e.bodySpacing}f&&(m+=e.footerMarginTop+f*c.lineHeight+(f-1)*e.footerSpacing);let _=0;const y=function(t){x=Math.max(x,i.measureText(t).width+_)};return i.save(),i.font=h.string,u(t.title,y),i.font=l.string,u(t.beforeBody.concat(t.afterBody),y),_=e.displayColors?a+2+e.boxPadding:0,u(s,(t=>{u(t.before,y),u(t.lines,y),u(t.after,y)})),_=0,i.font=c.string,u(t.footer,y),i.restore(),x+=p.width,{width:x,height:m}}function La(t,e,i,s){const{x:n,width:o}=i,{width:a,chartArea:{left:r,right:l}}=t;let h="center";return"center"===s?h=n<=(r+l)/2?"left":"right":n<=o/2?h="left":n>=a-o/2&&(h="right"),function(t,e,i,s){const{x:n,width:o}=s,a=i.caretSize+i.caretPadding;return"left"===t&&n+o+a>e.width||"right"===t&&n-o-a<0||void 0}(h,t,e,i)&&(h="center"),h}function Ea(t,e,i){const s=i.yAlign||e.yAlign||function(t,e){const{y:i,height:s}=e;return it.height-s/2?"bottom":"center"}(t,i);return{xAlign:i.xAlign||e.xAlign||La(t,e,i,s),yAlign:s}}function Ra(t,e,i,s){const{caretSize:n,caretPadding:o,cornerRadius:a}=t,{xAlign:r,yAlign:l}=i,h=n+o,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:f}=wi(a);let g=function(t,e){let{x:i,width:s}=t;return"right"===e?i-=s:"center"===e&&(i-=s/2),i}(e,r);const p=function(t,e,i){let{y:s,height:n}=t;return"top"===e?s+=i:s-="bottom"===e?n+i:n/2,s}(e,l,h);return"center"===l?"left"===r?g+=h:"right"===r&&(g-=h):"left"===r?g-=Math.max(c,u)+n:"right"===r&&(g+=Math.max(d,f)+n),{x:Z(g,0,s.width-e.width),y:Z(p,0,s.height-e.height)}}function Ia(t,e,i){const s=ki(i.padding);return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-s.right:t.x+s.left}function za(t){return Ca([],Oa(t))}function Fa(t,e){const i=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return i?t.override(i):t}const Va={beforeTitle:e,title(t){if(t.length>0){const e=t[0],i=e.chart.data.labels,s=i?i.length:0;if(this&&this.options&&"dataset"===this.options.mode)return e.dataset.label||"";if(e.label)return e.label;if(s>0&&e.dataIndex{const e={before:[],lines:[],after:[]},n=Fa(i,t);Ca(e.before,Oa(Ba(n,"beforeLabel",this,t))),Ca(e.lines,Ba(n,"label",this,t)),Ca(e.after,Oa(Ba(n,"afterLabel",this,t))),s.push(e)})),s}getAfterBody(t,e){return za(Ba(e.callbacks,"afterBody",this,t))}getFooter(t,e){const{callbacks:i}=e,s=Ba(i,"beforeFooter",this,t),n=Ba(i,"footer",this,t),o=Ba(i,"afterFooter",this,t);let a=[];return a=Ca(a,Oa(s)),a=Ca(a,Oa(n)),a=Ca(a,Oa(o)),a}_createItems(t){const e=this._active,i=this.chart.data,s=[],n=[],o=[];let a,r,l=[];for(a=0,r=e.length;at.filter(e,s,n,i)))),t.itemSort&&(l=l.sort(((e,s)=>t.itemSort(e,s,i)))),u(l,(e=>{const i=Fa(t.callbacks,e);s.push(Ba(i,"labelColor",this,e)),n.push(Ba(i,"labelPointStyle",this,e)),o.push(Ba(i,"labelTextColor",this,e))})),this.labelColors=s,this.labelPointStyles=n,this.labelTextColors=o,this.dataPoints=l,l}update(t,e){const i=this.options.setContext(this.getContext()),s=this._active;let n,o=[];if(s.length){const t=Da[i.position].call(this,s,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);const e=this._size=Ta(this,i),a=Object.assign({},t,e),r=Ea(this.chart,i,a),l=Ra(i,a,r,this.chart);this.xAlign=r.xAlign,this.yAlign=r.yAlign,n={opacity:1,x:l.x,y:l.y,width:e.width,height:e.height,caretX:t.x,caretY:t.y}}else 0!==this.opacity&&(n={opacity:0});this._tooltipItems=o,this.$context=void 0,n&&this._resolveAnimations().update(this,n),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,i,s){const n=this.getCaretPosition(t,i,s);e.lineTo(n.x1,n.y1),e.lineTo(n.x2,n.y2),e.lineTo(n.x3,n.y3)}getCaretPosition(t,e,i){const{xAlign:s,yAlign:n}=this,{caretSize:o,cornerRadius:a}=i,{topLeft:r,topRight:l,bottomLeft:h,bottomRight:c}=wi(a),{x:d,y:u}=t,{width:f,height:g}=e;let p,m,x,b,_,y;return"center"===n?(_=u+g/2,"left"===s?(p=d,m=p-o,b=_+o,y=_-o):(p=d+f,m=p+o,b=_-o,y=_+o),x=p):(m="left"===s?d+Math.max(r,h)+o:"right"===s?d+f-Math.max(l,c)-o:this.caretX,"top"===n?(b=u,_=b-o,p=m-o,x=m+o):(b=u+g,_=b+o,p=m+o,x=m-o),y=b),{x1:p,x2:m,x3:x,y1:b,y2:_,y3:y}}drawTitle(t,e,i){const s=this.title,n=s.length;let o,a,r;if(n){const l=Oi(i.rtl,this.x,this.width);for(t.x=Ia(this,i.titleAlign,i),e.textAlign=l.textAlign(i.titleAlign),e.textBaseline="middle",o=Si(i.titleFont),a=i.titleSpacing,e.fillStyle=i.titleColor,e.font=o.string,r=0;r0!==t))?(t.beginPath(),t.fillStyle=n.multiKeyBackground,He(t,{x:e,y:g,w:h,h:l,radius:r}),t.fill(),t.stroke(),t.fillStyle=a.backgroundColor,t.beginPath(),He(t,{x:i,y:g+1,w:h-2,h:l-2,radius:r}),t.fill()):(t.fillStyle=n.multiKeyBackground,t.fillRect(e,g,h,l),t.strokeRect(e,g,h,l),t.fillStyle=a.backgroundColor,t.fillRect(i,g+1,h-2,l-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,e,i){const{body:s}=this,{bodySpacing:n,bodyAlign:o,displayColors:a,boxHeight:r,boxWidth:l,boxPadding:h}=i,c=Si(i.bodyFont);let d=c.lineHeight,f=0;const g=Oi(i.rtl,this.x,this.width),p=function(i){e.fillText(i,g.x(t.x+f),t.y+d/2),t.y+=d+n},m=g.textAlign(o);let x,b,_,y,v,M,w;for(e.textAlign=o,e.textBaseline="middle",e.font=c.string,t.x=Ia(this,m,i),e.fillStyle=i.bodyColor,u(this.beforeBody,p),f=a&&"right"!==m?"center"===o?l/2+h:l+2+h:0,y=0,M=s.length;y0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,i=this.$animations,s=i&&i.x,n=i&&i.y;if(s||n){const i=Da[t.position].call(this,this._active,this._eventPosition);if(!i)return;const o=this._size=Ta(this,t),a=Object.assign({},i,this._size),r=Ea(e,t,a),l=Ra(t,a,r,e);s._to===l.x&&n._to===l.y||(this.xAlign=r.xAlign,this.yAlign=r.yAlign,this.width=o.width,this.height=o.height,this.caretX=i.x,this.caretY=i.y,this._resolveAnimations().update(this,l))}}_willRender(){return!!this.opacity}draw(t){const e=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(e);const s={width:this.width,height:this.height},n={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const o=ki(e.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&a&&(t.save(),t.globalAlpha=i,this.drawBackground(n,t,s,e),Ai(t,e.textDirection),n.y+=o.top,this.drawTitle(n,t,e),this.drawBody(n,t,e),this.drawFooter(n,t,e),Ti(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const i=this._active,s=t.map((({datasetIndex:t,index:e})=>{const i=this.chart.getDatasetMeta(t);if(!i)throw new Error("Cannot find a dataset at index "+t);return{datasetIndex:t,element:i.data[e],index:e}})),n=!f(i,s),o=this._positionChanged(s,e);(n||o)&&(this._active=s,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,n=this._active||[],o=this._getActiveElements(t,n,e,i),a=this._positionChanged(o,t),r=e||!f(o,n)||a;return r&&(this._active=o,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),r}_getActiveElements(t,e,i,s){const n=this.options;if("mouseout"===t.type)return[];if(!s)return e.filter((t=>this.chart.data.datasets[t.datasetIndex]&&void 0!==this.chart.getDatasetMeta(t.datasetIndex).controller.getParsed(t.index)));const o=this.chart.getElementsAtEventForMode(t,n.mode,n,i);return n.reverse&&o.reverse(),o}_positionChanged(t,e){const{caretX:i,caretY:s,options:n}=this,o=Da[n.position].call(this,t,e);return!1!==o&&(i!==o.x||s!==o.y)}}var Na={id:"tooltip",_element:Wa,positioners:Da,afterInit(t,e,i){i&&(t.tooltip=new Wa({chart:t,options:i}))},beforeUpdate(t,e,i){t.tooltip&&t.tooltip.initialize(i)},reset(t,e,i){t.tooltip&&t.tooltip.initialize(i)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const i={tooltip:e};if(!1===t.notifyPlugins("beforeTooltipDraw",{...i,cancelable:!0}))return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",i)}},afterEvent(t,e){if(t.tooltip){const i=e.replay;t.tooltip.handleEvent(e.event,i,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:Va},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>"filter"!==t&&"itemSort"!==t&&"external"!==t,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};return Tn.register(Un,$o,go,t),Tn.helpers={...Hi},Tn._adapters=In,Tn.Animation=As,Tn.Animations=Ts,Tn.animator=bt,Tn.controllers=nn.controllers.items,Tn.DatasetController=js,Tn.Element=$s,Tn.elements=go,Tn.Interaction=Ki,Tn.layouts=ls,Tn.platforms=Ds,Tn.Scale=tn,Tn.Ticks=ae,Object.assign(Tn,Un,$o,go,t,Ds),Tn.Chart=Tn,"undefined"!=typeof window&&(window.Chart=Tn),Tn})); +//# sourceMappingURL=chart.umd.min.js.map diff --git a/static/vendor/chartjs/chartjs-plugin-datalabels.min.js b/static/vendor/chartjs/chartjs-plugin-datalabels.min.js new file mode 100644 index 0000000..e84e6ff --- /dev/null +++ b/static/vendor/chartjs/chartjs-plugin-datalabels.min.js @@ -0,0 +1,7 @@ +/*! + * chartjs-plugin-datalabels v2.2.0 + * https://chartjs-plugin-datalabels.netlify.app + * (c) 2017-2022 chartjs-plugin-datalabels contributors + * Released under the MIT license + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("chart.js/helpers"),require("chart.js")):"function"==typeof define&&define.amd?define(["chart.js/helpers","chart.js"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).ChartDataLabels=e(t.Chart.helpers,t.Chart)}(this,(function(t,e){"use strict";var r=function(){if("undefined"!=typeof window){if(window.devicePixelRatio)return window.devicePixelRatio;var t=window.screen;if(t)return(t.deviceXDPI||1)/(t.logicalXDPI||1)}return 1}(),a=function(e){var r,a=[];for(e=[].concat(e);e.length;)"string"==typeof(r=e.pop())?a.unshift.apply(a,r.split("\n")):Array.isArray(r)?e.push.apply(e,r):t.isNullOrUndef(e)||a.unshift(""+r);return a},o=function(t,e,r){var a,o=[].concat(e),n=o.length,i=t.font,l=0;for(t.font=r.string,a=0;ar.right&&(a|=2),er.bottom&&(a|=4),a}function u(t,e){var r,a,o=e.anchor,n=t;return e.clamp&&(n=function(t,e){for(var r,a,o,n=t.x0,i=t.y0,l=t.x1,u=t.y1,d=s(n,i,e),c=s(l,u,e);d|c&&!(d&c);)8&(r=d||c)?(a=n+(l-n)*(e.top-i)/(u-i),o=e.top):4&r?(a=n+(l-n)*(e.bottom-i)/(u-i),o=e.bottom):2&r?(o=i+(u-i)*(e.right-n)/(l-n),a=e.right):1&r&&(o=i+(u-i)*(e.left-n)/(l-n),a=e.left),r===d?d=s(n=a,i=o,e):c=s(l=a,u=o,e);return{x0:n,x1:l,y0:i,y1:u}}(n,e.area)),"start"===o?(r=n.x0,a=n.y0):"end"===o?(r=n.x1,a=n.y1):(r=(n.x0+n.x1)/2,a=(n.y0+n.y1)/2),function(t,e,r,a,o){switch(o){case"center":r=a=0;break;case"bottom":r=0,a=1;break;case"right":r=1,a=0;break;case"left":r=-1,a=0;break;case"top":r=0,a=-1;break;case"start":r=-r,a=-a;break;case"end":break;default:o*=Math.PI/180,r=Math.cos(o),a=Math.sin(o)}return{x:t,y:e,vx:r,vy:a}}(r,a,t.vx,t.vy,e.align)}var d=function(t,e){var r=(t.startAngle+t.endAngle)/2,a=Math.cos(r),o=Math.sin(r),n=t.innerRadius,i=t.outerRadius;return u({x0:t.x+a*n,y0:t.y+o*n,x1:t.x+a*i,y1:t.y+o*i,vx:a,vy:o},e)},c=function(t,e){var r=l(t,e.origin),a=r.x*t.options.radius,o=r.y*t.options.radius;return u({x0:t.x-a,y0:t.y-o,x1:t.x+a,y1:t.y+o,vx:r.x,vy:r.y},e)},h=function(t,e){var r=l(t,e.origin),a=t.x,o=t.y,n=0,i=0;return t.horizontal?(a=Math.min(t.x,t.base),n=Math.abs(t.base-t.x)):(o=Math.min(t.y,t.base),i=Math.abs(t.base-t.y)),u({x0:a,y0:o+i,x1:a+n,y1:o,vx:r.x,vy:r.y},e)},f=function(t,e){var r=l(t,e.origin);return u({x0:t.x,y0:t.y,x1:t.x+(t.width||0),y1:t.y+(t.height||0),vx:r.x,vy:r.y},e)},x=function(t){return Math.round(t*r)/r};function y(t,e){var r=e.chart.getDatasetMeta(e.datasetIndex).vScale;if(!r)return null;if(void 0!==r.xCenter&&void 0!==r.yCenter)return{x:r.xCenter,y:r.yCenter};var a=r.getBasePixel();return t.horizontal?{x:a,y:null}:{x:null,y:a}}function v(t,e,r){var a=r.backgroundColor,o=r.borderColor,n=r.borderWidth;(a||o&&n)&&(t.beginPath(),function(t,e,r,a,o,n){var i=Math.PI/2;if(n){var l=Math.min(n,o/2,a/2),s=e+l,u=r+l,d=e+a-l,c=r+o-l;t.moveTo(e,u),sr.x+r.w+2||t.y>r.y+r.h+2)},intersects:function(t){var e,r,a,o=this._points(),n=t._points(),i=[M(o[0],o[1]),M(o[0],o[3])];for(this._rotation!==t._rotation&&i.push(M(n[0],n[1]),M(n[0],n[3])),e=0;et.getProps([e],!0)[e]}),n=a.geometry(),i=$(l,a.model(),n),o._box.update(i,n,a.rotation()));(function(t,e){var r,a,o,n;for(r=t.length-1;r>=0;--r)for(o=t[r].$layout,a=r-1;a>=0&&o._visible;--a)(n=t[a].$layout)._visible&&o._box.intersects(n._box)&&e(o,n)})(t,(function(t,e){var r=t._hidable,a=e._hidable;r&&a||a?e._visible=!1:r&&(t._visible=!1)}))}(t)},lookup:function(t,e){var r,a;for(r=t.length-1;r>=0;--r)if((a=t[r].$layout)&&a._visible&&a._box.contains(e))return t[r];return null},draw:function(t,e){var r,a,o,n,i,l;for(r=0,a=e.length;re!==null&&typeof e=="object"&&(Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null),vt=e=>{for(let t in e)if(x(e,t))return!1;return!0},te=(e,t)=>{for(let n in e){let r=e[n];J(r)||Array.isArray(r)?te(r,t):e[n]=t(r)}},xe=e=>{let t={};for(let[n,r]of e){let s=n.split("."),i=s.pop(),o=s.reduce((a,l)=>a[l]??={},t);o[i]=r}return t};var Le=[],Ze=[],He=0,Ne=0,Qe=0,Ye,B,Pe=0,L=()=>{He++},N=()=>{--He||(St(),K())},H=e=>{Ye=B,B=e},_=()=>{B=Ye,Ye=void 0},he=e=>an.bind(0,{previousValue:e,t:e,e:1}),Xe=Symbol("computed"),_e=e=>{let t=cn.bind(0,{e:17,getter:e});return t[Xe]=1,t},w=e=>{let t={d:e,e:2};B&&tt(t,B),H(t),L();try{t.d()}finally{N(),_()}return wt.bind(0,t)},St=()=>{for(;Ne"getter"in e?Tt(e):At(e,e.t),Tt=e=>{H(e),Mt(e);try{let t=e.t;return t!==(e.t=e.getter(t))}finally{_(),xt(e)}},At=(e,t)=>(e.e=1,e.previousValue!==(e.previousValue=t)),et=e=>{let t=e.e;if(!(t&64)){e.e=t|64;let n=e.r;n?et(n.o):Ze[Qe++]=e}},Rt=(e,t)=>{if(t&16||t&32&&Lt(e.s,e)){H(e),Mt(e),L();try{e.d()}finally{N(),_(),xt(e)}return}t&32&&(e.e=t&-33);let n=e.s;for(;n;){let r=n.c,s=r.e;s&64&&Rt(r,r.e=s&-65),n=n.i}},an=(e,...t)=>{if(t.length){if(e.t!==(e.t=t[0])){e.e=17;let r=e.r;return r&&(ln(r),He||St()),!0}return!1}let n=e.t;if(e.e&16&&At(e,n)){let r=e.r;r&&Fe(r)}return B&&tt(e,B),n},cn=e=>{let t=e.e;if(t&16||t&32&&Lt(e.s,e)){if(Tt(e)){let n=e.r;n&&Fe(n)}}else t&32&&(e.e=t&-33);return B&&tt(e,B),e.t},wt=e=>{let t=e.s;for(;t;)t=Ce(t,e);let n=e.r;n&&Ce(n),e.e=0},tt=(e,t)=>{let n=t.a;if(n&&n.c===e)return;let r=n?n.i:t.s;if(r&&r.c===e){r.p=Pe,t.a=r;return}let s=e.m;if(s&&s.p===Pe&&s.o===t)return;let i=t.a=e.m={p:Pe,c:e,o:t,l:n,i:r,u:s};r&&(r.l=i),n?n.i=i:t.s=i,s?s.n=i:e.r=i},Ce=(e,t=e.o)=>{let n=e.c,r=e.l,s=e.i,i=e.n,o=e.u;if(s?s.l=r:t.a=r,r?r.i=s:t.s=s,i?i.u=o:n.m=o,o)o.n=i;else if(!(n.r=i))if("getter"in n){let a=n.s;if(a){n.e=17;do a=Ce(a,n);while(a)}}else"previousValue"in n||wt(n);return s},ln=e=>{let t=e.n,n;e:for(;;){let r=e.o,s=r.e;if(s&60?s&12?s&4?!(s&48)&&un(e,r)?(r.e=s|40,s&=1):s=0:r.e=s&-9|32:s=0:r.e=s|32,s&2&&et(r),s&1){let i=r.r;if(i){let o=(e=i).n;o&&(n={t,f:n},t=o);continue}}if(e=t){t=e.n;continue}for(;n;)if(e=n.t,n=n.f,e){t=e.n;continue e}break}},Mt=e=>{Pe++,e.a=void 0,e.e=e.e&-57|4},xt=e=>{let t=e.a,n=t?t.i:e.s;for(;n;)n=Ce(n,e);e.e&=-5},Lt=(e,t)=>{let n,r=0,s=!1;e:for(;;){let i=e.c,o=i.e;if(t.e&16)s=!0;else if((o&17)===17){if(bt(i)){let a=i.r;a.n&&Fe(a),s=!0}}else if((o&33)===33){(e.n||e.u)&&(n={t:e,f:n}),e=i.s,t=i,++r;continue}if(!s){let a=e.i;if(a){e=a;continue}}for(;r--;){let a=t.r,l=a.n;if(l?(e=n.t,n=n.f):e=a,s){if(bt(t)){l&&Fe(a),t=e.o;continue}s=!1}else t.e&=-33;if(t=e.o,e.i){e=e.i;continue e}}return s}},Fe=e=>{do{let t=e.o,n=t.e;(n&48)===32&&(t.e=n|16,n&2&&et(t))}while(e=e.n)},un=(e,t)=>{let n=t.a;for(;n;){if(n===e)return!0;n=n.l}return!1},oe=e=>{let t=ne,n=e.split(".");for(let r of n){if(t==null||!x(t,r))return;t=t[r]}return t},Oe=(e,t="")=>{let n=Array.isArray(e);if(n||J(e)){let r=n?[]:{};for(let i in e)r[i]=he(Oe(e[i],`${t+i}.`));let s=he(0);return new Proxy(r,{get(i,o){if(!(o==="toJSON"&&!x(r,o)))return n&&o in Array.prototype?(s(),r[o]):typeof o=="symbol"?r[o]:((!x(r,o)||r[o]()==null)&&(r[o]=he(""),K(t+o,""),s(s()+1)),r[o]())},set(i,o,a){let l=t+o;if(n&&o==="length"){let c=r[o]-a;if(r[o]=a,c>0){let u={};for(let f=a;f{if(e!==void 0&&t!==void 0&&Le.push([e,t]),!He&&Le.length){let n=xe(Le);Le.length=0,document.dispatchEvent(new CustomEvent(ee,{detail:n}))}},k=(e,{ifMissing:t}={})=>{L();for(let n in e)e[n]==null?t||delete ne[n]:Nt(e[n],n,ne,"",t);N()},R=(e,t)=>k(xe(e),t),Nt=(e,t,n,r,s)=>{if(J(e)){x(n,t)&&(J(n[t])||Array.isArray(n[t]))||(n[t]={});for(let i in e)e[i]==null?s||delete n[t][i]:Nt(e[i],i,n[t],`${r+t}.`,s)}else s&&x(n,t)||(n[t]=e)},Et=e=>typeof e=="string"?RegExp(e.replace(/^\/|\/$/g,"")):e,V=({include:e=/.*/,exclude:t=/(?!)/}={},n=ne)=>{let r=Et(e),s=Et(t),i=[],o=[[n,""]];for(;o.length;){let[a,l]=o.pop();for(let c in a){let u=l+c;J(a[c])?o.push([a[c],`${u}.`]):r.test(u)&&!s.test(u)&&i.push([u,oe(u)])}}return xe(i)},ne=Oe({});var z=e=>e instanceof HTMLElement||e instanceof SVGElement||e instanceof MathMLElement;var ae=e=>e.replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([a-z])([0-9]+)/gi,"$1-$2").replace(/([0-9]+)([a-z])/gi,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase(),Pt=e=>ae(e).replace(/-./g,t=>t[1].toUpperCase()),Ot=e=>ae(e).replace(/-/g,"_");var fn=/^(?:(?:async\s+)?function\b|(?:async\s*)?(?:\([^)]*\)|[A-Za-z_$][\w$]*)\s*=>)/,ce=(e,t={})=>{let{reviveFunctionStrings:n=!1}=t;try{return n?JSON.parse(e,(r,s)=>{if(typeof s!="string")return s;let i=s.trim();if(!fn.test(i))return s;try{let o=Function(`return (${i})`)();return typeof o=="function"?o:s}catch{return s}}):JSON.parse(e)}catch{return Function(`return (${e})`)()}},Ct={camel:e=>e.replace(/-[a-z]/g,t=>t[1].toUpperCase()),snake:e=>e.replace(/-/g,"_"),pascal:e=>e[0].toUpperCase()+Ct.camel(e.slice(1))},P=(e,t,n="camel")=>{for(let r of t.get("case")||[n])e=Ct[r]?.(e)||e;return e},W=e=>`data-${e}`,nt=e=>e;var dn="https://data-star.dev/errors",ye=(e,t,n={})=>{Object.assign(n,e);let r=new Error,s=Ot(t),i=new URLSearchParams({metadata:JSON.stringify(n)}).toString(),o=JSON.stringify(n,null,2);return r.message=`${t} -More info: ${dn}/${s}?${i} -Context: ${o}`,r},ve=new Map,rt=new Map,_t=new Map,kt=new Proxy({},{get:(e,t)=>ve.get(t)?.apply,has:(e,t)=>ve.has(t),ownKeys:()=>Reflect.ownKeys(ve),set:()=>!1,deleteProperty:()=>!1}),Ee=new Map,ke=[],st=new Set,be=new Set,Ft=!1,p=e=>{ke.push(e),ke.length===1&&setTimeout(()=>{for(let n of ke)st.add(n.name),rt.set(n.name,n);ke.length=0;let t=be.size?[...be]:[document.documentElement];for(let n of t)bn(n,!be.has(n));st.clear()})},D=e=>{ve.set(e.name,e)};document.addEventListener(j,e=>{let t=_t.get(e.detail.type);t&&t.apply({error:ye.bind(0,{plugin:{type:"watcher",name:t.name},element:{id:e.target.id,tag:e.target.tagName}})},e.detail.argsRaw)});var Se=e=>{_t.set(e.name,e)},Ht=e=>{for(let t of e){let n=Ee.get(t);if(n&&Ee.delete(t))for(let r of n.values())for(let s of r.values())s()}},Dt=W("ignore"),pn=`[${Dt}]`,It=e=>e.hasAttribute(`${Dt}__self`)||!!e.closest(pn),De=(e,t)=>{for(let n of e)if(!It(n)){let r=new Set;for(let s in n.dataset){let i=s.replace(/[A-Z]/g,"-$&").toLowerCase();r.add(i),it(n,i,n.dataset[s],t)}for(let s of Array.from(n.attributes)){if(!s.name.startsWith("data-"))continue;let i=s.name.slice(5);r.has(i)||it(n,i,s.value,t)}}},mn=e=>{for(let{target:t,type:n,attributeName:r,addedNodes:s,removedNodes:i}of e)if(n==="childList"){for(let o of i)z(o)&&(Ht([o]),Ht(o.querySelectorAll("*")));for(let o of s)z(o)&&(De([o]),De(o.querySelectorAll("*")))}else if(n==="attributes"&&r.startsWith("data-")&&z(t)&&!It(t)){let o=r.slice(5),a=nt(o);if(!a)continue;let l=t.getAttribute(r);if(l===null){let c=Ee.get(t);if(c){let u=c.get(a);if(u){for(let f of u.values())f();c.delete(a)}}}else it(t,o,l)}},gn=new MutationObserver(mn),hn=e=>{let[t,...n]=e.split("__"),[r,s]=t.split(/:(.+)/),i=new Map;for(let o of n){let[a,...l]=o.split(".");i.set(a,new Set(l))}return{pluginName:r,key:s,mods:i}},yn=()=>be.has(document.documentElement),vn=()=>{Ft||!yn()||(Ft=!0,document.dispatchEvent(new Event(yt)))},bn=(e=document.documentElement,t=!0)=>{z(e)&&De([e],!0),De(e.querySelectorAll("*"),!0),t&&(gn.observe(e,{subtree:!0,childList:!0,attributes:!0}),be.add(e),vn())};var it=(e,t,n,r)=>{let s=nt(t);if(!s)return;let{pluginName:i,key:o,mods:a}=hn(s),l=rt.get(i);if((!r||st.has(i))&&!!l){let u={el:e,rawKey:s,mods:a,error:ye.bind(0,{plugin:{type:"attribute",name:l.name},element:{id:e.id,tag:e.tagName},expression:{rawKey:s,key:o,value:n}}),key:o,value:n,loadedPluginNames:{actions:new Set(ve.keys()),attributes:new Set(rt.keys())},rx:void 0},f=l.requirement&&(typeof l.requirement=="string"?l.requirement:l.requirement.key)||"allowed",m=l.requirement&&(typeof l.requirement=="string"?l.requirement:l.requirement.value)||"allowed",h=o!=null&&o!=="",v=n!=null&&n!=="";if(h){if(f==="denied")throw u.error("KeyNotAllowed")}else if(f==="must")throw u.error("KeyRequired");if(v){if(m==="denied")throw u.error("ValueNotAllowed")}else if(m==="must")throw u.error("ValueRequired");if(f==="exclusive"||m==="exclusive"){if(h&&v)throw u.error("KeyAndValueProvided");if(!h&&!v)throw u.error("KeyOrValueRequired")}let d=new Map;if(v){let y;u.rx=(...$)=>(y||(y=En(n,{returnsValue:l.returnsValue,argNames:l.argNames,cleanups:d})),y(e,...$))}let g=l.apply(u);g&&d.set("attribute",g);let b=Ee.get(e);if(b){let y=b.get(s);if(y)for(let $ of y.values())$()}else b=new Map,Ee.set(e,b);b.set(s,d)}},En=(e,{returnsValue:t=!1,argNames:n=[],cleanups:r=new Map}={})=>{let s="";if(t){let l=/(\/(\\\/|[^/])*\/|"(\\"|[^"])*"|'(\\'|[^'])*'|`(\\`|[^`])*`|\(\s*((function)\s*\(\s*\)|(\(\s*\))\s*=>)\s*(?:\{[\s\S]*?\}|[^;){]*)\s*\)\s*\(\s*\)|[^;])+/gm,c=e.trim().match(l);if(c){let u=c.length-1,f=c[u].trim();f.startsWith("return")||(c[u]=`return (${f});`),s=c.join(`; -`)}}else s=e.trim();let i=new Map,o=RegExp(`(?:${Je})(.*?)(?:${Ke})`,"gm"),a=0;for(let l of s.matchAll(o)){let c=l[1],u=`__escaped${a++}`;i.set(u,c),s=s.replace(Je+c+Ke,u)}s=s.replace(/("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|`(?:\\.|[^`\\$]|\$(?!\{))*`)|\$\{([^{}]*)\}|\$([a-zA-Z_\d]\w*(?:[.-]\w+)*)/g,(l,c,u,f)=>c?l:u!==void 0?`\${${u.replace(/\$([a-zA-Z_\d]\w*(?:[.-]\w+)*)/g,(m,h)=>h.split(".").reduce((v,d)=>`${v}['${d}']`,"$"))}}`:f.split(".").reduce((m,h)=>`${m}['${h}']`,"$")),s=s.replaceAll(/@([A-Za-z_$][\w$]*)\(/g,'__action("$1",evt,');for(let[l,c]of i)s=s.replace(l,c);try{let l=Function("el","$","__action","evt",...n,s);return(c,...u)=>{let f=(m,h,...v)=>{let d=ye.bind(0,{plugin:{type:"action",name:m},element:{id:c.id,tag:c.tagName},expression:{fnContent:s,value:e}}),g=kt[m];if(g)return g({el:c,evt:h,error:d,cleanups:r},...v);throw d("UndefinedAction")};try{return l(c,ne,f,void 0,...u)}catch(m){throw console.error(m),ye({element:{id:c.id,tag:c.tagName},expression:{fnContent:s,value:e},error:m.message},"ExecuteExpression")}}}catch(l){throw console.error(l),ye({expression:{fnContent:s,value:e},error:l.message},"GenerateExpression")}};D({name:"peek",apply(e,t){H();try{return t()}finally{_()}}});D({name:"setAll",apply(e,t,n){H();let r=V(n);te(r,()=>t),k(r),_()}});D({name:"toggleAll",apply(e,t){H();let n=V(t);te(n,r=>!r),k(n),_()}});var Ie=new Map,ot=e=>!["GET","DELETE"].includes(e),Te=(e,t,n=!0)=>D({name:e,apply:async({el:r,evt:s,error:i,cleanups:o},a,{selector:l,headers:c,contentType:u="json",filterSignals:{include:f=/.*/,exclude:m=/(^|\.)_/}={},openWhenHidden:h=n,payload:v,requestCancellation:d="auto",retry:g="auto",retryInterval:b=1e3,retryScaler:y=2,retryMaxWait:$=3e4,retryMaxCount:O=10}={})=>{let C=d instanceof AbortController?d:new AbortController;(d==="auto"||d==="cleanup")&&(Ie.get(t)?.get(a)?.abort(),Ie.has(t)||Ie.set(t,new Map),Ie.get(t).set(a,C)),d==="cleanup"&&(o.get(`@${e}`)?.(),o.set(`@${e}`,async()=>{C.abort(),await Promise.resolve()}));let de=()=>{};try{if(!a?.length)throw i("FetchNoUrlProvided",{action:D});let ie={Accept:"text/event-stream, text/html, application/json","Datastar-Request":!0};u==="json"&&ot(t)&&(ie["Content-Type"]="application/json");let q=Object.assign({},ie,c),Y={input:"",method:t,headers:q,openWhenHidden:h,retry:g,retryInterval:b,retryScaler:y,retryMaxWait:$,retryMaxCount:O,signal:C.signal,onopen:async E=>{E.status>=400&&re(Sn,r,{status:E.status.toString()})},onmessage:E=>{if(!E.event.startsWith("datastar"))return;let U=E.event,T={};for(let S of E.data.split(` -`)){let A=S.indexOf(" "),X=S.slice(0,A),M=S.slice(A+1);(T[X]||=[]).push(M)}let F=Object.fromEntries(Object.entries(T).map(([S,A])=>[S,A.join(` -`)]));re(U,r,F)},onerror:E=>{if(Vt(E))throw i("FetchExpectedTextEventStream",{url:a})}},Ge=()=>{let E=new URL(a,document.baseURI),U=new URLSearchParams(E.search);if(u==="json"){H();let T=v!==void 0?v:V({include:f,exclude:m});_();let F=JSON.stringify(T);ot(t)?Y.body=F:U.set("datastar",F)}else if(u==="form"){let T=l?document.querySelector(l):r.closest("form");if(!T)throw i("FetchFormNotFound",{action:D,selector:l});if(!T.noValidate&&!T.checkValidity()){T.reportValidity();return}let F=new FormData(T),S=r;if(r===T&&s instanceof SubmitEvent)S=s.submitter;else{let M=pe=>pe.preventDefault();T.addEventListener("submit",M),de=()=>{T.removeEventListener("submit",M)}}if(S instanceof HTMLButtonElement||S instanceof HTMLInputElement&&S.type==="submit"){let M=S.getAttribute("name");M&&F.append(M,S.value)}let A=T.getAttribute("enctype")==="multipart/form-data";A||(q["Content-Type"]="application/x-www-form-urlencoded");let X=new URLSearchParams(F);if(ot(t))A?Y.body=F:Y.body=X;else for(let[M,pe]of X)U.append(M,pe)}else throw i("FetchInvalidContentType",{action:D,contentType:u});return E.search=U.toString(),Y.input=E.toString(),Y};re(at,r,{});try{await Ln(r,Ge)}catch(E){if(!Vt(E))throw i("FetchFailed",{method:t,url:a,error:E.message})}}finally{re(ct,r,{}),de(),o.delete(`@${e}`)}}});Te("get","GET",!1);Te("patch","PATCH");Te("post","POST");Te("put","PUT");Te("delete","DELETE");var at="started",ct="finished",Sn="error",Tn="retrying",An="retries-failed",re=(e,t,n)=>document.dispatchEvent(new CustomEvent(j,{detail:{type:e,el:t,argsRaw:n}})),Vt=e=>`${e}`.includes("text/event-stream"),Rn=async(e,t)=>{let n=e.getReader(),r=await n.read();for(;!r.done;)t(r.value),r=await n.read()},wn=e=>{let t,n,r,s=!1;return i=>{t?t=xn(t,i):(t=i,n=0,r=-1);let o=t.length,a=0;for(;n{let r=$t(),s=new TextDecoder;return(i,o)=>{if(!i.length)n?.(r),r=$t();else if(o>0){let a=s.decode(i.subarray(0,o)),l=o+(i[o+1]===32?2:1),c=s.decode(i.subarray(l));switch(a){case"data":r.data=r.data?`${r.data} -${c}`:c;break;case"event":r.event=c;break;case"id":e(r.id=c);break;case"retry":{let u=+c;Number.isNaN(u)||t(r.retry=u);break}}}}},xn=(e,t)=>{let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n},$t=()=>({data:"",event:"",id:"",retry:void 0}),Ln=(e,t)=>new Promise((n,r)=>{let s=t();if(!s)return;let{input:i,signal:o,headers:a,onopen:l,onmessage:c,onclose:u,openWhenHidden:f,fetch:m,retry:h="auto",retryInterval:v=1e3,retryScaler:d=2,retryMaxWait:g=3e4,retryMaxCount:b=10,responseOverrides:y,...$}=s,O={...a},C,de=()=>{if(C.abort(),!document.hidden){let S=t();if(!S)return;i=S.input,$.body=S.body,F()}};f||document.addEventListener("visibilitychange",de);let ie,q=()=>{document.removeEventListener("visibilitychange",de),clearTimeout(ie),C.abort()};o?.addEventListener("abort",()=>{q(),n()});let Y=m||window.fetch,Ge=l||(()=>{}),E=0,U=v,T=()=>{E{C=new AbortController;let S=C.signal;try{let A=await Y(i,{...$,headers:O,signal:S});await Ge(A);let X=async(G,me,Be,we,...on)=>{let gt={[Be]:await me.text()};for(let We of on){let Ue=me.headers.get(`datastar-${ae(We)}`);if(we){let Me=we[We];Me&&(Ue=typeof Me=="string"?Me:JSON.stringify(Me))}Ue&&(gt[We]=Ue)}re(G,e,gt),q(),n()},M=A.status,pe=M===204,mt=M>=300&&M<400,sn=M>=400&&M<600;if(M!==200){if(u?.(),h!=="never"&&!pe&&!mt&&(h==="always"||h==="error"&&sn)){T();return}q(),n();return}E=0,v=U;let je=A.headers.get("Content-Type");if(je?.includes("text/html"))return await X("datastar-patch-elements",A,"elements",y,"selector","mode","namespace","useViewTransition");if(je?.includes("application/json"))return await X("datastar-patch-signals",A,"signals",y,"onlyIfMissing");if(je?.includes("text/javascript")){let G=document.createElement("script"),me=A.headers.get("datastar-script-attributes");if(me)for(let[Be,we]of Object.entries(JSON.parse(me)))G.setAttribute(Be,we);G.textContent=await A.text(),document.head.appendChild(G),q();return}if(await Rn(A.body,wn(Mn(G=>{G?O["last-event-id"]=G:delete O["last-event-id"]},G=>{U=v=G},c))),u?.(),h==="always"&&!mt){T();return}q(),n()}catch{if(!S.aborted)try{T()}catch(A){q(),r(A)}}};F()});p({name:"attr",requirement:{value:"must"},returnsValue:!0,apply({el:e,key:t,rx:n}){let r=(a,l)=>{l===""||l===!0?e.setAttribute(a,""):l===!1||l==null?e.removeAttribute(a):typeof l=="string"?e.setAttribute(a,l):typeof l=="function"?e.setAttribute(a,l.toString()):e.setAttribute(a,JSON.stringify(l,(c,u)=>typeof u=="function"?u.toString():u))},s=t?()=>{i.disconnect();let a=n();r(t,a),i.observe(e,{attributeFilter:[t]})}:()=>{i.disconnect();let a=n(),l=Object.keys(a);for(let c of l)r(c,a[c]);i.observe(e,{attributeFilter:l})},i=new MutationObserver(s),o=w(s);return()=>{i.disconnect(),o()}}});var Ve=(e,...t)=>({get:n=>n[e],set:(n,r)=>{n[e]=r},events:t}),qt=(e,...t)=>({get:n=>n.getAttribute(e),set:(n,r)=>{n.setAttribute(e,`${r}`)},events:t}),lt=(e=!1,...t)=>({get:(n,r)=>r==="string"||e&&r==="undefined"?n.value:+n.value,set:(n,r)=>{n.value=`${r}`},events:t}),Nn=/^data:(?[^;]+);base64,(?.*)$/,Gt=Symbol("empty"),Pn=(e,t,n,r,s,i)=>{let o=W(CSS.escape(n)),a=t?`[${o}]`:`[${o}="${CSS.escape(r)}"]`;if(i===void 0&&e instanceof HTMLInputElement&&e.type==="radio"){let f=[...document.querySelectorAll(a)].find(m=>m instanceof HTMLInputElement&&m.checked);f&&R([[r,f.value]],{ifMissing:!0})}if(!Array.isArray(i)||e instanceof HTMLSelectElement&&e.multiple)return R([[r,s.get(e,typeof i)]],{ifMissing:!0}),r;let l=document.querySelectorAll(a),c=[],u=0;for(let f of l){if(c.push([`${r}.${u}`,s.get(f,typeof(x(i,u)?i[u]:void 0))]),e===f)break;u++}return R(c,{ifMissing:!0}),`${r}.${u}`};p({name:"bind",requirement:"exclusive",apply({el:e,key:t,rawKey:n,mods:r,value:s,error:i}){let o=t!=null?P(t,r):s,a=r.get("prop"),l=r.get("event"),c=null;if(e instanceof HTMLInputElement)switch(e.type){case"range":case"number":c=lt(!1,"input");break;case"checkbox":c={get:(d,g)=>d.value!=="on"?g==="boolean"?d.checked:d.checked?d.value:"":g==="string"?d.checked?d.value:"":d.checked,set:(d,g)=>{d.checked=typeof g=="string"?g===d.value:g},events:["input"]};break;case"radio":e.getAttribute("name")?.length||e.setAttribute("name",o),c={get:(d,g)=>d.checked?g==="number"?+d.value:d.value:Gt,set:(d,g)=>{d.checked=g===(typeof g=="number"?+d.value:d.value)},events:["input"]};break;case"file":{let d=()=>{let g=[...e.files||[]],b=[];Promise.all(g.map(y=>new Promise($=>{let O=new FileReader;O.onload=()=>{if(typeof O.result!="string")throw i("InvalidFileResultType",{resultType:typeof O.result});let C=O.result.match(Nn);if(!C?.groups)throw i("InvalidDataUri",{result:O.result});b.push({name:y.name,contents:C.groups.contents,mime:C.groups.mime})},O.onloadend=()=>$(),O.readAsDataURL(y)}))).then(()=>{R([[o,b]])})};return e.addEventListener("change",d),()=>{e.removeEventListener("change",d)}}default:c=lt(!0,"input")}else if(e instanceof HTMLSelectElement&&e.multiple){let d=new Map;c={get:g=>[...g.selectedOptions].map(b=>{let y=d.get(b.value);return y==="string"||y==null?b.value:+b.value}),set:(g,b)=>{for(let y of g.options)b.includes(y.value)?(d.set(y.value,"string"),y.selected=!0):b.includes(+y.value)?(d.set(y.value,"number"),y.selected=!0):y.selected=!1},events:["change"]}}else e instanceof HTMLSelectElement?c=lt(!0,"change"):e instanceof HTMLTextAreaElement?c=Ve("value","input"):e instanceof HTMLElement&&e.tagName.includes("-")?c="value"in e?Ve("value","input","change"):qt("value","input","change"):e instanceof HTMLElement&&"value"in e?c=Ve("value","change"):c=qt("value","change");if(!c)throw i("InvalidBindAdapter");let u=a&&[...a][0];if(a&&!u)throw i("BindPropNameMissing");if(u){let d=Pt(u);c=Ve(d,...l?[...l]:c.events)}else l&&(c.events=[...l]);let f=oe(o),m=Pn(e,t,n,o,c,f),h=()=>{let d=oe(m);if(d!=null){let g=c.get(e,typeof d);g!==Gt&&R([[m,g]])}};for(let d of c.events)e.addEventListener(d,h);e.addEventListener(ge,h);let v=w(()=>{c.set(e,oe(m))});return()=>{v();for(let d of c.events)e.removeEventListener(d,h);e.removeEventListener(ge,h)}}});p({name:"class",requirement:{value:"must"},returnsValue:!0,apply({key:e,el:t,mods:n,rx:r}){e&&=P(e,n,"kebab");let s,i=()=>{o.disconnect(),s=e?{[e]:r()}:r();for(let l in s){let c=l.split(/\s+/).filter(u=>u.length>0);if(s[l])for(let u of c)t.classList.contains(u)||t.classList.add(u);else for(let u of c)t.classList.contains(u)&&t.classList.remove(u)}o.observe(t,{attributeFilter:["class"]})},o=new MutationObserver(i),a=w(i);return()=>{o.disconnect(),a();for(let l in s){let c=l.split(/\s+/).filter(u=>u.length>0);for(let u of c)t.classList.remove(u)}}}});p({name:"computed",requirement:{value:"must"},returnsValue:!0,apply({key:e,mods:t,rx:n,error:r}){if(e)R([[P(e,t),_e(n)]]);else{let s=Object.assign({},n());te(s,i=>{if(typeof i=="function")return _e(i);throw r("ComputedExpectedFunction")}),k(s)}}});p({name:"effect",requirement:{key:"denied",value:"must"},apply:({rx:e})=>w(e)});p({name:"indicator",requirement:"exclusive",apply({el:e,key:t,mods:n,value:r}){let s=t!=null?P(t,n):r,i=0;R([[s,!1]]);let o=a=>{let{type:l,el:c}=a.detail;if(c===e)switch(l){case at:i++,R([[s,!0]]);break;case ct:i=Math.max(0,i-1),R([[s,i>0]]);break}};return document.addEventListener(j,o),()=>{i=0,R([[s,!1]]),document.removeEventListener(j,o)}}});var Z=e=>{if(!e||e.size<=0)return 0;for(let t of e){if(t.endsWith("ms"))return+t.replace("ms","");if(t.endsWith("s"))return+t.replace("s","")*1e3;try{return Number.parseFloat(t)}catch{}}return 0},se=(e,t,n=!1)=>e?e.has(t.toLowerCase()):n,jt=(e,t="")=>{if(e&&e.size>0)for(let n of e)return n;return t};var ut=(e,t)=>(...n)=>{setTimeout(()=>{e(...n)},t)},Bt=(e,t,n=!0,r=!1,s=!1)=>{let i=null,o=0;return(...a)=>{n&&!o?(e(...a),i=null):i=a,(!o||s)&&(o&&clearTimeout(o),o=setTimeout(()=>{r&&i!==null&&e(...i),i=null,o=0},t))}},le=(e,t)=>{let n=t.get("delay");if(n){let i=Z(n);e=ut(e,i)}let r=t.get("debounce");if(r){let i=Z(r),o=se(r,"leading",!1),a=!se(r,"notrailing",!1);e=Bt(e,i,o,a,!0)}let s=t.get("throttle");if(s){let i=Z(s),o=!se(s,"noleading",!1),a=se(s,"trailing",!1);e=Bt(e,i,o,a)}return e};var $e=(e=document.documentElement)=>"startViewTransition"in e,Q=(e,t)=>{if(t.has("viewtransition")&&$e()){let n=e;e=(...r)=>document.startViewTransition(()=>n(...r))}return e};p({name:"init",requirement:{key:"denied",value:"must"},apply({rx:e,mods:t}){let n=()=>{L(),e(),N()};n=Q(n,t);let r=0,s=t.get("delay");s&&(r=Z(s),r>0&&(n=ut(n,r))),n()}});p({name:"json-signals",requirement:{key:"denied"},apply({el:e,value:t,mods:n}){let r=n.has("terse")?0:2,s={};t&&(s=ce(t));let i=()=>{o.disconnect(),e.textContent=JSON.stringify(V(s),null,r),o.observe(e,{childList:!0,characterData:!0,subtree:!0})},o=new MutationObserver(i),a=w(i);return()=>{o.disconnect(),a()}}});p({name:"on",requirement:"must",argNames:["evt"],apply({el:e,key:t,mods:n,rx:r}){let s=e;n.has("window")?s=window:n.has("document")&&(s=document);let i=c=>{L(),r(c),N()};i=Q(i,n),i=le(i,n);let o=P(t,n,"kebab"),a={capture:n.has("capture"),passive:n.has("passive"),once:n.has("once")};if(n.has("outside")){s=document;let c=i;i=u=>{e.contains(u?.target)||c(u)}}(o===j||o===ee)&&(s=document);let l=c=>{c&&(n.has("prevent")&&c.preventDefault(),n.has("stop")&&c.stopPropagation(),e instanceof HTMLFormElement&&o==="submit"&&c.preventDefault()),i(c)};return s.addEventListener(o,l,a),()=>{s.removeEventListener(o,l,a)}}});var Wt=(e,t,n)=>Math.max(t,Math.min(n,e));var ft=new WeakSet;p({name:"on-intersect",requirement:{key:"denied",value:"must"},apply({el:e,mods:t,rx:n}){let r=()=>{L(),n(),N()};r=Q(r,t),r=le(r,t);let s={threshold:0};if(t.has("full"))s.threshold=1;else if(t.has("half"))s.threshold=.5;else{let a=t.get("threshold");a&&(s.threshold=Wt(Number(jt(a)),0,100)/100)}let i=t.has("exit"),o=new IntersectionObserver(a=>{for(let l of a)l.isIntersecting!==i&&(r(),o&&ft.has(e)&&o.disconnect())},s);return o.observe(e),t.has("once")&&ft.add(e),()=>{t.has("once")||ft.delete(e),o&&(o.disconnect(),o=null)}}});p({name:"on-interval",requirement:{key:"denied",value:"must"},apply({mods:e,rx:t}){let n=()=>{L(),t(),N()};n=Q(n,e);let r=1e3,s=e.get("duration");s&&(r=Z(s),se(s,"leading",!1)&&n());let i=setInterval(n,r);return()=>{clearInterval(i)}}});p({name:"on-signal-patch",requirement:{value:"must"},argNames:["patch"],returnsValue:!0,apply({el:e,key:t,mods:n,rx:r,error:s}){if(t&&t!=="filter")throw s("KeyNotAllowed");let i=W(`${this.name}-filter`),o=e.getAttribute(i),a={};o&&(a=ce(o));let l=!1,c=le(u=>{if(l)return;let f=V(a,u.detail);if(!vt(f)){l=!0,L();try{r(f)}finally{N(),l=!1}}},n);return document.addEventListener(ee,c),()=>{document.removeEventListener(ee,c)}}});p({name:"ref",requirement:"exclusive",apply({el:e,key:t,mods:n,value:r}){let s=t!=null?P(t,n):r;R([[s,e]])}});var Ut="none",Jt="display";p({name:"show",requirement:{key:"denied",value:"must"},returnsValue:!0,apply({el:e,rx:t}){let n=()=>{r.disconnect(),t()?e.style.display===Ut&&e.style.removeProperty(Jt):e.style.setProperty(Jt,Ut),r.observe(e,{attributeFilter:["style"]})},r=new MutationObserver(n),s=w(n);return()=>{r.disconnect(),s()}}});p({name:"signals",returnsValue:!0,apply({key:e,mods:t,rx:n}){let r=t.has("ifmissing");if(e){e=P(e,t);let s=n?.();R([[e,s]],{ifMissing:r})}else{let s=Object.assign({},n?.());k(s,{ifMissing:r})}}});p({name:"style",requirement:{value:"must"},returnsValue:!0,apply({key:e,el:t,rx:n}){let{style:r}=t,s=new Map,i=(c,u)=>{let f=s.get(c);!u&&u!==0?f!==void 0&&(f?r.setProperty(c,f):r.removeProperty(c)):(f===void 0&&s.set(c,r.getPropertyValue(c)),r.setProperty(c,String(u)))},o=()=>{if(a.disconnect(),e)i(e,n());else{let c=n();for(let[u,f]of s)u in c||(f?r.setProperty(u,f):r.removeProperty(u));for(let u in c)i(ae(u),c[u])}a.observe(t,{attributeFilter:["style"]})},a=new MutationObserver(o),l=w(o);return()=>{a.disconnect(),l();for(let[c,u]of s)u?r.setProperty(c,u):r.removeProperty(c)}}});p({name:"text",requirement:{key:"denied",value:"must"},returnsValue:!0,apply({el:e,rx:t}){let n=()=>{r.disconnect(),e.textContent=`${t()}`,r.observe(e,{childList:!0,characterData:!0,subtree:!0})},r=new MutationObserver(n),s=w(n);return()=>{r.disconnect(),s()}}});var Kt=(e,t)=>e.includes(t),On=["remove","outer","inner","replace","prepend","append","before","after"],Cn=["html","svg","mathml"];Se({name:"datastar-patch-elements",apply(e,t){let n=typeof t.selector=="string"?t.selector:"",r=typeof t.mode=="string"?t.mode:"outer",s=typeof t.namespace=="string"?t.namespace:"html",i=typeof t.useViewTransition=="string"&&t.useViewTransition.trim()==="true",o=typeof t.viewTransitionSelector=="string"?t.viewTransitionSelector:"",a=t.elements;if(!Kt(On,r))throw e.error("PatchElementsInvalidMode",{mode:r});if(!n&&r!=="outer"&&r!=="replace")throw e.error("PatchElementsExpectedSelector");if(!Kt(Cn,s))throw e.error("PatchElementsInvalidNamespace",{namespace:s});let l={selector:n,mode:r,namespace:s,elements:a};if(i&&$e()){let c=document.documentElement;if(o){let u=document.querySelector(o);u&&$e(u)&&(c=u)}c.startViewTransition(()=>zt(e,l))}else zt(e,l)}});var zt=({error:e},{selector:t,mode:n,namespace:r,elements:s})=>{let i=document.createDocumentFragment(),o=typeof s!="string"&&!!s;if(typeof s=="string"){let a=s.replace(/]*>|>)([\s\S]*?)<\/svg>/gim,""),l=/<\/html>/.test(a),c=/<\/head>/.test(a),u=/<\/body>/.test(a),f=r==="svg"?"svg":r==="mathml"?"math":"",m=f?`<${f}>${s}`:s,h=new DOMParser().parseFromString(l||c||u?s:``,"text/html");if(l)i.appendChild(h.documentElement);else if(c&&u)i.appendChild(h.head),i.appendChild(h.body);else if(c)i.appendChild(h.head);else if(u)i.appendChild(h.body);else if(f){let v=h.querySelector("template").content.querySelector(f);for(let d of v.childNodes)i.appendChild(d)}else i=h.querySelector("template").content}else s&&(s instanceof DocumentFragment?i=s:s instanceof Element&&i.appendChild(s));if(!t&&(n==="outer"||n==="replace")){let a=Array.from(i.children);for(let l of a){let c;if(l instanceof HTMLHtmlElement)c=document.documentElement;else if(l instanceof HTMLBodyElement)c=document.body;else if(l instanceof HTMLHeadElement)c=document.head;else if(c=document.getElementById(l.id),!c){console.warn(e("PatchElementsNoTargetsFound"),{element:{id:l.id}});continue}Qt(n,l,[c],!0)}}else{let a=document.querySelectorAll(t);if(!a.length){console.warn(e("PatchElementsNoTargetsFound"),{selector:t});return}let l=o&&n!=="remove"?[a[0]]:a;l.length===1&&(o=!0),Qt(n,i,l,o)}},pt=new WeakSet;for(let e of document.querySelectorAll("script"))pt.add(e);var tn=e=>{let t=e instanceof HTMLScriptElement?[e]:e.querySelectorAll("script");for(let n of t)if(!pt.has(n)){let r=document.createElement("script");for(let{name:s,value:i}of n.attributes)r.setAttribute(s,i);r.text=n.text,n.replaceWith(r),pt.add(r)}},Zt=(e,t,n,r)=>{let s=!1;for(let i of e){if(r&&s)break;let o=r?t:t.cloneNode(!0);tn(o),i[n](o),s=!0}},Qt=(e,t,n,r)=>{switch(e){case"remove":for(let s of n)s.remove();break;case"outer":case"inner":{let s=!1;for(let i of n){if(r&&s)break;let o=r?t:t.cloneNode(!0);Hn(i,o,e),tn(i);let a=i.closest("[data-scope-children]");a&&a.dispatchEvent(new CustomEvent(ze,{bubbles:!1})),s=!0}}break;case"replace":Zt(n,t,"replaceWith",r);break;case"prepend":case"append":case"before":case"after":Zt(n,t,e,r)}},I=new Map,fe=new Set,ue=new Map,Ae=new Set,qe=document.createElement("div");qe.hidden=!0;var Re=W("ignore-morph"),Fn=`[${Re}]`,Hn=(e,t,n="outer")=>{if(z(e)&&z(t)&&e.hasAttribute(Re)&&t.hasAttribute(Re)||e.parentElement?.closest(Fn))return;let r=document.createElement("div");r.append(t),document.body.insertAdjacentElement("afterend",qe);let s=e.querySelectorAll("[id]");for(let{id:a,tagName:l}of s)ue.has(a)?Ae.add(a):ue.set(a,l);e instanceof Element&&e.id&&(ue.has(e.id)?Ae.add(e.id):ue.set(e.id,e.tagName)),fe.clear();let i=r.querySelectorAll("[id]");for(let{id:a,tagName:l}of i)fe.has(a)?Ae.add(a):ue.get(a)===l&&fe.add(a);for(let a of Ae)fe.delete(a);ue.clear(),Ae.clear(),I.clear();let o=n==="outer"?e.parentElement:e;en(o,s),en(r,i),nn(o,r,n==="outer"?e:null,e.nextSibling),qe.remove()},nn=(e,t,n=null,r=null)=>{e instanceof HTMLTemplateElement&&t instanceof HTMLTemplateElement&&(e=e.content,t=t.content),n??=e.firstChild;for(let s of t.childNodes){if(n&&n!==r){let i=_n(s,n,r);if(i){if(i!==n){let o=n;for(;o&&o!==i;){let a=o;o=o.nextSibling,Xt(a)}}dt(i,s),n=i.nextSibling;continue}}if(s instanceof Element&&fe.has(s.id)){let i=document.getElementById(s.id),o=i;for(;o=o.parentNode;){let a=I.get(o);a&&(a.delete(s.id),a.size||I.delete(o))}rn(e,i,n),dt(i,s),n=i.nextSibling;continue}if(I.has(s)){let i=s.namespaceURI,o=s.tagName,a=i&&i!=="http://www.w3.org/1999/xhtml"?document.createElementNS(i,o):document.createElement(o);e.insertBefore(a,n),dt(a,s),n=a.nextSibling}else{let i=document.importNode(s,!0);e.insertBefore(i,n),n=i.nextSibling}}for(;n&&n!==r;){let s=n;n=n.nextSibling,Xt(s)}},_n=(e,t,n)=>{let r=null,s=e.nextSibling,i=0,o=0,a=I.get(e)?.size||0,l=t;for(;l&&l!==n;){if(Yt(l,e)){let c=!1,u=I.get(l),f=I.get(e);if(f&&u){for(let m of u)if(f.has(m)){c=!0;break}}if(c)return l;if(!r&&!I.has(l)){if(!a)return l;r=l}}if(o+=I.get(l)?.size||0,o>a)break;r===null&&s&&Yt(l,s)&&(i++,s=s.nextSibling,i>=2&&(r=void 0)),l=l.nextSibling}return r||null},Yt=(e,t)=>e.nodeType===t.nodeType&&e.tagName===t.tagName&&(!e.id||e.id===t.id),Xt=e=>{I.has(e)?rn(qe,e,null):e.parentNode?.removeChild(e)},rn=(e,t,n)=>{if("moveBefore"in e){e.moveBefore(t,n);return}e.insertBefore(t,n)},kn=W("preserve-attr"),dt=(e,t)=>{let n=t.nodeType;if(n===1){let r=e,s=t,i=r.hasAttribute("data-scope-children");if(r.hasAttribute(Re)&&s.hasAttribute(Re))return e;let o=(t.getAttribute(kn)??"").split(" "),a=(c,u,f)=>{let m=u.hasAttribute(f);return c.hasAttribute(f)!==m&&!o.includes(f)?(c[f]=m,!0):!1},l=!1;if(r instanceof HTMLInputElement&&s instanceof HTMLInputElement&&s.type!=="file"){let c=s.getAttribute("value");r.getAttribute("value")!==c&&!o.includes("value")&&(r.value=c??"",l=!0),l=a(r,s,"checked")||l,a(r,s,"disabled")}else if(r instanceof HTMLTextAreaElement&&s instanceof HTMLTextAreaElement){let c=s.value;r.defaultValue!==c&&(r.value=c,l=!0)}else r instanceof HTMLOptionElement&&s instanceof HTMLOptionElement&&(l=a(r,s,"selected")||l);for(let{name:c,value:u}of s.attributes)r.getAttribute(c)!==u&&!o.includes(c)&&r.setAttribute(c,u);for(let{name:c}of Array.from(r.attributes))!s.hasAttribute(c)&&!o.includes(c)&&r.removeAttribute(c);l&&(r instanceof HTMLOptionElement?r.closest("select"):r)?.dispatchEvent(new Event(ge,{bubbles:!0})),i&&!r.hasAttribute("data-scope-children")&&r.setAttribute("data-scope-children",""),r instanceof HTMLTemplateElement&&s instanceof HTMLTemplateElement?r.innerHTML=s.innerHTML:r.isEqualNode(s)||nn(r,s),i&&r.dispatchEvent(new CustomEvent(ze,{bubbles:!1}))}return(n===8||n===3)&&e.nodeValue!==t.nodeValue&&(e.nodeValue=t.nodeValue),e},en=(e,t)=>{for(let n of t)if(fe.has(n.id)){let r=n;for(;r&&r!==e;){let s=I.get(r);s||(s=new Set,I.set(r,s)),s.add(n.id),r=r.parentElement}}};Se({name:"datastar-patch-signals",apply({error:e},{signals:t,onlyIfMissing:n}){if(typeof t!="string")throw e("PatchSignalsExpectedSignals");let r=typeof n=="string"&&n.trim()==="true";k(ce(t),{ifMissing:r})}});export{D as action,kt as actions,p as attribute,L as beginBatch,_e as computed,w as effect,N as endBatch,V as filtered,oe as getPath,k as mergePatch,R as mergePaths,ne as root,he as signal,H as startPeeking,_ as stopPeeking,Se as watcher}; -//# sourceMappingURL=datastar.js.map diff --git a/static/vendor/font-awesome/css/all.min.css b/static/vendor/font-awesome/css/all.min.css new file mode 100644 index 0000000..0a2cf52 --- /dev/null +++ b/static/vendor/font-awesome/css/all.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.0.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-duotone,.fa-light,.fa-regular,.fa-solid,.fa-thin,.fab,.fad,.fal,.far,.fas,.fat{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-a:before{content:"\41"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-anchor:before{content:"\f13d"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-ankh:before{content:"\f644"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-archway:before{content:"\f557"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-arrow-trend-down:before{content:"\e097"}.fa-arrow-trend-up:before{content:"\e098"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-asterisk:before{content:"\2a"}.fa-at:before{content:"\40"}.fa-atom:before{content:"\f5d2"}.fa-audio-description:before{content:"\f29e"}.fa-austral-sign:before{content:"\e0a9"}.fa-award:before{content:"\f559"}.fa-b:before{content:"\42"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-backward:before{content:"\f04a"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-bahai:before{content:"\f666"}.fa-baht-sign:before{content:"\e0ac"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-barcode:before{content:"\f02a"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-bell:before{content:"\f0f3"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bicycle:before{content:"\f206"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blog:before{content:"\f781"}.fa-bold:before{content:"\f032"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-bookmark:before{content:"\f02e"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broom:before{content:"\f51a"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-brush:before{content:"\f55d"}.fa-bug:before{content:"\f188"}.fa-bug-slash:before{content:"\e490"}.fa-building:before{content:"\f1ad"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-c:before{content:"\43"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-week:before{content:"\f784"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-camera-rotate:before{content:"\e0d8"}.fa-campground:before{content:"\f6bb"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-cart-plus:before{content:"\f217"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cedi-sign:before{content:"\e0df"}.fa-cent-sign:before{content:"\e3f5"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-charging-station:before{content:"\f5e7"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-chart-column:before{content:"\e0e3"}.fa-chart-gantt:before{content:"\e0e4"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-double:before{content:"\f560"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-circle-notch:before{content:"\f1ce"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-city:before{content:"\f64f"}.fa-clapperboard:before{content:"\e131"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-clover:before{content:"\e139"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-code-commit:before{content:"\f386"}.fa-code-compare:before{content:"\e13a"}.fa-code-fork:before{content:"\e13b"}.fa-code-merge:before{content:"\f387"}.fa-code-pull-request:before{content:"\e13c"}.fa-coins:before{content:"\f51e"}.fa-colon-sign:before{content:"\e140"}.fa-comment:before{content:"\f075"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-compress:before{content:"\f066"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-d:before{content:"\44"}.fa-database:before{content:"\f1c0"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-democrat:before{content:"\f747"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-dharmachakra:before{content:"\f655"}.fa-diagram-next:before{content:"\e476"}.fa-diagram-predecessor:before{content:"\e477"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-diagram-successor:before{content:"\e47a"}.fa-diamond:before{content:"\f219"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dna:before{content:"\f471"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-dong-sign:before{content:"\e169"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dove:before{content:"\f4ba"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-download:before{content:"\f019"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-e:before{content:"\45"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elevator:before{content:"\e16d"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-equals:before{content:"\3d"}.fa-eraser:before{content:"\f12d"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-exclamation:before{content:"\21"}.fa-expand:before{content:"\f065"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-eye-slash:before{content:"\f070"}.fa-f:before{content:"\46"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-fan:before{content:"\f863"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-file:before{content:"\f15b"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-excel:before{content:"\f1c3"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-file-medical:before{content:"\f477"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-video:before{content:"\f1c8"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-file-word:before{content:"\f1c2"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-fish:before{content:"\f578"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-florin-sign:before{content:"\e184"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-folder-tree:before{content:"\f802"}.fa-font:before{content:"\f031"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-franc-sign:before{content:"\e18f"}.fa-frog:before{content:"\f52e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-g:before{content:"\47"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-glasses:before{content:"\f530"}.fa-globe:before{content:"\f0ac"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-greater-than:before{content:"\3e"}.fa-greater-than-equal:before{content:"\f532"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-guarani-sign:before{content:"\e19a"}.fa-guitar:before{content:"\f7a6"}.fa-gun:before{content:"\e19b"}.fa-h:before{content:"\48"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-hands-clapping:before{content:"\e1a8"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-handshake:before{content:"\f2b5"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-hashtag:before{content:"\23"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-highlighter:before{content:"\f591"}.fa-hippo:before{content:"\f6ed"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hourglass-2:before,.fa-hourglass-half:before,.fa-hourglass:before{content:"\f254"}.fa-hourglass-empty:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-house-chimney-user:before{content:"\e065"}.fa-house-chimney-window:before{content:"\e00d"}.fa-house-crack:before{content:"\e3b1"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-house-medical:before{content:"\e3b2"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-i:before{content:"\49"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-images:before{content:"\f302"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-italic:before{content:"\f033"}.fa-j:before{content:"\4a"}.fa-jedi:before{content:"\f669"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-joint:before{content:"\f595"}.fa-k:before{content:"\4b"}.fa-kaaba:before{content:"\f66b"}.fa-key:before{content:"\f084"}.fa-keyboard:before{content:"\f11c"}.fa-khanda:before{content:"\f66d"}.fa-kip-sign:before{content:"\e1c4"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-kiwi-bird:before{content:"\f535"}.fa-l:before{content:"\4c"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-lari-sign:before{content:"\e1c8"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-lemon:before{content:"\f094"}.fa-less-than:before{content:"\3c"}.fa-less-than-equal:before{content:"\f537"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-lira-sign:before{content:"\f195"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-location-arrow:before{content:"\f124"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-m:before{content:"\4d"}.fa-magnet:before{content:"\f076"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-manat-sign:before{content:"\e1d5"}.fa-map:before{content:"\f279"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-pin:before{content:"\f276"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-and-venus:before{content:"\f224"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-mask:before{content:"\f6fa"}.fa-mask-face:before{content:"\e1d7"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-medal:before{content:"\f5a2"}.fa-memory:before{content:"\f538"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-mill-sign:before{content:"\e1ed"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-mitten:before{content:"\f7b5"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-mobile-button:before{content:"\f10b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mug-hot:before{content:"\f7b6"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-music:before{content:"\f001"}.fa-n:before{content:"\4e"}.fa-naira-sign:before{content:"\e1f6"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-not-equal:before{content:"\f53e"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-notes-medical:before{content:"\f481"}.fa-o:before{content:"\4f"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-oil-can:before{content:"\f613"}.fa-om:before{content:"\f679"}.fa-otter:before{content:"\f700"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-p:before{content:"\50"}.fa-pager:before{content:"\f815"}.fa-paint-roller:before{content:"\f5aa"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-palette:before{content:"\f53f"}.fa-pallet:before{content:"\f482"}.fa-panorama:before{content:"\e209"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-passport:before{content:"\f5ab"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-pause:before{content:"\f04c"}.fa-paw:before{content:"\f1b0"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-person-booth:before{content:"\f756"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-peseta-sign:before{content:"\e221"}.fa-peso-sign:before{content:"\e222"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-plug:before{content:"\f1e6"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-plus-minus:before{content:"\e43c"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-power-off:before{content:"\f011"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-puzzle-piece:before{content:"\f12e"}.fa-q:before{content:"\51"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\3f"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-r:before{content:"\52"}.fa-radiation:before{content:"\f7b9"}.fa-rainbow:before{content:"\f75b"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-recycle:before{content:"\f1b8"}.fa-registered:before{content:"\f25d"}.fa-repeat:before{content:"\f363"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-republican:before{content:"\f75e"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-ribbon:before{content:"\f4d6"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-route:before{content:"\f4d7"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-rupiah-sign:before{content:"\e23d"}.fa-s:before{content:"\53"}.fa-sailboat:before{content:"\e445"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-school:before{content:"\f549"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-screwdriver:before{content:"\f54a"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-scroll:before{content:"\f70e"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-sd-card:before{content:"\f7c2"}.fa-section:before{content:"\e447"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-server:before{content:"\f233"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-shield:before{content:"\f132"}.fa-shield-alt:before,.fa-shield-blank:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-shoe-prints:before{content:"\f54b"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-shower:before{content:"\f2cc"}.fa-shrimp:before{content:"\e448"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-sim-card:before{content:"\f7c4"}.fa-sink:before{content:"\e06d"}.fa-sitemap:before{content:"\f0e8"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-spa:before{content:"\f5bb"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-spray-can:before{content:"\f5bd"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-square:before{content:"\f0c8"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-square-full:before{content:"\f45c"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-stairs:before{content:"\e289"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-stethoscope:before{content:"\f0f1"}.fa-stop:before{content:"\f04d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-slash:before{content:"\e071"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stroopwafel:before{content:"\f551"}.fa-subscript:before{content:"\f12c"}.fa-suitcase:before{content:"\f0f2"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superscript:before{content:"\f12b"}.fa-swatchbook:before{content:"\f5c3"}.fa-synagogue:before{content:"\f69b"}.fa-syringe:before{content:"\f48e"}.fa-t:before{content:"\54"}.fa-table:before{content:"\f0ce"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-tablet-button:before{content:"\f10a"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-text-width:before{content:"\f035"}.fa-thermometer:before{content:"\f491"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-ticket:before{content:"\f145"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-timeline:before{content:"\e29c"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-torii-gate:before{content:"\f6a1"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-tractor:before{content:"\f722"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-train-tram:before,.fa-tram:before{content:"\f7da"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-u:before{content:"\55"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-universal-access:before{content:"\f29a"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-upload:before{content:"\f093"}.fa-user:before{content:"\f007"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-clock:before{content:"\f4fd"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-user-graduate:before{content:"\f501"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-user-injured:before{content:"\f728"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-user-lock:before{content:"\f502"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-v:before{content:"\56"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-vault:before{content:"\e2c5"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-virus:before{content:"\e074"}.fa-virus-covid:before{content:"\e4a8"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-vr-cardboard:before{content:"\f729"}.fa-w:before{content:"\57"}.fa-wallet:before{content:"\f555"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-wand-sparkles:before{content:"\f72b"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-wave-square:before{content:"\f83e"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-wheelchair:before{content:"\f193"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-wind:before{content:"\f72e"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-wrench:before{content:"\f0ad"}.fa-x:before{content:"\58"}.fa-x-ray:before{content:"\f497"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-y:before{content:"\59"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-z:before{content:"\5a"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-family:"Font Awesome 6 Brands";font-weight:400}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-alipay:before{content:"\f642"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-amilia:before{content:"\f36d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-artstation:before{content:"\f77a"}.fa-asymmetrik:before{content:"\f372"}.fa-atlassian:before{content:"\f77b"}.fa-audible:before{content:"\f373"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-aws:before{content:"\f375"}.fa-bandcamp:before{content:"\f2d5"}.fa-battle-net:before{content:"\f835"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bilibili:before{content:"\e3d9"}.fa-bimobject:before{content:"\f378"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bootstrap:before{content:"\f836"}.fa-bots:before{content:"\e340"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-buromobelexperte:before{content:"\f37f"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cmplid:before{content:"\e360"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-critical-role:before{content:"\f6c9"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dhl:before{content:"\f790"}.fa-diaspora:before{content:"\f791"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-draft2digital:before{content:"\f396"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drupal:before{content:"\f1a9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-elementor:before{content:"\f430"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-evernote:before{content:"\f839"}.fa-expeditedssl:before{content:"\f23e"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-figma:before{content:"\f799"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-fly:before{content:"\f417"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-fulcrum:before{content:"\f50b"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-gofore:before{content:"\f3a7"}.fa-golang:before{content:"\e40f"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-gulp:before{content:"\f3ae"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hashnode:before{content:"\e499"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-hive:before{content:"\e07f"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hotjar:before{content:"\f3b1"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-ideal:before{content:"\e013"}.fa-imdb:before{content:"\f2d8"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaggle:before{content:"\f5fa"}.fa-keybase:before{content:"\f4f5"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-korvue:before{content:"\f42f"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-leanpub:before{content:"\f212"}.fa-less:before{content:"\f41d"}.fa-line:before{content:"\f3c0"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-mailchimp:before{content:"\f59e"}.fa-mandalorian:before{content:"\f50f"}.fa-markdown:before{content:"\f60f"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medapps:before{content:"\f3c6"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-mendeley:before{content:"\f7b3"}.fa-microblog:before{content:"\e01a"}.fa-microsoft:before{content:"\f3ca"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-padlet:before{content:"\e4a0"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-palfed:before{content:"\f3d8"}.fa-patreon:before{content:"\f3d9"}.fa-paypal:before{content:"\f1ed"}.fa-perbyte:before{content:"\e083"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pix:before{content:"\e43a"}.fa-playstation:before{content:"\f3df"}.fa-product-hunt:before{content:"\f288"}.fa-pushed:before{content:"\f3e1"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-r-project:before{content:"\f4f7"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-renren:before{content:"\f18b"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-rev:before{content:"\f5b2"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rust:before{content:"\e07a"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-schlix:before{content:"\f3ea"}.fa-scribd:before{content:"\f28a"}.fa-searchengin:before{content:"\f3eb"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-servicestack:before{content:"\f3ec"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shopify:before{content:"\e057"}.fa-shopware:before{content:"\f5b5"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sith:before{content:"\f512"}.fa-sitrox:before{content:"\e44a"}.fa-sketch:before{content:"\f7c6"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-slideshare:before{content:"\f1e7"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-square:before{content:"\f2ad"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spotify:before{content:"\f1bc"}.fa-square-font-awesome:before{content:"\f425"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-sticker-mule:before{content:"\f3f7"}.fa-strava:before{content:"\f428"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-superpowers:before{content:"\f2dd"}.fa-supple:before{content:"\f3f9"}.fa-suse:before{content:"\f7d6"}.fa-swift:before{content:"\f8e1"}.fa-symfony:before{content:"\f83d"}.fa-teamspeak:before{content:"\f4f9"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-the-red-yeti:before{content:"\f69d"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-think-peaks:before{content:"\f731"}.fa-tiktok:before{content:"\e07b"}.fa-trade-federation:before{content:"\f513"}.fa-trello:before{content:"\f181"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-uncharted:before{content:"\e084"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-vaadin:before{content:"\f408"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-viber:before{content:"\f409"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-vuejs:before{content:"\f41f"}.fa-watchman-monitoring:before{content:"\e087"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-whmcs:before{content:"\f40d"}.fa-wikipedia-w:before{content:"\f266"}.fa-windows:before{content:"\f17a"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-family:"Font Awesome 6 Free";font-weight:400}:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-family:"Font Awesome 6 Free";font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f250,u+f252,u+f27a} \ No newline at end of file diff --git a/static/vendor/font-awesome/webfonts/fa-brands-400.ttf b/static/vendor/font-awesome/webfonts/fa-brands-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..227f022db56e00d2c6e2d444f2f916de92b6adf3 GIT binary patch literal 180148 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 O5KKgz7J^An&;J9n-|}<- literal 0 HcmV?d00001 diff --git a/static/vendor/font-awesome/webfonts/fa-brands-400.woff2 b/static/vendor/font-awesome/webfonts/fa-brands-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..73c5c129404948346d4a152dd336960e6dd00dd3 GIT binary patch literal 104544 zcmV*eKvBPUPew8T0RR910hnL_3IG5A0;wnf0hks80096100000000000000000000 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�W2R}QBhxeq9h1cg!GGftX^=H? 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 literal 0 HcmV?d00001 diff --git a/static/vendor/font-awesome/webfonts/fa-solid-900.ttf b/static/vendor/font-awesome/webfonts/fa-solid-900.ttf new file mode 100644 index 0000000000000000000000000000000000000000..99b35ad50535efa452e6a089df41b4cd95245bcd GIT binary patch literal 303480 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ఛ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 literal 0 HcmV?d00001 diff --git a/static/vendor/font-awesome/webfonts/fa-v4compatibility.ttf b/static/vendor/font-awesome/webfonts/fa-v4compatibility.ttf new file mode 100644 index 0000000000000000000000000000000000000000..be0afc27ae931ac286cc18c4dc297035eec7d56b GIT binary patch literal 10556 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 literal 0 HcmV?d00001 diff --git a/static/vendor/fonts/appreciation/great-vibes-latin.woff2 b/static/vendor/fonts/appreciation/great-vibes-latin.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3dc01f4d869ded4fe649f24c410cfc27e2319747 GIT binary patch literal 42800 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 literal 0 HcmV?d00001 diff --git a/static/vendor/fonts/certificate/cinzel-600.woff2 b/static/vendor/fonts/certificate/cinzel-600.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a4b5e1bfc3e571e66a4d847a3b87907080632186 GIT binary patch literal 15204 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 literal 0 HcmV?d00001 diff --git a/static/vendor/fonts/certificate/cinzel-700.woff2 b/static/vendor/fonts/certificate/cinzel-700.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a13fb080feada1f051a039ce619a6085ee6d8dc9 GIT binary patch literal 15184 zcmV-WJFmodPew8T0RR9106S0s5C8xG0EEy006Odd0RR9100000000000000000000 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ℑ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 PDZU#2$yV;8>Hz=%zN#iy literal 0 HcmV?d00001 diff --git a/static/vendor/fonts/certificate/cormorant-garamond-400.woff2 b/static/vendor/fonts/certificate/cormorant-garamond-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..096df0a938c4d1063e80fef6600d8610e7c51e2f GIT binary patch literal 22876 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%0D;1eL7o3^p0LU(7QI;3gT7}&!y;l)itq`m4<*+ z_;Im;FoKa^PYS&NQI`})!>7fl_YXDh z(U{*ADK6Bh$p<03UM`+T6EgUj=?%HhO7yI7f~Mf41FeYO8BVCMxExzNa{8f_JfnxW z4&u5LaFpr`?1K6o6ultm@FXH4!q6+qTpl*qsU7VS!t=%|yEetUXBR+cPDjmDf8`|} zQi;4#JPG2}nmIi{4q$E_&b6C1VA>H6#`sV~n~0udBtwl9*H5?24DRv`7*dHxNJPF8fdZ z(=*B#N0BTLiv^%Oz!^kTFpO|viy0S4yjv@n28blwLr51QBTCS9 zx8t4egC>Z7#Pi>g?(7V%)Cse-coz;XI5QIgFKJuvIuA6bc-fYm3i4pyUSJoBa_!Zb zy~Ol-aE0*}Lj7O@5s&vVO~UpNr#jh)8qpWr6kl;amj1k8+bh|)_H4X1qcTt-|_QT zRZMRdtytiepdBkjmHnl#2%E_-Td=Amy|f4vJ1%6?ENnTl= z^Px*P-_o}$K$uG))({dCumR-G8j0vw_`JWm4K zx=5`Moz3hJq>=7WE~Vyw4-tpVaLwL>@O47^XEemE#-%~x*AL*U24D1_4}LU2xKBtLpE%;7`D&JIC)oN;MBY6{e#^MUScoz9Hl$tFmX5+kpu3K8Va-}=#Zu!mL zl-XrqyK+32##^$tjLO0ystCqbk6K9GP`k73H(F!Okho99nqyHZv(Qs;1WJAPDaO2< zuhJg58{z!Gw;)CtqSiQ9Vb}w`^LbVF9K4F`ot~5#90C@*+5GR1(WKNN+sV!qO zPUSS+7R0Qr;blo)JdtF(n*{)wS|`Q-37nc)L*6x*UwFTuS)UH5g77XlIKQrU0`E4+ zg5h>JBuC_d=Aa@dYmWqxT~E(hB-=F}F4-^R$*_(Jq;FSWdqBJ^<+!Q9eDx0?ZkHpcSvZmnf+VDE8e&DPOsIdMe z20dn#FJp8vb`~(X&u-y!=)39d%vpPXmNO<^1PCSLrAgmR<6&*e2a>^MynNg&vW-Z_ zzLgXrnj`!Rf}?ymE~Yy((0<~=$JI3YMvx3D;>X2*tq8d{b4f9QOn~JYWIW#e>3cbM zEA=}qt2t}U^OYbOlmN^EAs-|Iy3DIZwK^KL!Vn$=?3$>q=4@Q0A5|smRYpg;JqpO-uRwz)KhYabWTdGk@a$k!wWrW{ z23-Vr>LETKqColi5EI*ludWT$l&;H_A?~Uxs|EQID0iE@GVMj-dBMeeqyqDYHYd+M z+NR%WS8`+9yFlHYu;k_U?PMY2D=P4{>S-j`ViXg4a zhU|Mm9$m_73sG$yZE%)8(KX2hbnZ_5&SPaeo7KT)WmwupFOpWc`#We=e=35x9+8({fnAd`N-n36=FH7m1WSS4$6&>7%*SCtn{ud-dHp`8SU>Q-utc z(B9qN;jylek4KR012=aB&40E|vTaFK&u`KK+k*5*=cvJe|LdRA0A`H*w(V=12ZhKG zdzFBHokNT2^}mI{mC}oPUW&&*|7Qkh%qMxG_0v~;mAg+e<%_353z9+hc0TVR8zMux zQVdnsPHlUw$JtjqMX0yQSgZ$sj;3$s-(2?`vHQPyG)fRFv{cpU2ZEKpp{|PAYHwn| zR#}Jkc_M`~TI+@_w$Ma>@!W>y(8}Se?9^GyXGc}D;*A{^r0Of4*L`cqRJCr^Y>PnU z%r8W=ev9CXYVXf7=ERDMcNA&SIrco?(+NJ6W&5h3SNlDS$jq)i>oeI#FTVXKXK@RM zG1@1~$d>2;PCJ^zD(8@{l@+y1vq}4mmdqS|SW=0T3y3aU<~~9l`zZB~nOgbB@{#He zX=oeK5|*Z+ND^xPpx*7 zjjs7J82R~&yQ(pp5XQ2=Rd#=3su4x=u~r17r+2Z9U1(e7#MdPDm%z%unq_}^g+eBM z0K-hFdP52Cv+qX)H96$PbQ_txYRyTFxC7CdQGdV`Qu+s*|ylSk=PIU5%w+R?%l2 zj->>vk2}@vs9VQ2g+&q3`)r8C`dviuo8J$huG&eHTr<-KRf~L!|LEq&OYr)ZPrVF( zOd*y5k3!~$ATNA%_!1}eh_>M}j}+Xy+jl|4(~2Q<15WrGG)<$dYM{YY$*?q1^s&$A z75wA(y@qv*$VHX|?BvN`Z&*+o5$BhQWDRq?R4S>u3ar}qQ}`bTzSw}tkk0I9YD++V zwKDvlm3+B=svppb6KeMFS`-QEDeJEudG_twW>~$n@QH^1K<<8b(Fw^Dlb)wQwcsHa z=4zv64A4v0J-(tdfMig}%y<*x+7bm9eOrInxhMCCjE#af@HEzZ4rg_E#=K zYq$2xeE+U8YkIf6@mt(njEyfdU}+tS{C13#`4uv(42vrHV_M7ejO!qC2-@%}=m1X3 z*W{0XniD{^CRb?x5X`fF&n;{4#LsT;Z0$^)t=53Pmrr$_m$1Vu?V^ar0|(V=aaH|x z^Mf^bUW3dt+G|q5^;7x^FTy)>rdny1TLrL*^Uh{`HVS_Krtk7;s6V&&>Uag2G>BI# zxK-`dRhi*FVU4d z8d(p=D@mm3WR+r#P!Qr7%7(-7kvgw(AlW?4QEpoNv>vrKxbTwd=*Au?nsCQge_$BG=jY^T{v9GUk>{93#t#-aKq zWqh4m`QsUB1z}D@A?=90@(;s}>t96)eIp90HnOo@`*jgH>Fx4dc8Tst#e2RFWi87p zcyu>R2+1c?%fjAb-ElzeQBMDIrB4Ko%GgRxQ&r($)ryEej=BT$96j?-Xt%kzg%b?+ zH%o8pUHt=I!r+_BSVX);uBK5y5)Le@3u_nOmim(}p}$EHrvmw)G|M|q0F8n6KI`c-aoJmRH&Zxkn#O> zxcatLfRjV3LAA^Y9CKUwIC!hN&+h}TW?L@cs|(NXJ)Oe#f&1}O_C1>ZIQ2vzc)&`Y z(`6_~p>DC?aM2+Swx0M7zc{^7nKZuaxsb6N9hW?3P=Bu!@FSSkWUzcu*HafLo%l*NKB`8C6QH`O}m-4r_oAYxqCvx_j-FJ%n zEczvL5}V_JK`2dLgtvmw0Jo;zWKos=5+hWK%XCZ%lR+<;H2Q(W<*kicWi@eIk2r|Hj9K+NcRlyIp8iiM?E)lz+647%YF^>P=+RE~M(1 z!Voq;9E=V`6l1qq6#vo09c_Vxd9u}vCwujH#eG(Oq|+@44}0kll!hs~j+x)#NTw^C zik6VmsHhNCM5}errKD%yV7#@3{1GDw(|Xl~Pz3nYX-C ze0h@&B16b^M1Xu=(H$XZxat_;DdHvOR)Pv5L+V*5L4J)%`_`N=4|_oXN77`D{VX*^ zhM3odf+v5U?lwzz(b24{@L2X^A8Hyl5AS_2GPdhA@v$XT zm3wy;ZJ9gevANet;Z73}5{n%=q3X(tyqL&>^rrSlh8;jf)x)U09q#8UB2B~m8s}SKQH{&g z>a;17KSUNNyxAf{lg;mHXfdC$dlTtmO>5L)v=^1ez3PrgQPzskHKR8(Uq!)trfVjc zV<*8bnTe-j{9SEc8?0BG@PU0Z6ICnvh|{x0IIN*HXlFaDk{dD1guH-_JjYmL%I*;|J^ipb-LA?r`TXTRj>a^^zExCNCpLdoI-%RN>HtGez-57bJ#)+ z>6&C+p+1N`nSnOhF>M&tRu*|RnV=)i2PpC$oLj2n9YDKhZouYx=+-c~!sMUL_Q1Hn z6QFMVY#R)NR6AV>_F#s>rMi7rqkBB&uN2VS);@@DF5LoJ0v z0}xczguzy=cXhJya1pIk-H=B8jKq2%6juUuVt48XOFCyUgMy<|q+WWyi#gxg zz$b`4-lWBo@jN>JdIbEzf|r&|+1^nv+Xa3#!3_BiIO19zsy*?DcCMx+rW&JZ3 z-nCTsekfzvc?=76qbc!^eGyh_C;Fv*9*}@gqr5vit#GyB0gT`+2^=tePoe`|o&W==I$i zZr@Hy!F2&K^XH98+%#`8h6=|g9kBJ-sx5x_U_HTE#h*S{kGDc~Z}eh4wx7qFZlm|5 zf*aTL6-I=2X8(}fESC!q6X*YXaL;uibI9>u9j_PYqlmTw45A3Pp;jpV{d1fA!}`o0 zXtGb?9b$!CNC`!8NqK>lSv^b($|f+W0oBfY@&$-~K#f%Isj)gNWloYS&+TqRO!n+a zm3F3xU4FqkL$B-BTx?`>$E5kw|7g|3xciH9frkQ5r9)F=_7=9bI^C{44oZsS^c>OJ z-PLiIye4e6$PP3zCNPaL!QOoGLx>K&J$>6W0n=Q>YS3LxG&%pQyFZ>#GnvH2V;?~b zr~j|{0|t>&p9w3^#KHf3(-7 zK{c^(VV#7r6)TY!$&|CAh{+L9-ImB3B8n^U9;@z-REjJ$o5bRAyMb5r3eb>8in%?7 z7Er32fNR3SN|&M4X;UQkMG9n&giTdr4VuSQJ60L&>57)pexJ!%n)E2!1D+DPw-VD- zSv-!;7O%H(y{~{&L?}6>a(bE)*-Tqhu)NZqyutsMPre7yfh=GBP)s^Qr~JG4jE^qT zA{_Cz|2d)t`I)l+Yxo~@DvFAqoikb2jk*G@`wE0G=hyG`OLd>~7M(}%6g+Ztt{{JT z=At%J^IVR25?48aFSq)E{DwEAQu1$&WhU-Y&jT8A1g(GM2jd1)+qaZ!oW>Y0)IGK*P1XDMR|h@3x?0 zt#h<3g2|wM6P|+Co?T#^-&37|5EfH*WcTC6luPd~oi{QkMp4Bd7c9wbrY0XOr+?&l z-mujF*g$(vv}AtRd9BK7pK2BwIuqJMJG902J#Gw+T?YR?9)Hnu$TTn0 zki00&8H(TA^c;T3OzF9(%Nuru^b#sSQEKI=0u2@_23sm}?PcyDQOT5t3Dv}xPwdr} zhHRHRYX9{E*Mxb*WA5}0#bCXCnZ5g7i@LoLU-X-Zs*GC`N_|P8YIkZ8i=Ke->Y7Zo zJ?9*KVDK*j1Lh6#v*&us8!pz6^YFTWUcJe^TGA)d)jz&f|ss45zweLtKq>8Jpsi{^Fm@hXs8nsC`aZYJ)u7o za3WWo#x3c(U`SVUgS&&9P430mHU@C=4_))&S!g4t%>?YrZ)Jil`ZUDPKVrRzJ4n0} zFG;^)Osn_S&zLYu`-m zZ(wVtzp-&!^$zSXC`tNEresZ6yZ5zI$K~?(pV5S~(PHhiXr56Y&w1TawtDU>{U#>& z<=?${W36tDRvix))=D0ZQ(8=AHIa75Ke=or|1?}&kus(_kcS###99iVrJx@cJZV)t zSeTa3zjo3}V-LYA2gVo8=HT74CS)>?}LvxKqK`(}juS{6f$4!`Ov*TgV{ zfgi$%${q@T_Gmk%_DEj zd7jQ=sHV#%er9YI^^T&rtWM*hDEsjShWEhlVQ7aX>z4)y_Z2>A7)#k(04jQ4+h6KJI{Fzt+3$QaTO9?9|f$Q;Fa^ESq2rg&)qF(be zM%_me+EZUk@rFB(P8hgk> z>HZu`ZzjJ*c<8bg+(uY2&l}`pgd*WB1?&abQyZlwds&^qnI6~Q(^NI~!tyCf%!Rb+ z7Ch@8E%V66`HM_gQLxB{MQp-zhnVY`D`PTX`vcde@pO6ym!G!HOOL|+CVm$L_Y>K3 zjBPlKhtPawW;$_EP-v-I21@ouL)-(CQpQ3j|rDb(nt7TPV zrO#7WWj_DI%e<<-f}*uW`3oC+l`D$FYONzFTHM$sTkbCd!Y~;$erXVIwF@W*Ip#Xc zu314aCr2UvHs1u2K~WT^QO9tA20!HfP3u5;KQ`I!@|3u&As2)j#nfnODwL>57n^nM z;g(c35aC7gYes>WX6Jz<5SUCI1lx?6z*#|4aDug1zBewAW4i?*R3{0Sp)ouiUmTWQ zRC=%4)hU$*_YzJI@p#NZr9q{VMf{eV>S=LQl`yeU0lB!3;PH@UD!3HVXx7R!COb_4%A?6bDJjR6*N_9eejkb3M#uq& zH_2D<6fyrj74z8=fie+n3@4J!X^!I;x(#?gn1Yh|D8LKflX zX(hluz0}M+JwBuO6?NoiM&UmH_g*42N|2SzZD6q;eKo0*1N5q9MWxaEmrngag)Z~! z?b(P`A9FYyrHxuwajn5vYO-20WxnU4^@S}Sv#LC7#GIiLufv%V^WpQ zkHqAK@%kyiMRRM|C@a-F%;j0VGm!SEnO?AJ`d}=Hhf(bBmUwn2=^USNRZ(AAu))Ff zRmm1HcK}tc;@9G;xs=o@1R3S_*~4|0#h-jM)G0e~M-h0mz@>;ES>PA5YoAZZP~p<1 z6?jW&#D5;&cJH>FSzd*^;k--T?c|j>lc{Rkg}3?Vtv=xofzI6@$oso(c=OP&A6;Mx!`he@D(M z4OS@25v8EYAC}bsE+83{{(r7?&`@$_#9WW{7n(EBx6;W6#Sj@{jPeB!fH%2UOhCX$ zbd1X@u7Sqz3)^&>nG#{V;OqbdnF6oA5d?EVAj9C*<4`;>V_ojFMH>FZOES%&+0cGc zAxHQgwQ36j5kbydr|JBYJT4Z2#_+sLTJ=T=w<8W5w__cFabz52pOV{4$B}VzE&KCt zhV5nIHErNENC=IjK?!W5Z~d4#3IUdv2|3ioYz~I?b#QPMxQ9z=N4dGgHvPp%uCf*X zlPmw!5?2@CC_tMpN4Lr(yZ5UxFYth|1X#OO*C*BeqPN<^HVkbj^9C3s@c&ErO2F%Pj{}oHWmC9ks8~ig5%pF&dY0rvL2-X;0vA{z5J<(@ahXJ z*&9OP3nzi%I_!O!=84YM?6xZ!%AG+FAfcBRvdS^>8#ly)a@hD-&V>F?9{~POz&dAH zf>~UHIN^@f-`-djsAK{OXB$XL!3@vY5zLbXzjKf(%-rc`$Fk6V0`Q*T?l;$G=^Y;A z4lHauI0qqSf0X!DF zmmEITrEOqw{qqeWyU87-6XDVZ(VIR>*tkXlF~2rI(7NZ*kKQNC0WUYQ#cMy6yO-aX zxJ9yVKx2PouCM}d(ue$PB6{U)KWzBcZGm!pb{DQ-0`5QyPG%L;ZLmiymR%oBC48j( z+PY}AZX6Bay>d)FizBW-S|=^2jFkmiR0C#=G?vSx-2&RwjgRg;VN75jyvNN_^0@~` z?}Gaf0n5#56i3(9Q_1bltL)AFGKStB!RpNY4zPW}hk)6Jj;ltT-$;BMgIF!tKJ7Xr z7R7jHrUL+`gv|ni>YWFIlK>cl3YSKSK+~J2H)2sx-bC>jki}nf4+fd+Pleo2iNIh~ zmn$tqr29t{@m-*ZpE!oh|&9o)%VU1aN%cg~=DCmsya`uM*O1s#}?x$@m_eM{?whxQ5udkzbQyY~o$dtU)6XWGZUcAM8^7}FV!SLM5K zgD5^Md?-N)oFCGRO9CO5^ZH@uM+L9aK^`#6rY(prdnnRx)_YJuYIpu7O2o$Y7J3zz_VJMF+YFxUFw$>Iv+ zKo?)4Q&jaz<~txZ9>g1AHX8^*C+N8V6KHIkPQwHTiuI^rSF;;+GPzh=OK&2aFTqXt--ZAw^D>})vP1x+zNTLcfb|SE zzKV>zQ%(TPa~d!d%o7+m8D;GI9{bkXsMcwO*})jv+&=_db}{&AgwY8+8Va|SYFh;C zz(dQ1w%|JIJ&rA*hW5FLoEUG#|4Rtj#k4!pRz)7yZp$g1Q21Ocn6 z81~<^5b=t0^xE_*D|NgMVgZz`*zcw7Z`gkO(u1xIIwZJ;fI(o02S=9jyot z&Iwc+Ly}qyUTlO&_-gwytr&b`@bCZk);oWBM%yUYK-q7@Z4I(#Q2nm4RTuYa{ zCTg3U2-|uaDyQj+OQ-rgoj#v`!j$5OztpIRDjn8jxk^*8dO?CGEbnmdy+3)IXO}|7>ijZR)*UUgW|(Sf%Gu)OfMgpQf2Q_Wa8$D(SUVQ zeObS*xMnyJnw<<{ed%D1F82}G!pkAwgMl0j;(jP;1F|6V3Io~ zN;E)c4!k4+lEDH7lLYOfdCYv)HNF_8GfMb45=i7Q^FR`)o+;sf%sI@ZNI`M|r^m*q zI5JKm<{shRy?>Rx%*?rfC}ansUrgy0?BuE|3ho^!0Fy(f)_|RpJw2;5KM+%SYt;*a@u+M?40=+)qP~pDQok!gG4;`8C)cd+a|5_Nn3X2f+jg(4vH!NkySDEC)AIjk8FqrMX z09-5`F8D{w>ZbCq5n=0UU_TC3afMOwamo$)}W@c1mO=Uw$lCyiVb3SS75G20_0e zId9x6sP`Uz8V__XrRH*SS(*61(Ixb@S7%J$jpJ=suop0@Rly%G>)f+%_VK5;!5|r= zS*W}Ry*=Av65Hc}{mmZnahJ+;0dJKY{t<$2Z|aVVJw>9MO5iiW?_w1*{e>+JYbjC& zEV?NInMs6_K0U3;8R}w7L&1B-m}xR@6*;R2R>98rq=0)Sknk&~w9iypt{YcXMoxqc zc81;I?v$tkT8$}_1la<7vus5^9!2p789@)>wS*Vu)=dH!)LcYA?&t@%VX*^c(rEKB ziEb!_ooBcvl!)6{JBc zYG9dFXAJaT35o-ytIdeg>|DrlK5bUYEr5LQk=qAlir``ar7QqQAqE3XPRB#>cWgql z3&UPv=Q;TIW3mqBT>3W*F$0lE*1|wLeocOaSMa0~7!eJXIHifJ-Nk+FfYda`LdLv3 zJ-@szal^l<5)Z6%wucji@-O=ojzH3355{jRjK<-Rk`pvqB@u^D(f^gg(Y{}ysJg9i z-1i-Y!8A9d-~?{GI3ghfZ*Rc$n={^g83*t@hwsYqAi_9EtIS#sZaln^G5A3Tgdm_1 zf?){Qxb^8n#hG`)kP-AaIS_yH$>VD)wI4oQwlehKLBMmR2wssO==?O#Uzm)km;lUp z!q^9<=ZXHNv)9n`9#zr1=tMqE`Y(sGO40&E9DP*(_sz5m<~qymaBxW8vH5oJTtnfn zRQ01r4>ewS^)2o9Qo+Mh`U)SyyRm;r@uD{XIYJ-p;eWV&=yhcJ^EbQ}(v$ig7y(iz zOK+iqcY;6MdPVp-Eihq`xl>l%z~`P^$YH>AW{AlhVG2KxD{_IWw>$y>CPt7kkbFmE8p--X{EB7 z6VLx{*&F`ourbXX$l~yE^3yEZKiSQ1S(M7LL33}%YqKf%+#GGLvn-3@96rTTlFg?+ zA7%Rq`Zu@!1sdS$bZK@YNHhIr@9TnQRFiv-33P2H(|2(`f9!+Lkn{x!JDpVB1T1_ivn5WUayj^wtkkxABV18TC^* zS!Q5y)-+@=o{s~Wy8ExgVUT{x`77QQn9o?xvX0%$67Tar-9PW2PHp2S#VavaK5v`8 zjcnTe{NI`nVt<16JWsU6+3`dvBJPM5`HE>E>Uq7CZ#$aCL2ezeLT(nUlGg*w4da4ZsFSA}bb`XyRwi@&a$Ud zcQ$#O^6h#qy_SAos`YwS{j&e!{5q9M2j=7l2|KzDd{wUsXV_QBkEZfcwolj}`oU;u z3qxTq7zSMw9}S1VJg9*~m4FcF0KFHVohIXQz|3F9s;yrhDE(s@J4@df^(Tl$@@#ZF znd@bn6`oopOVgj(g1u6oT+^is_wRQH^jiQO9XOB732=swr+kOj=lo{Vz%NmH`C^La zP&6~AcxTC{Q+W>+{L7?jn~hx4D_%*)G-L1rri+h;mUH$3IMWa)MuQTY4uSKQh)KcBaA{)N+`sMb6>0GcWHB7e1B0vrX4BE!9pfb*$UlB=8Mc&pJ~s zBgncJa&JrilgzPwnfBoM>tjK)FaLhazKkHASjC3(ALRGpHe^Q4r^%za^o*8TlHd3; z?m+tLwgAkb2KqsNXa|F!*#KMM4&DK`!{HdQ*R%PRhU(R69JE8ft$W{z!$Yh`ViIBgq|=u;b|)!fEVS=7erCFw3=-Yg@CPzY!ffRH{E zI`~w?a`8lCjFM@z2!;K9jx^wAc81jU>+Mi zw6iM*a-Db4B^nMK%Z1CXxau0G^1zu(`QRE636K!nq98GnKpyw#7?@aHcSF8g=G$Q> z4!yc0rlJqMV zrX#B&M2U7UYsv~uG$~aR#8kn<#fqcx)i8|eOUO_s8v zeku);l&zVH%r?tlLnKS_!6B&?GM$;HV8e_s(r}}V(jeSeX_g)*(k@l?=2Kjmqe~E1 z)D(+|R@L+aosg7Ls!X|xR#{C!kA9s|L6iDRCP>T3s;S-KmRX;&2926DYtgFBIODbJ z(5cG=-Fi$k$z)SZ)vHgxX$DL;Xoi`F%re^?a}AqkzS)X9QbozFv=XJtl&eswO0}9u zwdSZxM#7Ytt*EsuH94h%2urSSE6hvUs&?BWkbqE{41H*wcBcMQy1ybARQqWwgU{+e zvz5x#s8*|_1s0aBtwk1B>L^b2m8oxurIuNq*k@lHpk~3`LYdYHz-@(P2OfIbdK+v!aWO&IwMw<5%CVkpNO4@L;VSG(MTVt5-T@daNPw$*&p7H%lE}lfX*hJ64$X`<}Ajd*(f(vkmL0Z0Bv-V!5G&$ZO}D zNL+v(Lw_@U9Ta`cI&UIukluAVZnL3|{5j|2(QBh2yGRH#w;bj1RDS)tmKY5AH`c1; z@^0tpdHhpD;+>ptcV#2O?6t?&%TexFAGH<*=Y%t!x9`)hOK;&*)TK9iqfe|$@2kV{ zq5H6XppUE5u6H8Y@RZJcl}U-b@vA8R#u~5?sKbIT^s>BcFUQMeJ?8aM$ihgpvIO!y zmRs+zZb5N)Pd*sR8TL=mQy%lzB)O4NO!JH^3SDq?N1C@j+OJ5Cl{9uE_N{M2Y(Fsj zYUE%`s*#Kc+gMmv9o11iImkhER8RH95<-w6jByvdC$z94tSQr2V2vqAV_+?0SPO%& z#!xU3){i(pp(=LKhA;$Rje!LQ1_BlWuoi%UfrYSs!~_ZfCkPkC@|7KB(3AbfdE3(=JoBqfR(lAYWr4thbm}1k>x*iL=r^;dgNcGp7l!G;ZkQ8ASAntX zA*#kY^}_T2WA45`QB6zpw4_ae>=GiO5D87ZbV}0%k<<4E__g`3uHQu@eMQyXaR~?9 z5mAC7Qi1^nqF9I`<^(fh#&mA>+~1t@Z#wzsV~y8y-~J#t5z8bTqmPV=jKa3o;rJ@T zrFz-_x30Nw6PBNWc$CFp1fC#_LR-$jJdYTk|MXs#4j_u2aO3~x^tXJyrURiW6p>^Y zQNkCvznA=yF>`w9A1>uTQ?&)Rhxnj^EZt8Gas{=dE0;cAo7=Rt`6hE(@mK2pWJ_78 zm1iBG17_Q5qMgeD;nWz4W;nA)>n5(KDS5)>63q>U7{>kV|^5ClL{%1&B` zoTUpPR^HNe?yhqRwQDym)j6cDbkVzRT$k=#3oP>g?`LW64eb1%4E+I8K*^Q{gj)b` zm2+y#KSRmjCK>umm?gWH}31U~&Mg0N4f8)K#vmtnqcg(zI^n z%C@RXmSts~t}GNVx4e0Un5dEc{ZNVKA&Nyp#I_N3=cf!7;F>SdyO=rOK08TCdhOoE z7$b}@A_!L)ZSXsAufO`WpXLH;T1P?)gUp6psUN@RyFB*u6NSdKHzY!|Zhh^)`;pVH z>2brqvAc{H1R+CYs`X3!&yBq~50D=V!ApXJ0s_E4FWqy& zAzQ4m+(NTWGeNU@729xuG*-|HGi3pIb1Ly+L|9;-1O3~UVa@9M-$Mv6ILziPn6%hG z3*Ie`l4TzEQnHUHDr=n{hU5erlSf$H$xu=D^T|K*HZ4!EulavA;aD6NSIq4Z1`q%d z^)jYMe<~!~7N7#nY3Goxco}rv4WN6YpobpmCqLpEuBmflqgYdZly?(hga#+zgoGvU?2!U7JwH7+O#zRa&K?g0a$I|FX3j= z2s!p^`2d>h*U$&e?a=f<@IWOA8VKN{;z)b~{`h#@{Xd}u-=DpkAbRNe9bf@k@3?|t z2n>O7!}0fV?ooW95GtNiQ#DH+1}qv75eVECQ56}Ns7bsVr$y{9VH;=O3>~z%-FQ< zPze!s$6+lJe)JBG>+G1fJ{y-HK39*S;eVB*aV9alvaDDfaWL~wm+9f|);|UdJ$W@k zTXsH^ZBSOzl!v1atpMC^54p0H4L2EIykdZ#d za^(gx|79=>nTAZVcAC6Ccw!Y&g5)6?@Dx1OiCB;rBn(zE&?Ekcs*xZ(BnA?SgjEB? zfdBdMPw;Q>Yxo8H7`_MJV0#HZ10Rd+0eBa@Wt(2>hp&TI!As$V@LaeT2|IrLe0T~x z0dAFd3vPt#{?JswMe|kLAO}u^-H)}yCO8TX!3@J%*cVp7BID#DXv>H&(uY<-{|&zE zkG*ex-A^Mu!reQ&whPe|=@gnH+o$c0ZQ7dJXlmt#4sY8QZ1#FSs%sr<-ssh=tlIas zf@RIK#90@&h#40+&14gdH421>An>cte)pFCd-&tL^wa~lTyf3`hwQPjKUHK%?*!Gw*7qZus)@;OvhVE|;T4#|8=g8LSuK zSk6(eOBT@zH)0o%@{%^#yucsA=%hFLj9FsVWm-n<8x*d`{6fw;2kP*5@XuV{4zcI& z-*UbmektIO@S&LA=wtord?|d3Y5ftc@xxJ2F2+OMH!hFgph8 zZWCGO{}KFG_-h)_v7eV|GL)VzP?EFYc15)8;WslL1@vNTFE4nQDohF5^N4**0K!;S z`DmKI1uedei_c+gY_XSuC>D@MG9sq?Z{_OWD__CFJfEFp3A5NA&O}e^Zk+WScqaSS z`YZSf_}+lHdKV#|_^v*voznaEQYkf|*1vb;jQakm!!`%^=KC>(z zZu-moD@Pan%T@^by3dpNe&}}``0ZZq=^ofEUD>(pM1E+;d(t+v8#c1#`rg6K->hYL z+9s`iO_rF2HVyL0}NcrpD{jyYhLE!J6ODPFkHT)n33tLUSj z#|umdv;Z(jJvJw>Bhay|C}4w`EeN4~09%+(JYE&lq;&v}hFwLR=pcLPlHfeu~9;BLMjnfLJFuXCi!#?)rQ1%#(nM5F$wN zZ@|}!5hli>LUwcmA;G)}#r>!^45m9+`C}_>QR=j7qjTEihBkYoEnaG?-?Ysa-|hnJ z(5?ti+?|P~Jw4BU4seh|Is$Cb!|XsR?Fy^_!FTH>kR1?!e39IQ2%x=Y0#rI9iqaN} zk?3wj5W2~-Urk+ixmcDGYSmFq zVuuo_oz-Gu`|Zx%I3^$hl6CaofW8iSqp%-@tiC-jT}Z|CnWJ=YxVY${Vk924Zua=_ zEWue&o2_9J`Dy|Ckb3$01#;dMSMr7c72Q1qK1Sw0@OM*z_ls<$ym^<6zT-_ zoH&MvMPA7E9Sw|PL<^>r2AB4UxBy=%HC6#=fiHL|c7Z_KC?7#SO}gsUEUB(lGlyfk zan1|M#0BD}ROTquEA-o9^{LunbY=LoYJBc1+YMGPP=S!92VgD%Yc`Z1S;Avg=ob*{ zBA7Nw)=(2b0q$S?@cxtbYve=YgvvzWaMsOEK71#Fmf1bZ| zkTK}$kqZCS)QsBRi@exy4M1rcgBvG8Of)ZJ@QGph{8dQ;8K8oNVhCr&=HR51sEk^L z2637-b86GhWuiezmRP0Ih&39lvtFZ(Hfgfe4$XEqwcD%l4m`2L5hrwxwRHK^5t8ZF zb4A*WftFd`H%Rtok7;wRL^pqU^yMQfEBN8kaLrz71SAW1od}xuuLYrxgM1iMCz3>`@8Y4urgxbm?9VS3c6rx**o-)Y{bAjfGWWGTCB3U4r0ihNO zYmpFxVp~#1{9qNjVIfA!VymsevQ~(7!dWlSMuE0GQDm#bsQ1R7h1@fF{gdRLKKA_2ypp=AOrV$Zi@o}&Vdf*sk zkr1Ik;ZC&(MCb?_k_2>xMgeSy5>fN)vKW}sA*Kw0GDVdotZc!GYqDt~1hS(G5M)rq za2;zDmvyD#u1tqD2M7=dkddzpKx}~mHhkcjA&@%51fVTst8J3DyTo?X*dC7%usvi9 zaUCs79djJR2^Sk8!%wX+?fR~A0iWUD^fDI@9t!xm_|PE<5PFADFf4&XANP_V*BC@d z{%yrHy(DYG<}wsOY&%`Dk3d1Rbo2~{IpmNeCFrk762MHor2w*@#V8DfLG`BSI*Gyr^?uY&Xr}{hX>hG|#zs<@1 z(RTDV*xoq?P(e~y!0KYA>G>X`&qpFiR30wECkg;@ z&5P+4Wd}x8z5UJ@M2tKY8v& zN-D>`We~(!4*+ryD^?tw*pA+U!%k*c-;tYcx$Ta-?z!)Qv(7p1f{QM>?24>>g<%gC%m-HMrA_iR)7%^%N_}7mT4HKmlGXJOC%}YA23C z`vNv(D_#tnsf6*+;Dh$!`Cv)|hULpR=YmVFnEBnY_$CB)pfx~|)xrcL1eV7YgAxbM zFQRl$IJXm48=i%R$e>fvNmc;ZFxc!%E20L!x`d@asd4KAYsl*SI0}SIqRqBEygw7) zXlSK*d3jAd(MHTA1506iD4it zfxB6*fz@VRq|)q%K`YADI3zVg{@-B!QIp~Hl^0IfXNwU-=9;FChn5Nmu@qF5cis|7e`YNCg^%%7FysiR=bH2?~XU0|*dCkl9ceGYvG~%K$z)ktW&W zJKG?AM|N(H_V@u|1SY`BACT-__DS|#CXh*F3YkV0EQ^v^i(49nyuTUPGX7it7XbLk z=tWs&Uj}JA%=H)mUSRwqzR7qp(epLRA{`WPPu|?m2njY=K3Zg<3X}QFj8~q&KmYLj zI}3o%f5AT>2KWd6ffJy?7LRtzs#r)Kl ztwgDEmE(hG==WlWPMcoR0t+oNXvmVYpADDH|3udo$Sz1BI)OwflB9BoH;Sp#g(;$8 zHdcZHM34kFh$Gg70Guft3_>6RitQt*yt5uV6npK!?u0FHPH>aHDS!tQ&R#!Lc!8DWvAyQV!Mx+ADWdbj9rhrt+3|hiv*F`i4iVN_qv2W4m zH}dJzH1R}}n&fJtVc_yqme%9_RJs`jU0Djr^ywQpf$`@?p~RLe%_J$`j-Pd!ng5@B z(5|x}AY}tGLvnp%Gjr@uC!Z2;)G|hnh$;fy_*(adlEORb9A7y&b!V&BRbeZ)TiBvv zu&-)Kp*3BlDToXk6`&MfU29VO}r!R_aMh2Sr z`1k@8$&oR%0XeyqgNj2s^szhUT3?2JYF+P?lV|nJTKhppTj-#JF0SUaLrK*e>XMmB znwuz=23m$grr*fLpWe9>w1G0ZxqH~e*gOr!?5}QzrW&`;W9~jwyWJ<9G~G>mUbe^k zmd4Sb`-IyYHK6<4{dw8ZG5*MrwUlZ{4RMOwb6@^gpS#PVp)vw@l zo?g+@d!Z?Re%TAJ?)EL8%PUzwz^<1|QLcv7(;D$v{AjPRWszPw5#Yr_K_y#QBO_P4 z1)NE|IYp9h>`~Xh{wcq|a|c0*xaSx&``H3myuoaGEFDtFfZ9X^FiASN8DH3|93JK= z;CDup8wY@eNS~RtP#s`t_)K9b%(y)Q_ zp3*rE6S}*xsuDi>*wnEh3IL}1@Tbo(t2E4G{hq0B!n2%vCbw_`G{78g{eqR%!Ho1+FJg9S-)Y+bQ@!ld zCZ!Y((nt9FU!=l#{~ajXR%H&fIJzPUZ!;UB=}B+6Xb0@2Yqp2?8MY_rvcX0cjD1m@W;XvfT`4Xo-Y$WdBowSr?JyOz$u<@A+1ca+g2J3b5ElWhC;Yc&jftM3{A-U*y%R=q1e({n_w> z>!f2GU-~uBdIuY~$3Mvbnzeg}xld+~N=QlGe*EYdR!ty!MTVGf*&8}kOx={X@|ii} zwUMrs`HECf;)lKM4;TFn&ZtzWLy7j9TN}w^y72Bm(q5qZzq~+f(`!BZn>H(BXc$9t zZH7R5g&I@iUu?-grXs*ekt!ct6_aA!&f)j(Pf9nv#t?7GQio`cDH$YS^91h)irRuo z3!G47REbkV!Hgg(wPwY5%+#EuqSqpFM|nkoH6fks$TqAU9jU$Mahu+~7OXWoqx)3) zg8gb?51K399`s!cHtY@;lO5tL4p`kO*9;(*L#(mesEjDF-ywc%O*2T%;TM>?MoCWe zw?fwlb7qSn;D#d9dbiLQ>E)SUgM5swHaF)7&40%R;Rl_jTPE{ivp%-U+G?*k-gMXG zOfDiDjtySsz2yskelJo^>63K;X^8~yIK2OI#lloby%Lq2y~F6gS$}GZT8K!6yB&rE zF(wTnNAzPdje)`1hL?q3OW&)}q#OZfs%z>2`Lf4DItKNN$`uJBZ@tEOAXsHl3krzJ zUm%HOGm#4w0)dm&;K+v~ef~^EnLjI|z5U_rR^>b=T#d~U_d|Z9ci@>2i?MBNsfYr4MPHeooY@yzO3QeTg=I|HGb8O|eegK1}&EQX3^r(KGl- zg_I^I$vFl;O(|i&ukZB7Wrx7BN*paZW3`I8E&!slXnDosEUw151Jq3kgxH3dWalWJ zq?dPC0bLFdD#10H`%~HHKoY!4+ArsT660A<$wh+T@Br%T#ZT}~{;9sYg4+v6iXn7IQP*v6}jDY+- zP;GR9p=Hp3-D!SJbBk}nYv3Yge&1D9_;0JLpV%sB;Ww=1hb|U<@lwIbxfy^@&T}!ODU@C{)SC9-<`bL+CT0ZTW!U;o<9W^)YErqdB zJ}Qgy-nUT!Wa^?biZmR2H=n7RJ_AqFoc()&zbo{@%ez21>_K7ul2BI9rV+@|NtpsA zHU%_@AM<@`y$8~!myOuy>9j|rK$oSpq_kt!cKy~lJCJ$Zh!j^QeZIlj3cdOAyiiBG zYjB7w9kaEUo>D6oq%96TNwoCP+JY+|U6T(^&bgsb(ZQQ5SoRf+Rn=$$d$a||MvIqC zIf;+~z|u@8DQm1~&e7ThVf{$!b=G}2Z#2`|w3Cp#fwyUr^7!6Xa8JOb+EdxWhx)HA z!#Q|`f|>QOL4E3ZN}J;je7vNh*-Vg#C#`_;IZQ8U3SE|W?rkmH6W-x$TSfgzUGF&S z4<1R#{KzMZl|MgRXSaO3iXp{6Bx*u2M5Px63$KnjxEjuP29NY>sTB9 zj2wWeFw>Mpv{5})=RKSaP*4S!HN(HiM@_(O#(G*IXo^rL80X^GXy81ccHh5ENMJ3G$-ph$S$2xzZ~YT}B0y z*1BY<krGj1oXuuH3%#ZHM3ojGf;(N8j6Zy+xsw(3oC)I73oOsyBqk%P%6MJB`2ZpJ_} z-kLKf7!|+5(ewqKq0`Y?UpH_zxdm}UNC9A(>7@p7&e~e}sl`-F;l5@}eftp-rmL&O zd7GPcmRd)^{h*WC^-=b>wi=x4<_z~z!Q!g0Ag*x5qFrX4I7`^UnP@db(295Mv5p0` z!10Be$Wn&TJB}`%6i!oDG^;pEfMg_o9QUMw91cM(%f4v6+!YwCCXIn$IsC3nfhMKF z)WuDDgTW{HsYf?B(>p95#(>!m=Vb-SEIx5rC&rNx`^mjN&$ zp{cJyMTlo*f3{x#JSatI&8Mfp6ZxEF2eg3>=|GPXwNpLMWi;`vdFmK z*1!=G-w=h}=uJs!ZQ!kAUcAThw5)W?JAc6&+o$tk}6t({t-1?P_v$;E+FQueFA)wyz6|AY&+B!!pYV-JM(!k?(CEs4c}R>X49P!lYq zyzqIPoOYfy%+hVmAF{*DKSwpYY)rWC9`w8K9sT)uOA?;CX;~67{rDbCor94P@u`7F zaDk}34I12Q<;6c5NKt1nKsne`e(;>URe5pib5rpApkSYSiGRumHF}05iHSTg9lK33 zYR&AE`QZs)yN^)kY9Hru(>i+5*2>KIc&1qqsuUk$aSE3FB9x5#m&OV@8y{Ph+mi*l zk(kgm(4R)zTzB^U|Bnsukb$buKWD2BRi4*Yu8pgqzLgX+wOsc6LK{h{vMJy?1uy61 z?GygeWDAtzksjtBMdNFzv|keygh^v4KcmS?{^*>>SHW)yU37-7*>|> zlr~t9IuAiyxvN|8GL9vb2)wOwLcImiYj#=i%^-FCCiIadC);aY(d6X}qGKl+Bx8k3 zs|^~WeRVq1-yK(PzIrzcj<;75Dvu2jb+KK!W>x}P6Q}Cl#4+g-GKdJ-DRT6HyAa-z zTd}oq=bme1)gH)bDiQ$k$fX;M>8e>Z#)lyb#Cb6~%C<&fD6{A16<~{BtdGsCjvYh>(Ut{vKAvFb3Qm`WZmj zCZ86vQ&<}(5~~6EgQA7s*!g4^Z-NZkb#|B==AVZU48u7jS5xK)2@%W6?~C1Zg}sCM zbT^W&I6C**g=WjSpKJu1%61;PKg; zYj}ghGMLw;>&8THW%JSJJ%qUyDEn%c!og^L5g=~Clv)n z&$by^c5|}P+VBOEUQW3ewI>9hRjuH57q1LB+hRL;qGXhuzwy7JwCG%sB@k6Kvqm2e zP4D|t1%Q^3%Lmpvkg4K(mr$OZHkZ<2IiGbhCq?WFoBb!$L%HfZG-cFLQ(%JTmKt)b zA2kKn%e%0=yXgO$MK0Y3Kn$L21drC-vRZ~jWz{%FAg^pDwz6`3K$13}=`}75+Y*^~ zaygsj#j&9_3oOpeoB09R(HFAE{c~2T0Uu?UE7Bki!JAO%2LeTn;qIU2PphVp{KM!e z_4i!K43>MZFm=YK#mWl*p$iI2Q0SJlxSf?JW-p;OXt{${4w9E`7G@5_DcIOH$bx0X zHA>pJzc=^Rikcc5hf~a{-c;0%9^79|IOcxk4U)JhJ9>fZ_vK`EO_eNO-J*X7&)4y>}X0BF48w4 z2N7|`=OBdC>20e3w*FKAz>_Wwc+!oYgmPrI3)!aH)d<4X)yJotJ=2&Av1T@mOndTP zd1;+4IQ#1ndgFvAn#L;$-Wu@w{4x@mfM$eF_^lCHHQ%K=VWi43rC4@yB&%i@lB?Rb zfpogfeu!QY{UFY+ZpE!X1Y6U2xPY+tCJOreK82Fk%vjhv&););rxz_IECB>?d@2ND zf3dw;^IzS|{b)ga22Gq6cV9;^1-YLTB75{PQJ5)6v5u{02jK6IlLFswnHr-dnK^!2!?NVow0%)xk&?lG z3gc;%q|mD*Xa7cCihq@(Rz*XkCEtH2tcStJgq;w-1+Mt<>0i{x&wM05dh=uT%Tqs! z^*Wjl|8C*zM8cS(ZdfkmDCwLf|7xyMLv|ZrKy4Q^FHGygdSnfgku#tN5U*rbDIC$7 z^_l93Z%Q2+ALIMX3;Ug&Tw{cBOkws9+XHqX-&@fEd32PPd~Em|obAfTtm9)PE6PyR zN+s1jmewno388bdX|?OLD>`={n>y{0mcGY~*OFAw zeR~a5+A0{(Zt~T#0yg#yuw}g3XhPA3i3_c6v||fiuEcl1OaW?iv3TudhBKY~pV!r5 z!hWH2*bjY5XW#SH95Cpf@o<<|Y0!k!3qyMGImKArCE`QARl1%F!3bZOHG1^F-K~94 zsW4%XZdlo^6{^po(6Xe*F2e70PvglIn(0c_@ti@k_TU0&Y~}ksLccb~;x{tSJ3$g? zJ#(`1`wkH=jCFSCPaPt|C~;l3<~PX;6{Ui+v^n*|fM#Z?N$?O18my6375YV~fiuG+w@C-(zdw_hAG zy@>;1u1z3hHkRTVTeMsb&jAs!P1EQ$$olrVc_(!-?PFhQd9ZlFiK+8^1|x#pAHBL? zHvoggd@UxyudiAcdh%^rv3H?2-maxp4Kf=CDXEhS<`wlVVm9V2mN+Dn^U0|a`yyJI zm}F{G=aFnNo<*MM^q7z-X_B)44Vq&}*1W{Q;+V|X)P=>7wirNxpoqX`j2HgPd;t}y zqKDlTCyr0PApCN6Wr9+PpcvL}u{hyr+~>ob+&8g1-w-K(W?jKt z{g7XQP1k0M6-bl3*XpW+5Fx}Z6ASioV;%A>z59w%WB+4q z{GK8|vHzqAvZtnP8u#;mof%1KUXq3EH060^H>Yk2_^)gN5Q}CtM1_^2O+#dtqopdX zEil$EjXt`9OC+_xM1+u>@3h8OnXIj-muMq*YKxLWjbU{zy_+$>5H$qkbbl`(1O2!a zVnj9J!a$UAqj?o7D53XhuH)AJNL~*;KF-nDXhV;I-(j8|Bas@|FbYfFd~s#> zD8w$4h|chfCZ~k;QnJxRdwY3CbC8K@ZL)Z}Xa&m%qy4gzjZs0P+EY%p4+7Bvus{G~ z|9Xpibf6b9M`aDqpon-lUP`E0k}?6+5((u>kNtd z^$w%Pc>ZfZiG^CNE@S>@!*ZaK-cT7rQn@SXRrG9QWSw?it7W%x*i~%pxgbWfInGnb z;lXYBZSkEv&w(Z9%Vitz0$DCVVY=l4Gd?PCoKx|>^u`7;yc1FxPIHl;dNFy@W-Ww5 zJR4{bnd=^4Z*Z|@nO}D$vJ;LiHM%#YfQwYwooN`L<)L;*Yi(w?*6Hu27gyr(#1@zc zkn)J2kPlU*tmo4X^!CUJg9Nwp;xblJB>LxlP3X0{ z+yH&1S0X6|IBdB1&9@kM7E_5uEKg(IDf;(=+jAYRpejci~Cr{rt}u^HM4 zbuv;sT5_Q=98NEXb<^Xtv30y13sV8HT9q=tK~va)j^_mv^*=V@h1;bTfK<+I0PUjX{o zy3ks+iB>B3cFySIFznYyR;SgkWr2l+8PB1l66Zv-!@PjR$0Gk?V&gHu8-mI=X9D~F z(Hu*q-o%iy9)Ed&tw+F@6bOaXPse7zH)p)<-li6;GsX(I!_V>WGM;t+plJ>03j~~9 z%&I>eAIE|j)UOV$QJXtn=AOdGX;|+Z@M^;doxzbVX3lZeq@3;6j|MhKhdpVdcc|SI zCf;r~n-=Yt zWG3oEm9II)7wlMtrNT#__H2HnEj2KM1(cle%MMD*lbRedZE(uPm3#udROU~!4Q3zc z$^SFpAW31NSd6|{W)Fsh#7o`F0wiJHtl1({<1fFCxju0q-kKxV3OcTwBaoY65^Uw0 zKKrOXZgX+o_|ynRKH=7UV4L*Px3|~JX zj44bmgN#8jobukU3x`4yI#kNm>hlBujgak8N`wI`h{WU)HrbkoIR4+J*k)Uka z;WxidR#c?h$(KJL1J)&upyE}Ro-94v(A+Pa#?C2~v!BODKOQ_euXW1Rqgke4{lUPX z7>UEs2xv%`*L~W*T@9l!S0Q7MFuk7CqL*ia`L<_M3>%9*14_9HRT(YlSWWiYHJ2s>cu!qUf2pIoX0Hv zCz>a(o)_nuVAF5X=Prj%!f*$?PT3U3CHu@t_}#uV664*|uThds>$*}G!-l`sSJND(QH@m_23QL|M27EG)B82nQ-KA0JH-RSdvCJ6@a?9R7fd$JqB6@$DO{|Z8XLE?RS5gsB4)f2shG5Q9x*|sgW#2D~| zWRvYo?j@36DU@x>PdR`GmFudTLr1yuv%`Fuh1>XFZ;F~2BVc6oAeV$wDB2XCash1zJtd{s{Nn zF)=|O#{a#M{RLVDY5H>KKm%aI7Zwe=Cgv8;ll+gH|C8Hv|01R}4utp->c;vb_=)v? z&!mDEC)g^joOfzxhgh$KID9R8e;r@^gUEDLX{;#Mk8Gp43FL2pgQY?Aw zFItNtxutF6PbV&F%jRU%TfoQ!Z9BVCS*Xp^>Vo!$t1njts0SnR4u^nafs$FOG(fVGCxeaWrPd}!S{-n<*nwy+cgg(x=&_+sP zd2e8qDLE<7M;DMrGNGpEvJ`Wg99V${R$W7qnvdGD^R$7y6@5%f2!p|njfvoi_8f2P zL5uu!;z+H$O;M3r;If&85!QqYMJV+|^D0#6p?8K|=dQg>Ss4)PGb;sxgmyaU$E%9%r70M&m{(V%MTeYuFp{|_5szv})) z^n1b)!kF;Mt!DVdC?sAQLBzE}n=$5we2D3x$>yM+EXUq;U+f=)S z4@y#T2`7Z2_k|h6gtv7+V{h5mA`ECNmN!@+;682oTx~hGYS&(UlCU1m$){zH0MV1F zqLqt238e|1=q1e2H&|LwbXA^&zA`Fj1V6(ag%_f0e6Oz;kvJjBUZYQoK=ki?-#djv zBobB;+;04Lf;Ie0MxNU4*p6aGsWA!hz3P$H~qY5{B9B^(3E$O*7+^MZEP0BnL z-A{F0b#vzXJYQ^tERSO6qPK?gGasi;Yej5^8ctQIhfF^eIfX=FGP23ZF(r!yyk*LE zh0k=M@LgAA3N>F{JBpZ2<1FT~7ca~4l$WQ>1%2-nMhzY%pI)8}Jy8BP3y%FHmOTT4SoP<12DWL-1qrn!JKPt_po4<{@}x(Cboymwzd4s6Pvw}OBfA5 zF`KR1vP%q__oz(^(W+Wm@j~}6hAUj6WE162_N7ZCCMD08+p;{#R@imnV;*DOmM3|F zs)mrl=+_DWhP3GW^xOz!m^Qj-2*|^3WRSw-lSW0SpPAyNwc7Ti&CmKSB^zI{3WpBG z7UYBmhyKkfT#uR(3Uc)uG_g*SsTxXQTiPV*I0tHJhf_G_o?L3zb-KeEAZ)(<7)%nc zsw;kz8vJhBT8uxN&3EGqBd2@7QoFbfwii)$dn7<`^tuz_T@@C+Sb3}nY=S*k_q zSQpWB3Z=45Rb)=seP(u7o3Hz6vN}lZj)+Q5QRZ;R1)WP~RePOTY?(p2sOgj}r9bD2 z0Yo$OLVbe!SaM|)OltCrgNNb93DsE@`Y4m&FZuLagRv@&U$-JF%iL%8(H0o4%G-@+ zra9vy4Guy=Sx~;&p6mluYFi=xPhsn%r|@dFkqA%5W@VltbEbJqrYfk!%}$N{PLInH z5#ruHWGt{-+)7|gH0R~{$BN8tcR3bYVX|KBv$e8LU+YTC(dk@T$;rU;w$@%TajiVs zbX)CX4%Zh$0;WwlK}VDURYc!KQPNbD`q$g(Jl-Mylp|;M%qe!y-XQl8 zYjnj#26W!cW(?5Wo6ny6AvLMxCJ@BX1Tx5JbjGdhCNlAV^jvaA;!ot9xG6=BIL+aI zA}m?oi<4q(DsG_F6t}@wlg^~68T3DAyzK?6^)Y z(u^4mbdcC7+zh|x7eM~Azb6~=Xo_fKI zEEa`*lFG?IOwPK1k~q6n0~|yZ`>3X@THoBT(a~5=L3LAJyV{}>fS09-PV+4qg&9$W zOFn)_#tZeaHdyP?Wo^t zfPlccxX&di3GtmPkWzx zymn>cg42De6SQ;kD4ck;P)Z@cyF|oAZv$vN_8z|yA9h7%U{RDazA&=PHzRj+@~ul0 zdNY%gDpE+x!%jParX=^AnBfm)pbS9xwot4 zS@)|o$3Y~VqjVFFyjYq~z1-mm<tM)<;{xN8-Tov~Of|?j zoTr?$?6`*PkVwrhF+qtBEpmfp6uss&n|W4+SEC0@EPx7*$Xj)Cm+IEKZVezsWl~LK zF-vcC;6~O zG;wNgP-BT6Zi@dp`)_eBJ~Ja%GsbcD~F_#oHv$2nZRWdfrkZY;jtq5mu< zkbD#Lh`{pQvGY`YtnCgSQj^&oMP<69!MhG@1)?VdqLtG>2|dLDhJX)_eHamarJ$Tb z)l~F@XKXdG)2W9?!0At94Lkg_Y(s0DElJ`ZtcjAEs7&5=Uv_X>53{FrdDqn!l+}4q z`YG2G5?QckHa5>Wt1k;mqI;{5mu!-Mb4{d+mappFQIFV;E8qoIMwKmys4SA(=FT`? zxiZ>VY4;z_GKu1tjDCpvAyu|KKJ*J+Hs05@>YspG$ijR<5sY&~4IOVll`KG??%tM6 zWR7amfj}%@(w5ci%P^&eqjG0@UFPsmCb+=nGR;#+JL<9mpA#_5Pou;kpt{f0VgXJa zvEn%?+zQ|4!BZER=BEN7%!qX0ryaE;4h3AW(O6u5PQl}p!9dhV5_QU8dx2r50D{W~|nKt}lqbvfv;j%DPVJuJR}9~fqq zMpP=qh3++$Yh*bD-(WVp7S0TC*wUpbHm4v><Qc50cv6RRnyI|3dFSd9q`#z&PcfO))iIOL1r*!Ok)bgF=@q%=ZNJ00 z`237%YO3a=VCL^D&DD?cq~v<+rzE}<1KK?D_fI7F=8+1pe5j&;{ zriz^~l=b(-eaQz3YdGF4v%*FkCt#|0&%2FD;8;j~ql|_#U!%{U=O!{3%e~a1e>K6$ zGu(-g7=>QIA~8HLnwBJ>EAtf)P7Orl)$KE3_wj%iL{STPz3K}_>4hzpP~ zWzn=WQDvr~pvt@7t0bh4=#%vhhAZ)hc~vT(gviZ|HBi(%#sIUZ9Y<9wRKqV*(gQ3O z!_W%-Ql`1GKCx_SHgM+fLSokYdQ_A}OsED6KswCNf&Zw4CIi`sCb+bNu@fov6O;iQ zhTdgJ_b*E~WQ-!GrWO?tqoa3njE$*;T(tMGi!s2ECKv1>ZG}liev{$6DxE5QaL7?G zB?~x#=43RnYDre>jM|PF#U7E~-%uDZt1ojHbswRZjSo^_n|mdxT9#=ly$Y;L)bc-; zc0}0H`~a9iv(fXC?YN>*aAD^(+$rOs{5I__9D-MV8lLi41+MOpU%N;fsd!##`C@ zwA&{Rm{aon0X9P)t+&e>OVgV}+Scu(mlbPeq=70*Lc5qjH^`eA6R*m3jSPEnTcjyn zt&4Dnip$UhVnRZ1ZAWi0a0ZREr?VE&ifBcy{))87C~F4u(|1qK{&Mejb)?gO8aani zhner=P$*+lf_kZ$lpJWDPddPbP{{Yvm?UfO5Fc&6W5|^sm@0?h5V%<3UN+tjLLp%S zs8-oP075*k2J&<$An!+bB7JBo)Jj zeGX(7%$dl=Ye&@s^GKQ6Wcmz-?=n%~0hKMMonko~BRWr~L4?8ltHREQDkbO&Jf}s)8l~ zSx8uLD3BhF)0&Bh|()*cQd-NI7F@#uX*bkgV<85(_QKSUaVV+qs zt~1GwL-_jRWl2djhK{XSU>e=lp$LrI)QIuY6$}|e(F#R>kcMPX(k85pacB7gQMgEl zL&Q~93q}pXs~M4t!C|P_Vfe2Vj2|N)OH+vh4x^!oL5jo)m45aOX1_-f0&Bsx(ezZE zMv|J7F`93~cEc-cx_Vq3Sxl^bQ-50CWV_eblU=v=|6KLnj-2DFehx38eu_D{Fc2`I z2vL8d)ZwbscMvVr=`{N+g!N5qdOeHb>3>0)4$An+@F#|m&jE}5rF7r^mWH4G{7emf1P5?lRsSOd&tME(AO{EO9u8ZIX<}fLXS`4)z4v-f)Xi)kz!e0tx6ylosNV_ zwNihNuxM&YK_pp zol=bn))tX$v;AC~WXjEy#1##G&ZUzjQX9caPGdR+Vug!fCAp}{01+m^qQzH>SS{6H zzfK=1A0K0|LVh1p$khUv1k+1-ypsTsasK=--jNb6VzG;d7$fi#ijU@P1V82f}66hj_n zu)Tl<;~Nb1FgoTj#5cW_{&Hf|I8X(G{Hu3fcz#;!9|&GneNdG;DiYGMSgo+8&$gmf4Hhl#Z$1vco||cxP=V*BCZrzF)=nRbA8}>1x@rTqViZa`N;o|DA0He z8HTZD%0l7*U`B9s<|`)G?7vXGFo>AZTKx#J3c;AE1H^?c{BH*16$}C4i-HL3A<^Q; zd+(9Ucw0#NZ1(&b*OD0=en330RZ3&M)+s0bAdNQ1ZuCf}>iWadgs2qR$vIU;;r>;H zeIq&+O9SKLeTi32?2<)UuC-S(O*^9T28gAY9VgT3;VbVetLKZ}9utd>z88sqJSGw! zdjuSA3B40L+R&dRZ=pwQRIdeF!OT+YyV-i{`H7;EICia~YYg4@9(yAN@};#J%QEAK zF8C6=aYvlPOv?(003>)}=redQ5c>0P=;dq(VSx!S!h$C+zb6xM7Gg0WfX4v1^$e9b z=RCNL$s{O&10%@PR)obukg093N(Q(nCY(|JgDIYO_d1cSh1EFPmmnF3D?{UxZ-7}$ z=mgAU!IAJ^3hRzwLGdu_>VKwrTKq)v8fpQp(6zc@l36LwmM1!jFLQc1U7Sl=54{SQ zcxP(-B+6=PA+;cB&8SHUN|}R}f+m2)MtFSN`R;>{g z63yFq$>Ax!Fbc~Dr%+OPRo`$WUS~0-5=|M~CWcU8!ks`$WaZemVG1g75E)Xg6&8|C zZ4~)LeZV!AMlel1qBBO&jA3F4%uuWmqfFr-D56Lr7qqUf>oj6e495dt?qC$$EXV~0 zlu454d`D-npX7Q0vPd8bHf{eAQqmtAT*Q<9K4*>v%ulfs|E)fwl%-xeZyQgN2TqTN zO}_ih-h!dv%P>RGdTE39+?d?t@de$z2|vOLIxm^`0He8YC-DCk38j@5-7_r&_0p%C z6XPKIGQoWRLIp4wUKz8q`8O8$G>YCv?^>F;gwe{Fy)XpLNLws#lkcJ=+=Emn0Q*(4 zRz=qm>VaBIg2@@_i)l=BpL?M>E|@ZaHP3+oT}u*CX*V-a5sW+HJIoxN4DDD1DzDJ} z@YYTM3HQGa0cy&8uBh+H58y)ZPG`J!sBzdfD6D(;#NzBV~2fe;d zPIs^X$?aj;cOu>Q!O)L17QBIFf zP;6;jYzLI9#?~bDwb}4jH=$XU9A}~{$Sz}@5k95St#tlDMW8M#IjuOQJn?6QBxVWa z^TfiQxpofuA3WjMbrgM1K~XmU*6(6|@Ah6k?JJ%*e?F101NirZQlO-jkm)BvPtqBA z^d!{9YBmPwvIPk-q6##T(>~JPD*eSrVB}y>jE`Sc+G9>vek;&KlxnFl);o;$s7!@C#UAM-;+Bq zlscFQOYToS;~2$PSiD1@SGa3)LY+W!RoEz1wllciWe*!$=p7K>#`xH85n@cWW8+=s z6s^*s4hv37)%fub-v=l#ovh5ATgCI2m?Hc|4pTswf1+BK9BGNG8)dSkG&sWBoOW$p zs=Z7ZtU7l`DYMhJGzx&BnPIi+441Lanh?^Em)h)a%9-r4cDgP4v6&fTbpc6r@nKEw zblap3d#ZPoHKfs!pdFR!D$`6G0}4U0#I3%cxI+vIL8^zrfN0w7W$C(P4rFX!GO>M% zfa^|E-ElvaLPCftGw^%(c??V^(&$78h1lC7`McR$1rQ2RXiPTkIf#PdSheh6=oYqE zv;agwpRrSjj8!lWA~0|8#WET_J(5lY`7LEQ5Cy%3Le6g?(gUF%#6KcDT$bmG70zOp z|5c;^rJX9}oFkg3{O8Pdr4rhVX*Pe;I&ism7#1=qY7YnhxROQJTEt8v6ign+@A zTnQ1n)bQ}qtsR&wiEUF*NLswy!Q6?6Yq4QdR=7!GTc*z6O~|e$S<~t|c}49 zrpm952`5|0F5mkb`RjTg`+lLD(>fg%p(r#eWod1cSprK=&+{z(OC;JpFS+OeFs;0K zkYnbK8^os3-z3)_n>_E%f~pKOQK3^TqF8u1LN!c4MDG8JH3rnRf|*5Rxfkg0D{| zceJi>>bxY8FJp%9U6fP_kuajquvj{GjH?oxfVEc7f7X9(re@iKQ_K-oIwc94j{oow zi4H)nVgdpX;Qgt)W7n^Xmm(;_Ymzh4D2-11>@BArZO8=Fq{Ru#+({49G{`l}#QoF> zI4<@pHWvNQgbnb`I&KB(Yr}hc+($qE$2UI4rWi@woAb#q3X6L-IyM8MdQLi)z>G$A ztU<;+dIk52r|Yrh9ME}ywe;aD%l>q|8w1!C%?UPRXpK9-%Ul3TTLbLlPNY$k)&gy4 zGOI+%LrBrcbR?h?8Iy-tPOrr;1gaR zXKy8EKoAHJAQJ6LaAjp3V2z7UC%fYE)BXL~t$l0x?C~%O!BR5i%5P$O#uy|6lRmkt z=#~D>PC(V!ybBx#D?YYp$qYFX5P-Z#ghB)elYd$A{Pj({=Jz`U{ZSF|F6M+{3={jH z#yN1QShud{tt6oXuQKE6{(VVQiZLfh(#@L(n@#D~%x3uB%mc-dAbK5m^H%=hDFX}8 zuYaSzc|(8pUY-eCkp-;5YxZ-jaZYDtU(#$Y2grW|%j~a0+4r=3dJI`i7;qXCJ_gkU zylR3`qcSEBSj1*vY^g=5vD}HCX!22-^=L4I0VO?b9d`XnESf2k>DU?;0+k@wn9k;o z?czy&j?$~>u|J6grHw+#8bI}eNIieQg~$Dm)m z4p)P?uVERPCplg}mTU!h!3SR`5lBwo|3aB%+`s7HB6{n+V%T7S)UaL;14A1>wGA5d zOCWm)oYo!ecKS+Ux8NRnBeo?%OXGGXZL`yLEPmF- z^sZ=ND)KNCgVByQtVJyrpcr#85@m=*TDB%07?ZgxdRQOf{JK7&{7Esu?^^#0M9&bS z4vGNqs~82*lpvZBLof>CFc!mPla;Qrg~^Oh(If3QPGG#wQq)91`LR~~tN1Bvotyyv zSgDcU^c0c#Zf0c^&(A=3O3(75AE|g0*E652g&)ynk%bo9iHh47C&TqyQ#HCy=$S!g zU_iXY#cR}E2#Y(J4u%0#VZW381IzyvYwb$#+@2>}-f|t1+^l)qoVHB~;^ExlCd^ir zX{>WA`}~<@(y}!>&D_l~e>ZmSm0v(+^MoWS#L)VsQ+iNDy5f4Ds*Xf;B_ApvZ`wWW zD`-**>q>s(F0LKnzDhH0!r5HqKBI^8kKM-~20ar8nD?vD=sy9TO#97YTyNy_!3v7-O1pn z>f<&VCyI`Z$*i&{s{D=S#Kg$P1))tnPj#l6U3J$KRIuDdvQ)Bhgt)v+$eZbXX$?#k zD62|!;+beEQYW*e;8{p|kY$U6>aQQK$wwFqXQ7E@EODi49_E3nkEm0r+%ao;X^9^j z#{<5q)%G(j%4my~V>Hl7P}(b{tacjqmpz{5(`B3O2Lk9#-nKsDuQc@P%*lW-hye4c zX;kp>hHn_4(gl}X=Eq-vz_0+k$+fsHC>)@r3lHcq`)(0n2nER?1*l?-3ewOquuX9F zrS;oxhhQIs06y3;QBGKmB_lx@=Drgf3mX~Yp*(zoTad~{=at#2+%}$ohIloY@(gg{U!q>3eWug&&kjvUAj${D^I=x?;TPI6v$%Ci4%`t8D=5iD|1gc znVkbO@Ujynaks)sOe~}b!2@9Wazdh#rAP%{sgNm4wj8XAJCd(Jp(4dflqyrM0yX!4 z^tI}YQm?^iV>BA8$vDkgv})6Cybhfvm}pW*eBv)Y%Vb@;O)=Fp)Ag94*UaE%=`%Yz zDlv)85UVMSIBfaEm?XsH%393kmI3{PDwZ~rj?6=V-#~g=2q(soGN1s_{ zo7#N+6?@$R15I-ju7yoE*dl`#8?q#dkACL>89Au|rPeURx70Grt+3J$Rv9*8b#o<{ z+Dsgi>T;Jepzu0SK6upVwh|LJ37-ih>XtN8w1utO_eU$0rx-c4wF^jPo z{Ajb8_UQF;$mUYi%yzj*?@%J`?8EoN6%n?oI4ik2-Ud^jyf=`bq8o)vHQ7ugpM2Oa zG8{j=R&R6nPKW&HAZF0fik2~DM=KhmF(!7jqK`4u7-kF+17jS!MVC93wZ64V>baZT zM_Ex$l&g55!iSNAp|mO_vcd0WnYxkplMfqayQTeYi|86Cu)q-9{u{!4hT4|jh1Q73 z?__|u>(|vvqcl$|bjEHLGP|%&X7bsnsW|ymBXMDp-4XzEYrRdSnBtW&#gtM)3B{CB zN)btq8DX?4bc%FyAzc=VFsgvKCw{HK(S}n(ColpE5Xy)FlxgoNp%WMZ1qfxt09Ol< zr>T=)>gy!p%Szq+oU-w)7nOeZoYcbl&3H5(#|Qi5pHAs+QL9u&=Dmu3_n7rLh8^y^ z%>N1%$ueX%Oe353(i0c&aRaL!A4cyapP0`!qnq*#)nijgSFdYD9P#LE6#Bn+>{nvz zTGaJi4R`0`FFO~II9X5iN{4-#3|Tj1UFrGQP#i>0)zEvFH<0kiH6PxEHa;7EmCss# TBF_7R^PB#^@6)%5IRF3vhep@N literal 0 HcmV?d00001 diff --git a/static/vendor/fonts/certificate/cormorant-garamond-500.woff2 b/static/vendor/fonts/certificate/cormorant-garamond-500.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..efade81b31a46f4d000d05d44050de3d4ed3cb32 GIT binary patch literal 23312 zcmV)SK(fDgPew8T0RR9109z0M5C8xG0WClP09vd70RR9100000000000000000000 z0000QgI*iEWE_)B24Fu^R6$fk0EI9S2nvJJXoBw<3x#X|0X7081B+AyAO(e12a`bz z2ODnpCE{(Di`&7NqyFE`S;3CIgxf(>lLFt33w^#&@m9yY-ob#NgsHSg;iJ$N%4%9p*}ZF}ZtO!dV}xg5+sL2f1p4c*Gf_B_wV=Yxj}F$nuTMQuVSN611d5uo|TFZf1oFS;oj`tku-oK zzD}VW!59PmgLBqqclJRT67rQIP_6mbBUHb-vyR35EP1F@-N+-5{y56H#l zt(gHB=!Z_) z-hA(7&D?oXP9rq~UvbZ5fN2S`UH06|Z~2WNtpkOng^KE1w*9}MYl7PY6}?8+MrVso z-R3Q$>t85Zr=x^Sx2`l3Lj7O_5(HrU8G&GHEpMNpfD(NxJ09@v@*PAWF|mo=M`$a| zgR4XjNnL$C|2nPO|E)NY<7C&GxkXMEuxK1_cHoFxf})YXWJ{K;*p`FNpgj~%<~H%L z=fJY9|6@qvI9UP?EX^DtRl8gr0CvFLJ*8Wqa>`=ws;hvz=8AI5Ey`=k>lpfFR){y5R!Y5BmeyTjP3mF z<+y7|a)zu2sE?DN#^RQNZmSgtWTveG)+6m;n$2K<_hR1i)WD zcs28+W-wJ70D75JbO+-_6oX1z z7*=LGs6g9kX9F$=26Byo+}$DMfrlV37|2fyK#sG9pb660lrXT!0Y^+SZvfz_69L==ob zVf^<@2mtsUlRkxyQM-AtV1hbSSY!|a2(&3L7ibd!kYMR4iE+`zfJ~p|LB8)Vkdvbg zGGrbGsd1q-W8>ya6W9P)bL*y$P4w24yl4@T|1FukWgvLa#uxJ+XyejI$dwC=Cxn7u zU9-n>Q*^77$IVCzUbjaZJ6vU4FcPficH9$Wg=d{w`%6?`yNlMg+Re636TBQn*7J+W zOI^TF-la-(xKh_{lz!ZgYN<5UKIUd=$Jj&Hw=&fS<~MWuJnpiEchEXn`h(f4rMu#> z7(J@0lK5EtWeWiswq^5|uUSTDQ6k9xFd?H&Zu zKp+4F2n2utfdCL75C8%M0ziO(0R#*nU;zS+bdj6Zza4hjZI6BSJLr(ZjyUR=<4%bZ zNTLG@jP2_pV#lw!JzHkn_>u1m*>`;N*L_v`($D|W@L8YoaUbDj$lm?7x4aH2lS`iW zjO@X?pLqL#@#;&bA|U*k74zg1P!##nUw!ILBb$Mrd)9+g3A@#m&UK?0E84HbHEm&O;=e?

(#viGuG8} zoXS_Ko3l<$OY^*N`we8LXMA2wb&?^#Z8COrFL}W@6+jt7EEFy=RTJhHkBjr1#2yD8 z=6OWGQ!s{ky$;&kNAAeg+RWEMzwixlsVrDj}uB9R+!Ovr7Y^bUyBJTQJV{ z&0yo^;w>BBvxA-NVmEu)$9@iQm?IqHI43#9>2UU;r}O#1MJ{ofE55#MYP@|&4$fc> z+93a(5G1=9L8i#=Ed$3%V_N9_;&$&;qR?i3bD5iwKA$w>Nc@;D`^XUx^l13Y@qhW` z&Ger=^T4gqE92*8KhYe*`uEsolQmXaY%WZnVUjV1y*$V>U%at3b7>IQoQP>B4Jb`& z>Sm4kVYwnXG#I}x%+DpB70^pbJbGxHdvMqK>0)3!45NYm>vJC-X8!6&PuzR)#^@(J zR?a>oSc``)nLTGF{E}l1*tKr98m?}z+WdXFh32^DiD@RxN~4rI5$O2?Fk{yGO3G{` zs46g=+E+Iz)$2%+(9Kww@^~tBa?ck$oPIQu7at^lbA<0%%4hzJUsGtDl>EgwCNqQo zSi-CLQwne+7Ns__5Ycv#LEHS}?Um1t*LUUSZFhyUkNq6bVbFdoNC-^ciE$Xd zHXjyt4+=nE=_4Qj006K?oKc+k(VyoK3C&lHt=~)m(9;6-U_Lm;$fJ3i*Yx3OK|2*2 z`D4`$Hpu<|u(K|>?5_JE5D_9l(GVR28;^jHh=h!SikgO*g_Vt+gHxP%2@)mo3rH7I z9*heHgPe61*7+cu3&Oi7oXf)b?bWD=P&7bN{U9_ZR+!l6LX(~i_Km0@3CXIAtI*_C zm=s-bHfMwVP!pO{Uuag2kYPgbr3-;BTfzTjMYrS% z@vVcJCb@v~47vabA;Qlb3iSj7dv zrk(yCl6XiLeA6kjKyW?>0Gc9Y+6Bu|o>afBq~fkFJ@>2v$i93)yAUpzf@t-+wT4vm zuKhByuGX)R_d*B?kh^J>Lc4OGQ$X~UHu>@QCJ0M82K=j`2=F{}1!cME4cXK*_>>%- zOoLvPoxKbv67r2e#fxdt@Fuv<0vC&hzy-Cq3CH$|8EsyBwYms^fx6BXGe?R>GOPhM zl>?^-c-e{Mf(Q{nt6Gj`JL9y9{T_{+3MqlZP&Vks#S5rAl%hscd--&bxvWRg_dI^Q zfvaZ7fnd;qZ?EHIHuVKjQa@vBa4D3Ry!j~~HJUo81Z_`$frx6w zRVP%VxSA!@`X`Zr+7Wf=h8kY=>t~v72GlI05)_j8 z5Nd(Nauk}y5NfF)%fz)@kd@;4Mk1?(*V|9A+ImizuR?Lx(^V1PBl=Mb$|Qif}|5a02=e1;dhr zVlAqj!oYzE6;y~U5TC;owEz(d&oK%qkaRKw3akJoLxGh*6s5xGBSg7qDuh=hyc%IN zOJJa*#4i}bAdKNgz(|D|5gairam_dxE%m&}kW80%Q9wu6plPCkhgxWM1R-__u}2vD z73H81hlO!eQI55Uyb0Az8Nrz?pxJvlBw)dTgAEoeY}nwyf&&N6Sa`|-A$9jQQ7e$< zJCV=7$GZm<9&rdpXDAPL=QZ}DiV)=~3y8r#K2O1@7rwmeLV96VwIkvwtCnVE_^WX_ z8Ii7~AUtqQUUcFSFj30~yx)oev4D)#iLOJcL##un6IBOa2M2cfc>8NSK7ZLrN^N!P zAaJR+wtpKqQ8!>;MBkp8yAtrdeXagM$bGEKy(}fkK4~C6H~JAwwk&_;yTeybT?1!u!sB?%wtCS-S6n zJMsE!b?@4DO}gs#_hr|X*m>WQ1aSZp)ACc``uQ4`n{S2*Mi``3opMET zg!#F|v(i&K3D)KWSgqq=(;Wkw>?qhkN5EPg2CK0XtlAE+J`O=to9^H!O?E(PvtJr$ zpVVrvRBMk^W4Bao7wdB*N=vz+gg8KuakSc2P+_C&|NjZQAOwIs5&}#2O|i|8Mrtzv z94{|T;aNcqVTd#o8aMzfJ`tmULQbYoIGt2v6}OoZ{c_S^D=!S+@~hY0 zcEeUH9B~ zy&Spn^|a3xp7Ju!lDMC}NR zfelN{gTJ8jF1qYNuJ@CS;JuGN`OWYC@Y$cgN~Q_|_g?VR~rK)T$~C(v@dYYVyaUL)p4@6R`kFas5I$Twu$pl zu+$1h@)7y?cNm|m&@#)du-(#{gAftXXvK?YG{!8eZK^JkLc1F*#aQdpAVxuxVg!Xo zI>G4lSB4xl$Y?oVyGG;}s5k`9(Sg2SC~dKcG5gO8$Lz7$YKx6h$19$Z90XMbu6}Zr z2{RL+_?XBDMlH$cQEX_0Slh_*x?gaiLs4O{{}7=|=oAJacX@r1@`lNUn#Cm+)PhD( z`l|$)An}(9B0=C1x~LAq{ltnw!6&BR6jrNl%R2LLGxXZ1%6>TvZV<>AUp|17v8NZq zU`f}izi*(u@;eLwKb(>Ph+NKvPG{BeTr>t~gq9>c{x59zO^y-&cbC7O2hbyUPXIj) z0B|I~5&$tIphpe>-Pz>(-2N@mAOi3=!Yd6DI2}q#hKmM(L2q3ES_k!900xB8DL9Jg zEdP?d+%RAk2}arFYZm!)XwJ-od9)CMB2kF!35y@%ck!2)D;A2SVx`z7P89paMk$r_ zl=CX;m*)h4m{p=x_GFPa2jepVvLGDssWdTL%wLmLoKU*ZdcS&{FYCX||1$4O?U$PP ze*~UKKaYBje@+JgfM@?b`}Cap?CZ1Xv)*Uor&pg|dFq2>B@G~60Mz(3Y5;m|4V(zQ zg0p&LF?2#ZaqiytnxU^0NwjoC3NR?pNm@Vd0zZN>B}(xm7lxG!CrYe*WE3nMT&0b- zuqj~gVko_f>v=MgGO47|uij1tue5Q4Lu=~0d7w6JvPoSEHvLNG`}eyzy&!{f6kK6h zBC@4P)xzEBoGK`JwDIZl5NhS3>$f9xyYbHQ;$N0kFD*{7j z4uJs&Bjho}*ii+PNZBZK6Np8zh`11dWW&%mBSdr|8Xg8Oqg(@2-RvfkXDrO4;M$v# zsY2C(SajKpf<}sc0Sw2%3?d3CPRsCYW{{1At#X|(Xed)d)~-Zg&^!l()2eB4Wd~B%Q9Oa zGQI$k^jW&VUj?#p{`0K(5!lC%t1G$UE4tFS;zc%ut#e@*aU5?8UOAq974hl`3KFrQX|R83&$Rhes6Y87He}Pm zuBqoNtId|y8tzF-5521~-I|>^9y5?g30bX(n!s7$>L|eJ5Se|nEti)3?iEHkh9%4U zt8zN6?|Wp`9Jwu^YG}@{ z0+ynUQwXZdR*c7tV-2T)j4NIedJqQNQ+n|tWs2nv5b>3_`V|2uzS3k7%Rm-kV1avq zB-6yv-{Z7*E^b&3g3nSv=saZanbQGR$HVz!M8mA3cRos9@=J~Q^wO$H?LnClhFrKc zEmtV7L8dFAI2xjuFuqyS$IGE`5GITAYgcJGMJOzVJup4utx0z()WdR6& z1}KH7PZmd^bLN?G3w!Q%EA90cZjQ|8OvS17JCdbBb3~##X8gDRIqy zPUqpQBo;PZi}7$7h2*W(OxXkH_Uo$J2&fKvQuF%RhK-2s-1Sj;2h5l-(&(^2naZT> zs|yhYcS$XM+aFN_uZnVhD?51xdAeGTJn#9P8u8=&oMGJta@hS{0Gh}m1#qGuqi7Cm zkaU`<0$$!&F#y*&Ke?Er?WxO-W@i*YbCZ-vUetJ`ONx(Ejcev_W`&Z;feiBCyT$;I za;kJjsE66NN$obd@b}y>BQB~mwF(o1%++vkWzpydu6=?DbWvhl)z!AN^wkf5GzWI` z4w$OpaPL#+P6@Ls3M0#HoR$&4KF6#|^)WT*GWIhxn@y(TM}Yvq$&p{pd9S8he-4(N zcT1W)&{C+17%96tYP22i>FurKNNLn}`Hj#c=%vnUFJ*!Ia_^%Yj*9bFOB|Oa4Ns9& zEGDa!DqJ1pmHB1k8H=;F6^%vEXk-fR3QoP_TC!TygMj;T>c9lXPhzek?^u=>2cA=J z&eCRz>LbZ0(_3Fei6NAepE#@`6v4JONE}W3d|Y<6g#k8npU;#OsGB;|RZsf)6D)(z zRhI@7EyLA=>rb3=498s4S5c&q%KxTG%*%9yRV+jB`fw;4tTVS5xYGJkB@Ij6(ZCH$w&$K|6=pu$v0ga?H}joE^*OAaR(v)+^Alpy#%l zlP>ALjGzUWZ+CR4C?dt_-%@mpc})agrws!Hm{&6Nl)-9hZ+@c1@6Zfb7Sv$rOu?vt zUV&NC1>!{5WnS7G84emdB(qOxn?x8T0oBrPCzd_gYGi?PWhV3iDX#oby|{6}ahbGO zJ-F)6&`gbJiMS*-DP8@1?3($=RI$rWdJb76<%6dqr^ABIE@l+I$XpV+?Ppg~P}jZ3 zXr{bH`88mLiSCg_h<^yr_exCBqhpt^aR2^Eb~`rVq&PR>t!$CvF`AKp0ahiQKFQ!6 zzICUefu?1ot2ng))*us-LK+d~r3_y`Djw&{G!Ya6>Mw7g7@=H4xSqUc0}f(y9<*7o zOl<-+87m_qtFC(0KSq6&(=v|(bU4nCBAwv@!c3h62;5p*lQ}#rdS!BBUAnYQ5 zi{BnsaE=-yT(D>|kpj)s!4M(1&{vX8jwY6CYc59GCSr3{P#Q2RT-t#zVQg)olG4Y= zg1hIpHW*fxDAMGtiuh=oS)_N0ndx34i>=4G$9_mHjb&$^TR%&@l2$-f0j79n!N;8M ziLm3G*x;9t(log^<1@8NMs;*8jy{l1~1z zm2u@NvR#h5`~_ZW&vEE&m{qd1xL$zNdo{5nCZjf*ypo_LC5)z1jSpZljO)QuZaRek zu{=GEip$330qfobwOR!9t8+8xiF$NGh0jBcy}0K6uy(z<8Z}%H<3yE-YjGu>A~hj@I!3!mXlod zRctK_btJh(Z6r+W^BJHU+(-8w<}ho*y!j<|Oi6Tm=J_gg>Ft{fZUs0Bs^aW6qm$jbc>kUf87wm5{xy{uF`d6hFUs>Knt(RH>fsdHVu zW_R)|q(+{(I@3IDboM@}U5%cT&;Q%##7Dwobz#y=3r?Esgw;%Zn=rs=$>>*9o?rE! zu8Ga}dXn#B2|_hJrxN-hJ&6(&qlfg4B&N?J0z(bh2@|D7n;GyxX4X`$VzZznX!?nz&BeJS&?#ZE%*| zuEbsp-~oQx(DZd&T&U6M_6?b^o4Zz!!O$Gl$J1_rvjH`-_)GzXn&zY9Q^$ZcW=IS& zHN9L1Ar~SE2ylxfzk>GqGFVL=T*EfaW^9p$HQRS&hs{`4HsiECtIT$3fF+$Q@GJ6ftJfi|%G(xxgkfvf0NvGny|9AxQ-x($YzB>O1R5 z@zI=WA$s)N+%P_+UMPBH-6w;f04r&F^Tn@+Fe`)_!*___A@8a-ulkcs{$R2F!Ud`u zJ~(^u(|tT40U%v%Vc%Y(*%Azd7>AtRhHd^rv`2Ba;Yan`Wtqv>vqigd7I2_eEb}+y z;MVbLzi=RTfgUQlMhGo)a$Q23CtfE5kJCV;#}+~qk{6XS^!mP|d5gV%3X^3Liov5j zG8v>z7~hF9(ez>@52@h+Nq!0NfoLhy^1YJesb{fQ6t8l|i)EE7l)Yq$QVkc>XT6(s z)7EO6Qw2L~y{5KgFR)x67kpf%M@ennu5CBOK%wbD^wVmL1;-(!R$xfybGE(eXh^yU zPREii;KLIq8sE>yAT7_a$=VSYwROEZiNt^t%qhz&LPN8hVWH?Lcw-cg0PZNBP9JG# z6XetuOQ%=kqdvPHIax9PYg>*j*Iib9i7D-57dAgEuMWie^Zk%|Q;B_^tqA_nIy+oe zPowb)x&g+-L>C~tkec@jP1GV&4)P_zl;LCldmtL_9T2iw@YsiRAMoub!Pv>3VH+_romo^;}+s z9F($oDwu)f?a}9oHdgHlPw79o#$p#q?H|s$hz%z#iuu|>?o@YgGDj3?r-w`pYB9WE zj+j!1h_tdGsFdN7coep8&br`go_UR)1AAU?qwKucJ$N(C(QGXxwPr7tFvh4FwiS;r zf*1Q(8;9d`(c!v84;{N`Lv4)O!N^-lEjQz8V|=4BzGfJ|pC&&rWc+|@%iP*<9(gc$ zoUu2Lz~sc^JZ}$Wa?G3%!k=twO(C-4=m2EX$A{;RflzYsIoK~5;i(7&z!S&(J@$5t zq@To>zI-j`Ua&ze!K@*hMCU?8-Bh+n`?=S@?(evDhl45r%15-`=IrFo%d=^GIbBrq zz7-T9nC97U!;rkKl5ih6299oAVUv#Yi}?nP4W8@~KzMUoE;^SdW45h&Dp(Cs{anHF z$pSat2An@0JgFbnF5R;lHTjL;uOxq29!01ycEXj$-Eo463A~GFcYwM7k-qXA9b_RE z%75e^WBh3!(xZ{It7&~#i)kiY&tEm6}fg= z!R-O!Vt&mCOmm|19+$#Gt|k^)-p$$bn3b2yE(Nn*G6lglSWZJy5w8X=NM+Y7dr;on zpAp(j{odIIDp~gU{xO(h?MrB3%FQI*iol0LwPN_-_v9vv#HN9ElRbsmV^)k@=e0as zb$WCMRqU5l6@Dz|>K70o5p4wgW=O!U_qhrXt-r&uRxLX@+HfOqkZPU4M!{CYX(!L@TDsPA# z$0xFeIoIzF#;8A?&5Edrl$2GCPDkKr%yuSb>_^-llZ$#)t{G>19~wMg&8bcbZ?~A9 z(lWg9s3u!Wc9dueMtG+?6+|gi!^JbOY)sMp9ElSvfsKnmdBteFCNkwi>4t?e6$#jq zWiXzGq#T5sA4RJ?P^bOi=n!=#%?z~Pa;QLAkgAzVP4bw_i?_&tC-Bx_oV>x zQ7cZ@Gei}DIeLkd9<9VZAlcJKHU^rUfDr9u8>FzsHLG#Mf&>1%4l?xTQ|Yl_Q|hot za|XI2jbl%C_Vl;`O#!+ZsmFpoq(}b`@fqkgZuAgf=W`=u z`;cnfsjxzAGzq%xOl*(sQ9ks0Sjy4PrS?IXR+bYGsPM1tT6=EAjx32$EUSD6-^YX% zaAywpBVW`45?2_x^1%h1K4Hd$X~Y3kSp{&B9Fm<*XCW(DcCdUV`- zL}}h}p=S0FQ45jRKYHlRpIO>?%4J&S6>sXDJTo%t$q9|wPTgkNwC^Kt0NWA|luE-v zP-j6#Z-_b&hACJXct?rz!y1_0(OOXwSy)r~rAxe0M{k;rN6a*xqdhF~$IB*yZS~ch z4k{o8d=N>mmYLRZCi-CEA-#8i>8C|f>6^T zuVc=s=Ug&#<6Z+7pdQQ;WH{en6t${jC9(LNg!is_gFL!*MtpFsKcUPq;-jsLQ~BP( zNRI&zw#6BQ9MF{Slu3vN!wBRzrnwvy&#e`0y$_Wp)LlDh=LX(!Bd{a$4W%)C zwmKQn5a3i$EGptTKj(rq_n^pH`U^C#M=`PjuKfB>tQhG z;!re^-y#A`tWJxO+^{os~|Nh0$R$00J2H(a9l%KrgiZ`>P_lCrPMK zw5~zhvlx-L^I!oo;s4o!q9R#^!jK@#`sMb#F?>_>juqLe(h92U_H>c`m{p(n-H*K3 zQ5ATCcg;FeQCaA%TksttO3SM`N8@Ee24oQ+Q zjc&=lUzGTsCsI+uSRFNyB%pRDes2XWqr|xi<5e-pD3m$sG=M;^@0g;)S+>l$<;NV} z2fR6&%VPDFhYHi&(38Csf<-1@&dh%UIh)kJ2k%C-#p2;%6=RWu4R; zs1y5T5}BvcEB8w4f?mnGi6bUS*VT%B+of!&xjskIzOKE_BUsnIPMmG7H%}}H28@z* zl6t>UEL{fzJND={siX)2i6WC@+))Stksc!UlV{&{{%Wx-&tx<~1+xMo?49{tPD^Fed^UroU0)UedCb zQ5q;42z17bWgLcR6SGTu~2_w$eO2%Uoe!k!EC|`$n zEMzUV-%!9LSOn2n0xnDhhWyR0a-B6|bvO$u%}K&sj8uA^gOCtO!ezl#!6B^_Cc&H& zQl1CHP0kRPsp9kV`~T0}uvv5p_i+vqOvz4^PZARHLf)`HoLiY~wtV~Gf7Yc|;6Q}M z7=`pX2PVO?gu{FogoOMcQksSGTb5@RPc4erhg1{{HDppE9Ujk^^5T?f1M)JHRr(X^ zE@0OoTrR>y2n2*~+5~QIG8RZRnUuwfd^Q{YvfG4zA7GzlZ+gJiz23- z*`)Bqw(0&mD|Mz>*PFFK1(RTf<}%x*^mnBfgkN;l{I!#0KxXO3ocp@?gwd>VaWr{H zT8acL0>PGu@?dB73zgIjvp?~&@FBrf!QqhXhmGBkRP}r?WoV0F;Y-#5){~c+@^X%~%hudAgWj|?LZ9R^o(1Y0z+u6W?%a@loDkQ28X-;l{~umKMb z-Lced5y2%+NA7X@}jM7rUqhV^81Pi^eTv7vWc|GKE zx%=yg+Ri}lSc=1#<%1z*Z za9ntSyXmE<(32avf~-RHm|R(G>4CXY@ z-5&MJ*r=b7Y9m5InAZioj|>;qjy+_l?Y8SONe^rDA7d^1wX{2pa0wDkLz&WGDolc@ z)iJc^_?S;0UR=ulpo+X9;5;$>TslmG%}4O`i~PeJz9V9nDw`DE*ec$CXRR%NolPug zp^Hn*iQ>IlK(!f_JWDT6ps6nOU#!uD1w-3k_WW$m)#Rd#ULKcXl*8%U{|>`r$af5C zy`DV>v|KW~oe;gJb>eN@LgK79b}waQ2bc3noZjzXP;}uSTO-f1Xj!Lyktf&mgO_7c zU6_9{MiYkDK)0M2ZhvsppO`+#npdhHQlY?=Ct4c>%9jOiO z#1VZe+;h6~@|rtl4o{O03-sx0%~UvZc}p#WwZ#7NQL=8=yOpL*Tlaj>1y%`lF8^B8W1(Ti)2JRCG} z7^SYigl`LXvNWPOJco0U=5KOJrWQq5h88Kya4-WQ96&h{rd&qBwQ>pgeH4 zK=|%o^JRW<7}86gb4EwFh1&dP;oOjL!x&{^xg;(v%C3mGEm*U#2T`H zA;Z+7tu5$Z(OSRemjLz9{~Q6oMej9RteNEo4>$d5k~IwRok5I;An z5bg}-!zyWdHbO*&3JryX5D{#q$K#QyH}WqFE;nmn63p{LYNZ$ABP2vM^|9b8?|>5| z{ck;`M@R^ZD&W8jm;|dQSb348e*NOp!vo_}nnNClMemTIarBy1s@o#q4{7W!FR5;= z$=YWqbtvC}LpLq$)q{MCDonP#nyV4zSYLArkO7@psxE6wFkFl2 zA|9d9{^6q@16V3LcMeUNlN2Sia*MGfn%tqk8Pzt2rMcSw!<;;WqH`C*_ zCD$l1XPuFJ^HkBu)XNl>V}6rzJ9*kD>TzUg5o-GGX*>2S@roHX_6^zczo+=W=Pwq) zB$#;I%;ZwppXw5pHRCu~8YjyB+4b`Vi5Le&=TbERm{*)A`xnovg?&}~D21;%zQLM@ ziCF4q9)B=ypXn#I!}BO=-bYo!gHgMzXHB00RsF=uHdLl#GO+MxKDqwcaEl70TFwj5 zF&r}yc;>y@vFU5!HzmZ9tz>=l*VcY-Y($FudgTpA$^ZxlAg4TZY- zgM=9)!g3f_)CGr$_s<`Pw!^Ab&~`{ts!ZNG9urR+l5VHsvW6>k54-DO0untQabiMX z4OkmN`B|;~8>$3}9g3W_jdOwn=x%cT^S}J4WKzkyW?>)* ztmVWiGHk+URyWiSsHS?x+G-_23N{|>OUuVG5Pl=WD*JoKmJFMhqjZ`+R>b}Ifu-y( zVc&TEozx_wa)d_u*=g(yEDhZtU#k9ZDi;B)l47=hYWv=L`<{CYAd&?cstN zLqbkXwjh_y0fdcaDpNAKRX#CXNi0j5t@Km@kK54F=DLI zr{9}<-E~7&IW31xP82hOjP}^vv|Y4^ zad3k_0cS4xkm$$_&Qg@0v4rzy2i${N)aKdQnP2ip)K%PMNm+|w_4cnEs-iQJqXBpt zjQ}elGz5&xa(R3*)&W6f8LGDMJs}^&>s|fLZ?QxE{$C_&&EfN|B~2SIml_1G4)Au? zZ%ODkB?SaUbe5ry*a-q}ge42DzTbA{wr637o!NhLXZqxs;j>^3Kqk^htQ7vRzQO^%N zbwR>*iHJ_wWC?pr7BPh@`uaRVtE*QIaZnh8X@tUE5mj`d@yeBjj1a~z<3c1&2G?M( zwtjb><47#cEBBW=m2U09?x4sm(&*CFhFn)hYF({`j5EhsdiSYc%b!wX4_T7L<5I;i z+J!C!zYqgOiRvWb;(~fywlkAf47#HGU!AkyxB&l@z7f68SL$C5;kcnlSMS z{$3gDtB4>1W@d~^nBTFhP_EX!rwF$fAGMZK(K%`9{~bL-(guy%!lWc^p5KH6ffK|%SxyM1I|s8JJsv4kbv@fL(+(nIpA)F|iA=7@Mg zDj7k#z|apdp6oP-J(QmlFR%2(>!o6Tc3Qq}MR;mW|M8X*OSWuu|FQ|Do={;@bFDc! zxx{HKbHpjL-L^1CD)(@vew-q1(Mu>}%`JKhctLa(Ikm->l!U69cvr$HBQXV+mRhW^ z#pS2P%ZdVK3%7D0rHN_|@wT&Lo}pCiS2yL=Dnv+#cBt+-d%+zc5`(CB;?cEjGh3YR z*wk^c6!MB4cepn1$XN}7%Tu*a&*n!7U-BxaDTqsidnOf$hkGr&19x;<*LU#)oW!>b{~ zd${2ggZ8lWyoZ$4uy3w^?y)2J{zB>W-Q9ha)<1G@8O5+|u{`k|gnp|5F}#Q7!eH~5 z!c$N3@=81j^T}Z{U0G3>BfFY)Ey)xYxj@^+UpKAp^9A|>^(NQflN_HahLNsFdUb(( z2>Q(t>(VCd*gZ?&*{$LD%Jz-Dkp-jm2Mkj~8%3wO&X5J!N8FNsfRdjdK#B&qIT7*1 zR5HNC?Q8ldP!dXo`1%t(y-QryMiyfOi#3J8nhH#V{NVXgpQa;eaDKeWK0USawrs;Z zF2rmAboMTJGVg{)`_iN{LNz2B`M9=dPm14C2@A27M9Hv3GaS`N^V8$#$R+O49fWbJ z8_{dR=*ZFQ?pzdgRFHyGPcO=N<7uz`iiCwmSx`MbX>w75IqquG$*8*`c81`Q(Z4eq zfnUb;0n7-bsqpDV8AI&z7WLNO<$Os>DM>I@#oLvU4-uBaRh(q3u%{-KS6NP2oEh0Z zRh8GSwb;X(8X z`*q!Lw23v_)ms*{U>IfW49eO@>E#(546~O6>jT~omCd?a(s%Tzg@2mE;=u_LG&;rb ziT`+-1|cCl52WBxu49z51L-Tz+pO-AqQXd#L;LpH6m5mWtPN_{T}wG>twlIayis zIg_o-@@Xw43ds<0LPB9tske_^!v%veH?wNuCvF&Uo#CYh~!I{)o7mC9ThKa4jq-llq>h7^CxQ5H)4p-8t^f`u% z{Ywv>VsqIF3zLQu8P|`5oE`L^=oW-HWUrKY92^6)4UuWIc{EnSl1gYh^FOQ|0V&(} zAj1|}P+8lNg~VZbU>fxU5|>LUYYJl5jf!u@#&yyV8UQ*Un{#{pzY{)Ew~>#rQVSxD znf>#+f7iRdTgVnjyjcFL-I1n?{@TxNZQ^3$jvn3QuAV>7oE&}j(CZl9FK5B_v2wlG z&Hr{M$@+Q*1Pof%j|^%~3@s^%%syyo5|^R9X?>;*Kv7CAMJmbf5+qmGO`;yDB>(@a zv_@c2aIDzmjKHoqqi8t`8onRe@7HQ)l&_c^w;Sq(WmBMSkhh;u(VC7)qrI$jMx|!s zF#Bf11O)1b22pcse=C~idSG_wKf3hnu#{N;^Z8~-7aSnu->!^V{Tc8$JF{?qKwWcC+Ul;iFiLAt4`KZk{!&*0UN(VWP0D?0fF z&LYpUfBsYWMV{|$-D8A~%E)t5O%Ikoz$aQYV3QZmmrBel0psja-UFS$fONM*Yl)_? zRF@5Vp#ZL|oWuS3HjDU(L$^{Wf4ENxls+9VErLjhp7mC>$e2fIqKbXIb-0+52z8x8 zpMS8_7Uvk1NKA+dBpCz-OVI_TW{8kA`W3%jqbrjy9nNAMJ55Tr&YlUL5?%RD zZLu{uzN$JtIq_9|bQUg<)L&(B=BFjdiUKC9q_=elIvsDt#XLo*)CKvEhCIv}i@{Hj z0p|4mZg{wE0W*)nz4vF!ABj8JfgG1v7syM~d^dbRvq*{gPUXt>C+h|U@TM_A+!d+p z%%SyFE;{S%IScPZwN|ZFg#z(qV&)37U!EaVo)3!*Hm{r`R(uzd&E^lY>K}gL2{i`8 z`}fuBz#r@7h%t)P$Fe(t5uLvi+#)3u4A-{{ipaHemMlJER~6g5)|x_RkH%b((>J{% z(cs98B+KjGB#~3{&FVaBa$G}IiYxw%i$hF9{ez_TxQcK=USB_VWHqIU>JITX<6>?g zR8URO%0;ns8W}8JFCp{Z7?mk+zQzUg((UejYTh3KX=1|k5&d`N`ECFYKfQixvvJu$u3(1UJD4qVxXDwl-w}yjK9#-1qvtFo);E6Nh%pF_ zVX1=HpZ1|Jd*Gl=dFn(D{M;26c%eHYw6RbaZ!AwWIN}i=cm44mK6=NzKX4U9s`TzBM zuSowOxrn8A!x+kfC&3N15iqP9FescBhYECOd|f135CmZotev_Kp)qJpJX7_FK_|U(j|vRj<4(v=a*9LhbO|!l6fbJ#1MB{NP;^&UTAcw`MsX#x;+M7TZ0fOjOO;F48daABL}so48~5EI!;u7d!H# z=}lZ=Z)E=H)sz9GiF4tiy}Fj>vwpTl|VPZ*e75KsOabt9l-PGX#!BN;O?_ z&X^0nGWw#=mX6VG7{Sa#GP769D)eRil&vAD|N5N7I`N4xJKQUm@-LCbEjlw6=hcMM zDYvr+Bu{GT(iT>~a;;k{Lm~m6g?`6HsAfUJw8~h~V!MYFiHfB&G9%Wd1x5*GAu7Zp z=~cXI5ox99lnaxxoRE}5H2y}{B*Ds|mC%9-E>8p39_?&L`mFOd(-fc)Jj^MGF5^N3 z5qP@#_ze|MA>B-meam}e3uIh^$N*It#EXnGREmYlxNA}+0mB+R<;|Duw9JQB(iH(r zXD~VQQmqs4&Lb+Bl4@DR4^SWk9swmKOfv_bfR-`}RPam1Z_*~VKig%|dh&dlWf6Xn zQ2o~oWoni`MLQvYGiZajBQn|9L+h)ARMy_JCf?25B(+u@4kVO{ehTEAsqV}3YrgB3 zyb*r6Dlu(?0yj=mo@3n5%o#5sKB*$?O(+!6R#==9o8IPoDMZTe(q*H0Esms=biI&c z)IE7#vkovkELF_>G?mkwdDVKNMlv{P9#|>RO#f-G9F_OPewN({Ok(X$AQvD)0sI^h z2oY=csWQ=E>DG86twPS3OCfzBk~R)HMB!MJUD7@mE%B7IV#XvgrS3tKJSszQ`yq++ z)tv40EGMiCPXS6Mrr-XScx1Y2!Fz>aqnj_%bU%_QD}JaH6`2#P*=mWzq+odlgZHH5 zN{787CD~q9X-i4&W4DzjC)>))?Xd~Y>g;rR$$nWva&1SHL?c=8ZTqP32gp6W(nICvCUdP;Vimof3e1VR8!^MAKGmY7U#-jQm8i zm*(NihQTUg^+|D(IYLWKOSObFx<8Yl?XbLux*9Scz>y1;NhtxnLh5&0@2wbAgR=in&IlrP7>Fg*Xy0`B%8r+Vb7f?odka$kb-r0 z6Q*|VAQwWobSFN)AN1#!U%c>kM6raj3No`Lv97Fa5vGI&xW&yAgr+#9c!5Nea|WqP zGaEc+TS8W~J~5@lU<&Dtrkw1QC&hm{OXKy5Os`od>w8CLdJ@nV(Dv2JbnQ+sR*`9yW?ds*^*$Z+VH=_ zVM({K`*u(lQixObP)POoH{VQUp_z1<@03TS_H6#(7~ZPA2$2$^esKK?KsMGa#TwS6XeJ%C7W& zntH42irwmUT!VVy=wM}LFp^W?v1t0bOG7#CKw>bepb6RBhmDXBFdTJaY=eh@v&2e& zm^N9qG{6#@*K@pToxmT__|a%gvRArUnY!7cj40U9w{T&(E5+=SXQ`C3G@tDyYkY=Q z7176;3kr>(Fh{WBz5ph{j9jtO4e<~Xq8)r#bmW(x!_KITHc$(M=m#OGu#n-frZjfV(EtZ9RNod8AGBHFb(t%94Ef86}tQ6tPyQ}CA{{?~pyDmM>;moSkCc4Xv#w?S=UXYtKvzTBlb=#!b zZiC*L|h9Wsk1u$Hn>U40AKyj`q~e zVdpKq03%;23Y!d~&@#EARTwfFg`r`u#jJ=wN181XbF+Qv;sT(DNw9G5NKv=Wd!nzU z%se#SQi!}2^&;M;*OGR}((ho2X?yW&G5Qk*tLm7ks(>e?` zW(pQ-s~TI+py1#td~_>>!x74vlQtcpDvnAOuQY^lolp#@E@l|FnWX5r+In9&hVaFlLtRN2%IlF*s%=I+T41;=M2+ zLX+pwvdw~d+j(r4*l1p+bT6+|J5Ul)jH!Q^g+nsM?;H@D8MA{S>8gFwNasUF<`) zBeNa>5ookk(7r1r0%950Bw<$9z$Pg`YdoBw3bIb#XqEp8qHC0Z$z{*R_#Gx&2boa1 z1V}+gX&#eZJEFroKL1}6!*TKu>Ewu3DA_Qt{!B< zxAs8HCd$b(P^0aMGR#i9yJgncBv#J5mp|1WacjpOA$U{_)>7>5h6A0FKxIhgsNV)E zh#eC$4SlDU7Yh&7ng!mMK8G@}5|>@_LMw7YChtHdwO8li=Q7mUuxf0?7)@(j&xjrc#t`Bkg))_ zfbe$`e8a7(W?vE!1_LUC9W6@J+Ldljfkr&5z#O|*PSS{|H{gTO0VdyhQ45;~(E z+85BCUEuu|@~Pn1lO0rBJQdKtjosM}t9_oMLMk6@v5|b3q%?u8bO5~e3dnonEB@{JxW5wPAbU8G^CuZsy>&B zsRvn9r&uo^&Nhk$Nrn=_zcfQLz^&S zwCW3rt%bBP|49VzHdGFd!CW`4v&!P&V&G$!ILWx02_!*2N~ZOfqg z#c1wMAv&Y;&US%dA9G{dl`mfJFRhDJdjJo(c z&!i1!>K&qSI=ObM-ySjh99oY~qYY$g?1prii<@UsUo;>@^gcjHh=lZ}a11}g5cat$ z6sf*Kt=b3jj)}_{WCo4#L(@(Q#e&cFc76EBu(xoFlO1)Dq4S1}mZV{H{BazFgy`<8 zz@xF@ZeS%0*^TfG#>~@cQn}%N8c)gJ_}3aDt`Q-^h9boVE?1(EBSmY=1$yq=*<*j= zZNym{G1x|!2&ELG`?y?-LP0IsU2f3x-psBXvKtZTjTN_xrE5#U04*pB6VbJ!opl4%WzQvNN}ATFUJhAb_9pRIqN>_J+0 z@#s)sc!t;9URcm!IzAC5!Gd>!d%R}?m;}ePQD`s7#xFAYoDhRTTU=_?yx_9-`?i+8T)02YLw%f36@fM=^GE3ih%TdqE2(gmtYm_k{3bPaQ7_1xQiiG22>=znWDC~5G zLj42>$B0K{3l6Oo+r@q$wxEXd$+B5Ncoo=e!5Gd%&e>kJO^1Rzx|eieyjIK*uzI7Z z19qsm&N|(Rsz8=fpl0mJHAy~8QtKCCcI?0`LWg0bAz4Yx;SL23clYbJ3M^llJJpuy z)KOgBe9^ZhjqHWiC?#t-|=Lw~$oll?Enq=xTX*>;g`mpgq zELwv0!iFNoS-!d%>^MBfP!O>@5(<-9ZnzhTuD}I4x8@OL1+B^P<=^NFzQyo{W0qia zI!yXx3~@MS6sprb9u=+{5*N{A#q>^C98#7*bCDXASE4d!T8(8KP@`L{yO3W4Z$s=E zyx7<5~#k|Nq%)nvd>NOOoCYJvX1N z$o~wb&Y*b#9mm3nGN2bbo7{I(!$;X`=i5#w=p7U{g80bNx-D(Pk4{{5=7^4qVM~r( zvkfCG#J6v$jT3CqoGK%nUWNGMz^-}Z35Nx7ZhjcA0I!Lkl$A~RnOh-K-=vcSOnUbM z)umWpN^@1DTjjR)Vcj&QoBBgz(Q3IjQ|d^o_c{lIoLBXk9j1(IU3E=4Ddg*__9wa< zGDSJGxp2%tVo@hrNtug7bvpFmj(>OCmW%4O=pzhw1O|-JAJ={u+5xYE1&IcFZ0ux& zD7Gghn@E1{C1p6VPo>tunf%XBMBD(BKx@@CY4j#~SY=^lGqWtFG6pE5(srzg7FzvC zuF$v%4U7Kg5k7+GahvtrzW$%s-xokz#tBwv>Z{6R3ylkNvhmWJRHjJV>{*B>hxd}} zL4rPUpicrsdJ4UICHeoU1Ph?6|3j}{O0NAcNf5tw2Wtt7v6#iW0oTNII7AECY7iRe z3Dc0-({CzLJg$d`yFAq~1C>^%{DT0p_kzfr4)I;B^E^%1TJ)mC(;_<-8wIK~c*Cn+e zV>o33W%M_JeZDfGQGcOy6f7{t1;cT&zkB3yzKGM|5519)j3ZK|G`G>l^V{9>x&O!u zRp-hTHNVQ8@NIZ_swBJm%!*>5+Z&*E5#`K22(WGYU&v5cLfK2tW|4L8g8d69-FNyT z77MIE%w_~E-q@QMvUIM3EoMXk@7QM$y7%^)LfM_S#wh-G+}et6(HlrHFL|DbOJhD$ zDYEfxvi!$2zNN-IfL6f;W1}BYXnABDQbTE^5W^IafXQ5KY6GDYti>$mA{J{f(+tQL zElsxne7@39)rPO-R=QhD=dvt&lDE(*}M?VOQkh3Sf?3+KV`~v(0~0y000zt3sO%{ z=^LB;2OdFQ&ejqD;Q8HA3IKo~-lZ_UE_wZQZ&_ymV8Iz&KXYBYQ=tEIk)_R(S(jh) zhsrV%&x!NzDB%t~|4m}**_WuYW?|}h5KzqDL}jO|K$2H?BSmTFsz9olk!U!TO_p$y z{N}+rePO9x@H1FEUYcSAsoj6Q-vnl4$~hFzTDkaq*%e_kEyC0hqOmAP8F72C+^7R- zs4xuOnth{h^UYaCaFuUN?MHh2zNuGZQmzO<*_!!y0C0Vi%&r{pO1=}XWtXzV>NBVq zz<~g(>~e}~MF7dl`8p^JAaAk&fX`>}+t!O@{BctFe*Nd|`Rom8KNrf&NCiv!2(xn6 z`Fp-y#oq93JC7O{q$nqDBbFWYB30QA)O}WKvW+??J54rS%yu;4?2a|GD5zZGW3Y_e ztE$Rn+zTp5HAo#p9;qTICQD#*cqSRNU?S}d3AQ+kr88li#JS@2nEK}?Y4Y0obo7=K z-}UruiPkHS>m~6I`n$7sByKyCbvIH+GxerK3t5fexC$1x`?djgI0+5{?CY|KgDqBLX1%N)$bzPiY&yGU0qGC|Okhzhr7Er;Piv zW6bauw2cl*G>zGlxR;oc0Q4OIzgo6))$ma()$R#v@(-M|yzxKjc&ai|l@`lM=Hjw< zEZf9@#7g2;DI8bDb>xeuXAHam!Qz6aS)!vvQIG_9BDK8iGDpbkYcKOShW^l%90(<5 zeu4RZB`M9OoExRh(cCj3XXlEz$!l79J3$#)%qEGy#0DO#h2)vi4J&CYvsCvUH<2`L zi`CEPi$4YC`{MeG;&KGbS!D6?CC|t$h>H?Zk-Pt3rl!+uQ%V?D>~_Yq76E_{GDv_# zP(c_tA#C0f+=g4h|1c&;&c;|gl|KGUT+ij%K<_R)2!Pf)h;Y53+ut+BRtRVn73ZyK zLOR4%FdY_Cd^#e>OCuVej=^;$9V^lN^cYT+>11ZcGzt>wi4X=rbTEPBAkgU2$ImlR zf7J#E8T9gP)vQ*r`cR{$HOXXBH{nT_h5G*WAlly{y?+p~G>;2J3Rh59o)L#{g)V!W zPKiupU?lYh+CXE25}`*rM{49eOk)Dwi~164$W1I#&pS2W!o}>2%)w}xe3N9!mL)Jv zNg$6jg0@npbWO~}D~dpd)~XP-=1CkMQm}&hsQe@cg)X&4y;|F7tQuR?+DfU8mV@CE5qmBzu+`6(=GSC}L}a*| zoT5Rx4Nh5?OvXH7mTa2Co?%d5ZU(N6Ekoq7W4dWW4L8Cty++FSj=R&pRIDU>ql_`u zXr;>ZQSOZcD%dpPd(M*cYt~Pz76bIRO1ie=X83kt+f6NnODelZ3ol~d)Ebn=!0F>1 z7Lg%SmTWn#uo4XelarK}&(&lZ1qu}@=KAp7Sr)xM%2lY;SCwitYSpRNpiz@%E&6HI z-v9%(Y1g6CAYHl*HpEcF3^&3^ql`AjSmQdxxa57b@g|sPlF6o+YMSXG%`nrfC}If+ zeFya|snt%JEE*P7YO~FWTu(dft*vTXoACVEo`ENEwb1WON;T|2m6Rgh|E)M4G(c z^Voe4JZY_U*1u5GrCGOKbFjmgqJ95zX?L;yIJeue>6F_KkjXSlK*jD@+0VDK2%_YQ zXZf~D0o`@*ca`%Ic57Fz@a;LUiFdrAzWvsID{l+dP^sy14r?_RK7ya)spK0CbTqT` z=5y|Ju&sFx+VjQco7Ko(Xvhz_TP;8P7P^nBfw}ahf-?;p}4Y@9RY8GXVeqI^?}l literal 0 HcmV?d00001 diff --git a/static/vendor/fonts/certificate/playfair-display-400-italic.woff2 b/static/vendor/fonts/certificate/playfair-display-400-italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..30828de8b55b325fd16f0ebcb965f3b84b8977f9 GIT binary patch literal 21884 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

_Be(*#Fg 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 literal 0 HcmV?d00001 diff --git a/static/vendor/fonts/certificate/playfair-display-500-italic.woff2 b/static/vendor/fonts/certificate/playfair-display-500-italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8e3e680951d11210db473cde4d28a92c9c35a404 GIT binary patch literal 23076 zcmV)BK*PUxPew8T0RR9109qsf5C8xG0KtF&09n5P0RR9100000000000000000000 z0000Qfi@e-JRFQZ24Fu^R6$fg0EH|O2nvD!9D&JO3xsk20X7081BplkAO(hC2aPTa z2OBk`71M3T1Lpz6FY(DSHJNVn5jYPa(vCQ26q0h%a*F@ICO2d#v_Rdg{t&axlmZK! zj%sJAOS`M(3UykE?JTA);s(s;&m!25Zl4sz{1uxC}|E6U;zC5CZ!vDf# zThyY~vQNB2F;#H}wvGHrPF~`n@A|h+&pv>e*c-t70^r+2ur}|X=#MPEfaiJOtNG{u ziA+VLR182-S(&lTO}FV3V@A(8S?OG%uB==+g~Ikk^ z1A4Mhr^|)^Eg3j0hXAK`8aj9Cb@pms&n`|?S+V3QC9M^~Vhfw|K?ct#rNazA-rv

5QyfI(Bxjy@$rAU)w}kt^;WbsYZ|MsDwmdR!2|5>MJEa*K8Qzb$xMC%0%RWQ zG<#LnmL2v-P8Glcp=>>}#|Ik5Ul!U*fM?wUJpatS+P>VM!q4a}Bb0!`wH#Six=k_v z{R}uG!gMT&T;+r!)lThvH#^pIQ({7zU74Cis+s{v-STj{B1kz$srW^{GdbN?$wY5W zYR#Z$fZd(J!XF=o)PW%D1Q2Hc&=e1p0YH&YfIP}sM zur>&juMeV+!>0gGPlBQE6N+R`@Q6&)2(T`JsfP@AD=uaRUbm^ZfuMM{IpS^bl6AnEE6$ z$9Z8kq5RnCxdjG*4!#v;2%iFa^{cqe;kYUBB2DFDS>yUi`boaL?*`(*G^tUhK#-T6 zkxnu>5sp^KXZHe#U!P4tV(OPbGC|}9`mF0-#%NPcqgHKs;RLe2@=_!EZZi>pQcx5p ze#USRadrB7(7DbR3IErNXpqjfizTenN4##JGZX;&m+MSzdir;Be*y3vU#$PA*Xe5n zUMv3sPnCb9cJ3?x9d~e(Uej&Oy%fOtoXN@MkL7UgtDOV+g}uw~s@u1sxf=smS68po zmWJCd3RmJp-MW6RMuH(SUAl$V7~fzzr%n$B`Z~oc|LGrj)ZA|Xe8va7RrxEa=L{|@ zPtfwvnuLy?H*6u`ussAg=Yr>vZmft(>jlf=EBy5=llJ;BsJ;t0SFT*)-d-%V&IRZyh-0T=D`y!(|c(ES+P8F{S*7j6@{#5eHI_C(QKdWO%AA zp0GcZO?g1%gl}~VD1C*9PWr=lg%VNV(1?&oNbx1o5xxWPaLUj=X4wijlxSNYx5I#H zLx!OG^_{LRV@jq0L2D)ehL4t@r~T<@c^hSbxbAXuc&MQjd`fvePIIyVq){(E{~qMe z+{}-bJ(YZyE4heImp_(+`6vgC?`KE(O<9wvtSMQZB^ep2KRsznL#k5JMAg=pmn;6E zv*V66`e=)~$b{6Wps)&sr{ZKGqQpYOu^i-;fBWQd@AaVG-a2E80LeZH#Xmd9imCp`Sp6 zXixOVw+Mw|aKwIGg2&B+whfCLVr=f>CM>!c|T`wWIAlut7hg zm;B$u=8b(t*Tp|n^yjZY_|meMt7+|;xB9`TINmtY!S=Pg9c^t>>s!;xmbG{+h}0hO zb=m{fmosd)tuw)qdfXOy83ruT6v5#NyBpp59Jk3B(V&CJiT&&a)Tf#O(I6ZcG&pVm z4nBL2TlJObzs&cGHNCls@1WhKw2Lj*aiMk_`X;*lZx7x5|1F;*yKcQ2x(Oe?q_Hv{ zx;rZShk-gC^U#uELd~CoTSK%FUc85d0Vu@FQW^t!J5VsX_uJOL&s=7rZoHvEW{KM5 zSq~Qjpr&4!AhUa06{QKp#&X|%y;Vl7oBEfPH#S-UaFzzAhh3nUCB+p7CklquIkHEU z^X9D>)r@M}K|9@v^Az5wY+lTa-X}$UEmhKv3Yl|4gquZj2oxOTi@j11jmN2WO`@-R zXx@r)je;$x-J@e=kP{*U^I=J`eBi~<-azb_rN`~h=8ETQX#KAeL)5*80#A#tyAIou zuYi~RG+{?@(%_D(J#W^_0_`cW?sA;H{2c~bNNZuqpDJiOH{$Ga&sBGk5+~QIXC7US z-lbP^{>|?4zu3+9m2T-~58Tn#rE+xI%pt&Gql^CTKqb>G@$mhHmSb-*lU?7l*|iND zPz{X^_S08Hw&wPJveXI$?H2O^{RPguQtP*$-7nRyAF0Me64vv{ejxwtsW^J#^Fxlv zA6V#zYjyXo;T4Q#FnU25K}3rXBL-WnSWt1|g-L(` zg@qLc2M>yf0*dXamBIwjB${cf{^m%@}bAYZn?e430tur3(d!g`p$}OySTGMvQ?;1Okj0 z4G}_YgObn{gJ}^l338tZlsK$*$uR@+z`znkG%R8hoOCErMg)cL05?iB5;?s9fuBn5$${ENJvDlbNai6C$0J_DXAI}{8BC%@ODdj-oZA)`?j|YcfO5p-9aK3 z1aYgret*rruJe0zT>9<+7B(Ds&D!sy8`nELqVHCBE4U;bS`!cbx5_u4aWMz;LAGUix>6H+l8YmRoj`GmO5*pzVZ{A< zXvoYNDQ8Ab*wGY9si+w`n#;<8_iJJyB0#U1@>I|b~1PSttOKK1sSMt{UHJwC@U*X2|DeC1p7{89#Uusrls=5yVZXC zYds;Q&B3_WUOxV9ziJvlr>2)M_`@h-(qmo2He7Uh&!eLD5eB{BMO1LO$ilFX!$FIa zGdNVjOl!<ETYct((QI$j59a-NDOIPJ7_7VJ5yNQ(?YZk8g(fZtY#-DkWZFad7eQ2?&XZQ|16Y10xeN z3oAPZCl@yluPnY41QU`YSDt(Y3RC$Q6)IEJfNC{r)v4E@QA@PCFS>~1IDR_s1%qIQ zLZ7c*;^b)5O3slnQ~7CF(b?j>Ta8(l^?dhrWQ03mWaqjy%jkb#;M6$Xg31M zXV5XX^#Qd5#8sf}a<$|J6A#BKG{WQD3wI-0M2SW((};HC9fj}i3uvdL+u*UqN{uVE zYvV5PitNYzOlYNw!>c9jVodo;!L}0uAl@PCjgBhwe@|Wc>ssB#vv>MU3-%SMT82he z7O4&?OJQ7pj$P?S^Kcaw?8M`?dPz%f&cKU{Z(D zkJ=M({bPwr|0=pcW?Lnd#H2QQ4%IhY4QcApqzo=ACy!!Z7sNzB7R3-0ErIMsISh~W zeFM&K2aw2j0=5drcVg^MEM`dkj$kBVzNeh zzzBJE*hiZ5LnuP68!cZ;rK3S)h+4U#OtSf%m=|ig>)~ zf2vJ%VzFII#r22rzx4Z{&W!J7F>`W{>%99DsgqJJ#@9Hr zxUht*wCV;ZFbcGudkEgCH1W=VBH2Rt-DR%&Q@?cWpVq-!95D{A2N^1A4MvC*B|2p; zLC?U*#LU9V&cVsW&BH5;PnBvlYSpRNpixU|8)6`aNc`)bG2wx_*LV2S8^e8)0u_nO zLu<`onjBnycAvfTj_4(RFVnj6I(==?>DQle+rD0JIBxm3x24DRd|!E`rDboJ#QC-+ zG4=T&dBmC7WD%b=Ud2>(yc<{XDY3VM+epk+pz7$VqtcP{wEEu7Ul#^3ZC%m@I$76j zf~FfT82Y4}l{I>oLSLe7lrI_DKt)Z_+f`OE&L~6l(G|5^J$r`gW)yl<;nYL{B;Y~- zgb@RjXd(y)Dd@G0_+W=xiQ8LX5sJMikX1I}eCJ9!>&b^L7L=LW&uMp?Wl^=zOmw^ZZyx9WN1>uyCx0ka6?JfNsnH5H6~} z(IBEIEeuTOWh|lToa;uIvF^Hy3X!3AA|0aWc!Gp(Me>un1JCNl+zLP)EzH7MRdH3pHq51BTUa@ot+1!pPcEW703N z%r7$H2QBpjmY9vNj1s7?;2*3`q!K||JQOI4vV_|eRiIz{OHlD569%BJ76HOs^_MUh zFwtI%zXAbJ|N0*^2x|k{(0TmI@S#Xwy5g$8{VRG{JUlM;ZhFQzk^L7uv2noA(L3!e zPq85g-Dg^oK1RJZvLZwIFCW3c;Fh70=xXb(q3ufsOVaBTG85quR9GCnB0Q1Xl=gK}c> z7UNP*n%qjjr1tQnhXdOIc65s^`?frA1TfXdj+%}3!Dc~3iLEUD-48H02oXzovNL#ox5GIUAn!F$(r&E=4uwIHXwRJ205)w z4y=%!!|Q^uCMQ!kioDCaPf%n zJtLG%MJ-7hsdgrM1{OwURt`QMURes{$d$*XQk`lw8q|8OUav0Qdh}~HpIBp zLk21^16V3D7zNd!RvB$=aS!g&3$rOBQ^ z-qtS^4FiV08D-0Vh0(p|&FglhoXa^we3jQJE7=Gmpw~rts0$-qqbNEM<_+SJ}DM19rvRjb_SojLPvK1RRv%!6OG=2y5F^7prAF1y<6-s>WKH-4^Ks zGK?~B;PA(Q?Fb_jL93+6Z8SO`lCfrMv1=IyU4BTzc01V~O1*xhQR~hdeGqIJu?9Z! z&e8`x;!LyMP9~LGpf|$;4XJqW4$M~c2s=Xp2|`Ic?!_h9ZPqksR3R!WR4^@~No~r< zo8O*JEvsP#ve%iD#8y_oVkYrK8heN+hn1Oyq=q{=XNZ4}(~4uH^*Kj;Qq>{KRAVBX3!(3dWEg4 zN03cc+F`9asv~3;C{TgH7SS#w;mt8*$jI4zsGls`_zW3P=X(&!s-y-P5l#w`5zTJE zFsXt-^Zk|r15>4=X%%JXnZDYBKLFvCw)Cb ziE207&HXw-&EVMFEO;xzR0Gg1^I@u1FZ*SUH_4L^Is=F|rW1KiGH3AV_Six}ti{g` zgq{j^6Kf{al?f%vFygHr_VPz{qS#@(0S($?$l0J52qz6^jvA1>Vy}RW<@@M8GKHyQ zUJqv-#eHs->p6Y(IrTl4jN&@xSr7Qw5X9hS(m}3sybjpTv=MtArxV&)Nk!#*djxpA z&4R;zwi+i&>XH~NwjI+E{uUXeDA(2lRZdNLSxsN5YEjqMO+SB9G;8V)KZ&%hlJISiuHLl6%HXi} z;*nFV4FSpiGo4^O z5&|h+GXf%-vtwSAt88@}@4*#PUiJhHm!6rG8RR(dF-Uur%gh{iinC&q0G~>dst)g&Dz@-|=k`Df|JfCk z-Jv4xAflEZA`LcrEK=_tc2cr0^7&u?BFz*?z1m8>@$J?~)L0YHTG61#$eiF%r+6)x zD)A{fAla#Htt7Etn>GV`2tS&oWAMh4at5yzsDeo+tyh zq-J&KXq?*n!W*BsI-{bD*p8C!o@l(#TN+;U)h8b!t%^O!-&X!VOx+^e1(n_9>F!Aj zWI|J@Te7olzo0c6I*A$03{KOMt7XsaxRxqb?CHU!X0~a7Q?Dhvgnd6*lBlRsXc#T- zq=sA`DoKbDxWuZ3sq4#B|c@1RG9a)G9i?D=k!n;PoqT(6|W!;KO%#w znxK*BG^=GNxpzvR%+xPQVnkWXWlU^M=qbB{s*>^-;NZb^&WZ(NtRr z4``X`EOLWpcy&e+G_Uq652ZdvP)AyV(_I*A@gQiuoOt!}q#~c6C+!UA#a3Fqn%1ic z_+tS`S2N|ldCO~RKQpH8J>T4=~;17`@19UZoc%Ba|x z=|x=O|5XM6@RoxTnd`6A!fvk!>SbxrZi2L2#njfSy^I7dnPx9AV>dqP+8qby<;wqu zgtZ=xerXG_on}Q_#(U*>>!Ql{T+DBk+A#!;e(z~%i==4ZiIm6j3@;|;o@k;~&UBLxqWZo#BNPfUZwOj+?Do{B3d!M73WE<|gD zT9g8aCFdaTu%oQ}yLGg6rLx&aHtJ4UJ@^d0rgx$=x_B%Yt-pW$`;n8HEUM~^8l3Q4 zPN4Fd4$jNiyE6)+B~bU(mb#9IV=jwhdecOf#yZvx>4zWe?7&*v*hi)<$s1@)B`sfi zlkSOTG)Sk?rDMS(#^8BdQ3M{>NrW3`uPvXbr@poR$Tv-DA;05#Dnexgzr+P^^{GA* zIyz0RSXDT=m1o`D>+DmmR`e>YYs6-(G0i;7IrA1+%X~dFXJHmQ8(CiJC8MJ!5zZN`IW-B zsxEtHyB_~Om~mXs*|iQ^c`zgn&l9ZUvbKAe9r=T(ICeb69oBKABD1#-DO9JPpcU~2 zzYEoX9Y%Jj5Le=a-u}L5lS-wctCDCK<;|w(5&q<*ZJ!l{y7?=wo4b>!P^%={yiC*t z2)Hdo9|!yVRmnAKP~pE{n|LL$X%QXm?k*(iJR!Aacz{#uYQM|MXt9q1W!eHTfyDIX zSaaJ>V6Ky15)X<8pi1XOekQeF(>+#o9+RgFy}QM>N8rRmj0IR#9tL06K^!(u`gj3$IeOKE?Jb^C-TYly1z0} z%9gq`y-(^6Kx(!4p=IXE3!Wj;QhrF#hpHh64pH+{x?67YYGXJIVLe%0K(sZUpy(TX z{TC6w3vcVcdGb+cFZ&;q#8x}_2@161_yp7)(oC3*VYtCa-h=?KuS&hv^SdL?xYFTX zCmlCnD@z^-Pba~ADEOe%tQ?}vgi>m~K84JHZjr2OCYLMn(&LG?9i{AqMin8$YIoi% z$uY-qZ8iPTsYgDNNx&pEq^$^^w-eM{*?_Fg6eNCMF6*u}D0Nx&tj|Lmt(tSpN-p=R z6PFnr_-H@T$<|K{?cq7NwFz-+8>o=lu~aPUf~M>Bv->!Ia^k0^xWD3a1=%L4sa)d*9@0z;*qg<9GHO7T)kT-o z-&#!Wsvfak8rCIHh84mLijx6RvKozp)O5D5+x*ld4X zvWhOx`TAwi?ooe}a`FRKHL1i!!sT7?Mu|CoxY~_02FpXcsq$(FW@!smox6NiwcXTs1RYx95hm5* zC4x`xv+()fR)IQ7pUtPT=+DVnI2ZljQ5Q`&$ia?=d}GMN<@~sqY>e`HdJ@#m6%>X9 zxvL2z3}S9}y^x2M^Wa4XZH*KzN};?-r^dc9C`%!Pp@ZjHosP(EFR1D%U#nr`OP{p$LR>~qx^#e2Pt|<1ATpms?8b^_LcVl%gc>-@Gxs$leDE!MW|Ex6?81MV?mwo{xTK@b} zJ_qxN5j0WjReR;9s3Besw`Z~2&_mx)KvcQj#wD+?kE9IGl<%;nRgJyP{l49Medb21k<(A} z5qQW9cGK+Gu4vl?LC>NzT)FBQ|2wh+7CncrX>TM%k%lnTAcYWhL>l{Gl&V_veK9SQ z>H?P!Ek41q&zanS!JlJ|;!iy%^I7%TJbs?y@kYy==&31=8oG0f1nMRDem%Q8IDJ zc&^UBXF0cgIVJcd%e+nk#;6#x$iMZ!kajCyerF~(B~tctx)QD$}>v{-}`BlUJt<5|dkxnFWBFjZo1rLqn1DDsP)ZI?hxkS`^fmAklw zubdxDDcl@1XOTL0?xDhI-of$NY9R6d0L21j{ME!R@k7YNO~vLcynS1!Cio9zWOsF1 zY-|6j+&Opq^!`<^bzthxnMqy>otNz7#jg4PSSC5pn5&fRTlYG%HsEAEH_!!R#%B)E zgpHWp7;68*Og26mswz)0#Z`epOP0TQdfEEfH;PR0!ET#eQ955z9~b-Tek3)eP5WaN zG=!8BEweQRKSztXYW@~$fB|%2R~zz{khUZ=dB|A^%3T0hM+U`9WI9Q{{#4h0;~!9( zN||*fcmiK;6ZpzvzaA3!Tyl}-*`dGLS0%?f=&qS`95iu zCs>EpX@@wBkH48vB{loL!?EpAT2y|rr3?h-0e{0rO*ZqXjmj*gfREV9-))nWH|ML$ zZGSoS#DaVGs0Y7^?S$$hY~lY@zk2GkO89j6bb8164q#u)SkpITg6t&|z+=;`TNdxT zxlsvG{4VyLS(V=e=zI$>s2&fXh&NyUmcr?j0e)wMZwL41l^vK9kBBJ!KFp2gyuCH= zvX7{YXj<0D`?#|w2Sb~OamWy&df%3Z3($9%#qt|cH`ai2Z#Ns^RtvKqDDgHw2mzl8 zSr}Nb;Ng_=9>Sy#0Y9+eW$oa`Nwh(4@R4xvJdQ~hU^{atME9<)b9+${=O*lJyjahnLV}e;cE83taP1&sdf_#c=vwe z>IMq~Ac#zbrqv5EYZYG*1g?~{1)MmUVKS7Fz!ksgqH5j7SWA>ol_q9tjbuMy0%OCf zeIXzbIY2p)x8l=SW2kN^12sl}`>eYI7k;Nc|Nc(Akp9NEbYP00`(x7RAzbb*Tl1ue zAul6v_sLDZv9Kxi84NoJi)+y4c!<)0MZL{t;e>ZVOYJh9-(clVKUn=g&Kh?)nuEdy z2F*T!+E8cB>PlKhTBa$;3V|Q;E6Y2jucufq5vCyrge!JH+DwQdx41k06=ok$<0bgXj9oc8|o$-p97N7#T z<`?$rF`gMcGl0p$3hBnUWtkjafrTMcda*XDh33J^nY*{X%q+imVc2vgtwb~z;nBsx zj2Ru3RvS}t7ekDs9d+N7Kl*+pB0T*ViXpmrwLHKK{tu#BX$5@I%H=AiYtTv3hNU>$ z$dZWmI8&ZrlfDc|l0!_)%6aWWHx&Gjkx@=3JO(LA;J@&Pt-zdP23J^cxoO_-Qd4P2i}?X&WUk?@6--Fl%0+4}FPuozGe}KH`~eYyp*)4zwDylL zw5N1f+V*g`pS6pjzO1|oH`JJ_|{i?hb(&#zAFZ$cGB}vVh+g3%(|sq_zsN)^(~V)0(}ZYpu06h2luBiD4a$jAXDSCTCJHL#Ya~EXhZDvT39ZRH{Tw`r^g?>2_abjk{Yk zpf3nC`ZNV9eGaQWIq^LzQ)-b2&B&N2{@d5^#9s*XgDl>sGPNeBN(CO3&jeXdFj>-9 z?3ilVXFkTkGakGy{*qb~pBmdLcezNuSd&m+M0<~tB~PtM=ff{AdNF{R^=WcFd{M!Q zus^0|_cCw-8-&wT>oA&&t9NQ!fcN4%%nFznBb6p_?|r4zxKlH^Y<=T@18j>(EqA(Q z1vrUlB6NEvFESzKJ=azU@UEs#ab$%CD05@V}u1aHOH_8EgeCX2pNfTmd zFOtZ7WO|CSWG?Dr?oMx)igd-~Ge8(3J*3U_sBlJ|GJ6&fe_{Pf@pdH<9;tkr8SE1b z734!h^7k+QSdb?>py?ShfyqteZVUt#DbJ;pbXnd$u9EwyB0I#VVkT6Y&fNj$CpG`D zDXcTuZ(ROOscM2~wJNqd{^XEZ-(7h(&^(qY`$^Um@?!LzJAVZl^0x3BVJ?E+I+E2O z{Yu8a9Y;!J5L?2+-x2}&vQHUzzQ^U37EcK(VXkGauI$o+uM&CxkYf{>q!Kjt%`}7@ z)YUIA#UV|PuEFFP~&)L8y-oU-&IhlebOK6AVv}Z$QoxOvyzTl@#gEg6O{UbN#cU}v>lU0w`-x08@chrV%}(b%>VA1E^4_5%>##C!(W(EY zRe+TQTp*<&u@`PaHZe=A9S$X5sW7G}8SUCuSAK4?gymhky=4i7;8O-g_4u}A0sQ~l zSGs!!rbW(5I4T);4Nb6Ln|Bf`A)i@341&KPL+q&%QI1;3z@{nO!ZLhQlDd(>bPIwh z^8bCjMB!^$S4L~n)@S8as8YnEe7?lsO3oAIQH9e7(C4o*=F^-dS!u~Km0Hy0Xe!C6 zQ>oy$7uOzKpB}?-h^=mIHLE*=Rtdbf30i}$RXu@pA?o=(t`%;BSf#bwWrPMrojtc$ zl}dd$-tooXIOfO79Bw_PK_<$1df@$$Ex$L9%l6g}w<>~ri!dX=`;zBKPitf^cBGIWY0a8OUtVRBmZYb5 z%8y`J21QCxREuv>2~&XSz4u)Htv1N@GXGaa%!qQuNHE8}H=8^wy>{n?SmbuaO>N@*UW8QGa6Swx_9NOPEts18v13p2>w?iB@9 zq=9HcW0G4^MsmxuWeKYO`s1C^q^l3))vC0dCv1Vl>`KWK=h1~A<3T_bpukXjcE1|O zdiQ*G@k(g)@DYqp*^oGDCURB%ER-?=ho6E{1P3FV!1uF{jK{R`u^)Wu#{R*(NuicF zlABp}wG&m2N0yH-!IdbF;5l+W-H4tf5fFvJH~8JJh&Zud-kVM--+nKIWGurn-y;}f zEM&$DWV%PKlWU5qbylrMok}HGOG3g?74N1|#iP8UQ4S*!XG))LS)l~Q^=H}v6$CrUTw^^as`Plh~;z{XKp4M$xZnaO|XBzb`~d23NxNBB9vCXgTe`zG zF)z$`6}+`)n9aDoo|vVuZsd=#CwK|IGyec54ri{+F2V-7cZ|p5$S0KX$Tn4DKFs^J6B=(_n#mmEUbop zlSBTWK!P-+G&nc@n8+Lc7?FMMv?n6G!yobAi?QUwczm~PWU1;iFiCnc45=N?O1PFF z_$LlNdj>~rf}-DuM<75)u(275#B+^sWzY71MP%aNt?b)`TREtx+FOL#0v6Tx?nxB| zVOSDMw70Q8*WSR`wSCG)aY1u~S(JN;etHFKNhts757 zlaK1V4O{8e@LFzzVU<45%oBxq*M`@v{^?;f4A9gd0O zu6W&w^g<5f`?|8+)D!Gd<4~r{$l%IdQ1kvW&YF@yLGQ&7=@TCnoGF*j8|cI0(loxL zX2lT31~f0Jo$@?xGp0L9G)f>VD{?tapN$krS7w6*U#qCLW|t|_OdhZQ=|grFSoRAu zhqEI?7*giOJ0sz6FJ+9vx65={l1f6eTKXoDHdk&3f1p$$yIPTE&+>`s)!K?|f2}+% zools#x%ttU)|!NoD>+tp)|S`VatjM-@O9HC8prrZ8RFHV>t(Xsy?bVQmt22!>F30t z-UAi0EKm^S{JSdVbjaw+sHJBmV$5kZ)<6%KdmEdf_DgE7Ve1+G%yN^6qh0|MAH|wm zq|(p}PAV|w)YPt^&dlkBf82_mt=izqj2#8JxjQrDPVDYrg(8Bo_gAkr7r$f6i>CFN zj{Ud{l}}Q86;;pl=_`yPo@(_XWt|-|e)(g6;hCQ(a~tcW!jQMMS&@&x5ZU8jba?uq z{IZ;Now#QThq6^UMJUD()2maKCTDMBF*p=_kcY#*iADea#xtZJyz1m2h1rSp6`z(1 zj8gGNCnu49xtACBUI2w&i^D#<97Ewg6yv}7l>9cs!jsCZS$q}8h*`%+nFz!>GG;!Q z^Gc}p;`8G_4!;uW*?$n9moc{@-J>y5ej-vP4{P7N7g+}*HSnJ$|3srG)z%PC#rnif zCvHTe?d@<_oueWwK~R%O#p*|51bPAE;}ss<$f^&Q{letM#wbeBvJ{4%y+%r+2CAo!KQatslTdc{dnYCvX8!NH$r z!8NIEUmCtmZb-)T#laOskC;tg0(@DiVF|DsDW^M_arWZbf*`*l6_pU9%Q<~z`utgV z1<${l*UI=@WT!gz06Fl(-_$moh$RxP;qZV=2$?3P4efA%0&A&8i9PH~DS>nlOJER5 zc)*fn<$1pK97u?r#j`HQQK zb&7uxc;6rd+;%*%{jZWc`c!UJnS?Uo|JB=QrBt4!{+Lj%uqCO`-FJ^vno%LU^3U|> zcDc>MXZ>*LJL7MV{vePPV6D3n>N&9MUv--uYa?g^nV+;|pJ z)&FjAUhQ3P(lxV4Fqns#*j63##Vw;pK15yI>#Mkprd8%#8&4>)Th5nr(zQcyB)6^J z8Sh=e301&&r-sMDSqbE;e?bf=cWbd`8_9g>=ol~dAL~J84{xV*XGT<7iv93baEqgk>$J*NAQ|(kO`}LuYjE65(rdBTh?@D(~_qLnt+(c{aKS72%Yh_lk zwA*HVBC3b<*uRE7yk=#UEV0cLz3&LGPhAxi#XUc>A5wzM{`9n4=PODnOjvoY>9a?x z+#E*cuJmUDe?D|kJYa;G-EQ95Lg`8vB$xSp`e4Ll>4B#V!+I>ED0AYS3$Quh~A5`e}fnf#q&pXa5Z(BO8kX@ zR-n+NFR$UJ7=saG*KZo2)3fmYTPIIHzjuFga_?Uj3Y7Z{wu#2)bveI5jR(hPTjT@% z-=6Kb`j`9689vF=>m0t*%8zrIYVd1S^=MSD!{CqeIE6IYGvnV3$|@88%~r4e6(?6F zWp0)eHdP;8+Yk?}_CEhR3kXSv4Qt;zyJM-Lwtf9E<%EO4`Wb1K zlZ7dgY9-`Zwii<@)kgoxp@cM^pfW{gPS$Y9p;S*mq0w5CK_fDdTM{&>Mha_tGR*$s zqFl3ju(*CsIz;HyX{+gj=0Ku>EpcQf)zgLyzR!RKwgy%|@cvOFk;*Zm3dJVrexODe zJZiZ><@VW%GW^M_$<_pC0+mxsV6VFL{sAgw>s~oy{m*j0Qx;YpJ@f_(~d*r6{_8q;u0O)iSUO z8NKgZ&&iov!5_Z+XhZ!Zt!)szPdw0L(I;Y7w?pf$|6)N(11`Nvn_gIDnJeqZ8w@FP z*tKSTwNdae1*tJityFIw|A|HV7@%eX^II)dby=g*^?6PynkkM4evA#4wa3hJ#%uVacBEwBPo+}vqWN-?FYRx5*y`+JXup+QrcSBUijd2E-Z-TiXO4) z11r|wOcOI-T6h|cIl&G)?kE3mo>#qVL)DO^C5axsg2%Lw_N3AYpVFAZgGXOkNK~Y# ziNcpzJW0hguyiKfrAQLVJnoDfQEgQ*TVqaECxr?#+L$_p9!q^mN28TkJnjIVt&{WVcwEHk=(xH8=ouI0y=5ot>7sy2kSJjoiQ@uxsO(=Tw`Wq1eMy~0 z`<`&(qK?m$Y|5$Z1ETK^O#6*VG!xo@{HO#yUM5WPJKX7MiEY7x4z*cYlW>oTMk{$Z z{HJ&{_)hH!(Nr$2qKH^0<7C>%s8_pkQKJjX&GF6zIa39W&aj`)pF(55ck->J|pUKr{QOu5A>rD?f)L$_UuJ8fiVK6L~Gs4YudW?nM^%)Ee&nt z67UCbWXDzA$3#IO!_%T$#onDSSB9Z^=Vcap5T46d&Szo&xB98BZR9LZet^w42CYt= ztTj;3nFM@~b;i^r0o(PzpPiUyN=@c}8>W)oQ;fDU5)Gsavi%?I>Vff5RhrHFtiN`d zk!E6`vw+|+=X*MRhe2r+bs(=@LtuvCaVe3x*>RMsQhICq@Lx7XT*nXX7&3kWJ6zu*VIl);AL%^Lb6E+c^pjL(OR{jnad1u@9rxB6+qhc2`T4*$MJC@Y* z>WA4IS3%EXGwM-d!eynwiRxOZD|Mw?K;z55Z~Q|ihAVh|_}!Ew9E;g);Ac^MFeb|2 z#hUrsS@TidMGuNMF|&;)>Gkx#DJ>un|LEdFl?HT8qZqEi5Yb2)F{6 zM3$7DuS~9KQi%#}-jFUw2xjiFe^K~qYml}~liDC~9?j}a!=qQz{bFaP%WBWm+ZXje zK8U7$h(YZ`p?9nNQ8`rFU4Xq+BOG86FPtQ%GH$AjT#=MVVUVtV^zn5nw1ONqh#m z^Z4ExfVxCL4C6@L`j<4`b~1x|$e#R}L3Ex=J5yOB@U%4iZTrm3;|tEdz9mcaCa!>g zhOP(lh@CvUtC^30{nhM>a;Xu2=QWq4j=j%rNq53&s1H2wFOET6?mG|G8`6G*p5xiv zEj&0psyQvv#aUZ_^Uy9hOc`BQTq4x`tot`zDedpj&pfa%EE?l06EDx-d)v&fh9BfTT(I}B!NhdO20ua=;dvBTLsk3x7F&cbO0O>Dn~Vg? zyW|kcfz2~k2Nkgt7Tg%^-F*+{iKL&{3t~(#qmk*337&)-5qT6?eR%{k;>KZa4Zavh z1(~q~Ay>{fRRxR*3fQvmd~~=^U|%0Pru4%CtNluVT@e1y&$NYAk1*B)1J6#f0X?rI zwiqnZrg(f*LM5HLW#c%~&|X@K_iFqk5aBi6x-!c5sbQPhnNqZ{mfj6sd`#FfsDou_ zqt)8GXbc84oPs@_i!)n|I(xpXfNfh3<9<<6ty?dz;2eCbSisf)%H@5-(F+6!e#_(i z)^1SSh1ZD=2E##sKY0DOipf|o40!;-3mFU%?)5`$3mC?yuX&wz#H~v>XnpejQ@b?P zotnWZeb1Qo0oNiD(~YHOiX(w7n|+sD7R6z4XtZf6{sMEN%0@_(=?PeYfL?#LiD{Fn z`7Wc}hZjm`55;>@x&DWvQ!i2p*B+omz!3!U(DKT_WEj2XS3ZjIl17+=rQi5~^t-IM zp`{^>J!W1~(LT>?m;80{9uiGIO2@s0Loxos=(ds)b8XI^lohm<8D523Mac$hbb-P^ zcjfy7dVQjJ+X}M(h+ys1g{=2~Zj7*#`1~`Uu&Fat5+cHPig<_4YBumh+-00)Jj~99 z3N$B2!y>#rn^ZMTV zUXNS>mD5`aC{msAr74<%*8aid#^~B_8}D+KGJj6|X}rU^o^FGjz{K+jfZzY~`~4rR z?EB#6-sd+z?0-8D1{#V{x(pomfk@?M>Vndo5bJ^6G-eMyt2!xkPdx@j? z0O3-dyi8f&oW z8dLU9A*Mhjfvt~ROz|A1cp-i7yweBqQVx44iz98Kq!YWuU@{p>*hRU~tt@@iXproI z%!{lt58@$DVl--L&%3pChe6s&B+FHmZ^b-`CB12m59RGY5X$w{G~)+|sIatjY0ea4 zYI?tG0xDnX*^47Rl*3+1ALN}ikhv7^VTvbmvB(CUO4ufY!Ne{p%55FhvqqzcIOl=M z*hltECTg^Cs;>5MZ5`O>K)RUu)fnrOSkjaE;jlafo+~X zdE$uaYaciC-@keo2#~HuuYI19#jZCLd0Q8%{GKsYXK`?zY|`tIH3!YDbVF)0iPF^2 z$+TK}SowBEr_U>$${FshT$K{cpU`B_DGR19Dk!RwO9XKG2fBce6w0k{8d@VgL2xIP z8DwJa{ThyxQmD!?7+rimFJ7@Qa?*!nek0GN)FsKr2wY<|y8^JkS^mqfY%+_&&&c2I#pR0l|8BAvzKKW7`n$gY(rWef)!ml}sI+qUjMj!%}J?rRp>H01wqwrzfkEYF{h{1);UZFe*r^!DW4|O8e}|ffC4sp(OKw`2v-ivX$j%fq4*Cju3V5~oP$r+s1Yh>^dgZDtC7i2b# z-vlu7F}SGpyqGKH+e}G8iWDpO<|GlL;^FY`U`QcMpr7^6(r|fn%e8p=$MpByAfPuj zVIU0RW%}*GmOOzr_L~@;^LpWunO?O3tj&rS;^5bn_ZbR*{ zlAJ<37TowNnR$_4UzWqKyaR|Tn6}Clc8jXCT0=UiN|YhJzGA{zCvI*I(>XpD8)BkU z7B}RfC|lJC2Rm$$#PHPEXv}Cen=;zKjT$t(oFV^SPxyLjlD=~W*A1W1y9L*<@g zV=tj@;>Tv-amV4vE3xpIG5imN@hk92Dva_7yjIBU2qT^t3r}Eb+v|ZqPz#2&%mfA- zA7NyZi0%`9IX5|e|>_`D( zq9~s8co<`(BN>}_oZQ}(SlrB`b|OFo)Czm1Mq}42Pm1qea{4zo_D4KsF&g{2;mkW!>Hl29`mWI%A^LJ^E%z`ypZ+e?OW)i9mI#%fZZ?yiIvv(U+C;FV-v= z!Y|oOSd4$CZsdo?C19j?bo}1f>X-QOsf5Y5Xa69q{uKveP1>)D&&0?*KjIs3CPx3Z z3-DW^M{k{nUA(pT#E$z37vIB!m`=Fbm?9Y1{@sp};g!Vx(*ep-fO~3L(Z=obxbP#6 zUex?_izWT)GaSI7^E5q_|K3?2(3Ei{lE-xw&-U1G02$a^td}Fs-!oZM=Q8#giG_sL z(l8TVHIMx*#X?4>CTYGm%&c_hwUxqzyBSg$36Trtd@{=C1WXSa_d5UEHB^b7CTPzO ztQjq+3}-n$`UFP$4NJv35G+pd*^=S84EP^OXaXlHdv#(B*!$v5LfrKa#^xuWccNn| z>(*Bs9OKAe)owJfP^LRVYa0Z`x1Ono3$4OoWa&(x% z$u6phS^SueIV?!ZaN>Q^4u9FuDIb6dzgApKJOWkB&b+`K?s+DeM{C||+PSvIcX#B`=AHCGzIt`xve7hwKp zWZrQn9s4q!sTo87yF?a0F`j3~3g$h4ZMkW(OKW?BwLa|Lw*wzn=YHfKagVzD-2?8Y z?m_nu(|h@j1&IXbqc=HXr)l(lxm3GHIeh3zUA;-9EPGE!Z|SKIGF^vZdBpH9KSes8 z#)ZSa-^ou?33QmI|K!cf-F?c+3*I1qZ0YTfUo?X~ttUS3i}Yj^FkMKixq|c^5XQ%n z$t-k;V8KIyR78Gf=I=*y&hu%b|Fa!6Y+nH$KLpULuJ!T{#4o_&z#QoRfO;jMyxM(< z|9n^aXLp@{R!97~n`8dc-F)bsU50#8cznK^H~rAJ zj3S`v=UPOc)ERQ)r$h$OO@=5&Hi9Byxxa=F8x%y*QPo5OXqBAyJHO?99uN!oz}FGD&lRbnK=EiFClv(UfWiODnnP&ATHzZ z?hsU8Kq;2TYuBt|>Z9k8+bCTF5%*j`eWhWgP2x(cN_LU=by5wphSK{0A51ht>9d)f zyD%#sQ$ZJ<2V{)6W+yo3T1@HV=px-?{^6Iq6$)neNIa3q0)NfoL0&!fQ&%)F zLJMc4*wX69a8rjGp=>AWX%I!|4xj)Pd1g~rQzGgDPBNW*vYLl@N67yR1EWs{KF&?CJ zkc{q9bbYY#kg63#KwICYo)FYW5BuJNd+18~HaT~I z{+9+e=ViPs-YCFZhn1Bc^Wm8NZL}yb0XP(J1mF_D&a2wNN8$bPVd#Q!>RW(%t>=;S zV#z@N;Ud|xl=YjJSl&_AW#DkzSfAYH&hsYVGW)&dZToHWj!h2k20Jwa0;FrHD3c;U zJcvf?A7qQVsZI<4nI>z>QV3a1rBLxHD-GigQyNa^T4@B5W2KQaMoVGTvP%&dlqxcm zM`!~9V4!#q5Qhv9Y)rr^s#U4ityyk5`g*nMbQygN4(==0R3nvqnlv(3jdGk_2L`ix zo!X2*p?0x|R-!~vE1f0v+H|Qh^SM~BiA<{wwGw5qaua7NvZS2Si)fB&9jUKX%X0cD z$SBFFxb~CbXDZd1CyiB*T^i3+O;0itriInixy{ltg2AmsAq9hQT-{A#)i-L{szJ3% zBA-EbC+gZk?WA@=yJ?+epjJK3*R4X-N`JIjqDtCGw@%fn)rLQJB9E%1ZG|KldWoY9 z*{X?*9eUI%5!N;YhN@RZvv*6zDpi(h&^3!Z&5OZ2DAEN?<3dnyPK7-xeP9w7PZhq~ z1gf2P(dUFj#3Y4*OTKW~m!xD83lIBURYU2D8MVH)(uej^xlb)gvJ@KM_*R|oq|!>G zb60v1kVxKYW9{6aMYByT9xt%D!@g+V?}~N~PA+a&b?MPt6zDD*c!~jDS;Yb$zd5qa zHBY}jo6WaRzym=cIhM+mXTXqQgYp$9ROFs%#l=D5Aqfx|1P+cn5hBQ-f(|Cw;DQe! z#E`7F0eW#jjj*_$Mp;(%lG8#DBh0YE4kz63!jB-rh!%KVAWLH8%e*S;mYn3IM3dCK zNBqJRUT8huS=i6YRg2b- zHq)LPe^hY-?R3H0E#qP>gt<~dQ{%?v3)0LDD^$@OHuN$LLC{qf!fg=;E-)#)kux_X z-3AFDEJ>xnlB!fvG)M|mvKlJc?jR{J32*WYK(_%XFrbnGRVh%QK+y~U7|>e^6zD0f zcW*K!-_Hw{yS~%8unNhLeEXyR*&tq{oK1oCa$;=svc%HznH%%HA;qu?Lvxmw!O9Gm z$&2CQ4z2pC8Lj$-BeF=Fb91ZcZ&nE0)SciKC;kAdaHj*+jL`hMqq)Wlpv~PT!<|70 zQdYvgak~+V)h4D~$N0(Bd@*y1cAbgl%UOh-;NMT=IGHnYoUs(g8@Ld~)J)rEO|9*_ z8&*qs%V6Fk%fG7>>#xPGPZ@3Xq5aUiOelk&*iYSBdMACh>I1I+cT^Mqt?LF(0RR91 DKJmD! literal 0 HcmV?d00001 diff --git a/static/vendor/fonts/certificate/playfair-display-500.woff2 b/static/vendor/fonts/certificate/playfair-display-500.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..64d6e110982c312bc88bd261ac7ebcf701d8e747 GIT binary patch literal 23048 zcmZVlV~{XBur2_OZQHhO+qP}nwr$(CJ@bxj+va}f-g~xcYrB$kI={NQ`pMI&uDHvK zF#!Mq{3luv00{r1moNYTG)w;P+5g!8zk(G=h5fF869WQfz^|+#s3HOoN`nXi75F3) zI4BMs;s*f821EiJX#he18iocQ>kI>q9oB}v&SraV*bX~TanQG_zYMlT#(NG|TR_*j zEJjSU&H*$ZBbD*<=Pwk5Wej1DYha;m8#dGc&_v}cLuDOins`BVAcZga3^fhq`11P3 za_r`rRr=I~_97V$tsZno%tR`Y&@z&CcQ?V)BevVfnPT20qWcR53?h+$j4BA>7b5ZX zHk0@I{mf@b{R`}?wMxeGi%N1R7&d-%lu@TnJG>Yk8kE?pgWq^UG?0s@6vpj|r*~KB ztj`qkYXR7yr4B+xJpSbT%73=YfrwNj7Gp3djF8B6=^BN)Qq^z>r`x9Mm(Hbxy#A)? zvQ;|#wDjSh6jh$+ZR|w6DUnQOx!A&J`=7c5QyEaVFhprAQi^(?k0taLFg&^$6eEv; zm!aUIXFG#G{A2H%oe4GV_bC8vURi|2i|*8FF1mvSZP(4)PqjLdf1UvVOz0+zBRRz1pMTw#+F(N6L=iC|l%3(% z&)LNOUDWfk9P02yLozX_~g&me*II~|L>aeZ(NJKa>`OP{%UZ_rIOipl?S~e zi8?TbgK)h=1^45F)44>8dzrm`;{uW$^mu0O)dmwt1x6{k<@@*R{%_B({&i>L05aDH zwIJ;TnU02akTMw;T>-VO=8B}UzX1*9JRaPU!wkQfI=i{yWGw| z6>?EJ`|myX_Yi%|6woGikR4uMs9oV^MBd+GW_iyWe{o>q^=xtttw(ngA)Te$6s`?< zyh~fo(kAWC)gOP>BWn`IAQmGXh7N)$`XDp(;D&^Rn;3+QM{L zs@v>z=kqY>+O}P(dr&{bMiVh>45N#|BCH_`!qAOJM*r} z^ae$p`NNl7hL%4NJlMVlmwBsl#kTqwQl|&Z;Q7Fzn*psGp=eK;ot>B}#^{EV;laTc zv+J1K%SXUqPxSrxKg1Od14SkXX3toLoxCGZx4)L6r*9w1`t%&tfSLNiPXql$9p^ud zxnaR_0St3sZk=S{9>O}QxiBV_heiJZm>2l~u1gVMv2_;`+%~Lj1=>q2mDSm$4~x

A;l8-^gjnebbt-FY31YpOQK<61S`_O-8KaeXabc3IUoT4_+% za`?~9=(4`njy89o2rI7P$ZEZh{@xWEg0!4QJ@Gw6?s=}!e~Z-B>pleKfA-mbGF_ST zoC1E`v}|zo-?_4HotS9Xwl5+Dd)3;*vh(*fj^OB~AckX;6%oKt@&-2v)?Fz`Nh_q; z*P;5vmad+y9N#ZaPOH&1nlKJDk{m8UUg)t|cQ!NTxu8EWX57t&s0r@B^4xF#qSA3o z;7Z^2mh9H-h2!wX0uQG*E~-R$_TS1luM1n6g4^L{coE32=%Uemt}*U?whWOUslzra zEyV%ZAsqHVc!CfP?gS3Ft`$}|&kDx&2db=|#M0rL;CJj8x2OZ@g?Mw{D-wISDdoA* zKGIaaT0PKW6-f zdK-iA(UeU{T(uI9ClGqdTCE&{FZHy9cY;8DQO&7M>dfF^LG1v(FqCF*Jt~_s(KtZ5 zq(Pk&qv?9+pQ-p&f(~j-quMHr=wfq{BU%hmcD6@1Jp^Ch2Z1&$5UIa=o-cFh)fGW5 z*s>(BRTH#vZa34TGH8!8TIx7Hj2Ic2I+6S3fOb2^H;+IeN=HPyiACHqLYFhqhlJ}C8N1Y03i!;v**naz@zZ*B!9#iKt& zdwC_khj=|Uatr%_S(LZFP-96+x-l)R8f1wy;;O^=}G%voGBu6x$mVGYJ3g%Vd~{-pwjbD}w{ZQDO3wE2UK1tQD9P5(`X1dpp^|VGtoT~3C|Q;g-Q|&) z^7$abb@@c&EpkuI8PPt@JJbXQV+d{HV^n$6@_H&8mgEwe$u2o%fE0I2OjUA@|rQ{4{YgQU*O5z zV#M&V+I>I)TNdy)ch34k@qo2VPmW;58{~^&qf@TkLA=yCEZ$Epk;&!vUBjG|_8Eu1 zO>TsyYM`LK3;5kRb>Oiinnq2?wti4l_Cs z^6+r*QHqF(Nyz~!E(o;b?9b#7(&_B$bP8>E7&@HA%?@FguJ5DyY9QMB3^^#{?j;30)%)HfV$rq(Edy)G3Ra=2B?E#H|}4&~v8!a%W=Q{*Y*!7)?M; znq*f>CrDuyIn^nvmXyN9dPZf`fwEXk7=kpmC|G|*Ru<1KS4OL}OL&dUQ)lue!bBNP zFo7y+*5kre%o7TRgAkL&WH<;pskz(Z3+R21u6~d-isj+{s~i8E?@r7xe(Qc~^d86U zeCp2XX39hv+jPCW>~X3)oc7hE_eGaRcShGmhx*z5>i!-uw(r`BZ2r+czFK%VaCGZ$ z-`hKWsUQ96!_4P?I_P$^l(S_KU!{u_lSS?o1_X7rl#Wf29V&DKG zLSmZoM_x&b53C=6H!giwR=`HFs5Qkg!*x6dxna46xumgL-zOcKM(J^_0A7^*$IIy` znnMEWI6_fC0IeO|Bw6vYgNy!st!e`03XY5ehzN;!a#x(?6#lO9*m@}5r1ouTnLxAQ zRK`ug>Sk3Prz(%t(2k3QQ%Bs;yv%U=;=6nOns;8^CEby)&I4!$PfCPuf?B*-Q9Fps zl<&8`A2E(9=FaH$CfmW_{%q~KjxB`)EKqwpv ziALBcqGU80jZ7y{Ogc`>tEfO~w6yG*LQ>_c-8V(iF{3U(p;D?5sbo5-D%;ZF_Uyh^ zvz2Eht@2;1J}wN-5w3M>bfO{WBHxoU?dZu!pFByv8}AD40=tHS9ctc(h>)0|2(H2g z0e}Dj3KSqf0QjE;Vua>@%>VPe6(HE(M1UwT3xPl-(+QcdRMD^#iP3O8B$Y@Z=`1a$ zt`ez{QdU#DI^k3yoTBKF(E=<|NHijqN~NryY9LeIlGx(zHQz{et8NpI)rwt7sq_2Y z0fqwi45tvs7+;QS&N8C#O8WIrtpoCKSE)<1yYFg2<%j|_j$s_b_-`s*02rHD zXw%_DcSeoSq^YsF#>ttr<>~SH27*F`e7*euyYXNmKDLc(D*{%^`&J`Ru8?R%DxFHH zo>DXS#Wn(OP_{+?&x7)n0xR!$4l5F^*W~H0r#<(9Wx)}`R${908k{>WK+Z~ie$yiw z!}U$*67;j4o+)ZSy6$du#UT}UO%|S!Wb`}pua14|)ej}-giVVVE7;dMd^JzWgSy18 zqbPE^89XVm4+3OKLgN2TfS2Ulh&b`-#JIe`#7JcHKw1b?8j%Wy10s<&i&l)r!x8BO z3du)5C>m6yc}kK08#VRTov=2uEMi)6OIh1Z*Yo94?RY)kPgo3==O1trxG1;-xT`kL zBa7qpYZKUPFUPm}5blWK;a|%U%uP*Gj}OICr`^|8q;kp>m0Yyi&6cbAN@;g5rFy;} zFc>T@8wynAZDI+L1sH0Cs1XgKRB9C~*z)F!o&~=w{U(!XPOb_x2)!-NInG)qv*$pE zFCcYqbUjQ8HKXOs&;!D}9*^-ehxfR$O-?Pbu&N*}IIdrvw@Y~0xaWQ+Co#`?!RAdt zoK-?<=e>e*OAT;*ukhfz{#Ub#VH&G7#bTz{W5@+mP5!x9Svy_3Js}pS%dZ;LIpr*d zH@Ec%*kZA7W-8-;zS|-FG_ss57FJf7Y|Hj<=k8OR**pIq{8Z6(B$Lr?E8dUFZDvCb z1UAIaTk&HtiS!m2SnMmw9TseKrC&6m!13%G<;G(}(21$TLsiE*B6cwv_g=}l6q)P| zKGIPD0t22VS6E~qn?hP6XYEEtbXMts+6}o0vGO_QNDUDcb85?e@WD_dc z|9qI)*_}(oVH;_kNWLiB*tYas-sVbgs)+Aq98baqYLvIEGpsC0L? zh+Qa?5ljGZ0W_{T0;N`8q7j8W{4f2z78SW9F*~tknaWHyXM85+V*IDi!a6N?keo6o z9E4DrS!(%FW2V0o;ayhMNB^~mzQUiQ{fOQby$+z%>>v5C#54<4oVxV7=bIiLZM>`i z?M(C{eBL-OWqM`(yOtY@vu4OMkoM zEjr8}ydhV(t=rzdQ#88U+r=}von7HnanYgyCA3%?0aGRM_=5E1M;lV;Qdd?yq&}s? zAQ}N{F=?D!p;GR4ljVZ73?mdXzlAcOgcVj_^dLR5q>h_kU}j))JY1v+0GHS6dGj^# zNv-LACvFfuLVLM?e1N7;OoJYlMuwu{_@3sKHAu0e%tVAg6KN=*Y1j);>;7Kte=DNShhRQydVL zRn~$uUQ%psU~-7U>_|p8()zmNi3S|MKN;=*WcWT-KP~lCz5xPAtI$-ua&J{FSB(d| zAIoKb0-qvG_kV908O^sT?Cx8<|c2rQ|=Vq@I!buGmiYJ}LdVWE-f&VHbR!2bk%;M0^uOLph# zyC=D@kKdN#=tweOfKzemLxe-d1w@3zFqINn001LL^RmH#>-Yc(5g8#ZCRt8ULse8* zW^g*wvg5j!(?Gy`JRa^;dtX`C*=y!L#y2Gb$yJF}r`3H~Z_*GOE^CCF&UeCE@wYGD zbPacY&GkC<`)~CyXp=wrknJRrvir`pZ``@lm0rk&-I`td#Z~PH*$ymTj!`~DT;LY1 zMCh3c`}#b+q=}}EX;x^3DF`cn1SVq1K!ypP^Zaap+MpvjZ@-=j1nePY^;}aJ>;>_m z!f7fnPSt4pA|JF<I#y$tq^0-RlhdT9z698u_|)UB_r?NhOo* zc{n`4&vKdzS5S0pFLz0{*2a=?yS5=t*<#&C#1<4nsEWNIwF2_7YHW9WkSvL9h3X==d zY0FNw$K!S&eboQQ_Ft$KQc9}k)z;eR)oxYSQr)UsOI94MOI#Yg{8-nvu~4#0X8Nt? zEmli)!sT>3UeA|H_5%flY=^}QZgNL&F(k~i({WsXgEz~eD%No{=j~oU@{}-!yJw^XvH7xTf+!;3-VaU5v$Gsl~TR zs4Yj0xH5N@QH$jN@l`us@8>f%gGEIwMJyI~SHMm$`k>PluO0iXp8}#2)c?lT6<1az zSv(=42vdy!C9+XOE0Y91R4Nxt&b)bT@-Y{d^(2f_Y=E30?uaAqh_CBQjxpFig@s)+ ziS~@vH=U#ExL;Ohdn50(22IEM|1V6fipIu=VgAtlrA8QR;@u~$Tb>Pg@pj1N)9~_k zA%f@H==H?FTc#e5=Ow!^W9Ual^rzg8pT}D9D*AM%z{m$Hj_SAqQd{*x?8ENlFCv`v+1OS;D1v=wNhF2tUn~@$|{AW{Qq%2_0IW1wR}Hd zaG2GIdoj~0bs3pz8G~)v&g0I_sN2ePK}dY<3!UoX&F7Az2G(khdvXkgs%3#(_XZ&x z*#D_tNtbD|;3~iciK5Ij0u@NckS>f$yD(F=hA(XB+VQU!u3o%&xdJq6aQ|@Fiq~&S z?iVdCz^-cA2gR~&>@dADX`|C=%TKV5C+~<=Rjq7qZ0fHws>4*O72kXVNX!>Iq?46t zdsgSmbi?IzyI#&$%J%{Ug{Q~cPqbG@DRlLJM$*CRJfCLyNl(!ie-TdnXbZK+p8>}^ zkJ7r&7=5R8KX_=I%KPEGdtYNhdd_OIt%0N|{+{1iQ1yi{4S|^D&z7K+46UkUNMs^` zndS35kz`m7f$M{gU!ozs5tAVOdMGqO_5Dz2g5&$S1OwU84W}rBGqO0*?vhX2> zc*0+1_uvqR0XI*bGLtX(iOw9#{JhG5NNT|8Xg~4Y8wYQy%q&%Er4nhbNTX5d66m3s zaZBMcY=jv!!3>#T25eU0n-#eW7vCI9EFDYEVZ<$i+Y@WoxSO9jm|M7(T)CHAI*SM> zs%Xg0z%9WB(_%crg(#p6K|~0}sRWZqb5r9`%$vf-=sYDf_mCM}N)!N@Gg$^?KjGt| zBaw&`9%o_0Z9b>GE9a_>l@KHyq(_e#J%TWdrGB(yWCz*yX>E<-X5hj z+Z&F2^#?Ni$wrL%`%d#ULZh)^lghc^I5GobIAu8jMMYPc=fZeZh8}jrP?Y87$TlQm z#xflxU_)(Cz&(N}I&V^y2i#zIRxP}A3Qle232{-!OwI{}=;gSC4$J|GD9l?C8(!U> zH{k5@(!BWrui>swkhE{su=W`l9-|FxBLsZ892v1G#DV*;EE4S_5?*Q5lY(KQT4y^K`^_C}@|2cQNc7z&`({jhwmJ%w&1uY~&D z+P{K_AUROiV9KeysYj(cm1>tMc~jI(J05N0v|96>5e|6#;kp!@j9IUjo@14``(X#D zbDCu7OBE=0;G!4r+P2``19AaaG&ceM?z+NO_p@I5alZ32|Co&deB8EXs+rx*`7$i? zA~S#Yp5rcbmEQmXTLNmgrKkWphmdJXJ1vaQW*v9_w*Btl<-bh{F^mRkrt3N^Mk^$V z$#R~$S^s^X2`vH^HVzLAjSiC&5SJGem6@InrDD6I@%el-Hg(=6VH0*`(g+rbM5EG+ zRRl_j}0ZPc(q|uX9#$j`JTaBp@Ls8!R$7lo%Ji(G%O_@pwL**>p1u z3W-3V(kaE5Kq8TD*!04(MJ3mZ6cU+6@v2(I>$+917A)$?O%;owNV42^-lcKhcEJkH zI`05j0!}dszyXYXgEHKZ3;X~n)B^7JSi1L6lz%I@hZA>bPD3A7*Z6fi ziozU<`e@}NA;}#Q(KT6|9TIQliCN;kAGPG*^~lke*QbwPJh14>mdmFvjsBxOEcNNq zxh5ctwCJ+;ny%w@4e9ygYau^tZe|{8aP4BxRtI+$P;X2Rgtk^$zZHDsf+Gsa_!ll* z9agYTkv%5?ur`l8fEPqxQmq{wfF=;^m;VLS3d158pzuH)`Ye_YgtKD#^P(Zn&Fwa< zRW@4;2ic|rNeJXgAAzWn0r;Uw`tD`vMCt#q0l0*m(;!SAdXyBb#9 zoCP)+-HI4-mnX9>&j?YWW-j{;_L+J1o0&$xS<>>mR}u zP8M~U(pf}527%1m8C`%kOhd-uBv6Wnk9fIPSd#{u(C*ROydJ<7KOQ&JYT+y#LVE+3T4{#Z z##FlVAZU(ZD3U7lIg&5QR|DmPgj*gKBqfmngZ9Ue`{0qy6t4^Ms32eyNh-j8aUGCa6lyFd|{&~t1z?pFakO`S8`6n(=9niz>53h`7hMYIy){eNk`Y?|` zjD;}(8r!vt?eVa1ukhxePpR;~lp~H{eC zW$U5BiO()0pe@ax?@IOb!jy=pP5n`^Y1oT-If)4@l&gWQY|IV_B*Mk_8P1tR^OI78 zp;h^5dWPZ`A!gJInzm4thgDD-!G98>Tbrb$DFrb*Ue|D?Qf*oAu4LAMxVgD^ohWP` zyF*673^zQ!Fz>{yd9MRPLhOWBcwEFawc$o$ISN=>h_i=?-C?ea$Ea7TaH;RLI5R7p zt@$RWA}2nX^m0u$RkR@Z2%K9*dnZJSu?N0>nz-Hw|15vHoWeduJ|BsUUt8qs9R93e zw_2F%m5VPbmT^}H;fS|E_osizRbXzZ)3#F@%omGJ=gkY(H8ChcNk5HvyN+hfLWWks zff(%}Y_Uqggk|*M*BtK53y~=B%n~Zmb40UcujmyTjFAth3dll@|Id*c^BZlW5E{IPziTtM0_flW5(2+W7+ zW?y)<&?SJXhAYUDYRdHBlTxc#AG4vgB==+CDqBMCi$d}|)4|lz5GOFr=KPWioKdjJ zN$EN1EuE!GiZz^$GpUCwhp3+Al>rp^IxgjR9?N%O56wevtWa>^;;@f|26A_BZ*NLr z!dQem$*{X9HJ~!%NMF^QEx>p(^0|pS0Gt4}l*Gk`hu6snk+RB|#j8d8cLUWz*2{gh;E>Qz#Y80 zZhEZ>E)t0I(Jh&IyZvB7d-oKKb>$#gPH^$$Qd|3~#HxPbC#(8eGaogwjmAJI z9TFvNE-pm0-KTI%Yn?eJ>NLeQ5K z3}j^lzDetP!Y)J5gK{m=@hh~!rp{(JH3$3>^?U39(S^Lr&rW&LyCuNqK%8~@0v$Hl zgjA!%p6KOy0|h45Ogke@0FhnHI!FGf>zFqv>sOy%axlG9ZK+$iD2^PI>5%K_U+t8H z)Vsl32y0Zs^f2AIk@-=#ik6@pvIa#cG`Nd1q4a(vfyXqjRl1FYd<n!1_SYz*mrMM#vBYjTz;5s?MKokIgKE zER~EpT**fNO?gNHn8I<4^VI1z7`A)QDP5&AapgVlPu_4vPl3p3O>zyP78c0$6GO_i$|NN7OLz#2v+cqnMTtCSf%A`bwb) zemp^<$P>Pwu2aG+gN963F$>OvzZCiC+Kx-KMVL2BI5FErW>5+l)E%Is@{E}_I`S$G z|8X))$#zoyQxIe4$0SVbw-(iO1Sy1$ZDE|d| z$gF^f(hCJ$7M-_2j&U;t<7|?Pq}{;g@fDT=CR~7e6X0oZc+zX1YXHxUnOX864Gb$D z!z&dMDHrVe)#L_=n9Rdtyt)j2I}T9PeG7Eb50$ZO6gDM2e&>e;da}5=p?SI%LnCPe zUN|Yuim&Q1D!tt=)6G?jQ~24 zcWd|hGz-T7a)a>G@i{bWZVi2p0_PxHbGg@9*w02EPi-F7742H6)p`Nd$w`M~KP;QC zX<u{Z3!5qii|}x_&=Q3Nm%U-9zvYNWIofd;UNNG6e&&1}uk_KjH3m zy$+}e*2~;r1Ek}GJh&?X{906o#G|V@ju^fk1mr_zF15IsXoM_u6o0OKPu8KOl;hI^ zyJDK^T02fWot=sw+$y7!&5v69G)Q`*&zsbws58J+uHIgqcNl*9y`@C$cdh7EHS;zxvyhH;@4+=Qh{N?AAL@53CNLdsr>EW{wn0OhzMd6c84+70~8478~ zM;Ch3&~GZo{zhu^@WSmQ(4!|mVfTDkOB5HekZRYO-H<9h#=xD2jq^--r#meaR8>ZQ zx-yaG@v=W)STd5W7&BfHfc17ig@Dq4$rIC zMk-z9=jqbWMiX}>Q9q{RBB9k%zJ?yK1b zhUmFiq>=4GBrrg3asWfnV446w5|yh!YT(v_$<7c9AQ(jgXDP*}D|;RUTlk1SOek~! zuBCZccTphE|6bMuGF3>w_g4pjeX#X~?{}gma#g(N`)s>Hcm^6H(`Im%lQy3@xI4Nc zhDUZ*&<1)YX-#j4VLxh{!Xw_3Gxo5knP+j7lh+%sU@r;iG+V?)H)qzsZcIz{0_FQb5Q;($vfz_Ky^K3){8cDZ5D)+YIm+xo zgu-bP0v8%foams0aG5voe4+EkQlB7`-Qn~x(pvq8)9-V#zS5GHtBR89R(l26pY>$C zxhdz1kmmzH(nQj&z`zf;G#SeN#9!%E@l%bxv^tyAkL*@mKXMG>lLx2=E$}Fgo4^pd zK#GHcjlw6hAoAvWOzYuu=_qY>&tZ$8LJ!hma!$zyGXAZzM``dLoVd$^_-Nk3A*T!j z0bgdZ@X9cX#?r@+3Kva?9MwQyU?*vmwcCa7%*hWZc?_)S;`OZwBXk#qb`neQVinQ5 z4qx?GA$%uUZ9urleIW3Y`I|r};B*7-zEY6E8>Rz$m_y{nB#O%=3_$z+J~-JM8sd=j zw9AiZ-Vg9${`c$?^9#smS8lUx%T=U*x=3y7_!Y#gxhy$KK-Ki3D0%)&o!@wrIIJ2K zCfggoV^lZnmYG(5G7Uik|3x(mqtdDLi@{3R*8Z>)lR?K2)4^$YmQy+P__8W2{0ZSz zu45=4arO&{fNqJ_=Pq_KE3k(Da^0M=^-XzGwciL+al3L?=wc`qU@c@|r4gs&@ws1G z{+O)ZzpU|^HcQ4GPcen_u(3p>Ki9uL=aDW?MoW(l+YEZgD{pGOGHW`$p6i`;H0(H+ zhy|fI2Qx}`S%=ra&lV0P#UMNMha6nRP#WaeVCa3?0N&M8ziJh1yK>P8J0i9*i@iZ<3| zh(|x|lulx>&5UsD@HIznrqz%?C1MMDp89Z4m* ziC#l`)omMbFGd^5wqr7fM8YE~6zTb$IxEWBaV9GgCnW>9cVqJnKs>B9C+}FRUfM_2 zd>L=WsMnY26^CA>`ZtAMbRVtftRBPyNg$^#eFFy1^y_I?s#lw@&}d?1^84#Nm1W1j z0_lkgb;Uw(A^@`4RcmB|-Ue@*e$VlxMnIw3qYP_MB{`)y%E5G9i8;mpc#hbEL#SGL zwQim%@28CB*h9zCQmqngGa0W)WR^m3NO*U%#Upx*=9Fzyb&V`>Ma-yYvx!u$^<-M% zkVNZ#9N6j_=U^P?JE+|Qr->71&PgkYx(4SkcrswKxnpRz4BL_K;}7C8&pMl(zSrwj znY;MR3m(Gvx#%yM>Ha|OL4+J9!X^hp zz9z{866(x_Hv{0LRRfn37}j2UBzq^n0O(qYsxpz_5|G2_>VAdT4+0K=uCr4gMT~s6 zNpd^}L@)AtpP&Q}TF_#TDyI=V=q4M-(P`T${z1W&tD8jh8Wl5^OfQPih@wO25X22B zj=d*)?=~gS_o1KX!!^g7AnS}41X(7UMFAWgkWG>YWgf!H z(_}Zc{bYd(EhEqT(>w=hYRWD zL(tly-cP;W%BK9&wCBsjV&g_mZF2Qy=}a zFSiLMl>58^E{vePA%6(lOxRo>_(urBXGF473hC=&IzA?GP)DgO4QE#Y@>hJ&ym=@3 zKuV{A0Q8*v4Y^B+1qIa^5ON2KuHZx~ED2(Ai}m<>?gkt<0{dw+&jfKUwkM;=&JG(e zhaC2g$!f?)tibq6mm+aK`av5ud9;A6(FWiwLksdWR;Yd~{qKqWXDw>acdgJ6-(Y`s zCxP^~y%2LVlv~il;#tG7n&fWFZ(_S2x=eQ!aM9@&Yha25|6hH=fl8Wamp|S$H5nxf z!e+fXcP?;`Dd&cI;)1U2&w|5z05}8*9zu}AqB2k2$%~ZtGLgY&fji&GhG?llzOco& z=z?zfR}gz(F+(tpWq*TDz&hiSh&O#(>xpWzqgR=u$xNWo#hPkf_nmhJ|x`0d=RZ ztr|E@KMdcBZdwr1yS?|G1X@aX4&Xu<#1p9)4Ppd&nBCtnbCr#9ln5=m%I4_Et77GR znqYj1rL8K$Rr4`Q&jip*wOP8Db{rKo)W&A$ctepslMiGuiOOjjH-&_8Ej3JCL~(5u z>QC(w^y>Ac#k(b>c*;U_Gd1p7J~Pye&_Wtpax(XLUcO@P=XSB&EXsV3Te-ugk_h3K z*)+E>1c!Z-WCguK)AVD9-QR&mHCSnCQr|P7mV}VaJ_j6{L%(|1OX+qb>$IeV&13kx ze```E;&p^9G`x5T=0`5^%VI9Jze6rriR*(D1sg>}!d5?&S*@)7)MR@0y@8>o=$9sM zJsHgsDeDDY*-YiT-W8-Q7#nVK==wfuX3{K2mS?iI{l#gbf_5SEDZq)p9Cum-eGuWw zEd9__tdCU!wy=afJRgaXKuv7G%Hnh2o+w!6KO0r%AvuGB6hk+&vl3#JDv_nFU~oeb zLZpM>eBIGjM%uc;W{Nq}Gc85kj+uikjSqb7ur}=EYW18>O=Uknm3N6OxhK;qaE**Y z1x14!%JOF%AAXn|2?Ax<`KEXaqGB!DIBNGFM#zpIHynrV2j#{`3D3KcS)!mY?$rrr zch2r2Zzw?yyZSkPo|Cl`JYxvmie~0%BTr_s7DDf+kUW6b>ix^F0d2tM|5EP+9^f|NC0O9Y*k~z#r#^ zDI!id`>3i8Zn@WAj3*f!{O_WNL18eZ4cqhI#$eHaXnTJd0fpb{JD}N3Nn6b~2&;#(&7<*DIJ+VizcK@y)y)LGpNM{KN;0u}b z?<0yl`*%RnrzOVZtaWWc!t-c>TEz=7*EL%TyDsl6^kmWT%b-jbRI$#i4C{~E1n;21 z`{Q|*t}-c4^Lc?A+mHVhSN|PtJ=KC$gLTpJNbWHiHNx-2oFgSL+?)?9TfDtx#Mi+` zai|ggT{D|lOFC7Nl~t?mvbs%USk<=}K1#t2TffL`8W-_)QHPH=@B;^O@(;75foI@dJgz-MN12_aR>=<`EQckxsM#eZPJ#nvaVp# zBu5Wv(z|*XEQ7w0cqu!!IiWXNY`{Jt-Y>cHgFp9+C*ruvEU1s6wpET|rd_2s*XXHp zwoEG6%FI-BcZQ5u0&md6!XCZ-`P8oNjz(kGjJl!q5_XCDIR-4ZU!$tA+m|v_N0>V= z#)Yw5C6$r9G4mQ!!e74Jp}4wrb*F73^}+B);3F`wwGJj=Je95GCG8*|*v&D5be3K| zWr3c-V%RC$}$L{q|W z8Vae?=vB8n*?V{D^k;mM=j(!$Nt;jjfY_f>`55)zR2*F8uuZ6NxiZJFjjJ4mQ2F&e zEX{V5LBrydy)1h%XSqExe{5@ARq z9m`N_5xK!}k;uq;;@l~%S@$tL2|6N1#sb8eY~xm%L!%7|%D3Z>BP8>+h3uF&0e5G~;O`e(qd{z}CRQ z^#LRJuB5@DynrRJkh8|>*wn;AOnXQP{QzFl&dJcg)LEM&RTV7w*m<+L^KL(`j|EO_ zAIL%nn{!AEuMXeEgOX_B`P8B_y}kZvH=35|7_!6Je}KNUuPFx7Iu>~FsS-{O4XEVv zJmdbwGU+{t4u71H1ZFG&oZ_TJW82s?cGz3FFFH<%u<|_>iLRDx9G2FRT~>6W_NPIS zZyVdM=5f?zT2rV7Tynhk;{Pa0JQZHxv-?9L9Fl`wsBYhicl7Fj5aw2km}e`hnPu%4 zHfwA*doCQ`doXRepaqRH`8X^xs}!}%KUY^T2wK{`E)foJh5qdsO!+3miG|E;7XYsT8o! zW~s~AU!g(G=5dU7q1aQTq-$Hw&(+k-&(<(ADM+$umSz1hqJte-c`|mPr7@cDAmsp2 zImU>(AqkHZm?%aj=iBzQUadkyokUVqgjf?>fc^_Lvp%km-i2QB8bG&M2>dIXAzV}l zMKcPy%^*3-Ic1E6M&9l&A@Vds)Rx>8*}l^6Kj=)G5K?`QoNc)`AtmfcpzZ#pzwqhg zxGIQ-gV2#Nl`T{qXsz>a*~?~JF|}{aXi3bFnce0M7RD}D-cyj^)(#1GT$ZkYy{ z-5TdAyHrjROM)yR+4bpb7_w32Kp6pM32&`6#lnVGX*jN~88*$5WTm>_TYIAoO`}7M zU#OJEgOEGxjGd^RN%DV7rY@Xf-AfJ9&jkEpah{{eYN=t-J~D=#Y4(?7&lZML+mW(SdH#e8L5aWxrd_>@2$&su9-ZyU8^mN`T_7F5G{7GD4 z@|AMn-2bPQu%e8Z9v#%<=gXPby2&Jx$2uaX+uzBb=GiNj4r@rSn+4N{iCXAwJ~c%C z1#$o2$TS`b#<1*s&6rt&2(CZ$m(^Ze`5=G=@VdB@#R(D8>xv_-#22vqL;m$9e7R6} z8#`bF@_M=Xl&v~nXUHT8s&|OM^zeLqA4AO!a_!>b2anu19y@4q)+p|r@)Bz)AM6DO zLf0Elxatekp_)x|=Eo-=0{s=Cf|e^(dN?Y-9%*rLVZM#!z?OM$-g&NFNFHw@oVq~2 zR)BJ;_Ut^ApSq|Wu_fP9Y!rjcN@40ojb(vnJzQms@;dXn!dQDV)OMb?=#ZK$~2rOWaEsGRxN@ab9$WtP8lv@lwu}mu3$U^|q7T zO(IpifxF23*H#kVh8OD)kQTt(Ixyat=K1(7!WF3KQ%EwKr^_BZ`DR>}LDNCwkA!o??q?x+nSO-F3A2E>8>ZAO}gL!};A3eEuSyrF`=^ zzwZv30MH_2CFB^^!jW9{<|`42Kk$?*je3m@S&$D@iMU~>kf?-ZrW_2Q4l|V z&6p*O5GqJ@`tIYoZ#LeL;!BbJIMY6(h&tiu`o>SMQ6+X87jLj2K4|f&7r(!$=NKKy?>iZ)4^#edY7Wn8u{x*l$E;FhgIYjsahetCBCcY& z{I`=c%g1viDvDN2ZT8%Ur__E3k+w;0k02Yt0bV+EO-$m_m+De*nHu0@+Y(G24`Xvu zjrLd-YA1y?%eT|Q&l?x!)Z)!hK}3PVW(=yV+NTcC_nL@ZwCX6U=*QeKEcNF2ihMqp z%=vp1VA_1j%D6fGs;M!guCzIMG*CD2UZMYFWA%!K9jV#=#lPdClu^~Ft#SC4wXNoS zkL9^WQyou#&#uIAAr_E0{#f6E+OV};nLnrpw7_t&#`%_7T>9a0i)T4{wktw%4whJF^A?e^-f`SPyz3EZ_9 zbdXOs{adCYpEKljKF8fd+}iWce2)(}8z*r}dc}d_43xkEt1i5SuJ=sul!}6hD`RaO zymH)A>KiMaUSLU;&)QDE@}8Q3OH|Ut&?x*~z!F*!d>6>bi}@VK3C^f@*?U`VYNBo2`MGz^Q5G!X(|8opH)?u9J+v({p0<0Ofs#A!gxf2 zOF1{oXkg|TtN2&S`M^tPHl~#~!pQ`&(El%h!=LlMiVlG{UZ>$R@B*zV_0elLUX<6A zm0#uX+gf{a+`LQG$In4jJdG-6kl$%q-oRuv48Wm$D>wWVpXk6Qzs7~tln=PD4+O`s z_S`$=0xH!?qbexyK+6p(fpbDpOdaZKfada?_sA>{tEQ;aP%X!;9Avv%PbB!VOTB!F zx=g97_Z1biwdGi*&OW%i&v|-o9eD5)e9YLO>&WV*_5mA7iz8p6(btnLf(7OU{=Psj zY7H#ERzy-LF?=ICf{L&MwJ5+F)5cgPnX#*bOb!p}6soC@Wxs)@1NPy zte^dCg)dqfvZ-r}%~d==`+k6(`hxh=Pf{l%gu>`kGSjdGB330S&ktLQnwDRt>PFsC z1=3zNYCIybaO7FXWi^$hVe-exCSsk@NkeEs1;A}37YG`LR2>_+Q>pzvna&)Y8n zmKs)&jr??~u;B=w>t(#P^)k>un>om29Cqd);|&d(W|PKtywieJsY337`)6nv8J5cE zWwRCnN-u_tMfMn%lP%1y-4TR<`~1Rxem;{ ztngq~p_{#Bb=CgN6+3#C zS5S7WAa7znBKguXj%H?dvKS=SQxv|**C(}hbWfXUn7cwW6I~bxtn7Kd$|);~u``%- zqWkx_FUUSRb3eGasrD6A`>Lr>{aXFBuuo@S%YDrSp|Q+wIY$Vv##~wsz`hjR4>S}! zUB8Z|4K&_wFQ5Ht$C&^?oTo<~B|)Qg-TKSF0pQgbLf6lKCWc)$O4&!po<2SH5v9!L zO^p8alaSyDiIAqs>h$Kn9}w{g5B^GTsV+qtLt=pH#W;gvq_LEDw4{y&#?sdJqPh}k z3W}Tr(m#Loqh3^_b0voVeDe*k590}*wI0Hm_W`Dkcj}oZpP0ZQxvk9xQYFSQBglR( zHNG~29Q*0a=C?wi{gYPMxyX`jW#$=E+04=LZixV)mvi|54ldyh&o45co;K}Wk&PF4 zlOT`v4u-N4Lh|0h$3+QVWwqA*<4;Pg$jP-@C8%D(k%D(t;pdR&3f} zP@WLXGRU~|Ht~rpUpXN6{|H+t?0s1KI?Q~W?Essy6)b*yj`%Tr;R5l3n0smR+|3jw zheka^%4&ncsYskZ3B;j0=?fZ7d1Jls|G%(FxombWDf3s*wU%v(`&ZM}`WTiBeu3^a zY|eu2F09}w&paYp_(UMM{qMkE0o3{KnC!fAht8n0e zyqlN=hvktxl}sPud?j6QaMI<5&UHO;nnK3hxQ{PYc6uMIFOE5%FSgLz70o?o<$3+c2^O z0#m-_U{dXrILf~wKb-{m1$rNpB_KKyDsxr{K4^ZDbwxqrKYA(PqKU|LZNaN|!UXKS zwPLY@X%VEXU4Wq zf9kK6{Z~=ucrw1*<2HR@0NnAn9CyD$z?Zv(zhAn~Wv5++?1Mk^1!mImulTIL9}qMf zeg?Mgo4j|%nBe>$j&L-PE%e#NGDl>FqK~81H~Czj$0K%g`H0W$6}oW)?w{#k$;n_U zN&j06?P_O#G)M)rO}3dorPVmA^prc>^k7}1J|6mh#okv z6_%DXl?ofq2k46uD`tKgg6c}^`6AGh=Awcryjh4jX)psVfSR*;^Bh!wrbaQCv}F3B zme%vY{|XNAHI_M{9XS--{i%qSo_RMK3;N!A2a#0N)GR4khh2AW@JkMIBxdfS!~p$# zL#ePSCX8v%(*uc%W>)+#gp1mf7Wgu)o9envk>xcbgGtD=ngcd(LCvNG^k|X>JJz+f zoNs9bCpqHb?#Q9=*5Z6fX|$pv7WD=1M3Tox$&z*0byv;}9valK=!K|RTMo`b z71E_qV&+Qet^Dh+rrKh&S*p3OwYVui-`a9$QhNx1*%kKLAb@36Vn$?G20E{d5z*MY zXQHKz!SOY%19B*+4e~)0`||jiauT}^TX=HxJTUDCc|FlF;j|KA=@Z?ZR`o?%&yzu$ zjXJm))YJPucST)@Qk`H3{QYkLHWolzV=Hu#ne`FvqLP}XY^5lZbu2GWOlgW0cRJF3 zcyJ{kcSjX-f>psOZ)X>Im#C*zm&{eJ548m5F3yc$z-yWN_x@bokG`GO(v@FJUWiX@u#P(rW3mM)?58HyQ^}JBB-e$dF4`z6#vz= zUpHGJV@+OxfAR`zqiZ&&!mO?^=p_CZf9+*F>8H}RkDKw^v6iUIB1$>fsek2y%>)lRv-=#Vm#(s$m1b|2$1Ow3O6VJGs?yb7oM#-XJb8P!a>2^(AW+G-j zNGR%03?!kkgrxq2B2a{xpXrMOmd=6soi>1Lz;OTmEuYLFk25GmRH&}0@*f9Q^u|CE z{o~2mhI1Gc5_Mi#fWKs#j>CysH8-0gX1PbDRJdY7DYCWE&0&|=G#96aEleAQ!W|VF zku+qvFX%Ky=HT>-H%*zMuYE+(eV-bw-M}@AHHLCP`y3NqW$NrStqK>LhCGT$t3yw> z9x4u-Rv~jeXzb%XukkOYG7uV7NvC`e+4+b@sK#dQ#e|I|!iFDs6x`n=!D@xgC(#x( z=NYG$MDyl!*s`m<1Nyo~-2%U#kVU2=@6(0=CSVMW5~z?g8VrOyiX9oAzP?i8)tASI z?31%p4zg>T@;Nz2AE)4tEd-Ac_IUq-q|UVbZch=HL`fPfcQxz9N~z{8;+ zl#)!{^#EG^fR{SI9J``2o%eizYh~fs!w?Ghe)>xTFmY_6htf(+r)JKVHyIc>8Eh^o z-pZvbrSvV&#vscj7WX&@8hf^dE>+UF304v%HItz-4737~s0Dyju14i9(Cgi1m6F`{ zMp7_A{OBgay?KpDI`cIb`T9LTjoZx7Gr*7|MW3Q0+|}O&gv`Z_ZDw}gXm4)T&8pnE zzKO=RO~AN0>5Xa`=>CNCU}dFeSA|LoT}ykOTz}em?p6QqH%we^=%xH#)A)EV;{5Eu zlFK7;54j*c&gEn7!gtS`m$kV>0m+S`nBO zPxgNP3df|7=%IOZ`i9R{=1>M9wi`ziChs2MG=q7)P$vWyk3IZh?yJiS6$=CJ56WWw z4*_S^!wNDk1=qSUz#X;A8rMDq_|f^45(+Isq1kB^=P0$eQK^?7NLV{uIb*};ojM=I zT2ZxT?#>uUYZx}RteU%~%2)59xH=yW&Hx#s+ZHu@&E&wn>3r4YIzBC+zCbm3Hv%zX z)wv&LhWJ`-h(Gg(|4ywI`Fu5EkgOhFsbNz_Rxsh4PiV0IgNH44gVcP+zP?Q(>W@8~ zVKV?S!B6R;fHnWl!IQ`K1w{WlU7VcHeDhPN0K!G}z-%>D+ ztZX{&b585@PXre|P^)kqdi;&gOEi>KtivBaC!aD^o6 zk03h?U~JOqfVG8nfLqr?-hx7k=Yx{hurr)tll{SE=1Ru_c(ZkzXu+a4uTZ#6se;nD zpDYEY^^QW4O$*76DWq>~s-@aa67Dz4PPP$HFl~u&$~0^Bcq|gg^S3oc}DU??GMytc+$r)qr;MmqFnVfPlv|{ekDd1Le$l=fMy0r#fnl z@h@Z=z;fZu>@%ptb$dUfmlrys<4>7dLvGi*&DYUoh(pbI4&{wlw6T$Q( zaJq2+8$NH|@iACL=tOc$OF;Tn;2hRwN?y$&+?8c`Vtm{1{T0r|8TKiEXzU?PS!WW# zeDkgiakChDHXBktOFkaCfMv~>dW*r07;4t6F1xQBE&(ySZ0eExX>Qrm+9-klV9d9s zUjj+)HT4NXZ%(`3Y~uM1Z^(KSw`#ekU^cJl885P1a)a+6yw@!-pVy7HeSEpy>0SU@ z;Q7p^uFcy8+X`4rF=1`zN+g2*3jgtfR;L6&#m z%q$kRwXUW2kdwC-YeK(Iu{<1i(LZu(DMb%MTA#!6aL||C>MI+D;&mT@w*pJrdfdp` zoBqD5SBGK0?Vu$r>dOl=lvJ=+j>g;CiEVq4?rnr_O>Jvs&aCAIpqI_-*`sb9#(kK& zzgk5L);*ZoA2APcidY=ZbLmv8@Sdb0oDjLB!Ocwaur^cL{qvNhV#5m0O>x=Yv^u)Z(FbBz%3W7B*1!HWd2^yhVpzZ25|as{rRZB zj&>or>W(6O-^2LTVf!lnxQKG2;XBG#1&)+%XB-xT-L0CytKV^%BP~_q+?-zV3#eO# znRhXa%d=MzkI#K{P_GK_wq+#1xG5M}J+ok7S`eS^BAGwe&g9Y$Xkvo0^?WH4iKJ5K z2}N8BifowKiL7>nnCLjhC*;P+_J0BU39o&L+a6;H18Wqu<_L`=;;H)$!Ghq>;NNu= zT|yoMf*K*AXLxT9&h12nOPLF!i=CCwCCJ?-m!?@lCx@~s)>m4!B*N*HZ)y1f9=(g3 zrzKcfFgnO_SxQ4brE8&h`PsPuywl+gmM>7vB5HJA+l+FRsJ9>SqA;$FsQ$or?L;*S zM>R1a*^<^T-VhO6M$#UjZVubtrg{gxcs?v-h(faIZPj;jQV@p<`CQ&xo(NXSS(p&%s2CV zv3oC%ytW)hs$#H5ty0inOY~7A6A=LcX*r6d5)rbn`g}oMy$gqGDnLdj{K!LG;^$$Q zq2%F$jhG4X`9xxhJQB0kJSI_sp-i(HkZsD7MU+ zN)XC3X2ap%Id^xm$e@NgHs(}g4UGu3Z-~lFU2{h&d)~H~j?-|q za-eH(O0MNro|@?t?r zE~$bXItJxnMk2GB8qi8|T$XaOnartcg;^J!DX5#5un+GI3%KhcSOR?*eBoTqA%RcSS7zG_Kf1`@QFV9%gy+;?0Mzzf34` zi61L}Hjf2FL?j4Ts$7LKRVodO;8`E#k?8d-SHB;&ixDeMyvuf}wx=Z6T{0w;0*R7J zg=8seq^eb~L7f-u^?@{V(yg;zj}10z)T~95O*Y#i!xLZ1EDg~S12GW`zV}10VTTik zaKj5ff(RpW+8GX9UYd{#tEn_`B$4tM&Q(Oog!qzc;}~7^F~k^CoMMi1T;duxPR4rA zc*UEU@y}yx{9{W%0uz*AEqrakq9trBGIDPrc!}DJe$s`3gd>O@x-2;Y1+y=d4}B!m z&wlZ-Pkib#Z+O$UzC%QVCrrBz+I@qZNID$B^tb={oRW&dLAhQ=NtA9qdiCiyV4+25 zP<89nr&qr=*&YZfXvkv2MvPiw%u>rNx57%RthUBl>liTQia}wnnRGSvHrQyB&9>NT zo9%Yk=_FZG@lQ#eu^IPv=RMHaOl}FvGMVpPUBZ-fIxOO654qG{4*L)?M|`;L-AD*n z3Tn1H1Fw|Jf^vj{IP77+S)YR6=qgA-ovd?@%HcKknvc&XaH2051(N$jG-7^574g7W z?7vC#F=;r#7tEyw6pKb!!}_tpXu9dRSWsDK_pJs*JQF>L?6?UA`Xyqe@slVXjh_<~ zq_9v~m`7C!eyM>8gN2C@3lT9f(KMI{2vLg=O@xVn66RRNpaup81tAJ-Qea@vG!z&V zFO+<&2?_JQKvZ! z4noTXi42(xEmUlZ;aXcihH1z|68&1X8{;t+2@>b3iqhB=ZXI=>*B<15Yj03wBwLHB zVdJPk&iF;|cCTC(3%ZUzY0+llzrW^>->8!|)B`bDQu|e)&rSXDPQ-+BU30oSv2o+t Z1Ao3Y&t4`$Gft`ApA6mjUw=yf000rMeX9Tf literal 0 HcmV?d00001 diff --git a/static/vendor/fonts/certificate/playfair-display-600-italic.woff2 b/static/vendor/fonts/certificate/playfair-display-600-italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..78abff9047b26a24a695336ef73bb234651edb00 GIT binary patch literal 23176 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

3~hYI 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 literal 0 HcmV?d00001 diff --git a/static/vendor/fonts/certificate/playfair-display-600.woff2 b/static/vendor/fonts/certificate/playfair-display-600.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c19fbc1da4c631a18dace1dce97ae3d7d919a646 GIT binary patch literal 23228 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 literal 0 HcmV?d00001 diff --git a/static/vendor/fonts/certificate/playfair-display-700.woff2 b/static/vendor/fonts/certificate/playfair-display-700.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..39eefe0333444ed21139388621c18781e832ce5e GIT binary patch literal 23224 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 LZ$roart.length)&&(e=t.length);for(var n=0,o=new Array(e);n"===e[0]&&(e=e.substring(1)),t))try{if(t.matches)return t.matches(e);if(t.msMatchesSelector)return t.msMatchesSelector(e);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(e)}catch(t){return}}function N(t,e,n,o){if(t){n=n||document;do{if(null!=e&&(">"!==e[0]||t.parentNode===n)&&p(t,e)||o&&t===n)return t}while(t!==n&&(t=(i=t).host&&i!==document&&i.host.nodeType?i.host:i.parentNode))}var i;return null}var g,m=/\s+/g;function I(t,e,n){var o;t&&e&&(t.classList?t.classList[n?"add":"remove"](e):(o=(" "+t.className+" ").replace(m," ").replace(" "+e+" "," "),t.className=(o+(n?" "+e:"")).replace(m," ")))}function P(t,e,n){var o=t&&t.style;if(o){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(t,""):t.currentStyle&&(n=t.currentStyle),void 0===e?n:n[e];o[e=!(e in o||-1!==e.indexOf("webkit"))?"-webkit-"+e:e]=n+("string"==typeof n?"":"px")}}function v(t,e){var n="";if("string"==typeof t)n=t;else do{var o=P(t,"transform")}while(o&&"none"!==o&&(n=o+" "+n),!e&&(t=t.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function b(t,e,n){if(t){var o=t.getElementsByTagName(e),i=0,r=o.length;if(n)for(;i=n.left-e&&i<=n.right+e,e=r>=n.top-e&&r<=n.bottom+e;return o&&e?a=t:void 0}}),a);if(e){var n,o={};for(n in t)t.hasOwnProperty(n)&&(o[n]=t[n]);o.target=o.rootEl=e,o.preventDefault=void 0,o.stopPropagation=void 0,e[j]._onDragOver(o)}}var i,r,a}function Yt(t){q&&q.parentNode[j]._isOutsideThisEl(t.target)}function Bt(t,e){if(!t||!t.nodeType||1!==t.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t));this.el=t,this.options=e=a({},e),t[j]=this;var n,o,i={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(t.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return It(t,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,e){t.setData("Text",e.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Bt.supportPointer&&"PointerEvent"in window&&!u,emptyInsertThreshold:5};for(n in K.initializePlugins(this,t,i),i)n in e||(e[n]=i[n]);for(o in Pt(e),this)"_"===o.charAt(0)&&"function"==typeof this[o]&&(this[o]=this[o].bind(this));this.nativeDraggable=!e.forceFallback&&Mt,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?h(t,"pointerdown",this._onTapStart):(h(t,"mousedown",this._onTapStart),h(t,"touchstart",this._onTapStart)),this.nativeDraggable&&(h(t,"dragover",this),h(t,"dragenter",this)),Et.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),a(this,x())}function Ft(t,e,n,o,i,r,a,l){var s,c,u=t[j],d=u.options.onMove;return!window.CustomEvent||y||w?(s=document.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=e,s.from=t,s.dragged=n,s.draggedRect=o,s.related=i||e,s.relatedRect=r||k(e),s.willInsertAfter=l,s.originalEvent=a,t.dispatchEvent(s),c=d?d.call(u,s,a):c}function jt(t){t.draggable=!1}function Ht(){Ct=!1}function Lt(t){return setTimeout(t,0)}function Kt(t){return clearTimeout(t)}Bt.prototype={constructor:Bt,_isOutsideThisEl:function(t){this.el.contains(t)||t===this.el||(gt=null)},_getDirection:function(t,e){return"function"==typeof this.options.direction?this.options.direction.call(this,t,e,q):this.options.direction},_onTapStart:function(e){if(e.cancelable){var n=this,o=this.el,t=this.options,i=t.preventOnFilter,r=e.type,a=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,l=(a||e).target,s=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,c=t.filter;if(!function(t){Tt.length=0;var e=t.getElementsByTagName("input"),n=e.length;for(;n--;){var o=e[n];o.checked&&Tt.push(o)}}(o),!q&&!(/mousedown|pointerdown/.test(r)&&0!==e.button||t.disabled)&&!s.isContentEditable&&(this.nativeDraggable||!u||!l||"SELECT"!==l.tagName.toUpperCase())&&!((l=N(l,t.draggable,o,!1))&&l.animated||J===l)){if(nt=B(l),it=B(l,t.draggable),"function"==typeof c){if(c.call(this,e,l,this))return U({sortable:n,rootEl:s,name:"filter",targetEl:l,toEl:o,fromEl:o}),z("filter",n,{evt:e}),void(i&&e.cancelable&&e.preventDefault())}else if(c=c&&c.split(",").some(function(t){if(t=N(s,t.trim(),o,!1))return U({sortable:n,rootEl:t,name:"filter",targetEl:l,fromEl:o,toEl:o}),z("filter",n,{evt:e}),!0}))return void(i&&e.cancelable&&e.preventDefault());t.handle&&!N(s,t.handle,o,!1)||this._prepareDragStart(e,a,l)}}},_prepareDragStart:function(t,e,n){var o,i=this,r=i.el,a=i.options,l=r.ownerDocument;n&&!q&&n.parentNode===r&&(o=k(n),$=r,V=(q=n).parentNode,Q=q.nextSibling,J=n,at=a.group,st={target:Bt.dragged=q,clientX:(e||t).clientX,clientY:(e||t).clientY},ht=st.clientX-o.left,ft=st.clientY-o.top,this._lastX=(e||t).clientX,this._lastY=(e||t).clientY,q.style["will-change"]="all",o=function(){z("delayEnded",i,{evt:t}),Bt.eventCanceled?i._onDrop():(i._disableDelayedDragEvents(),!s&&i.nativeDraggable&&(q.draggable=!0),i._triggerDragStart(t,e),U({sortable:i,name:"choose",originalEvent:t}),I(q,a.chosenClass,!0))},a.ignore.split(",").forEach(function(t){b(q,t.trim(),jt)}),h(l,"dragover",Xt),h(l,"mousemove",Xt),h(l,"touchmove",Xt),h(l,"mouseup",i._onDrop),h(l,"touchend",i._onDrop),h(l,"touchcancel",i._onDrop),s&&this.nativeDraggable&&(this.options.touchStartThreshold=4,q.draggable=!0),z("delayStart",this,{evt:t}),!a.delay||a.delayOnTouchOnly&&!e||this.nativeDraggable&&(w||y)?o():Bt.eventCanceled?this._onDrop():(h(l,"mouseup",i._disableDelayedDrag),h(l,"touchend",i._disableDelayedDrag),h(l,"touchcancel",i._disableDelayedDrag),h(l,"mousemove",i._delayedDragTouchMoveHandler),h(l,"touchmove",i._delayedDragTouchMoveHandler),a.supportPointer&&h(l,"pointermove",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(o,a.delay)))},_delayedDragTouchMoveHandler:function(t){t=t.touches?t.touches[0]:t;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){q&&jt(q),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;f(t,"mouseup",this._disableDelayedDrag),f(t,"touchend",this._disableDelayedDrag),f(t,"touchcancel",this._disableDelayedDrag),f(t,"mousemove",this._delayedDragTouchMoveHandler),f(t,"touchmove",this._delayedDragTouchMoveHandler),f(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,e){e=e||"touch"==t.pointerType&&t,!this.nativeDraggable||e?this.options.supportPointer?h(document,"pointermove",this._onTouchMove):h(document,e?"touchmove":"mousemove",this._onTouchMove):(h(q,"dragend",this),h($,"dragstart",this._onDragStart));try{document.selection?Lt(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(t){}},_dragStarted:function(t,e){var n;yt=!1,$&&q?(z("dragStarted",this,{evt:e}),this.nativeDraggable&&h(document,"dragover",Yt),n=this.options,t||I(q,n.dragClass,!1),I(q,n.ghostClass,!0),Bt.active=this,t&&this._appendGhost(),U({sortable:this,name:"start",originalEvent:e})):this._nulling()},_emulateDragOver:function(){if(ct){this._lastX=ct.clientX,this._lastY=ct.clientY,kt();for(var t=document.elementFromPoint(ct.clientX,ct.clientY),e=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(ct.clientX,ct.clientY))!==e;)e=t;if(q.parentNode[j]._isOutsideThisEl(t),e)do{if(e[j])if(e[j]._onDragOver({clientX:ct.clientX,clientY:ct.clientY,target:t,rootEl:e})&&!this.options.dragoverBubble)break}while(e=(t=e).parentNode);Rt()}},_onTouchMove:function(t){if(st){var e=this.options,n=e.fallbackTolerance,o=e.fallbackOffset,i=t.touches?t.touches[0]:t,r=Z&&v(Z,!0),a=Z&&r&&r.a,l=Z&&r&&r.d,e=Ot&&bt&&E(bt),a=(i.clientX-st.clientX+o.x)/(a||1)+(e?e[0]-_t[0]:0)/(a||1),l=(i.clientY-st.clientY+o.y)/(l||1)+(e?e[1]-_t[1]:0)/(l||1);if(!Bt.active&&!yt){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))n.right+10||t.clientX<=n.right&&t.clientY>n.bottom&&t.clientX>=n.left:t.clientX>n.right&&t.clientY>n.top||t.clientX<=n.right&&t.clientY>n.bottom+10}(n,r,this)&&!g.animated){if(g===q)return O(!1);if((l=g&&a===n.target?g:l)&&(w=k(l)),!1!==Ft($,a,q,o,l,w,n,!!l))return x(),g&&g.nextSibling?a.insertBefore(q,g.nextSibling):a.appendChild(q),V=a,A(),O(!0)}else if(g&&function(t,e,n){n=k(X(n.el,0,n.options,!0));return e?t.clientX{t(e)}))}class t{constructor(){this._events=void 0,this._events={}}on(t,i){e(t,(e=>{const t=this._events[e]||[] +t.push(i),this._events[e]=t}))}off(t,i){var s=arguments.length +0!==s?e(t,(e=>{if(1===s)return void delete this._events[e] +const t=this._events[e] +void 0!==t&&(t.splice(t.indexOf(i),1),this._events[e]=t)})):this._events={}}trigger(t,...i){var s=this +e(t,(e=>{const t=s._events[e] +void 0!==t&&t.forEach((e=>{e.apply(s,i)}))}))}}const i=e=>(e=e.filter(Boolean)).length<2?e[0]||"":1==l(e)?"["+e.join("")+"]":"(?:"+e.join("|")+")",s=e=>{if(!o(e))return e.join("") +let t="",i=0 +const s=()=>{i>1&&(t+="{"+i+"}")} +return e.forEach(((n,o)=>{n!==e[o-1]?(s(),t+=n,i=1):i++})),s(),t},n=e=>{let t=c(e) +return i(t)},o=e=>new Set(e).size!==e.length,r=e=>(e+"").replace(/([\$\(\)\*\+\.\?\[\]\^\{\|\}\\])/gu,"\\$1"),l=e=>e.reduce(((e,t)=>Math.max(e,a(t))),0),a=e=>c(e).length,c=e=>Array.from(e),d=e=>{if(1===e.length)return[[e]] +let t=[] +const i=e.substring(1) +return d(i).forEach((function(i){let s=i.slice(0) +s[0]=e.charAt(0)+s[0],t.push(s),s=i.slice(0),s.unshift(e.charAt(0)),t.push(s)})),t},u=[[0,65535]] +let p,h +const g={},f={"/":"⁄∕",0:"߀",a:"ⱥɐɑ",aa:"ꜳ",ae:"æǽǣ",ao:"ꜵ",au:"ꜷ",av:"ꜹꜻ",ay:"ꜽ",b:"ƀɓƃ",c:"ꜿƈȼↄ",d:"đɗɖᴅƌꮷԁɦ",e:"ɛǝᴇɇ",f:"ꝼƒ",g:"ǥɠꞡᵹꝿɢ",h:"ħⱨⱶɥ",i:"ɨı",j:"ɉȷ",k:"ƙⱪꝁꝃꝅꞣ",l:"łƚɫⱡꝉꝇꞁɭ",m:"ɱɯϻ",n:"ꞥƞɲꞑᴎлԉ",o:"øǿɔɵꝋꝍᴑ",oe:"œ",oi:"ƣ",oo:"ꝏ",ou:"ȣ",p:"ƥᵽꝑꝓꝕρ",q:"ꝗꝙɋ",r:"ɍɽꝛꞧꞃ",s:"ßȿꞩꞅʂ",t:"ŧƭʈⱦꞇ",th:"þ",tz:"ꜩ",u:"ʉ",v:"ʋꝟʌ",vy:"ꝡ",w:"ⱳ",y:"ƴɏỿ",z:"ƶȥɀⱬꝣ",hv:"ƕ"} +for(let e in f){let t=f[e]||"" +for(let i=0;ie.normalize(t),y=e=>c(e).reduce(((e,t)=>e+O(t)),""),O=e=>(e=m(e).toLowerCase().replace(v,(e=>g[e]||"")),m(e,"NFC")) +const b=e=>{const t={},i=(e,i)=>{const s=t[e]||new Set,o=new RegExp("^"+n(s)+"$","iu") +i.match(o)||(s.add(r(i)),t[e]=s)} +for(let t of function*(e){for(const[t,i]of e)for(let e=t;e<=i;e++){let t=String.fromCharCode(e),i=y(t) +i!=t.toLowerCase()&&(i.length>3||0!=i.length&&(yield{folded:i,composed:t,code_point:e}))}}(e))i(t.folded,t.folded),i(t.folded,t.composed) +return t},w=e=>{const t=b(e),s={} +let o=[] +for(let e in t){let i=t[e] +i&&(s[e]=n(i)),e.length>1&&o.push(r(e))}o.sort(((e,t)=>t.length-e.length)) +const l=i(o) +return h=new RegExp("^"+l,"u"),s},_=(e,t=1)=>(t=Math.max(t,e.length-1),i(d(e).map((e=>((e,t=1)=>{let i=0 +return e=e.map((e=>(p[e]&&(i+=e.length),p[e]||e))),i>=t?s(e):""})(e,t))))),C=(e,t=!0)=>{let n=e.length>1?1:0 +return i(e.map((e=>{let i=[] +const o=t?e.length():e.length()-1 +for(let t=0;t{for(const i of t){if(i.start!=e.start||i.end!=e.end)continue +if(i.substrs.join("")!==e.substrs.join(""))continue +let t=e.parts +const s=e=>{for(const i of t){if(i.start===e.start&&i.substr===e.substr)return!1 +if(1!=e.length&&1!=i.length){if(e.starti.start)return!0 +if(i.starte.start)return!0}}return!1} +if(!(i.parts.filter(s).length>0))return!0}return!1} +class I{constructor(){this.parts=[],this.substrs=[],this.start=0,this.end=0}add(e){e&&(this.parts.push(e),this.substrs.push(e.substr),this.start=Math.min(e.start,this.start),this.end=Math.max(e.end,this.end))}last(){return this.parts[this.parts.length-1]}length(){return this.parts.length}clone(e,t){let i=new I,s=JSON.parse(JSON.stringify(this.parts)),n=s.pop() +for(const e of s)i.add(e) +let o=t.substr.substring(0,e-n.start),r=o.length +return i.add({start:n.start,end:n.start+r,length:r,substr:o}),i}}const A=e=>{var t +void 0===p&&(p=w(t||u)),e=y(e) +let i="",s=[new I] +for(let t=0;t0){l=l.sort(((e,t)=>e.length()-t.length())) +for(let e of l)S(e,s)||s.push(e)}else if(t>0&&1==a.size&&!a.has("3")){i+=C(s,!1) +let e=new I +const t=s[0] +t&&e.add(t.last()),s=[e]}}return i+=C(s,!0),i},x=(e,t)=>{if(e)return e[t]},k=(e,t)=>{if(e){for(var i,s=t.split(".");(i=s.shift())&&(e=e[i]););return e}},F=(e,t,i)=>{var s,n +return e?(e+="",null==t.regex||-1===(n=e.search(t.regex))?0:(s=t.string.length/e.length,0===n&&(s+=.5),s*i)):0},L=(e,t)=>{var i=e[t] +if("function"==typeof i)return i +i&&!Array.isArray(i)&&(e[t]=[i])},E=(e,t)=>{if(Array.isArray(e))e.forEach(t) +else for(var i in e)e.hasOwnProperty(i)&&t(e[i],i)},T=(e,t)=>"number"==typeof e&&"number"==typeof t?e>t?1:e(t=y(t+"").toLowerCase())?1:t>e?-1:0 +class P{constructor(e,t){this.items=void 0,this.settings=void 0,this.items=e,this.settings=t||{diacritics:!0}}tokenize(e,t,i){if(!e||!e.length)return[] +const s=[],n=e.split(/\s+/) +var o +return i&&(o=new RegExp("^("+Object.keys(i).map(r).join("|")+"):(.*)$")),n.forEach((e=>{let i,n=null,l=null +o&&(i=e.match(o))&&(n=i[1],e=i[2]),e.length>0&&(l=this.settings.diacritics?A(e)||null:r(e),l&&t&&(l="\\b"+l)),s.push({string:e,regex:l?new RegExp(l,"iu"):null,field:n})})),s}getScoreFunction(e,t){var i=this.prepareSearch(e,t) +return this._getScoreFunction(i)}_getScoreFunction(e){const t=e.tokens,i=t.length +if(!i)return function(){return 0} +const s=e.options.fields,n=e.weights,o=s.length,r=e.getAttrFn +if(!o)return function(){return 1} +const l=1===o?function(e,t){const i=s[0].field +return F(r(t,i),e,n[i]||1)}:function(e,t){var i=0 +if(e.field){const s=r(t,e.field) +!e.regex&&s?i+=1/o:i+=F(s,e,1)}else E(n,((s,n)=>{i+=F(r(t,n),e,s)})) +return i/o} +return 1===i?function(e){return l(t[0],e)}:"and"===e.options.conjunction?function(e){var s,n=0 +for(let i of t){if((s=l(i,e))<=0)return 0 +n+=s}return n/i}:function(e){var s=0 +return E(t,(t=>{s+=l(t,e)})),s/i}}getSortFunction(e,t){var i=this.prepareSearch(e,t) +return this._getSortFunction(i)}_getSortFunction(e){var t,i=[] +const s=this,n=e.options,o=!e.query&&n.sort_empty?n.sort_empty:n.sort +if("function"==typeof o)return o.bind(this) +const r=function(t,i){return"$score"===t?i.score:e.getAttrFn(s.items[i.id],t)} +if(o)for(let t of o)(e.query||"$score"!==t.field)&&i.push(t) +if(e.query){t=!0 +for(let e of i)if("$score"===e.field){t=!1 +break}t&&i.unshift({field:"$score",direction:"desc"})}else i=i.filter((e=>"$score"!==e.field)) +return i.length?function(e,t){var s,n +for(let o of i){if(n=o.field,s=("desc"===o.direction?-1:1)*T(r(n,e),r(n,t)))return s}return 0}:null}prepareSearch(e,t){const i={} +var s=Object.assign({},t) +if(L(s,"sort"),L(s,"sort_empty"),s.fields){L(s,"fields") +const e=[] +s.fields.forEach((t=>{"string"==typeof t&&(t={field:t,weight:1}),e.push(t),i[t.field]="weight"in t?t.weight:1})),s.fields=e}return{options:s,query:e.toLowerCase().trim(),tokens:this.tokenize(e,s.respect_word_boundaries,i),total:0,items:[],weights:i,getAttrFn:s.nesting?k:x}}search(e,t){var i,s,n=this +s=this.prepareSearch(e,t),t=s.options,e=s.query +const o=t.score||n._getScoreFunction(s) +e.length?E(n.items,((e,n)=>{i=o(e),(!1===t.filter||i>0)&&s.items.push({score:i,id:n})})):E(n.items,((e,t)=>{s.items.push({score:1,id:t})})) +const r=n._getSortFunction(s) +return r&&s.items.sort(r),s.total=s.items.length,"number"==typeof t.limit&&(s.items=s.items.slice(0,t.limit)),s}}const N=(e,t)=>{if(Array.isArray(e))e.forEach(t) +else for(var i in e)e.hasOwnProperty(i)&&t(e[i],i)},j=e=>{if(e.jquery)return e[0] +if(e instanceof HTMLElement)return e +if($(e)){var t=document.createElement("template") +return t.innerHTML=e.trim(),t.content.firstChild}return document.querySelector(e)},$=e=>"string"==typeof e&&e.indexOf("<")>-1,V=(e,t)=>{var i=document.createEvent("HTMLEvents") +i.initEvent(t,!0,!1),e.dispatchEvent(i)},q=(e,t)=>{Object.assign(e.style,t)},D=(e,...t)=>{var i=H(t);(e=M(e)).map((e=>{i.map((t=>{e.classList.add(t)}))}))},R=(e,...t)=>{var i=H(t);(e=M(e)).map((e=>{i.map((t=>{e.classList.remove(t)}))}))},H=e=>{var t=[] +return N(e,(e=>{"string"==typeof e&&(e=e.trim().split(/[\11\12\14\15\40]/)),Array.isArray(e)&&(t=t.concat(e))})),t.filter(Boolean)},M=e=>(Array.isArray(e)||(e=[e]),e),z=(e,t,i)=>{if(!i||i.contains(e))for(;e&&e.matches;){if(e.matches(t))return e +e=e.parentNode}},B=(e,t=0)=>t>0?e[e.length-1]:e[0],K=(e,t)=>{if(!e)return-1 +t=t||e.nodeName +for(var i=0;e=e.previousElementSibling;)e.matches(t)&&i++ +return i},Q=(e,t)=>{N(t,((t,i)=>{null==t?e.removeAttribute(i):e.setAttribute(i,""+t)}))},G=(e,t)=>{e.parentNode&&e.parentNode.replaceChild(t,e)},U=(e,t)=>{if(null===t)return +if("string"==typeof t){if(!t.length)return +t=new RegExp(t,"i")}const i=e=>3===e.nodeType?(e=>{var i=e.data.match(t) +if(i&&e.data.length>0){var s=document.createElement("span") +s.className="highlight" +var n=e.splitText(i.index) +n.splitText(i[0].length) +var o=n.cloneNode(!0) +return s.appendChild(o),G(n,s),1}return 0})(e):((e=>{1!==e.nodeType||!e.childNodes||/(script|style)/i.test(e.tagName)||"highlight"===e.className&&"SPAN"===e.tagName||Array.from(e.childNodes).forEach((e=>{i(e)}))})(e),0) +i(e)},J="undefined"!=typeof navigator&&/Mac/.test(navigator.userAgent)?"metaKey":"ctrlKey" +var W={options:[],optgroups:[],plugins:[],delimiter:",",splitOn:null,persist:!0,diacritics:!0,create:null,createOnBlur:!1,createFilter:null,highlight:!0,openOnFocus:!0,shouldOpen:null,maxOptions:50,maxItems:null,hideSelected:null,duplicates:!1,addPrecedence:!1,selectOnTab:!1,preload:null,allowEmptyOption:!1,refreshThrottle:300,loadThrottle:300,loadingClass:"loading",dataAttr:null,optgroupField:"optgroup",valueField:"value",labelField:"text",disabledField:"disabled",optgroupLabelField:"label",optgroupValueField:"value",lockOptgroupOrder:!1,sortField:"$order",searchField:["text"],searchConjunction:"and",mode:null,wrapperClass:"ts-wrapper",controlClass:"ts-control",dropdownClass:"ts-dropdown",dropdownContentClass:"ts-dropdown-content",itemClass:"item",optionClass:"option",dropdownParent:null,controlInput:'',copyClassesToDropdown:!1,placeholder:null,hidePlaceholder:null,shouldLoad:function(e){return e.length>0},render:{}} +const X=e=>null==e?null:Y(e),Y=e=>"boolean"==typeof e?e?"1":"0":e+"",Z=e=>(e+"").replace(/&/g,"&").replace(//g,">").replace(/"/g,"""),ee=(e,t)=>{var i +return function(s,n){var o=this +i&&(o.loading=Math.max(o.loading-1,0),clearTimeout(i)),i=setTimeout((function(){i=null,o.loadedSearches[s]=!0,e.call(o,s,n)}),t)}},te=(e,t,i)=>{var s,n=e.trigger,o={} +for(s of(e.trigger=function(){var i=arguments[0] +if(-1===t.indexOf(i))return n.apply(e,arguments) +o[i]=arguments},i.apply(e,[]),e.trigger=n,t))s in o&&n.apply(e,o[s])},ie=(e,t=!1)=>{e&&(e.preventDefault(),t&&e.stopPropagation())},se=(e,t,i,s)=>{e.addEventListener(t,i,s)},ne=(e,t)=>!!t&&(!!t[e]&&1===(t.altKey?1:0)+(t.ctrlKey?1:0)+(t.shiftKey?1:0)+(t.metaKey?1:0)),oe=(e,t)=>{const i=e.getAttribute("id") +return i||(e.setAttribute("id",t),t)},re=e=>e.replace(/[\\"']/g,"\\$&"),le=(e,t)=>{t&&e.append(t)} +function ae(e,t){var i=Object.assign({},W,t),s=i.dataAttr,n=i.labelField,o=i.valueField,r=i.disabledField,l=i.optgroupField,a=i.optgroupLabelField,c=i.optgroupValueField,d=e.tagName.toLowerCase(),u=e.getAttribute("placeholder")||e.getAttribute("data-placeholder") +if(!u&&!i.allowEmptyOption){let t=e.querySelector('option[value=""]') +t&&(u=t.textContent)}var p={placeholder:u,options:[],optgroups:[],items:[],maxItems:null} +return"select"===d?(()=>{var t,d=p.options,u={},h=1 +let g=0 +var f=e=>{var t=Object.assign({},e.dataset),i=s&&t[s] +return"string"==typeof i&&i.length&&(t=Object.assign(t,JSON.parse(i))),t},v=(e,t)=>{var s=X(e.value) +if(null!=s&&(s||i.allowEmptyOption)){if(u.hasOwnProperty(s)){if(t){var a=u[s][l] +a?Array.isArray(a)?a.push(t):u[s][l]=[a,t]:u[s][l]=t}}else{var c=f(e) +c[n]=c[n]||e.textContent,c[o]=c[o]||s,c[r]=c[r]||e.disabled,c[l]=c[l]||t,c.$option=e,c.$order=c.$order||++g,u[s]=c,d.push(c)}e.selected&&p.items.push(s)}} +p.maxItems=e.hasAttribute("multiple")?null:1,N(e.children,(e=>{var i,s,n +"optgroup"===(t=e.tagName.toLowerCase())?((n=f(i=e))[a]=n[a]||i.getAttribute("label")||"",n[c]=n[c]||h++,n[r]=n[r]||i.disabled,n.$order=n.$order||++g,p.optgroups.push(n),s=n[c],N(i.children,(e=>{v(e,s)}))):"option"===t&&v(e)}))})():(()=>{const t=e.getAttribute(s) +if(t)p.options=JSON.parse(t),N(p.options,(e=>{p.items.push(e[o])})) +else{var r=e.value.trim()||"" +if(!i.allowEmptyOption&&!r.length)return +const t=r.split(i.delimiter) +N(t,(e=>{const t={} +t[n]=e,t[o]=e,p.options.push(t)})),p.items=t}})(),Object.assign({},W,p,t)}var ce=0 +class de extends(function(e){return e.plugins={},class extends e{constructor(...e){super(...e),this.plugins={names:[],settings:{},requested:{},loaded:{}}}static define(t,i){e.plugins[t]={name:t,fn:i}}initializePlugins(e){var t,i +const s=this,n=[] +if(Array.isArray(e))e.forEach((e=>{"string"==typeof e?n.push(e):(s.plugins.settings[e.name]=e.options,n.push(e.name))})) +else if(e)for(t in e)e.hasOwnProperty(t)&&(s.plugins.settings[t]=e[t],n.push(t)) +for(;i=n.shift();)s.require(i)}loadPlugin(t){var i=this,s=i.plugins,n=e.plugins[t] +if(!e.plugins.hasOwnProperty(t))throw new Error('Unable to find "'+t+'" plugin') +s.requested[t]=!0,s.loaded[t]=n.fn.apply(i,[i.plugins.settings[t]||{}]),s.names.push(t)}require(e){var t=this,i=t.plugins +if(!t.plugins.loaded.hasOwnProperty(e)){if(i.requested[e])throw new Error('Plugin has circular dependency ("'+e+'")') +t.loadPlugin(e)}return i.loaded[e]}}}(t)){constructor(e,t){var i +super(),this.control_input=void 0,this.wrapper=void 0,this.dropdown=void 0,this.control=void 0,this.dropdown_content=void 0,this.focus_node=void 0,this.order=0,this.settings=void 0,this.input=void 0,this.tabIndex=void 0,this.is_select_tag=void 0,this.rtl=void 0,this.inputId=void 0,this._destroy=void 0,this.sifter=void 0,this.isOpen=!1,this.isDisabled=!1,this.isReadOnly=!1,this.isRequired=void 0,this.isInvalid=!1,this.isValid=!0,this.isLocked=!1,this.isFocused=!1,this.isInputHidden=!1,this.isSetup=!1,this.ignoreFocus=!1,this.ignoreHover=!1,this.hasOptions=!1,this.currentResults=void 0,this.lastValue="",this.caretPos=0,this.loading=0,this.loadedSearches={},this.activeOption=null,this.activeItems=[],this.optgroups={},this.options={},this.userOptions={},this.items=[],this.refreshTimeout=null,ce++ +var s=j(e) +if(s.tomselect)throw new Error("Tom Select already initialized on this element") +s.tomselect=this,i=(window.getComputedStyle&&window.getComputedStyle(s,null)).getPropertyValue("direction") +const n=ae(s,t) +this.settings=n,this.input=s,this.tabIndex=s.tabIndex||0,this.is_select_tag="select"===s.tagName.toLowerCase(),this.rtl=/rtl/i.test(i),this.inputId=oe(s,"tomselect-"+ce),this.isRequired=s.required,this.sifter=new P(this.options,{diacritics:n.diacritics}),n.mode=n.mode||(1===n.maxItems?"single":"multi"),"boolean"!=typeof n.hideSelected&&(n.hideSelected="multi"===n.mode),"boolean"!=typeof n.hidePlaceholder&&(n.hidePlaceholder="multi"!==n.mode) +var o=n.createFilter +"function"!=typeof o&&("string"==typeof o&&(o=new RegExp(o)),o instanceof RegExp?n.createFilter=e=>o.test(e):n.createFilter=e=>this.settings.duplicates||!this.options[e]),this.initializePlugins(n.plugins),this.setupCallbacks(),this.setupTemplates() +const r=j("

"),l=j("
"),a=this._render("dropdown"),c=j('
'),d=this.input.getAttribute("class")||"",u=n.mode +var p +if(D(r,n.wrapperClass,d,u),D(l,n.controlClass),le(r,l),D(a,n.dropdownClass,u),n.copyClassesToDropdown&&D(a,d),D(c,n.dropdownContentClass),le(a,c),j(n.dropdownParent||r).appendChild(a),$(n.controlInput)){p=j(n.controlInput) +E(["autocorrect","autocapitalize","autocomplete","spellcheck"],(e=>{s.getAttribute(e)&&Q(p,{[e]:s.getAttribute(e)})})),p.tabIndex=-1,l.appendChild(p),this.focus_node=p}else n.controlInput?(p=j(n.controlInput),this.focus_node=p):(p=j(""),this.focus_node=l) +this.wrapper=r,this.dropdown=a,this.dropdown_content=c,this.control=l,this.control_input=p,this.setup()}setup(){const e=this,t=e.settings,i=e.control_input,s=e.dropdown,n=e.dropdown_content,o=e.wrapper,l=e.control,a=e.input,c=e.focus_node,d={passive:!0},u=e.inputId+"-ts-dropdown" +Q(n,{id:u}),Q(c,{role:"combobox","aria-haspopup":"listbox","aria-expanded":"false","aria-controls":u}) +const p=oe(c,e.inputId+"-ts-control"),h="label[for='"+(e=>e.replace(/['"\\]/g,"\\$&"))(e.inputId)+"']",g=document.querySelector(h),f=e.focus.bind(e) +if(g){se(g,"click",f),Q(g,{for:p}) +const t=oe(g,e.inputId+"-ts-label") +Q(c,{"aria-labelledby":t}),Q(n,{"aria-labelledby":t})}if(o.style.width=a.style.width,e.plugins.names.length){const t="plugin-"+e.plugins.names.join(" plugin-") +D([o,s],t)}(null===t.maxItems||t.maxItems>1)&&e.is_select_tag&&Q(a,{multiple:"multiple"}),t.placeholder&&Q(i,{placeholder:t.placeholder}),!t.splitOn&&t.delimiter&&(t.splitOn=new RegExp("\\s*"+r(t.delimiter)+"+\\s*")),t.load&&t.loadThrottle&&(t.load=ee(t.load,t.loadThrottle)),se(s,"mousemove",(()=>{e.ignoreHover=!1})),se(s,"mouseenter",(t=>{var i=z(t.target,"[data-selectable]",s) +i&&e.onOptionHover(t,i)}),{capture:!0}),se(s,"click",(t=>{const i=z(t.target,"[data-selectable]") +i&&(e.onOptionSelect(t,i),ie(t,!0))})),se(l,"click",(t=>{var s=z(t.target,"[data-ts-item]",l) +s&&e.onItemSelect(t,s)?ie(t,!0):""==i.value&&(e.onClick(),ie(t,!0))})),se(c,"keydown",(t=>e.onKeyDown(t))),se(i,"keypress",(t=>e.onKeyPress(t))),se(i,"input",(t=>e.onInput(t))),se(c,"blur",(t=>e.onBlur(t))),se(c,"focus",(t=>e.onFocus(t))),se(i,"paste",(t=>e.onPaste(t))) +const v=t=>{const n=t.composedPath()[0] +if(!o.contains(n)&&!s.contains(n))return e.isFocused&&e.blur(),void e.inputState() +n==i&&e.isOpen?t.stopPropagation():ie(t,!0)},m=()=>{e.isOpen&&e.positionDropdown()} +se(document,"mousedown",v),se(window,"scroll",m,d),se(window,"resize",m,d),this._destroy=()=>{document.removeEventListener("mousedown",v),window.removeEventListener("scroll",m),window.removeEventListener("resize",m),g&&g.removeEventListener("click",f)},this.revertSettings={innerHTML:a.innerHTML,tabIndex:a.tabIndex},a.tabIndex=-1,a.insertAdjacentElement("afterend",e.wrapper),e.sync(!1),t.items=[],delete t.optgroups,delete t.options,se(a,"invalid",(()=>{e.isValid&&(e.isValid=!1,e.isInvalid=!0,e.refreshState())})),e.updateOriginalInput(),e.refreshItems(),e.close(!1),e.inputState(),e.isSetup=!0,a.disabled?e.disable():a.readOnly?e.setReadOnly(!0):e.enable(),e.on("change",this.onChange),D(a,"tomselected","ts-hidden-accessible"),e.trigger("initialize"),!0===t.preload&&e.preload()}setupOptions(e=[],t=[]){this.addOptions(e),E(t,(e=>{this.registerOptionGroup(e)}))}setupTemplates(){var e=this,t=e.settings.labelField,i=e.settings.optgroupLabelField,s={optgroup:e=>{let t=document.createElement("div") +return t.className="optgroup",t.appendChild(e.options),t},optgroup_header:(e,t)=>'
'+t(e[i])+"
",option:(e,i)=>"
"+i(e[t])+"
",item:(e,i)=>"
"+i(e[t])+"
",option_create:(e,t)=>'
Add '+t(e.input)+"
",no_results:()=>'
No results found
',loading:()=>'
',not_loading:()=>{},dropdown:()=>"
"} +e.settings.render=Object.assign({},s,e.settings.render)}setupCallbacks(){var e,t,i={initialize:"onInitialize",change:"onChange",item_add:"onItemAdd",item_remove:"onItemRemove",item_select:"onItemSelect",clear:"onClear",option_add:"onOptionAdd",option_remove:"onOptionRemove",option_clear:"onOptionClear",optgroup_add:"onOptionGroupAdd",optgroup_remove:"onOptionGroupRemove",optgroup_clear:"onOptionGroupClear",dropdown_open:"onDropdownOpen",dropdown_close:"onDropdownClose",type:"onType",load:"onLoad",focus:"onFocus",blur:"onBlur"} +for(e in i)(t=this.settings[i[e]])&&this.on(e,t)}sync(e=!0){const t=this,i=e?ae(t.input,{delimiter:t.settings.delimiter}):t.settings +t.setupOptions(i.options,i.optgroups),t.setValue(i.items||[],!0),t.lastQuery=null}onClick(){var e=this +if(e.activeItems.length>0)return e.clearActiveItems(),void e.focus() +e.isFocused&&e.isOpen?e.blur():e.focus()}onMouseDown(){}onChange(){V(this.input,"input"),V(this.input,"change")}onPaste(e){var t=this +t.isInputHidden||t.isLocked?ie(e):t.settings.splitOn&&setTimeout((()=>{var e=t.inputValue() +if(e.match(t.settings.splitOn)){var i=e.trim().split(t.settings.splitOn) +E(i,(e=>{X(e)&&(this.options[e]?t.addItem(e):t.createItem(e))}))}}),0)}onKeyPress(e){var t=this +if(!t.isLocked){var i=String.fromCharCode(e.keyCode||e.which) +return t.settings.create&&"multi"===t.settings.mode&&i===t.settings.delimiter?(t.createItem(),void ie(e)):void 0}ie(e)}onKeyDown(e){var t=this +if(t.ignoreHover=!0,t.isLocked)9!==e.keyCode&&ie(e) +else{switch(e.keyCode){case 65:if(ne(J,e)&&""==t.control_input.value)return ie(e),void t.selectAll() +break +case 27:return t.isOpen&&(ie(e,!0),t.close()),void t.clearActiveItems() +case 40:if(!t.isOpen&&t.hasOptions)t.open() +else if(t.activeOption){let e=t.getAdjacent(t.activeOption,1) +e&&t.setActiveOption(e)}return void ie(e) +case 38:if(t.activeOption){let e=t.getAdjacent(t.activeOption,-1) +e&&t.setActiveOption(e)}return void ie(e) +case 13:return void(t.canSelect(t.activeOption)?(t.onOptionSelect(e,t.activeOption),ie(e)):(t.settings.create&&t.createItem()||document.activeElement==t.control_input&&t.isOpen)&&ie(e)) +case 37:return void t.advanceSelection(-1,e) +case 39:return void t.advanceSelection(1,e) +case 9:return void(t.settings.selectOnTab&&(t.canSelect(t.activeOption)&&(t.onOptionSelect(e,t.activeOption),ie(e)),t.settings.create&&t.createItem()&&ie(e))) +case 8:case 46:return void t.deleteSelection(e)}t.isInputHidden&&!ne(J,e)&&ie(e)}}onInput(e){if(this.isLocked)return +const t=this.inputValue() +this.lastValue!==t&&(this.lastValue=t,""!=t?(this.refreshTimeout&&clearTimeout(this.refreshTimeout),this.refreshTimeout=((e,t)=>t>0?setTimeout(e,t):(e.call(null),null))((()=>{this.refreshTimeout=null,this._onInput()}),this.settings.refreshThrottle)):this._onInput())}_onInput(){const e=this.lastValue +this.settings.shouldLoad.call(this,e)&&this.load(e),this.refreshOptions(),this.trigger("type",e)}onOptionHover(e,t){this.ignoreHover||this.setActiveOption(t,!1)}onFocus(e){var t=this,i=t.isFocused +if(t.isDisabled||t.isReadOnly)return t.blur(),void ie(e) +t.ignoreFocus||(t.isFocused=!0,"focus"===t.settings.preload&&t.preload(),i||t.trigger("focus"),t.activeItems.length||(t.inputState(),t.refreshOptions(!!t.settings.openOnFocus)),t.refreshState())}onBlur(e){if(!1!==document.hasFocus()){var t=this +if(t.isFocused){t.isFocused=!1,t.ignoreFocus=!1 +var i=()=>{t.close(),t.setActiveItem(),t.setCaret(t.items.length),t.trigger("blur")} +t.settings.create&&t.settings.createOnBlur?t.createItem(null,i):i()}}}onOptionSelect(e,t){var i,s=this +t.parentElement&&t.parentElement.matches("[data-disabled]")||(t.classList.contains("create")?s.createItem(null,(()=>{s.settings.closeAfterSelect&&s.close()})):void 0!==(i=t.dataset.value)&&(s.lastQuery=null,s.addItem(i),s.settings.closeAfterSelect&&s.close(),!s.settings.hideSelected&&e.type&&/click/.test(e.type)&&s.setActiveOption(t)))}canSelect(e){return!!(this.isOpen&&e&&this.dropdown_content.contains(e))}onItemSelect(e,t){var i=this +return!i.isLocked&&"multi"===i.settings.mode&&(ie(e),i.setActiveItem(t,e),!0)}canLoad(e){return!!this.settings.load&&!this.loadedSearches.hasOwnProperty(e)}load(e){const t=this +if(!t.canLoad(e))return +D(t.wrapper,t.settings.loadingClass),t.loading++ +const i=t.loadCallback.bind(t) +t.settings.load.call(t,e,i)}loadCallback(e,t){const i=this +i.loading=Math.max(i.loading-1,0),i.lastQuery=null,i.clearActiveOption(),i.setupOptions(e,t),i.refreshOptions(i.isFocused&&!i.isInputHidden),i.loading||R(i.wrapper,i.settings.loadingClass),i.trigger("load",e,t)}preload(){var e=this.wrapper.classList +e.contains("preloaded")||(e.add("preloaded"),this.load(""))}setTextboxValue(e=""){var t=this.control_input +t.value!==e&&(t.value=e,V(t,"update"),this.lastValue=e)}getValue(){return this.is_select_tag&&this.input.hasAttribute("multiple")?this.items:this.items.join(this.settings.delimiter)}setValue(e,t){te(this,t?[]:["change"],(()=>{this.clear(t),this.addItems(e,t)}))}setMaxItems(e){0===e&&(e=null),this.settings.maxItems=e,this.refreshState()}setActiveItem(e,t){var i,s,n,o,r,l,a=this +if("single"!==a.settings.mode){if(!e)return a.clearActiveItems(),void(a.isFocused&&a.inputState()) +if("click"===(i=t&&t.type.toLowerCase())&&ne("shiftKey",t)&&a.activeItems.length){for(l=a.getLastActive(),(n=Array.prototype.indexOf.call(a.control.children,l))>(o=Array.prototype.indexOf.call(a.control.children,e))&&(r=n,n=o,o=r),s=n;s<=o;s++)e=a.control.children[s],-1===a.activeItems.indexOf(e)&&a.setActiveItemClass(e) +ie(t)}else"click"===i&&ne(J,t)||"keydown"===i&&ne("shiftKey",t)?e.classList.contains("active")?a.removeActiveItem(e):a.setActiveItemClass(e):(a.clearActiveItems(),a.setActiveItemClass(e)) +a.inputState(),a.isFocused||a.focus()}}setActiveItemClass(e){const t=this,i=t.control.querySelector(".last-active") +i&&R(i,"last-active"),D(e,"active last-active"),t.trigger("item_select",e),-1==t.activeItems.indexOf(e)&&t.activeItems.push(e)}removeActiveItem(e){var t=this.activeItems.indexOf(e) +this.activeItems.splice(t,1),R(e,"active")}clearActiveItems(){R(this.activeItems,"active"),this.activeItems=[]}setActiveOption(e,t=!0){e!==this.activeOption&&(this.clearActiveOption(),e&&(this.activeOption=e,Q(this.focus_node,{"aria-activedescendant":e.getAttribute("id")}),Q(e,{"aria-selected":"true"}),D(e,"active"),t&&this.scrollToOption(e)))}scrollToOption(e,t){if(!e)return +const i=this.dropdown_content,s=i.clientHeight,n=i.scrollTop||0,o=e.offsetHeight,r=e.getBoundingClientRect().top-i.getBoundingClientRect().top+n +r+o>s+n?this.scroll(r-s+o,t):r{e.setActiveItemClass(t)})))}inputState(){var e=this +e.control.contains(e.control_input)&&(Q(e.control_input,{placeholder:e.settings.placeholder}),e.activeItems.length>0||!e.isFocused&&e.settings.hidePlaceholder&&e.items.length>0?(e.setTextboxValue(),e.isInputHidden=!0):(e.settings.hidePlaceholder&&e.items.length>0&&Q(e.control_input,{placeholder:""}),e.isInputHidden=!1),e.wrapper.classList.toggle("input-hidden",e.isInputHidden))}inputValue(){return this.control_input.value.trim()}focus(){var e=this +e.isDisabled||e.isReadOnly||(e.ignoreFocus=!0,e.control_input.offsetWidth?e.control_input.focus():e.focus_node.focus(),setTimeout((()=>{e.ignoreFocus=!1,e.onFocus()}),0))}blur(){this.focus_node.blur(),this.onBlur()}getScoreFunction(e){return this.sifter.getScoreFunction(e,this.getSearchOptions())}getSearchOptions(){var e=this.settings,t=e.sortField +return"string"==typeof e.sortField&&(t=[{field:e.sortField}]),{fields:e.searchField,conjunction:e.searchConjunction,sort:t,nesting:e.nesting}}search(e){var t,i,s=this,n=this.getSearchOptions() +if(s.settings.score&&"function"!=typeof(i=s.settings.score.call(s,e)))throw new Error('Tom Select "score" setting must be a function that returns a function') +return e!==s.lastQuery?(s.lastQuery=e,t=s.sifter.search(e,Object.assign(n,{score:i})),s.currentResults=t):t=Object.assign({},s.currentResults),s.settings.hideSelected&&(t.items=t.items.filter((e=>{let t=X(e.id) +return!(t&&-1!==s.items.indexOf(t))}))),t}refreshOptions(e=!0){var t,i,s,n,o,r,l,a,c,d +const u={},p=[] +var h=this,g=h.inputValue() +const f=g===h.lastQuery||""==g&&null==h.lastQuery +var v=h.search(g),m=null,y=h.settings.shouldOpen||!1,O=h.dropdown_content +f&&(m=h.activeOption)&&(c=m.closest("[data-group]")),n=v.items.length,"number"==typeof h.settings.maxOptions&&(n=Math.min(n,h.settings.maxOptions)),n>0&&(y=!0) +const b=(e,t)=>{let i=u[e] +if(void 0!==i){let e=p[i] +if(void 0!==e)return[i,e.fragment]}let s=document.createDocumentFragment() +return i=p.length,p.push({fragment:s,order:t,optgroup:e}),[i,s]} +for(t=0;t0&&(d=d.cloneNode(!0),Q(d,{id:l.$id+"-clone-"+i,"aria-selected":null}),d.classList.add("ts-cloned"),R(d,"active"),h.activeOption&&h.activeOption.dataset.value==n&&c&&c.dataset.group===o.toString()&&(m=d)),a.appendChild(d),""!=o&&(u[o]=s)}}var w +h.settings.lockOptgroupOrder&&p.sort(((e,t)=>e.order-t.order)),l=document.createDocumentFragment(),E(p,(e=>{let t=e.fragment,i=e.optgroup +if(!t||!t.children.length)return +let s=h.optgroups[i] +if(void 0!==s){let e=document.createDocumentFragment(),i=h.render("optgroup_header",s) +le(e,i),le(e,t) +let n=h.render("optgroup",{group:s,options:e}) +le(l,n)}else le(l,t)})),O.innerHTML="",le(O,l),h.settings.highlight&&(w=O.querySelectorAll("span.highlight"),Array.prototype.forEach.call(w,(function(e){var t=e.parentNode +t.replaceChild(e.firstChild,e),t.normalize()})),v.query.length&&v.tokens.length&&E(v.tokens,(e=>{U(O,e.regex)}))) +var _=e=>{let t=h.render(e,{input:g}) +return t&&(y=!0,O.insertBefore(t,O.firstChild)),t} +if(h.loading?_("loading"):h.settings.shouldLoad.call(h,g)?0===v.items.length&&_("no_results"):_("not_loading"),(a=h.canCreate(g))&&(d=_("option_create")),h.hasOptions=v.items.length>0||a,y){if(v.items.length>0){if(m||"single"!==h.settings.mode||null==h.items[0]||(m=h.getOption(h.items[0])),!O.contains(m)){let e=0 +d&&!h.settings.addPrecedence&&(e=1),m=h.selectable()[e]}}else d&&(m=d) +e&&!h.isOpen&&(h.open(),h.scrollToOption(m,"auto")),h.setActiveOption(m)}else h.clearActiveOption(),e&&h.isOpen&&h.close(!1)}selectable(){return this.dropdown_content.querySelectorAll("[data-selectable]")}addOption(e,t=!1){const i=this +if(Array.isArray(e))return i.addOptions(e,t),!1 +const s=X(e[i.settings.valueField]) +return null!==s&&!i.options.hasOwnProperty(s)&&(e.$order=e.$order||++i.order,e.$id=i.inputId+"-opt-"+e.$order,i.options[s]=e,i.lastQuery=null,t&&(i.userOptions[s]=t,i.trigger("option_add",s,e)),s)}addOptions(e,t=!1){E(e,(e=>{this.addOption(e,t)}))}registerOption(e){return this.addOption(e)}registerOptionGroup(e){var t=X(e[this.settings.optgroupValueField]) +return null!==t&&(e.$order=e.$order||++this.order,this.optgroups[t]=e,t)}addOptionGroup(e,t){var i +t[this.settings.optgroupValueField]=e,(i=this.registerOptionGroup(t))&&this.trigger("optgroup_add",i,t)}removeOptionGroup(e){this.optgroups.hasOwnProperty(e)&&(delete this.optgroups[e],this.clearCache(),this.trigger("optgroup_remove",e))}clearOptionGroups(){this.optgroups={},this.clearCache(),this.trigger("optgroup_clear")}updateOption(e,t){const i=this +var s,n +const o=X(e),r=X(t[i.settings.valueField]) +if(null===o)return +const l=i.options[o] +if(null==l)return +if("string"!=typeof r)throw new Error("Value must be set in option data") +const a=i.getOption(o),c=i.getItem(o) +if(t.$order=t.$order||l.$order,delete i.options[o],i.uncacheValue(r),i.options[r]=t,a){if(i.dropdown_content.contains(a)){const e=i._render("option",t) +G(a,e),i.activeOption===a&&i.setActiveOption(e)}a.remove()}c&&(-1!==(n=i.items.indexOf(o))&&i.items.splice(n,1,r),s=i._render("item",t),c.classList.contains("active")&&D(s,"active"),G(c,s)),i.lastQuery=null}removeOption(e,t){const i=this +e=Y(e),i.uncacheValue(e),delete i.userOptions[e],delete i.options[e],i.lastQuery=null,i.trigger("option_remove",e),i.removeItem(e,t)}clearOptions(e){const t=(e||this.clearFilter).bind(this) +this.loadedSearches={},this.userOptions={},this.clearCache() +const i={} +E(this.options,((e,s)=>{t(e,s)&&(i[s]=e)})),this.options=this.sifter.items=i,this.lastQuery=null,this.trigger("option_clear")}clearFilter(e,t){return this.items.indexOf(t)>=0}getOption(e,t=!1){const i=X(e) +if(null===i)return null +const s=this.options[i] +if(null!=s){if(s.$div)return s.$div +if(t)return this._render("option",s)}return null}getAdjacent(e,t,i="option"){var s +if(!e)return null +s="item"==i?this.controlChildren():this.dropdown_content.querySelectorAll("[data-selectable]") +for(let i=0;i0?s[i+1]:s[i-1] +return null}getItem(e){if("object"==typeof e)return e +var t=X(e) +return null!==t?this.control.querySelector(`[data-value="${re(t)}"]`):null}addItems(e,t){var i=this,s=Array.isArray(e)?e:[e] +const n=(s=s.filter((e=>-1===i.items.indexOf(e))))[s.length-1] +s.forEach((e=>{i.isPending=e!==n,i.addItem(e,t)}))}addItem(e,t){te(this,t?[]:["change","dropdown_close"],(()=>{var i,s +const n=this,o=n.settings.mode,r=X(e) +if((!r||-1===n.items.indexOf(r)||("single"===o&&n.close(),"single"!==o&&n.settings.duplicates))&&null!==r&&n.options.hasOwnProperty(r)&&("single"===o&&n.clear(t),"multi"!==o||!n.isFull())){if(i=n._render("item",n.options[r]),n.control.contains(i)&&(i=i.cloneNode(!0)),s=n.isFull(),n.items.splice(n.caretPos,0,r),n.insertAtCaret(i),n.isSetup){if(!n.isPending&&n.settings.hideSelected){let e=n.getOption(r),t=n.getAdjacent(e,1) +t&&n.setActiveOption(t)}n.isPending||n.settings.closeAfterSelect||n.refreshOptions(n.isFocused&&"single"!==o),0!=n.settings.closeAfterSelect&&n.isFull()?n.close():n.isPending||n.positionDropdown(),n.trigger("item_add",r,i),n.isPending||n.updateOriginalInput({silent:t})}(!n.isPending||!s&&n.isFull())&&(n.inputState(),n.refreshState())}}))}removeItem(e=null,t){const i=this +if(!(e=i.getItem(e)))return +var s,n +const o=e.dataset.value +s=K(e),e.remove(),e.classList.contains("active")&&(n=i.activeItems.indexOf(e),i.activeItems.splice(n,1),R(e,"active")),i.items.splice(s,1),i.lastQuery=null,!i.settings.persist&&i.userOptions.hasOwnProperty(o)&&i.removeOption(o,t),s{})){3===arguments.length&&(t=arguments[2]),"function"!=typeof t&&(t=()=>{}) +var i,s=this,n=s.caretPos +if(e=e||s.inputValue(),!s.canCreate(e))return t(),!1 +s.lock() +var o=!1,r=e=>{if(s.unlock(),!e||"object"!=typeof e)return t() +var i=X(e[s.settings.valueField]) +if("string"!=typeof i)return t() +s.setTextboxValue(),s.addOption(e,!0),s.setCaret(n),s.addItem(i),t(e),o=!0} +return i="function"==typeof s.settings.create?s.settings.create.call(this,e,r):{[s.settings.labelField]:e,[s.settings.valueField]:e},o||r(i),!0}refreshItems(){var e=this +e.lastQuery=null,e.isSetup&&e.addItems(e.items),e.updateOriginalInput(),e.refreshState()}refreshState(){const e=this +e.refreshValidityState() +const t=e.isFull(),i=e.isLocked +e.wrapper.classList.toggle("rtl",e.rtl) +const s=e.wrapper.classList +var n +s.toggle("focus",e.isFocused),s.toggle("disabled",e.isDisabled),s.toggle("readonly",e.isReadOnly),s.toggle("required",e.isRequired),s.toggle("invalid",!e.isValid),s.toggle("locked",i),s.toggle("full",t),s.toggle("input-active",e.isFocused&&!e.isInputHidden),s.toggle("dropdown-active",e.isOpen),s.toggle("has-options",(n=e.options,0===Object.keys(n).length)),s.toggle("has-items",e.items.length>0)}refreshValidityState(){var e=this +e.input.validity&&(e.isValid=e.input.validity.valid,e.isInvalid=!e.isValid)}isFull(){return null!==this.settings.maxItems&&this.items.length>=this.settings.maxItems}updateOriginalInput(e={}){const t=this +var i,s +const n=t.input.querySelector('option[value=""]') +if(t.is_select_tag){const o=[],r=t.input.querySelectorAll("option:checked").length +function l(e,i,s){return e||(e=j('")),e!=n&&t.input.append(e),o.push(e),(e!=n||r>0)&&(e.selected=!0),e}t.input.querySelectorAll("option:checked").forEach((e=>{e.selected=!1})),0==t.items.length&&"single"==t.settings.mode?l(n,"",""):t.items.forEach((e=>{if(i=t.options[e],s=i[t.settings.labelField]||"",o.includes(i.$option)){l(t.input.querySelector(`option[value="${re(e)}"]:not(:checked)`),e,s)}else i.$option=l(i.$option,e,s)}))}else t.input.value=t.getValue() +t.isSetup&&(e.silent||t.trigger("change",t.getValue()))}open(){var e=this +e.isLocked||e.isOpen||"multi"===e.settings.mode&&e.isFull()||(e.isOpen=!0,Q(e.focus_node,{"aria-expanded":"true"}),e.refreshState(),q(e.dropdown,{visibility:"hidden",display:"block"}),e.positionDropdown(),q(e.dropdown,{visibility:"visible",display:"block"}),e.focus(),e.trigger("dropdown_open",e.dropdown))}close(e=!0){var t=this,i=t.isOpen +e&&(t.setTextboxValue(),"single"===t.settings.mode&&t.items.length&&t.inputState()),t.isOpen=!1,Q(t.focus_node,{"aria-expanded":"false"}),q(t.dropdown,{display:"none"}),t.settings.hideSelected&&t.clearActiveOption(),t.refreshState(),i&&t.trigger("dropdown_close",t.dropdown)}positionDropdown(){if("body"===this.settings.dropdownParent){var e=this.control,t=e.getBoundingClientRect(),i=e.offsetHeight+t.top+window.scrollY,s=t.left+window.scrollX +q(this.dropdown,{width:t.width+"px",top:i+"px",left:s+"px"})}}clear(e){var t=this +if(t.items.length){var i=t.controlChildren() +E(i,(e=>{t.removeItem(e,!0)})),t.inputState(),e||t.updateOriginalInput(),t.trigger("clear")}}insertAtCaret(e){const t=this,i=t.caretPos,s=t.control +s.insertBefore(e,s.children[i]||null),t.setCaret(i+1)}deleteSelection(e){var t,i,s,n,o,r=this +t=e&&8===e.keyCode?-1:1,i={start:(o=r.control_input).selectionStart||0,length:(o.selectionEnd||0)-(o.selectionStart||0)} +const l=[] +if(r.activeItems.length)n=B(r.activeItems,t),s=K(n),t>0&&s++,E(r.activeItems,(e=>l.push(e))) +else if((r.isFocused||"single"===r.settings.mode)&&r.items.length){const e=r.controlChildren() +let s +t<0&&0===i.start&&0===i.length?s=e[r.caretPos-1]:t>0&&i.start===r.inputValue().length&&(s=e[r.caretPos]),void 0!==s&&l.push(s)}if(!r.shouldDelete(l,e))return!1 +for(ie(e,!0),void 0!==s&&r.setCaret(s);l.length;)r.removeItem(l.pop()) +return r.inputState(),r.positionDropdown(),r.refreshOptions(!1),!0}shouldDelete(e,t){const i=e.map((e=>e.dataset.value)) +return!(!i.length||"function"==typeof this.settings.onDelete&&!1===this.settings.onDelete(i,t))}advanceSelection(e,t){var i,s,n=this +n.rtl&&(e*=-1),n.inputValue().length||(ne(J,t)||ne("shiftKey",t)?(s=(i=n.getLastActive(e))?i.classList.contains("active")?n.getAdjacent(i,e,"item"):i:e>0?n.control_input.nextElementSibling:n.control_input.previousElementSibling)&&(s.classList.contains("active")&&n.removeActiveItem(i),n.setActiveItemClass(s)):n.moveCaret(e))}moveCaret(e){}getLastActive(e){let t=this.control.querySelector(".last-active") +if(t)return t +var i=this.control.querySelectorAll(".active") +return i?B(i,e):void 0}setCaret(e){this.caretPos=this.items.length}controlChildren(){return Array.from(this.control.querySelectorAll("[data-ts-item]"))}lock(){this.setLocked(!0)}unlock(){this.setLocked(!1)}setLocked(e=this.isReadOnly||this.isDisabled){this.isLocked=e,this.refreshState()}disable(){this.setDisabled(!0),this.close()}enable(){this.setDisabled(!1)}setDisabled(e){this.focus_node.tabIndex=e?-1:this.tabIndex,this.isDisabled=e,this.input.disabled=e,this.control_input.disabled=e,this.setLocked()}setReadOnly(e){this.isReadOnly=e,this.input.readOnly=e,this.control_input.readOnly=e,this.setLocked()}destroy(){var e=this,t=e.revertSettings +e.trigger("destroy"),e.off(),e.wrapper.remove(),e.dropdown.remove(),e.input.innerHTML=t.innerHTML,e.input.tabIndex=t.tabIndex,R(e.input,"tomselected","ts-hidden-accessible"),e._destroy(),delete e.input.tomselect}render(e,t){var i,s +const n=this +if("function"!=typeof this.settings.render[e])return null +if(!(s=n.settings.render[e].call(this,t,Z)))return null +if(s=j(s),"option"===e||"option_create"===e?t[n.settings.disabledField]?Q(s,{"aria-disabled":"true"}):Q(s,{"data-selectable":""}):"optgroup"===e&&(i=t.group[n.settings.optgroupValueField],Q(s,{"data-group":i}),t.group[n.settings.disabledField]&&Q(s,{"data-disabled":""})),"option"===e||"item"===e){const i=Y(t[n.settings.valueField]) +Q(s,{"data-value":i}),"item"===e?(D(s,n.settings.itemClass),Q(s,{"data-ts-item":""})):(D(s,n.settings.optionClass),Q(s,{role:"option",id:t.$id}),t.$div=s,n.options[i]=t)}return s}_render(e,t){const i=this.render(e,t) +if(null==i)throw"HTMLElement expected" +return i}clearCache(){E(this.options,(e=>{e.$div&&(e.$div.remove(),delete e.$div)}))}uncacheValue(e){const t=this.getOption(e) +t&&t.remove()}canCreate(e){return this.settings.create&&e.length>0&&this.settings.createFilter.call(this,e)}hook(e,t,i){var s=this,n=s[t] +s[t]=function(){var t,o +return"after"===e&&(t=n.apply(s,arguments)),o=i.apply(s,arguments),"instead"===e?o:("before"===e&&(t=n.apply(s,arguments)),t)}}}return de.define("change_listener",(function(){se(this.input,"change",(()=>{this.sync()}))})),de.define("checkbox_options",(function(e){var t=this,i=t.onOptionSelect +t.settings.hideSelected=!1 +const s=Object.assign({className:"tomselect-checkbox",checkedClassNames:void 0,uncheckedClassNames:void 0},e) +var n=function(e,t){t?(e.checked=!0,s.uncheckedClassNames&&e.classList.remove(...s.uncheckedClassNames),s.checkedClassNames&&e.classList.add(...s.checkedClassNames)):(e.checked=!1,s.checkedClassNames&&e.classList.remove(...s.checkedClassNames),s.uncheckedClassNames&&e.classList.add(...s.uncheckedClassNames))},o=function(e){setTimeout((()=>{var t=e.querySelector("input."+s.className) +t instanceof HTMLInputElement&&n(t,e.classList.contains("selected"))}),1)} +t.hook("after","setupTemplates",(()=>{var e=t.settings.render.option +t.settings.render.option=(i,o)=>{var r=j(e.call(t,i,o)),l=document.createElement("input") +s.className&&l.classList.add(s.className),l.addEventListener("click",(function(e){ie(e)})),l.type="checkbox" +const a=X(i[t.settings.valueField]) +return n(l,!!(a&&t.items.indexOf(a)>-1)),r.prepend(l),r}})),t.on("item_remove",(e=>{var i=t.getOption(e) +i&&(i.classList.remove("selected"),o(i))})),t.on("item_add",(e=>{var i=t.getOption(e) +i&&o(i)})),t.hook("instead","onOptionSelect",((e,s)=>{if(s.classList.contains("selected"))return s.classList.remove("selected"),t.removeItem(s.dataset.value),t.refreshOptions(),void ie(e,!0) +i.call(t,e,s),o(s)}))})),de.define("clear_button",(function(e){const t=this,i=Object.assign({className:"clear-button",title:"Clear All",html:e=>`
`},e) +t.on("initialize",(()=>{var e=j(i.html(i)) +e.addEventListener("click",(e=>{t.isLocked||(t.clear(),"single"===t.settings.mode&&t.settings.allowEmptyOption&&t.addItem(""),e.preventDefault(),e.stopPropagation())})),t.control.appendChild(e)}))})),de.define("drag_drop",(function(){var e=this +if("multi"!==e.settings.mode)return +var t=e.lock,i=e.unlock +let s,n=!0 +e.hook("after","setupTemplates",(()=>{var t=e.settings.render.item +e.settings.render.item=(i,o)=>{const r=j(t.call(e,i,o)) +Q(r,{draggable:"true"}) +const l=e=>{e.preventDefault(),r.classList.add("ts-drag-over"),a(r,s)},a=(e,t)=>{var i,s,n +void 0!==t&&(((e,t)=>{do{var i +if(e==(t=null==(i=t)?void 0:i.previousElementSibling))return!0}while(t&&t.previousElementSibling) +return!1})(t,r)?(s=t,null==(n=(i=e).parentNode)||n.insertBefore(s,i.nextSibling)):((e,t)=>{var i +null==(i=e.parentNode)||i.insertBefore(t,e)})(e,t))} +return se(r,"mousedown",(e=>{n||ie(e),e.stopPropagation()})),se(r,"dragstart",(e=>{s=r,setTimeout((()=>{r.classList.add("ts-dragging")}),0)})),se(r,"dragenter",l),se(r,"dragover",l),se(r,"dragleave",(()=>{r.classList.remove("ts-drag-over")})),se(r,"dragend",(()=>{var t +document.querySelectorAll(".ts-drag-over").forEach((e=>e.classList.remove("ts-drag-over"))),null==(t=s)||t.classList.remove("ts-dragging"),s=void 0 +var i=[] +e.control.querySelectorAll("[data-value]").forEach((e=>{if(e.dataset.value){let t=e.dataset.value +t&&i.push(t)}})),e.setValue(i)})),r}})),e.hook("instead","lock",(()=>(n=!1,t.call(e)))),e.hook("instead","unlock",(()=>(n=!0,i.call(e))))})),de.define("dropdown_header",(function(e){const t=this,i=Object.assign({title:"Untitled",headerClass:"dropdown-header",titleRowClass:"dropdown-header-title",labelClass:"dropdown-header-label",closeClass:"dropdown-header-close",html:e=>'
'},e) +t.on("initialize",(()=>{var e=j(i.html(i)),s=e.querySelector("."+i.closeClass) +s&&s.addEventListener("click",(e=>{ie(e,!0),t.close()})),t.dropdown.insertBefore(e,t.dropdown.firstChild)}))})),de.define("caret_position",(function(){var e=this +e.hook("instead","setCaret",(t=>{"single"!==e.settings.mode&&e.control.contains(e.control_input)?(t=Math.max(0,Math.min(e.items.length,t)))==e.caretPos||e.isPending||e.controlChildren().forEach(((i,s)=>{s{if(!e.isFocused)return +const i=e.getLastActive(t) +if(i){const s=K(i) +e.setCaret(t>0?s+1:s),e.setActiveItem(),R(i,"last-active")}else e.setCaret(e.caretPos+t)}))})),de.define("dropdown_input",(function(){const e=this +e.settings.shouldOpen=!0,e.hook("before","setup",(()=>{e.focus_node=e.control,D(e.control_input,"dropdown-input") +const t=j(' {% if appreciation.custom_message %}
@@ -199,16 +238,6 @@

{{ appreciation.custom_message }}

{% endif %} - {% if appreciation.cc_list %} -
-

{% trans "CC" %}

-
- {% for email in appreciation.cc_list %} - {{ email }} - {% endfor %} -
-
- {% endif %} {% if appreciation.acknowledged_at %}
@@ -219,6 +248,20 @@ {% endif %} {% endif %} + +
+

+ + {% trans "Appreciation Letter" %} +

+

{% trans "Generate a formal letter of appreciation as a PDF." %}

+ + + {% trans "Download Letter" %} + +
{% if appreciation.ai_analysis %} @@ -273,74 +316,134 @@
+
- {% if can_activate %} -
-

- {% trans "Activate Appreciation" %} -

-
- {% csrf_token %} -

{% trans "Activate this appreciation to make it ready for routing to a department." %}

- -
-
- {% endif %} - - {% if can_send %} -
+

- {% trans "Send to Department" %} + {% trans "Details" %}

-

{% trans "Route this appreciation to a department or a specific person for acknowledgment." %}

- +
+
+

{% trans "Status" %}

+

{{ appreciation.get_status_display }}

+
+ {% if appreciation.category %} +
+

{% trans "Category" %}

+

{{ appreciation.category.get_localized_name }}

+
+ {% endif %} + {% if appreciation.activated_at %} +
+

{% trans "Activated" %}

+

{{ appreciation.activated_at|date:"Y-m-d H:i" }}

+
+ {% endif %} + {% if appreciation.department %} +
+

{% trans "Department" %}

+

{{ appreciation.department.get_localized_name }}

+
+ {% endif %} + {% if appreciation.recipient %} +
+

{% trans "Recipient" %}

+

{{ appreciation.get_recipient_name }}

+
+ {% endif %} + {% if appreciation.sent_at %} +
+

{% trans "Sent At" %}

+

{{ appreciation.sent_at|date:"Y-m-d H:i" }}

+
+ {% endif %} + {% if appreciation.acknowledged_at %} +
+
+ +

{% trans "Acknowledged" %} {{ appreciation.acknowledged_at|date:"Y-m-d H:i" }}

+
+
+ {% endif %} +
- {% endif %}
- - diff --git a/templates/organizations/department_detail.html b/templates/organizations/department_detail.html index 8d39441..cf8bb5a 100644 --- a/templates/organizations/department_detail.html +++ b/templates/organizations/department_detail.html @@ -212,12 +212,11 @@ {% trans "Respond" %} {% elif action.type == 'inquiry_response' %} - + + + {% trans "Handle" %} + {% else %} @@ -470,7 +469,7 @@ {% trans "Complaints" %} ({{ stats.total_complaints }}) + +
+ + + @@ -833,15 +864,23 @@ + + {% empty %} - + {% endfor %}
{% trans "Reference" %} {% trans "Subject" %} {% trans "Contact" %}{% trans "Department" %}{% trans "Outgoing Dept" %} {% trans "Assigned To" %} {% trans "Status" %} {% trans "Created" %}{{ i.reference_number }} {{ i.subject }} {{ i.contact_name|default:"-" }}{{ i.department.name|default:"-" }}{{ i.outgoing_department.name|default:"-" }} {{ i.assigned_to.get_full_name|default:"-" }} {{ i.get_status_display }} + {% if i.contact_status == 'contacted_no_response' %} + {% trans "No Response" %} + {% elif i.contact_status == 'contacted' %} + {% trans "Contacted" %} + {% endif %} {{ i.created_at|date:"Y-m-d" }} @@ -849,16 +888,16 @@ {% trans "View" %} - {% if can_respond and i.status in 'open,in_progress' %} - - {% trans "Respond" %} + {% if can_respond and i.handling_department_id == department.pk and i.status in 'open,in_progress' %} + + {% trans "Handle" %} {% endif %}
{% trans "No inquiries for this department" %}
{% trans "No inquiries for this department" %}
@@ -1434,6 +1473,7 @@ {% trans "Start Date" as t_start_date %} {% trans "Target Completion" as t_target_date %} {% trans "Open Project" as t_open_project %} +{% trans "Department Response" as t_dept_response %} var recordModalLabels = { complaint: '{{ t_complaint|escapejs }}', @@ -1478,6 +1518,7 @@ var recordModalLabels = { start_date: '{{ t_start_date|escapejs }}', target_date: '{{ t_target_date|escapejs }}', open_project: '{{ t_open_project|escapejs }}', + dept_response: '{{ t_dept_response|escapejs }}', }; var recordApiUrls = { @@ -1562,6 +1603,9 @@ function renderRecordModal(type, d) { if (type === 'inquiry') { html += infoCard(recordModalLabels.contact, [d.contact_name, d.contact_phone, d.contact_email].filter(function(v) { return v && v !== '-'; }).join(' | ')); if (d.category && d.category !== '-') html += infoCard(recordModalLabels.category, d.category); + if (d.priority_display) html += infoCard(recordModalLabels.priority, d.priority_display); + if (d.contact_status_display) html += infoCard(recordModalLabels.contact, d.contact_status_display); + if (d.outgoing_department) html += infoCard(recordModalLabels.department + ' (Outgoing)', d.outgoing_department); } if (type === 'observation') { html += infoCard(recordModalLabels.reporter, d.reporter || '-'); @@ -1624,6 +1668,35 @@ function renderRecordModal(type, d) { html += '
'; } + if (type === 'inquiry' && (d.department_response_en || d.department_response_ar)) { + html += '
'; + html += '

' + recordModalLabels.dept_response; + if (d.department_responded_at) html += '' + escHtml(d.department_responded_at) + ''; + html += '

'; + if (d.department_response_en) html += '

' + escHtml(d.department_response_en) + '

'; + if (d.department_response_ar) html += '

' + escHtml(d.department_response_ar) + '

'; + html += '
'; + } + + if (type === 'inquiry' && d.response) { + html += '
'; + html += '

{% trans "Response to Patient" | escapejs %}'; + if (d.responded_at) html += '' + escHtml(d.responded_at) + ''; + html += '

'; + if (d.responded_by) html += '

{% trans "By" | escapejs %} ' + escHtml(d.responded_by) + '

'; + html += '

' + escHtml(d.response) + '

'; + html += '
'; + } + + if (type === 'inquiry' && d.resolved_at) { + html += '
'; + html += ''; + html += '{% trans "Resolved" | escapejs %} ' + escHtml(d.resolved_at); + if (d.resolved_by) html += ' · ' + escHtml(d.resolved_by); + html += ''; + html += '
'; + } + if (type === 'appreciation') { if (d.description_ar) { html += '
'; diff --git a/templates/organizations/department_inquiries.html b/templates/organizations/department_inquiries.html index d2e07a3..d8426b8 100644 --- a/templates/organizations/department_inquiries.html +++ b/templates/organizations/department_inquiries.html @@ -20,6 +20,30 @@
+ +
+ +
@@ -34,6 +58,7 @@ + + + + + {% if inquiry.status == 'in_progress' %} + +
+ {% csrf_token %} + + + +
+ + +
+ {% csrf_token %} + + + +
+ + +
+ {% csrf_token %} + + + +
+ + + + {% endif %} +
+ {% endif %} + {% if inquiry.subject %}

{{ inquiry.subject }}

{% endif %} @@ -111,6 +168,16 @@

{% trans "Created" %}

{{ inquiry.created_at|date:"Y-m-d H:i" }}

+
+

{% trans "Contact Status" %}

+

+ {{ inquiry.get_contact_status_display|default:"—" }} + {% if inquiry.contact_status_at %}{{ inquiry.contact_status_at|date:"Y-m-d H:i" }}{% endif %} +

+
@@ -135,5 +202,5 @@ -{% include "components/department_response_modal.html" %} +{% include "components/send_to_modal.html" %} {% endblock %} diff --git a/templates/organizations/department_observation_detail.html b/templates/organizations/department_observation_detail.html index 109e962..fe1c1da 100644 --- a/templates/organizations/department_observation_detail.html +++ b/templates/organizations/department_observation_detail.html @@ -41,7 +41,7 @@
{% if can_respond and not observation.department_responded_at %} - diff --git a/templates/presentations/template_detail.html b/templates/presentations/template_detail.html index d297c0a..8da389d 100644 --- a/templates/presentations/template_detail.html +++ b/templates/presentations/template_detail.html @@ -4,7 +4,6 @@ {% block title %}{{ template.name }} — PX360{% endblock %} {% block extra_css %} -