From fc4d6228f8a2250d7b604dab377fcd3ac316ace0 Mon Sep 17 00:00:00 2001 From: Nath Date: Fri, 25 Sep 2026 11:34:14 +0100 Subject: [PATCH] feat: sync arabic translation --- app/utils/terms/ar.ts | 6 +- .../1040-maps/src/i18n/locales/ar/legend.json | 2 +- i18n/locales/ar/common.json | 64 +++++++++---------- public/js/doxa-research-map.js | 2 +- public/js/doxa-simple-map.js | 2 +- public/js/pplr-data-maps.iife.js | 2 +- 6 files changed, 39 insertions(+), 39 deletions(-) diff --git a/app/utils/terms/ar.ts b/app/utils/terms/ar.ts index 69e70baa..d274b378 100644 --- a/app/utils/terms/ar.ts +++ b/app/utils/terms/ar.ts @@ -71,7 +71,7 @@ export const ar: TermsContent = { 'نشاط مستمر ومُقيم وعبر الثقافات لمشاركة المسيح وتلمذة الناس، يهدف إلى كنائس قادرة على الاستمرار ذاتيًا، ويجري بطرق ملائمة ثقافيًا وذات صلة محلية.', alternatives: 'منخرطة إرساليًا · انخراط إرسالي', rationale: - 'مصطلح دقيق: مجرد «المشاركة» أو «التواصل» ليس انخراطًا. نستعمل «الانخراط» للاسم، و«مَخْدُومَة» لوصف المجموعة، فتقابل «غير مَخْدُومَة» مباشرة. لاحظ المراجع أن السياق قد يحتمل صيغًا أخرى، وهي المذكورة بين البدائل.' + 'مصطلح دقيق: مجرد «المشاركة» أو «التواصل» ليس انخراطًا. نستعمل «الانخراط» للاسم، و«مَخْدُومَة» لوصف المجموعة، فتقابل «غير مَخْدُومَة» مباشرة. لاحظ المراجع أن السياق قد يحتمل صيغًا أخرى، وهي المذكورة بين البدائل. يكتب المسرد «مُخْدُومَة» بضمّ الميم، ونكتبها «مَخْدُومَة» بفتحها لأنها اسم مفعول من «خَدَمَ»، كما في «غير مَخْدُومَة».' }, { term: 'حركة غرس الكنائس (CPM)', @@ -101,7 +101,7 @@ export const ar: TermsContent = { term: 'رب الحصاد', english: 'Lord of the harvest', definition: - 'لقب كتابي ليسوع (متى 9: 38)، نستعمله في الدعوة إلى الصلاة لكي يرسل عاملين إلى الشعوب غير المَخْدُومَة.', + 'لقب كتابي ليسوع (متى 9: 38)، نستعمله في الدعوة إلى الصلاة لكي يرسل عاملين إلى المجموعات الشعبية غير المَخْدُومَة.', rationale: 'متى 9: 38 في ترجمة فاندايك: «فَاطْلُبُوا مِنْ رَبِّ الْحَصَادِ أَنْ يُرْسِلَ فَعَلَةً إِلَى حَصَادِهِ». المصطلح يطابق الترجمة الكتابية، لكنه ما زال مسودة في المسرد ولم يؤكده مراجع بعد.' }, @@ -133,7 +133,7 @@ export const ar: TermsContent = { term: 'تبنّي مجموعة شعبية', english: 'adopt (a people group)', definition: - 'التزام طويل الأمد تقوده الكنيسة بالصلاة والعطاء والإرسال لكي يبدأ وصول الإنجيل إلى مجموعة شعبية غير مَخْدُومَة بعينها — رعاية إرسالية لا تبنٍّ بالمعنى القانوني الأسري.', + 'التزام طويل الأمد تقوده الكنيسة بالصلاة والعطاء والإرسال لكي يبدأ الوصول للانجيل لدى مجموعة شعبية غير مَخْدُومَة بعينها — رعاية إرسالية لا تبنٍّ بالمعنى القانوني الأسري.', alternatives: 'انتماء', rationale: 'رأى المراجع أن «انتماء» سلبية أكثر من اللازم، وأن «التبنّي» هو المصطلح الإرسالي المعتاد بالعربية، إذ ينقل تحمّل المسؤولية و«امتلاك» القضية. نستعمل فعل الأمر «تَبنَّ» للدعوة إلى الفعل، والمصدر «تبنّي» للمفهوم.' diff --git a/embeddables/micro-frontends/1040-maps/src/i18n/locales/ar/legend.json b/embeddables/micro-frontends/1040-maps/src/i18n/locales/ar/legend.json index 2857564f..d8f5023c 100644 --- a/embeddables/micro-frontends/1040-maps/src/i18n/locales/ar/legend.json +++ b/embeddables/micro-frontends/1040-maps/src/i18n/locales/ar/legend.json @@ -20,7 +20,7 @@ }, "engagement": { "needsEngagement": "غير مَخْدُومَة", - "hasEngagement": "مُخْدُومَة" + "hasEngagement": "مَخْدُومَة" }, "adoption": { "needsAdoption": "تحتاج إلى تبنٍّ", diff --git a/i18n/locales/ar/common.json b/i18n/locales/ar/common.json index a376827f..4379b7d1 100644 --- a/i18n/locales/ar/common.json +++ b/i18n/locales/ar/common.json @@ -26,12 +26,12 @@ "We'd love to hear from you — tell us what you love, share a suggestion, or report a problem.": "يسعدنا أن نسمع منك: أخبرنا بما يعجبك، أو شارك اقتراحًا، أو أبلغ عن مشكلة.", "What is your message about?": "عمّ تدور رسالتك؟", "Your name (optional)": "اسمك (اختياري)", - "people groups engaged": "مجموعات شعبية مُخْدُومَة", + "people groups engaged": "مجموعات شعبية مَخْدُومَة", "Regions": "المناطق", "See %region% dashboard": "عرض لوحة معلومات %region%", "There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.": "توجد %count% مجموعة شعبية في %country%. تحقق من الخريطة لمعرفة المجموعات الشعبية الواقعة على حدود هذه الدولة أيضًا.", - "A church-led commitment to pray, give, and send so that gospel access begins": "التزام تقوده الكنيسة بالصلاة والعطاء والإرسال حتى يبدأ الوصول للإنجيل", - "A clean, elegant theme for DOXA Life - Engaging every people group by 2033": "تصميم أنيق وبسيط لمنصة حياة دوكسا - انخراط كل مجموعة شعبية بحلول عام 2033", + "A church-led commitment to pray, give, and send so that gospel access begins": "التزام تقوده الكنيسة بالصلاة والعطاء والإرسال حتى يبدأ الوصول للانجيل", + "A clean, elegant theme for DOXA Life - Engaging every people group by 2033": "تصميم أنيق وبسيط لمنصة DOXA Life - انخراط كل مجموعة شعبية بحلول عام 2033", "A simple path to faithful obedience": "الطريق البسيط للطاعة الأمينة", "About": "عن دوكسا", "Actively help surface and support potential goers, encouraging those God may be calling to cross cultures and serve this people group directly.": "ساعد في دعم وتشجيع من يدعوهم الله لعبور الثقافات وخدمة هذه المجموعة الشعبية مباشرة.", @@ -47,7 +47,7 @@ "Adoption Progress": "تقدُّم التبنّي", "Adoption Resources": "موارد التبنّي", "Adoption Status": "حالة التبنّي", - "Adoption invites the local church into meaningful participation - praying, giving, and sending – so that a people group moves from unengaged to engaged, and ultimately becomes a worshipping community for Jesus.": "التبنّي يدعو الكنيسة المحلية إلى مشاركة حقيقية - بالصلاة والعطاء والإرسال - حتى تنتقل المجموعة الشعبية من غير مَخْدُومَة إلى مُخْدُومَة، وتصير في النهاية جماعة تعبد يسوع.", + "Adoption invites the local church into meaningful participation - praying, giving, and sending – so that a people group moves from unengaged to engaged, and ultimately becomes a worshipping community for Jesus.": "التبنّي يدعو الكنيسة المحلية إلى مشاركة حقيقية - بالصلاة والعطاء والإرسال - حتى تنتقل المجموعة الشعبية من غير مَخْدُومَة إلى مَخْدُومَة، وتصير في النهاية جماعة تعبد يسوع.", "Adoption is a much bigger commitment than signing up to pray. If you only wish to pray, click the button below. Please remember to also sign up to pray after you fill out the adoption form.": "التبنّي التزام أكبر بكثير من التسجيل للصلاة. إذا كنت ترغب فقط في الصلاة، انقر على الزر أدناه. يرجى أن تتذكر أيضًا التسجيل للصلاة بعد تعبئة استمارة التبنّي.", "Adoption mobilizes 100+ daily intercessors whose prayer prepares the soil, breaks spiritual barriers, and supports workers who go. Every gospel movement begins with prayer.": "التبنّي يحشد أكثر من 100 شفيع يومي، تهيّئ صلاتهم التربة وتكسر الحواجز الروحية وتدعم العاملين الذاهبين. كل حركة إنجيلية تبدأ بالصلاة.", "All rights reserved.": "جميع الحقوق محفوظة.", @@ -61,7 +61,7 @@ "Choose": "اختر", "Choose a people group": "اختر مجموعة شعبية", "Choose an unengaged people group you will commit to pray for daily.": "اختر مجموعة شعبية غير مَخْدُومَة تلتزم بالصلاة من أجلها كل يوم.", - "Church planting movements among every unreached people on earth": "حركات غرس الكنائس بين كل شعب غير مبلَّغ على وجه الأرض", + "Church planting movements among every unreached people on earth": "حركات غرس الكنائس بين كل مجموعة شعبية غير مبلَّغة على وجه الأرض", "Church/Group Name": "اسم الكنيسة/المجموعة", "Churches and networks take ownership – praying, giving, and preparing the way for gospel workers.": "تتولى الكنائس والشبكات المسؤولية من خلال الصلاة والعطاء وتمهيد الطريق للعاملين في الإنجيل.", "Churches become active partners in God's mission": "تصير الكنائس شركاء فاعلين في رسالة الله", @@ -80,7 +80,7 @@ "Cross-cultural workers present": "وجود عاملين عبر الثقافات", "Current Status": "الوضع الحالي", "DOXA Campaign Talking Points": "محاور الحديث لحملة دوكسا", - "DOXA Life": "حياة المجد", + "DOXA Life": "DOXA Life", "DOXA Playbook": "دليل دوكسا", "DOXA Playbook Slides": "عرض شرائح دليل دوكسا", "DOXA Prayer Card Bundles per language": "حزم بطاقات صلاة دوكسا لكل لغة", @@ -91,7 +91,7 @@ "Disciple & church multiplication": "تضاعف التلاميذ والكنائس", "Discussion Guide": "دليل النقاش", "Don't see the email? Check your spam folder.": "إذا لم يصلك البريد الإلكتروني، فتحقق من الرسائل غير المرغوب فيها.", - "Done": "أنجز", + "Done": "تم", "Download": "التحميل", "Doxa Endowment Investment Policy Statement": "بيان سياسة الاستثمار في صندوق دوكسا", "Doxa Page": "صفحة دوكسا", @@ -99,8 +99,8 @@ "Email Templates": "نماذج البريد الإلكتروني", "Engage": "انخرط", "Engage every people by 2033": "انخراط كل الشعوب بحلول عام 2033", - "Engaged": "مُخْدُومَة", - "Engaged!": "مُخْدُومَة!", + "Engaged": "مَخْدُومَة", + "Engaged!": "مَخْدُومَة!", "Engagement Status": "حالة الانخراط", "Engagement starts with prayer": "الانخراط يبدأ بالصلاة", "Enter Church/Group Name": "أدخل اسم الكنيسة/المجموعة", @@ -109,21 +109,21 @@ "Enter your name": "الرجاء إدخال الاسم", "Every movement of the gospel begins with intercession. Cover an unengaged people group in daily prayer and help prepare the way.": "كل حركة إنجيلية تبدأ بالصلاة الشفاعية. غطِّ مجموعة شعبية غير مَخْدُومَة بالصلاة اليومية وساعد في تمهيد الطريق.", "Every unengaged people group adopted by a church committed to prayer, giving, and sending": "كل مجموعة شعبية غير مَخْدُومَة تتبنّاها كنيسة ملتزمة بالصلاة والعطاء والإرسال", - "Every unengaged people on earth engaged by 2033": "كل شعب غير مَخْدُوم على وجه الأرض يصير مُخْدُومًا بحلول عام 2033", + "Every unengaged people on earth engaged by 2033": "كل مجموعة شعبية غير مَخْدُومَة على وجه الأرض تصير مَخْدُومَة بحلول عام 2033", "Exact Search": "بحث دقيق", "Example: Pastor, Missions Pastor, Elder, Volunteer Leader etc.": "مثال: راعي الكنيسة، راعي الإرسالية، شيخ الكنيسة، قائد المتطوعين، إلخ.", "Find a UUPG": "ابحث عن UUPG", "First Name": "الاسم الشخصي", "Frontier People": "شعوب المناطق البعيدة", - "Fruitful engagement among frontier peoples and the under-engaged": "خدمة مُثمرة بين شعوب المناطق البعيدة والمجموعات الشعبية التي بها عمل روحي ضعيف", + "Fruitful engagement among frontier peoples and the under-engaged": "انخراط مُثمر بين شعوب المناطق البعيدة والمجموعات الشعبية التي بها عمل روحي ضعيف", "Full Profile": "الملف الكامل", "General Resources": "الموارد العامة", "Get Started": "ابدأ الآن", "Give": "أعطِ", - "Give to support gospel work among unreached peoples": "تبرّع لدعم العمل الإنجيلي بين الشعوب غير المبلَّغة", - "Global Partnership for the Unreached": "الشراكة العالمية من أجل الشعوب غير المبلَّغة", + "Give to support gospel work among unreached peoples": "تبرّع لدعم العمل الإنجيلي بين المجموعات الشعبية غير المبلَّغة", + "Global Partnership for the Unreached": "الشراكة العالمية من أجل المجموعات الشعبية غير المبلَّغة", "God raises up men and women to go, serve, and proclaim Christ among the nations.": "الله يقيم رجالًا ونساءً ليذهبوا ويخدموا ويعلنوا المسيح بين الأمم.", - "Gospel Ambition Team": "فريق الطموح الإنجيلي", + "Gospel Ambition Team": "فريق Gospel Ambition", "Gospel Recordings": "تسجيلات الإنجيل", "Graphics, QR code and slides for sharing with your congregation": "رسومات، ورمز الاستجابة السريعة (QR)، وشرائح عرض للمشاركة مع جماعتك", "Has prayer coverage": "لديها تغطية بالصلاة", @@ -155,13 +155,13 @@ "Load More": "تحميل المزيد", "Loading results...": "النتائج قيد التحميل...", "Location of Church/Group": "موقع الكنيسة/المجموعة", - "Many unengaged people groups have no churches, no missionaries, and often no believers, meaning little to no consistent prayer is being offered on their behalf.": "تفتقر كثير من المجموعات الشعبية غير المَخْدُومَة إلى الكنائس، ولا يوجد فيها مرسَلون، وغالبًا لا يوجد مؤمنون، مما يعني أن الصلاة نيابة عنهم شبه معدومة أو محدودة للغاية.", + "Many unengaged people groups have no churches, no missionaries, and often no believers, meaning little to no consistent prayer is being offered on their behalf.": "تفتقر كثير من المجموعات الشعبية غير المَخْدُومَة إلى الكنائس، ولا يوجد فيها مرسَلون، وغالبًا لا يوجد مؤمنون، مما يعني أن الصلاة نيابة عنها شبه معدومة أو محدودة للغاية.", "Message": "الرسالة", "Mobilization of 20,000+ DOXA partnership missionaries": "حشد أكثر من 20,000 من مرسَلي شراكة DOXA", "Mobilize": "حَشِّد", "Mobilize 100+ people praying daily for each DOXA people group": "حشد أكثر من 100 شخص للصلاة يوميًا من أجل كل مجموعة شعبية من مجموعات دوكسا", - "Mobilize others in your church to join in prayer": "احشد الآخرين في كنيستك للمشاركة في الصلاة", - "Mobilize toward the goal of at least 100 prayer partners to cover the people group in daily prayer.": "احشد نحو هدف الحصول على ما لا يقل عن 100 شريك صلاة لتغطية المجموعة الشعبية بالصلاة اليومية.", + "Mobilize others in your church to join in prayer": "حَشِّد الآخرين في كنيستك للمشاركة في الصلاة", + "Mobilize toward the goal of at least 100 prayer partners to cover the people group in daily prayer.": "حَشِّد نحو هدف الحصول على ما لا يقل عن 100 شريك صلاة لتغطية المجموعة الشعبية بالصلاة اليومية.", "More": "المزيد", "Name": "الاسم", "No": "لا", @@ -169,16 +169,16 @@ "No prayer coverage": "لا توجد تغطية للصلاة", "No unengaged people groups by 2033": "لا مجموعات شعبية غير مَخْدُومَة بحلول عام 2033", "Not Adopted": "غير متبنَّاة", - "Not Done": "لم ينجز", + "Not Done": "لم يتم", "Not Engaged": "غير مَخْدُومَة", "Our gift to Jesus": "هديّتنا ليسوع", - "Our hope is to cover each of them in extraordinary prayer. You and your church can be part of it.": "رجاؤنا أن نغطي كل واحد منهم بصلاة استثنائية. يمكنك أنت وكنيستك أن تكونوا جزءًا من ذلك.", + "Our hope is to cover each of them in extraordinary prayer. You and your church can be part of it.": "رجاؤنا أن نغطي كل واحدة منها بصلاة استثنائية. يمكنك أنت وكنيستك أن تكونوا جزءًا من ذلك.", "Out of {0} DOXA people groups:": "من بين {0} مجموعة شعبية من دوكسا:", "Overview": "نظرة عامة", "Page Not Found": "الصفحة غير موجودة", "Partner": "شارك", "Partner financially on a monthly basis with the Doxa Foundation to help sustain prayer mobilization, campaign operations, and the sending of gospel workers.": "كن شريكًا ماليًا شهريًا مع مؤسسة دوكسا للمساعدة في استمرار حشد الصلاة، وتشغيل الحملة، وإرسال العاملين في خدمة الإنجيل.", - "Partner through prayer, giving, and sending so that gospel access begins.": "شارك بالصلاة والعطاء والإرسال حتى يبدأ الوصول للإنجيل.", + "Partner through prayer, giving, and sending so that gospel access begins.": "شارك بالصلاة والعطاء والإرسال حتى يبدأ الوصول للانجيل.", "Partnering Church": "الكنيسة الشريكة", "People Group": "مجموعة شعبية", "People Group Not Found": "المجموعة الشعبية غير موجودة", @@ -194,7 +194,7 @@ "Popular Pages:": "الصفحات الأكثر زيارة:", "Population": "عدد السكان", "Pray": "صلِّ", - "Pray earnestly to the Lord of the harvest ...that He would send laborers to the [Unengaged].": "اطلبوا بإلحاح من رب الحصاد... أن يرسل فعلة إلى [الشعوب غير المَخْدُومَة].", + "Pray earnestly to the Lord of the harvest ...that He would send laborers to the [Unengaged].": "اطلبوا بإلحاح من رب الحصاد... أن يرسل فعلة إلى [المجموعات الشعبية غير المَخْدُومَة].", "Pray daily and help provide complete prayer coverage for a people group.": "صلِّ يوميًا وساهم في توفير تغطية كاملة بالصلاة لإحدى المجموعات الشعبية.", "Pray for them": "صلِّ من أجلهم", "Pray regularly for this people group and for gospel breakthrough": "واظب على الصلاة من أجل هذه المجموعة الشعبية، طالبًا أن يفتح الله الطريق لانتشار الإنجيل بينها", @@ -221,7 +221,7 @@ "Radio Broadcasts": "البث الإذاعي", "Raise up 100+ daily intercessors to pray for this people group.": "أقم أكثر من 100 شفيع يصلّون يوميًا من أجل هذه المجموعة الشعبية.", "Real prayer needs from the field": "احتياجات صلاة حقيقية من الميدان", - "Receive daily prayer points and join believers worldwide in prayer for the unengaged peoples.": "تلقَّ نقاط الصلاة اليومية وانضم إلى المؤمنين حول العالم في الصلاة من أجل الشعوب غير المَخْدُومَة.", + "Receive daily prayer points and join believers worldwide in prayer for the unengaged peoples.": "تلقَّ نقاط الصلاة اليومية وانضم إلى المؤمنين حول العالم في الصلاة من أجل المجموعات الشعبية غير المَخْدُومَة.", "Religion": "الدين", "Religious Practices": "الممارسات الدينية", "Research": "البحث", @@ -253,16 +253,16 @@ "Submit Updates": "إرسال التحديثات", "Submitting...": "جارٍ الإرسال...", "Success! Form submitted.": "تم إرسال الاستمارة بنجاح.", - "Thank you for adopting this Unengaged, Unreached People Group. Your church is joining a global movement asking God to open the way for the gospel among people who currently have little or no access to it. This page provides resources to help your church stay informed, mobilize prayer, and explore how God may use your community to help bring the good news of Jesus to this people group.": "شكرًا لكم على تبنّيكم هذه المجموعة الشعبية غير المبلَّغة وغير المَخْدُومَة. إن كنيستكم تنضم إلى حركة عالمية تطلب من الله أن يفتح الطريق أمام الإنجيل بين شعب لا يزال بلا وصول للإنجيل أو يكاد. توفر هذه الصفحة موارد لمساعدة كنيستكم على البقاء على اطلاع، وحشد الصلاة، واستكشاف الطرق التي قد يستخدم بها الله جماعتكم لإيصال بشرى يسوع إلى هذه المجموعة الشعبية.", + "Thank you for adopting this Unengaged, Unreached People Group. Your church is joining a global movement asking God to open the way for the gospel among people who currently have little or no access to it. This page provides resources to help your church stay informed, mobilize prayer, and explore how God may use your community to help bring the good news of Jesus to this people group.": "شكرًا لكم على تبنّيكم هذه المجموعة الشعبية غير المبلَّغة وغير المَخْدُومَة. إن كنيستكم تنضم إلى حركة عالمية تطلب من الله أن يفتح الطريق أمام الإنجيل بين شعب لا يزال بلا وصول للانجيل أو يكاد. توفر هذه الصفحة موارد لمساعدة كنيستكم على البقاء على اطلاع، وحشد الصلاة، واستكشاف الطرق التي قد يستخدم بها الله جماعتكم لإيصال بشرى يسوع إلى هذه المجموعة الشعبية.", "Thank you for taking a step toward adopting an unengaged people group. Please complete the form below so we can confirm your church's adoption, connect with your Champion, and begin sending prayer updates and resources.": "شكرًا لأخذك خطوة نحو تبنّي مجموعة شعبية غير مَخْدُومَة. الرجاء إكمال النموذج أدناه حتى نتمكن من تأكيد تبنّي كنيستك للمجموعة، والتواصل مع منسّقكم، والبدء في إرسال تحديثات الصلاة والموارد إليكم.", "Thank you for your adoption commitment! We will be in touch soon.": "نشكركم على التزامكم بالتبنّي! سنتواصل معكم قريبًا.", - "Thank you for your message. We will get back to you soon!": "نشكر تواصلك معنا. وسنوافيك بالرد قريبا!", + "Thank you for your message. We will get back to you soon!": "نشكر تواصلك معنا. وسنوافيك بالرد قريبًا!", "The Champion is the person who will organize the 100 intercessors and receive updates.": "المنسّق هو الشخص الذي سينظّم المائة شفيع ويستلم التحديثات.", - "The DOXA Vision: Click image to watch the video": "رؤية دوكسا: إضغط على الصورة لمشاهدة الفيديو", + "The DOXA Vision: Click image to watch the video": "رؤية دوكسا: اضغط على الصورة لمشاهدة الفيديو", "The people group you are looking for could not be found. Please try again.": "المجموعة الشعبية التي تبحث عنها غير موجودة. الرجاء المحاولة مرة أخرى.", "There was an error sending your message. Please try again.": "حدث خطأ أثناء إرسال رسالتك. الرجاء المحاولة مرة أخرى.", "There was an error submitting your adoption. Please try again.": "عذرًا، حدث خطأ أثناء إرسال التبنّي. الرجاء المحاولة مرة أخرى.", - "They have no gospel access": "ليس لديهم وصول للإنجيل", + "They have no gospel access": "ليس لديهم وصول للانجيل", "They have no one praying for them": "لا يوجد أحد يرفع الصلاة نيابة عنهم", "To confirm your adoption, please verify your email address. We sent a verification email to": "لتأكيد التبنّي، يرجى التحقق من عنوان بريدك الإلكتروني. لقد أرسلنا رسالة تحقق إلى", "Tools to mobilize prayer and participation across your congregation": "أدوات عملية لحشد الصلاة والمشاركة بين أعضاء كنيستك", @@ -272,9 +272,9 @@ "UUPG Detail": "تفاصيل UUPG", "UUPG Photo": "صورة UUPG", "UUPGS": "مجموعات UUPG", - "Under-Engaged": "عمل روحي ضعيف", + "Under-Engaged": "بها عمل روحي ضعيف", "Unengaged": "غير مَخْدُومَة", - "Unengaged people groups have no missionaries, no churches, and often no known believers. Adoption helps ensure they are finally seen, prayed for, and intentionally pursued with the gospel.": "المجموعات الشعبية غير المَخْدُومَة بلا مرسَلين ولا كنائس وغالبًا بلا مؤمنين معروفين. التبنّي يضمن رؤيتهم أخيرًا، والصلاة من أجلهم، ونشر الإنجيل بينهم بوعي وهدف.", + "Unengaged people groups have no missionaries, no churches, and often no known believers. Adoption helps ensure they are finally seen, prayed for, and intentionally pursued with the gospel.": "المجموعات الشعبية غير المَخْدُومَة بلا مرسَلين ولا كنائس وغالبًا بلا مؤمنين معروفين. التبنّي يضمن رؤيتها أخيرًا، والصلاة من أجلها، ونشر الإنجيل بينها بوعي وهدف.", "DOXA people groups around the world": "مجموعات دوكسا الشعبية حول العالم", "Unknown": "غير معروف", "Unreached": "غير مبلَّغة", @@ -288,15 +288,15 @@ "WAGF Block": "كتلة WAGF", "WAGF Region": "منطقة WAGF", "We chose this name because Jesus is worthy of glory from every tribe, tongue, people, and nation. DOXA reminds us that we partner with the whole Church to take the whole gospel to the whole world – until people from every nation are worshipping Jesus and He alone receives all the glory.": "اخترنا هذا الاسم لأن يسوع مستحق للمجد من كل قبيلة ولسان وشعب وأمة. كلمة دوكسا تذكرنا بأننا نتشارك مع الكنيسة كلها لنحمل الإنجيل بأكمله إلى العالم كله – حتى يعبد الناس من كل أمة يسوع ويكون وحده المستحق لكل المجد.", - "We recommend that churches give a monthly pledge based on their congregational size. i.e. $100 a month for a congregation around 100. $500 a month for a congregation around 500. $1000 a month for a congregation around 1000, etc.": "نوصي بأن تقدم الكنائس تعهدا شهريا بناء على حجم شعب الكنيسة، أي 100 دولار شهريا لمجموعة تضم حوالي 100 شخص، و500 دولار شهريا لمجموعة تضم حوالي 500 شخص، و1000 دولار شهريا لمجموعة تضم حوالي 1000 شخص، وهكذا.", + "We recommend that churches give a monthly pledge based on their congregational size. i.e. $100 a month for a congregation around 100. $500 a month for a congregation around 500. $1000 a month for a congregation around 1000, etc.": "نوصي بأن تقدّم الكنائس تعهدًا شهريًا بناءً على عدد أعضائها، أي 100 دولار شهريًا لكنيسة تضم حوالي 100 شخص، و500 دولار شهريًا لكنيسة تضم حوالي 500 شخص، و1000 دولار شهريًا لكنيسة تضم حوالي 1000 شخص، وهكذا.", "Welcome to the adoption Journey": "مرحبًا بكم في رحلة التبنّي", "What does \"DOXA\" mean?": "ما معنى كلمة «دوكسا»؟", "What is your commitment? Pray. Give. Send.": "ما هو التزامك؟ صلِّ. أعطِ. أرسِل.", "When we pray, we join believers around the world in God's mission, standing together for peoples still waiting to hear the name of Jesus.": "عندما نصلّي، نتّحد مع المؤمنين حول العالم في رسالة الله، واقفين جنبًا إلى جنب من أجل الشعوب التي لا تزال تنتظر سماع اسم يسوع.", - "When you adopt a people group, you step into a leadership role on their behalf—standing in the gap until the gospel takes root. This involves a commitment to:": "عندما تتبنّى مجموعة شعبية، فأنت تتولى دورًا قياديًا نيابة عنهم، واقفًا في الثغرة حتى يتجذّر الإنجيل بينهم. ويشمل ذلك الالتزام بما يلي:", + "When you adopt a people group, you step into a leadership role on their behalf—standing in the gap until the gospel takes root. This involves a commitment to:": "عندما تتبنّى مجموعة شعبية، فأنت تتولى دورًا قياديًا نيابة عنها، واقفًا في الثغرة حتى يتجذّر الإنجيل بينهم. ويشمل ذلك الالتزام بما يلي:", "Where are they?": "أين هم؟", "Where do I start?": "من أين أبدأ؟", - "Who are the unengaged?": "مَن هي الشعوب غير المَخْدُومَة؟", + "Who are the unengaged?": "مَن هي المجموعات الشعبية غير المَخْدُومَة؟", "Why adoption matters": "لماذا التبنّي مهم", "Why prayer matters": "لماذا الصلاة مهمّة", "Work in local language & culture": "العمل باللغة والثقافة المحلية", @@ -305,7 +305,7 @@ "Your Adoption Resources": "موارد التبنّي الخاصة بك", "Your Resources": "مواردك", "Your Country (optional)": "بلدك (اختياري)", - "Your UUPG": "مجموعتك الشعبية (UUPG)", + "Your UUPG": "UUPG الخاصة بك", "Your daily prayer guide": "دليل الصلاة اليومي الخاص بك", "Your role as an adopting church": "دوركم ككنيسة متبنّية", "churches / individuals have adopted this people group": "من الكنائس والأفراد تبنّوا هذه المجموعة الشعبية", diff --git a/public/js/doxa-research-map.js b/public/js/doxa-research-map.js index 712aae84..85cdf2ec 100644 --- a/public/js/doxa-research-map.js +++ b/public/js/doxa-research-map.js @@ -22,7 +22,7 @@ var use=Object.defineProperty;var fse=(Oo,SA,Au)=>SA in Oo?use(Oo,SA,{enumerable * pinia v2.3.1 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let FB;const ih=t=>FB=t,EB=Symbol();function G0(t){return t&&typeof t=="object"&&Object.prototype.toString.call(t)==="[object Object]"&&typeof t.toJSON!="function"}var Ru;(function(t){t.direct="direct",t.patchObject="patch object",t.patchFunction="patch function"})(Ru||(Ru={}));function hN(){const t=u0(!0),e=t.run(()=>Je({}));let r=[],n=[];const a=pu({install(i){ih(a),a._a=i,i.provide(EB,a),i.config.globalProperties.$pinia=a,n.forEach(o=>r.push(o)),n=[]},use(i){return this._a?r.push(i):n.push(i),this},_p:r,_a:null,_e:t,_s:new Map,state:e});return a}const SB=()=>{};function LB(t,e,r,n=SB){t.push(e);const a=()=>{const i=t.indexOf(e);i>-1&&(t.splice(i,1),n())};return!r&&Fw()&&jU(a),a}function Hl(t,...e){t.slice().forEach(r=>{r(...e)})}const gN=t=>t(),IB=Symbol(),V0=Symbol();function z0(t,e){t instanceof Map&&e instanceof Map?e.forEach((r,n)=>t.set(n,r)):t instanceof Set&&e instanceof Set&&e.forEach(t.add,t);for(const r in e){if(!e.hasOwnProperty(r))continue;const n=e[r],a=t[r];G0(a)&&G0(n)&&t.hasOwnProperty(r)&&!$r(n)&&!Do(n)?t[r]=z0(a,n):t[r]=n}return t}const pN=Symbol();function mN(t){return!G0(t)||!t.hasOwnProperty(pN)}const{assign:NA}=Object;function vN(t){return!!($r(t)&&t.effect)}function bN(t,e,r,n){const{state:a,actions:i,getters:o}=e,A=r.state.value[t];let s;function l(){A||(r.state.value[t]=a?a():{});const c=fT(r.state.value[t]);return NA(c,i,Object.keys(o||{}).reduce((u,h)=>(u[h]=pu(Oe(()=>{ih(r);const f=r._s.get(t);return o[h].call(f,f)})),u),{}))}return s=UB(t,l,e,r,n,!0),s}function UB(t,e,r={},n,a,i){let o;const A=NA({actions:{}},r),s={deep:!0};let l,c,u=[],h=[],f;const p=n.state.value[t];!i&&!p&&(n.state.value[t]={});let v;function b(T){let C;l=c=!1,typeof T=="function"?(T(n.state.value[t]),C={type:Ru.patchFunction,storeId:t,events:f}):(z0(n.state.value[t],T),C={type:Ru.patchObject,payload:T,storeId:t,events:f});const D=v=Symbol();bu().then(()=>{v===D&&(l=!0)}),c=!0,Hl(u,C,n.state.value[t])}const m=i?function(){const{state:C}=r,D=C?C():{};this.$patch(I=>{NA(I,D)})}:SB;function _(){o.stop(),u=[],h=[],n._s.delete(t)}const y=(T,C="")=>{if(IB in T)return T[V0]=C,T;const D=function(){ih(n);const I=Array.from(arguments),E=[],P=[];function H(J){E.push(J)}function O(J){P.push(J)}Hl(h,{args:I,name:D[V0],store:F,after:H,onError:O});let z;try{z=T.apply(this&&this.$id===t?this:F,I)}catch(J){throw Hl(P,J),J}return z instanceof Promise?z.then(J=>(Hl(E,J),J)).catch(J=>(Hl(P,J),Promise.reject(J))):(Hl(E,z),z)};return D[IB]=!0,D[V0]=C,D},B={_p:n,$id:t,$onAction:LB.bind(null,h),$patch:b,$reset:m,$subscribe(T,C={}){const D=LB(u,T,C.detached,()=>I()),I=o.run(()=>nr(()=>n.state.value[t],E=>{(C.flush==="sync"?c:l)&&T({storeId:t,type:Ru.direct,events:f},E)},NA({},s,C)));return D},$dispose:_},F=kl(B);n._s.set(t,F);const k=(n._a&&n._a.runWithContext||gN)(()=>n._e.run(()=>(o=u0()).run(()=>e({action:y}))));for(const T in k){const C=k[T];if($r(C)&&!vN(C)||Do(C))i||(p&&mN(C)&&($r(C)?C.value=p[T]:z0(C,p[T])),n.state.value[t][T]=C);else if(typeof C=="function"){const D=y(C,T);k[T]=D,A.actions[T]=C}}return NA(F,k),NA(ir(F),k),Object.defineProperty(F,"$state",{get:()=>n.state.value[t],set:T=>{b(C=>{NA(C,T)})}}),n._p.forEach(T=>{NA(F,o.run(()=>T({store:F,app:n._a,pinia:n,options:A})))}),p&&i&&r.hydrate&&r.hydrate(F.$state,p),l=!0,c=!0,F}/*! #__NO_SIDE_EFFECTS__ */function W0(t,e,r){let n,a;const i=typeof e=="function";typeof t=="string"?(n=t,a=i?r:e):(a=t,n=t.id);function o(A,s){const l=FT();return A=A||(l?Wt(EB,null):null),A&&ih(A),A=FB,A._s.has(n)||(i?UB(n,e,a,A):bN(n,a,A)),A._s.get(n)}return o.$id=n,o}let yN=0;const wN=W0("ui",{state:()=>({_storeInstanceId:++yN,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:t=>t.theme==="auto"?window.matchMedia("(prefers-color-scheme: dark)").matches:t.theme==="dark",isMobile:t=>t.breakpoint==="mobile",isTablet:t=>t.breakpoint==="tablet",isDesktop:t=>t.breakpoint==="desktop"||t.breakpoint==="wide",legendHeight:t=>t._customLegendHeight?t._customLegendHeight:t.legendState==="collapsed"?"48px":t.legendState==="open"?"30%":t.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:t=>t.legendState==="collapsed"?0:90,showPullTab:t=>t.legendState==="open"||t.legendState==="fullyOpen",getToastsByType:t=>e=>t.toasts.filter(r=>r.type===e),hasOpenModal:t=>t.openModals.length>0,topModal:t=>t.openModals.length===0?null:t.openModals[t.openModals.length-1],isModalOpen:t=>e=>t.openModals.includes(e),isAnyLoading:t=>t.isGlobalLoading||t.loadingStates.size>0,isLoading:t=>e=>t.loadingStates.get(e)||!1},actions:{setTheme(t){if(!["light","dark","auto"].includes(t))return;this.theme=t;const r=this.isDarkTheme;document.documentElement.setAttribute("data-theme",r?"dark":"light"),localStorage.setItem("theme",t)},toggleTheme(){const t=this.theme==="light"?"dark":"light";this.setTheme(t)},setColorScheme(t){this.colorScheme=t,document.documentElement.setAttribute("data-color-scheme",t)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(t){this.activeTab=t,this.addToHistory({type:"tab-change",tabId:t,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(t){["prayer","detail"].includes(t)&&(this.legendMode=t)},setPrayerFilter(t){[null,"noPrayer","hasPrayer","fullPrayer"].includes(t)&&(this.prayerFilter=t)},setEngagementFilter(t){[null,"notEngaged","hasEngagement"].includes(t)&&(this.engagementFilter=t)},setAdoptionFilter(t){[null,"notAdopted","hasAdoption"].includes(t)&&(this.adoptionFilter=t)},setReligionFilter(t){[null,"C","M","H","B","E","J","S","N","O","U"].includes(t)&&(this.religionFilter=t)},selectPeopleGroup(t){this.selectedPeopleGroup=t,t?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(t){["collapsed","open","fullyOpen"].includes(t)&&(this.legendState=t)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(t){this.searchMode=t},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(t){let e;t<768?e="mobile":t<1024?e="tablet":t<1920?e="desktop":e="wide",e!==this.breakpoint&&(this.breakpoint=e)},updateWindowSize(t,e){this.windowSize.width=t,this.windowSize.height=e,this.updateBreakpoint(t)},showToast(t){const{message:e,type:r="info",duration:n=this.toastDuration,action:a=null,persistent:i=!1}=t,o={id:this.nextToastId++,message:e,type:r,duration:n,action:a,persistent:i,createdAt:Date.now()};return this.toasts.push(o),!i&&n>0&&setTimeout(()=>{this.removeToast(o.id)},n),o.id},showSuccess(t,e={}){return this.showToast({message:t,type:"success",...e})},showError(t,e={}){return this.showToast({message:t,type:"error",duration:7e3,...e})},showWarning(t,e={}){return this.showToast({message:t,type:"warning",...e})},showInfo(t,e={}){return this.showToast({message:t,type:"info",...e})},removeToast(t){const e=this.toasts.findIndex(r=>r.id===t);e!==-1&&this.toasts.splice(e,1)},clearAllToasts(){this.toasts=[]},openModal(t,e={}){this.openModals.includes(t)||(this.openModals.push(t),this.modalData.set(t,e),this.focusTrapActive=!0)},closeModal(t=null){if(t){const e=this.openModals.indexOf(t);e!==-1&&(this.openModals.splice(e,1),this.modalData.delete(t))}else{const e=this.openModals.pop();e&&this.modalData.delete(e)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(t){return this.modalData.get(t)},showGlobalLoading(t="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=t},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(t,e=!0){e?this.loadingStates.set(t,!0):this.loadingStates.delete(t)},addToHistory(t){this.interactionHistory.push(t),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(t,e="polite"){this.screenReaderAnnouncement=t,setTimeout(()=>{this.screenReaderAnnouncement===t&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(t){this._customLegendHeight=t},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){const t=localStorage.getItem("theme");t&&this.setTheme(t),new ResizeObserver(r=>{for(const n of r)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",r=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",r.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",r=>{this.reducedMotion=r.matches,document.documentElement.setAttribute("data-reduced-motion",r.matches)}))}}}),BN=W0("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:t=>e=>t.maps[e],activeMap:t=>t.activeMapId?t.maps[t.activeMapId]:null,hasMap:t=>e=>e in t.maps,allMapIds:t=>Object.keys(t.maps),hasSelection:t=>!!(t.selectedRegion||t.selectedFamily||t.selectedAffinityBlock||t.selectedPeopleGroup),isAutoFlying:t=>t.autoFly.isActive,isGuidedTourActive:t=>t.guidedTour.isActive,isMapFullscreen:t=>e=>t.fullscreenMapId===e},actions:{registerMap(t,e,r={}){let n=1.5;r.zoom!==void 0?n=r.zoom:e&&typeof e.getZoom=="function"&&(n=e.getZoom());let a=[0,0];if(r.center)a=r.center;else if(e&&typeof e.getCenter=="function"){const i=e.getCenter();i&&(a=[i.lng,i.lat])}this.maps[t]={instance:e,config:r,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=t)},setMapReady(t){const e=this.maps[t];e&&(e.isReady=!0)},updateMapState(t,e){const r=this.maps[t];r&&Object.assign(r,e)},unregisterMap(t){if(delete this.maps[t],this.activeMapId===t){const e=this.allMapIds;this.activeMapId=e.length>0?e[0]:null}},setActiveMap(t){t in this.maps&&(this.activeMapId=t)},selectRegion(t){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=t},selectFamily(t){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=t},setActiveLegendTab(t){this.activeLegendTab=t},selectLanguage(t){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=t},selectDialect(t){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=t},selectAffinityBlock(t){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=t},selectPeopleGroup(t){this.selectedPeopleGroup=t},selectResource(t){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===t?this.selectedResource=null:this.selectedResource=t},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(t){this.selectedPinIds=t||[]},setFilter(t,e){this.globalFilters[t]=e},removeFilter(t){delete this.globalFilters[t]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(t){this.searchQuery=t},startAutoFly(t,e=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=e,this.autoFly.items=t,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(t){this.autoFly.speed=Math.max(.5,Math.min(2,t))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const t=this.autoFly.items[this.autoFly.currentIndex];t.type==="region"?this.selectRegion(t):t.type==="family"&&this.selectFamily(t)},toggleClusters(t){typeof t=="boolean"?this.showClusters=t:this.showClusters=!this.showClusters},setClusterMode(t){["region","language-family","affinity-block","mst","resource"].includes(t)&&(this.clusterMode=t)},setClusterFilter(t,e){this.clusterFilterProperty=t||null,this.clusterFilterValue=e||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(t){["slow","normal","fast"].includes(t)&&(this.flySpeed=t)},setSelectedFamily(t){this.selectFamily(t)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(t){this.selectRegion(t)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(t){this.fullscreenMapId===t?this.fullscreenMapId=null:this.fullscreenMapId=t},loadPreferences(){try{const t=localStorage.getItem("mapUserPreferences");if(t){const e=JSON.parse(t);this.preferences={...this.preferences,...e}}}catch(t){console.error("[mapStore] Failed to load preferences:",t)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(t){console.error("[mapStore] Failed to save preferences:",t)}},setPreference(t,e){this.preferences[t]=e,this.preferences.autoSavePreferences&&this.savePreferences()}}}),CN=W0("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(t,e){if(!this.sources[t]){this.loadingStates[t]={isLoading:!0,error:null};try{const r=await e();this.sources[t]=pu({features:r,timestamp:Date.now()}),this.loadingStates[t]={isLoading:!1,error:null}}catch(r){console.error(`[dataStore] Failed to load source "${t}":`,r),this.loadingStates[t]={isLoading:!1,error:r}}}},clearSource(t){delete this.sources[t],delete this.loadingStates[t]},cacheSourceData(t,e){this.sources[t]=pu({features:e.normalizedData||[],timestamp:e.timestamp||Date.now()})},hasSourceData(t){return!!this.sources[t]},getSourceData(t){return this.sources[t]?{normalizedData:this.sources[t].features}:null}},getters:{getData:t=>e=>{var r;return((r=t.sources[e])==null?void 0:r.features)??null},isLoading:t=>e=>{var r;return((r=t.loadingStates[e])==null?void 0:r.isLoading)??!1},getError:t=>e=>{var r;return((r=t.loadingStates[e])==null?void 0:r.error)??null}}}),Ga=(t,e)=>{const r=t.__vccOpts||t;for(const[n,a]of e)r[n]=a;return r},_N={class:"profile-loader"},xN={key:0,class:"profile-error"},FN={key:1,class:"profile-error"},EN=Ga({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(t){const e=t,r=Oe(()=>{if(!e.profileConfig)return null;try{return JSON.parse(e.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",e.profileConfig),null}}),n=Oe(()=>{var f;return((f=r.value)==null?void 0:f.profile)||null}),a=Oe(()=>{var f;return((f=r.value)==null?void 0:f.tk)||""}),i=Oe(()=>{var f;return((f=r.value)==null?void 0:f.dataSource)||"doxa-csv"}),o=Oe(()=>{var f;return((f=r.value)==null?void 0:f.colorSet)||"default"}),A=Oe(()=>{var f;return((f=r.value)==null?void 0:f.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),s=Wt("profileModules",null);if(!s)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./profiles/*.vue"))`');const l=Oe(()=>{if(!n.value)return null;const f=`./profiles/${n.value}.vue`;return s[f]?xu(s[f]):(console.error(`[ProfileLoader] Profile not found: "${n.value}". Available:`,Object.keys(s)),null)});La("mapboxToken",a),La("dataSource",i),La("colorSet",o),La("profileConfig",r),La("instanceId",A);const c=wN(),u=BN(),h=CN();return La("uiStore",c),La("mapStore",u),La("dataStore",h),(f,p)=>(Qe(),$e("div",_N,[r.value?l.value?(Qe(),br(GT(l.value),{key:2})):(Qe(),$e("div",FN,[oe("p",null,[p[1]||(p[1]=Nn("⚠️ Profile ",-1)),oe("strong",null,'"'+ct(n.value)+'"',1),p[2]||(p[2]=Nn(" not found.",-1))])])):(Qe(),$e("div",xN,[...p[0]||(p[0]=[oe("p",null,[Nn("⚠️ "),oe("strong",null,"doxa-map"),Nn(": missing or invalid "),oe("code",null,"profile-config"),Nn(" prop.")],-1),oe("p",null,[Nn("Example: "),oe("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])]))]))}},[["__scopeId","data-v-858dd5a1"]]),SN={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},LN={prayForThem:"صلِّ من أجلهم",adoptThem:"تَبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين"},IN={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:"},messages:{noDescription:"لا يوجد وصف متاح."}},UN={title:{prayer:"تقدُّم الصلاة",engagement:"تقدُّم الانخراط",adoption:"تقدُّم التبنّي",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{default:"وسيلة الإيضاح",collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة شعبية"},prayer:{needsPrayer:"لا أحد يصلّي",hasPrayer:"شخص واحد أو أكثر يصلّي",fullPrayerCoverage:"أكثر من 100 شخص يصلّون"},engagement:{needsEngagement:"غير مَخْدُومَة",hasEngagement:"مُخْدُومَة"},adoption:{needsAdoption:"تحتاج إلى تبنٍّ",hasAdoption:"لديها تبنٍّ"},columns:{upgs:"UUPG",population:"السكان"},footer:{total:"الإجمالي"}},TN={menuComingSoon:"القائمة قادمة قريباً"},kN={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},NN={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPG",separator:" من "},QN={placeholder:"مجموعة شعبية، مكان، لغة، ديانة",labels:{people:"المجموعة الشعبية:",place:"المكان:",language:"اللغة:",religion:"الديانة:"}},PN={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},ON={prayForThem:"Für sie beten",adoptThem:"Adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten"},MN={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},RN={title:{prayer:"Gebetsfortschritt",engagement:"Fortschritt der Arbeit vor Ort",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{default:"Legende",collapsed:"Legende",peopleGroupFallback:"Volksgruppe"},prayer:{needsPrayer:"Niemand betet",hasPrayer:"1+ Menschen beten",fullPrayerCoverage:"100+ Menschen beten"},engagement:{needsEngagement:"Unberührt",hasEngagement:"Engagiert"},adoption:{needsAdoption:"Wartet auf Adoption",hasAdoption:"Adoptiert"},columns:{upgs:"VUVGs",population:"Bevölkerung"},footer:{total:"Gesamt"}},DN={menuComingSoon:"Menü folgt in Kürze"},HN={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},$N={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"VUVGs",separator:" von "},KN={placeholder:"Volksgruppe, Ort, Sprache, Religion",labels:{people:"Volksgruppe:",place:"Ort:",language:"Sprache:",religion:"Religion:"}},jN={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},GN={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed"},VN={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:"},messages:{noDescription:"No description available."}},zN={title:{prayer:"Prayer Progress",engagement:"Engagement Progress",adoption:"Adoption Progress",languageFamilies:"Language Families",doxaRegions:"Doxa Regions",affinityBlocs:"Affinity Blocs",gospelResources:"Gospel Resources"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"No One Praying",hasPrayer:"1+ People Praying",fullPrayerCoverage:"100+ People Praying"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population"},footer:{total:"Total"}},WN={menuComingSoon:"Menu coming soon"},qN={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},YN={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},XN={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"}},JN={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},ZN={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar"},eQ={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:"},messages:{noDescription:"No hay descripción disponible."}},tQ={title:{prayer:"Progreso de oración",engagement:"Progreso del compromiso",adoption:"Progreso de adopción",languageFamilies:"Familias lingüísticas",doxaRegions:"Regiones Doxa",affinityBlocs:"Bloques de afinidad",gospelResources:"Recursos del Evangelio"},header:{default:"Leyenda",collapsed:"Leyenda",peopleGroupFallback:"Grupo étnico"},prayer:{needsPrayer:"Nadie orando",hasPrayer:"1+ personas orando",fullPrayerCoverage:"100+ personas orando"},engagement:{needsEngagement:"No comprometido",hasEngagement:"Comprometido"},adoption:{needsAdoption:"No adoptado",hasAdoption:"Adoptado"},columns:{upgs:"GENANC",population:"Población"},footer:{total:"Total"}},rQ={menuComingSoon:"Menú próximamente"},nQ={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},aQ={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"GENANC",separator:" de "},iQ={placeholder:"Grupo étnico, lugar, idioma, religión",labels:{people:"Grupo étnico:",place:"Lugar:",language:"Idioma:",religion:"Religión:"}},oQ={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},AQ={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer"},sQ={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :"},messages:{noDescription:"Aucune description disponible."}},lQ={title:{prayer:"Progression de la prière",engagement:"Progression de l'engagement",adoption:"Progression de l'adoption",languageFamilies:"Familles de langues",doxaRegions:"Régions Doxa",affinityBlocs:"Blocs d'affinité",gospelResources:"Ressources de l'Évangile"},header:{default:"Légende",collapsed:"Légende",peopleGroupFallback:"Peuple"},prayer:{needsPrayer:"Personne ne prie",hasPrayer:"1+ personnes en prière",fullPrayerCoverage:"100+ personnes en prière"},engagement:{needsEngagement:"Non engagé",hasEngagement:"Engagé"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adopté"},columns:{upgs:"UUPG",population:"Population"},footer:{total:"Total"}},cQ={menuComingSoon:"Menu bientôt disponible"},uQ={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},fQ={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPG",separator:" sur "},dQ={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"}},hQ={backToLegend:"लेजेंड पर वापस जाएँ",closeDetailView:"विवरण दृश्य बंद करें"},gQ={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें अपनाएँ",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएँ",switchToDarkMode:"डार्क मोड पर जाएँ",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएँ",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें"},pQ={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},mQ={title:{prayer:"प्रार्थना की प्रगति",engagement:"संलग्नता की प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"DOXA क्षेत्र",affinityBlocs:"आत्मीयता ब्लॉक",gospelResources:"सुसमाचार संसाधन"},header:{default:"लेजेंड",collapsed:"लेजेंड",peopleGroupFallback:"जनसमूह"},prayer:{needsPrayer:"कोई प्रार्थना नहीं कर रहा",hasPrayer:"1+ लोग प्रार्थना कर रहे हैं",fullPrayerCoverage:"100+ लोग प्रार्थना कर रहे हैं"},engagement:{needsEngagement:"अनसंपर्कित",hasEngagement:"संपर्कित"},adoption:{needsAdoption:"गोद लेने की ज़रूरत",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPG",population:"जनसंख्या"},footer:{total:"कुल"}},vQ={menuComingSoon:"मेनू शीघ्र आ रहा है"},bQ={clusterByRegion:"DOXA क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},yQ={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPG",separator:" / "},wQ={placeholder:"जनसमूह, स्थान, भाषा, धर्म",labels:{people:"जनसमूह:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"}},BQ={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},CQ={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Maggiori informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora"},_Q={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:"},messages:{noDescription:"Nessuna descrizione disponibile."}},xQ={title:{prayer:"Avanzamento della preghiera",engagement:"Avanzamento del coinvolgimento",adoption:"Avanzamento dell'adozione",languageFamilies:"Famiglie linguistiche",doxaRegions:"Regioni Doxa",affinityBlocs:"Blocchi di affinità",gospelResources:"Risorse del Vangelo"},header:{default:"Legenda",collapsed:"Legenda",peopleGroupFallback:"Gruppo etnico"},prayer:{needsPrayer:"Nessuno in preghiera",hasPrayer:"1+ persone in preghiera",fullPrayerCoverage:"100+ persone in preghiera"},engagement:{needsEngagement:"Non coinvolto",hasEngagement:"Coinvolto"},adoption:{needsAdoption:"Da adottare",hasAdoption:"Adottato"},columns:{upgs:"UUPG",population:"Popolazione"},footer:{total:"Totale"}},FQ={menuComingSoon:"Menu in arrivo"},EQ={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},SQ={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPG",separator:" di "},LQ={placeholder:"Gruppo etnico, luogo, lingua, religione",labels:{people:"Gruppo etnico:",place:"Luogo:",language:"Lingua:",religion:"Religione:"}},IQ={backToLegend:"Voltar à legenda",closeDetailView:"Fechar visualização de detalhes"},UQ={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Redefinir visualização",toggleFullscreen:"Alternar tela cheia",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Configurações de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartilhar e incorporar"},TQ={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:"},messages:{noDescription:"Sem descrição disponível."}},kQ={title:{prayer:"Progresso da oração",engagement:"Progresso do engajamento",adoption:"Progresso da adoção",languageFamilies:"Famílias linguísticas",doxaRegions:"Regiões Doxa",affinityBlocs:"Blocos de afinidade",gospelResources:"Recursos do Evangelho"},header:{default:"Legenda",collapsed:"Legenda",peopleGroupFallback:"Grupo étnico"},prayer:{needsPrayer:"Ninguém orando",hasPrayer:"1+ pessoas orando",fullPrayerCoverage:"100+ pessoas orando"},engagement:{needsEngagement:"Não engajado",hasEngagement:"Engajado"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"PNANEs",population:"População"},footer:{total:"Total"}},NQ={menuComingSoon:"Menu em breve"},QQ={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},PQ={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"PNANEs",separator:" de "},OQ={placeholder:"Grupo étnico, local, língua, religião",labels:{people:"Grupo étnico:",place:"Local:",language:"Língua:",religion:"Religião:"}},MQ={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},RQ={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută pe ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează"},DQ={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:"},messages:{noDescription:"Nicio descriere disponibilă."}},HQ={title:{prayer:"Progresul rugăciunii",engagement:"Progresul angajării misionare",adoption:"Progresul adoptării",languageFamilies:"Familii de limbi",doxaRegions:"Regiuni Doxa",affinityBlocs:"Blocuri de afinitate",gospelResources:"Resurse ale Evangheliei"},header:{default:"Legendă",collapsed:"Legendă",peopleGroupFallback:"Grup etnolingvistic"},prayer:{needsPrayer:"Nimeni nu se roagă",hasPrayer:"1+ persoane se roagă",fullPrayerCoverage:"100+ persoane se roagă"},engagement:{needsEngagement:"Neangajat misionar",hasEngagement:"Angajat misionar"},adoption:{needsAdoption:"Necesită adoptare",hasAdoption:"Adoptat"},columns:{upgs:"UUPG-uri",population:"Populație"},footer:{total:"Total"}},$Q={menuComingSoon:"Meniu în curând"},KQ={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},jQ={header:"TURUL ACTUAL DE RUGĂCIUNE",lap:"Tur",upgs:"UUPG-uri",separator:" din "},GQ={placeholder:"Grup etnolingvistic, loc, limbă, religie",labels:{people:"Grup etnolingvistic:",place:"Loc:",language:"Limbă:",religion:"Religie:"}},VQ={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},zQ={prayForThem:"Молитесь за них",adoptThem:"Взять ответственность",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить"},WQ={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:"},messages:{noDescription:"Описание недоступно."}},qQ={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечения",adoption:"Прогресс принятия ответственности",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{default:"Условные обозначения",collapsed:"Условные обозначения",peopleGroupFallback:"Народ"},prayer:{needsPrayer:"Никто не молится",hasPrayer:"1+ человек молится",fullPrayerCoverage:"100+ человек молятся"},engagement:{needsEngagement:"Невовлечённый",hasEngagement:"Вовлечён"},adoption:{needsAdoption:"Ответственность не взята",hasAdoption:"Ответственность взята"},columns:{upgs:"UUPG",population:"Население"},footer:{total:"Всего"}},YQ={menuComingSoon:"Меню скоро появится"},XQ={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},JQ={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPG",separator:" из "},ZQ={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"}},eP={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},tP={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚合",clusterSettings:"聚合设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入"},rP={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:"},messages:{noDescription:"暂无描述。"}},nP={title:{prayer:"祷告进度",engagement:"接触进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘集团",gospelResources:"福音资源"},header:{default:"图例",collapsed:"图例",peopleGroupFallback:"族群"},prayer:{needsPrayer:"无人祷告",hasPrayer:"1+ 人祷告",fullPrayerCoverage:"100+ 人祷告"},engagement:{needsEngagement:"未接触",hasEngagement:"已接触"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口"},footer:{total:"总计"}},aP={menuComingSoon:"菜单即将推出"},iP={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},oP={header:"当前祷告轮次",lap:"轮次",upgs:"UUPGs",separator:" / "},AP={placeholder:"族群、地点、语言、宗教",labels:{people:"族群:",place:"地点:",language:"语言:",religion:"宗教:"}};/*! + */let FB;const ih=t=>FB=t,EB=Symbol();function G0(t){return t&&typeof t=="object"&&Object.prototype.toString.call(t)==="[object Object]"&&typeof t.toJSON!="function"}var Ru;(function(t){t.direct="direct",t.patchObject="patch object",t.patchFunction="patch function"})(Ru||(Ru={}));function hN(){const t=u0(!0),e=t.run(()=>Je({}));let r=[],n=[];const a=pu({install(i){ih(a),a._a=i,i.provide(EB,a),i.config.globalProperties.$pinia=a,n.forEach(o=>r.push(o)),n=[]},use(i){return this._a?r.push(i):n.push(i),this},_p:r,_a:null,_e:t,_s:new Map,state:e});return a}const SB=()=>{};function LB(t,e,r,n=SB){t.push(e);const a=()=>{const i=t.indexOf(e);i>-1&&(t.splice(i,1),n())};return!r&&Fw()&&jU(a),a}function Hl(t,...e){t.slice().forEach(r=>{r(...e)})}const gN=t=>t(),IB=Symbol(),V0=Symbol();function z0(t,e){t instanceof Map&&e instanceof Map?e.forEach((r,n)=>t.set(n,r)):t instanceof Set&&e instanceof Set&&e.forEach(t.add,t);for(const r in e){if(!e.hasOwnProperty(r))continue;const n=e[r],a=t[r];G0(a)&&G0(n)&&t.hasOwnProperty(r)&&!$r(n)&&!Do(n)?t[r]=z0(a,n):t[r]=n}return t}const pN=Symbol();function mN(t){return!G0(t)||!t.hasOwnProperty(pN)}const{assign:NA}=Object;function vN(t){return!!($r(t)&&t.effect)}function bN(t,e,r,n){const{state:a,actions:i,getters:o}=e,A=r.state.value[t];let s;function l(){A||(r.state.value[t]=a?a():{});const c=fT(r.state.value[t]);return NA(c,i,Object.keys(o||{}).reduce((u,h)=>(u[h]=pu(Oe(()=>{ih(r);const f=r._s.get(t);return o[h].call(f,f)})),u),{}))}return s=UB(t,l,e,r,n,!0),s}function UB(t,e,r={},n,a,i){let o;const A=NA({actions:{}},r),s={deep:!0};let l,c,u=[],h=[],f;const p=n.state.value[t];!i&&!p&&(n.state.value[t]={});let v;function b(T){let C;l=c=!1,typeof T=="function"?(T(n.state.value[t]),C={type:Ru.patchFunction,storeId:t,events:f}):(z0(n.state.value[t],T),C={type:Ru.patchObject,payload:T,storeId:t,events:f});const D=v=Symbol();bu().then(()=>{v===D&&(l=!0)}),c=!0,Hl(u,C,n.state.value[t])}const m=i?function(){const{state:C}=r,D=C?C():{};this.$patch(I=>{NA(I,D)})}:SB;function _(){o.stop(),u=[],h=[],n._s.delete(t)}const y=(T,C="")=>{if(IB in T)return T[V0]=C,T;const D=function(){ih(n);const I=Array.from(arguments),E=[],P=[];function H(J){E.push(J)}function O(J){P.push(J)}Hl(h,{args:I,name:D[V0],store:F,after:H,onError:O});let z;try{z=T.apply(this&&this.$id===t?this:F,I)}catch(J){throw Hl(P,J),J}return z instanceof Promise?z.then(J=>(Hl(E,J),J)).catch(J=>(Hl(P,J),Promise.reject(J))):(Hl(E,z),z)};return D[IB]=!0,D[V0]=C,D},B={_p:n,$id:t,$onAction:LB.bind(null,h),$patch:b,$reset:m,$subscribe(T,C={}){const D=LB(u,T,C.detached,()=>I()),I=o.run(()=>nr(()=>n.state.value[t],E=>{(C.flush==="sync"?c:l)&&T({storeId:t,type:Ru.direct,events:f},E)},NA({},s,C)));return D},$dispose:_},F=kl(B);n._s.set(t,F);const k=(n._a&&n._a.runWithContext||gN)(()=>n._e.run(()=>(o=u0()).run(()=>e({action:y}))));for(const T in k){const C=k[T];if($r(C)&&!vN(C)||Do(C))i||(p&&mN(C)&&($r(C)?C.value=p[T]:z0(C,p[T])),n.state.value[t][T]=C);else if(typeof C=="function"){const D=y(C,T);k[T]=D,A.actions[T]=C}}return NA(F,k),NA(ir(F),k),Object.defineProperty(F,"$state",{get:()=>n.state.value[t],set:T=>{b(C=>{NA(C,T)})}}),n._p.forEach(T=>{NA(F,o.run(()=>T({store:F,app:n._a,pinia:n,options:A})))}),p&&i&&r.hydrate&&r.hydrate(F.$state,p),l=!0,c=!0,F}/*! #__NO_SIDE_EFFECTS__ */function W0(t,e,r){let n,a;const i=typeof e=="function";typeof t=="string"?(n=t,a=i?r:e):(a=t,n=t.id);function o(A,s){const l=FT();return A=A||(l?Wt(EB,null):null),A&&ih(A),A=FB,A._s.has(n)||(i?UB(n,e,a,A):bN(n,a,A)),A._s.get(n)}return o.$id=n,o}let yN=0;const wN=W0("ui",{state:()=>({_storeInstanceId:++yN,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:t=>t.theme==="auto"?window.matchMedia("(prefers-color-scheme: dark)").matches:t.theme==="dark",isMobile:t=>t.breakpoint==="mobile",isTablet:t=>t.breakpoint==="tablet",isDesktop:t=>t.breakpoint==="desktop"||t.breakpoint==="wide",legendHeight:t=>t._customLegendHeight?t._customLegendHeight:t.legendState==="collapsed"?"48px":t.legendState==="open"?"30%":t.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:t=>t.legendState==="collapsed"?0:90,showPullTab:t=>t.legendState==="open"||t.legendState==="fullyOpen",getToastsByType:t=>e=>t.toasts.filter(r=>r.type===e),hasOpenModal:t=>t.openModals.length>0,topModal:t=>t.openModals.length===0?null:t.openModals[t.openModals.length-1],isModalOpen:t=>e=>t.openModals.includes(e),isAnyLoading:t=>t.isGlobalLoading||t.loadingStates.size>0,isLoading:t=>e=>t.loadingStates.get(e)||!1},actions:{setTheme(t){if(!["light","dark","auto"].includes(t))return;this.theme=t;const r=this.isDarkTheme;document.documentElement.setAttribute("data-theme",r?"dark":"light"),localStorage.setItem("theme",t)},toggleTheme(){const t=this.theme==="light"?"dark":"light";this.setTheme(t)},setColorScheme(t){this.colorScheme=t,document.documentElement.setAttribute("data-color-scheme",t)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(t){this.activeTab=t,this.addToHistory({type:"tab-change",tabId:t,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(t){["prayer","detail"].includes(t)&&(this.legendMode=t)},setPrayerFilter(t){[null,"noPrayer","hasPrayer","fullPrayer"].includes(t)&&(this.prayerFilter=t)},setEngagementFilter(t){[null,"notEngaged","hasEngagement"].includes(t)&&(this.engagementFilter=t)},setAdoptionFilter(t){[null,"notAdopted","hasAdoption"].includes(t)&&(this.adoptionFilter=t)},setReligionFilter(t){[null,"C","M","H","B","E","J","S","N","O","U"].includes(t)&&(this.religionFilter=t)},selectPeopleGroup(t){this.selectedPeopleGroup=t,t?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(t){["collapsed","open","fullyOpen"].includes(t)&&(this.legendState=t)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(t){this.searchMode=t},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(t){let e;t<768?e="mobile":t<1024?e="tablet":t<1920?e="desktop":e="wide",e!==this.breakpoint&&(this.breakpoint=e)},updateWindowSize(t,e){this.windowSize.width=t,this.windowSize.height=e,this.updateBreakpoint(t)},showToast(t){const{message:e,type:r="info",duration:n=this.toastDuration,action:a=null,persistent:i=!1}=t,o={id:this.nextToastId++,message:e,type:r,duration:n,action:a,persistent:i,createdAt:Date.now()};return this.toasts.push(o),!i&&n>0&&setTimeout(()=>{this.removeToast(o.id)},n),o.id},showSuccess(t,e={}){return this.showToast({message:t,type:"success",...e})},showError(t,e={}){return this.showToast({message:t,type:"error",duration:7e3,...e})},showWarning(t,e={}){return this.showToast({message:t,type:"warning",...e})},showInfo(t,e={}){return this.showToast({message:t,type:"info",...e})},removeToast(t){const e=this.toasts.findIndex(r=>r.id===t);e!==-1&&this.toasts.splice(e,1)},clearAllToasts(){this.toasts=[]},openModal(t,e={}){this.openModals.includes(t)||(this.openModals.push(t),this.modalData.set(t,e),this.focusTrapActive=!0)},closeModal(t=null){if(t){const e=this.openModals.indexOf(t);e!==-1&&(this.openModals.splice(e,1),this.modalData.delete(t))}else{const e=this.openModals.pop();e&&this.modalData.delete(e)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(t){return this.modalData.get(t)},showGlobalLoading(t="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=t},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(t,e=!0){e?this.loadingStates.set(t,!0):this.loadingStates.delete(t)},addToHistory(t){this.interactionHistory.push(t),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(t,e="polite"){this.screenReaderAnnouncement=t,setTimeout(()=>{this.screenReaderAnnouncement===t&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(t){this._customLegendHeight=t},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){const t=localStorage.getItem("theme");t&&this.setTheme(t),new ResizeObserver(r=>{for(const n of r)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",r=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",r.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",r=>{this.reducedMotion=r.matches,document.documentElement.setAttribute("data-reduced-motion",r.matches)}))}}}),BN=W0("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:t=>e=>t.maps[e],activeMap:t=>t.activeMapId?t.maps[t.activeMapId]:null,hasMap:t=>e=>e in t.maps,allMapIds:t=>Object.keys(t.maps),hasSelection:t=>!!(t.selectedRegion||t.selectedFamily||t.selectedAffinityBlock||t.selectedPeopleGroup),isAutoFlying:t=>t.autoFly.isActive,isGuidedTourActive:t=>t.guidedTour.isActive,isMapFullscreen:t=>e=>t.fullscreenMapId===e},actions:{registerMap(t,e,r={}){let n=1.5;r.zoom!==void 0?n=r.zoom:e&&typeof e.getZoom=="function"&&(n=e.getZoom());let a=[0,0];if(r.center)a=r.center;else if(e&&typeof e.getCenter=="function"){const i=e.getCenter();i&&(a=[i.lng,i.lat])}this.maps[t]={instance:e,config:r,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=t)},setMapReady(t){const e=this.maps[t];e&&(e.isReady=!0)},updateMapState(t,e){const r=this.maps[t];r&&Object.assign(r,e)},unregisterMap(t){if(delete this.maps[t],this.activeMapId===t){const e=this.allMapIds;this.activeMapId=e.length>0?e[0]:null}},setActiveMap(t){t in this.maps&&(this.activeMapId=t)},selectRegion(t){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=t},selectFamily(t){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=t},setActiveLegendTab(t){this.activeLegendTab=t},selectLanguage(t){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=t},selectDialect(t){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=t},selectAffinityBlock(t){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=t},selectPeopleGroup(t){this.selectedPeopleGroup=t},selectResource(t){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===t?this.selectedResource=null:this.selectedResource=t},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(t){this.selectedPinIds=t||[]},setFilter(t,e){this.globalFilters[t]=e},removeFilter(t){delete this.globalFilters[t]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(t){this.searchQuery=t},startAutoFly(t,e=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=e,this.autoFly.items=t,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(t){this.autoFly.speed=Math.max(.5,Math.min(2,t))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const t=this.autoFly.items[this.autoFly.currentIndex];t.type==="region"?this.selectRegion(t):t.type==="family"&&this.selectFamily(t)},toggleClusters(t){typeof t=="boolean"?this.showClusters=t:this.showClusters=!this.showClusters},setClusterMode(t){["region","language-family","affinity-block","mst","resource"].includes(t)&&(this.clusterMode=t)},setClusterFilter(t,e){this.clusterFilterProperty=t||null,this.clusterFilterValue=e||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(t){["slow","normal","fast"].includes(t)&&(this.flySpeed=t)},setSelectedFamily(t){this.selectFamily(t)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(t){this.selectRegion(t)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(t){this.fullscreenMapId===t?this.fullscreenMapId=null:this.fullscreenMapId=t},loadPreferences(){try{const t=localStorage.getItem("mapUserPreferences");if(t){const e=JSON.parse(t);this.preferences={...this.preferences,...e}}}catch(t){console.error("[mapStore] Failed to load preferences:",t)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(t){console.error("[mapStore] Failed to save preferences:",t)}},setPreference(t,e){this.preferences[t]=e,this.preferences.autoSavePreferences&&this.savePreferences()}}}),CN=W0("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(t,e){if(!this.sources[t]){this.loadingStates[t]={isLoading:!0,error:null};try{const r=await e();this.sources[t]=pu({features:r,timestamp:Date.now()}),this.loadingStates[t]={isLoading:!1,error:null}}catch(r){console.error(`[dataStore] Failed to load source "${t}":`,r),this.loadingStates[t]={isLoading:!1,error:r}}}},clearSource(t){delete this.sources[t],delete this.loadingStates[t]},cacheSourceData(t,e){this.sources[t]=pu({features:e.normalizedData||[],timestamp:e.timestamp||Date.now()})},hasSourceData(t){return!!this.sources[t]},getSourceData(t){return this.sources[t]?{normalizedData:this.sources[t].features}:null}},getters:{getData:t=>e=>{var r;return((r=t.sources[e])==null?void 0:r.features)??null},isLoading:t=>e=>{var r;return((r=t.loadingStates[e])==null?void 0:r.isLoading)??!1},getError:t=>e=>{var r;return((r=t.loadingStates[e])==null?void 0:r.error)??null}}}),Ga=(t,e)=>{const r=t.__vccOpts||t;for(const[n,a]of e)r[n]=a;return r},_N={class:"profile-loader"},xN={key:0,class:"profile-error"},FN={key:1,class:"profile-error"},EN=Ga({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(t){const e=t,r=Oe(()=>{if(!e.profileConfig)return null;try{return JSON.parse(e.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",e.profileConfig),null}}),n=Oe(()=>{var f;return((f=r.value)==null?void 0:f.profile)||null}),a=Oe(()=>{var f;return((f=r.value)==null?void 0:f.tk)||""}),i=Oe(()=>{var f;return((f=r.value)==null?void 0:f.dataSource)||"doxa-csv"}),o=Oe(()=>{var f;return((f=r.value)==null?void 0:f.colorSet)||"default"}),A=Oe(()=>{var f;return((f=r.value)==null?void 0:f.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),s=Wt("profileModules",null);if(!s)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./profiles/*.vue"))`');const l=Oe(()=>{if(!n.value)return null;const f=`./profiles/${n.value}.vue`;return s[f]?xu(s[f]):(console.error(`[ProfileLoader] Profile not found: "${n.value}". Available:`,Object.keys(s)),null)});La("mapboxToken",a),La("dataSource",i),La("colorSet",o),La("profileConfig",r),La("instanceId",A);const c=wN(),u=BN(),h=CN();return La("uiStore",c),La("mapStore",u),La("dataStore",h),(f,p)=>(Qe(),$e("div",_N,[r.value?l.value?(Qe(),br(GT(l.value),{key:2})):(Qe(),$e("div",FN,[oe("p",null,[p[1]||(p[1]=Nn("⚠️ Profile ",-1)),oe("strong",null,'"'+ct(n.value)+'"',1),p[2]||(p[2]=Nn(" not found.",-1))])])):(Qe(),$e("div",xN,[...p[0]||(p[0]=[oe("p",null,[Nn("⚠️ "),oe("strong",null,"doxa-map"),Nn(": missing or invalid "),oe("code",null,"profile-config"),Nn(" prop.")],-1),oe("p",null,[Nn("Example: "),oe("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])]))]))}},[["__scopeId","data-v-858dd5a1"]]),SN={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},LN={prayForThem:"صلِّ من أجلهم",adoptThem:"تَبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين"},IN={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:"},messages:{noDescription:"لا يوجد وصف متاح."}},UN={title:{prayer:"تقدُّم الصلاة",engagement:"تقدُّم الانخراط",adoption:"تقدُّم التبنّي",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{default:"وسيلة الإيضاح",collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة شعبية"},prayer:{needsPrayer:"لا أحد يصلّي",hasPrayer:"شخص واحد أو أكثر يصلّي",fullPrayerCoverage:"أكثر من 100 شخص يصلّون"},engagement:{needsEngagement:"غير مَخْدُومَة",hasEngagement:"مَخْدُومَة"},adoption:{needsAdoption:"تحتاج إلى تبنٍّ",hasAdoption:"لديها تبنٍّ"},columns:{upgs:"UUPG",population:"السكان"},footer:{total:"الإجمالي"}},TN={menuComingSoon:"القائمة قادمة قريباً"},kN={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},NN={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPG",separator:" من "},QN={placeholder:"مجموعة شعبية، مكان، لغة، ديانة",labels:{people:"المجموعة الشعبية:",place:"المكان:",language:"اللغة:",religion:"الديانة:"}},PN={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},ON={prayForThem:"Für sie beten",adoptThem:"Adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten"},MN={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},RN={title:{prayer:"Gebetsfortschritt",engagement:"Fortschritt der Arbeit vor Ort",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{default:"Legende",collapsed:"Legende",peopleGroupFallback:"Volksgruppe"},prayer:{needsPrayer:"Niemand betet",hasPrayer:"1+ Menschen beten",fullPrayerCoverage:"100+ Menschen beten"},engagement:{needsEngagement:"Unberührt",hasEngagement:"Engagiert"},adoption:{needsAdoption:"Wartet auf Adoption",hasAdoption:"Adoptiert"},columns:{upgs:"VUVGs",population:"Bevölkerung"},footer:{total:"Gesamt"}},DN={menuComingSoon:"Menü folgt in Kürze"},HN={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},$N={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"VUVGs",separator:" von "},KN={placeholder:"Volksgruppe, Ort, Sprache, Religion",labels:{people:"Volksgruppe:",place:"Ort:",language:"Sprache:",religion:"Religion:"}},jN={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},GN={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed"},VN={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:"},messages:{noDescription:"No description available."}},zN={title:{prayer:"Prayer Progress",engagement:"Engagement Progress",adoption:"Adoption Progress",languageFamilies:"Language Families",doxaRegions:"Doxa Regions",affinityBlocs:"Affinity Blocs",gospelResources:"Gospel Resources"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"No One Praying",hasPrayer:"1+ People Praying",fullPrayerCoverage:"100+ People Praying"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population"},footer:{total:"Total"}},WN={menuComingSoon:"Menu coming soon"},qN={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},YN={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},XN={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"}},JN={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},ZN={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar"},eQ={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:"},messages:{noDescription:"No hay descripción disponible."}},tQ={title:{prayer:"Progreso de oración",engagement:"Progreso del compromiso",adoption:"Progreso de adopción",languageFamilies:"Familias lingüísticas",doxaRegions:"Regiones Doxa",affinityBlocs:"Bloques de afinidad",gospelResources:"Recursos del Evangelio"},header:{default:"Leyenda",collapsed:"Leyenda",peopleGroupFallback:"Grupo étnico"},prayer:{needsPrayer:"Nadie orando",hasPrayer:"1+ personas orando",fullPrayerCoverage:"100+ personas orando"},engagement:{needsEngagement:"No comprometido",hasEngagement:"Comprometido"},adoption:{needsAdoption:"No adoptado",hasAdoption:"Adoptado"},columns:{upgs:"GENANC",population:"Población"},footer:{total:"Total"}},rQ={menuComingSoon:"Menú próximamente"},nQ={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},aQ={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"GENANC",separator:" de "},iQ={placeholder:"Grupo étnico, lugar, idioma, religión",labels:{people:"Grupo étnico:",place:"Lugar:",language:"Idioma:",religion:"Religión:"}},oQ={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},AQ={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer"},sQ={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :"},messages:{noDescription:"Aucune description disponible."}},lQ={title:{prayer:"Progression de la prière",engagement:"Progression de l'engagement",adoption:"Progression de l'adoption",languageFamilies:"Familles de langues",doxaRegions:"Régions Doxa",affinityBlocs:"Blocs d'affinité",gospelResources:"Ressources de l'Évangile"},header:{default:"Légende",collapsed:"Légende",peopleGroupFallback:"Peuple"},prayer:{needsPrayer:"Personne ne prie",hasPrayer:"1+ personnes en prière",fullPrayerCoverage:"100+ personnes en prière"},engagement:{needsEngagement:"Non engagé",hasEngagement:"Engagé"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adopté"},columns:{upgs:"UUPG",population:"Population"},footer:{total:"Total"}},cQ={menuComingSoon:"Menu bientôt disponible"},uQ={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},fQ={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPG",separator:" sur "},dQ={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"}},hQ={backToLegend:"लेजेंड पर वापस जाएँ",closeDetailView:"विवरण दृश्य बंद करें"},gQ={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें अपनाएँ",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएँ",switchToDarkMode:"डार्क मोड पर जाएँ",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएँ",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें"},pQ={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},mQ={title:{prayer:"प्रार्थना की प्रगति",engagement:"संलग्नता की प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"DOXA क्षेत्र",affinityBlocs:"आत्मीयता ब्लॉक",gospelResources:"सुसमाचार संसाधन"},header:{default:"लेजेंड",collapsed:"लेजेंड",peopleGroupFallback:"जनसमूह"},prayer:{needsPrayer:"कोई प्रार्थना नहीं कर रहा",hasPrayer:"1+ लोग प्रार्थना कर रहे हैं",fullPrayerCoverage:"100+ लोग प्रार्थना कर रहे हैं"},engagement:{needsEngagement:"अनसंपर्कित",hasEngagement:"संपर्कित"},adoption:{needsAdoption:"गोद लेने की ज़रूरत",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPG",population:"जनसंख्या"},footer:{total:"कुल"}},vQ={menuComingSoon:"मेनू शीघ्र आ रहा है"},bQ={clusterByRegion:"DOXA क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},yQ={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPG",separator:" / "},wQ={placeholder:"जनसमूह, स्थान, भाषा, धर्म",labels:{people:"जनसमूह:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"}},BQ={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},CQ={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Maggiori informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora"},_Q={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:"},messages:{noDescription:"Nessuna descrizione disponibile."}},xQ={title:{prayer:"Avanzamento della preghiera",engagement:"Avanzamento del coinvolgimento",adoption:"Avanzamento dell'adozione",languageFamilies:"Famiglie linguistiche",doxaRegions:"Regioni Doxa",affinityBlocs:"Blocchi di affinità",gospelResources:"Risorse del Vangelo"},header:{default:"Legenda",collapsed:"Legenda",peopleGroupFallback:"Gruppo etnico"},prayer:{needsPrayer:"Nessuno in preghiera",hasPrayer:"1+ persone in preghiera",fullPrayerCoverage:"100+ persone in preghiera"},engagement:{needsEngagement:"Non coinvolto",hasEngagement:"Coinvolto"},adoption:{needsAdoption:"Da adottare",hasAdoption:"Adottato"},columns:{upgs:"UUPG",population:"Popolazione"},footer:{total:"Totale"}},FQ={menuComingSoon:"Menu in arrivo"},EQ={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},SQ={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPG",separator:" di "},LQ={placeholder:"Gruppo etnico, luogo, lingua, religione",labels:{people:"Gruppo etnico:",place:"Luogo:",language:"Lingua:",religion:"Religione:"}},IQ={backToLegend:"Voltar à legenda",closeDetailView:"Fechar visualização de detalhes"},UQ={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Redefinir visualização",toggleFullscreen:"Alternar tela cheia",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Configurações de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartilhar e incorporar"},TQ={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:"},messages:{noDescription:"Sem descrição disponível."}},kQ={title:{prayer:"Progresso da oração",engagement:"Progresso do engajamento",adoption:"Progresso da adoção",languageFamilies:"Famílias linguísticas",doxaRegions:"Regiões Doxa",affinityBlocs:"Blocos de afinidade",gospelResources:"Recursos do Evangelho"},header:{default:"Legenda",collapsed:"Legenda",peopleGroupFallback:"Grupo étnico"},prayer:{needsPrayer:"Ninguém orando",hasPrayer:"1+ pessoas orando",fullPrayerCoverage:"100+ pessoas orando"},engagement:{needsEngagement:"Não engajado",hasEngagement:"Engajado"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"PNANEs",population:"População"},footer:{total:"Total"}},NQ={menuComingSoon:"Menu em breve"},QQ={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},PQ={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"PNANEs",separator:" de "},OQ={placeholder:"Grupo étnico, local, língua, religião",labels:{people:"Grupo étnico:",place:"Local:",language:"Língua:",religion:"Religião:"}},MQ={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},RQ={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută pe ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează"},DQ={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:"},messages:{noDescription:"Nicio descriere disponibilă."}},HQ={title:{prayer:"Progresul rugăciunii",engagement:"Progresul angajării misionare",adoption:"Progresul adoptării",languageFamilies:"Familii de limbi",doxaRegions:"Regiuni Doxa",affinityBlocs:"Blocuri de afinitate",gospelResources:"Resurse ale Evangheliei"},header:{default:"Legendă",collapsed:"Legendă",peopleGroupFallback:"Grup etnolingvistic"},prayer:{needsPrayer:"Nimeni nu se roagă",hasPrayer:"1+ persoane se roagă",fullPrayerCoverage:"100+ persoane se roagă"},engagement:{needsEngagement:"Neangajat misionar",hasEngagement:"Angajat misionar"},adoption:{needsAdoption:"Necesită adoptare",hasAdoption:"Adoptat"},columns:{upgs:"UUPG-uri",population:"Populație"},footer:{total:"Total"}},$Q={menuComingSoon:"Meniu în curând"},KQ={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},jQ={header:"TURUL ACTUAL DE RUGĂCIUNE",lap:"Tur",upgs:"UUPG-uri",separator:" din "},GQ={placeholder:"Grup etnolingvistic, loc, limbă, religie",labels:{people:"Grup etnolingvistic:",place:"Loc:",language:"Limbă:",religion:"Religie:"}},VQ={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},zQ={prayForThem:"Молитесь за них",adoptThem:"Взять ответственность",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить"},WQ={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:"},messages:{noDescription:"Описание недоступно."}},qQ={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечения",adoption:"Прогресс принятия ответственности",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{default:"Условные обозначения",collapsed:"Условные обозначения",peopleGroupFallback:"Народ"},prayer:{needsPrayer:"Никто не молится",hasPrayer:"1+ человек молится",fullPrayerCoverage:"100+ человек молятся"},engagement:{needsEngagement:"Невовлечённый",hasEngagement:"Вовлечён"},adoption:{needsAdoption:"Ответственность не взята",hasAdoption:"Ответственность взята"},columns:{upgs:"UUPG",population:"Население"},footer:{total:"Всего"}},YQ={menuComingSoon:"Меню скоро появится"},XQ={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},JQ={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPG",separator:" из "},ZQ={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"}},eP={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},tP={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚合",clusterSettings:"聚合设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入"},rP={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:"},messages:{noDescription:"暂无描述。"}},nP={title:{prayer:"祷告进度",engagement:"接触进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘集团",gospelResources:"福音资源"},header:{default:"图例",collapsed:"图例",peopleGroupFallback:"族群"},prayer:{needsPrayer:"无人祷告",hasPrayer:"1+ 人祷告",fullPrayerCoverage:"100+ 人祷告"},engagement:{needsEngagement:"未接触",hasEngagement:"已接触"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口"},footer:{total:"总计"}},aP={menuComingSoon:"菜单即将推出"},iP={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},oP={header:"当前祷告轮次",lap:"轮次",upgs:"UUPGs",separator:" / "},AP={placeholder:"族群、地点、语言、宗教",labels:{people:"族群:",place:"地点:",language:"语言:",religion:"宗教:"}};/*! * shared v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. diff --git a/public/js/doxa-simple-map.js b/public/js/doxa-simple-map.js index 3f906091..8d1739a3 100644 --- a/public/js/doxa-simple-map.js +++ b/public/js/doxa-simple-map.js @@ -22,7 +22,7 @@ * pinia v2.3.1 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let Hi;const ca=e=>Hi=e,zi=Symbol();function mr(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var xn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(xn||(xn={}));function Lp(){const e=Ia(!0),t=e.run(()=>me({}));let o=[],n=[];const a=cn({install(r){ca(a),a._a=r,r.provide(zi,a),r.config.globalProperties.$pinia=a,n.forEach(s=>o.push(s)),n=[]},use(r){return this._a?o.push(r):n.push(r),this},_p:o,_a:null,_e:e,_s:new Map,state:t});return a}const Vi=()=>{};function Wi(e,t,o,n=Vi){e.push(t);const a=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),n())};return!o&&ls()&&lu(a),a}function Uo(e,...t){e.slice().forEach(o=>{o(...t)})}const Tp=e=>e(),Yi=Symbol(),br=Symbol();function yr(e,t){e instanceof Map&&t instanceof Map?t.forEach((o,n)=>e.set(n,o)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const o in t){if(!t.hasOwnProperty(o))continue;const n=t[o],a=e[o];mr(a)&&mr(n)&&e.hasOwnProperty(o)&&!Ke(n)&&!Vt(n)?e[o]=yr(a,n):e[o]=n}return e}const Ep=Symbol();function Cp(e){return!mr(e)||!e.hasOwnProperty(Ep)}const{assign:so}=Object;function $p(e){return!!(Ke(e)&&e.effect)}function Pp(e,t,o,n){const{state:a,actions:r,getters:s}=t,i=o.state.value[e];let l;function c(){i||(o.state.value[e]=a?a():{});const u=$u(o.state.value[e]);return so(u,r,Object.keys(s||{}).reduce((f,v)=>(f[v]=cn(Q(()=>{ca(o);const x=o._s.get(e);return s[v].call(x,x)})),f),{}))}return l=qi(e,c,t,o,n,!0),l}function qi(e,t,o={},n,a,r){let s;const i=so({actions:{}},o),l={deep:!0};let c,u,f=[],v=[],x;const T=n.state.value[e];!r&&!T&&(n.state.value[e]={});let w;function E($){let m;c=u=!1,typeof $=="function"?($(n.state.value[e]),m={type:xn.patchFunction,storeId:e,events:x}):(yr(n.state.value[e],$),m={type:xn.patchObject,payload:$,storeId:e,events:x});const j=w=Symbol();Wa().then(()=>{w===j&&(c=!0)}),u=!0,Uo(f,m,n.state.value[e])}const _=r?function(){const{state:m}=o,j=m?m():{};this.$patch(H=>{so(H,j)})}:Vi;function A(){s.stop(),f=[],v=[],n._s.delete(e)}const g=($,m="")=>{if(Yi in $)return $[br]=m,$;const j=function(){ca(n);const H=Array.from(arguments),I=[],W=[];function ue(U){I.push(U)}function C(U){W.push(U)}Uo(v,{args:H,name:j[br],store:S,after:ue,onError:C});let M;try{M=$.apply(this&&this.$id===e?this:S,H)}catch(U){throw Uo(W,U),U}return M instanceof Promise?M.then(U=>(Uo(I,U),U)).catch(U=>(Uo(W,U),Promise.reject(U))):(Uo(I,M),M)};return j[Yi]=!0,j[br]=m,j},k={_p:n,$id:e,$onAction:Wi.bind(null,v),$patch:E,$reset:_,$subscribe($,m={}){const j=Wi(f,$,m.detached,()=>H()),H=s.run(()=>Ye(()=>n.state.value[e],I=>{(m.flush==="sync"?u:c)&&$({storeId:e,type:xn.direct,events:x},I)},so({},l,m)));return j},$dispose:A},S=Io(k);n._s.set(e,S);const O=(n._a&&n._a.runWithContext||Tp)(()=>n._e.run(()=>(s=Ia()).run(()=>t({action:g}))));for(const $ in O){const m=O[$];if(Ke(m)&&!$p(m)||Vt(m))r||(T&&Cp(m)&&(Ke(m)?m.value=T[$]:yr(m,T[$])),n.state.value[e][$]=m);else if(typeof m=="function"){const j=g(m,$);O[$]=j,i.actions[$]=m}}return so(S,O),so(Ce(S),O),Object.defineProperty(S,"$state",{get:()=>n.state.value[e],set:$=>{E(m=>{so(m,$)})}}),n._p.forEach($=>{so(S,s.run(()=>$({store:S,app:n._a,pinia:n,options:i})))}),T&&r&&o.hydrate&&o.hydrate(S.$state,T),c=!0,u=!0,S}/*! #__NO_SIDE_EFFECTS__ */function _r(e,t,o){let n,a;const r=typeof t=="function";typeof e=="string"?(n=e,a=r?o:t):(a=e,n=e.id);function s(i,l){const c=zu();return i=i||(c?$e(zi,null):null),i&&ca(i),i=Hi,i._s.has(n)||(r?qi(n,t,a,i):Pp(n,a,i)),i._s.get(n)}return s.$id=n,s}let Mp=0;const Ip=_r("ui",{state:()=>({_storeInstanceId:++Mp,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>e.theme==="auto"?window.matchMedia("(prefers-color-scheme: dark)").matches:e.theme==="dark",isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(o=>o.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;this.theme=e;const o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"dark":"light"),localStorage.setItem("theme",e)},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:o="info",duration:n=this.toastDuration,action:a=null,persistent:r=!1}=e,s={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:r,createdAt:Date.now()};return this.toasts.push(s),!r&&n>0&&setTimeout(()=>{this.removeToast(s.id)},n),s.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(o=>o.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){const e=localStorage.getItem("theme");e&&this.setTheme(e),new ResizeObserver(o=>{for(const n of o)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",o.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",o=>{this.reducedMotion=o.matches,document.documentElement.setAttribute("data-reduced-motion",o.matches)}))}}}),Np=_r("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(a=[r.lng,r.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),Fp=_r("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=cn({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=cn({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),So=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},Rp={class:"profile-loader"},Dp={key:0,class:"profile-error"},Op={key:1,class:"profile-error"},Bp=So({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){const t=e,o=Q(()=>{if(!t.profileConfig)return null;try{return JSON.parse(t.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",t.profileConfig),null}}),n=Q(()=>{var x;return((x=o.value)==null?void 0:x.profile)||null}),a=Q(()=>{var x;return((x=o.value)==null?void 0:x.tk)||""}),r=Q(()=>{var x;return((x=o.value)==null?void 0:x.dataSource)||"doxa-csv"}),s=Q(()=>{var x;return((x=o.value)==null?void 0:x.colorSet)||"default"}),i=Q(()=>{var x;return((x=o.value)==null?void 0:x.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),l=$e("profileModules",null);if(!l)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./profiles/*.vue"))`');const c=Q(()=>{if(!n.value)return null;const x=`./profiles/${n.value}.vue`;return l[x]?Za(l[x]):(console.error(`[ProfileLoader] Profile not found: "${n.value}". Available:`,Object.keys(l)),null)});wt("mapboxToken",a),wt("dataSource",r),wt("colorSet",s),wt("profileConfig",o),wt("instanceId",i);const u=Ip(),f=Np(),v=Fp();return wt("uiStore",u),wt("mapStore",f),wt("dataStore",v),(x,T)=>(X(),ne("div",Rp,[o.value?c.value?(X(),Xe(ld(c.value),{key:2})):(X(),ne("div",Op,[G("p",null,[T[1]||(T[1]=ht("⚠️ Profile ",-1)),G("strong",null,'"'+ye(n.value)+'"',1),T[2]||(T[2]=ht(" not found.",-1))])])):(X(),ne("div",Dp,[...T[0]||(T[0]=[G("p",null,[ht("⚠️ "),G("strong",null,"doxa-map"),ht(": missing or invalid "),G("code",null,"profile-config"),ht(" prop.")],-1),G("p",null,[ht("Example: "),G("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])]))]))}},[["__scopeId","data-v-858dd5a1"]]),jp={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},Gp={prayForThem:"صلِّ من أجلهم",adoptThem:"تَبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين"},Up={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:"},messages:{noDescription:"لا يوجد وصف متاح."}},Kp={title:{prayer:"تقدُّم الصلاة",engagement:"تقدُّم الانخراط",adoption:"تقدُّم التبنّي",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{default:"وسيلة الإيضاح",collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة شعبية"},prayer:{needsPrayer:"لا أحد يصلّي",hasPrayer:"شخص واحد أو أكثر يصلّي",fullPrayerCoverage:"أكثر من 100 شخص يصلّون"},engagement:{needsEngagement:"غير مَخْدُومَة",hasEngagement:"مُخْدُومَة"},adoption:{needsAdoption:"تحتاج إلى تبنٍّ",hasAdoption:"لديها تبنٍّ"},columns:{upgs:"UUPG",population:"السكان"},footer:{total:"الإجمالي"}},Hp={menuComingSoon:"القائمة قادمة قريباً"},zp={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Vp={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPG",separator:" من "},Wp={placeholder:"مجموعة شعبية، مكان، لغة، ديانة",labels:{people:"المجموعة الشعبية:",place:"المكان:",language:"اللغة:",religion:"الديانة:"}},Yp={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},qp={prayForThem:"Für sie beten",adoptThem:"Adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten"},Xp={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Jp={title:{prayer:"Gebetsfortschritt",engagement:"Fortschritt der Arbeit vor Ort",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{default:"Legende",collapsed:"Legende",peopleGroupFallback:"Volksgruppe"},prayer:{needsPrayer:"Niemand betet",hasPrayer:"1+ Menschen beten",fullPrayerCoverage:"100+ Menschen beten"},engagement:{needsEngagement:"Unberührt",hasEngagement:"Engagiert"},adoption:{needsAdoption:"Wartet auf Adoption",hasAdoption:"Adoptiert"},columns:{upgs:"VUVGs",population:"Bevölkerung"},footer:{total:"Gesamt"}},Zp={menuComingSoon:"Menü folgt in Kürze"},Qp={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},eg={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"VUVGs",separator:" von "},tg={placeholder:"Volksgruppe, Ort, Sprache, Religion",labels:{people:"Volksgruppe:",place:"Ort:",language:"Sprache:",religion:"Religion:"}},og={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},ng={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed"},ag={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:"},messages:{noDescription:"No description available."}},rg={title:{prayer:"Prayer Progress",engagement:"Engagement Progress",adoption:"Adoption Progress",languageFamilies:"Language Families",doxaRegions:"Doxa Regions",affinityBlocs:"Affinity Blocs",gospelResources:"Gospel Resources"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"No One Praying",hasPrayer:"1+ People Praying",fullPrayerCoverage:"100+ People Praying"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population"},footer:{total:"Total"}},sg={menuComingSoon:"Menu coming soon"},ig={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},lg={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},cg={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"}},ug={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},dg={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar"},pg={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:"},messages:{noDescription:"No hay descripción disponible."}},gg={title:{prayer:"Progreso de oración",engagement:"Progreso del compromiso",adoption:"Progreso de adopción",languageFamilies:"Familias lingüísticas",doxaRegions:"Regiones Doxa",affinityBlocs:"Bloques de afinidad",gospelResources:"Recursos del Evangelio"},header:{default:"Leyenda",collapsed:"Leyenda",peopleGroupFallback:"Grupo étnico"},prayer:{needsPrayer:"Nadie orando",hasPrayer:"1+ personas orando",fullPrayerCoverage:"100+ personas orando"},engagement:{needsEngagement:"No comprometido",hasEngagement:"Comprometido"},adoption:{needsAdoption:"No adoptado",hasAdoption:"Adoptado"},columns:{upgs:"GENANC",population:"Población"},footer:{total:"Total"}},fg={menuComingSoon:"Menú próximamente"},hg={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},mg={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"GENANC",separator:" de "},bg={placeholder:"Grupo étnico, lugar, idioma, religión",labels:{people:"Grupo étnico:",place:"Lugar:",language:"Idioma:",religion:"Religión:"}},yg={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},_g={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer"},vg={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :"},messages:{noDescription:"Aucune description disponible."}},wg={title:{prayer:"Progression de la prière",engagement:"Progression de l'engagement",adoption:"Progression de l'adoption",languageFamilies:"Familles de langues",doxaRegions:"Régions Doxa",affinityBlocs:"Blocs d'affinité",gospelResources:"Ressources de l'Évangile"},header:{default:"Légende",collapsed:"Légende",peopleGroupFallback:"Peuple"},prayer:{needsPrayer:"Personne ne prie",hasPrayer:"1+ personnes en prière",fullPrayerCoverage:"100+ personnes en prière"},engagement:{needsEngagement:"Non engagé",hasEngagement:"Engagé"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adopté"},columns:{upgs:"UUPG",population:"Population"},footer:{total:"Total"}},kg={menuComingSoon:"Menu bientôt disponible"},Ag={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Sg={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPG",separator:" sur "},xg={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"}},Lg={backToLegend:"लेजेंड पर वापस जाएँ",closeDetailView:"विवरण दृश्य बंद करें"},Tg={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें अपनाएँ",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएँ",switchToDarkMode:"डार्क मोड पर जाएँ",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएँ",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें"},Eg={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Cg={title:{prayer:"प्रार्थना की प्रगति",engagement:"संलग्नता की प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"DOXA क्षेत्र",affinityBlocs:"आत्मीयता ब्लॉक",gospelResources:"सुसमाचार संसाधन"},header:{default:"लेजेंड",collapsed:"लेजेंड",peopleGroupFallback:"जनसमूह"},prayer:{needsPrayer:"कोई प्रार्थना नहीं कर रहा",hasPrayer:"1+ लोग प्रार्थना कर रहे हैं",fullPrayerCoverage:"100+ लोग प्रार्थना कर रहे हैं"},engagement:{needsEngagement:"अनसंपर्कित",hasEngagement:"संपर्कित"},adoption:{needsAdoption:"गोद लेने की ज़रूरत",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPG",population:"जनसंख्या"},footer:{total:"कुल"}},$g={menuComingSoon:"मेनू शीघ्र आ रहा है"},Pg={clusterByRegion:"DOXA क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Mg={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPG",separator:" / "},Ig={placeholder:"जनसमूह, स्थान, भाषा, धर्म",labels:{people:"जनसमूह:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"}},Ng={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},Fg={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Maggiori informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora"},Rg={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Dg={title:{prayer:"Avanzamento della preghiera",engagement:"Avanzamento del coinvolgimento",adoption:"Avanzamento dell'adozione",languageFamilies:"Famiglie linguistiche",doxaRegions:"Regioni Doxa",affinityBlocs:"Blocchi di affinità",gospelResources:"Risorse del Vangelo"},header:{default:"Legenda",collapsed:"Legenda",peopleGroupFallback:"Gruppo etnico"},prayer:{needsPrayer:"Nessuno in preghiera",hasPrayer:"1+ persone in preghiera",fullPrayerCoverage:"100+ persone in preghiera"},engagement:{needsEngagement:"Non coinvolto",hasEngagement:"Coinvolto"},adoption:{needsAdoption:"Da adottare",hasAdoption:"Adottato"},columns:{upgs:"UUPG",population:"Popolazione"},footer:{total:"Totale"}},Og={menuComingSoon:"Menu in arrivo"},Bg={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},jg={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPG",separator:" di "},Gg={placeholder:"Gruppo etnico, luogo, lingua, religione",labels:{people:"Gruppo etnico:",place:"Luogo:",language:"Lingua:",religion:"Religione:"}},Ug={backToLegend:"Voltar à legenda",closeDetailView:"Fechar visualização de detalhes"},Kg={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Redefinir visualização",toggleFullscreen:"Alternar tela cheia",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Configurações de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartilhar e incorporar"},Hg={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:"},messages:{noDescription:"Sem descrição disponível."}},zg={title:{prayer:"Progresso da oração",engagement:"Progresso do engajamento",adoption:"Progresso da adoção",languageFamilies:"Famílias linguísticas",doxaRegions:"Regiões Doxa",affinityBlocs:"Blocos de afinidade",gospelResources:"Recursos do Evangelho"},header:{default:"Legenda",collapsed:"Legenda",peopleGroupFallback:"Grupo étnico"},prayer:{needsPrayer:"Ninguém orando",hasPrayer:"1+ pessoas orando",fullPrayerCoverage:"100+ pessoas orando"},engagement:{needsEngagement:"Não engajado",hasEngagement:"Engajado"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"PNANEs",population:"População"},footer:{total:"Total"}},Vg={menuComingSoon:"Menu em breve"},Wg={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},Yg={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"PNANEs",separator:" de "},qg={placeholder:"Grupo étnico, local, língua, religião",labels:{people:"Grupo étnico:",place:"Local:",language:"Língua:",religion:"Religião:"}},Xg={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},Jg={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută pe ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează"},Zg={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:"},messages:{noDescription:"Nicio descriere disponibilă."}},Qg={title:{prayer:"Progresul rugăciunii",engagement:"Progresul angajării misionare",adoption:"Progresul adoptării",languageFamilies:"Familii de limbi",doxaRegions:"Regiuni Doxa",affinityBlocs:"Blocuri de afinitate",gospelResources:"Resurse ale Evangheliei"},header:{default:"Legendă",collapsed:"Legendă",peopleGroupFallback:"Grup etnolingvistic"},prayer:{needsPrayer:"Nimeni nu se roagă",hasPrayer:"1+ persoane se roagă",fullPrayerCoverage:"100+ persoane se roagă"},engagement:{needsEngagement:"Neangajat misionar",hasEngagement:"Angajat misionar"},adoption:{needsAdoption:"Necesită adoptare",hasAdoption:"Adoptat"},columns:{upgs:"UUPG-uri",population:"Populație"},footer:{total:"Total"}},ef={menuComingSoon:"Meniu în curând"},tf={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},of={header:"TURUL ACTUAL DE RUGĂCIUNE",lap:"Tur",upgs:"UUPG-uri",separator:" din "},nf={placeholder:"Grup etnolingvistic, loc, limbă, religie",labels:{people:"Grup etnolingvistic:",place:"Loc:",language:"Limbă:",religion:"Religie:"}},af={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},rf={prayForThem:"Молитесь за них",adoptThem:"Взять ответственность",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить"},sf={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:"},messages:{noDescription:"Описание недоступно."}},lf={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечения",adoption:"Прогресс принятия ответственности",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{default:"Условные обозначения",collapsed:"Условные обозначения",peopleGroupFallback:"Народ"},prayer:{needsPrayer:"Никто не молится",hasPrayer:"1+ человек молится",fullPrayerCoverage:"100+ человек молятся"},engagement:{needsEngagement:"Невовлечённый",hasEngagement:"Вовлечён"},adoption:{needsAdoption:"Ответственность не взята",hasAdoption:"Ответственность взята"},columns:{upgs:"UUPG",population:"Население"},footer:{total:"Всего"}},cf={menuComingSoon:"Меню скоро появится"},uf={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},df={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPG",separator:" из "},pf={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"}},gf={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},ff={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚合",clusterSettings:"聚合设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入"},hf={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:"},messages:{noDescription:"暂无描述。"}},mf={title:{prayer:"祷告进度",engagement:"接触进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘集团",gospelResources:"福音资源"},header:{default:"图例",collapsed:"图例",peopleGroupFallback:"族群"},prayer:{needsPrayer:"无人祷告",hasPrayer:"1+ 人祷告",fullPrayerCoverage:"100+ 人祷告"},engagement:{needsEngagement:"未接触",hasEngagement:"已接触"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口"},footer:{total:"总计"}},bf={menuComingSoon:"菜单即将推出"},yf={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},_f={header:"当前祷告轮次",lap:"轮次",upgs:"UUPGs",separator:" / "},vf={placeholder:"族群、地点、语言、宗教",labels:{people:"族群:",place:"地点:",language:"语言:",religion:"宗教:"}};/*! + */let Hi;const ca=e=>Hi=e,zi=Symbol();function mr(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var xn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(xn||(xn={}));function Lp(){const e=Ia(!0),t=e.run(()=>me({}));let o=[],n=[];const a=cn({install(r){ca(a),a._a=r,r.provide(zi,a),r.config.globalProperties.$pinia=a,n.forEach(s=>o.push(s)),n=[]},use(r){return this._a?o.push(r):n.push(r),this},_p:o,_a:null,_e:e,_s:new Map,state:t});return a}const Vi=()=>{};function Wi(e,t,o,n=Vi){e.push(t);const a=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),n())};return!o&&ls()&&lu(a),a}function Uo(e,...t){e.slice().forEach(o=>{o(...t)})}const Tp=e=>e(),Yi=Symbol(),br=Symbol();function yr(e,t){e instanceof Map&&t instanceof Map?t.forEach((o,n)=>e.set(n,o)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const o in t){if(!t.hasOwnProperty(o))continue;const n=t[o],a=e[o];mr(a)&&mr(n)&&e.hasOwnProperty(o)&&!Ke(n)&&!Vt(n)?e[o]=yr(a,n):e[o]=n}return e}const Ep=Symbol();function Cp(e){return!mr(e)||!e.hasOwnProperty(Ep)}const{assign:so}=Object;function $p(e){return!!(Ke(e)&&e.effect)}function Pp(e,t,o,n){const{state:a,actions:r,getters:s}=t,i=o.state.value[e];let l;function c(){i||(o.state.value[e]=a?a():{});const u=$u(o.state.value[e]);return so(u,r,Object.keys(s||{}).reduce((f,v)=>(f[v]=cn(Q(()=>{ca(o);const x=o._s.get(e);return s[v].call(x,x)})),f),{}))}return l=qi(e,c,t,o,n,!0),l}function qi(e,t,o={},n,a,r){let s;const i=so({actions:{}},o),l={deep:!0};let c,u,f=[],v=[],x;const T=n.state.value[e];!r&&!T&&(n.state.value[e]={});let w;function E($){let m;c=u=!1,typeof $=="function"?($(n.state.value[e]),m={type:xn.patchFunction,storeId:e,events:x}):(yr(n.state.value[e],$),m={type:xn.patchObject,payload:$,storeId:e,events:x});const j=w=Symbol();Wa().then(()=>{w===j&&(c=!0)}),u=!0,Uo(f,m,n.state.value[e])}const _=r?function(){const{state:m}=o,j=m?m():{};this.$patch(H=>{so(H,j)})}:Vi;function A(){s.stop(),f=[],v=[],n._s.delete(e)}const g=($,m="")=>{if(Yi in $)return $[br]=m,$;const j=function(){ca(n);const H=Array.from(arguments),I=[],W=[];function ue(U){I.push(U)}function C(U){W.push(U)}Uo(v,{args:H,name:j[br],store:S,after:ue,onError:C});let M;try{M=$.apply(this&&this.$id===e?this:S,H)}catch(U){throw Uo(W,U),U}return M instanceof Promise?M.then(U=>(Uo(I,U),U)).catch(U=>(Uo(W,U),Promise.reject(U))):(Uo(I,M),M)};return j[Yi]=!0,j[br]=m,j},k={_p:n,$id:e,$onAction:Wi.bind(null,v),$patch:E,$reset:_,$subscribe($,m={}){const j=Wi(f,$,m.detached,()=>H()),H=s.run(()=>Ye(()=>n.state.value[e],I=>{(m.flush==="sync"?u:c)&&$({storeId:e,type:xn.direct,events:x},I)},so({},l,m)));return j},$dispose:A},S=Io(k);n._s.set(e,S);const O=(n._a&&n._a.runWithContext||Tp)(()=>n._e.run(()=>(s=Ia()).run(()=>t({action:g}))));for(const $ in O){const m=O[$];if(Ke(m)&&!$p(m)||Vt(m))r||(T&&Cp(m)&&(Ke(m)?m.value=T[$]:yr(m,T[$])),n.state.value[e][$]=m);else if(typeof m=="function"){const j=g(m,$);O[$]=j,i.actions[$]=m}}return so(S,O),so(Ce(S),O),Object.defineProperty(S,"$state",{get:()=>n.state.value[e],set:$=>{E(m=>{so(m,$)})}}),n._p.forEach($=>{so(S,s.run(()=>$({store:S,app:n._a,pinia:n,options:i})))}),T&&r&&o.hydrate&&o.hydrate(S.$state,T),c=!0,u=!0,S}/*! #__NO_SIDE_EFFECTS__ */function _r(e,t,o){let n,a;const r=typeof t=="function";typeof e=="string"?(n=e,a=r?o:t):(a=e,n=e.id);function s(i,l){const c=zu();return i=i||(c?$e(zi,null):null),i&&ca(i),i=Hi,i._s.has(n)||(r?qi(n,t,a,i):Pp(n,a,i)),i._s.get(n)}return s.$id=n,s}let Mp=0;const Ip=_r("ui",{state:()=>({_storeInstanceId:++Mp,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>e.theme==="auto"?window.matchMedia("(prefers-color-scheme: dark)").matches:e.theme==="dark",isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(o=>o.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;this.theme=e;const o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"dark":"light"),localStorage.setItem("theme",e)},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:o="info",duration:n=this.toastDuration,action:a=null,persistent:r=!1}=e,s={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:r,createdAt:Date.now()};return this.toasts.push(s),!r&&n>0&&setTimeout(()=>{this.removeToast(s.id)},n),s.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(o=>o.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){const e=localStorage.getItem("theme");e&&this.setTheme(e),new ResizeObserver(o=>{for(const n of o)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",o.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",o=>{this.reducedMotion=o.matches,document.documentElement.setAttribute("data-reduced-motion",o.matches)}))}}}),Np=_r("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(a=[r.lng,r.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),Fp=_r("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=cn({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=cn({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),So=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},Rp={class:"profile-loader"},Dp={key:0,class:"profile-error"},Op={key:1,class:"profile-error"},Bp=So({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){const t=e,o=Q(()=>{if(!t.profileConfig)return null;try{return JSON.parse(t.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",t.profileConfig),null}}),n=Q(()=>{var x;return((x=o.value)==null?void 0:x.profile)||null}),a=Q(()=>{var x;return((x=o.value)==null?void 0:x.tk)||""}),r=Q(()=>{var x;return((x=o.value)==null?void 0:x.dataSource)||"doxa-csv"}),s=Q(()=>{var x;return((x=o.value)==null?void 0:x.colorSet)||"default"}),i=Q(()=>{var x;return((x=o.value)==null?void 0:x.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),l=$e("profileModules",null);if(!l)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./profiles/*.vue"))`');const c=Q(()=>{if(!n.value)return null;const x=`./profiles/${n.value}.vue`;return l[x]?Za(l[x]):(console.error(`[ProfileLoader] Profile not found: "${n.value}". Available:`,Object.keys(l)),null)});wt("mapboxToken",a),wt("dataSource",r),wt("colorSet",s),wt("profileConfig",o),wt("instanceId",i);const u=Ip(),f=Np(),v=Fp();return wt("uiStore",u),wt("mapStore",f),wt("dataStore",v),(x,T)=>(X(),ne("div",Rp,[o.value?c.value?(X(),Xe(ld(c.value),{key:2})):(X(),ne("div",Op,[G("p",null,[T[1]||(T[1]=ht("⚠️ Profile ",-1)),G("strong",null,'"'+ye(n.value)+'"',1),T[2]||(T[2]=ht(" not found.",-1))])])):(X(),ne("div",Dp,[...T[0]||(T[0]=[G("p",null,[ht("⚠️ "),G("strong",null,"doxa-map"),ht(": missing or invalid "),G("code",null,"profile-config"),ht(" prop.")],-1),G("p",null,[ht("Example: "),G("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])]))]))}},[["__scopeId","data-v-858dd5a1"]]),jp={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},Gp={prayForThem:"صلِّ من أجلهم",adoptThem:"تَبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين"},Up={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:"},messages:{noDescription:"لا يوجد وصف متاح."}},Kp={title:{prayer:"تقدُّم الصلاة",engagement:"تقدُّم الانخراط",adoption:"تقدُّم التبنّي",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{default:"وسيلة الإيضاح",collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة شعبية"},prayer:{needsPrayer:"لا أحد يصلّي",hasPrayer:"شخص واحد أو أكثر يصلّي",fullPrayerCoverage:"أكثر من 100 شخص يصلّون"},engagement:{needsEngagement:"غير مَخْدُومَة",hasEngagement:"مَخْدُومَة"},adoption:{needsAdoption:"تحتاج إلى تبنٍّ",hasAdoption:"لديها تبنٍّ"},columns:{upgs:"UUPG",population:"السكان"},footer:{total:"الإجمالي"}},Hp={menuComingSoon:"القائمة قادمة قريباً"},zp={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Vp={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPG",separator:" من "},Wp={placeholder:"مجموعة شعبية، مكان، لغة، ديانة",labels:{people:"المجموعة الشعبية:",place:"المكان:",language:"اللغة:",religion:"الديانة:"}},Yp={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},qp={prayForThem:"Für sie beten",adoptThem:"Adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten"},Xp={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Jp={title:{prayer:"Gebetsfortschritt",engagement:"Fortschritt der Arbeit vor Ort",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{default:"Legende",collapsed:"Legende",peopleGroupFallback:"Volksgruppe"},prayer:{needsPrayer:"Niemand betet",hasPrayer:"1+ Menschen beten",fullPrayerCoverage:"100+ Menschen beten"},engagement:{needsEngagement:"Unberührt",hasEngagement:"Engagiert"},adoption:{needsAdoption:"Wartet auf Adoption",hasAdoption:"Adoptiert"},columns:{upgs:"VUVGs",population:"Bevölkerung"},footer:{total:"Gesamt"}},Zp={menuComingSoon:"Menü folgt in Kürze"},Qp={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},eg={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"VUVGs",separator:" von "},tg={placeholder:"Volksgruppe, Ort, Sprache, Religion",labels:{people:"Volksgruppe:",place:"Ort:",language:"Sprache:",religion:"Religion:"}},og={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},ng={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed"},ag={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:"},messages:{noDescription:"No description available."}},rg={title:{prayer:"Prayer Progress",engagement:"Engagement Progress",adoption:"Adoption Progress",languageFamilies:"Language Families",doxaRegions:"Doxa Regions",affinityBlocs:"Affinity Blocs",gospelResources:"Gospel Resources"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"No One Praying",hasPrayer:"1+ People Praying",fullPrayerCoverage:"100+ People Praying"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population"},footer:{total:"Total"}},sg={menuComingSoon:"Menu coming soon"},ig={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},lg={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},cg={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"}},ug={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},dg={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar"},pg={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:"},messages:{noDescription:"No hay descripción disponible."}},gg={title:{prayer:"Progreso de oración",engagement:"Progreso del compromiso",adoption:"Progreso de adopción",languageFamilies:"Familias lingüísticas",doxaRegions:"Regiones Doxa",affinityBlocs:"Bloques de afinidad",gospelResources:"Recursos del Evangelio"},header:{default:"Leyenda",collapsed:"Leyenda",peopleGroupFallback:"Grupo étnico"},prayer:{needsPrayer:"Nadie orando",hasPrayer:"1+ personas orando",fullPrayerCoverage:"100+ personas orando"},engagement:{needsEngagement:"No comprometido",hasEngagement:"Comprometido"},adoption:{needsAdoption:"No adoptado",hasAdoption:"Adoptado"},columns:{upgs:"GENANC",population:"Población"},footer:{total:"Total"}},fg={menuComingSoon:"Menú próximamente"},hg={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},mg={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"GENANC",separator:" de "},bg={placeholder:"Grupo étnico, lugar, idioma, religión",labels:{people:"Grupo étnico:",place:"Lugar:",language:"Idioma:",religion:"Religión:"}},yg={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},_g={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer"},vg={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :"},messages:{noDescription:"Aucune description disponible."}},wg={title:{prayer:"Progression de la prière",engagement:"Progression de l'engagement",adoption:"Progression de l'adoption",languageFamilies:"Familles de langues",doxaRegions:"Régions Doxa",affinityBlocs:"Blocs d'affinité",gospelResources:"Ressources de l'Évangile"},header:{default:"Légende",collapsed:"Légende",peopleGroupFallback:"Peuple"},prayer:{needsPrayer:"Personne ne prie",hasPrayer:"1+ personnes en prière",fullPrayerCoverage:"100+ personnes en prière"},engagement:{needsEngagement:"Non engagé",hasEngagement:"Engagé"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adopté"},columns:{upgs:"UUPG",population:"Population"},footer:{total:"Total"}},kg={menuComingSoon:"Menu bientôt disponible"},Ag={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Sg={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPG",separator:" sur "},xg={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"}},Lg={backToLegend:"लेजेंड पर वापस जाएँ",closeDetailView:"विवरण दृश्य बंद करें"},Tg={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें अपनाएँ",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएँ",switchToDarkMode:"डार्क मोड पर जाएँ",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएँ",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें"},Eg={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Cg={title:{prayer:"प्रार्थना की प्रगति",engagement:"संलग्नता की प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"DOXA क्षेत्र",affinityBlocs:"आत्मीयता ब्लॉक",gospelResources:"सुसमाचार संसाधन"},header:{default:"लेजेंड",collapsed:"लेजेंड",peopleGroupFallback:"जनसमूह"},prayer:{needsPrayer:"कोई प्रार्थना नहीं कर रहा",hasPrayer:"1+ लोग प्रार्थना कर रहे हैं",fullPrayerCoverage:"100+ लोग प्रार्थना कर रहे हैं"},engagement:{needsEngagement:"अनसंपर्कित",hasEngagement:"संपर्कित"},adoption:{needsAdoption:"गोद लेने की ज़रूरत",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPG",population:"जनसंख्या"},footer:{total:"कुल"}},$g={menuComingSoon:"मेनू शीघ्र आ रहा है"},Pg={clusterByRegion:"DOXA क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Mg={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPG",separator:" / "},Ig={placeholder:"जनसमूह, स्थान, भाषा, धर्म",labels:{people:"जनसमूह:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"}},Ng={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},Fg={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Maggiori informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora"},Rg={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Dg={title:{prayer:"Avanzamento della preghiera",engagement:"Avanzamento del coinvolgimento",adoption:"Avanzamento dell'adozione",languageFamilies:"Famiglie linguistiche",doxaRegions:"Regioni Doxa",affinityBlocs:"Blocchi di affinità",gospelResources:"Risorse del Vangelo"},header:{default:"Legenda",collapsed:"Legenda",peopleGroupFallback:"Gruppo etnico"},prayer:{needsPrayer:"Nessuno in preghiera",hasPrayer:"1+ persone in preghiera",fullPrayerCoverage:"100+ persone in preghiera"},engagement:{needsEngagement:"Non coinvolto",hasEngagement:"Coinvolto"},adoption:{needsAdoption:"Da adottare",hasAdoption:"Adottato"},columns:{upgs:"UUPG",population:"Popolazione"},footer:{total:"Totale"}},Og={menuComingSoon:"Menu in arrivo"},Bg={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},jg={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPG",separator:" di "},Gg={placeholder:"Gruppo etnico, luogo, lingua, religione",labels:{people:"Gruppo etnico:",place:"Luogo:",language:"Lingua:",religion:"Religione:"}},Ug={backToLegend:"Voltar à legenda",closeDetailView:"Fechar visualização de detalhes"},Kg={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Redefinir visualização",toggleFullscreen:"Alternar tela cheia",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Configurações de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartilhar e incorporar"},Hg={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:"},messages:{noDescription:"Sem descrição disponível."}},zg={title:{prayer:"Progresso da oração",engagement:"Progresso do engajamento",adoption:"Progresso da adoção",languageFamilies:"Famílias linguísticas",doxaRegions:"Regiões Doxa",affinityBlocs:"Blocos de afinidade",gospelResources:"Recursos do Evangelho"},header:{default:"Legenda",collapsed:"Legenda",peopleGroupFallback:"Grupo étnico"},prayer:{needsPrayer:"Ninguém orando",hasPrayer:"1+ pessoas orando",fullPrayerCoverage:"100+ pessoas orando"},engagement:{needsEngagement:"Não engajado",hasEngagement:"Engajado"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"PNANEs",population:"População"},footer:{total:"Total"}},Vg={menuComingSoon:"Menu em breve"},Wg={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},Yg={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"PNANEs",separator:" de "},qg={placeholder:"Grupo étnico, local, língua, religião",labels:{people:"Grupo étnico:",place:"Local:",language:"Língua:",religion:"Religião:"}},Xg={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},Jg={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută pe ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează"},Zg={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:"},messages:{noDescription:"Nicio descriere disponibilă."}},Qg={title:{prayer:"Progresul rugăciunii",engagement:"Progresul angajării misionare",adoption:"Progresul adoptării",languageFamilies:"Familii de limbi",doxaRegions:"Regiuni Doxa",affinityBlocs:"Blocuri de afinitate",gospelResources:"Resurse ale Evangheliei"},header:{default:"Legendă",collapsed:"Legendă",peopleGroupFallback:"Grup etnolingvistic"},prayer:{needsPrayer:"Nimeni nu se roagă",hasPrayer:"1+ persoane se roagă",fullPrayerCoverage:"100+ persoane se roagă"},engagement:{needsEngagement:"Neangajat misionar",hasEngagement:"Angajat misionar"},adoption:{needsAdoption:"Necesită adoptare",hasAdoption:"Adoptat"},columns:{upgs:"UUPG-uri",population:"Populație"},footer:{total:"Total"}},ef={menuComingSoon:"Meniu în curând"},tf={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},of={header:"TURUL ACTUAL DE RUGĂCIUNE",lap:"Tur",upgs:"UUPG-uri",separator:" din "},nf={placeholder:"Grup etnolingvistic, loc, limbă, religie",labels:{people:"Grup etnolingvistic:",place:"Loc:",language:"Limbă:",religion:"Religie:"}},af={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},rf={prayForThem:"Молитесь за них",adoptThem:"Взять ответственность",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить"},sf={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:"},messages:{noDescription:"Описание недоступно."}},lf={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечения",adoption:"Прогресс принятия ответственности",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{default:"Условные обозначения",collapsed:"Условные обозначения",peopleGroupFallback:"Народ"},prayer:{needsPrayer:"Никто не молится",hasPrayer:"1+ человек молится",fullPrayerCoverage:"100+ человек молятся"},engagement:{needsEngagement:"Невовлечённый",hasEngagement:"Вовлечён"},adoption:{needsAdoption:"Ответственность не взята",hasAdoption:"Ответственность взята"},columns:{upgs:"UUPG",population:"Население"},footer:{total:"Всего"}},cf={menuComingSoon:"Меню скоро появится"},uf={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},df={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPG",separator:" из "},pf={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"}},gf={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},ff={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚合",clusterSettings:"聚合设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入"},hf={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:"},messages:{noDescription:"暂无描述。"}},mf={title:{prayer:"祷告进度",engagement:"接触进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘集团",gospelResources:"福音资源"},header:{default:"图例",collapsed:"图例",peopleGroupFallback:"族群"},prayer:{needsPrayer:"无人祷告",hasPrayer:"1+ 人祷告",fullPrayerCoverage:"100+ 人祷告"},engagement:{needsEngagement:"未接触",hasEngagement:"已接触"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口"},footer:{total:"总计"}},bf={menuComingSoon:"菜单即将推出"},yf={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},_f={header:"当前祷告轮次",lap:"轮次",upgs:"UUPGs",separator:" / "},vf={placeholder:"族群、地点、语言、宗教",labels:{people:"族群:",place:"地点:",language:"语言:",religion:"宗教:"}};/*! * shared v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. diff --git a/public/js/pplr-data-maps.iife.js b/public/js/pplr-data-maps.iife.js index 6f5d9b34..9a0fa98d 100644 --- a/public/js/pplr-data-maps.iife.js +++ b/public/js/pplr-data-maps.iife.js @@ -25,7 +25,7 @@ let X,Q;class ee{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,th * (c) 2025 Eduardo San Martin Morote * @license MIT */(e);if(!a)return;const n=t._component;g(n)||n.render||n.template||(n.template=a.innerHTML),1===a.nodeType&&(a.textContent="");const l=o(a,!1,function(e){if(e instanceof SVGElement)return"svg";if("function"==typeof MathMLElement&&e instanceof MathMLElement)return"mathml"}(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),l},t};let Sl;const Ml=e=>Sl=e,Tl=Symbol();function Al(e){return e&&"object"==typeof e&&"[object Object]"===Object.prototype.toString.call(e)&&"function"!=typeof e.toJSON}var Rl,Ol;(Ol=Rl||(Rl={})).direct="direct",Ol.patchObject="patch object",Ol.patchFunction="patch function";const Fl=()=>{};function El(e,t,o,a=Fl){e.push(t);const n=()=>{const o=e.indexOf(t);o>-1&&(e.splice(o,1),a())};var l;return!o&&oe()&&(l=n,X&&X.cleanups.push(l)),n}function Il(e,...t){e.slice().forEach(e=>{e(...t)})}const jl=e=>e(),Nl=Symbol(),Dl=Symbol();function $l(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,o)=>e.set(o,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const o in t){if(!t.hasOwnProperty(o))continue;const a=t[o],n=e[o];Al(n)&&Al(a)&&e.hasOwnProperty(o)&&!_t(a)&&!ht(a)?e[o]=$l(n,a):e[o]=a}return e}const zl=Symbol();function Gl(e){return!Al(e)||!e.hasOwnProperty(zl)}const{assign:Bl}=Object;function Wl(e){return!(!_t(e)||!e.effect)}function Ul(e,t,o={},a,n,l){let r;const s=Bl({actions:{}},o),i={deep:!0};let c,d,u,p=[],f=[];const h=a.state.value[e];let g;function b(t){let o;c=d=!1,"function"==typeof t?(t(a.state.value[e]),o={type:Rl.patchFunction,storeId:e,events:u}):($l(a.state.value[e],t),o={type:Rl.patchObject,payload:t,storeId:e,events:u});const n=g=Symbol();Kt().then(()=>{g===n&&(c=!0)}),d=!0,Il(p,o,a.state.value[e])}l||h||(a.state.value[e]={});const m=l?function(){const{state:e}=o,t=e?e():{};this.$patch(e=>{Bl(e,t)})}:Fl;const v=(t,o="")=>{if(Nl in t)return t[Dl]=o,t;const n=function(){Ml(a);const o=Array.from(arguments),l=[],r=[];let s;Il(f,{args:o,name:n[Dl],store:y,after:function(e){l.push(e)},onError:function(e){r.push(e)}});try{s=t.apply(this&&this.$id===e?this:y,o)}catch(i){throw Il(r,i),i}return s instanceof Promise?s.then(e=>(Il(l,e),e)).catch(e=>(Il(r,e),Promise.reject(e))):(Il(l,s),s)};return n[Nl]=!0,n[Dl]=o,n},y=dt({_p:a,$id:e,$onAction:El.bind(null,f),$patch:b,$reset:m,$subscribe(t,o={}){const n=El(p,t,o.detached,()=>l()),l=r.run(()=>fo(()=>a.state.value[e],a=>{("sync"===o.flush?d:c)&&t({storeId:e,type:Rl.direct,events:u},a)},Bl({},i,o)));return n},$dispose:function(){r.stop(),p=[],f=[],a._s.delete(e)}});a._s.set(e,y);const x=(a._a&&a._a.runWithContext||jl)(()=>a._e.run(()=>(r=te()).run(()=>t({action:v}))));for(const k in x){const t=x[k];if(_t(t)&&!Wl(t)||ht(t))l||(h&&Gl(t)&&(_t(t)?t.value=h[k]:$l(t,h[k])),a.state.value[e][k]=t);else if("function"==typeof t){const e=v(t,k);x[k]=e,s.actions[k]=t}}return Bl(y,x),Bl(vt(y),x),Object.defineProperty(y,"$state",{get:()=>a.state.value[e],set:e=>{b(t=>{Bl(t,e)})}}),a._p.forEach(e=>{Bl(y,r.run(()=>e({store:y,app:a._a,pinia:a,options:s})))}),h&&l&&o.hydrate&&o.hydrate(y.$state,h),c=!0,d=!0,y} -/*! #__NO_SIDE_EFFECTS__ */function Vl(e,t,o){let a,n;const l="function"==typeof t;function r(e,o){const r=!(!Cn()&&!ma);(e=e||(r?uo(Tl,null):null))&&Ml(e),(e=Sl)._s.has(a)||(l?Ul(a,t,n,e):function(e,t,o){const{state:a,actions:n,getters:l}=t,r=o.state.value[e];let s;s=Ul(e,function(){r||(o.state.value[e]=a?a():{});const t=At(o.state.value[e]);return Bl(t,n,Object.keys(l||{}).reduce((t,a)=>(t[a]=yt(Dn(()=>{Ml(o);const t=o._s.get(e);return l[a].call(t,t)})),t),{}))},t,o,0,!0)}(a,n,e));return e._s.get(a)}return"string"==typeof e?(a=e,n=l?o:t):(n=e,a=e.id),r.$id=a,r}let Hl=0;const Yl=Vl("ui",{state:()=>({_storeInstanceId:++Hl,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>"auto"===e.theme?window.matchMedia("(prefers-color-scheme: dark)").matches:"dark"===e.theme,isMobile:e=>"mobile"===e.breakpoint,isTablet:e=>"tablet"===e.breakpoint,isDesktop:e=>"desktop"===e.breakpoint||"wide"===e.breakpoint,legendHeight:e=>e._customLegendHeight?e._customLegendHeight:"collapsed"===e.legendState?"48px":"open"===e.legendState?"30%":"fullyOpen"===e.legendState?"calc(100% - 80px)":"48px",caretRotation:e=>"collapsed"===e.legendState?0:90,showPullTab:e=>"open"===e.legendState||"fullyOpen"===e.legendState,getToastsByType:e=>t=>e.toasts.filter(e=>e.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>0===e.openModals.length?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;this.theme=e;const t=this.isDarkTheme;document.documentElement.setAttribute("data-theme",t?"dark":"light"),localStorage.setItem("theme",e)},toggleTheme(){const e="light"===this.theme?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?this.setLegendMode("detail"):this.setLegendMode("prayer")},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;t=e<768?"mobile":e<1024?"tablet":e<1920?"desktop":"wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:o="info",duration:a=this.toastDuration,action:n=null,persistent:l=!1}=e,r={id:this.nextToastId++,message:t,type:o,duration:a,action:n,persistent:l,createdAt:Date.now()};return this.toasts.push(r),!l&&a>0&&setTimeout(()=>{this.removeToast(r.id)},a),r.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(t=>t.id===e);-1!==t&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);-1!==t&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const e=this.openModals.pop();e&&this.modalData.delete(e)}0===this.openModals.length&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){"fullyOpen"===this.legendState?this.legendState="open":"open"===this.legendState?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){"fullyOpen"===this.legendState&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){const e=localStorage.getItem("theme");e&&this.setTheme(e);new ResizeObserver(e=>{for(const t of e)this.updateWindowSize(t.contentRect.width,t.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e=>{"auto"===this.theme&&document.documentElement.setAttribute("data-theme",e.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",e=>{this.reducedMotion=e.matches,document.documentElement.setAttribute("data-reduced-motion",e.matches)}))}}}),Jl=Vl("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let a=1.5;void 0!==o.zoom?a=o.zoom:t&&"function"==typeof t.getZoom&&(a=t.getZoom());let n=[0,0];if(o.center)n=o.center;else if(t&&"function"==typeof t.getCenter){const e=t.getCenter();e&&(n=[e.lng,e.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:a,center:n,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const e=this.allMapIds;this.activeMapId=e.length>0?e[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||0===this.autoFly.items.length)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];"region"===e.type?this.selectRegion(e):"family"===e.type&&this.selectFamily(e)},toggleClusters(e){this.showClusters="boolean"==typeof e?e:!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),ql=Vl("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=yt({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=yt({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var o;return(null==(o=e.sources[t])?void 0:o.features)??null},isLoading:e=>t=>{var o;return(null==(o=e.loadingStates[t])?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return(null==(o=e.loadingStates[t])?void 0:o.error)??null}}}),Kl=(e,t)=>{const o=e.__vccOpts||e;for(const[a,n]of t)o[a]=n;return o},Zl={class:"profile-loader"},Xl={key:0,class:"profile-error"},Ql={key:1,class:"profile-error"},er={__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){const t=e,o=Dn(()=>{if(!t.profileConfig)return null;try{return JSON.parse(t.profileConfig)}catch(ng){return console.error("[ProfileLoader] Invalid profile-config JSON:",t.profileConfig),null}}),a=Dn(()=>{var e;return(null==(e=o.value)?void 0:e.profile)||null}),n=Dn(()=>{var e;return(null==(e=o.value)?void 0:e.tk)||""}),l=Dn(()=>{var e;return(null==(e=o.value)?void 0:e.dataSource)||"doxa-csv"}),r=Dn(()=>{var e;return(null==(e=o.value)?void 0:e.colorSet)||"default"}),s=Dn(()=>{var e;return(null==(e=o.value)?void 0:e.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),i=Object.assign({"./app-profiles/pplr-coverage.vue":()=>Promise.resolve().then(()=>Zu),"./app-profiles/pplr-d3-tree.vue":()=>Promise.resolve().then(()=>dp),"./app-profiles/pplr-index.vue":()=>Promise.resolve().then(()=>gp),"./app-profiles/pplr-language-families.vue":()=>Promise.resolve().then(()=>Lf),"./app-profiles/pplr-pins.vue":()=>Promise.resolve().then(()=>If),"./app-profiles/pplr-religion.vue":()=>Promise.resolve().then(()=>dh),"./app-profiles/pplr-rop-tree.vue":()=>Promise.resolve().then(()=>Ah),"./app-profiles/pplr-rosetta-cards.vue":()=>Promise.resolve().then(()=>jh),"./app-profiles/pplr-semantic-trees.vue":()=>Promise.resolve().then(()=>Hh),"./app-profiles/pplr-translations.vue":()=>Promise.resolve().then(()=>ag)}),c=Dn(()=>{if(!a.value)return null;const e=`./app-profiles/${a.value}.vue`;return i[e]?Mo(i[e]):(console.error(`[ProfileLoader] Profile not found: "${a.value}". Available:`,Object.keys(i)),null)});co("mapboxToken",n),co("dataSource",l),co("colorSet",r),co("profileConfig",o),co("instanceId",s);const d=Yl(),u=Jl(),p=ql();return co("uiStore",d),co("mapStore",u),co("dataStore",p),(e,t)=>(on(),rn("div",Zl,[o.value?c.value?(on(),sn(Jo(c.value),{key:2})):(on(),rn("div",Ql,[fn("p",null,[t[1]||(t[1]=bn("⚠️ Profile ",-1)),fn("strong",null,'"'+q(a.value)+'"',1),t[2]||(t[2]=bn(" not found.",-1))])])):(on(),rn("div",Xl,[...t[0]||(t[0]=[fn("p",null,[bn("⚠️ "),fn("strong",null,"doxa-map"),bn(": missing or invalid "),fn("code",null,"profile-config"),bn(" prop.")],-1),fn("p",null,[bn("Example: "),fn("code",null,'profile-config=\'{"profile":"example-map","tk":"pk.eyJ..."}\'')],-1)])]))]))}},tr=Kl(er,[["styles",[".profile-loader[data-v-99360e71]{width:100%;height:100%;position:relative}.profile-error[data-v-99360e71]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}"]],["__scopeId","data-v-99360e71"]]),or={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},ar={prayForThem:"صلِّ من أجلهم",adoptThem:"تَبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"}},nr={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:"},messages:{noDescription:"لا يوجد وصف متاح."}},lr={title:{prayer:"تقدُّم الصلاة",engagement:"تقدُّم الانخراط",adoption:"تقدُّم التبنّي",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة شعبية"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},engagement:{needsEngagement:"غير مَخْدُومَة",hasEngagement:"مُخْدُومَة"},adoption:{needsAdoption:"تحتاج إلى تبنٍّ",hasAdoption:"لديها تبنٍّ"},columns:{upgs:"UPGs",population:"السكان"},footer:{total:"الإجمالي"}},rr={menuComingSoon:"القائمة قادمة قريباً"},sr={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},ir={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UPGs",separator:" من "},cr={placeholder:"مجموعة شعبية، مكان، لغة، ديانة",labels:{people:"المجموعة الشعبية:",place:"المكان:",language:"اللغة:",religion:"الديانة:"}},dr={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},ur={prayForThem:"Für sie beten",adoptThem:"Adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"}},pr={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},fr={title:{prayer:"Gebetsfortschritt",engagement:"Fortschritt der Arbeit vor Ort",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe"},prayer:{needsPrayer:"Niemand betet",hasPrayer:"1+ Menschen beten",fullPrayerCoverage:"100+ Menschen beten"},engagement:{needsEngagement:"Unberührt",hasEngagement:"Engagiert"},adoption:{needsAdoption:"Wartet auf Adoption",hasAdoption:"Adoptiert"},columns:{upgs:"VUVGs",population:"Bevölkerung"},footer:{total:"Gesamt"}},hr={menuComingSoon:"Menü folgt in Kürze"},gr={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},br={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"VUVGs",separator:" von "},mr={placeholder:"Volksgruppe, Ort, Sprache, Religion",labels:{people:"Volksgruppe:",place:"Ort:",language:"Sprache:",religion:"Religion:"}},vr={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},yr={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"}},xr={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:"},messages:{noDescription:"No description available."}},kr={title:{prayer:"Prayer Progress",engagement:"Engagement Progress",adoption:"Adoption Progress",languageFamilies:"Language Families",doxaRegions:"Doxa Regions",affinityBlocs:"Affinity Blocs",gospelResources:"Gospel Resources"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UPGs",population:"Population"},footer:{total:"Total"}},_r={menuComingSoon:"Menu coming soon"},wr={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},Pr={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UPGs",separator:" of "},Lr={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"}},Cr={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},Sr={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"}},Mr={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:"},messages:{noDescription:"No hay descripción disponible."}},Tr={title:{prayer:"Progreso de oración",engagement:"Progreso del compromiso",adoption:"Progreso de adopción",languageFamilies:"Familias lingüísticas",doxaRegions:"Regiones Doxa",affinityBlocs:"Bloques de afinidad",gospelResources:"Recursos del Evangelio"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo étnico"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},engagement:{needsEngagement:"No comprometido",hasEngagement:"Comprometido"},adoption:{needsAdoption:"No adoptado",hasAdoption:"Adoptado"},columns:{upgs:"GENANC",population:"Población"},footer:{total:"Total"}},Ar={menuComingSoon:"Menú próximamente"},Rr={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},Or={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"GENANC",separator:" de "},Fr={placeholder:"Grupo étnico, lugar, idioma, religión",labels:{people:"Grupo étnico:",place:"Lugar:",language:"Idioma:",religion:"Religión:"}},Er={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},Ir={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"}},jr={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :"},messages:{noDescription:"Aucune description disponible."}},Nr={title:{prayer:"Progression de la prière",engagement:"Progression de l'engagement",adoption:"Progression de l'adoption",languageFamilies:"Familles de langues",doxaRegions:"Régions Doxa",affinityBlocs:"Blocs d'affinité",gospelResources:"Ressources de l'Évangile"},header:{collapsed:"Légende",peopleGroupFallback:"Peuple"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},engagement:{needsEngagement:"Non engagé",hasEngagement:"Engagé"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adopté"},columns:{upgs:"UUPG",population:"Population"},footer:{total:"Total"}},Dr={menuComingSoon:"Menu bientôt disponible"},$r={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},zr={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPG",separator:" sur "},Gr={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"}},Br={backToLegend:"लेजेंड पर वापस जाएँ",closeDetailView:"विवरण दृश्य बंद करें"},Wr={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें अपनाएँ",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएँ",switchToDarkMode:"डार्क मोड पर जाएँ",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएँ",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"}},Ur={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Vr={title:{prayer:"प्रार्थना की प्रगति",engagement:"संलग्नता की प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"DOXA क्षेत्र",affinityBlocs:"आत्मीयता ब्लॉक",gospelResources:"सुसमाचार संसाधन"},header:{default:"लेजेंड",collapsed:"लेजेंड",peopleGroupFallback:"जनसमूह"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},engagement:{needsEngagement:"अनसंपर्कित",hasEngagement:"संपर्कित"},adoption:{needsAdoption:"गोद लेने की ज़रूरत",hasAdoption:"गोद लिया गया"},columns:{upgs:"UPG",population:"जनसंख्या"},footer:{total:"कुल"}},Hr={menuComingSoon:"मेनू शीघ्र आ रहा है"},Yr={clusterByRegion:"DOXA क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Jr={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UPG",separator:" / "},qr={placeholder:"जनसमूह, स्थान, भाषा, धर्म",labels:{people:"जनसमूह:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"}},Kr={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},Zr={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Maggiori informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"}},Xr={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Qr={title:{prayer:"Avanzamento della preghiera",engagement:"Avanzamento del coinvolgimento",adoption:"Avanzamento dell'adozione",languageFamilies:"Famiglie linguistiche",doxaRegions:"Regioni Doxa",affinityBlocs:"Blocchi di affinità",gospelResources:"Risorse del Vangelo"},header:{default:"Legenda",collapsed:"Legenda",peopleGroupFallback:"Gruppo etnico"},prayer:{needsPrayer:"Nessuno in preghiera",hasPrayer:"1+ persone in preghiera",fullPrayerCoverage:"100+ persone in preghiera"},engagement:{needsEngagement:"Non coinvolto",hasEngagement:"Coinvolto"},adoption:{needsAdoption:"Da adottare",hasAdoption:"Adottato"},columns:{upgs:"UUPG",population:"Popolazione"},footer:{total:"Totale"}},es={menuComingSoon:"Menu in arrivo"},ts={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},os={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPG",separator:" di "},as={placeholder:"Gruppo etnico, luogo, lingua, religione",labels:{people:"Gruppo etnico:",place:"Luogo:",language:"Lingua:",religion:"Religione:"}},ns={backToLegend:"Voltar à legenda",closeDetailView:"Fechar visualização de detalhes"},ls={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Redefinir visualização",toggleFullscreen:"Alternar tela cheia",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Configurações de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"}},rs={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:"},messages:{noDescription:"Sem descrição disponível."}},ss={title:{prayer:"Progresso da oração",engagement:"Progresso do engajamento",adoption:"Progresso da adoção",languageFamilies:"Famílias linguísticas",doxaRegions:"Regiões Doxa",affinityBlocs:"Blocos de afinidade",gospelResources:"Recursos do Evangelho"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo étnico"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},engagement:{needsEngagement:"Não engajado",hasEngagement:"Engajado"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"PNANEs",population:"População"},footer:{total:"Total"}},is={menuComingSoon:"Menu em breve"},cs={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},ds={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"PNANEs",separator:" de "},us={placeholder:"Grupo étnico, local, língua, religião",labels:{people:"Grupo étnico:",place:"Local:",language:"Língua:",religion:"Religião:"}},ps={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},fs={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută pe ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"}},hs={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:"},messages:{noDescription:"Nicio descriere disponibilă."}},gs={title:{prayer:"Progresul rugăciunii",engagement:"Progresul angajării misionare",adoption:"Progresul adoptării",languageFamilies:"Familii de limbi",doxaRegions:"Regiuni Doxa",affinityBlocs:"Blocuri de afinitate",gospelResources:"Resurse ale Evangheliei"},header:{default:"Legendă",collapsed:"Legendă",peopleGroupFallback:"Grup etnolingvistic"},prayer:{needsPrayer:"Nimeni nu se roagă",hasPrayer:"1+ persoane se roagă",fullPrayerCoverage:"100+ persoane se roagă"},engagement:{needsEngagement:"Neangajat misionar",hasEngagement:"Angajat misionar"},adoption:{needsAdoption:"Necesită adoptare",hasAdoption:"Adoptat"},columns:{upgs:"UUPG-uri",population:"Populație"},footer:{total:"Total"}},bs={menuComingSoon:"Meniu în curând"},ms={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},vs={header:"TURUL ACTUAL DE RUGĂCIUNE",lap:"Tur",upgs:"UUPG-uri",separator:" din "},ys={placeholder:"Grup etnolingvistic, loc, limbă, religie",labels:{people:"Grup etnolingvistic:",place:"Loc:",language:"Limbă:",religion:"Religie:"}},xs={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},ks={prayForThem:"Молитесь за них",adoptThem:"Взять ответственность",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"}},_s={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:"},messages:{noDescription:"Описание недоступно."}},ws={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечения",adoption:"Прогресс принятия ответственности",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народ"},prayer:{needsPrayer:"Никто не молится",hasPrayer:"1+ человек молится",fullPrayerCoverage:"100+ человек молятся"},engagement:{needsEngagement:"Невовлечённый",hasEngagement:"Вовлечён"},adoption:{needsAdoption:"Ответственность не взята",hasAdoption:"Ответственность взята"},columns:{upgs:"UUPG",population:"Население"},footer:{total:"Всего"}},Ps={menuComingSoon:"Меню скоро появится"},Ls={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},Cs={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPG",separator:" из "},Ss={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"}},Ms={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},Ts={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚合",clusterSettings:"聚合设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"}},As={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:"},messages:{noDescription:"暂无描述。"}},Rs={title:{prayer:"祷告进度",engagement:"接触进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘集团",gospelResources:"福音资源"},header:{collapsed:"图例",peopleGroupFallback:"族群"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},engagement:{needsEngagement:"未接触",hasEngagement:"已接触"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UPGs",population:"人口"},footer:{total:"总计"}},Os={menuComingSoon:"菜单即将推出"},Fs={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},Es={header:"当前祷告轮次",lap:"轮次",upgs:"UPGs",separator:" / "},Is={placeholder:"族群、地点、语言、宗教",labels:{people:"族群:",place:"地点:",language:"语言:",religion:"宗教:"}}; +/*! #__NO_SIDE_EFFECTS__ */function Vl(e,t,o){let a,n;const l="function"==typeof t;function r(e,o){const r=!(!Cn()&&!ma);(e=e||(r?uo(Tl,null):null))&&Ml(e),(e=Sl)._s.has(a)||(l?Ul(a,t,n,e):function(e,t,o){const{state:a,actions:n,getters:l}=t,r=o.state.value[e];let s;s=Ul(e,function(){r||(o.state.value[e]=a?a():{});const t=At(o.state.value[e]);return Bl(t,n,Object.keys(l||{}).reduce((t,a)=>(t[a]=yt(Dn(()=>{Ml(o);const t=o._s.get(e);return l[a].call(t,t)})),t),{}))},t,o,0,!0)}(a,n,e));return e._s.get(a)}return"string"==typeof e?(a=e,n=l?o:t):(n=e,a=e.id),r.$id=a,r}let Hl=0;const Yl=Vl("ui",{state:()=>({_storeInstanceId:++Hl,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>"auto"===e.theme?window.matchMedia("(prefers-color-scheme: dark)").matches:"dark"===e.theme,isMobile:e=>"mobile"===e.breakpoint,isTablet:e=>"tablet"===e.breakpoint,isDesktop:e=>"desktop"===e.breakpoint||"wide"===e.breakpoint,legendHeight:e=>e._customLegendHeight?e._customLegendHeight:"collapsed"===e.legendState?"48px":"open"===e.legendState?"30%":"fullyOpen"===e.legendState?"calc(100% - 80px)":"48px",caretRotation:e=>"collapsed"===e.legendState?0:90,showPullTab:e=>"open"===e.legendState||"fullyOpen"===e.legendState,getToastsByType:e=>t=>e.toasts.filter(e=>e.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>0===e.openModals.length?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;this.theme=e;const t=this.isDarkTheme;document.documentElement.setAttribute("data-theme",t?"dark":"light"),localStorage.setItem("theme",e)},toggleTheme(){const e="light"===this.theme?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?this.setLegendMode("detail"):this.setLegendMode("prayer")},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;t=e<768?"mobile":e<1024?"tablet":e<1920?"desktop":"wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:o="info",duration:a=this.toastDuration,action:n=null,persistent:l=!1}=e,r={id:this.nextToastId++,message:t,type:o,duration:a,action:n,persistent:l,createdAt:Date.now()};return this.toasts.push(r),!l&&a>0&&setTimeout(()=>{this.removeToast(r.id)},a),r.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(t=>t.id===e);-1!==t&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);-1!==t&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const e=this.openModals.pop();e&&this.modalData.delete(e)}0===this.openModals.length&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){"fullyOpen"===this.legendState?this.legendState="open":"open"===this.legendState?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){"fullyOpen"===this.legendState&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){const e=localStorage.getItem("theme");e&&this.setTheme(e);new ResizeObserver(e=>{for(const t of e)this.updateWindowSize(t.contentRect.width,t.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e=>{"auto"===this.theme&&document.documentElement.setAttribute("data-theme",e.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",e=>{this.reducedMotion=e.matches,document.documentElement.setAttribute("data-reduced-motion",e.matches)}))}}}),Jl=Vl("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let a=1.5;void 0!==o.zoom?a=o.zoom:t&&"function"==typeof t.getZoom&&(a=t.getZoom());let n=[0,0];if(o.center)n=o.center;else if(t&&"function"==typeof t.getCenter){const e=t.getCenter();e&&(n=[e.lng,e.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:a,center:n,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const e=this.allMapIds;this.activeMapId=e.length>0?e[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||0===this.autoFly.items.length)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];"region"===e.type?this.selectRegion(e):"family"===e.type&&this.selectFamily(e)},toggleClusters(e){this.showClusters="boolean"==typeof e?e:!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),ql=Vl("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=yt({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=yt({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var o;return(null==(o=e.sources[t])?void 0:o.features)??null},isLoading:e=>t=>{var o;return(null==(o=e.loadingStates[t])?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return(null==(o=e.loadingStates[t])?void 0:o.error)??null}}}),Kl=(e,t)=>{const o=e.__vccOpts||e;for(const[a,n]of t)o[a]=n;return o},Zl={class:"profile-loader"},Xl={key:0,class:"profile-error"},Ql={key:1,class:"profile-error"},er={__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){const t=e,o=Dn(()=>{if(!t.profileConfig)return null;try{return JSON.parse(t.profileConfig)}catch(ng){return console.error("[ProfileLoader] Invalid profile-config JSON:",t.profileConfig),null}}),a=Dn(()=>{var e;return(null==(e=o.value)?void 0:e.profile)||null}),n=Dn(()=>{var e;return(null==(e=o.value)?void 0:e.tk)||""}),l=Dn(()=>{var e;return(null==(e=o.value)?void 0:e.dataSource)||"doxa-csv"}),r=Dn(()=>{var e;return(null==(e=o.value)?void 0:e.colorSet)||"default"}),s=Dn(()=>{var e;return(null==(e=o.value)?void 0:e.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),i=Object.assign({"./app-profiles/pplr-coverage.vue":()=>Promise.resolve().then(()=>Zu),"./app-profiles/pplr-d3-tree.vue":()=>Promise.resolve().then(()=>dp),"./app-profiles/pplr-index.vue":()=>Promise.resolve().then(()=>gp),"./app-profiles/pplr-language-families.vue":()=>Promise.resolve().then(()=>Lf),"./app-profiles/pplr-pins.vue":()=>Promise.resolve().then(()=>If),"./app-profiles/pplr-religion.vue":()=>Promise.resolve().then(()=>dh),"./app-profiles/pplr-rop-tree.vue":()=>Promise.resolve().then(()=>Ah),"./app-profiles/pplr-rosetta-cards.vue":()=>Promise.resolve().then(()=>jh),"./app-profiles/pplr-semantic-trees.vue":()=>Promise.resolve().then(()=>Hh),"./app-profiles/pplr-translations.vue":()=>Promise.resolve().then(()=>ag)}),c=Dn(()=>{if(!a.value)return null;const e=`./app-profiles/${a.value}.vue`;return i[e]?Mo(i[e]):(console.error(`[ProfileLoader] Profile not found: "${a.value}". Available:`,Object.keys(i)),null)});co("mapboxToken",n),co("dataSource",l),co("colorSet",r),co("profileConfig",o),co("instanceId",s);const d=Yl(),u=Jl(),p=ql();return co("uiStore",d),co("mapStore",u),co("dataStore",p),(e,t)=>(on(),rn("div",Zl,[o.value?c.value?(on(),sn(Jo(c.value),{key:2})):(on(),rn("div",Ql,[fn("p",null,[t[1]||(t[1]=bn("⚠️ Profile ",-1)),fn("strong",null,'"'+q(a.value)+'"',1),t[2]||(t[2]=bn(" not found.",-1))])])):(on(),rn("div",Xl,[...t[0]||(t[0]=[fn("p",null,[bn("⚠️ "),fn("strong",null,"doxa-map"),bn(": missing or invalid "),fn("code",null,"profile-config"),bn(" prop.")],-1),fn("p",null,[bn("Example: "),fn("code",null,'profile-config=\'{"profile":"example-map","tk":"pk.eyJ..."}\'')],-1)])]))]))}},tr=Kl(er,[["styles",[".profile-loader[data-v-99360e71]{width:100%;height:100%;position:relative}.profile-error[data-v-99360e71]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}"]],["__scopeId","data-v-99360e71"]]),or={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},ar={prayForThem:"صلِّ من أجلهم",adoptThem:"تَبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"}},nr={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:"},messages:{noDescription:"لا يوجد وصف متاح."}},lr={title:{prayer:"تقدُّم الصلاة",engagement:"تقدُّم الانخراط",adoption:"تقدُّم التبنّي",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة شعبية"},prayer:{needsPrayer:"تحتاج إلى صلاة",hasPrayer:"لديها صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},engagement:{needsEngagement:"غير مَخْدُومَة",hasEngagement:"مَخْدُومَة"},adoption:{needsAdoption:"تحتاج إلى تبنٍّ",hasAdoption:"لديها تبنٍّ"},columns:{upgs:"UPG",population:"السكان"},footer:{total:"الإجمالي"}},rr={menuComingSoon:"القائمة قادمة قريباً"},sr={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},ir={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UPG",separator:" من "},cr={placeholder:"مجموعة شعبية، مكان، لغة، ديانة",labels:{people:"المجموعة الشعبية:",place:"المكان:",language:"اللغة:",religion:"الديانة:"}},dr={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},ur={prayForThem:"Für sie beten",adoptThem:"Adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"}},pr={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},fr={title:{prayer:"Gebetsfortschritt",engagement:"Fortschritt der Arbeit vor Ort",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe"},prayer:{needsPrayer:"Niemand betet",hasPrayer:"1+ Menschen beten",fullPrayerCoverage:"100+ Menschen beten"},engagement:{needsEngagement:"Unberührt",hasEngagement:"Engagiert"},adoption:{needsAdoption:"Wartet auf Adoption",hasAdoption:"Adoptiert"},columns:{upgs:"VUVGs",population:"Bevölkerung"},footer:{total:"Gesamt"}},hr={menuComingSoon:"Menü folgt in Kürze"},gr={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},br={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"VUVGs",separator:" von "},mr={placeholder:"Volksgruppe, Ort, Sprache, Religion",labels:{people:"Volksgruppe:",place:"Ort:",language:"Sprache:",religion:"Religion:"}},vr={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},yr={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"}},xr={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:"},messages:{noDescription:"No description available."}},kr={title:{prayer:"Prayer Progress",engagement:"Engagement Progress",adoption:"Adoption Progress",languageFamilies:"Language Families",doxaRegions:"Doxa Regions",affinityBlocs:"Affinity Blocs",gospelResources:"Gospel Resources"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UPGs",population:"Population"},footer:{total:"Total"}},_r={menuComingSoon:"Menu coming soon"},wr={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},Pr={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UPGs",separator:" of "},Lr={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"}},Cr={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},Sr={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"}},Mr={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:"},messages:{noDescription:"No hay descripción disponible."}},Tr={title:{prayer:"Progreso de oración",engagement:"Progreso del compromiso",adoption:"Progreso de adopción",languageFamilies:"Familias lingüísticas",doxaRegions:"Regiones Doxa",affinityBlocs:"Bloques de afinidad",gospelResources:"Recursos del Evangelio"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo étnico"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},engagement:{needsEngagement:"No comprometido",hasEngagement:"Comprometido"},adoption:{needsAdoption:"No adoptado",hasAdoption:"Adoptado"},columns:{upgs:"GENANC",population:"Población"},footer:{total:"Total"}},Ar={menuComingSoon:"Menú próximamente"},Rr={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},Or={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"GENANC",separator:" de "},Fr={placeholder:"Grupo étnico, lugar, idioma, religión",labels:{people:"Grupo étnico:",place:"Lugar:",language:"Idioma:",religion:"Religión:"}},Er={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},Ir={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"}},jr={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :"},messages:{noDescription:"Aucune description disponible."}},Nr={title:{prayer:"Progression de la prière",engagement:"Progression de l'engagement",adoption:"Progression de l'adoption",languageFamilies:"Familles de langues",doxaRegions:"Régions Doxa",affinityBlocs:"Blocs d'affinité",gospelResources:"Ressources de l'Évangile"},header:{collapsed:"Légende",peopleGroupFallback:"Peuple"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},engagement:{needsEngagement:"Non engagé",hasEngagement:"Engagé"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adopté"},columns:{upgs:"UUPG",population:"Population"},footer:{total:"Total"}},Dr={menuComingSoon:"Menu bientôt disponible"},$r={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},zr={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPG",separator:" sur "},Gr={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"}},Br={backToLegend:"लेजेंड पर वापस जाएँ",closeDetailView:"विवरण दृश्य बंद करें"},Wr={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें अपनाएँ",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएँ",switchToDarkMode:"डार्क मोड पर जाएँ",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएँ",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"}},Ur={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Vr={title:{prayer:"प्रार्थना की प्रगति",engagement:"संलग्नता की प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"DOXA क्षेत्र",affinityBlocs:"आत्मीयता ब्लॉक",gospelResources:"सुसमाचार संसाधन"},header:{default:"लेजेंड",collapsed:"लेजेंड",peopleGroupFallback:"जनसमूह"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},engagement:{needsEngagement:"अनसंपर्कित",hasEngagement:"संपर्कित"},adoption:{needsAdoption:"गोद लेने की ज़रूरत",hasAdoption:"गोद लिया गया"},columns:{upgs:"UPG",population:"जनसंख्या"},footer:{total:"कुल"}},Hr={menuComingSoon:"मेनू शीघ्र आ रहा है"},Yr={clusterByRegion:"DOXA क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Jr={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UPG",separator:" / "},qr={placeholder:"जनसमूह, स्थान, भाषा, धर्म",labels:{people:"जनसमूह:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"}},Kr={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},Zr={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Maggiori informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"}},Xr={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Qr={title:{prayer:"Avanzamento della preghiera",engagement:"Avanzamento del coinvolgimento",adoption:"Avanzamento dell'adozione",languageFamilies:"Famiglie linguistiche",doxaRegions:"Regioni Doxa",affinityBlocs:"Blocchi di affinità",gospelResources:"Risorse del Vangelo"},header:{default:"Legenda",collapsed:"Legenda",peopleGroupFallback:"Gruppo etnico"},prayer:{needsPrayer:"Nessuno in preghiera",hasPrayer:"1+ persone in preghiera",fullPrayerCoverage:"100+ persone in preghiera"},engagement:{needsEngagement:"Non coinvolto",hasEngagement:"Coinvolto"},adoption:{needsAdoption:"Da adottare",hasAdoption:"Adottato"},columns:{upgs:"UUPG",population:"Popolazione"},footer:{total:"Totale"}},es={menuComingSoon:"Menu in arrivo"},ts={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},os={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPG",separator:" di "},as={placeholder:"Gruppo etnico, luogo, lingua, religione",labels:{people:"Gruppo etnico:",place:"Luogo:",language:"Lingua:",religion:"Religione:"}},ns={backToLegend:"Voltar à legenda",closeDetailView:"Fechar visualização de detalhes"},ls={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Redefinir visualização",toggleFullscreen:"Alternar tela cheia",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Configurações de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"}},rs={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:"},messages:{noDescription:"Sem descrição disponível."}},ss={title:{prayer:"Progresso da oração",engagement:"Progresso do engajamento",adoption:"Progresso da adoção",languageFamilies:"Famílias linguísticas",doxaRegions:"Regiões Doxa",affinityBlocs:"Blocos de afinidade",gospelResources:"Recursos do Evangelho"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo étnico"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},engagement:{needsEngagement:"Não engajado",hasEngagement:"Engajado"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"PNANEs",population:"População"},footer:{total:"Total"}},is={menuComingSoon:"Menu em breve"},cs={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},ds={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"PNANEs",separator:" de "},us={placeholder:"Grupo étnico, local, língua, religião",labels:{people:"Grupo étnico:",place:"Local:",language:"Língua:",religion:"Religião:"}},ps={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},fs={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută pe ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"}},hs={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:"},messages:{noDescription:"Nicio descriere disponibilă."}},gs={title:{prayer:"Progresul rugăciunii",engagement:"Progresul angajării misionare",adoption:"Progresul adoptării",languageFamilies:"Familii de limbi",doxaRegions:"Regiuni Doxa",affinityBlocs:"Blocuri de afinitate",gospelResources:"Resurse ale Evangheliei"},header:{default:"Legendă",collapsed:"Legendă",peopleGroupFallback:"Grup etnolingvistic"},prayer:{needsPrayer:"Nimeni nu se roagă",hasPrayer:"1+ persoane se roagă",fullPrayerCoverage:"100+ persoane se roagă"},engagement:{needsEngagement:"Neangajat misionar",hasEngagement:"Angajat misionar"},adoption:{needsAdoption:"Necesită adoptare",hasAdoption:"Adoptat"},columns:{upgs:"UUPG-uri",population:"Populație"},footer:{total:"Total"}},bs={menuComingSoon:"Meniu în curând"},ms={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},vs={header:"TURUL ACTUAL DE RUGĂCIUNE",lap:"Tur",upgs:"UUPG-uri",separator:" din "},ys={placeholder:"Grup etnolingvistic, loc, limbă, religie",labels:{people:"Grup etnolingvistic:",place:"Loc:",language:"Limbă:",religion:"Religie:"}},xs={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},ks={prayForThem:"Молитесь за них",adoptThem:"Взять ответственность",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"}},_s={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:"},messages:{noDescription:"Описание недоступно."}},ws={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечения",adoption:"Прогресс принятия ответственности",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народ"},prayer:{needsPrayer:"Никто не молится",hasPrayer:"1+ человек молится",fullPrayerCoverage:"100+ человек молятся"},engagement:{needsEngagement:"Невовлечённый",hasEngagement:"Вовлечён"},adoption:{needsAdoption:"Ответственность не взята",hasAdoption:"Ответственность взята"},columns:{upgs:"UUPG",population:"Население"},footer:{total:"Всего"}},Ps={menuComingSoon:"Меню скоро появится"},Ls={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},Cs={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPG",separator:" из "},Ss={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"}},Ms={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},Ts={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚合",clusterSettings:"聚合设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"}},As={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:"},messages:{noDescription:"暂无描述。"}},Rs={title:{prayer:"祷告进度",engagement:"接触进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘集团",gospelResources:"福音资源"},header:{collapsed:"图例",peopleGroupFallback:"族群"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},engagement:{needsEngagement:"未接触",hasEngagement:"已接触"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UPGs",population:"人口"},footer:{total:"总计"}},Os={menuComingSoon:"菜单即将推出"},Fs={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},Es={header:"当前祷告轮次",lap:"轮次",upgs:"UPGs",separator:" / "},Is={placeholder:"族群、地点、语言、宗教",labels:{people:"族群:",place:"地点:",language:"语言:",religion:"宗教:"}}; /*! * shared v9.14.5 * (c) 2025 kazuya kawaguchi