diff --git a/.DS_Store b/.DS_Store index 20d0eea9..e0094cba 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/car_inventory/__pycache__/settings.cpython-311.pyc b/car_inventory/__pycache__/settings.cpython-311.pyc index be89bf12..eeca0380 100644 Binary files a/car_inventory/__pycache__/settings.cpython-311.pyc and b/car_inventory/__pycache__/settings.cpython-311.pyc differ diff --git a/generate.py b/generate.py index dfca8a4e..1fc182bc 100644 --- a/generate.py +++ b/generate.py @@ -1,3 +1,9 @@ +import os +import django + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "car_inventory.settings") +django.setup() + from inventory.models import * from rich import print import random @@ -94,7 +100,7 @@ def run(): for vin in vin_list: try: for _ in range(15): - dealer = Dealer.objects.get(user__email="ismail.mosa.ibrahim@gmail.com") + dealer = Dealer.objects.get(user__email="marwan@tenhal.sa") vin = f"{vin[:-4]}{random.randint(0, 9)}{random.randint(0, 9)}{random.randint(0, 9)}{random.randint(0, 9)}" result = decodevin(vin) make = CarMake.objects.get(name=result["maker"]) @@ -126,3 +132,6 @@ def run(): print(make, model, serie, trim) except Exception as e: print(e) + +if __name__ == "__main__": + run() \ No newline at end of file diff --git a/inventory/__pycache__/forms.cpython-311.pyc b/inventory/__pycache__/forms.cpython-311.pyc index be128d82..f69735c7 100644 Binary files a/inventory/__pycache__/forms.cpython-311.pyc and b/inventory/__pycache__/forms.cpython-311.pyc differ diff --git a/inventory/__pycache__/models.cpython-311.pyc b/inventory/__pycache__/models.cpython-311.pyc index 1b4cb585..24ef713d 100644 Binary files a/inventory/__pycache__/models.cpython-311.pyc and b/inventory/__pycache__/models.cpython-311.pyc differ diff --git a/inventory/__pycache__/urls.cpython-311.pyc b/inventory/__pycache__/urls.cpython-311.pyc index 21aaa983..6206ea0f 100644 Binary files a/inventory/__pycache__/urls.cpython-311.pyc and b/inventory/__pycache__/urls.cpython-311.pyc differ diff --git a/inventory/__pycache__/views.cpython-311.pyc b/inventory/__pycache__/views.cpython-311.pyc index 1b46c40b..837ff834 100644 Binary files a/inventory/__pycache__/views.cpython-311.pyc and b/inventory/__pycache__/views.cpython-311.pyc differ diff --git a/inventory/forms.py b/inventory/forms.py index 409c5ad5..309006c0 100644 --- a/inventory/forms.py +++ b/inventory/forms.py @@ -1,5 +1,7 @@ +from appointment.models import Appointment, Service, StaffMember from django.urls import reverse from django_countries.widgets import CountrySelectWidget +from django_ledger.models import CustomerModel from phonenumber_field.formfields import PhoneNumberField from django.core.validators import MinLengthValidator from django.core.validators import RegexValidator @@ -64,7 +66,7 @@ class StaffForm(forms.ModelForm): email = forms.EmailField( required=True, label="Email", - widget=forms.EmailInput(attrs={"class": "form-control"}), + widget=forms.EmailInput(attrs={"class": "form-control form-control-sm"}), ) class Meta: @@ -773,3 +775,5 @@ class EstimateModelCreateForm(EstimateModelCreateFormBase): def get_customer_queryset(self): return self.USER_MODEL.dealer.entity.get_customers() + + diff --git a/inventory/migrations/0018_customer_user.py b/inventory/migrations/0018_customer_user.py new file mode 100644 index 00000000..c33f8ff6 --- /dev/null +++ b/inventory/migrations/0018_customer_user.py @@ -0,0 +1,22 @@ +# Generated by Django 5.1.5 on 2025-02-11 00:23 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventory', '0017_car_hash'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AddField( + model_name='customer', + name='user', + field=models.OneToOneField(default=4, on_delete=django.db.models.deletion.CASCADE, related_name='customer_profile', to=settings.AUTH_USER_MODEL), + preserve_default=False, + ), + ] diff --git a/inventory/models.py b/inventory/models.py index a148689c..881c3010 100644 --- a/inventory/models.py +++ b/inventory/models.py @@ -1007,6 +1007,7 @@ class Customer(models.Model): dealer = models.ForeignKey( Dealer, on_delete=models.CASCADE, related_name="customers" ) + user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='customer_profile') title = models.CharField( choices=Title.choices, default=Title.NA, max_length=10, verbose_name=_("Title") ) diff --git a/inventory/signals.py b/inventory/signals.py index 1dcfe2e4..60cda31b 100644 --- a/inventory/signals.py +++ b/inventory/signals.py @@ -664,6 +664,23 @@ def create_customer(sender, instance, created, **kwargs): print(f"Customer created: {name}") +@receiver(post_save, sender=models.Customer) +def create_customer_user(sender, instance, created, **kwargs): + if created: + user = User.objects.create( + username=instance.email, + email=instance.email, + password=None, + first_name=instance.first_name, + last_name=instance.last_name + ) + user.is_active = True + user.is_staff = True + user.save() + instance.user = user + instance.save() + + # Create Item @receiver(post_save, sender=models.Car) def create_item_model(sender, instance, created, **kwargs): diff --git a/inventory/templatetags/num2words_tags.py b/inventory/templatetags/num2words_tags.py index 6cf589fa..788d3080 100644 --- a/inventory/templatetags/num2words_tags.py +++ b/inventory/templatetags/num2words_tags.py @@ -4,7 +4,7 @@ from num2words import num2words register = template.Library() @register.filter -def num_to_words(value, lang='en'): +def num_to_words(value, lang='ar'): try: return num2words(value, lang=lang) except: diff --git a/inventory/urls.py b/inventory/urls.py index 33b34d14..01cdcbb5 100644 --- a/inventory/urls.py +++ b/inventory/urls.py @@ -159,6 +159,7 @@ urlpatterns = [ views.mark_notification_as_read, name="mark_notification_as_read", ), + path('crm/calender/', views.EmployeeCalendarView.as_view(), name='calendar_list'), # Vendor URLs path("vendors", views.VendorListView.as_view(), name="vendor_list"), path("vendors//", views.vendorDetailView, name="vendor_detail"), diff --git a/inventory/views.py b/inventory/views.py index c6c7cf92..68be434b 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -112,6 +112,7 @@ from pyzbar.pyzbar import decode from django.core.files.storage import default_storage from plans.models import Plan,PlanPricing from django_ledger.utils import accruable_net_summary +from appointment.views_admin import fetch_user_appointments logger = logging.getLogger(__name__) @@ -2889,12 +2890,14 @@ class InvoicePreviewView(LoginRequiredMixin, DetailView): template_name = "sales/invoices/invoice_preview.html" def get_context_data(self, **kwargs): + dealer = get_user_type(self.request) invoice = kwargs.get("object") if invoice.get_itemtxs_data(): # data = get_financial_values(invoice) calculator = CarFinanceCalculator(invoice) finance_data = calculator.get_finance_data() kwargs["data"] = finance_data + kwargs['dealer'] = dealer # kwargs["vat_amount"] = data["vat_amount"] # kwargs["total"] = data["grand_total"] # kwargs["discount_amount"] = data["discount_amount"] @@ -4154,4 +4157,14 @@ class PnLAPIView(DjangoLedgerSecurityMixIn, EntityUnitMixIn, View): }, status=401) +class EmployeeCalendarView(ListView): + template_name = 'crm/employee_calendar.html' + model = Appointment + context_object_name = 'appointments' + + # def get_context_data(self): + # self.context['dealer'] = get_user_type(self.request) + # dealer = + # return Appointment.objects.all() + diff --git a/locale/ar/LC_MESSAGES/django.mo b/locale/ar/LC_MESSAGES/django.mo index acf0f596..ec5c7523 100644 Binary files a/locale/ar/LC_MESSAGES/django.mo and b/locale/ar/LC_MESSAGES/django.mo differ diff --git a/locale/ar/LC_MESSAGES/django.po b/locale/ar/LC_MESSAGES/django.po index c55972b5..6817aa54 100644 --- a/locale/ar/LC_MESSAGES/django.po +++ b/locale/ar/LC_MESSAGES/django.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-07 17:09+0300\n" +"POT-Creation-Date: 2025-02-11 05:34+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,17 +21,19 @@ msgstr "" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: api/models.py:6 inventory/models.py:345 -#: templates/inventory/car_detail.html:19 templates/inventory/car_form.html:35 +#: api/models.py:6 inventory/models.py:328 +#: templates/inventory/car_detail.html:19 templates/inventory/car_form.html:33 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:31 #: templates/inventory/car_inventory.html:53 #: templates/inventory/car_list.html:67 templates/inventory/car_list.html:69 #: templates/inventory/transfer_details.html:69 +#: templates/sales/estimates/estimate_detail.html:126 #: templates/sales/estimates/sale_order_preview.html:238 +#: templates/sales/invoices/invoice_detail.html:218 msgid "VIN" msgstr "رقم الهيكل" -#: car_inventory/settings.py:160 car_inventory/settings.py:309 +#: car_inventory/settings.py:160 car_inventory/settings.py:317 #: templates/crm/opportunities/opportunity_detail.html:35 #: templates/dashboards/accounting.html:35 #: templates/dashboards/accounting.html:39 @@ -43,84 +45,84 @@ msgstr "رقم الهيكل" #: templates/sales/invoices/invoice_detail.html:86 #: templates/sales/invoices/invoice_detail.html:138 #: templates/sales/invoices/invoice_detail.html:140 -#: templates/sales/invoices/invoice_preview.html:226 -#: templates/sales/invoices/invoice_preview.html:230 -#: templates/sales/invoices/invoice_preview.html:237 +#: templates/sales/invoices/invoice_preview.html:232 +#: templates/sales/invoices/invoice_preview.html:236 +#: templates/sales/invoices/invoice_preview.html:243 #: templates/subscriptions/subscription_plan.html:41 msgid "SAR" msgstr "ريال" -#: car_inventory/settings.py:249 +#: car_inventory/settings.py:257 #: venv/lib/python3.11/site-packages/appointments/settings.py:136 msgid "English" msgstr "الإنجليزية" -#: car_inventory/settings.py:250 +#: car_inventory/settings.py:258 msgid "Arabic" msgstr "العربية" -#: car_inventory/settings.py:331 templates/header.html:323 +#: car_inventory/settings.py:340 templates/header.html:331 #: templates/welcome.html:57 msgid "Haikal" msgstr "هيكل" -#: inventory/forms.py:289 inventory/models.py:642 +#: inventory/forms.py:291 inventory/models.py:654 #: templates/inventory/car_detail.html:82 msgid "Custom Date" msgstr "تاريخ البطاقة الجمركية" -#: inventory/forms.py:360 +#: inventory/forms.py:362 msgid "Both exterior and interior colors must be selected." msgstr "يجب اختيار اللونين الخارجي والداخلي." -#: inventory/forms.py:431 inventory/models.py:1076 inventory/models.py:1376 +#: inventory/forms.py:433 inventory/models.py:1089 inventory/models.py:1394 #: templates/account/email_change.html:5 templates/account/email_change.html:9 msgid "Email Address" msgstr "عنوان البريد الإلكتروني" -#: inventory/forms.py:435 +#: inventory/forms.py:437 #: venv/lib/python3.11/site-packages/appointment/views.py:424 #: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1915 msgid "Email address" msgstr "عنوان البريد الإلكتروني" -#: inventory/forms.py:436 templates/crm/leads/lead_list.html:49 +#: inventory/forms.py:438 templates/crm/leads/lead_list.html:49 #: templates/customers/customer_list.html:45 #: templates/vendors/vendors_list.html:49 msgid "email" msgstr "البريد الإلكتروني" -#: inventory/forms.py:441 +#: inventory/forms.py:443 msgid "You must add an email." msgstr "يجب إضافة بريد إلكتروني." -#: inventory/forms.py:446 inventory/forms.py:450 +#: inventory/forms.py:448 inventory/forms.py:452 #: templates/account/login.html:35 templates/account/login.html:37 #: venv/lib/python3.11/site-packages/django_ledger/forms/auth.py:15 msgid "Password" msgstr "كلمة المرور" -#: inventory/forms.py:455 inventory/forms.py:469 inventory/forms.py:529 -#: inventory/forms.py:549 inventory/forms.py:567 inventory/forms.py:582 +#: inventory/forms.py:457 inventory/forms.py:471 inventory/forms.py:531 +#: inventory/forms.py:551 inventory/forms.py:569 inventory/forms.py:584 #: venv/lib/python3.11/site-packages/django/forms/fields.py:95 msgid "This field is required." msgstr "هذا الحقل مطلوب." -#: inventory/forms.py:460 inventory/forms.py:464 +#: inventory/forms.py:462 inventory/forms.py:466 msgid "Confirm Password" msgstr "تأكيد كلمة المرور" -#: inventory/forms.py:474 +#: inventory/forms.py:476 msgid "I accept the Terms and Privacy Policy" msgstr "أوافق على الشروط وسياسة الخصوصية" -#: inventory/forms.py:482 +#: inventory/forms.py:484 msgid "You must accept the terms and privacy policy." msgstr "يجب أن تقبل الشروط وسياسة الخصوصية." -#: inventory/forms.py:489 inventory/models.py:301 inventory/models.py:591 -#: inventory/models.py:604 inventory/models.py:900 inventory/models.py:1042 -#: inventory/models.py:1070 templates/administration/manage_service.html:22 +#: inventory/forms.py:491 inventory/models.py:284 inventory/models.py:603 +#: inventory/models.py:616 inventory/models.py:912 inventory/models.py:1055 +#: inventory/models.py:1083 templates/administration/manage_service.html:22 #: templates/administration/service_list.html:23 #: templates/administration/staff_list.html:34 #: templates/administration/user_profile.html:226 @@ -141,28 +143,28 @@ msgstr "يجب أن تقبل الشروط وسياسة الخصوصية." msgid "Name" msgstr "الاسم" -#: inventory/forms.py:493 inventory/models.py:818 inventory/models.py:1373 +#: inventory/forms.py:495 inventory/models.py:830 inventory/models.py:1391 msgid "English Name" msgstr "الاسم بالإنجليزية" -#: inventory/forms.py:498 +#: inventory/forms.py:500 msgid "Please enter an English Name." msgstr "يرجى إدخال اسم باللغة الإنجليزية." -#: inventory/forms.py:503 inventory/forms.py:507 inventory/models.py:302 -#: inventory/models.py:592 inventory/models.py:605 inventory/models.py:817 -#: inventory/models.py:901 inventory/models.py:1043 inventory/models.py:1071 -#: inventory/models.py:1372 templates/users/user_detail.html:48 +#: inventory/forms.py:505 inventory/forms.py:509 inventory/models.py:285 +#: inventory/models.py:604 inventory/models.py:617 inventory/models.py:829 +#: inventory/models.py:913 inventory/models.py:1056 inventory/models.py:1084 +#: inventory/models.py:1390 templates/users/user_detail.html:48 msgid "Arabic Name" msgstr "الاسم بالعربية" -#: inventory/forms.py:512 +#: inventory/forms.py:514 msgid "Please enter an Arabic name." msgstr "يرجى إدخال اسم باللغة العربية." -#: inventory/forms.py:517 inventory/models.py:819 inventory/models.py:902 -#: inventory/models.py:1017 inventory/models.py:1048 inventory/models.py:1075 -#: inventory/models.py:1095 inventory/models.py:1375 +#: inventory/forms.py:519 inventory/models.py:831 inventory/models.py:914 +#: inventory/models.py:1030 inventory/models.py:1061 inventory/models.py:1088 +#: inventory/models.py:1108 inventory/models.py:1393 #: templates/administration/staff_index.html:123 #: templates/crm/leads/lead_list.html:55 #: templates/crm/opportunities/opportunity_detail.html:221 @@ -174,7 +176,7 @@ msgstr "يرجى إدخال اسم باللغة العربية." msgid "Phone Number" msgstr "رقم الهاتف" -#: inventory/forms.py:523 templates/administration/display_appointment.html:49 +#: inventory/forms.py:525 templates/administration/display_appointment.html:55 #: templates/appointment/appointment_client_information.html:57 #: templates/crm/leads/lead_detail.html:79 #: templates/dealers/dealer_detail.html:99 @@ -188,36 +190,36 @@ msgstr "رقم الهاتف" msgid "Phone" msgstr "الهاتف" -#: inventory/forms.py:530 +#: inventory/forms.py:532 msgid "Phone number must be in the format 05xxxxxxxx" msgstr "يجب أن يكون رقم الهاتف بالصيغة 05xxxxxxxx" -#: inventory/forms.py:538 templates/organizations/organization_detail.html:8 +#: inventory/forms.py:540 templates/organizations/organization_detail.html:8 #: templates/organizations/organization_list.html:49 msgid "CRN" msgstr "رقم السجل التجاري" -#: inventory/forms.py:542 inventory/models.py:810 inventory/models.py:1045 -#: inventory/models.py:1367 +#: inventory/forms.py:544 inventory/models.py:822 inventory/models.py:1058 +#: inventory/models.py:1385 msgid "Commercial Registration Number" msgstr "رقم السجل التجاري" -#: inventory/forms.py:556 templates/organizations/organization_detail.html:9 +#: inventory/forms.py:558 templates/organizations/organization_detail.html:9 #: templates/organizations/organization_list.html:54 msgid "VRN" msgstr "الرقم الضريبي" -#: inventory/forms.py:560 inventory/models.py:815 inventory/models.py:1047 -#: inventory/models.py:1370 +#: inventory/forms.py:562 inventory/models.py:827 inventory/models.py:1060 +#: inventory/models.py:1388 msgid "VAT Registration Number" msgstr "رقم التسجيل في ضريبة القيمة المضافة" -#: inventory/forms.py:568 +#: inventory/forms.py:570 msgid "VAT Registration Number must be 15 characters." msgstr "يجب أن يكون رقم التسجيل الضريبي مكونًا من 15 حرفًا." -#: inventory/forms.py:573 inventory/models.py:821 inventory/models.py:1020 -#: inventory/models.py:1050 inventory/models.py:1078 inventory/models.py:1378 +#: inventory/forms.py:575 inventory/models.py:833 inventory/models.py:1033 +#: inventory/models.py:1063 inventory/models.py:1091 inventory/models.py:1396 #: templates/crm/leads/lead_detail.html:109 #: templates/customers/customer_list.html:60 #: templates/customers/view_customer.html:100 @@ -231,29 +233,29 @@ msgstr "يجب أن يكون رقم التسجيل الضريبي مكونًا msgid "Address" msgstr "العنوان" -#: inventory/forms.py:618 inventory/models.py:1576 +#: inventory/forms.py:620 inventory/models.py:1594 msgid "cash" msgstr "نقداً" -#: inventory/forms.py:619 inventory/models.py:1577 +#: inventory/forms.py:621 inventory/models.py:1595 msgid "credit" msgstr "دائن" -#: inventory/forms.py:620 inventory/models.py:1578 +#: inventory/forms.py:622 inventory/models.py:1596 #: templates/inventory/car_detail.html:124 #: templates/inventory/transfer_car.html:23 msgid "transfer" msgstr "نقل" -#: inventory/forms.py:621 inventory/models.py:1579 +#: inventory/forms.py:623 inventory/models.py:1597 msgid "debit" msgstr "مدين" -#: inventory/forms.py:622 inventory/models.py:1580 +#: inventory/forms.py:624 inventory/models.py:1598 msgid "SADAD" msgstr "سداد" -#: inventory/forms.py:740 inventory/forms.py:757 inventory/models.py:1026 +#: inventory/forms.py:750 inventory/forms.py:767 inventory/models.py:1039 #: templates/crm/opportunities/opportunity_form.html:22 #: templates/sales/estimates/estimate_detail.html:86 #: templates/sales/estimates/estimate_list.html:15 @@ -270,7 +272,7 @@ msgstr "سداد" msgid "Customer" msgstr "العميل" -#: inventory/forms.py:745 inventory/forms.py:756 +#: inventory/forms.py:755 inventory/forms.py:766 #: templates/ledger/bills/bill_detail.html:104 #: templates/sales/estimates/estimate_preview.html:265 #: templates/sales/estimates/sale_order_preview.html:229 @@ -279,90 +281,90 @@ msgstr "العميل" msgid "Terms" msgstr "الشروط" -#: inventory/forms.py:751 inventory/forms.py:755 inventory/models.py:999 +#: inventory/forms.py:761 inventory/forms.py:765 inventory/models.py:1012 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/estimate_table.html:11 msgid "Title" msgstr "العنوان" -#: inventory/models.py:120 inventory/models.py:408 inventory/models.py:448 -#: inventory/models.py:493 inventory/models.py:639 inventory/models.py:654 -#: inventory/models.py:698 inventory/models.py:1101 inventory/models.py:1274 +#: inventory/models.py:103 inventory/models.py:396 inventory/models.py:460 +#: inventory/models.py:505 inventory/models.py:651 inventory/models.py:666 +#: inventory/models.py:710 inventory/models.py:1292 #: templates/crm/leads/lead_list.html:43 #: templates/crm/opportunities/opportunity_form.html:35 #: templates/inventory/transfer_details.html:70 msgid "Car" msgstr "سيارة" -#: inventory/models.py:121 +#: inventory/models.py:104 msgid "Light Commercial" msgstr "مركبات تجارية خفيفة" -#: inventory/models.py:122 +#: inventory/models.py:105 msgid "Heavy-Duty Tractors" msgstr "جرارات ثقيلة" -#: inventory/models.py:123 +#: inventory/models.py:106 msgid "Trailers" msgstr "مقطورات" -#: inventory/models.py:124 +#: inventory/models.py:107 msgid "Medium Trucks" msgstr "شاحنات متوسطة" -#: inventory/models.py:125 +#: inventory/models.py:108 msgid "Buses" msgstr "حافلات" -#: inventory/models.py:126 +#: inventory/models.py:109 msgid "Motorcycles" msgstr "دراجات نارية" -#: inventory/models.py:127 +#: inventory/models.py:110 msgid "Buggy" msgstr "باجي" -#: inventory/models.py:128 +#: inventory/models.py:111 msgid "Moto ATV" msgstr "موتو ATV" -#: inventory/models.py:129 +#: inventory/models.py:112 msgid "Scooters" msgstr "دراجات سكوتر" -#: inventory/models.py:130 +#: inventory/models.py:113 msgid "Karting" msgstr "كارتينج" -#: inventory/models.py:131 +#: inventory/models.py:114 msgid "ATV" msgstr "مركبات ATV" -#: inventory/models.py:132 +#: inventory/models.py:115 msgid "Snowmobiles" msgstr "دراجات الثلج" -#: inventory/models.py:139 +#: inventory/models.py:122 msgid "logo" msgstr "الشعار" -#: inventory/models.py:278 templates/ledger/bills/bill_detail.html:191 +#: inventory/models.py:261 templates/ledger/bills/bill_detail.html:191 #: templates/sales/estimates/estimate_detail.html:101 #: templates/sales/estimates/estimate_list.html:29 #: templates/sales/invoices/invoice_detail.html:193 #: templates/sales/invoices/invoice_list.html:36 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:338 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:343 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:223 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:300 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:192 msgid "Draft" msgstr "مسودة" -#: inventory/models.py:279 templates/ledger/bills/bill_detail.html:195 +#: inventory/models.py:262 templates/ledger/bills/bill_detail.html:195 #: templates/sales/estimates/estimate_detail.html:105 #: templates/sales/estimates/estimate_list.html:33 #: templates/sales/invoices/invoice_detail.html:197 #: templates/sales/invoices/invoice_list.html:32 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:340 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:345 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:225 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:302 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:194 @@ -370,68 +372,68 @@ msgstr "مسودة" msgid "Approved" msgstr "تمت الموافقة" -#: inventory/models.py:280 inventory/models.py:944 +#: inventory/models.py:263 inventory/models.py:956 #: templates/crm/leads/lead_detail.html:46 #: templates/crm/leads/lead_list.html:125 msgid "Pending" msgstr "قيد الانتظار" -#: inventory/models.py:281 +#: inventory/models.py:264 msgid "Accepted" msgstr "تم القبول" -#: inventory/models.py:282 templates/administration/staff_index.html:83 +#: inventory/models.py:265 templates/administration/staff_index.html:83 #: venv/lib/python3.11/site-packages/appointment/templates/administration/staff_index.html:329 msgid "Success" msgstr "ناجحة" -#: inventory/models.py:283 templates/sales/estimates/estimate_preview.html:243 +#: inventory/models.py:266 templates/sales/estimates/estimate_preview.html:243 msgid "Reject" msgstr "رفض" -#: inventory/models.py:284 +#: inventory/models.py:267 msgid "Cancelled" msgstr "ملغى" -#: inventory/models.py:288 templates/inventory/car_inventory.html:99 +#: inventory/models.py:271 templates/inventory/car_inventory.html:99 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html:21 msgid "Available" msgstr "متاح" -#: inventory/models.py:289 templates/inventory/car_inventory.html:101 +#: inventory/models.py:272 templates/inventory/car_inventory.html:101 msgid "Sold" msgstr "تم البيع" -#: inventory/models.py:290 templates/inventory/car_inventory.html:103 +#: inventory/models.py:273 templates/inventory/car_inventory.html:103 msgid "Hold" msgstr "في الانتظار" -#: inventory/models.py:291 templates/inventory/car_inventory.html:107 +#: inventory/models.py:274 templates/inventory/car_inventory.html:107 msgid "Damaged" msgstr "تالف" -#: inventory/models.py:292 templates/index.html:22 +#: inventory/models.py:275 templates/index.html:22 #: templates/inventory/car_inventory.html:105 msgid "Reserved" msgstr "محجوزة" -#: inventory/models.py:293 templates/inventory/car_location_form.html:8 +#: inventory/models.py:276 templates/inventory/car_location_form.html:8 #: templates/inventory/transfer_preview.html:213 msgid "Transfer" msgstr "نقل" -#: inventory/models.py:296 inventory/models.py:943 +#: inventory/models.py:279 inventory/models.py:955 #: templates/crm/leads/lead_detail.html:44 #: templates/crm/leads/lead_list.html:123 #: templates/inventory/car_inventory.html:68 msgid "New" msgstr "جديد" -#: inventory/models.py:297 templates/inventory/car_inventory.html:70 +#: inventory/models.py:280 templates/inventory/car_inventory.html:70 msgid "Used" msgstr "مستعمل" -#: inventory/models.py:303 inventory/models.py:673 +#: inventory/models.py:286 inventory/models.py:685 #: templates/administration/manage_day_off.html:63 #: templates/administration/manage_service.html:33 #: templates/administration/user_profile.html:93 @@ -447,15 +449,17 @@ msgstr "مستعمل" #: venv/lib/python3.11/site-packages/django_ledger/forms/chart_of_accounts.py:73 #: venv/lib/python3.11/site-packages/django_ledger/models/data_import.py:78 #: venv/lib/python3.11/site-packages/django_ledger/models/items.py:1144 -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:314 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:374 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:9 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:11 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:14 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:46 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:49 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:14 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:49 msgid "Description" msgstr "الوصف" -#: inventory/models.py:305 templates/administration/manage_service.html:55 +#: inventory/models.py:288 templates/administration/manage_service.html:55 #: templates/administration/service_list.html:25 #: templates/administration/user_profile.html:229 #: templates/inventory/transfer_details.html:72 @@ -464,19 +468,19 @@ msgstr "الوصف" msgid "Price" msgstr "السعر" -#: inventory/models.py:307 +#: inventory/models.py:290 msgid "taxable" msgstr "خاضع للضريبة" -#: inventory/models.py:311 +#: inventory/models.py:294 msgid "Unit of Measurement" msgstr "وحدة القياس" -#: inventory/models.py:314 inventory/models.py:347 inventory/models.py:853 +#: inventory/models.py:297 inventory/models.py:330 inventory/models.py:865 msgid "Dealer" msgstr "المعرض" -#: inventory/models.py:319 templates/inventory/transfer_preview.html:229 +#: inventory/models.py:302 templates/inventory/transfer_preview.html:229 #: templates/ledger/bills/bill_detail.html:213 #: templates/sales/estimates/estimate_preview.html:273 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:94 @@ -495,56 +499,60 @@ msgstr "المعرض" msgid "Item" msgstr "العنصر" -#: inventory/models.py:337 inventory/models.py:338 -#: templates/sales/estimates/estimate_detail.html:157 +#: inventory/models.py:320 inventory/models.py:321 +#: templates/sales/estimates/estimate_detail.html:159 #: templates/sales/estimates/estimate_preview.html:295 #: templates/sales/estimates/sale_order_preview.html:266 -#: templates/sales/invoices/invoice_detail.html:248 +#: templates/sales/invoices/invoice_detail.html:250 msgid "Additional Services" msgstr "الخدمات الإضافية" -#: inventory/models.py:356 inventory/models.py:1386 -#: templates/inventory/car_detail.html:60 templates/inventory/car_form.html:137 +#: inventory/models.py:339 inventory/models.py:1404 +#: templates/inventory/car_detail.html:60 templates/inventory/car_form.html:135 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:166 #: templates/ledger/bills/bill_list.html:46 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:359 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:364 #: venv/lib/python3.11/site-packages/django_ledger/models/vendor.py:191 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_table.html:12 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/vendor/tags/vendor_table.html:10 msgid "Vendor" msgstr "المورد" -#: inventory/models.py:364 templates/sales/estimates/estimate_detail.html:123 +#: inventory/models.py:347 inventory/models.py:1121 +#: templates/sales/estimates/estimate_detail.html:123 #: templates/sales/estimates/sale_order_preview.html:239 #: templates/sales/invoices/invoice_detail.html:215 msgid "Make" msgstr "الصانع" -#: inventory/models.py:372 templates/sales/estimates/estimate_detail.html:124 +#: inventory/models.py:355 inventory/models.py:1128 +#: templates/sales/estimates/estimate_detail.html:124 #: templates/sales/estimates/sale_order_preview.html:240 #: templates/sales/invoices/invoice_detail.html:216 msgid "Model" msgstr "الموديل" -#: inventory/models.py:374 templates/inventory/car_form.html:59 +#: inventory/models.py:357 inventory/models.py:1131 +#: templates/inventory/car_form.html:56 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:61 #: templates/inventory/car_inventory.html:54 +#: templates/ledger/reports/components/period_navigator.html:21 #: templates/sales/estimates/estimate_detail.html:125 #: templates/sales/estimates/sale_order_preview.html:241 #: templates/sales/invoices/invoice_detail.html:217 msgid "Year" msgstr "السنة" -#: inventory/models.py:381 templates/inventory/car_form.html:69 +#: inventory/models.py:364 templates/inventory/car_form.html:66 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:121 msgid "Series" msgstr "السلسلة" -#: inventory/models.py:389 +#: inventory/models.py:372 msgid "Trim" msgstr "الفئة" -#: inventory/models.py:395 inventory/models.py:1144 inventory/models.py:1282 +#: inventory/models.py:378 inventory/models.py:1157 inventory/models.py:1300 #: templates/crm/leads/lead_detail.html:42 #: templates/inventory/car_detail.html:43 #: templates/inventory/car_detail.html:306 @@ -562,56 +570,60 @@ msgstr "الفئة" msgid "Status" msgstr "الحالة" -#: inventory/models.py:401 templates/inventory/car_detail.html:47 -#: templates/inventory/car_form.html:150 +#: inventory/models.py:384 templates/inventory/car_detail.html:47 +#: templates/inventory/car_form.html:148 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:183 #: templates/inventory/car_list.html:177 msgid "Stock Type" msgstr "نوع المخزون" -#: inventory/models.py:403 inventory/models.py:466 -#: templates/inventory/car_detail.html:65 templates/inventory/car_form.html:190 +#: inventory/models.py:386 inventory/models.py:478 +#: templates/inventory/car_detail.html:65 templates/inventory/car_form.html:186 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:232 #: templates/inventory/car_list.html:200 msgid "Remarks" msgstr "ملاحظات" -#: inventory/models.py:404 templates/inventory/car_detail.html:51 -#: templates/inventory/car_form.html:162 +#: inventory/models.py:387 templates/inventory/car_detail.html:51 +#: templates/inventory/car_form.html:160 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:198 #: templates/inventory/car_list.html:191 templates/inventory/car_list.html:192 msgid "Mileage" msgstr "عدد الكيلومترات" -#: inventory/models.py:405 templates/inventory/car_detail.html:55 -#: templates/inventory/car_form.html:176 +#: inventory/models.py:388 templates/inventory/car_detail.html:55 +#: templates/inventory/car_form.html:173 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:215 msgid "Receiving Date" msgstr "تاريخ الاستلام" -#: inventory/models.py:409 templates/customers/view_customer.html:137 +#: inventory/models.py:389 +msgid "Hash" +msgstr "رمز" + +#: inventory/models.py:397 templates/customers/view_customer.html:137 #: templates/header.html:72 templates/sales/estimates/estimate_form.html:16 msgid "Cars" msgstr "السيارات" -#: inventory/models.py:454 +#: inventory/models.py:466 msgid "From Dealer" msgstr "من معرض" -#: inventory/models.py:460 +#: inventory/models.py:472 msgid "To Dealer" msgstr "الى معرض" -#: inventory/models.py:463 +#: inventory/models.py:475 msgid "Transfer Date" msgstr "تاريخ النقل" -#: inventory/models.py:465 templates/inventory/transfer_preview.html:230 +#: inventory/models.py:477 templates/inventory/transfer_preview.html:230 #: templates/ledger/bills/bill_detail.html:214 -#: templates/sales/estimates/estimate_detail.html:126 +#: templates/sales/estimates/estimate_detail.html:127 #: templates/sales/estimates/estimate_preview.html:274 #: templates/sales/estimates/sale_order_preview.html:242 -#: templates/sales/invoices/invoice_detail.html:218 +#: templates/sales/invoices/invoice_detail.html:219 #: venv/lib/python3.11/site-packages/django_ledger/models/items.py:1068 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:97 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html:21 @@ -624,160 +636,160 @@ msgstr "تاريخ النقل" msgid "Quantity" msgstr "الكمية" -#: inventory/models.py:474 inventory/models.py:676 inventory/models.py:1383 +#: inventory/models.py:486 inventory/models.py:688 inventory/models.py:1401 msgid "Created At" msgstr "تاريخ الإنشاء" -#: inventory/models.py:475 inventory/models.py:830 +#: inventory/models.py:487 inventory/models.py:842 msgid "Updated At" msgstr "تم التحديث" -#: inventory/models.py:481 +#: inventory/models.py:493 msgid "Car Transfer Log" msgstr "سجل نقل السيارة" -#: inventory/models.py:482 +#: inventory/models.py:494 msgid "Car Transfer Logs" msgstr "سجلات نقل السيارات" -#: inventory/models.py:499 templates/inventory/car_detail.html:252 +#: inventory/models.py:511 templates/inventory/car_detail.html:252 msgid "Reserved By" msgstr "محجوز بواسطة" -#: inventory/models.py:501 +#: inventory/models.py:513 msgid "Reserved At" msgstr "تاريخ الحجز" -#: inventory/models.py:502 +#: inventory/models.py:514 msgid "Reserved Until" msgstr "محجوز حتى" -#: inventory/models.py:511 templates/inventory/car_detail.html:386 +#: inventory/models.py:523 templates/inventory/car_detail.html:386 msgid "Car Reservation" msgstr "حجز السيارة" -#: inventory/models.py:512 +#: inventory/models.py:524 msgid "Car Reservations" msgstr "حجوزات السيارات" -#: inventory/models.py:522 templates/inventory/car_detail.html:151 +#: inventory/models.py:534 templates/inventory/car_detail.html:151 msgid "Cost Price" msgstr "سعر التكلفة" -#: inventory/models.py:525 templates/inventory/car_detail.html:155 +#: inventory/models.py:537 templates/inventory/car_detail.html:155 msgid "Selling Price" msgstr "سعر البيع" -#: inventory/models.py:530 templates/inventory/car_detail.html:159 -#: templates/sales/estimates/estimate_detail.html:151 -#: templates/sales/invoices/invoice_detail.html:236 +#: inventory/models.py:542 templates/inventory/car_detail.html:159 +#: templates/sales/estimates/estimate_detail.html:153 +#: templates/sales/invoices/invoice_detail.html:238 msgid "Discount Amount" msgstr "مبلغ الخصم" -#: inventory/models.py:586 inventory/models.py:587 +#: inventory/models.py:598 inventory/models.py:599 msgid "Car Financial Details" msgstr "تفاصيل المالية للسيارة" -#: inventory/models.py:593 inventory/models.py:606 +#: inventory/models.py:605 inventory/models.py:618 msgid "RGB" msgstr "آر جي بي" -#: inventory/models.py:596 inventory/models.py:597 +#: inventory/models.py:608 inventory/models.py:609 #: templates/inventory/add_colors.html:13 msgid "Exterior Colors" msgstr "الألوان الخارجية" -#: inventory/models.py:609 inventory/models.py:610 +#: inventory/models.py:621 inventory/models.py:622 #: templates/inventory/add_colors.html:32 msgid "Interior Colors" msgstr "الألوان الداخلية" -#: inventory/models.py:626 +#: inventory/models.py:638 msgid "Color" msgstr "اللون" -#: inventory/models.py:627 +#: inventory/models.py:639 msgid "Colors" msgstr "الألوان" -#: inventory/models.py:641 templates/inventory/car_detail.html:78 +#: inventory/models.py:653 templates/inventory/car_detail.html:78 msgid "Custom Number" msgstr "رقم البطاقة الجمركية" -#: inventory/models.py:645 templates/inventory/car_detail.html:87 +#: inventory/models.py:657 templates/inventory/car_detail.html:87 #: templates/inventory/car_detail.html:356 msgid "Custom Card" msgstr "البطاقة الجمركية" -#: inventory/models.py:646 +#: inventory/models.py:658 msgid "Custom Cards" msgstr "البطاقات الجمركية" -#: inventory/models.py:660 inventory/models.py:1290 +#: inventory/models.py:672 inventory/models.py:1308 msgid "Owner" msgstr "المالك" -#: inventory/models.py:661 +#: inventory/models.py:673 msgid "Dealer who owns the car." msgstr "التاجر الذي يمتلك السيارة." -#: inventory/models.py:667 inventory/models.py:923 +#: inventory/models.py:679 inventory/models.py:935 msgid "Showroom" msgstr "صالة العرض" -#: inventory/models.py:668 +#: inventory/models.py:680 msgid "Dealer where the car is displayed (can be the owner)." msgstr "التاجر الذي تُعرض السيارة في صالته (يمكن أن يكون المالك)." -#: inventory/models.py:674 +#: inventory/models.py:686 msgid "Optional description about the showroom placement." msgstr "وصف اختياري حول وضع السيارة في صالة العرض." -#: inventory/models.py:677 +#: inventory/models.py:689 msgid "Last Updated" msgstr "آخر تحديث" -#: inventory/models.py:680 +#: inventory/models.py:692 msgid "Car Location" msgstr "موقع السيارة" -#: inventory/models.py:681 +#: inventory/models.py:693 msgid "Car Locations" msgstr "مواقف السيارات" -#: inventory/models.py:700 +#: inventory/models.py:712 msgid "Plate Number" msgstr "رقم اللوحة" -#: inventory/models.py:701 +#: inventory/models.py:713 msgid "Text 1" msgstr "النص 1" -#: inventory/models.py:702 +#: inventory/models.py:714 msgid "Text 2" msgstr "النص 2" -#: inventory/models.py:703 +#: inventory/models.py:715 msgid "Text 3" msgstr "النص 3" -#: inventory/models.py:704 templates/inventory/car_detail.html:103 +#: inventory/models.py:716 templates/inventory/car_detail.html:103 msgid "Registration Date" msgstr "تاريخ التسجيل" -#: inventory/models.py:707 templates/inventory/car_detail.html:97 +#: inventory/models.py:719 templates/inventory/car_detail.html:97 #: templates/inventory/car_detail.html:109 #: templates/inventory/car_detail.html:371 msgid "Registration" msgstr "التسجيل" -#: inventory/models.py:708 +#: inventory/models.py:720 msgid "Registrations" msgstr "تسجيل السيارات" -#: inventory/models.py:716 inventory/models.py:906 inventory/models.py:1022 -#: inventory/models.py:1055 inventory/models.py:1149 inventory/models.py:1294 -#: inventory/models.py:1314 inventory/models.py:1336 inventory/models.py:1353 +#: inventory/models.py:728 inventory/models.py:918 inventory/models.py:1035 +#: inventory/models.py:1068 inventory/models.py:1162 inventory/models.py:1312 +#: inventory/models.py:1332 inventory/models.py:1354 inventory/models.py:1371 #: templates/crm/leads/lead_detail.html:91 #: templates/sales/estimates/estimate_list.html:18 #: templates/sales/invoices/invoice_list.html:19 @@ -788,71 +800,71 @@ msgstr "تسجيل السيارات" msgid "Created" msgstr "تاريخ الإنشاء" -#: inventory/models.py:717 inventory/models.py:907 inventory/models.py:1023 -#: inventory/models.py:1056 inventory/models.py:1151 inventory/models.py:1295 -#: inventory/models.py:1315 inventory/models.py:1337 +#: inventory/models.py:729 inventory/models.py:919 inventory/models.py:1036 +#: inventory/models.py:1069 inventory/models.py:1164 inventory/models.py:1313 +#: inventory/models.py:1333 inventory/models.py:1355 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/chart_of_accounts/includes/coa_card.html:41 msgid "Updated" msgstr "تم التحديث" -#: inventory/models.py:747 templates/dealers/dealer_detail.html:63 +#: inventory/models.py:759 templates/dealers/dealer_detail.html:63 msgid "Subscription" msgstr "الاشتراك" -#: inventory/models.py:748 templates/welcome.html:73 templates/welcome.html:141 +#: inventory/models.py:760 templates/welcome.html:73 templates/welcome.html:141 msgid "Subscriptions" msgstr "الاشتراكات" -#: inventory/models.py:763 +#: inventory/models.py:775 msgid "Subscription User" msgstr "مستخدم الاشتراك" -#: inventory/models.py:764 +#: inventory/models.py:776 msgid "Subscription Users" msgstr "مستخدمو الاشتراك" -#: inventory/models.py:772 +#: inventory/models.py:784 msgid "Name of the subscription plan" msgstr "اسم خطة الاشتراك" -#: inventory/models.py:777 +#: inventory/models.py:789 msgid "Maximum number of users allowed" msgstr "الحد الأقصى لعدد المستخدمين المسموح به" -#: inventory/models.py:780 +#: inventory/models.py:792 msgid "Maximum number of cars in inventory" msgstr "الحد الأقصى لعدد السيارات في المخزون" -#: inventory/models.py:793 +#: inventory/models.py:805 msgid "Additional features specific to this plan" msgstr "ميزات إضافية خاصة بهذه الخطة" -#: inventory/models.py:799 +#: inventory/models.py:811 msgid "Subscription Plan" msgstr "خطة الاشتراك" -#: inventory/models.py:800 +#: inventory/models.py:812 msgid "Subscription Plans" msgstr "خطط الاشتراك" -#: inventory/models.py:824 inventory/models.py:1053 inventory/models.py:1381 +#: inventory/models.py:836 inventory/models.py:1066 inventory/models.py:1399 msgid "Logo" msgstr "الشعار" -#: inventory/models.py:829 +#: inventory/models.py:841 msgid "Joined At" msgstr "انضم في" -#: inventory/models.py:854 +#: inventory/models.py:866 msgid "Dealers" msgstr "المعارض" -#: inventory/models.py:888 +#: inventory/models.py:900 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3214 msgid "Manager" msgstr "مدير" -#: inventory/models.py:889 inventory/signals.py:132 templates/header.html:28 +#: inventory/models.py:901 inventory/signals.py:132 templates/header.html:28 #: templates/header.html:55 templates/header.html:60 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:440 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:526 @@ -861,95 +873,95 @@ msgstr "مدير" msgid "Inventory" msgstr "المخزن" -#: inventory/models.py:890 +#: inventory/models.py:902 msgid "Accountant" msgstr "محاسب" -#: inventory/models.py:891 templates/header.html:33 +#: inventory/models.py:903 templates/header.html:33 msgid "Sales" msgstr "المبيعات" -#: inventory/models.py:892 +#: inventory/models.py:904 msgid "Coordinator" msgstr "المنسق" -#: inventory/models.py:893 +#: inventory/models.py:905 msgid "Receptionist" msgstr "موظف الاستقبال" -#: inventory/models.py:894 +#: inventory/models.py:906 msgid "Agent" msgstr "عميل" -#: inventory/models.py:904 +#: inventory/models.py:916 msgid "Staff Type" msgstr "نوع الموظف" -#: inventory/models.py:912 inventory/models.py:913 +#: inventory/models.py:924 inventory/models.py:925 #: templates/crm/opportunities/opportunity_detail.html:262 #: templates/crm/opportunities/opportunity_form.html:70 -#: templates/header.html:423 templates/users/user_form.html:4 +#: templates/header.html:435 templates/users/user_form.html:4 #: templates/users/user_list.html:5 msgid "Staff" msgstr "الموظفون" -#: inventory/models.py:921 +#: inventory/models.py:933 msgid "Referrals" msgstr "إحالات" -#: inventory/models.py:922 inventory/models.py:967 +#: inventory/models.py:934 inventory/models.py:979 msgid "WhatsApp" msgstr "واتساب" -#: inventory/models.py:924 +#: inventory/models.py:936 msgid "TikTok" msgstr "تيك توك" -#: inventory/models.py:925 +#: inventory/models.py:937 msgid "Instagram" msgstr "إنستغرام" -#: inventory/models.py:926 +#: inventory/models.py:938 msgid "X" msgstr "إكس" -#: inventory/models.py:927 +#: inventory/models.py:939 msgid "Facebook" msgstr "فيسبوك" -#: inventory/models.py:928 +#: inventory/models.py:940 msgid "Motory" msgstr "موتري" -#: inventory/models.py:929 +#: inventory/models.py:941 msgid "Influencers" msgstr "المؤثرون" -#: inventory/models.py:930 +#: inventory/models.py:942 msgid "Youtube" msgstr "يوتيوب" -#: inventory/models.py:931 +#: inventory/models.py:943 msgid "Campaign" msgstr "حملة" -#: inventory/models.py:935 +#: inventory/models.py:947 msgid "Walk In" msgstr "زيارة مباشرة" -#: inventory/models.py:936 +#: inventory/models.py:948 msgid "Toll Free" msgstr "رقم مجاني" -#: inventory/models.py:937 +#: inventory/models.py:949 #: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:112 msgid "Website" msgstr "الموقع الإلكتروني" -#: inventory/models.py:938 inventory/models.py:966 inventory/models.py:1012 -#: inventory/models.py:1094 templates/account/login.html:28 +#: inventory/models.py:950 inventory/models.py:978 inventory/models.py:1025 +#: inventory/models.py:1107 templates/account/login.html:28 #: templates/account/login.html:30 -#: templates/administration/display_appointment.html:45 +#: templates/administration/display_appointment.html:49 #: templates/administration/manage_staff_personal_info.html:29 #: templates/administration/staff_list.html:35 #: templates/administration/user_profile.html:25 @@ -970,25 +982,25 @@ msgstr "الموقع الإلكتروني" msgid "Email" msgstr "البريد الإلكتروني" -#: inventory/models.py:939 +#: inventory/models.py:951 msgid "Form" msgstr "نموذج" -#: inventory/models.py:945 templates/crm/leads/lead_detail.html:48 +#: inventory/models.py:957 templates/crm/leads/lead_detail.html:48 #: templates/crm/leads/lead_list.html:127 msgid "In Progress" msgstr "قيد التنفيذ" -#: inventory/models.py:946 templates/crm/leads/lead_detail.html:50 +#: inventory/models.py:958 templates/crm/leads/lead_detail.html:50 #: templates/crm/leads/lead_list.html:129 msgid "Qualified" msgstr "مؤهل" -#: inventory/models.py:947 templates/crm/leads/lead_detail.html:52 +#: inventory/models.py:959 templates/crm/leads/lead_detail.html:52 #: templates/crm/leads/lead_list.html:131 #: templates/sales/estimates/estimate_list.html:37 #: templates/sales/invoices/invoice_list.html:34 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:342 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:347 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:228 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:305 #: venv/lib/python3.11/site-packages/django_ledger/models/items.py:1042 @@ -996,257 +1008,257 @@ msgstr "مؤهل" msgid "Canceled" msgstr "ملغى" -#: inventory/models.py:951 +#: inventory/models.py:963 msgid "Mr" msgstr "السيد" -#: inventory/models.py:952 +#: inventory/models.py:964 msgid "Mrs" msgstr "السيدة" -#: inventory/models.py:953 +#: inventory/models.py:965 msgid "Ms" msgstr "الآنسة" -#: inventory/models.py:954 +#: inventory/models.py:966 msgid "Miss" msgstr "الآنسة" -#: inventory/models.py:955 +#: inventory/models.py:967 msgid "Dr" msgstr "الدكتور" -#: inventory/models.py:956 +#: inventory/models.py:968 msgid "Prof" msgstr "الأستاذ" -#: inventory/models.py:957 +#: inventory/models.py:969 msgid "Prince" msgstr "الأمير" -#: inventory/models.py:958 +#: inventory/models.py:970 msgid "Princess" msgstr "الأميرة" -#: inventory/models.py:959 +#: inventory/models.py:971 msgid "Company" msgstr "الشركة" -#: inventory/models.py:960 +#: inventory/models.py:972 msgid "N/A" msgstr "غير متوفر" -#: inventory/models.py:964 +#: inventory/models.py:976 msgid "Call" msgstr "مكالمة" -#: inventory/models.py:965 +#: inventory/models.py:977 msgid "SMS" msgstr "رسالة نصية" -#: inventory/models.py:968 +#: inventory/models.py:980 msgid "Visit" msgstr "زيارة" -#: inventory/models.py:969 templates/inventory/car_form.html:23 +#: inventory/models.py:981 templates/inventory/car_form.html:23 msgid "Add Car" msgstr "إضافة سيارة" -#: inventory/models.py:970 templates/inventory/reserve_car.html:6 +#: inventory/models.py:982 templates/inventory/reserve_car.html:6 #: templates/inventory/reserve_car.html:9 msgid "Reserve Car" msgstr "حجز السيارة" -#: inventory/models.py:971 +#: inventory/models.py:983 msgid "Remove Car" msgstr "إزالة السيارة" -#: inventory/models.py:972 templates/sales/estimates/estimate_form.html:5 +#: inventory/models.py:984 templates/sales/estimates/estimate_form.html:5 #: templates/sales/estimates/estimate_form.html:9 msgid "Create Quotation" msgstr "إنشاء عرض" -#: inventory/models.py:973 +#: inventory/models.py:985 msgid "Cancel Quotation" msgstr "إلغاء العرض" -#: inventory/models.py:974 +#: inventory/models.py:986 msgid "Create Order" msgstr "إنشاء طلب" -#: inventory/models.py:975 +#: inventory/models.py:987 msgid "Cancel Order" msgstr "إلغاء الطلب" -#: inventory/models.py:976 templates/sales/estimates/estimate_detail.html:46 +#: inventory/models.py:988 templates/sales/estimates/estimate_detail.html:46 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_create.html:24 #: venv/lib/python3.11/site-packages/django_ledger/views/invoice.py:68 msgid "Create Invoice" msgstr "إنشاء فاتورة" -#: inventory/models.py:977 +#: inventory/models.py:989 msgid "Cancel Invoice" msgstr "إلغاء الفاتورة" -#: inventory/models.py:981 +#: inventory/models.py:993 msgid "Prospect" msgstr "العميل المحتمل" -#: inventory/models.py:982 +#: inventory/models.py:994 msgid "Proposal" msgstr "عرض" -#: inventory/models.py:983 +#: inventory/models.py:995 msgid "Negotiation" msgstr "مفاوضات" -#: inventory/models.py:984 +#: inventory/models.py:996 msgid "Closed Won" msgstr "مغلقة - ناجحة" -#: inventory/models.py:985 +#: inventory/models.py:997 msgid "Closed Lost" msgstr "مغلقة - خسارة" -#: inventory/models.py:989 +#: inventory/models.py:1001 msgid "Low" msgstr "منخفض" -#: inventory/models.py:990 +#: inventory/models.py:1002 msgid "Medium" msgstr "متوسط" -#: inventory/models.py:991 +#: inventory/models.py:1003 msgid "High" msgstr "مرتفع" -#: inventory/models.py:1001 inventory/models.py:1092 +#: inventory/models.py:1014 inventory/models.py:1105 #: templates/administration/manage_staff_personal_info.html:18 msgid "First Name" msgstr "الاسم الأول" -#: inventory/models.py:1003 +#: inventory/models.py:1016 msgid "Middle Name" msgstr "اسم الأب" -#: inventory/models.py:1005 inventory/models.py:1093 +#: inventory/models.py:1018 inventory/models.py:1106 #: templates/administration/manage_staff_personal_info.html:24 msgid "Last Name" msgstr "اسم العائلة" -#: inventory/models.py:1007 +#: inventory/models.py:1020 msgid "Male" msgstr "ذكر" -#: inventory/models.py:1007 +#: inventory/models.py:1020 msgid "Female" msgstr "أنثى" -#: inventory/models.py:1009 +#: inventory/models.py:1022 msgid "Gender" msgstr "الجنس" -#: inventory/models.py:1011 +#: inventory/models.py:1024 msgid "Date of Birth" msgstr "تاريخ الميلاد" -#: inventory/models.py:1014 templates/customers/customer_list.html:55 +#: inventory/models.py:1027 templates/customers/customer_list.html:55 msgid "National ID" msgstr "رقم الهوية الوطنية" -#: inventory/models.py:1027 templates/customers/customer_form.html:4 +#: inventory/models.py:1040 templates/customers/customer_form.html:4 #: templates/customers/customer_list.html:4 #: templates/customers/customer_list.html:5 #: templates/customers/customer_list.html:9 msgid "Customers" msgstr "العملاء" -#: inventory/models.py:1059 +#: inventory/models.py:1072 msgid "Organization" msgstr "شركة" -#: inventory/models.py:1060 templates/header.html:161 +#: inventory/models.py:1073 templates/header.html:169 #: templates/organizations/organization_list.html:4 #: templates/organizations/organization_list.html:5 #: templates/organizations/organization_list.html:12 msgid "Organizations" msgstr "الشركات" -#: inventory/models.py:1073 +#: inventory/models.py:1086 #: templates/representatives/representative_detail.html:8 #: templates/representatives/representative_list.html:18 msgid "ID Number" msgstr "رقم الهوية" -#: inventory/models.py:1083 +#: inventory/models.py:1096 msgid "Representative" msgstr "ممثل شركة" -#: inventory/models.py:1084 templates/header.html:169 +#: inventory/models.py:1097 templates/header.html:177 #: templates/representatives/representative_list.html:3 #: templates/representatives/representative_list.html:6 msgid "Representatives" msgstr "ممثلي الشركات" -#: inventory/models.py:1121 templates/crm/leads/lead_list.html:73 +#: inventory/models.py:1134 templates/crm/leads/lead_list.html:73 msgid "Source" msgstr "المصدر" -#: inventory/models.py:1124 templates/crm/leads/lead_list.html:79 +#: inventory/models.py:1137 templates/crm/leads/lead_list.html:79 msgid "Channel" msgstr "القناة" -#: inventory/models.py:1126 +#: inventory/models.py:1139 msgid "address" msgstr "العنوان" -#: inventory/models.py:1133 +#: inventory/models.py:1146 msgid "Assigned" msgstr "مُعين" -#: inventory/models.py:1139 +#: inventory/models.py:1152 msgid "Priority" msgstr "الأولوية" -#: inventory/models.py:1154 +#: inventory/models.py:1167 msgid "Lead" msgstr "فرصة" -#: inventory/models.py:1155 templates/crm/leads/lead_list.html:3 +#: inventory/models.py:1168 templates/crm/leads/lead_list.html:3 #: templates/crm/leads/lead_list.html:7 templates/crm/leads/lead_send.html:5 msgid "Leads" msgstr "الفرص" -#: inventory/models.py:1243 +#: inventory/models.py:1261 msgid "Old Status" msgstr "الحالة القديمة" -#: inventory/models.py:1246 +#: inventory/models.py:1264 msgid "New Status" msgstr "الحالة الجديدة" -#: inventory/models.py:1251 +#: inventory/models.py:1269 msgid "Changed At" msgstr "تم التغيير في" -#: inventory/models.py:1254 +#: inventory/models.py:1272 msgid "Lead Status History" msgstr "تاريخ حالة العميل المحتمل" -#: inventory/models.py:1255 +#: inventory/models.py:1273 msgid "Lead Status Histories" msgstr "تواريخ حالات العملاء المحتملين" -#: inventory/models.py:1263 +#: inventory/models.py:1281 msgid "Probability must be between 0 and 100." msgstr "يجب أن تكون الاحتمالية بين 0 و 100." -#: inventory/models.py:1277 +#: inventory/models.py:1295 #: templates/crm/opportunities/opportunity_form.html:48 msgid "Stage" msgstr "المرحلة" -#: inventory/models.py:1293 +#: inventory/models.py:1311 #: templates/crm/opportunities/opportunity_detail.html:295 #: templates/crm/opportunities/opportunity_form.html:79 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:100 @@ -1255,122 +1267,122 @@ msgstr "المرحلة" msgid "Closing Date" msgstr "تاريخ الإغلاق" -#: inventory/models.py:1296 +#: inventory/models.py:1314 msgid "Closed" msgstr "مغلقة" -#: inventory/models.py:1299 +#: inventory/models.py:1317 msgid "Opportunity" msgstr "فرصة" -#: inventory/models.py:1300 +#: inventory/models.py:1318 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:8 #: templates/crm/opportunities/opportunity_list.html:8 -#: templates/header.html:177 +#: templates/header.html:185 msgid "Opportunities" msgstr "الفرص" -#: inventory/models.py:1310 inventory/models.py:1318 +#: inventory/models.py:1328 inventory/models.py:1336 #: templates/account/snippets/already_logged_in.html:8 #: templates/crm/leads/lead_detail.html:194 msgid "Note" msgstr "ملاحظة" -#: inventory/models.py:1319 inventory/models.py:1332 +#: inventory/models.py:1337 inventory/models.py:1350 #: templates/crm/leads/lead_detail.html:128 #: templates/crm/leads/lead_detail.html:181 -#: templates/crm/leads/lead_detail.html:598 +#: templates/crm/leads/lead_detail.html:595 #: templates/customers/view_customer.html:119 #: venv/lib/python3.11/site-packages/django_ledger/forms/bill.py:154 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/includes/card_markdown.html:9 msgid "Notes" msgstr "ملاحظات" -#: inventory/models.py:1330 +#: inventory/models.py:1348 msgid "Activity Type" msgstr "نوع النشاط" -#: inventory/models.py:1340 templates/crm/leads/lead_detail.html:127 -#: templates/dealers/activity_log.html:11 templates/header.html:426 -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:382 -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:325 +#: inventory/models.py:1358 templates/crm/leads/lead_detail.html:127 +#: templates/dealers/activity_log.html:11 templates/header.html:438 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:384 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:388 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_txs_table.html:10 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:33 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:10 msgid "Activity" msgstr "النشاط" -#: inventory/models.py:1341 templates/crm/leads/lead_detail.html:134 +#: inventory/models.py:1359 templates/crm/leads/lead_detail.html:134 msgid "Activities" msgstr "الأنشطة" -#: inventory/models.py:1351 +#: inventory/models.py:1369 msgid "Message" msgstr "رسالة" -#: inventory/models.py:1352 +#: inventory/models.py:1370 msgid "Is Read" msgstr "تمت قراءته" -#: inventory/models.py:1356 +#: inventory/models.py:1374 msgid "Notification" msgstr "إشعار" -#: inventory/models.py:1357 templates/crm/notifications_history.html:6 +#: inventory/models.py:1375 templates/crm/notifications_history.html:6 msgid "Notifications" msgstr "الإشعارات" -#: inventory/models.py:1374 templates/vendors/view_vendor.html:49 +#: inventory/models.py:1392 templates/vendors/view_vendor.html:49 msgid "Contact Person" msgstr "الشخص المسؤول" -#: inventory/models.py:1387 templates/vendors/vendor_form.html:4 +#: inventory/models.py:1405 templates/vendors/vendor_form.html:4 #: templates/vendors/vendors_list.html:4 templates/vendors/vendors_list.html:5 #: templates/vendors/vendors_list.html:12 msgid "Vendors" msgstr "الموردين" -#: inventory/models.py:1586 inventory/models.py:1616 +#: inventory/models.py:1604 inventory/models.py:1634 msgid "amount" msgstr "المبلغ" -#: inventory/models.py:1589 +#: inventory/models.py:1607 msgid "method" msgstr "طريقة" -#: inventory/models.py:1592 +#: inventory/models.py:1610 msgid "reference number" msgstr "رقم المرجع" -#: inventory/models.py:1594 +#: inventory/models.py:1612 msgid "date" msgstr "التاريخ" -#: inventory/models.py:1604 +#: inventory/models.py:1622 msgid "payment" msgstr "الدفعة" -#: inventory/models.py:1605 templates/header.html:126 +#: inventory/models.py:1623 templates/header.html:134 msgid "payments" msgstr "المدفوعات" -#: inventory/models.py:1618 +#: inventory/models.py:1636 msgid "reason" msgstr "السبب" -#: inventory/models.py:1619 +#: inventory/models.py:1637 msgid "refund date" msgstr "تاريخ الاسترداد" -#: inventory/models.py:1622 +#: inventory/models.py:1640 msgid "refund" msgstr "استرداد" -#: inventory/models.py:1623 +#: inventory/models.py:1641 msgid "refunds" msgstr "استردادات" -#: inventory/models.py:1647 templates/sales/estimates/estimate_detail.html:37 +#: inventory/models.py:1665 templates/sales/estimates/estimate_detail.html:37 #: templates/sales/estimates/estimate_preview.html:255 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3145 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/card_estimate.html:9 @@ -1378,7 +1390,7 @@ msgstr "استردادات" msgid "Estimate" msgstr "تقدير" -#: inventory/models.py:1653 templates/plans/create_order.html:29 +#: inventory/models.py:1671 templates/plans/create_order.html:29 #: templates/sales/invoices/invoice_create.html:5 #: templates/sales/invoices/invoice_detail.html:61 #: templates/sales/payments/payment_list.html:21 @@ -1638,7 +1650,7 @@ msgstr "مصروفات الفائدة" msgid "success" msgstr "ناجحة" -#: inventory/utils.py:51 templates/inventory/car_form.html:378 +#: inventory/utils.py:51 templates/inventory/car_form.html:374 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:427 msgid "error" msgstr "خطأ" @@ -1652,177 +1664,169 @@ msgstr "نسيت كلمة المرور؟" msgid "Car reserved successfully." msgstr "تم حجز السيارة بنجاح." -#: inventory/views.py:227 -msgid "OTP verified successfully!" -msgstr "تم التحقق من رمز التحقق بنجاح!" - -#: inventory/views.py:230 -msgid "Invalid OTP. Please try again." -msgstr "رمز التحقق غير صالح. يرجى المحاولة مرة أخرى." - -#: inventory/views.py:383 +#: inventory/views.py:387 msgid "VIN number exists" msgstr "رقم الهيكل موجود مسبقاً" -#: inventory/views.py:575 templates/dashboards/accounting.html:21 +#: inventory/views.py:582 templates/dashboards/accounting.html:21 #: templates/inventory/car_inventory.html:5 #: templates/inventory/inventory_stats.html:5 msgid "inventory" msgstr "المخزون" -#: inventory/views.py:732 +#: inventory/views.py:767 msgid "Car finance details saved successfully." msgstr "تم حفظ تفاصيل المالية للسيارة بنجاح." -#: inventory/views.py:764 +#: inventory/views.py:799 msgid "Car finance details updated successfully." msgstr "تم تحديث تفاصيل المالية للسيارة بنجاح." -#: inventory/views.py:793 +#: inventory/views.py:828 msgid "Car updated successfully." msgstr "تم تحديث السيارة بنجاح" -#: inventory/views.py:805 +#: inventory/views.py:840 msgid "Car deleted successfully." msgstr "تم حذف السيارة بنجاح." -#: inventory/views.py:884 +#: inventory/views.py:919 msgid "Car transfer canceled successfully." msgstr "تم إلغاء نقل السيارة بنجاح." -#: inventory/views.py:901 +#: inventory/views.py:936 msgid "Car transfer approved successfully." msgstr "تمت الموافقة على نقل السيارة بنجاح." -#: inventory/views.py:912 +#: inventory/views.py:947 msgid "Car transfer rejected successfully." msgstr "تم رفض نقل السيارة بنجاح." -#: inventory/views.py:925 +#: inventory/views.py:960 msgid "Car Transfer Completed successfully." msgstr "تم إكمال نقل السيارة بنجاح." -#: inventory/views.py:996 +#: inventory/views.py:1031 msgid "Custom Card added successfully." msgstr "تم إضافة البطاقة الجمركية بنجاح." -#: inventory/views.py:1016 +#: inventory/views.py:1051 msgid "Registration added successfully." msgstr "تم إلغاء الحجز بنجاح." -#: inventory/views.py:1025 +#: inventory/views.py:1060 msgid "This car is already reserved." msgstr "هذه السيارة محجوزة بالفعل." -#: inventory/views.py:1045 +#: inventory/views.py:1080 msgid "Reservation renewed successfully." msgstr "تم تجديد الحجز بنجاح" -#: inventory/views.py:1053 +#: inventory/views.py:1088 msgid "Reservation canceled successfully." msgstr "تم إلغاء الحجز بنجاح." -#: inventory/views.py:1058 +#: inventory/views.py:1093 msgid "Invalid action." msgstr "إجراء غير صالح." -#: inventory/views.py:1062 +#: inventory/views.py:1097 msgid "Invalid request method." msgstr "طريقة الطلب غير صالحة" -#: inventory/views.py:1084 +#: inventory/views.py:1119 msgid "Dealer updated successfully." msgstr "تم تحديث المعرض بنجاح." -#: inventory/views.py:1104 templates/header.html:154 +#: inventory/views.py:1139 templates/header.html:162 msgid "customers" msgstr "العملاء" -#: inventory/views.py:1214 +#: inventory/views.py:1249 msgid "Customer created successfully." msgstr "تم إنشاء العميل بنجاح." -#: inventory/views.py:1246 +#: inventory/views.py:1281 msgid "Customer updated successfully." msgstr "تم تحديث العميل بنجاح." -#: inventory/views.py:1261 +#: inventory/views.py:1296 msgid "Customer deleted successfully." msgstr "تم حذف العميل بنجاح." -#: inventory/views.py:1296 +#: inventory/views.py:1331 msgid "Vendor created successfully." msgstr "تم إنشاء المورد بنجاح." -#: inventory/views.py:1316 +#: inventory/views.py:1351 msgid "Vendor updated successfully." msgstr "تم تحديث المورد بنجاح" -#: inventory/views.py:1324 +#: inventory/views.py:1359 msgid "Vendor deleted successfully." msgstr "تم حذف المورد بنجاح." -#: inventory/views.py:1732 +#: inventory/views.py:1767 msgid "User created successfully." msgstr "تم إنشاء المستخدم بنجاح." -#: inventory/views.py:1757 +#: inventory/views.py:1792 msgid "User updated successfully." msgstr "تم تحديث المستخدم بنجاح" -#: inventory/views.py:1768 +#: inventory/views.py:1803 msgid "User deleted successfully." msgstr "تم حذف المستخدم بنجاح." -#: inventory/views.py:1838 inventory/views.py:1868 +#: inventory/views.py:1873 inventory/views.py:1903 msgid "Organization created successfully." msgstr "تم إنشاء المنظمة بنجاح." -#: inventory/views.py:3026 +#: inventory/views.py:3096 msgid "Note deleted successfully." msgstr "تم حذف الملاحظة بنجاح." -#: inventory/views.py:3185 +#: inventory/views.py:3282 msgid "Opportunity deleted successfully." msgstr "تم حذف الفرصة بنجاح." -#: inventory/views.py:3222 +#: inventory/views.py:3319 msgid "Notification marked as read." msgstr "تم تمييز الإشعار كمقروء." -#: inventory/views.py:3248 +#: inventory/views.py:3345 msgid "Service created successfully." msgstr "تم إنشاء الخدمة بنجاح." -#: inventory/views.py:3264 +#: inventory/views.py:3361 msgid "Service updated successfully." msgstr "تم تحديث الخدمة بنجاح." -#: inventory/views.py:3381 inventory/views.py:3406 +#: inventory/views.py:3478 inventory/views.py:3503 msgid "Bill updated successfully." msgstr "تم تحديث الفاتورة بنجاح." -#: inventory/views.py:3432 +#: inventory/views.py:3529 msgid "Bill is already approved." msgstr "تمت الموافقة على الفاتورة مسبقًا." -#: inventory/views.py:3436 +#: inventory/views.py:3533 msgid "Bill marked as approved successfully." msgstr "تم تحديد الفاتورة كموافقة بنجاح." -#: inventory/views.py:3445 +#: inventory/views.py:3542 msgid "Bill is already paid." msgstr "تم دفع الفاتورة مسبقًا." -#: inventory/views.py:3454 +#: inventory/views.py:3551 msgid "Bill marked as paid successfully." msgstr "تم تحديد الفاتورة كمدفوعة بنجاح." -#: inventory/views.py:3456 +#: inventory/views.py:3553 msgid "Amount paid is not equal to amount due." msgstr "المبلغ المدفوع لا يساوي المبلغ المستحق." -#: inventory/views.py:3866 templates/header.html:259 +#: inventory/views.py:3963 templates/header.html:267 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_detail.html:23 #: venv/lib/python3.11/site-packages/django_ledger/views/entity.py:210 msgid "Dashboard" @@ -1874,7 +1878,6 @@ msgstr "تأكيد" #: templates/account/confirm_email_verification_code.html:31 #: templates/account/confirm_email_verification_code.html:35 #: templates/account/confirm_login_code..html:38 -#: templates/crm/leads/lead_detail.html:217 #: templates/crm/leads/lead_form.html:18 #: templates/crm/leads/schedule_lead.html:18 #: templates/crm/opportunities/opportunity_form.html:89 @@ -1892,7 +1895,7 @@ msgstr "تأكيد" #: templates/ledger/bills/bill_form.html:42 #: templates/ledger/bills/bill_update_form.html:18 #: templates/ledger/coa_accounts/account_form.html:32 -#: templates/modal/event_details_modal.html:22 +#: templates/modal/event_details_modal.html:24 #: templates/representatives/representative_form.html:12 #: templates/sales/estimates/estimate_form.html:42 #: templates/sales/estimates/estimate_preview.html:223 @@ -1914,7 +1917,7 @@ msgstr "إلغاء" #: templates/account/confirm_login_code..html:35 templates/account/login.html:6 #: templates/account/login.html:21 templates/account/login.html:45 #: templates/account/request_login_code.html:5 templates/account/signup.html:80 -#: templates/header.html:452 templates/welcome.html:77 +#: templates/header.html:464 templates/welcome.html:77 msgid "Sign In" msgstr "تسجيل الدخول" @@ -2269,7 +2272,7 @@ msgstr "إذا لم تقم بإنشاء حساب بعد، يرجى التسجي #: templates/account/login.html:52 templates/account/signup-wizard.html:16 #: templates/account/signup.html:5 templates/account/signup.html:79 -#: templates/header.html:455 templates/welcome.html:78 +#: templates/header.html:467 templates/welcome.html:78 msgid "Sign Up" msgstr "إنشاء حساب" @@ -2282,7 +2285,7 @@ msgid "Mail me a sign-in code" msgstr "أرسل لي رمز تسجيل الدخول عبر البريد الإلكتروني" #: templates/account/logout.html:3 templates/account/logout.html:11 -#: templates/account/logout.html:20 templates/header.html:445 +#: templates/account/logout.html:20 templates/header.html:457 msgid "Sign Out" msgstr "تسجيل الخروج" @@ -2448,11 +2451,13 @@ msgstr "الوصول" #: templates/account/signup-wizard.html:27 #: templates/items/service/service_list.html:23 templates/plans/current.html:15 #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:443 -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:487 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:439 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bank_account/bank_account_update.html:13 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_txs_table.html:8 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:9 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:42 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:45 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:9 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:45 msgid "Account" msgstr "الحساب" @@ -2485,7 +2490,7 @@ msgstr "في أي مكان" #: templates/administration/email_change_verification_code.html:25 #: templates/administration/manage_day_off.html:69 #: templates/appointment/enter_verification_code.html:24 -#: templates/modal/event_details_modal.html:27 +#: templates/modal/event_details_modal.html:29 #: venv/lib/python3.11/site-packages/appointment/templates/administration/email_change_verification_code.html:25 #: venv/lib/python3.11/site-packages/appointment/templates/administration/manage_day_off.html:69 #: venv/lib/python3.11/site-packages/appointment/templates/appointment/enter_verification_code.html:24 @@ -2508,13 +2513,13 @@ msgid "Next" msgstr "التالي" #: templates/account/signup-wizard.html:140 -#: templates/inventory/car_form.html:606 +#: templates/inventory/car_form.html:605 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:654 msgid "Please Wait" msgstr "الرجاء الإنتظار" #: templates/account/signup-wizard.html:141 -#: templates/inventory/car_form.html:607 +#: templates/inventory/car_form.html:606 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:655 msgid "Loading" msgstr "تحميل" @@ -2599,7 +2604,7 @@ msgstr "" "ملاحظة: لا يزال بإمكانك تغيير " "عنوان بريدك الإلكتروني." -#: templates/administration/display_appointment.html:25 +#: templates/administration/display_appointment.html:19 #: templates/email_sender/reminder_email.html:80 #: templates/email_sender/reschedule_email.html:64 #: templates/email_sender/reschedule_email.html:69 @@ -2617,7 +2622,7 @@ msgstr "" msgid "Date" msgstr "التاريخ" -#: templates/administration/display_appointment.html:29 +#: templates/administration/display_appointment.html:25 #: templates/administration/manage_working_hours.html:36 #: templates/administration/staff_index.html:134 #: templates/administration/user_profile.html:160 @@ -2628,7 +2633,7 @@ msgstr "التاريخ" msgid "Start time" msgstr "وقت البدء" -#: templates/administration/display_appointment.html:33 +#: templates/administration/display_appointment.html:31 #: templates/administration/manage_working_hours.html:47 #: templates/administration/staff_index.html:146 #: templates/administration/user_profile.html:161 @@ -2651,26 +2656,26 @@ msgstr "وقت الانتهاء" msgid "Service" msgstr "الخدمة" -#: templates/administration/display_appointment.html:41 +#: templates/administration/display_appointment.html:43 #: venv/lib/python3.11/site-packages/appointment/templates/administration/display_appointment.html:41 msgid "Client" msgstr "العميل" -#: templates/administration/display_appointment.html:53 +#: templates/administration/display_appointment.html:61 #: templates/administration/staff_index.html:128 #: venv/lib/python3.11/site-packages/appointment/templates/administration/display_appointment.html:53 #: venv/lib/python3.11/site-packages/appointment/templates/administration/staff_index.html:374 msgid "Wants reminder" msgstr "يريد تذكيرًا" -#: templates/administration/display_appointment.html:57 +#: templates/administration/display_appointment.html:67 #: templates/administration/staff_index.html:125 #: venv/lib/python3.11/site-packages/appointment/templates/administration/display_appointment.html:57 #: venv/lib/python3.11/site-packages/appointment/templates/administration/staff_index.html:371 msgid "Client address" msgstr "عنوان العميل" -#: templates/administration/display_appointment.html:61 +#: templates/administration/display_appointment.html:73 #: templates/administration/staff_index.html:131 #: templates/appointment/appointment_client_information.html:69 #: venv/lib/python3.11/site-packages/appointment/templates/administration/display_appointment.html:61 @@ -2679,12 +2684,12 @@ msgstr "عنوان العميل" msgid "Additional Information" msgstr "معلومات إضافية" -#: templates/administration/display_appointment.html:65 +#: templates/administration/display_appointment.html:79 #: venv/lib/python3.11/site-packages/appointment/templates/administration/display_appointment.html:65 msgid "Is paid" msgstr "مدفوع" -#: templates/administration/display_appointment.html:69 +#: templates/administration/display_appointment.html:85 #: venv/lib/python3.11/site-packages/appointment/templates/administration/display_appointment.html:69 msgid "Service price" msgstr "سعر الخدمة" @@ -2761,8 +2766,8 @@ msgstr "تأكيد الحذف" #: templates/administration/staff_index.html:79 #: templates/administration/user_profile.html:18 #: templates/crm/leads/lead_detail.html:206 -#: templates/crm/leads/lead_detail.html:215 -#: templates/crm/leads/lead_list.html:178 +#: templates/crm/leads/lead_detail.html:214 +#: templates/crm/leads/lead_list.html:180 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:28 #: templates/customers/customer_list.html:127 #: templates/customers/view_customer.html:51 @@ -2770,7 +2775,7 @@ msgstr "تأكيد الحذف" #: templates/ledger/bills/bill_list.html:98 #: templates/ledger/coa_accounts/account_detail.html:118 #: templates/ledger/coa_accounts/account_list.html:110 -#: templates/modal/event_details_modal.html:31 +#: templates/modal/event_details_modal.html:33 #: templates/organizations/organization_detail.html:17 #: templates/organizations/organization_list.html:130 #: templates/plans/billing_info_create_or_update.html:14 @@ -2793,10 +2798,10 @@ msgstr "تأكيد الحذف" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/tags/ce_item_formset.html:25 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_delete.html:24 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html:23 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_delete.html:19 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_delete.html:18 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:88 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_delete.html:19 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:130 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:131 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/product_delete.html:20 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/tags/product_table.html:44 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:103 @@ -2836,6 +2841,7 @@ msgstr "الصورة" msgid "Currency" msgstr "العملة" +#: templates/administration/manage_service.html:101 msgid "Background Color" msgstr "لون الخلفية" @@ -3067,7 +3073,7 @@ msgstr "إضافة" #: templates/administration/staff_list.html:36 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:71 #: templates/crm/opportunities/opportunity_list.html:65 -#: templates/inventory/car_form.html:224 +#: templates/inventory/car_form.html:219 #: templates/inventory/inventory_stats.html:63 #: venv/lib/python3.11/site-packages/appointment/templates/administration/staff_list.html:40 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_table.html:43 @@ -3108,9 +3114,8 @@ msgid "Last name" msgstr "اسم العائلة" #: templates/administration/user_profile.html:37 -#: venv/lib/python3.11/site-packages/appointment/templates/administration/user_profile.html:50 -msgid "Appointment Information" -msgstr "معلومات الموعد" +msgid "Appointments Information" +msgstr "معلومات المواعيد" #: templates/administration/user_profile.html:44 #: venv/lib/python3.11/site-packages/appointment/templates/administration/user_profile.html:57 @@ -3299,10 +3304,10 @@ msgstr "تفاصيل الدفع" #: templates/ledger/coa_accounts/account_detail.html:100 #: templates/ledger/reports/tags/balance_sheet_statement.html:55 #: templates/plans/order_detail_table.html:12 -#: templates/sales/estimates/estimate_detail.html:128 +#: templates/sales/estimates/estimate_detail.html:129 #: templates/sales/estimates/estimate_preview.html:276 #: templates/sales/estimates/sale_order_preview.html:244 -#: templates/sales/invoices/invoice_detail.html:220 +#: templates/sales/invoices/invoice_detail.html:221 #: venv/lib/python3.11/site-packages/appointment/templates/appointment/appointment_client_information.html:103 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:98 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:127 @@ -3316,8 +3321,9 @@ msgstr "تفاصيل الدفع" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_detail.html:115 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html:22 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html:58 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:59 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:62 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/po_item_formset.html:85 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:62 msgid "Total" msgstr "الإجمالي" @@ -3466,6 +3472,7 @@ msgid "HAIKAL" msgstr "هيكل" #: templates/components/date_picker.html:5 +#: templates/ledger/reports/components/date_picker.html:5 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/date_picker.html:5 msgid "Select Date" msgstr "اختر التاريخ" @@ -3507,7 +3514,7 @@ msgid "City" msgstr "المدينة" #: templates/crm/leads/lead_detail.html:129 -#: templates/crm/leads/lead_detail.html:250 +#: templates/crm/leads/lead_detail.html:247 msgid "Emails" msgstr "رسائل البريد الإلكتروني" @@ -3520,16 +3527,19 @@ msgstr "بواسطة" msgid "Add Note" msgstr "إضافة ملاحظة" +#: templates/crm/leads/lead_detail.html:195 msgid "Created By" msgstr "تم الإنشاء بواسطة" +#: templates/crm/leads/lead_detail.html:196 msgid "Created On" msgstr "تم الإنشاء في" +#: templates/crm/leads/lead_detail.html:210 msgid "Are you sure you want to delete this note?" msgstr "هل أنت متأكد أنك تريد حذف هذه الملاحظة؟" -#: templates/crm/leads/lead_detail.html:233 +#: templates/crm/leads/lead_detail.html:230 #: templates/crm/leads/schedule_lead.html:5 templates/crm/note_form.html:13 #: templates/customers/view_customer.html:54 #: templates/items/expenses/expenses_list.html:34 @@ -3579,6 +3589,11 @@ msgstr "هل أنت متأكد أنك تريد حذف هذه الملاحظة؟" msgid "Update" msgstr "تحديث" +#: templates/crm/leads/lead_detail.html:625 +#: templates/inventory/car_detail.html:473 +msgid "Error loading form. Please try again later" +msgstr "حدث خطأ أثناء تحميل النموذج. يرجى المحاولة مرة أخرى لاحقًا." + #: templates/crm/leads/lead_list.html:12 msgid "Add Lead" msgstr "إضافة عميل محتمل" @@ -3587,12 +3602,15 @@ msgstr "إضافة عميل محتمل" msgid "Enter lead name" msgstr "أدخل اسم العميل المحتمل" +#: templates/crm/leads/lead_list.html:39 msgid "Lead Name" msgstr "اسم العميل المحتمل" +#: templates/crm/leads/lead_list.html:61 msgid "Schedule" msgstr "الجدولة" +#: templates/crm/leads/lead_list.html:67 msgid "Assigned To" msgstr "مُعين إلى" @@ -3662,7 +3680,7 @@ msgstr "لا" msgid "Yes" msgstr "نعم" -#: templates/crm/leads/lead_list.html:171 +#: templates/crm/leads/lead_list.html:173 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:27 #: templates/customers/customer_list.html:126 #: templates/dealers/dealer_detail.html:24 @@ -3670,7 +3688,7 @@ msgstr "نعم" #: templates/inventory/car_detail.html:185 #: templates/ledger/bank_accounts/bank_account_detail.html:57 #: templates/ledger/coa_accounts/account_detail.html:114 -#: templates/modal/event_details_modal.html:25 +#: templates/modal/event_details_modal.html:27 #: templates/organizations/organization_detail.html:14 #: templates/organizations/organization_list.html:128 #: templates/representatives/representative_detail.html:13 @@ -3679,18 +3697,20 @@ msgstr "نعم" #: venv/lib/python3.11/site-packages/appointment/templates/modal/event_details_modal.html:25 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/customer/includes/card_customer.html:28 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:83 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:101 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:102 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/vendor/includes/card_vendor.html:28 msgid "Edit" msgstr "تحديث" -#: templates/crm/leads/lead_list.html:172 +#: templates/crm/leads/lead_list.html:174 msgid "Send Email" msgstr "إرسال البريد الإلكتروني" +#: templates/crm/leads/lead_list.html:175 msgid "Set Schedule" msgstr "تحديد الجدولة" +#: templates/crm/leads/lead_list.html:177 msgid "Convert To Customer" msgstr "تحويل إلى عميل" @@ -3725,7 +3745,7 @@ msgstr "تفاصيل الفرصة" #: templates/crm/opportunities/opportunity_detail.html:149 #: templates/ledger/bank_accounts/bank_account_detail.html:50 -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:493 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:447 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/po_item_formset.html:22 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/tags/po_item_table.html:11 msgid "Amount" @@ -4184,6 +4204,7 @@ msgid "Account Information" msgstr "معلومات الحساب" #: templates/email_sender/thank_you_email.html:214 +#: templates/modal/event_details_modal.html:8 #: venv/lib/python3.11/site-packages/appointment/templates/email_sender/reminder_email.html:128 #: venv/lib/python3.11/site-packages/appointment/templates/email_sender/thank_you_email.html:214 msgid "Appointment Details" @@ -4266,7 +4287,7 @@ msgstr "طلب غير صالح" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/cash_flow.html:51 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/cash_flow.html:54 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_delete.html:23 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_delete.html:18 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_delete.html:17 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_delete.html:18 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/product_delete.html:19 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_delete.html:23 @@ -4322,57 +4343,61 @@ msgstr "إدارة علاقات العملاء" msgid "add car" msgstr "إضافة سيارة" -#: templates/header.html:85 templates/header.html:90 +#: templates/header.html:80 +msgid "Cars List" +msgstr "قائمة السيارات" + +#: templates/header.html:93 templates/header.html:98 msgid "sales" msgstr "المبيعات" -#: templates/header.html:94 +#: templates/header.html:102 msgid "create quotation" msgstr "إنشاء عرض" -#: templates/header.html:102 +#: templates/header.html:110 msgid "quotations" msgstr "العروض" -#: templates/header.html:110 +#: templates/header.html:118 msgid "orders" msgstr "الطلبات" -#: templates/header.html:118 +#: templates/header.html:126 msgid "invoices" msgstr "الفواتير" -#: templates/header.html:138 templates/header.html:143 +#: templates/header.html:146 templates/header.html:151 msgid "crm" msgstr "إدارة علاقات العملاء" -#: templates/header.html:147 +#: templates/header.html:155 msgid "leads" msgstr "الفرص" -#: templates/header.html:190 templates/header.html:195 +#: templates/header.html:198 templates/header.html:203 msgid "Financials" msgstr "البيانات المالية" -#: templates/header.html:199 +#: templates/header.html:207 #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:436 #: venv/lib/python3.11/site-packages/django_ledger/models/chart_of_accounts.py:192 msgid "Chart of Accounts" msgstr "قائمة الحسابات" -#: templates/header.html:206 +#: templates/header.html:214 #: templates/ledger/bank_accounts/bank_account_list.html:4 #: templates/ledger/bank_accounts/bank_account_list.html:10 #: venv/lib/python3.11/site-packages/django_ledger/views/bank_account.py:33 msgid "Bank Accounts" msgstr "الحسابات المصرفية" -#: templates/header.html:213 templates/items/service/service_list.html:10 +#: templates/header.html:221 templates/items/service/service_list.html:10 #: venv/lib/python3.11/site-packages/django_ledger/views/item.py:297 msgid "Services" msgstr "الخدمات" -#: templates/header.html:221 templates/items/expenses/expense_create.html:5 +#: templates/header.html:229 templates/items/expenses/expense_create.html:5 #: templates/items/expenses/expense_update.html:5 #: templates/items/expenses/expenses_list.html:4 #: templates/items/expenses/expenses_list.html:10 @@ -4382,48 +4407,48 @@ msgstr "الخدمات" msgid "Expenses" msgstr "المصروفات" -#: templates/header.html:229 +#: templates/header.html:237 msgid "vendors" msgstr "الموردين" -#: templates/header.html:236 +#: templates/header.html:244 msgid "bills" msgstr "الفواتير" -#: templates/header.html:247 +#: templates/header.html:255 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:11 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:41 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:42 msgid "Reports" msgstr "التقارير" -#: templates/header.html:268 +#: templates/header.html:276 msgid "Cash Flow" msgstr "التدفق النقدي" -#: templates/header.html:277 templates/ledger/reports/income_statement.html:31 +#: templates/header.html:285 templates/ledger/reports/income_statement.html:31 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:146 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_update.html:71 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/income_statement.html:31 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_detail.html:133 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_update.html:70 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:51 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:52 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_detail.html:27 msgid "Income Statement" msgstr "بيان الدخل" -#: templates/header.html:286 templates/ledger/reports/balance_sheet.html:36 +#: templates/header.html:294 templates/ledger/reports/balance_sheet.html:36 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:144 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_update.html:66 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/balance_sheet.html:30 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_detail.html:131 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_update.html:65 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:48 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:49 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_detail.html:25 #: venv/lib/python3.11/site-packages/django_ledger/views/financial_statement.py:59 msgid "Balance Sheet" msgstr "الميزانية العمومية" -#: templates/header.html:415 templates/header.html:419 +#: templates/header.html:427 templates/header.html:431 msgid "profile" msgstr "الملف الشخصي" @@ -4455,13 +4480,13 @@ msgstr "تفاصيل السيارة" msgid "year" msgstr "السنة" -#: templates/inventory/car_detail.html:27 templates/inventory/car_form.html:78 +#: templates/inventory/car_detail.html:27 templates/inventory/car_form.html:75 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:82 #: templates/inventory/car_list.html:79 msgid "make" msgstr "الصانع" -#: templates/inventory/car_detail.html:31 templates/inventory/car_form.html:101 +#: templates/inventory/car_detail.html:31 templates/inventory/car_form.html:98 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:99 #: templates/inventory/car_list.html:97 msgid "model" @@ -4471,7 +4496,7 @@ msgstr "الموديل" msgid "series" msgstr "السلسلة" -#: templates/inventory/car_detail.html:39 templates/inventory/car_form.html:88 +#: templates/inventory/car_detail.html:39 templates/inventory/car_form.html:85 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:143 #: templates/inventory/car_list.html:141 msgid "trim" @@ -4479,7 +4504,7 @@ msgstr "الفئة" #: templates/inventory/car_detail.html:69 #: templates/inventory/car_detail.html:421 -#: templates/inventory/car_form.html:111 templates/inventory/car_form.html:224 +#: templates/inventory/car_form.html:109 templates/inventory/car_form.html:219 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:252 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:279 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:299 @@ -4488,7 +4513,7 @@ msgid "specifications" msgstr "المواصفات" #: templates/inventory/car_detail.html:72 -#: templates/inventory/car_inventory.html:116 +#: templates/inventory/car_inventory.html:114 #: templates/ledger/coa_accounts/account_detail.html:92 #: templates/representatives/representative_list.html:30 #: templates/sales/estimates/estimate_list.html:49 @@ -4580,7 +4605,7 @@ msgstr "ينتهي في" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_table.html:39 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:16 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:16 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:94 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:95 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/tags/product_table.html:15 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/service/tags/services_table.html:15 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/uom/tags/uom_table.html:11 @@ -4615,10 +4640,6 @@ msgstr "إلى صالة العرض" msgid "Are you sure you want to reserve this car?" msgstr "هل أنت متأكد أنك تريد حجز هذه السيارة؟" -#: templates/inventory/car_detail.html:473 -msgid "Error loading form. Please try again later" -msgstr "حدث خطأ أثناء تحميل النموذج. يرجى المحاولة مرة أخرى لاحقًا." - #: templates/inventory/car_detail.html:511 #: templates/inventory/car_list.html:542 #: templates/partials/specifications_modal.html:11 @@ -4642,18 +4663,11 @@ msgstr "التفاصيل المالية السيارة" msgid "Finance Details for" msgstr "التفاصيل المالية لـ" -#: templates/inventory/car_form.html:47 -#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:45 -#: templates/representatives/representative_list.html:9 -#: templates/representatives/representative_list.html:10 -msgid "Search" -msgstr "بحث" - -#: templates/inventory/car_form.html:67 templates/inventory/car_form.html:86 -#: templates/inventory/car_form.html:99 templates/inventory/car_form.html:265 -#: templates/inventory/car_form.html:448 templates/inventory/car_form.html:465 -#: templates/inventory/car_form.html:466 templates/inventory/car_form.html:486 -#: templates/inventory/car_form.html:505 +#: templates/inventory/car_form.html:64 templates/inventory/car_form.html:83 +#: templates/inventory/car_form.html:96 templates/inventory/car_form.html:260 +#: templates/inventory/car_form.html:445 templates/inventory/car_form.html:462 +#: templates/inventory/car_form.html:463 templates/inventory/car_form.html:485 +#: templates/inventory/car_form.html:504 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:105 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:126 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:148 @@ -4667,24 +4681,24 @@ msgstr "بحث" msgid "Select" msgstr "اختيار" -#: templates/inventory/car_form.html:118 +#: templates/inventory/car_form.html:116 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:259 #: templates/inventory/car_list.html:27 templates/inventory/car_list.html:214 msgid "options" msgstr "الخيارات" -#: templates/inventory/car_form.html:200 +#: templates/inventory/car_form.html:196 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:262 msgid "Save and Add Another" msgstr "حفظ وإضافة آخر" -#: templates/inventory/car_form.html:203 +#: templates/inventory/car_form.html:199 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:265 msgid "Save and Go to Inventory" msgstr "حفظ والانتقال إلى المخزون" -#: templates/inventory/car_form.html:234 templates/inventory/car_form.html:253 -#: templates/inventory/car_form.html:273 templates/inventory/car_form.html:285 +#: templates/inventory/car_form.html:229 templates/inventory/car_form.html:248 +#: templates/inventory/car_form.html:268 templates/inventory/car_form.html:280 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:281 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:287 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:301 @@ -4692,7 +4706,7 @@ msgstr "حفظ والانتقال إلى المخزون" #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:333 #: templates/modal/confirm_modal.html:11 templates/modal/confirm_modal.html:20 #: templates/modal/error_modal.html:17 -#: templates/modal/event_details_modal.html:19 +#: templates/modal/event_details_modal.html:21 #: templates/partials/scanner_modal.html:6 #: templates/partials/specifications_modal.html:8 #: venv/lib/python3.11/site-packages/appointment/templates/modal/confirm_modal.html:18 @@ -4701,45 +4715,51 @@ msgstr "حفظ والانتقال إلى المخزون" msgid "Close" msgstr "إغلاق" -#: templates/inventory/car_form.html:251 +#: templates/inventory/car_form.html:246 #: venv/lib/python3.11/site-packages/click/core.py:1396 msgid "Options" msgstr "الخيارات" -#: templates/inventory/car_form.html:260 +#: templates/inventory/car_form.html:255 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:308 #: templates/inventory/car_list.html:152 msgid "equipment" msgstr "التجهيزات" -#: templates/inventory/car_form.html:284 +#: templates/inventory/car_form.html:279 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:332 msgid "scanner" msgstr "الماسح الضوئي" -#: templates/inventory/car_form.html:289 +#: templates/inventory/car_form.html:284 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:337 #: templates/partials/scanner_modal.html:10 msgid "VIN will appear here." msgstr "رقم الهيكل سيظهر هنا." -#: templates/inventory/car_form.html:290 +#: templates/inventory/car_form.html:285 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:338 #: templates/partials/scanner_modal.html:11 msgid "Use OCR Fallback" msgstr "التعرف الآلي على الحروف" -#: templates/inventory/car_form.html:360 templates/inventory/car_form.html:361 +#: templates/inventory/car_form.html:356 templates/inventory/car_form.html:357 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:409 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:410 msgid "Please enter a valid VIN." msgstr "الرجاء إدخال رقم هيكل صالح مكون من 17 حرفًا." -#: templates/inventory/car_form.html:383 +#: templates/inventory/car_form.html:379 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:432 msgid "An error occurred while decoding the VIN." msgstr "حدث خطأ أثناء فك تشفير الهيكل" +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:45 +#: templates/representatives/representative_list.html:9 +#: templates/representatives/representative_list.html:10 +msgid "Search" +msgstr "بحث" + #: templates/inventory/car_inventory.html:52 msgid "Stock" msgstr "المخزون" @@ -4765,11 +4785,11 @@ msgstr "العمر" msgid "No Color" msgstr "بدون لون" -#: templates/inventory/car_inventory.html:125 +#: templates/inventory/car_inventory.html:120 msgid "No cars available." msgstr "لا توجد سيارات متاحة." -#: templates/inventory/car_inventory.html:126 +#: templates/inventory/car_inventory.html:121 msgid "Add a Car" msgstr "إضافة سيارة" @@ -4919,7 +4939,7 @@ msgstr "إلى" #: templates/plans/order_detail_table.html:10 #: templates/sales/estimates/estimate_preview.html:294 #: templates/sales/estimates/sale_order_preview.html:265 -#: templates/sales/invoices/invoice_detail.html:242 +#: templates/sales/invoices/invoice_detail.html:244 msgid "VAT" msgstr "ضريبة القيمة المضافة" @@ -4974,10 +4994,10 @@ msgstr "شكرًا لاختيارك لنا. نحن نقدر عملك معنا." #: templates/inventory/transfer_preview.html:231 #: templates/ledger/bills/bill_detail.html:215 -#: templates/sales/estimates/estimate_detail.html:127 +#: templates/sales/estimates/estimate_detail.html:128 #: templates/sales/estimates/estimate_preview.html:275 #: templates/sales/estimates/sale_order_preview.html:243 -#: templates/sales/invoices/invoice_detail.html:219 +#: templates/sales/invoices/invoice_detail.html:220 msgid "Unit Price" msgstr "سعر الوحدة" @@ -5109,7 +5129,7 @@ msgstr "عرض الفاتورة" #: templates/ledger/bills/bill_detail.html:61 #: templates/ledger/bills/bill_update_form.html:4 #: templates/ledger/bills/bill_update_form.html:7 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:387 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:392 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3143 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:11 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:61 @@ -5168,7 +5188,7 @@ msgstr "المبلغ الكلي" #: templates/ledger/bills/bill_detail.html:158 #: templates/ledger/bills/bill_list.html:40 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:351 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:356 msgid "Bill Number" msgstr "رقم الفاتورة" @@ -5190,7 +5210,7 @@ msgstr "حالة الفاتورة" #: templates/sales/estimates/estimate_list.html:31 #: templates/sales/invoices/invoice_detail.html:195 #: templates/sales/invoices/invoice_list.html:38 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:339 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:344 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:224 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:301 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:193 @@ -5206,7 +5226,7 @@ msgstr "مرفوض" #: templates/ledger/bills/bill_detail.html:199 #: templates/sales/invoices/invoice_detail.html:201 #: templates/sales/invoices/invoice_list.html:40 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:341 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:346 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:303 msgid "Paid" msgstr "مدفوع" @@ -5216,8 +5236,8 @@ msgid "Vat Amount" msgstr "مبلغ ضريبة القيمة المضافة" #: templates/ledger/bills/bill_detail.html:236 -#: templates/sales/estimates/estimate_detail.html:165 -#: templates/sales/invoices/invoice_detail.html:256 +#: templates/sales/estimates/estimate_detail.html:167 +#: templates/sales/invoices/invoice_detail.html:258 msgid "Grand Total" msgstr "الإجمالي" @@ -5231,7 +5251,7 @@ msgstr "إنشاء فاتورة" #: templates/ledger/bills/bill_list.html:4 #: templates/ledger/bills/bill_list.html:8 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:388 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:393 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/estimate_detail.html:84 msgid "Bills" msgstr "الفواتير" @@ -5241,7 +5261,7 @@ msgid "Search bills..." msgstr "ابحث عن الفواتير ..." #: templates/ledger/bills/bill_list.html:43 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:355 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:360 msgid "Bill Status" msgstr "حالة الفاتورة" @@ -5284,7 +5304,9 @@ msgstr "هل أنت متأكد أنك تريد حذف هذا الحساب؟" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:24 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html:21 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:10 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:43 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:46 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:10 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:46 msgid "Account Name" msgstr "اسم الحساب" @@ -5312,9 +5334,11 @@ msgstr "نوع الرصيد" #: templates/ledger/coa_accounts/account_list.html:92 #: templates/sales/payments/payment_details.html:18 #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:423 -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:476 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:424 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:13 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:45 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:48 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:13 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:48 msgid "Debit" msgstr "مدين" @@ -5323,9 +5347,11 @@ msgstr "مدين" #: templates/ledger/coa_accounts/account_list.html:94 #: templates/sales/payments/payment_details.html:19 #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:422 -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:475 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:423 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:12 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:44 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:47 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:12 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:47 msgid "Credit" msgstr "دائن" @@ -5385,12 +5411,14 @@ msgstr "لم يتم العثور على حساب." #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:14 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:11 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/po_item_formset.html:21 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:11 msgid "Unit" msgstr "الوحدة" #: templates/ledger/reports/balance_sheet.html:43 #: templates/ledger/reports/cash_flow_statement.html:38 -#: templates/ledger/reports/components/period_navigator.html:9 +#: templates/ledger/reports/components/period_navigator.html:10 +#: templates/ledger/reports/income_statement.html:35 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3158 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/balance_sheet.html:37 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/cash_flow.html:38 @@ -5401,7 +5429,7 @@ msgstr "السنة المالية" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:148 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/cash_flow.html:31 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_detail.html:135 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:54 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:55 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_detail.html:29 msgid "Cash Flow Statement" msgstr "بيان التدفقات النقدية" @@ -5414,22 +5442,22 @@ msgstr "بيان التدفقات النقدية" msgid "Download PDF" msgstr "تنزيل PDF" -#: templates/ledger/reports/components/period_navigator.html:36 +#: templates/ledger/reports/components/period_navigator.html:37 msgid "Quarter" msgstr "ربع السنة" -#: templates/ledger/reports/components/period_navigator.html:47 +#: templates/ledger/reports/components/period_navigator.html:48 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/period_navigator.html:26 msgid "Month" msgstr "الشهر" -#: templates/ledger/reports/components/period_navigator.html:62 +#: templates/ledger/reports/components/period_navigator.html:63 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/period_navigator.html:37 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/includes/widget_ic.html:17 msgid "thru" msgstr "عبر" -#: templates/ledger/reports/components/period_navigator.html:71 +#: templates/ledger/reports/components/period_navigator.html:72 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/period_navigator.html:41 msgid "Go To Current Month" msgstr "الذهاب إلى الشهر الحالي" @@ -5762,12 +5790,7 @@ msgstr[3] "سينتهي حسابك %(user)s خلال %(days)s أيام." msgstr[4] "سينتهي حسابك %(user)s خلال %(days)s أيام." msgstr[5] "سينتهي حسابك %(user)s خلال %(days)s أيام." -#: templates/modal/event_details_modal.html:8 -#: venv/lib/python3.11/site-packages/appointment/templates/modal/event_details_modal.html:8 -msgid "Event Details" -msgstr "تفاصيل الحدث" - -#: templates/modal/event_details_modal.html:17 +#: templates/modal/event_details_modal.html:19 #: venv/lib/python3.11/site-packages/appointment/templates/modal/event_details_modal.html:17 msgid "Go" msgstr "اذهب" @@ -6261,7 +6284,7 @@ msgstr "مكتمل" msgid "canceled" msgstr "ملغى" -#: templates/sales/estimates/estimate_detail.html:145 +#: templates/sales/estimates/estimate_detail.html:147 msgid "Vat" msgstr "الضريبة" @@ -6283,7 +6306,7 @@ msgid "Completed" msgstr "مكتمل" #: templates/sales/estimates/estimate_list.html:41 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:343 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:348 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:227 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:304 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:197 @@ -6416,7 +6439,7 @@ msgstr "إجراء الدفع" #: templates/sales/payments/payment_details.html:4 #: templates/sales/payments/payment_details.html:8 -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:511 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:466 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:91 msgid "Transactions" msgstr "المعاملات" @@ -6427,9 +6450,10 @@ msgstr "#" #: templates/sales/payments/payment_details.html:15 #: templates/sales/payments/payment_list.html:22 -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:313 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:373 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:9 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:8 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:8 msgid "Timestamp" msgstr "الطابع الزمني" @@ -7311,19 +7335,27 @@ msgstr "تذكير: موعد قادم" msgid "Admin Reminder: Upcoming Appointment" msgstr "تذكير للإدارة: موعد قادم" +#: venv/lib/python3.11/site-packages/appointment/templates/administration/user_profile.html:50 +msgid "Appointment Information" +msgstr "معلومات الموعد" + #: venv/lib/python3.11/site-packages/appointment/templates/base_templates/base.html:7 msgid "Appointment application" msgstr "تطبيق المواعيد" +#: venv/lib/python3.11/site-packages/appointment/templates/email_sender/admin_new_appointment_email.html:58 msgid "A new appointment request has been received for" msgstr "تم استلام طلب موعد جديد لـ" +#: venv/lib/python3.11/site-packages/appointment/templates/email_sender/admin_new_appointment_email.html:58 msgid "Here are the details:" msgstr "فيما يلي التفاصيل:" +#: venv/lib/python3.11/site-packages/appointment/templates/email_sender/admin_new_appointment_email.html:75 msgid "Please ensure that" msgstr "يرجى التأكد من أن" +#: venv/lib/python3.11/site-packages/appointment/templates/email_sender/admin_new_appointment_email.html:75 msgid "reviews this appointment request and takes the necessary action." msgstr "يقوم بمراجعة طلب الموعد هذا واتخاذ الإجراءات اللازمة." @@ -7381,6 +7413,10 @@ msgstr "أوه! حدث خطأ ما." msgid "Go home" msgstr "الذهاب إلى الصفحة الرئيسية" +#: venv/lib/python3.11/site-packages/appointment/templates/modal/event_details_modal.html:8 +msgid "Event Details" +msgstr "تفاصيل الحدث" + #: venv/lib/python3.11/site-packages/appointment/tests/models/test_working_hours.py:37 #: venv/lib/python3.11/site-packages/django/utils/dates.py:7 msgid "Monday" @@ -7470,18 +7506,27 @@ msgid "Not set." msgstr "غير محدد" #: venv/lib/python3.11/site-packages/appointment/utils/date_time.py:84 +#, fuzzy, python-format +#| msgid "%(count)d day" +#| msgid_plural "%(count)d days" msgid "%(count)d day" msgid_plural "%(count)d days" msgstr[0] "%(num)d يوم" msgstr[1] "%(num)d أيام" #: venv/lib/python3.11/site-packages/appointment/utils/date_time.py:88 +#, fuzzy, python-format +#| msgid "%(count)d hour" +#| msgid_plural "%(count)d hours" msgid "%(count)d hour" msgid_plural "%(count)d hours" msgstr[0] "%(num)d ساعة" msgstr[1] "%(num)d ساعات" #: venv/lib/python3.11/site-packages/appointment/utils/date_time.py:92 +#, fuzzy, python-format +#| msgid "%(count)d minute" +#| msgid_plural "%(count)d minutes" msgid "%(count)d minute" msgid_plural "%(count)d minutes" msgstr[0] "%(num)d دقيقة" @@ -9345,7 +9390,7 @@ msgstr "اجعل نشطاً" #: venv/lib/python3.11/site-packages/django_ledger/forms/bill.py:49 #: venv/lib/python3.11/site-packages/django_ledger/forms/invoice.py:64 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:375 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:380 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:349 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:219 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:26 @@ -9580,11 +9625,11 @@ msgstr "اسم المصروف" msgid "Inventory Name" msgstr "اسم المخزون" -#: venv/lib/python3.11/site-packages/django_ledger/forms/journal_entry.py:30 +#: venv/lib/python3.11/site-packages/django_ledger/forms/journal_entry.py:37 msgid "Cannot create new Journal Entries on a locked Ledger." msgstr "لا يمكن إنشاء إدخالات يومية جديدة على دفتر حسابات مقفل." -#: venv/lib/python3.11/site-packages/django_ledger/forms/journal_entry.py:56 +#: venv/lib/python3.11/site-packages/django_ledger/forms/journal_entry.py:63 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3154 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:95 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/estimate_item_table.html:9 @@ -9592,7 +9637,7 @@ msgid "Entity Unit" msgstr "وحدة الكيان" #: venv/lib/python3.11/site-packages/django_ledger/forms/ledger.py:43 -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:192 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:193 msgid "Ledger External ID" msgstr "معرف دفتر الحسابات الخارجي" @@ -9616,7 +9661,7 @@ msgstr "تمييز كمنفذ" msgid "PO Notes" msgstr "ملاحظات طلب الشراء" -#: venv/lib/python3.11/site-packages/django_ledger/forms/transactions.py:81 +#: venv/lib/python3.11/site-packages/django_ledger/forms/transactions.py:77 msgid "Credits and Debits do not balance." msgstr "الأرصدة والخصوم غير متوازنة." @@ -9628,14 +9673,14 @@ msgstr "يجب أن يتكون اسم الوحدة من 10 أحرف على ال msgid "Must provide all City/State/Zip/Country" msgstr "يجب توفير جميع المعلومات: المدينة/الولاية/الرمز البريدي/الدولة" -#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:844 +#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:847 msgid "Cannot commit on locked ledger" msgstr "لا يمكن تأكيد المعاملات على دفتر حسابات مقفل" -#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:958 -#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:1013 -#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:1068 -#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:1122 +#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:961 +#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:1016 +#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:1071 +#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:1125 msgid "PDF support not enabled. Install PDF support from Pipfile." msgstr "دعم PDF غير ممكّن. قم بتثبيت دعم PDF من Pipfile." @@ -9861,7 +9906,7 @@ msgid "Account Balance Type" msgstr "نوع رصيد الحساب" #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:432 -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:328 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:392 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:28 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:25 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:13 @@ -9879,14 +9924,14 @@ msgstr "يُسمح بحساب افتراضي واحد فقط للدور." #: venv/lib/python3.11/site-packages/django_ledger/models/bank_account.py:126 #: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:69 -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:376 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:378 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3151 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:251 msgid "Entity Model" msgstr "نموذج الكيان" #: venv/lib/python3.11/site-packages/django_ledger/models/bank_account.py:143 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:459 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:464 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:376 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:429 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:303 @@ -9897,84 +9942,84 @@ msgstr "يجب تمرير user_model عند استخدام entity_slug." msgid "Bank Account" msgstr "الحساب المصرفي" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:356 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:361 msgid "External Reference Number" msgstr "رقم المرجع الخارجي" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:363 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:368 msgid "Bill Additional Info" msgstr "معلومات إضافية عن الفاتورة" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:367 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:372 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:85 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html:8 msgid "Bill Items" msgstr "بنود الفاتورة" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:373 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:378 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:347 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:235 msgid "Associated Customer Job/Estimate" msgstr "الوظيفة/التقدير المرتبط بالعميل" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:376 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:381 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:350 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:220 msgid "In Review Date" msgstr "تاريخ المراجعة" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:377 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:382 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:351 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:221 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:38 msgid "Approved Date" msgstr "تاريخ الموافقة" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:378 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:383 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:352 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:138 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html:126 msgid "Paid Date" msgstr "تاريخ الدفع" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:379 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:384 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:353 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:222 msgid "Void Date" msgstr "تاريخ الإبطال" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:380 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:385 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:354 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:224 msgid "Canceled Date" msgstr "تاريخ الإلغاء" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1124 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1139 #, python-format msgid "Do you want to mark Bill %s as Draft?" msgstr "هل تريد وضع الفاتورة %s كمسودة؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1232 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1247 #, python-format msgid "Do you want to mark Bill %s as In Review?" msgstr "هل تريد وضع الفاتورة %s قيد المراجعة؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1342 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1357 #, python-format msgid "Do you want to mark Bill %s as Approved?" msgstr "هل تريد وضع الفاتورة %s على أنها موافق عليها؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1468 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1483 #, python-format msgid "Do you want to mark Bill %s as Paid?" msgstr "هل تريد وضع الفاتورة %s على أنها مدفوعة؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1571 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1586 #, python-format msgid "Do you want to void Bill %s?" msgstr "هل تريد إبطال الفاتورة %s؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1644 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1659 #, python-format msgid "Do you want to mark Bill %s as Canceled?" msgstr "هل تريد وضع الفاتورة %s كملغاة؟" @@ -9989,7 +10034,7 @@ msgstr "الكيان" #: venv/lib/python3.11/site-packages/django_ledger/models/chart_of_accounts.py:184 #: venv/lib/python3.11/site-packages/django_ledger/models/items.py:128 #: venv/lib/python3.11/site-packages/django_ledger/models/items.py:541 -#: venv/lib/python3.11/site-packages/django_ledger/models/unit.py:131 +#: venv/lib/python3.11/site-packages/django_ledger/models/unit.py:135 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/chart_of_accounts/includes/coa_card.html:23 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/expense/tags/expense_item_table.html:12 msgid "Is Active" @@ -10003,15 +10048,15 @@ msgstr "وصف قائمة الحسابات" msgid "Chart of Account" msgstr "قائمة الحسابات" -#: venv/lib/python3.11/site-packages/django_ledger/models/chart_of_accounts.py:674 +#: venv/lib/python3.11/site-packages/django_ledger/models/chart_of_accounts.py:678 msgid "The Chart of Accounts is currently active." msgstr "قائمة الحسابات نشطة حاليًا." -#: venv/lib/python3.11/site-packages/django_ledger/models/chart_of_accounts.py:701 +#: venv/lib/python3.11/site-packages/django_ledger/models/chart_of_accounts.py:705 msgid "The Chart of Accounts is currently not active." msgstr "قائمة الحسابات غير نشطة حاليًا." -#: venv/lib/python3.11/site-packages/django_ledger/models/chart_of_accounts.py:848 +#: venv/lib/python3.11/site-packages/django_ledger/models/chart_of_accounts.py:852 msgid "Default Chart of Accounts cannot be deactivated." msgstr "لا يمكن إلغاء تنشيط قائمة الحسابات الافتراضية." @@ -10024,37 +10069,38 @@ msgstr "تم النشر" msgid "Only one Closing Entry for Date Allowed." msgstr "مسموح بإدخال إغلاق واحد فقط لكل تاريخ." -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:272 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:273 msgid "Cannot update transactions of a posted Closing Entry." msgstr "لا يمكن تحديث المعاملات لإدخال إغلاق تم نشره." -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:286 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:287 msgid "" "This action will delete existing closing entry transactions and create new " "ones." msgstr "سيؤدي هذا الإجراء إلى حذف قيود الإغلاق الحالية وإنشاء قيود جديدة." -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:304 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:305 msgid "Cannot delete a posted Closing Entry" msgstr "لا يمكن حذف إدخال إغلاق تم نشره" -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:317 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:319 msgid "This action cannot be undone." msgstr "لا يمكن التراجع عن هذا الإجراء." -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:371 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:373 msgid "Account Model" msgstr "نموذج الحساب" -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:385 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:387 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:428 msgid "Transaction Type" msgstr "نوع المعاملة" -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:386 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:388 msgid "Closing Entry Balance" msgstr "رصيد إدخال الإغلاق" -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:396 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:398 msgid "Closing Entry Model" msgstr "نموذج إدخال الإغلاق" @@ -10100,7 +10146,7 @@ msgid "Proposed Activity" msgstr "النشاط المقترح" #: venv/lib/python3.11/site-packages/django_ledger/models/data_import.py:253 -#: venv/lib/python3.11/site-packages/django_ledger/models/unit.py:140 +#: venv/lib/python3.11/site-packages/django_ledger/models/unit.py:144 msgid "Entity Unit Model" msgstr "نموذج وحدة الكيان" @@ -10171,8 +10217,8 @@ msgstr "" "يجب استدعاء إغلاق الدفاتر إما بتحديد تاريخ الإغلاق أو نموذج إدخال الإغلاق." #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3141 -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:342 -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:483 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:407 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:433 msgid "Journal Entry" msgstr "إدخال دفتر اليومية" @@ -10353,32 +10399,32 @@ msgstr "معلومات إضافية عن الفاتورة" msgid "Invoice Items" msgstr "عناصر الفاتورة" -#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1062 +#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1070 #, python-format msgid "Do you want to mark Invoice %s as Draft?" msgstr "هل تريد وضع الفاتورة %s كمسودة؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1153 +#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1161 #, python-format msgid "Do you want to mark Invoice %s as In Review?" msgstr "هل تريد وضع الفاتورة %s قيد المراجعة؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1258 +#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1266 #, python-format msgid "Do you want to mark Invoice %s as Approved?" msgstr "هل تريد وضع الفاتورة %s على أنها معتمدة؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1367 +#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1375 #, python-format msgid "Do you want to mark Invoice %s as Paid?" msgstr "هل تريد وضع الفاتورة %s على أنها مدفوعة؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1474 +#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1482 #, python-format msgid "Do you want to mark Invoice %s as Void?" msgstr "هل تريد إبطال الفاتورة %s؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1549 +#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1557 #, python-format msgid "Do you want to mark Invoice %s as Canceled?" msgstr "هل تريد إلغاء الفاتورة %s؟" @@ -10551,7 +10597,7 @@ msgid "Received" msgstr "تم الاستلام" #: venv/lib/python3.11/site-packages/django_ledger/models/items.py:1050 -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:319 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:380 msgid "Associated Entity Unit" msgstr "وحدة الكيان المرتبطة" @@ -10631,110 +10677,110 @@ msgstr "إيرادات التقدير/العقد لكل وحدة." msgid "Total Estimate/Contract Revenue." msgstr "إجمالي إيرادات التقدير/العقد." -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:290 -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:291 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:348 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:349 msgid "Operating" msgstr "تشغيلية" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:293 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:351 msgid "Investing" msgstr "استثمارية" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:294 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:352 msgid "Purchase/Disposition of PPE" msgstr "شراء/التخلص من الممتلكات والمعدات" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:295 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:353 msgid "Purchase/Disposition of Securities" msgstr "شراء/التخلص من الأوراق المالية" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:296 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:354 msgid "Investing Activity Other" msgstr "نشاط استثماري آخر" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:298 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:356 msgid "Financing" msgstr "تمويل" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:299 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:357 msgid "Payoff of Short Term Debt" msgstr "سداد الدين قصير الأجل" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:300 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:358 msgid "Payoff of Long Term Debt" msgstr "سداد الدين طويل الأجل" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:301 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:359 msgid "Issuance of Common Stock, Preferred Stock or Capital Contribution" msgstr "إصدار أسهم عادية، أسهم مفضلة أو مساهمة رأسمالية" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:302 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:360 msgid "Dividends or Distributions to Shareholders" msgstr "الأرباح أو التوزيعات للمساهمين" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:303 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:361 msgid "Financing Activity Other" msgstr "نشاط تمويلي آخر" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:312 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:372 msgid "Journal Entry Number" msgstr "رقم إدخال دفتر اليومية" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:326 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:390 msgid "Origin" msgstr "الأصل" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:327 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:391 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:18 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:12 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:13 msgid "Posted" msgstr "تم النشر" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:333 -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:212 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:396 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:213 #: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:216 msgid "Ledger" msgstr "دفتر الأستاذ" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:343 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:21 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:408 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:19 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:10 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:31 -#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:96 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:32 +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:91 msgid "Journal Entries" msgstr "إدخالات دفتر اليومية" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:635 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:801 msgid "Cannot post an empty Journal Entry." msgstr "لا يمكن نشر إدخال دفتر يومية فارغ." -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:193 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:194 msgid "User Defined Ledger ID" msgstr "معرف دفتر الأستاذ المعرّف بواسطة المستخدم" -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:194 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:195 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:9 msgid "Ledger Name" msgstr "اسم دفتر الأستاذ" -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:198 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:199 msgid "Ledger Entity" msgstr "كيان دفتر الأستاذ" -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:199 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:200 msgid "Posted Ledger" msgstr "دفتر الأستاذ المنشور" -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:200 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:201 msgid "Locked Ledger" msgstr "دفتر الأستاذ المقفل" -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:201 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:202 msgid "Hidden Ledger" msgstr "دفتر الأستاذ المخفي" -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:213 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:214 msgid "Ledgers" msgstr "دفاتر الأستاذ" @@ -10901,55 +10947,48 @@ msgstr "هل تريد وضع أمر الشراء %s على أنه تم التن msgid "Do you want to mark Purchase Order %s as Void?" msgstr "هل تريد إبطال أمر الشراء %s؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:480 -msgid "Tx Type" -msgstr "نوع المعاملة" - -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:484 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:434 msgid "Journal Entry to be associated with this transaction." msgstr "إدخال دفتر اليومية المرتبط بهذه المعاملة." -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:488 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:440 msgid "Account from Chart of Accounts to be associated with this transaction." msgstr "الحساب من مخطط الحسابات المرتبط بهذه المعاملة." -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:494 -msgid "Account of the transaction." -msgstr "حساب المعاملة." +msgid "Amount of the transaction." +msgstr "مبلغ المعاملة." -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:499 -msgid "Tx Description" +msgid "Transaction Description" msgstr "وصف المعاملة" -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:500 -msgid "A description to be included with this individual transaction" -msgstr "وصف يتم تضمينه مع هذه المعاملة الفردية" +msgid "A description to be included with this individual transaction." +msgstr "وصف يتم تضمينه مع هذه المعاملة الفردية." -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:502 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:458 msgid "Cleared" msgstr "تمت التسوية" -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:503 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:459 msgid "Reconciled" msgstr "تمت المطابقة" -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:510 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:465 msgid "Transaction" msgstr "معاملة" -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:541 -msgid "Cannot transact on root accounts" -msgstr "لا يمكن إجراء المعاملات على الحسابات الجذرية" +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:574 +msgid "Transactions cannot be linked to root accounts." +msgstr "لا يمكن ربط المعاملات بالحسابات الجذرية." -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:588 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:586 msgid "Cannot modify transactions on locked journal entries." msgstr "لا يمكن تعديل المعاملات على إدخالات دفتر اليومية المقفلة." -#: venv/lib/python3.11/site-packages/django_ledger/models/unit.py:129 +#: venv/lib/python3.11/site-packages/django_ledger/models/unit.py:133 msgid "Unit Entity" msgstr "كيان الوحدة" -#: venv/lib/python3.11/site-packages/django_ledger/models/unit.py:132 +#: venv/lib/python3.11/site-packages/django_ledger/models/unit.py:136 msgid "Is Hidden" msgstr "مخفي" @@ -10995,11 +11034,8 @@ msgstr "إلغاء التفعيل" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:113 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:43 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:64 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:70 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:76 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:82 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:76 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:104 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:105 msgid "Lock" msgstr "قفل" @@ -11095,7 +11131,7 @@ msgstr "أحدث الفواتير" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_list.html:95 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/closing_entry_list.html:73 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/estimate_list.html:95 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:94 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:97 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_list.html:98 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_list.html:96 msgid "Go to month:" @@ -11109,8 +11145,8 @@ msgstr "الذهاب إلى الشهر:" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/estimate_list.html:110 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_list.html:94 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_list.html:106 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:97 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:109 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:100 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:112 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_list.html:101 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_list.html:113 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_list.html:99 @@ -11121,7 +11157,7 @@ msgstr "الكل" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_list.html:107 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/closing_entry_list.html:85 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/estimate_list.html:107 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:106 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:109 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_list.html:110 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_list.html:108 msgid "Go to year:" @@ -11346,8 +11382,9 @@ msgstr "اذهب إلى" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/includes/card_closing_entry.html:28 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:51 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:76 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:67 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:112 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:113 msgid "Post" msgstr "نشر" @@ -11357,8 +11394,9 @@ msgstr "تحديث المعاملات" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/includes/card_closing_entry.html:46 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:55 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:82 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:71 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:116 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:117 msgid "UnPost" msgstr "إلغاء النشر" @@ -11761,17 +11799,18 @@ msgid "Invoice Configuration" msgstr "تكوين الفاتورة" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:6 -#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:163 +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:153 msgid "Journal Entry Detail" msgstr "تفاصيل إدخال اليومية" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:47 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:108 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:70 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:109 msgid "UnLock" msgstr "إلغاء القفل" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_create.html:8 -#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:44 +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:54 msgid "Create Journal Entry" msgstr "إنشاء إدخال يومية" @@ -11787,15 +11826,15 @@ msgstr "تعديل المعاملات" msgid "Ledger List" msgstr "قائمة دفاتر الأستاذ" -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:123 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:126 msgid "Back to Ledger List" msgstr "العودة إلى قائمة دفاتر الأستاذ" -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:128 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:131 msgid "Lock All" msgstr "قفل الكل" -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:133 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:136 msgid "Post All" msgstr "نشر الكل" @@ -11827,11 +11866,11 @@ msgstr "أقدم تاريخ إدخال اليومية" msgid "Locked by Closing Entry" msgstr "مقفل بإدخال الإغلاق" -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:121 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:122 msgid "Hide" msgstr "إخفاء" -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:125 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:126 msgid "UnHide" msgstr "إلغاء الإخفاء" @@ -12134,47 +12173,51 @@ msgstr "إنشاء عنصر مخزون جديد" msgid "Update Inventory Item" msgstr "تحديث عنصر المخزون" -#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:125 +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:110 +msgid "Locked Journal Entry. Must unlock ledger to add new Journal Entries." +msgstr "إدخال دفتر اليومية مقفل. يجب إلغاء قفل دفتر الأستاذ لإضافة إدخالات جديدة في دفتر اليومية." + +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:131 msgid "Update Journal Entry" msgstr "تحديث إدخال اليومية" -#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:194 +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:175 msgid "Edit Transactions" msgstr "تحرير المعاملات" -#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:211 +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:192 msgid "Locked Journal Entry. Must unlock to Edit." msgstr "إدخال اليومية مقفل. يجب إلغاء القفل لتحريره." -#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:244 +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:220 msgid "Cannot update a Locked Journal Entry." msgstr "لا يمكن تحديث إدخال اليومية المقفل." -#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:251 +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:227 msgid "Journal Entry has not been posted." msgstr "إدخال اليومية لم يتم نشره." -#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:44 +#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:43 msgid "Entity Ledgers" msgstr "دفاتر الأستاذ للكيان" -#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:96 +#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:95 msgid "Create Ledger" msgstr "إنشاء دفتر الأستاذ" -#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:145 +#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:144 msgid "Update Ledger: " msgstr "تحديث دفتر الأستاذ:" -#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:228 +#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:225 msgid "Ledger Balance Sheet: " msgstr "الميزانية العمومية لدفتر الأستاذ:" -#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:277 +#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:273 msgid "Ledger Income Statement: " msgstr "بيان الدخل لدفتر الأستاذ:" -#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:331 +#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:326 msgid "Ledger Cash Flow Statement: " msgstr "بيان التدفق النقدي لدفتر الأستاذ:" @@ -12186,7 +12229,7 @@ msgstr "رقم ربع غير صالح" msgid "No quarter specified" msgstr "لم يتم تحديد ربع" -#: venv/lib/python3.11/site-packages/django_ledger/views/mixins.py:328 +#: venv/lib/python3.11/site-packages/django_ledger/views/mixins.py:327 msgid "ENTITY_SLUG_URL_KWARG must be provided." msgstr "يجب توفير ENTITY_SLUG_URL_KWARG." @@ -12247,3 +12290,15 @@ msgstr "س" #: venv/lib/python3.11/site-packages/sympy/solvers/simplex.py:565 msgid "y" msgstr "ص" + +#~ msgid "OTP verified successfully!" +#~ msgstr "تم التحقق من رمز التحقق بنجاح!" + +#~ msgid "Invalid OTP. Please try again." +#~ msgstr "رمز التحقق غير صالح. يرجى المحاولة مرة أخرى." + +#~ msgid "Tx Type" +#~ msgstr "نوع المعاملة" + +#~ msgid "Cannot transact on root accounts" +#~ msgstr "لا يمكن إجراء المعاملات على الحسابات الجذرية" diff --git a/requirements.txt b/requirements.txt index c2d803d0..1c1a21b0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -52,7 +52,7 @@ django-debug-toolbar==5.0.1 django-extensions==3.2.3 django-filter==24.3 django-formtools==2.5.1 -django-ledger==0.7.3 +django-ledger==0.7.4.1 django-money==3.5.3 django-next-url-mixin==0.4.0 django-nine==0.2.7 @@ -85,7 +85,6 @@ filelock==3.17.0 fire==0.7.0 Flask==3.1.0 fonttools==4.55.7 -fpdf==1.7.2 fpdf2==2.8.2 frozenlist==1.5.0 fsspec==2024.12.0 diff --git a/static/.DS_Store b/static/.DS_Store index 71c17b68..a0368c9d 100644 Binary files a/static/.DS_Store and b/static/.DS_Store differ diff --git a/static/css/pdf_preview.css b/static/css/pdf_preview.css new file mode 100644 index 00000000..7ec3a735 --- /dev/null +++ b/static/css/pdf_preview.css @@ -0,0 +1,43 @@ +body { + font-family: 'Roboto', sans-serif; + background-color: #f8f9fa; + margin: 0; + padding: 0; +} + +.pdf-container { + width: 210mm; + min-height: 297mm; + padding: 20mm; + margin: auto; + background: white; + border-radius: 5px; + box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.pdf-header { + text-align: center; + border-bottom: 2px solid #dee2e6; + padding-bottom: 10px; + margin-bottom: 20px; + font-size: 18px; + font-weight: bold; +} + +.pdf-content { + flex: 1; + padding: 10px 0; +} + +.pdf-footer { + text-align: center; + margin-top: auto; + padding: 10px; + background: #f8f9fa; + font-size: 12px; + color: #666; + border-top: 1px solid #ddd; +} \ No newline at end of file diff --git a/static/images/.DS_Store b/static/images/.DS_Store index 2029b7e6..9cf7553a 100644 Binary files a/static/images/.DS_Store and b/static/images/.DS_Store differ diff --git a/static/images/logos/logo-d-pdf.png b/static/images/logos/logo-d-pdf.png new file mode 100644 index 00000000..742af001 Binary files /dev/null and b/static/images/logos/logo-d-pdf.png differ diff --git a/static/js/app_admin/staff_index.js b/static/js/app_admin/staff_index.js index 70b6af40..a76392ea 100644 --- a/static/js/app_admin/staff_index.js +++ b/static/js/app_admin/staff_index.js @@ -217,7 +217,7 @@ function displayEventList(events, date) { eventListHtml += `
` + noEventTxt + `
`; } - eventListHtml += ``; + eventListHtml += ``; const eventListContainer = document.getElementById('event-list-container'); eventListContainer.innerHTML = eventListHtml; @@ -580,10 +580,12 @@ async function showCreateAppointmentModal(defaultStartTime, formattedDate) { if (isUserSuperUser) { staffDropdown = await populateStaffMembers(null, false); staffDropdown.id = "staffSelect"; + staffDropdown.classList.add('form-select') staffDropdown.disabled = false; // Enable dropdown attachEventListenersToDropdown(); // Attach event listener } servicesDropdown.id = "serviceSelect"; + servicesDropdown.classList.add('form-select') servicesDropdown.disabled = false; // Enable dropdown document.getElementById('eventModalBody').innerHTML = prepareCreateAppointmentModalContent(servicesDropdown, staffDropdown, defaultStartTime, formattedDate); @@ -635,6 +637,8 @@ async function getAppointmentData(eventId, isCreatingMode, defaultStartTime) { async function getServiceDropdown(serviceId, isEditMode) { const servicesDropdown = await populateServices(serviceId, !isEditMode); servicesDropdown.id = "serviceSelect"; + servicesDropdown.classList.add('form-select'); + servicesDropdown.classList.add('form-select-sm'); servicesDropdown.disabled = !isEditMode; return servicesDropdown; } @@ -643,6 +647,8 @@ async function getServiceDropdown(serviceId, isEditMode) { async function getStaffDropdown(staffId, isEditMode) { const staffDropdown = await populateStaffMembers(staffId, !isEditMode); staffDropdown.id = "staffSelect"; + staffDropdown.classList.add('form-select'); + staffDropdown.classList.add('form-select-sm'); staffDropdown.disabled = !isEditMode; return staffDropdown; } diff --git a/static/js/appointments.js b/static/js/appointments.js index 1df6b5d3..d554f46e 100644 --- a/static/js/appointments.js +++ b/static/js/appointments.js @@ -15,7 +15,7 @@ const calendar = new FullCalendar.Calendar(calendarEl, { left: 'title', right: 'prev,today,next', }, - height: '400px', + themeSystem: 'bootstrap', nowIndicator: true, bootstrapFontAwesome: { diff --git a/static/js/html2pdf.bundle.min.js b/static/js/html2pdf.bundle.min.js new file mode 100644 index 00000000..9538d6ce --- /dev/null +++ b/static/js/html2pdf.bundle.min.js @@ -0,0 +1,3 @@ +/*! For license information please see html2pdf.bundle.min.js.LICENSE.txt */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("html2pdf",[],t):"object"==typeof exports?exports.html2pdf=t():e.html2pdf=t()}(self,(function(){return function(){var e,t,r={"./node_modules/@babel/runtime-corejs3/core-js-stable/array/from.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/array/from.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/array/is-array.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/array/is-array.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/date/now.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/date/now.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/bind.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/bind.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/concat.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/every.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/every.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/fill.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/fill.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/filter.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/for-each.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/includes.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/index-of.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/index-of.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/map.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/map.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/reduce.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/reduce.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/reverse.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/reverse.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/slice.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/slice.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/some.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/some.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/starts-with.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/starts-with.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/trim.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/values.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/values.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/map.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/map/index.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/object/define-properties.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/object/define-properties.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/object/define-property.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/object/define-property.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/object/get-own-property-descriptor.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/object/get-own-property-descriptors.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/object/get-own-property-symbols.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/object/keys.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/object/keys.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/parse-float.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/parse-float.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/parse-int.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/parse-int.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/promise.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/promise/index.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/reflect/apply.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/reflect/apply.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/reflect/construct.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/reflect/construct.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/reflect/delete-property.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/reflect/delete-property.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/reflect/get-prototype-of.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/reflect/get-prototype-of.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/symbol.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/symbol/index.js")},"./node_modules/@babel/runtime-corejs3/core-js/array/from.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/array/from.js")},"./node_modules/@babel/runtime-corejs3/core-js/array/is-array.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/array/is-array.js")},"./node_modules/@babel/runtime-corejs3/core-js/get-iterator-method.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/get-iterator-method.js")},"./node_modules/@babel/runtime-corejs3/core-js/get-iterator.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/get-iterator.js")},"./node_modules/@babel/runtime-corejs3/core-js/instance/slice.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/instance/slice.js")},"./node_modules/@babel/runtime-corejs3/core-js/object/create.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/object/create.js")},"./node_modules/@babel/runtime-corejs3/core-js/object/define-property.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/object/define-property.js")},"./node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-descriptor.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/object/get-own-property-descriptor.js")},"./node_modules/@babel/runtime-corejs3/core-js/object/get-prototype-of.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/object/get-prototype-of.js")},"./node_modules/@babel/runtime-corejs3/core-js/object/set-prototype-of.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/object/set-prototype-of.js")},"./node_modules/@babel/runtime-corejs3/core-js/promise.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/promise/index.js")},"./node_modules/@babel/runtime-corejs3/core-js/reflect/get.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/reflect/get.js")},"./node_modules/@babel/runtime-corejs3/core-js/symbol.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/symbol/index.js")},"./node_modules/@babel/runtime-corejs3/core-js/symbol/iterator.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/symbol/iterator.js")},"./node_modules/@babel/runtime-corejs3/helpers/esm/arrayLikeToArray.js":function(e,t,r){"use strict";function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);rA){var c=u;u=A,A=c}}else{if("l"!==e&&"landscape"!==e)throw"Invalid orientation: "+e;e="l",A>u&&(c=u,u=A,A=c)}return{width:u,height:A,unit:t,k:a}},t.default=n.jsPDF},"./src/plugin/pagebreaks.js":function(e,t,r){"use strict";r.r(t),r("./node_modules/core-js/modules/es.array.concat.js"),r("./node_modules/core-js/modules/es.array.slice.js"),r("./node_modules/core-js/modules/es.array.join.js"),r("./node_modules/core-js/modules/web.dom-collections.for-each.js"),r("./node_modules/core-js/modules/es.object.keys.js");var n=r("./src/worker.js"),o=r("./src/utils.js"),s={toContainer:n.default.prototype.toContainer};n.default.template.opt.pagebreak={mode:["css","legacy"],before:[],after:[],avoid:[]},n.default.prototype.toContainer=function(){return s.toContainer.call(this).then((function(){var e=this.prop.container,t=this.prop.pageSize.inner.px.height,r=[].concat(this.opt.pagebreak.mode),n={avoidAll:-1!==r.indexOf("avoid-all"),css:-1!==r.indexOf("css"),legacy:-1!==r.indexOf("legacy")},s={},i=this;["before","after","avoid"].forEach((function(t){var r=n.avoidAll&&"avoid"===t;s[t]=r?[]:[].concat(i.opt.pagebreak[t]||[]),s[t].length>0&&(s[t]=Array.prototype.slice.call(e.querySelectorAll(s[t].join(", "))))}));var a=e.querySelectorAll(".html2pdf__page-break");a=Array.prototype.slice.call(a);var A=e.querySelectorAll("*");Array.prototype.forEach.call(A,(function(e){var r={before:!1,after:n.legacy&&-1!==a.indexOf(e),avoid:n.avoidAll};if(n.css){var i=window.getComputedStyle(e),A=["always","page","left","right"];r={before:r.before||-1!==A.indexOf(i.breakBefore||i.pageBreakBefore),after:r.after||-1!==A.indexOf(i.breakAfter||i.pageBreakAfter),avoid:r.avoid||-1!==["avoid","avoid-page"].indexOf(i.breakInside||i.pageBreakInside)}}Object.keys(r).forEach((function(t){r[t]=r[t]||-1!==s[t].indexOf(e)}));var u=e.getBoundingClientRect();if(r.avoid&&!r.before){var c=Math.floor(u.top/t),l=Math.floor(u.bottom/t),d=Math.abs(u.bottom-u.top)/t;l!==c&&d<=1&&(r.before=!0)}if(r.before){var f=(0,o.createElement)("div",{style:{display:"block",height:t-u.top%t+"px"}});e.parentNode.insertBefore(f,e)}r.after&&(f=(0,o.createElement)("div",{style:{display:"block",height:t-u.bottom%t+"px"}}),e.parentNode.insertBefore(f,e.nextSibling))}))}))}},"./src/utils.js":function(e,t,r){"use strict";function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}r.r(t),r.d(t,{objType:function(){return o},createElement:function(){return s},cloneNode:function(){return i},unitConvert:function(){return a},toPx:function(){return A}}),r("./node_modules/core-js/modules/es.number.constructor.js"),r("./node_modules/core-js/modules/es.symbol.js"),r("./node_modules/core-js/modules/es.symbol.description.js"),r("./node_modules/core-js/modules/es.object.to-string.js"),r("./node_modules/core-js/modules/es.symbol.iterator.js"),r("./node_modules/core-js/modules/es.array.iterator.js"),r("./node_modules/core-js/modules/es.string.iterator.js"),r("./node_modules/core-js/modules/web.dom-collections.iterator.js");var o=function(e){var t=n(e);return"undefined"===t?"undefined":"string"===t||e instanceof String?"string":"number"===t||e instanceof Number?"number":"function"===t||e instanceof Function?"function":e&&e.constructor===Array?"array":e&&1===e.nodeType?"element":"object"===t?"object":"unknown"},s=function(e,t){var r=document.createElement(e);if(t.className&&(r.className=t.className),t.innerHTML){r.innerHTML=t.innerHTML;for(var n=r.getElementsByTagName("script"),o=n.length;o-- >0;null)n[o].parentNode.removeChild(n[o])}for(var s in t.style)r.style[s]=t.style[s];return r},i=function e(t,r){for(var n=3===t.nodeType?document.createTextNode(t.nodeValue):t.cloneNode(!1),o=t.firstChild;o;o=o.nextSibling)!0!==r&&1===o.nodeType&&"SCRIPT"===o.nodeName||n.appendChild(e(o,r));return 1===t.nodeType&&("CANVAS"===t.nodeName?(n.width=t.width,n.height=t.height,n.getContext("2d").drawImage(t,0,0)):"TEXTAREA"!==t.nodeName&&"SELECT"!==t.nodeName||(n.value=t.value),n.addEventListener("load",(function(){n.scrollTop=t.scrollTop,n.scrollLeft=t.scrollLeft}),!0)),n},a=function(e,t){if("number"===o(e))return 72*e/96/t;var r={};for(var n in e)r[n]=72*e[n]/96/t;return r},A=function(e,t){return Math.floor(e*t/72*96)}},"./src/worker.js":function(e,t,r){"use strict";r.r(t),r("./node_modules/core-js/modules/es.object.assign.js"),r("./node_modules/core-js/modules/es.array.map.js"),r("./node_modules/core-js/modules/es.object.keys.js"),r("./node_modules/core-js/modules/es.array.concat.js"),r("./node_modules/core-js/modules/es.object.to-string.js"),r("./node_modules/core-js/modules/es.regexp.to-string.js"),r("./node_modules/core-js/modules/es.function.name.js"),r("./node_modules/core-js/modules/web.dom-collections.for-each.js");var n=r("./node_modules/jspdf/dist/jspdf.es.min.js"),o=r("./node_modules/html2canvas/dist/html2canvas.js"),s=r("./src/utils.js"),i=r("./node_modules/es6-promise/dist/es6-promise.js"),a=r.n(i)().Promise,A=function e(t){var r=Object.assign(e.convert(a.resolve()),JSON.parse(JSON.stringify(e.template))),n=e.convert(a.resolve(),r);return(n=n.setProgress(1,e,1,[e])).set(t)};(A.prototype=Object.create(a.prototype)).constructor=A,A.convert=function(e,t){return e.__proto__=t||A.prototype,e},A.template={prop:{src:null,container:null,overlay:null,canvas:null,img:null,pdf:null,pageSize:null},progress:{val:0,state:null,n:0,stack:[]},opt:{filename:"file.pdf",margin:[0,0,0,0],image:{type:"jpeg",quality:.95},enableLinks:!0,html2canvas:{},jsPDF:{}}},A.prototype.from=function(e,t){return this.then((function(){switch(t=t||function(e){switch((0,s.objType)(e)){case"string":return"string";case"element":return"canvas"===e.nodeName.toLowerCase?"canvas":"element";default:return"unknown"}}(e)){case"string":return this.set({src:(0,s.createElement)("div",{innerHTML:e})});case"element":return this.set({src:e});case"canvas":return this.set({canvas:e});case"img":return this.set({img:e});default:return this.error("Unknown source type.")}}))},A.prototype.to=function(e){switch(e){case"container":return this.toContainer();case"canvas":return this.toCanvas();case"img":return this.toImg();case"pdf":return this.toPdf();default:return this.error("Invalid target.")}},A.prototype.toContainer=function(){return this.thenList([function(){return this.prop.src||this.error("Cannot duplicate - no source HTML.")},function(){return this.prop.pageSize||this.setPageSize()}]).then((function(){var e={position:"fixed",overflow:"hidden",zIndex:1e3,left:0,right:0,bottom:0,top:0,backgroundColor:"rgba(0,0,0,0.8)"},t={position:"absolute",width:this.prop.pageSize.inner.width+this.prop.pageSize.unit,left:0,right:0,top:0,height:"auto",margin:"auto",backgroundColor:"white"};e.opacity=0;var r=(0,s.cloneNode)(this.prop.src,this.opt.html2canvas.javascriptEnabled);this.prop.overlay=(0,s.createElement)("div",{className:"html2pdf__overlay",style:e}),this.prop.container=(0,s.createElement)("div",{className:"html2pdf__container",style:t}),this.prop.container.appendChild(r),this.prop.overlay.appendChild(this.prop.container),document.body.appendChild(this.prop.overlay)}))},A.prototype.toCanvas=function(){var e=[function(){return document.body.contains(this.prop.container)||this.toContainer()}];return this.thenList(e).then((function(){var e=Object.assign({},this.opt.html2canvas);return delete e.onrendered,o(this.prop.container,e)})).then((function(e){(this.opt.html2canvas.onrendered||function(){})(e),this.prop.canvas=e,document.body.removeChild(this.prop.overlay)}))},A.prototype.toImg=function(){return this.thenList([function(){return this.prop.canvas||this.toCanvas()}]).then((function(){var e=this.prop.canvas.toDataURL("image/"+this.opt.image.type,this.opt.image.quality);this.prop.img=document.createElement("img"),this.prop.img.src=e}))},A.prototype.toPdf=function(){return this.thenList([function(){return this.prop.canvas||this.toCanvas()}]).then((function(){var e=this.prop.canvas,t=this.opt,r=e.height,o=Math.floor(e.width*this.prop.pageSize.inner.ratio),s=Math.ceil(r/o),i=this.prop.pageSize.inner.height,a=document.createElement("canvas"),A=a.getContext("2d");a.width=e.width,a.height=o,this.prop.pdf=this.prop.pdf||new n.jsPDF(t.jsPDF);for(var u=0;u~\.\[:]+)/g,Je=/(\.[^\s\+>~\.\[:]+)/g,Ye=/(::[^\s\+>~\.\[:]+|:first-line|:first-letter|:before|:after)/gi,Ze=/(:[\w-]+\([^\)]*\))/gi,$e=/(:[^\s\+>~\.\[:]+)/g,et=/([^\s\+>~\.\[:]+)/g;function tt(e,t){var r=e.match(t);return r?[e.replace(t," "),r.length]:[e,0]}function rt(e){var t=[0,0,0],r=e.replace(/:not\(([^\)]*)\)/g," $1 ").replace(/{[\s\S]*/gm," "),n=0,o=tt(r,Xe),s=(0,u.default)(o,2);r=s[0],n=s[1],t[1]+=n;var i=tt(r,We),a=(0,u.default)(i,2);r=a[0],n=a[1],t[0]+=n;var A=tt(r,Je),c=(0,u.default)(A,2);r=c[0],n=c[1],t[1]+=n;var l=tt(r,Ye),d=(0,u.default)(l,2);r=d[0],n=d[1],t[2]+=n;var f=tt(r,Ze),h=(0,u.default)(f,2);r=h[0],n=h[1],t[1]+=n;var p=tt(r,$e),m=(0,u.default)(p,2);r=m[0],n=m[1],t[1]+=n;var g=tt(r=r.replace(/[\*\s\+>~]/g," ").replace(/[#\.]/g," "),et),y=(0,u.default)(g,2);return r=y[0],n=y[1],t[2]+=n,t.join("")}var nt=1e-8;function ot(e){return Math.sqrt(Math.pow(e[0],2)+Math.pow(e[1],2))}function st(e,t){return(e[0]*t[0]+e[1]*t[1])/(ot(e)*ot(t))}function it(e,t){return(e[0]*t[1]0&&void 0!==arguments[0]?arguments[0]:" ",o=this.document,s=this.name;return A()(t=G()(r=Re(this.getString())).call(r).split(n)).call(t,(function(t){return new e(o,s,t)}))}},{key:"hasValue",value:function(e){var t=this.value;return null!==t&&""!==t&&(e||0!==t)&&void 0!==t}},{key:"isString",value:function(e){var t=this.value,r="string"==typeof t;return r&&e?e.test(t):r}},{key:"isUrlDefinition",value:function(){return this.isString(/^url\(/)}},{key:"isPixels",value:function(){if(!this.hasValue())return!1;var e=this.getString();switch(!0){case/px$/.test(e):case/^[0-9]+$/.test(e):return!0;default:return!1}}},{key:"setValue",value:function(e){return this.value=e,this}},{key:"getValue",value:function(e){return void 0===e||this.hasValue()?this.value:e}},{key:"getNumber",value:function(e){if(!this.hasValue())return void 0===e?0:i()(e);var t=this.value,r=i()(t);return this.isString(/%$/)&&(r/=100),r}},{key:"getString",value:function(e){return void 0===e||this.hasValue()?void 0===this.value?"":String(this.value):String(e)}},{key:"getColor",value:function(e){var t=this.getString(e);return this.isNormalizedColor||(this.isNormalizedColor=!0,t=Ge(t),this.value=t),t}},{key:"getDpi",value:function(){return 96}},{key:"getRem",value:function(){return this.document.rootEmSize}},{key:"getEm",value:function(){return this.document.emSize}},{key:"getUnits",value:function(){return this.getString().replace(/[0-9\.\-]/g,"")}},{key:"getPixels",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.hasValue())return 0;var r="boolean"==typeof e?[void 0,e]:[e],n=(0,u.default)(r,2),o=n[0],s=n[1],i=this.document.screen.viewPort;switch(!0){case this.isString(/vmin$/):return this.getNumber()/100*Math.min(i.computeSize("x"),i.computeSize("y"));case this.isString(/vmax$/):return this.getNumber()/100*Math.max(i.computeSize("x"),i.computeSize("y"));case this.isString(/vw$/):return this.getNumber()/100*i.computeSize("x");case this.isString(/vh$/):return this.getNumber()/100*i.computeSize("y");case this.isString(/rem$/):return this.getNumber()*this.getRem();case this.isString(/em$/):return this.getNumber()*this.getEm();case this.isString(/ex$/):return this.getNumber()*this.getEm()/2;case this.isString(/px$/):return this.getNumber();case this.isString(/pt$/):return this.getNumber()*this.getDpi()*(1/72);case this.isString(/pc$/):return 15*this.getNumber();case this.isString(/cm$/):return this.getNumber()*this.getDpi()/2.54;case this.isString(/mm$/):return this.getNumber()*this.getDpi()/25.4;case this.isString(/in$/):return this.getNumber()*this.getDpi();case this.isString(/%$/)&&s:return this.getNumber()*this.getEm();case this.isString(/%$/):return this.getNumber()*i.computeSize(o);default:var a=this.getNumber();return t&&a<1?a*i.computeSize(o):a}}},{key:"getMilliseconds",value:function(){return this.hasValue()?this.isString(/ms$/)?this.getNumber():1e3*this.getNumber():0}},{key:"getRadians",value:function(){if(!this.hasValue())return 0;switch(!0){case this.isString(/deg$/):return this.getNumber()*(Math.PI/180);case this.isString(/grad$/):return this.getNumber()*(Math.PI/200);case this.isString(/rad$/):return this.getNumber();default:return this.getNumber()*(Math.PI/180)}}},{key:"getDefinition",value:function(){var e=this.getString(),t=e.match(/#([^\)'"]+)/);return t&&(t=t[1]),t||(t=e),this.document.definitions[t]}},{key:"getFillStyleDefinition",value:function(e,t){var r=this.getDefinition();if(!r)return null;if("function"==typeof r.createGradient)return r.createGradient(this.document.ctx,e,t);if("function"==typeof r.createPattern){if(r.getHrefAttribute().hasValue()){var n=r.getAttribute("patternTransform");r=r.getHrefAttribute().getDefinition(),n.hasValue()&&r.getAttribute("patternTransform",!0).setValue(n.value)}return r.createPattern(this.document.ctx,e,t)}return null}},{key:"getTextBaseline",value:function(){return this.hasValue()?e.textBaselineMapping[this.getString()]:null}},{key:"addOpacity",value:function(t){for(var r=this.getColor(),n=r.length,o=0,s=0;s1&&void 0!==arguments[1]?arguments[1]:0,n=Ke(t),o=(0,u.default)(n,2),s=o[0],i=void 0===s?r:s,a=o[1],A=void 0===a?r:a;return new e(i,A)}},{key:"parseScale",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=Ke(t),o=(0,u.default)(n,2),s=o[0],i=void 0===s?r:s,a=o[1],A=void 0===a?i:a;return new e(i,A)}},{key:"parsePath",value:function(t){for(var r=Ke(t),n=r.length,o=[],s=0;s0}},{key:"runEvents",value:function(){if(this.working){var e=this.screen,t=this.events,r=this.eventElements,n=e.ctx.canvas.style;n&&(n.cursor=""),g()(t).call(t,(function(e,t){for(var n=e.run,o=r[t];o;)n(o),o=o.parent})),this.events=[],this.eventElements=[]}}},{key:"checkPath",value:function(e,t){if(this.working&&t){var r=this.events,n=this.eventElements;g()(r).call(r,(function(r,o){var s=r.x,i=r.y;!n[o]&&t.isPointInPath&&t.isPointInPath(s,i)&&(n[o]=e)}))}}},{key:"checkBoundingBox",value:function(e,t){if(this.working&&t){var r=this.events,n=this.eventElements;g()(r).call(r,(function(r,o){var s=r.x,i=r.y;!n[o]&&t.isPointInBox(s,i)&&(n[o]=e)}))}}},{key:"mapXY",value:function(e,t){for(var r=this.screen,n=r.window,o=r.ctx,s=new mt(e,t),i=o.canvas;i;)s.x-=i.offsetLeft,s.y-=i.offsetTop,i=i.offsetParent;return n.scrollX&&(s.x+=n.scrollX),n.scrollY&&(s.y+=n.scrollY),s}},{key:"onClick",value:function(e){var t=this.mapXY((e||event).clientX,(e||event).clientY),r=t.x,n=t.y;this.events.push({type:"onclick",x:r,y:n,run:function(e){e.onClick&&e.onClick()}})}},{key:"onMouseMove",value:function(e){var t=this.mapXY((e||event).clientX,(e||event).clientY),r=t.x,n=t.y;this.events.push({type:"onmousemove",x:r,y:n,run:function(e){e.onMouseMove&&e.onMouseMove()}})}}]),e}(),yt="undefined"!=typeof window?window:null,vt="undefined"!=typeof fetch?K()(fetch).call(fetch,void 0):null,wt=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.fetch,o=void 0===n?vt:n,s=r.window,i=void 0===s?yt:s;(0,F.default)(this,e),this.ctx=t,this.FRAMERATE=30,this.MAX_VIRTUAL_PIXELS=3e4,this.CLIENT_WIDTH=800,this.CLIENT_HEIGHT=600,this.viewPort=new pt,this.mouse=new gt(this),this.animations=[],this.waits=[],this.frameDuration=0,this.isReadyLock=!1,this.isFirstRender=!0,this.intervalId=null,this.window=i,this.fetch=o}return(0,U.default)(e,[{key:"wait",value:function(e){this.waits.push(e)}},{key:"ready",value:function(){return this.readyPromise?this.readyPromise:M().resolve()}},{key:"isReady",value:function(){var e;if(this.isReadyLock)return!0;var t=k()(e=this.waits).call(e,(function(e){return e()}));return t&&(this.waits=[],this.resolveReady&&this.resolveReady()),this.isReadyLock=t,t}},{key:"setDefaults",value:function(e){e.strokeStyle="rgba(0,0,0,0)",e.lineCap="butt",e.lineJoin="miter",e.miterLimit=4}},{key:"setViewBox",value:function(e){var t=e.document,r=e.ctx,n=e.aspectRatio,o=e.width,s=e.desiredWidth,i=e.height,a=e.desiredHeight,A=e.minX,c=void 0===A?0:A,l=e.minY,d=void 0===l?0:l,f=e.refX,h=e.refY,p=e.clip,m=void 0!==p&&p,g=e.clipX,y=void 0===g?0:g,v=e.clipY,w=void 0===v?0:v,b=Re(n).replace(/^defer\s/,"").split(" "),B=(0,u.default)(b,2),j=B[0]||"xMidYMid",_=B[1]||"meet",C=o/s,x=i/a,E=Math.min(C,x),N=Math.max(C,x),Q=s,F=a;"meet"===_&&(Q*=E,F*=E),"slice"===_&&(Q*=N,F*=N);var U=new ht(t,"refX",f),S=new ht(t,"refY",h),L=U.hasValue()&&S.hasValue();if(L&&r.translate(-E*U.getPixels("x"),-E*S.getPixels("y")),m){var T=E*y,H=E*w;r.beginPath(),r.moveTo(T,H),r.lineTo(o,H),r.lineTo(o,i),r.lineTo(T,i),r.closePath(),r.clip()}if(!L){var I="meet"===_&&E===x,P="slice"===_&&N===x,O="meet"===_&&E===C,k="slice"===_&&N===C;/^xMid/.test(j)&&(I||P)&&r.translate(o/2-Q/2,0),/YMid$/.test(j)&&(O||k)&&r.translate(0,i/2-F/2),/^xMax/.test(j)&&(I||P)&&r.translate(o-Q,0),/YMax$/.test(j)&&(O||k)&&r.translate(0,i-F)}switch(!0){case"none"===j:r.scale(C,x);break;case"meet"===_:r.scale(E,E);break;case"slice"===_:r.scale(N,N)}r.translate(-c,-d)}},{key:"start",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.enableRedraw,o=void 0!==n&&n,s=r.ignoreMouse,i=void 0!==s&&s,a=r.ignoreAnimation,A=void 0!==a&&a,u=r.ignoreDimensions,c=void 0!==u&&u,l=r.ignoreClear,d=void 0!==l&&l,f=r.forceRedraw,h=r.scaleWidth,p=r.scaleHeight,m=r.offsetX,g=r.offsetY,y=this.FRAMERATE,v=this.mouse,w=1e3/y;if(this.frameDuration=w,this.readyPromise=new(M())((function(e){t.resolveReady=e})),this.isReady()&&this.render(e,c,d,h,p,m,g),o){var b=P()(),B=b,j=0,_=function r(){b=P()(),(j=b-B)>=w&&(B=b-j%w,t.shouldUpdate(A,f)&&(t.render(e,c,d,h,p,m,g),v.runEvents())),t.intervalId=V()(r)};i||v.start(),this.intervalId=V()(_)}}},{key:"stop",value:function(){this.intervalId&&(V().cancel(this.intervalId),this.intervalId=null),this.mouse.stop()}},{key:"shouldUpdate",value:function(e,t){if(!e){var r,n=this.frameDuration;if(H()(r=this.animations).call(r,(function(e,t){return t.update(n)||e}),!1))return!0}return!("function"!=typeof t||!t())||!(this.isReadyLock||!this.isReady())||!!this.mouse.hasEvents()}},{key:"render",value:function(e,t,r,n,o,s,i){var a=this.CLIENT_WIDTH,A=this.CLIENT_HEIGHT,u=this.viewPort,c=this.ctx,l=this.isFirstRender,d=c.canvas;u.clear(),d.width&&d.height?u.setCurrent(d.width,d.height):u.setCurrent(a,A);var f=e.getStyle("width"),h=e.getStyle("height");!t&&(l||"number"!=typeof n&&"number"!=typeof o)&&(f.hasValue()&&(d.width=f.getPixels("x"),d.style&&(d.style.width="".concat(d.width,"px"))),h.hasValue()&&(d.height=h.getPixels("y"),d.style&&(d.style.height="".concat(d.height,"px"))));var p=d.clientWidth||d.width,m=d.clientHeight||d.height;if(t&&f.hasValue()&&h.hasValue()&&(p=f.getPixels("x"),m=h.getPixels("y")),u.setCurrent(p,m),"number"==typeof s&&e.getAttribute("x",!0).setValue(s),"number"==typeof i&&e.getAttribute("y",!0).setValue(i),"number"==typeof n||"number"==typeof o){var g,y,v=Ke(e.getAttribute("viewBox").getString()),w=0,b=0;if("number"==typeof n){var B=e.getStyle("width");B.hasValue()?w=B.getPixels("x")/n:isNaN(v[2])||(w=v[2]/n)}if("number"==typeof o){var j=e.getStyle("height");j.hasValue()?b=j.getPixels("y")/o:isNaN(v[3])||(b=v[3]/o)}w||(w=b),b||(b=w),e.getAttribute("width",!0).setValue(n),e.getAttribute("height",!0).setValue(o);var _=e.getStyle("transform",!0,!0);_.setValue(L()(g=L()(y="".concat(_.getString()," scale(")).call(y,1/w,", ")).call(g,1/b,")"))}r||c.clearRect(0,0,p,m),e.render(c),l&&(this.isFirstRender=!1)}}]),e}();wt.defaultWindow=yt,wt.defaultFetch=vt;var bt=wt.defaultFetch,Bt="undefined"!=typeof DOMParser?DOMParser:null,jt=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.fetch,n=void 0===r?bt:r,o=t.DOMParser,s=void 0===o?Bt:o;(0,F.default)(this,e),this.fetch=n,this.DOMParser=s}var t,r;return(0,U.default)(e,[{key:"parse",value:(r=(0,N.default)(E().mark((function e(t){return E().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!/^=0;r--)t[r].unapply(e)}},{key:"applyToPoint",value:function(e){for(var t=this.transforms,r=t.length,n=0;n2&&void 0!==arguments[2]&&arguments[2];if((0,F.default)(this,e),this.document=t,this.node=r,this.captureTextNodes=i,this.attributes={},this.styles={},this.stylesSpecificity={},this.animationFrozen=!1,this.animationFrozenValue="",this.parent=null,this.children=[],r&&1===r.nodeType){if(g()(n=ae()(r.attributes)).call(n,(function(e){var r=Ve(e.nodeName);s.attributes[r]=new ht(t,r,e.value)})),this.addStylesFromStyleDefinition(),this.getAttribute("style").hasValue()){var a,c=A()(a=this.getAttribute("style").getString().split(";")).call(a,(function(e){return G()(e).call(e)}));g()(c).call(c,(function(e){var r;if(e){var n=A()(r=e.split(":")).call(r,(function(e){return G()(e).call(e)})),o=(0,u.default)(n,2),i=o[0],a=o[1];s.styles[i]=new ht(t,i,a)}}))}var l=t.definitions,d=this.getAttribute("id");d.hasValue()&&(l[d.getValue()]||(l[d.getValue()]=this)),g()(o=ae()(r.childNodes)).call(o,(function(e){if(1===e.nodeType)s.addChild(e);else if(i&&(3===e.nodeType||4===e.nodeType)){var r=t.createTextNode(e);r.getText().length>0&&s.addChild(r)}}))}}return(0,U.default)(e,[{key:"getAttribute",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.attributes[e];if(!r&&t){var n=new ht(this.document,e,"");return this.attributes[e]=n,n}return r||ht.empty(this.document)}},{key:"getHrefAttribute",value:function(){for(var e in this.attributes)if("href"===e||/:href$/.test(e))return this.attributes[e];return ht.empty(this.document)}},{key:"getStyle",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this.styles[e];if(n)return n;var o=this.getAttribute(e);if(o&&o.hasValue())return this.styles[e]=o,o;if(!r){var s=this.parent;if(s){var i=s.getStyle(e);if(i&&i.hasValue())return i}}if(t){var a=new ht(this.document,e,"");return this.styles[e]=a,a}return n||ht.empty(this.document)}},{key:"render",value:function(e){if("none"!==this.getStyle("display").getString()&&"hidden"!==this.getStyle("visibility").getString()){if(e.save(),this.getStyle("mask").hasValue()){var t=this.getStyle("mask").getDefinition();t&&(this.applyEffects(e),t.apply(e,this))}else if("none"!==this.getStyle("filter").getValue("none")){var r=this.getStyle("filter").getDefinition();r&&(this.applyEffects(e),r.apply(e,this))}else this.setContext(e),this.renderChildren(e),this.clearContext(e);e.restore()}}},{key:"setContext",value:function(e){}},{key:"applyEffects",value:function(e){var t=Ut.fromElement(this.document,this);t&&t.apply(e);var r=this.getStyle("clip-path",!1,!0);if(r.hasValue()){var n=r.getDefinition();n&&n.apply(e)}}},{key:"clearContext",value:function(e){}},{key:"renderChildren",value:function(e){var t;g()(t=this.children).call(t,(function(t){t.render(e)}))}},{key:"addChild",value:function(t){var r,n=t instanceof e?t:this.document.createElement(t);n.parent=this,se()(r=e.ignoreChildTypes).call(r,n.type)||this.children.push(n)}},{key:"matchesSelector",value:function(e){var t,r=this.node;if("function"==typeof r.matches)return r.matches(e);var n=r.getAttribute("class");return!(!n||""===n)&&ne()(t=n.split(" ")).call(t,(function(t){if(".".concat(t)===e)return!0}))}},{key:"addStylesFromStyleDefinition",value:function(){var e=this.document,t=e.styles,r=e.stylesSpecificity;for(var n in t)if("@"!==n[0]&&this.matchesSelector(n)){var o=t[n],s=r[n];if(o)for(var i in o){var a=this.stylesSpecificity[i];void 0===a&&(a="000"),s>=a&&(this.styles[i]=o[i],this.stylesSpecificity[i]=s)}}}},{key:"removeStyles",value:function(e,t){return H()(t).call(t,(function(t,r){var n,o=e.getStyle(r);if(!o.hasValue())return t;var s=o.getString();return o.setValue(""),L()(n=[]).call(n,(0,te.default)(t),[[r,s]])}),[])}},{key:"restoreStyles",value:function(e,t){g()(t).call(t,(function(t){var r=(0,u.default)(t,2),n=r[0],o=r[1];e.getStyle(n,!0).setValue(o)}))}}]),e}();St.ignoreChildTypes=["title"];var Lt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){return(0,F.default)(this,o),n.call(this,e,t,r)}return o}(St);function Tt(e){var t=G()(e).call(e);return/^('|")/.test(t)?t:'"'.concat(t,'"')}function Ht(e){if(!e)return"";var t=G()(e).call(e).toLowerCase();switch(t){case"normal":case"italic":case"oblique":case"inherit":case"initial":case"unset":return t;default:return/^oblique\s+(-|)\d+deg$/.test(t)?t:""}}function It(e){if(!e)return"";var t=G()(e).call(e).toLowerCase();switch(t){case"normal":case"bold":case"lighter":case"bolder":case"inherit":case"initial":case"unset":return t;default:return/^[\d.]+$/.test(t)?t:""}}var Pt=function(){function e(t,r,n,o,s,i){(0,F.default)(this,e);var a=i?"string"==typeof i?e.parse(i):i:{};this.fontFamily=s||a.fontFamily,this.fontSize=o||a.fontSize,this.fontStyle=t||a.fontStyle,this.fontWeight=n||a.fontWeight,this.fontVariant=r||a.fontVariant}return(0,U.default)(e,[{key:"toString",value:function(){var e,t,r;return G()(e=[Ht(this.fontStyle),this.fontVariant,It(this.fontWeight),this.fontSize,(t=this.fontFamily,"undefined"==typeof process?t:A()(r=G()(t).call(t).split(",")).call(r,Tt).join(","))].join(" ")).call(e)}}],[{key:"parse",value:function(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1?arguments[1]:void 0,o="",s="",i="",a="",A="",c=G()(t=Re(r)).call(t).split(" "),l={fontSize:!1,fontStyle:!1,fontWeight:!1,fontVariant:!1};return g()(c).call(c,(function(t){var r,n,c;switch(!0){case!l.fontStyle&&se()(r=e.styles).call(r,t):"inherit"!==t&&(o=t),l.fontStyle=!0;break;case!l.fontVariant&&se()(n=e.variants).call(n,t):"inherit"!==t&&(s=t),l.fontStyle=!0,l.fontVariant=!0;break;case!l.fontWeight&&se()(c=e.weights).call(c,t):"inherit"!==t&&(i=t),l.fontStyle=!0,l.fontVariant=!0,l.fontWeight=!0;break;case!l.fontSize:if("inherit"!==t){var d=t.split("/"),f=(0,u.default)(d,1);a=f[0]}l.fontStyle=!0,l.fontVariant=!0,l.fontWeight=!0,l.fontSize=!0;break;default:"inherit"!==t&&(A+=t)}})),new e(o,s,i,a,A,n)}}]),e}();Pt.styles="normal|italic|oblique|inherit",Pt.variants="normal|small-caps|inherit",Pt.weights="normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit";var Ot=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.NaN,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.NaN,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.NaN,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Number.NaN;(0,F.default)(this,e),this.x1=t,this.y1=r,this.x2=n,this.y2=o,this.addPoint(t,r),this.addPoint(n,o)}return(0,U.default)(e,[{key:"addPoint",value:function(e,t){void 0!==e&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=e,this.x2=e),ethis.x2&&(this.x2=e)),void 0!==t&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),tthis.y2&&(this.y2=t))}},{key:"addX",value:function(e){this.addPoint(e,null)}},{key:"addY",value:function(e){this.addPoint(null,e)}},{key:"addBoundingBox",value:function(e){if(e){var t=e.x1,r=e.y1,n=e.x2,o=e.y2;this.addPoint(t,r),this.addPoint(n,o)}}},{key:"sumCubic",value:function(e,t,r,n,o){return Math.pow(1-e,3)*t+3*Math.pow(1-e,2)*e*r+3*(1-e)*Math.pow(e,2)*n+Math.pow(e,3)*o}},{key:"bezierCurveAdd",value:function(e,t,r,n,o){var s=6*t-12*r+6*n,i=-3*t+9*r-9*n+3*o,a=3*r-3*t;if(0!==i){var A=Math.pow(s,2)-4*a*i;if(!(A<0)){var u=(-s+Math.sqrt(A))/(2*i);01&&void 0!==arguments[1]&&arguments[1];if(!t){var r=this.getStyle("fill"),n=this.getStyle("fill-opacity"),o=this.getStyle("stroke"),s=this.getStyle("stroke-opacity");if(r.isUrlDefinition()){var i=r.getFillStyleDefinition(this,n);i&&(e.fillStyle=i)}else if(r.hasValue()){"currentColor"===r.getString()&&r.setValue(this.getStyle("color").getColor());var a=r.getColor();"inherit"!==a&&(e.fillStyle="none"===a?"rgba(0,0,0,0)":a)}if(n.hasValue()){var A=new ht(this.document,"fill",e.fillStyle).addOpacity(n).getColor();e.fillStyle=A}if(o.isUrlDefinition()){var u=o.getFillStyleDefinition(this,s);u&&(e.strokeStyle=u)}else if(o.hasValue()){"currentColor"===o.getString()&&o.setValue(this.getStyle("color").getColor());var c=o.getString();"inherit"!==c&&(e.strokeStyle="none"===c?"rgba(0,0,0,0)":c)}if(s.hasValue()){var l=new ht(this.document,"stroke",e.strokeStyle).addOpacity(s).getString();e.strokeStyle=l}var d=this.getStyle("stroke-width");if(d.hasValue()){var f=d.getPixels();e.lineWidth=f||nt}var h=this.getStyle("stroke-linecap"),p=this.getStyle("stroke-linejoin"),m=this.getStyle("stroke-miterlimit"),g=this.getStyle("paint-order"),y=this.getStyle("stroke-dasharray"),v=this.getStyle("stroke-dashoffset");if(h.hasValue()&&(e.lineCap=h.getString()),p.hasValue()&&(e.lineJoin=p.getString()),m.hasValue()&&(e.miterLimit=m.getNumber()),g.hasValue()&&(e.paintOrder=g.getValue()),y.hasValue()&&"none"!==y.getString()){var w=Ke(y.getString());void 0!==e.setLineDash?e.setLineDash(w):void 0!==e.webkitLineDash?e.webkitLineDash=w:void 0===e.mozDash||1===w.length&&0===w[0]||(e.mozDash=w);var b=v.getPixels();void 0!==e.lineDashOffset?e.lineDashOffset=b:void 0!==e.webkitLineDashOffset?e.webkitLineDashOffset=b:void 0!==e.mozDashOffset&&(e.mozDashOffset=b)}}if(this.modifiedEmSizeStack=!1,void 0!==e.font){var B=this.getStyle("font"),j=this.getStyle("font-style"),_=this.getStyle("font-variant"),C=this.getStyle("font-weight"),x=this.getStyle("font-size"),E=this.getStyle("font-family"),N=new Pt(j.getString(),_.getString(),C.getString(),x.hasValue()?"".concat(x.getPixels(!0),"px"):"",E.getString(),Pt.parse(B.getString(),e.font));j.setValue(N.fontStyle),_.setValue(N.fontVariant),C.setValue(N.fontWeight),x.setValue(N.fontSize),E.setValue(N.fontFamily),e.font=N.toString(),x.isPixels()&&(this.document.emSize=x.getPixels(),this.modifiedEmSizeStack=!0)}t||(this.applyEffects(e),e.globalAlpha=this.calculateOpacity())}},{key:"clearContext",value:function(e){(0,de.default)((0,ee.default)(o.prototype),"clearContext",this).call(this,e),this.modifiedEmSizeStack&&this.document.popEmSize()}}]),o}(St);var Rt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;return(0,F.default)(this,o),(s=n.call(this,e,t,(this instanceof o?this.constructor:void 0)===o||r)).type="text",s.x=0,s.y=0,s.measureCache=-1,s}return(0,U.default)(o,[{key:"setContext",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(0,de.default)((0,ee.default)(o.prototype),"setContext",this).call(this,e,t);var r=this.getStyle("dominant-baseline").getTextBaseline()||this.getStyle("alignment-baseline").getTextBaseline();r&&(e.textBaseline=r)}},{key:"initializeCoordinates",value:function(e){this.x=this.getAttribute("x").getPixels("x"),this.y=this.getAttribute("y").getPixels("y");var t=this.getAttribute("dx"),r=this.getAttribute("dy");t.hasValue()&&(this.x+=t.getPixels("x")),r.hasValue()&&(this.y+=r.getPixels("y")),this.x+=this.getAnchorDelta(e,this,0)}},{key:"getBoundingBox",value:function(e){var t,r=this;if("text"!==this.type)return this.getTElementBoundingBox(e);this.initializeCoordinates(e);var n=null;return g()(t=this.children).call(t,(function(t,o){var s=r.getChildBoundingBox(e,r,r,o);n?n.addBoundingBox(s):n=s})),n}},{key:"getFontSize",value:function(){var e=this.document,t=this.parent,r=Pt.parse(e.ctx.font).fontSize;return t.getStyle("font-size").getNumber(r)}},{key:"getTElementBoundingBox",value:function(e){var t=this.getFontSize();return new Ot(this.x,this.y-t,this.x+this.measureText(e),this.y)}},{key:"getGlyph",value:function(e,t,r){var n=t[r],o=null;if(e.isArabic){var s=t.length,i=t[r-1],a=t[r+1],A="isolated";(0===r||" "===i)&&r0&&" "!==i&&r0&&" "!==i&&(r===s-1||" "===a)&&(A="initial"),void 0!==e.glyphs[n]&&((o=e.glyphs[n][A])||"glyph"!==e.glyphs[n].type||(o=e.glyphs[n]))}else o=e.glyphs[n];return o||(o=e.missingGlyph),o}},{key:"getText",value:function(){return""}},{key:"getTextFromNode",value:function(e){var t=e||this.node,r=ae()(t.parentNode.childNodes),n=le()(r).call(r,t),o=r.length-1,s=Re(t.value||t.text||t.textContent||"");return 0===n&&(s=Me(s)),n===o&&(s=De(s)),s}},{key:"renderChildren",value:function(e){var t,r=this;if("text"===this.type){this.initializeCoordinates(e),g()(t=this.children).call(t,(function(t,n){r.renderChild(e,r,r,n)}));var n=this.document.screen.mouse;n.isWorking()&&n.checkBoundingBox(this,this.getBoundingBox(e))}else this.renderTElementChildren(e)}},{key:"renderTElementChildren",value:function(e){var t=this.document,r=this.parent,n=this.getText(),o=r.getStyle("font-family").getDefinition();if(o)for(var s,i=o.fontFace.unitsPerEm,a=Pt.parse(t.ctx.font),A=r.getStyle("font-size").getNumber(a.fontSize),u=r.getStyle("font-style").getString(a.fontStyle),c=A/i,l=o.isRTL?ue()(s=n.split("")).call(s).join(""):n,d=Ke(r.getAttribute("dx").getString()),f=l.length,h=0;hr&&i.getAttribute("x").hasValue()||i.getAttribute("text-anchor").hasValue()));A++)a+=i.measureTextRecursive(e);return-1*("end"===n?a:a/2)}return 0}},{key:"adjustChildCoordinates",value:function(e,t,r,n){var o=r.children[n];if("function"!=typeof o.measureText)return o;e.save(),o.setContext(e,!0);var s=o.getAttribute("x"),i=o.getAttribute("y"),a=o.getAttribute("dx"),A=o.getAttribute("dy"),u=o.getAttribute("text-anchor").getString("start");if(0===n&&"textNode"!==o.type&&(s.hasValue()||s.setValue(t.getAttribute("x").getValue("0")),i.hasValue()||i.setValue(t.getAttribute("y").getValue("0")),a.hasValue()||a.setValue(t.getAttribute("dx").getValue("0")),A.hasValue()||A.setValue(t.getAttribute("dy").getValue("0"))),s.hasValue()){if(o.x=s.getPixels("x")+t.getAnchorDelta(e,r,n),"start"!==u){var c=o.measureTextRecursive(e);o.x+=-1*("end"===u?c:c/2)}a.hasValue()&&(o.x+=a.getPixels("x"))}else{if("start"!==u){var l=o.measureTextRecursive(e);t.x+=-1*("end"===u?l:l/2)}a.hasValue()&&(t.x+=a.getPixels("x")),o.x=t.x}return t.x=o.x+o.measureText(e),i.hasValue()?(o.y=i.getPixels("y"),A.hasValue()&&(o.y+=A.getPixels("y"))):(A.hasValue()&&(t.y+=A.getPixels("y")),o.y=t.y),t.y=o.y,o.clearContext(e),e.restore(),o}},{key:"getChildBoundingBox",value:function(e,t,r,n){var o,s=this.adjustChildCoordinates(e,t,r,n);if("function"!=typeof s.getBoundingBox)return null;var i=s.getBoundingBox(e);return i?(g()(o=s.children).call(o,(function(r,n){var o=t.getChildBoundingBox(e,t,s,n);i.addBoundingBox(o)})),i):null}},{key:"renderChild",value:function(e,t,r,n){var o,s=this.adjustChildCoordinates(e,t,r,n);s.render(e),g()(o=s.children).call(o,(function(r,n){t.renderChild(e,t,s,n)}))}},{key:"measureTextRecursive",value:function(e){var t;return H()(t=this.children).call(t,(function(t,r){return t+r.measureTextRecursive(e)}),this.measureText(e))}},{key:"measureText",value:function(e){var t=this.measureCache;if(~t)return t;var r=this.getText(),n=this.measureTargetText(e,r);return this.measureCache=n,n}},{key:"measureTargetText",value:function(e,t){if(!t.length)return 0;var r=this.parent,n=r.getStyle("font-family").getDefinition();if(n){for(var o,s=this.getFontSize(),i=n.isRTL?ue()(o=t.split("")).call(o).join(""):t,a=Ke(r.getAttribute("dx").getString()),A=i.length,u=0,c=0;c0?"":s.getTextFromNode(),s}return(0,U.default)(o,[{key:"getText",value:function(){return this.text}}]),o}(Rt);var Dt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="textNode",e}return o}(Mt);var Kt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e){var t;return(0,F.default)(this,o),(t=n.call(this,e.replace(/[+-.]\s+/g,"-").replace(/[^MmZzLlHhVvCcSsQqTtAae\d\s.,+-].*/g,""))).control=null,t.start=null,t.current=null,t.command=null,t.commands=t.commands,t.i=-1,t.previousCommand=null,t.points=[],t.angles=[],t}return(0,U.default)(o,[{key:"reset",value:function(){this.i=-1,this.command=null,this.previousCommand=null,this.start=new mt(0,0),this.control=new mt(0,0),this.current=new mt(0,0),this.points=[],this.angles=[]}},{key:"isEnd",value:function(){return this.i>=this.commands.length-1}},{key:"next",value:function(){var e=this.commands[++this.i];return this.previousCommand=this.command,this.command=e,e}},{key:"getPoint",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"x",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"y",r=new mt(this.command[e],this.command[t]);return this.makeAbsolute(r)}},{key:"getAsControlPoint",value:function(e,t){var r=this.getPoint(e,t);return this.control=r,r}},{key:"getAsCurrentPoint",value:function(e,t){var r=this.getPoint(e,t);return this.current=r,r}},{key:"getReflectedControlPoint",value:function(){var e=this.previousCommand.type;if(e!==pe.SVGPathData.CURVE_TO&&e!==pe.SVGPathData.SMOOTH_CURVE_TO&&e!==pe.SVGPathData.QUAD_TO&&e!==pe.SVGPathData.SMOOTH_QUAD_TO)return this.current;var t=this.current,r=t.x,n=t.y,o=this.control,s=o.x,i=o.y;return new mt(2*r-s,2*n-i)}},{key:"makeAbsolute",value:function(e){if(this.command.relative){var t=this.current,r=t.x,n=t.y;e.x+=r,e.y+=n}return e}},{key:"addMarker",value:function(e,t,r){var n=this.points,o=this.angles;r&&o.length>0&&!o[o.length-1]&&(o[o.length-1]=n[n.length-1].angleTo(r)),this.addMarkerAngle(e,t?t.angleTo(e):null)}},{key:"addMarkerAngle",value:function(e,t){this.points.push(e),this.angles.push(t)}},{key:"getMarkerPoints",value:function(){return this.points}},{key:"getMarkerAngles",value:function(){for(var e=this.angles,t=e.length,r=0;ra?i:a,g=i>a?1:i/a,y=i>a?a/i:1;e.translate(c.x,c.y),e.rotate(u),e.scale(g,y),e.arc(0,0,m,l,l+d,Boolean(1-A)),e.scale(1/g,1/y),e.rotate(-u),e.translate(-c.x,-c.y)}}},{key:"pathZ",value:function(e,t){o.pathZ(this.pathParser),e&&t.x1!==t.x2&&t.y1!==t.y2&&e.closePath()}}],[{key:"pathM",value:function(e){var t=e.getAsCurrentPoint();return e.start=e.current,{point:t}}},{key:"pathL",value:function(e){return{current:e.current,point:e.getAsCurrentPoint()}}},{key:"pathH",value:function(e){var t=e.current,r=e.command,n=new mt((r.relative?t.x:0)+r.x,t.y);return e.current=n,{current:t,point:n}}},{key:"pathV",value:function(e){var t=e.current,r=e.command,n=new mt(t.x,(r.relative?t.y:0)+r.y);return e.current=n,{current:t,point:n}}},{key:"pathC",value:function(e){return{current:e.current,point:e.getPoint("x1","y1"),controlPoint:e.getAsControlPoint("x2","y2"),currentPoint:e.getAsCurrentPoint()}}},{key:"pathS",value:function(e){return{current:e.current,point:e.getReflectedControlPoint(),controlPoint:e.getAsControlPoint("x2","y2"),currentPoint:e.getAsCurrentPoint()}}},{key:"pathQ",value:function(e){return{current:e.current,controlPoint:e.getAsControlPoint("x1","y1"),currentPoint:e.getAsCurrentPoint()}}},{key:"pathT",value:function(e){var t=e.current,r=e.getReflectedControlPoint();return e.control=r,{current:t,controlPoint:r,currentPoint:e.getAsCurrentPoint()}}},{key:"pathA",value:function(e){var t=e.current,r=e.command,n=r.rX,o=r.rY,s=r.xRot,i=r.lArcFlag,a=r.sweepFlag,A=s*(Math.PI/180),u=e.getAsCurrentPoint(),c=new mt(Math.cos(A)*(t.x-u.x)/2+Math.sin(A)*(t.y-u.y)/2,-Math.sin(A)*(t.x-u.x)/2+Math.cos(A)*(t.y-u.y)/2),l=Math.pow(c.x,2)/Math.pow(n,2)+Math.pow(c.y,2)/Math.pow(o,2);l>1&&(n*=Math.sqrt(l),o*=Math.sqrt(l));var d=(i===a?-1:1)*Math.sqrt((Math.pow(n,2)*Math.pow(o,2)-Math.pow(n,2)*Math.pow(c.y,2)-Math.pow(o,2)*Math.pow(c.x,2))/(Math.pow(n,2)*Math.pow(c.y,2)+Math.pow(o,2)*Math.pow(c.x,2)));isNaN(d)&&(d=0);var f=new mt(d*n*c.y/o,d*-o*c.x/n),h=new mt((t.x+u.x)/2+Math.cos(A)*f.x-Math.sin(A)*f.y,(t.y+u.y)/2+Math.sin(A)*f.x+Math.cos(A)*f.y),p=it([1,0],[(c.x-f.x)/n,(c.y-f.y)/o]),m=[(c.x-f.x)/n,(c.y-f.y)/o],g=[(-c.x-f.x)/n,(-c.y-f.y)/o],y=it(m,g);return st(m,g)<=-1&&(y=Math.PI),st(m,g)>=1&&(y=0),{currentPoint:u,rX:n,rY:o,sweepFlag:a,xAxisRotation:A,centp:h,a1:p,ad:y}}},{key:"pathZ",value:function(e){e.current=e.start}}]),o}(kt);var Vt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="svg",e.root=!1,e}return(0,U.default)(o,[{key:"setContext",value:function(e){var t=this.document,r=t.screen,n=t.window,s=e.canvas;if(r.setDefaults(e),s.style&&void 0!==e.font&&n&&void 0!==n.getComputedStyle){e.font=n.getComputedStyle(s).getPropertyValue("font");var i=new ht(t,"fontSize",Pt.parse(e.font).fontSize);i.hasValue()&&(t.rootEmSize=i.getPixels("y"),t.emSize=t.rootEmSize)}this.getAttribute("x").hasValue()||this.getAttribute("x",!0).setValue(0),this.getAttribute("y").hasValue()||this.getAttribute("y",!0).setValue(0);var a=r.viewPort,A=a.width,u=a.height;this.getStyle("width").hasValue()||this.getStyle("width",!0).setValue("100%"),this.getStyle("height").hasValue()||this.getStyle("height",!0).setValue("100%"),this.getStyle("color").hasValue()||this.getStyle("color",!0).setValue("black");var c=this.getAttribute("refX"),l=this.getAttribute("refY"),d=this.getAttribute("viewBox"),f=d.hasValue()?Ke(d.getString()):null,h=!this.root&&"visible"!==this.getStyle("overflow").getValue("hidden"),p=0,m=0,g=0,y=0;f&&(p=f[0],m=f[1]),this.root||(A=this.getStyle("width").getPixels("x"),u=this.getStyle("height").getPixels("y"),"marker"===this.type&&(g=p,y=m,p=0,m=0)),r.viewPort.setCurrent(A,u),this.node&&this.getStyle("transform",!1,!0).hasValue()&&!this.getStyle("transform-origin",!1,!0).hasValue()&&this.getStyle("transform-origin",!0,!0).setValue("50% 50%"),(0,de.default)((0,ee.default)(o.prototype),"setContext",this).call(this,e),e.translate(this.getAttribute("x").getPixels("x"),this.getAttribute("y").getPixels("y")),f&&(A=f[2],u=f[3]),t.setViewBox({ctx:e,aspectRatio:this.getAttribute("preserveAspectRatio").getString(),width:r.viewPort.width,desiredWidth:A,height:r.viewPort.height,desiredHeight:u,minX:p,minY:m,refX:c.getValue(),refY:l.getValue(),clip:h,clipX:g,clipY:y}),f&&(r.viewPort.removeCurrent(),r.viewPort.setCurrent(A,u))}},{key:"clearContext",value:function(e){(0,de.default)((0,ee.default)(o.prototype),"clearContext",this).call(this,e),this.document.screen.viewPort.removeCurrent()}},{key:"resize",value:function(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=this.getAttribute("width",!0),s=this.getAttribute("height",!0),i=this.getAttribute("viewBox"),a=this.getAttribute("style"),A=o.getNumber(0),u=s.getNumber(0);if(n)if("string"==typeof n)this.getAttribute("preserveAspectRatio",!0).setValue(n);else{var c=this.getAttribute("preserveAspectRatio");c.hasValue()&&c.setValue(c.getString().replace(/^\s*(\S.*\S)\s*$/,"$1"))}if(o.setValue(e),s.setValue(r),i.hasValue()||i.setValue(L()(t="0 0 ".concat(A||e," ")).call(t,u||r)),a.hasValue()){var l=this.getStyle("width"),d=this.getStyle("height");l.hasValue()&&l.setValue("".concat(e,"px")),d.hasValue()&&d.setValue("".concat(r,"px"))}}}]),o}(kt);var qt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="rect",e}return(0,U.default)(o,[{key:"path",value:function(e){var t=this.getAttribute("x").getPixels("x"),r=this.getAttribute("y").getPixels("y"),n=this.getStyle("width",!1,!0).getPixels("x"),o=this.getStyle("height",!1,!0).getPixels("y"),s=this.getAttribute("rx"),i=this.getAttribute("ry"),a=s.getPixels("x"),A=i.getPixels("y");if(s.hasValue()&&!i.hasValue()&&(A=a),i.hasValue()&&!s.hasValue()&&(a=A),a=Math.min(a,n/2),A=Math.min(A,o/2),e){var u=(Math.sqrt(2)-1)/3*4;e.beginPath(),o>0&&n>0&&(e.moveTo(t+a,r),e.lineTo(t+n-a,r),e.bezierCurveTo(t+n-a+u*a,r,t+n,r+A-u*A,t+n,r+A),e.lineTo(t+n,r+o-A),e.bezierCurveTo(t+n,r+o-A+u*A,t+n-a+u*a,r+o,t+n-a,r+o),e.lineTo(t+a,r+o),e.bezierCurveTo(t+a-u*a,r+o,t,r+o-A+u*A,t,r+o-A),e.lineTo(t,r+A),e.bezierCurveTo(t,r+A-u*A,t+a-u*a,r,t+a,r),e.closePath())}return new Ot(t,r,t+n,r+o)}},{key:"getMarkers",value:function(){return null}}]),o}(zt);var Gt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="circle",e}return(0,U.default)(o,[{key:"path",value:function(e){var t=this.getAttribute("cx").getPixels("x"),r=this.getAttribute("cy").getPixels("y"),n=this.getAttribute("r").getPixels();return e&&n>0&&(e.beginPath(),e.arc(t,r,n,0,2*Math.PI,!1),e.closePath()),new Ot(t-n,r-n,t+n,r+n)}},{key:"getMarkers",value:function(){return null}}]),o}(zt);var Xt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="ellipse",e}return(0,U.default)(o,[{key:"path",value:function(e){var t=(Math.sqrt(2)-1)/3*4,r=this.getAttribute("rx").getPixels("x"),n=this.getAttribute("ry").getPixels("y"),o=this.getAttribute("cx").getPixels("x"),s=this.getAttribute("cy").getPixels("y");return e&&r>0&&n>0&&(e.beginPath(),e.moveTo(o+r,s),e.bezierCurveTo(o+r,s+t*n,o+t*r,s+n,o,s+n),e.bezierCurveTo(o-t*r,s+n,o-r,s+t*n,o-r,s),e.bezierCurveTo(o-r,s-t*n,o-t*r,s-n,o,s-n),e.bezierCurveTo(o+t*r,s-n,o+r,s-t*n,o+r,s),e.closePath()),new Ot(o-r,s-n,o+r,s+n)}},{key:"getMarkers",value:function(){return null}}]),o}(zt);var Wt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="line",e}return(0,U.default)(o,[{key:"getPoints",value:function(){return[new mt(this.getAttribute("x1").getPixels("x"),this.getAttribute("y1").getPixels("y")),new mt(this.getAttribute("x2").getPixels("x"),this.getAttribute("y2").getPixels("y"))]}},{key:"path",value:function(e){var t=this.getPoints(),r=(0,u.default)(t,2),n=r[0],o=n.x,s=n.y,i=r[1],a=i.x,A=i.y;return e&&(e.beginPath(),e.moveTo(o,s),e.lineTo(a,A)),new Ot(o,s,a,A)}},{key:"getMarkers",value:function(){var e=this.getPoints(),t=(0,u.default)(e,2),r=t[0],n=t[1],o=r.angleTo(n);return[[r,o],[n,o]]}}]),o}(zt);var Jt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;return(0,F.default)(this,o),(s=n.call(this,e,t,r)).type="polyline",s.points=[],s.points=mt.parsePath(s.getAttribute("points").getString()),s}return(0,U.default)(o,[{key:"path",value:function(e){var t=this.points,r=(0,u.default)(t,1)[0],n=r.x,o=r.y,s=new Ot(n,o);return e&&(e.beginPath(),e.moveTo(n,o)),g()(t).call(t,(function(t){var r=t.x,n=t.y;s.addPoint(r,n),e&&e.lineTo(r,n)})),s}},{key:"getMarkers",value:function(){var e=this.points,t=e.length-1,r=[];return g()(e).call(e,(function(n,o){o!==t&&r.push([n,n.angleTo(e[o+1])])})),r.length>0&&r.push([e[e.length-1],r[r.length-1][1]]),r}}]),o}(zt);var Yt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="polygon",e}return(0,U.default)(o,[{key:"path",value:function(e){var t=(0,de.default)((0,ee.default)(o.prototype),"path",this).call(this,e),r=(0,u.default)(this.points,1)[0],n=r.x,s=r.y;return e&&(e.lineTo(n,s),e.closePath()),t}}]),o}(Jt);var Zt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="pattern",e}return(0,U.default)(o,[{key:"createPattern",value:function(e,t,r){var n=this.getStyle("width").getPixels("x",!0),o=this.getStyle("height").getPixels("y",!0),s=new Vt(this.document,null);s.attributes.viewBox=new ht(this.document,"viewBox",this.getAttribute("viewBox").getValue()),s.attributes.width=new ht(this.document,"width","".concat(n,"px")),s.attributes.height=new ht(this.document,"height","".concat(o,"px")),s.attributes.transform=new ht(this.document,"transform",this.getAttribute("patternTransform").getValue()),s.children=this.children;var i=this.document.createCanvas(n,o),a=i.getContext("2d"),A=this.getAttribute("x"),u=this.getAttribute("y");A.hasValue()&&u.hasValue()&&a.translate(A.getPixels("x",!0),u.getPixels("y",!0)),r.hasValue()?this.styles["fill-opacity"]=r:ge()(this.styles,"fill-opacity");for(var c=-1;c<=1;c++)for(var l=-1;l<=1;l++)a.save(),s.attributes.x=new ht(this.document,"x",c*i.width),s.attributes.y=new ht(this.document,"y",l*i.height),s.render(a),a.restore();return e.createPattern(i,"repeat")}}]),o}(St);var $t=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="marker",e}return(0,U.default)(o,[{key:"render",value:function(e,t,r){if(t){var n=t.x,o=t.y,s=this.getAttribute("orient").getValue("auto"),i=this.getAttribute("markerUnits").getValue("strokeWidth");e.translate(n,o),"auto"===s&&e.rotate(r),"strokeWidth"===i&&e.scale(e.lineWidth,e.lineWidth),e.save();var a=new Vt(this.document,null);a.type=this.type,a.attributes.viewBox=new ht(this.document,"viewBox",this.getAttribute("viewBox").getValue()),a.attributes.refX=new ht(this.document,"refX",this.getAttribute("refX").getValue()),a.attributes.refY=new ht(this.document,"refY",this.getAttribute("refY").getValue()),a.attributes.width=new ht(this.document,"width",this.getAttribute("markerWidth").getValue()),a.attributes.height=new ht(this.document,"height",this.getAttribute("markerHeight").getValue()),a.attributes.overflow=new ht(this.document,"overflow",this.getAttribute("overflow").getValue()),a.attributes.fill=new ht(this.document,"fill",this.getAttribute("fill").getColor("black")),a.attributes.stroke=new ht(this.document,"stroke",this.getAttribute("stroke").getValue("none")),a.children=this.children,a.render(e),e.restore(),"strokeWidth"===i&&e.scale(1/e.lineWidth,1/e.lineWidth),"auto"===s&&e.rotate(-r),e.translate(-n,-o)}}}]),o}(St);var er=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="defs",e}return(0,U.default)(o,[{key:"render",value:function(){}}]),o}(St);var tr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="g",e}return(0,U.default)(o,[{key:"getBoundingBox",value:function(e){var t,r=new Ot;return g()(t=this.children).call(t,(function(t){r.addBoundingBox(t.getBoundingBox(e))})),r}}]),o}(kt);var rr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;(0,F.default)(this,o),(s=n.call(this,e,t,r)).attributesToInherit=["gradientUnits"],s.stops=[];var i=(0,ye.default)(s),a=i.stops,A=i.children;return g()(A).call(A,(function(e){"stop"===e.type&&a.push(e)})),s}return(0,U.default)(o,[{key:"getGradientUnits",value:function(){return this.getAttribute("gradientUnits").getString("objectBoundingBox")}},{key:"createGradient",value:function(e,t,r){var n=this,o=this;this.getHrefAttribute().hasValue()&&(o=this.getHrefAttribute().getDefinition(),this.inheritStopContainer(o));var s=o.stops,i=this.getGradient(e,t);if(!i)return this.addParentOpacity(r,s[s.length-1].color);if(g()(s).call(s,(function(e){i.addColorStop(e.offset,n.addParentOpacity(r,e.color))})),this.getAttribute("gradientTransform").hasValue()){var a=this.document,A=a.screen,c=A.MAX_VIRTUAL_PIXELS,l=A.viewPort,d=(0,u.default)(l.viewPorts,1)[0],f=new qt(a,null);f.attributes.x=new ht(a,"x",-c/3),f.attributes.y=new ht(a,"y",-c/3),f.attributes.width=new ht(a,"width",c),f.attributes.height=new ht(a,"height",c);var h=new tr(a,null);h.attributes.transform=new ht(a,"transform",this.getAttribute("gradientTransform").getValue()),h.children=[f];var p=new Vt(a,null);p.attributes.x=new ht(a,"x",0),p.attributes.y=new ht(a,"y",0),p.attributes.width=new ht(a,"width",d.width),p.attributes.height=new ht(a,"height",d.height),p.children=[h];var m=a.createCanvas(d.width,d.height),y=m.getContext("2d");return y.fillStyle=i,p.render(y),y.createPattern(m,"no-repeat")}return i}},{key:"inheritStopContainer",value:function(e){var t,r=this;g()(t=this.attributesToInherit).call(t,(function(t){!r.getAttribute(t).hasValue()&&e.getAttribute(t).hasValue()&&r.getAttribute(t,!0).setValue(e.getAttribute(t).getValue())}))}},{key:"addParentOpacity",value:function(e,t){return e.hasValue()?new ht(this.document,"color",t).addOpacity(e).getColor():t}}]),o}(St);var nr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;return(0,F.default)(this,o),(s=n.call(this,e,t,r)).type="linearGradient",s.attributesToInherit.push("x1","y1","x2","y2"),s}return(0,U.default)(o,[{key:"getGradient",value:function(e,t){var r="objectBoundingBox"===this.getGradientUnits(),n=r?t.getBoundingBox(e):null;if(r&&!n)return null;this.getAttribute("x1").hasValue()||this.getAttribute("y1").hasValue()||this.getAttribute("x2").hasValue()||this.getAttribute("y2").hasValue()||(this.getAttribute("x1",!0).setValue(0),this.getAttribute("y1",!0).setValue(0),this.getAttribute("x2",!0).setValue(1),this.getAttribute("y2",!0).setValue(0));var o=r?n.x+n.width*this.getAttribute("x1").getNumber():this.getAttribute("x1").getPixels("x"),s=r?n.y+n.height*this.getAttribute("y1").getNumber():this.getAttribute("y1").getPixels("y"),i=r?n.x+n.width*this.getAttribute("x2").getNumber():this.getAttribute("x2").getPixels("x"),a=r?n.y+n.height*this.getAttribute("y2").getNumber():this.getAttribute("y2").getPixels("y");return o===i&&s===a?null:e.createLinearGradient(o,s,i,a)}}]),o}(rr);var or=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;return(0,F.default)(this,o),(s=n.call(this,e,t,r)).type="radialGradient",s.attributesToInherit.push("cx","cy","r","fx","fy","fr"),s}return(0,U.default)(o,[{key:"getGradient",value:function(e,t){var r="objectBoundingBox"===this.getGradientUnits(),n=t.getBoundingBox(e);if(r&&!n)return null;this.getAttribute("cx").hasValue()||this.getAttribute("cx",!0).setValue("50%"),this.getAttribute("cy").hasValue()||this.getAttribute("cy",!0).setValue("50%"),this.getAttribute("r").hasValue()||this.getAttribute("r",!0).setValue("50%");var o=r?n.x+n.width*this.getAttribute("cx").getNumber():this.getAttribute("cx").getPixels("x"),s=r?n.y+n.height*this.getAttribute("cy").getNumber():this.getAttribute("cy").getPixels("y"),i=o,a=s;this.getAttribute("fx").hasValue()&&(i=r?n.x+n.width*this.getAttribute("fx").getNumber():this.getAttribute("fx").getPixels("x")),this.getAttribute("fy").hasValue()&&(a=r?n.y+n.height*this.getAttribute("fy").getNumber():this.getAttribute("fy").getPixels("y"));var A=r?(n.width+n.height)/2*this.getAttribute("r").getNumber():this.getAttribute("r").getPixels(),u=this.getAttribute("fr").getPixels();return e.createRadialGradient(i,a,u,o,s,A)}}]),o}(rr);var sr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;(0,F.default)(this,o),(s=n.call(this,e,t,r)).type="stop";var i=Math.max(0,Math.min(1,s.getAttribute("offset").getNumber())),a=s.getStyle("stop-opacity"),A=s.getStyle("stop-color",!0);return""===A.getString()&&A.setValue("#000"),a.hasValue()&&(A=A.addOpacity(a)),s.offset=i,s.color=A.getColor(),s}return o}(St);var ir=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;return(0,F.default)(this,o),(s=n.call(this,e,t,r)).type="animate",s.duration=0,s.initialValue=null,s.initialUnits="",s.removed=!1,s.frozen=!1,e.screen.animations.push((0,ye.default)(s)),s.begin=s.getAttribute("begin").getMilliseconds(),s.maxDuration=s.begin+s.getAttribute("dur").getMilliseconds(),s.from=s.getAttribute("from"),s.to=s.getAttribute("to"),s.values=s.getAttribute("values"),we()(s).hasValue()&&we()(s).setValue(we()(s).getString().split(";")),s}return(0,U.default)(o,[{key:"getProperty",value:function(){var e=this.getAttribute("attributeType").getString(),t=this.getAttribute("attributeName").getString();return"CSS"===e?this.parent.getStyle(t,!0):this.parent.getAttribute(t,!0)}},{key:"calcValue",value:function(){var e,t=this.initialUnits,r=this.getProgress(),n=r.progress,o=r.from,s=r.to,i=o.getNumber()+(s.getNumber()-o.getNumber())*n;return"%"===t&&(i*=100),L()(e="".concat(i)).call(e,t)}},{key:"update",value:function(e){var t=this.parent,r=this.getProperty();if(this.initialValue||(this.initialValue=r.getString(),this.initialUnits=r.getUnits()),this.duration>this.maxDuration){var n=this.getAttribute("fill").getString("remove");if("indefinite"===this.getAttribute("repeatCount").getString()||"indefinite"===this.getAttribute("repeatDur").getString())this.duration=0;else if("freeze"!==n||this.frozen){if("remove"===n&&!this.removed)return this.removed=!0,r.setValue(t.animationFrozen?t.animationFrozenValue:this.initialValue),!0}else this.frozen=!0,t.animationFrozen=!0,t.animationFrozenValue=r.getString();return!1}this.duration+=e;var o=!1;if(this.begine.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,i=!0,a=!1;return{s:function(){r=_e()(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){a=!0,s=e},f:function(){try{i||null==r.return||r.return()}finally{if(a)throw s}}}}((0,ye.default)(s).children);try{for(A.s();!(i=A.n()).done;){var u=i.value;switch(u.type){case"font-face":s.fontFace=u;var c=u.getStyle("font-family");c.hasValue()&&(a[c.getString()]=(0,ye.default)(s));break;case"missing-glyph":s.missingGlyph=u;break;case"glyph":var l=u;l.arabicForm?(s.isRTL=!0,s.isArabic=!0,void 0===s.glyphs[l.unicode]&&(s.glyphs[l.unicode]={}),s.glyphs[l.unicode][l.arabicForm]=l):s.glyphs[l.unicode]=l}}}catch(e){A.e(e)}finally{A.f()}return s}return(0,U.default)(o,[{key:"render",value:function(){}}]),o}(St);var lr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;return(0,F.default)(this,o),(s=n.call(this,e,t,r)).type="font-face",s.ascent=s.getAttribute("ascent").getNumber(),s.descent=s.getAttribute("descent").getNumber(),s.unitsPerEm=s.getAttribute("units-per-em").getNumber(),s}return o}(St);var dr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="missing-glyph",e.horizAdvX=0,e}return o}(zt);var fr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;return(0,F.default)(this,o),(s=n.call(this,e,t,r)).type="glyph",s.horizAdvX=s.getAttribute("horiz-adv-x").getNumber(),s.unicode=s.getAttribute("unicode").getString(),s.arabicForm=s.getAttribute("arabic-form").getString(),s}return o}(zt);var hr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="tref",e}return(0,U.default)(o,[{key:"getText",value:function(){var e=this.getHrefAttribute().getDefinition();if(e){var t=e.children[0];if(t)return t.getText()}return""}}]),o}(Rt);var pr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s,i;(0,F.default)(this,o),(i=n.call(this,e,t,r)).type="a";var a=t.childNodes,A=a[0],u=a.length>0&&k()(s=ae()(a)).call(s,(function(e){return 3===e.nodeType}));return i.hasText=u,i.text=u?i.getTextFromNode(A):"",i}return(0,U.default)(o,[{key:"getText",value:function(){return this.text}},{key:"renderChildren",value:function(e){if(this.hasText){(0,de.default)((0,ee.default)(o.prototype),"renderChildren",this).call(this,e);var t=this.document,r=this.x,n=this.y,s=t.screen.mouse,i=new ht(t,"fontSize",Pt.parse(t.ctx.font).fontSize);s.isWorking()&&s.checkBoundingBox(this,new Ot(r,n-i.getPixels("y"),r+this.measureText(e),n))}else if(this.children.length>0){var a=new tr(this.document,null);a.children=this.children,a.parent=this,a.render(e)}}},{key:"onClick",value:function(){var e=this.document.window;e&&e.open(this.getHrefAttribute().getString())}},{key:"onMouseMove",value:function(){this.document.ctx.canvas.style.cursor="pointer"}}]),o}(Rt);function mr(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);rA?a:A,p=a>A?1:a/A,m=a>A?A/a:1;e&&(e.translate(s,i),e.rotate(d),e.scale(p,m),e.arc(0,0,h,c,c+l,Boolean(1-f)),e.scale(1/p,1/m),e.rotate(-d),e.translate(-s,-i));break;case Kt.CLOSE_PATH:e&&e.closePath()}}))}},{key:"renderChildren",value:function(e){this.setTextData(e),e.save();var t=this.parent.getStyle("text-decoration").getString(),r=this.getFontSize(),n=this.glyphInfo,o=e.fillStyle;"underline"===t&&e.beginPath(),g()(n).call(n,(function(n,o){var s=n.p0,i=n.p1,a=n.rotation,A=n.text;e.save(),e.translate(s.x,s.y),e.rotate(a),e.fillStyle&&e.fillText(A,0,0),e.strokeStyle&&e.strokeText(A,0,0),e.restore(),"underline"===t&&(0===o&&e.moveTo(s.x,s.y+r/8),e.lineTo(i.x,i.y+r/5))})),"underline"===t&&(e.lineWidth=r/20,e.strokeStyle=o,e.stroke(),e.closePath()),e.restore()}},{key:"getLetterSpacingAt",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.letterSpacingCache[e]||0}},{key:"findSegmentToFitChar",value:function(e,t,r,n,o,s,i,a,A){var u=s,c=this.measureText(e,a);" "===a&&"justify"===t&&r-1&&(u+=this.getLetterSpacingAt(A));var l=this.textHeight/20,d=this.getEquidistantPointOnPath(u,l,0),f=this.getEquidistantPointOnPath(u+c,l,0),h={p0:d,p1:f},p=d&&f?Math.atan2(f.y-d.y,f.x-d.x):0;if(i){var m=Math.cos(Math.PI/2+p)*i,g=Math.cos(-p)*i;h.p0=yr(yr({},d),{},{x:d.x+m,y:d.y+g}),h.p1=yr(yr({},f),{},{x:f.x+m,y:f.y+g})}return{offset:u+=c,segment:h,rotation:p}}},{key:"measureText",value:function(e,t){var r=this.measuresCache,n=t||this.getText();if(r.has(n))return r.get(n);var o=this.measureTargetText(e,n);return r.set(n,o),o}},{key:"setTextData",value:function(e){var t,r=this;if(!this.glyphInfo){var n=this.getText(),o=n.split(""),s=n.split(" ").length-1,i=A()(t=this.parent.getAttribute("dx").split()).call(t,(function(e){return e.getPixels("x")})),a=this.parent.getAttribute("dy").getPixels("y"),u=this.parent.getStyle("text-anchor").getString("start"),c=this.getStyle("letter-spacing"),l=this.parent.getStyle("letter-spacing"),d=0;c.hasValue()&&"inherit"!==c.getValue()?c.hasValue()&&"initial"!==c.getValue()&&"unset"!==c.getValue()&&(d=c.getPixels()):d=l.getPixels();var f=[],h=n.length;this.letterSpacingCache=f;for(var p=0;p0&&(A-=2*Math.PI),1===o&&A<0&&(A+=2*Math.PI),[i.x,i.y,r,n,a,A,s,o]}},{key:"calcLength",value:function(e,t,r,n){var o=0,s=null,i=null,a=0;switch(r){case Kt.LINE_TO:return this.getLineLength(e,t,n[0],n[1]);case Kt.CURVE_TO:for(o=0,s=this.getPointOnCubicBezier(0,e,t,n[0],n[1],n[2],n[3],n[4],n[5]),a=.01;a<=1;a+=.01)i=this.getPointOnCubicBezier(a,e,t,n[0],n[1],n[2],n[3],n[4],n[5]),o+=this.getLineLength(s.x,s.y,i.x,i.y),s=i;return o;case Kt.QUAD_TO:for(o=0,s=this.getPointOnQuadraticBezier(0,e,t,n[0],n[1],n[2],n[3]),a=.01;a<=1;a+=.01)i=this.getPointOnQuadraticBezier(a,e,t,n[0],n[1],n[2],n[3]),o+=this.getLineLength(s.x,s.y,i.x,i.y),s=i;return o;case Kt.ARC:o=0;var A=n[4],u=n[5],c=n[4]+u,l=Math.PI/180;if(Math.abs(A-c)c;a-=l)i=this.getPointOnEllipticalArc(n[0],n[1],n[2],n[3],a,0),o+=this.getLineLength(s.x,s.y,i.x,i.y),s=i;else for(a=A+l;a5&&void 0!==arguments[5]?arguments[5]:t,i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:r,a=(o-r)/(n-t+nt),A=Math.sqrt(e*e/(1+a*a));nt)return null;var o,s=function(e,t){var r;if(void 0===Fe()||null==Ne()(e)){if(xe()(e)||(r=function(e,t){var r;if(e){if("string"==typeof e)return mr(e,t);var n=Se()(r=Object.prototype.toString.call(e)).call(r,8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?ae()(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mr(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,i=!0,a=!1;return{s:function(){r=_e()(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){a=!0,s=e},f:function(){try{i||null==r.return||r.return()}finally{if(a)throw s}}}}(this.dataArray);try{for(s.s();!(o=s.n()).done;){var i=o.value;if(!i||!(i.pathLength<5e-5||r+i.pathLength+5e-5=0&&A>l)break;n=this.getPointOnEllipticalArc(i.points[0],i.points[1],i.points[2],i.points[3],A,i.points[6]);break;case Kt.CURVE_TO:(A=a/i.pathLength)>1&&(A=1),n=this.getPointOnCubicBezier(A,i.start.x,i.start.y,i.points[0],i.points[1],i.points[2],i.points[3],i.points[4],i.points[5]);break;case Kt.QUAD_TO:(A=a/i.pathLength)>1&&(A=1),n=this.getPointOnQuadraticBezier(A,i.start.x,i.start.y,i.points[0],i.points[1],i.points[2],i.points[3])}if(n)return n;break}r+=i.pathLength}}catch(e){s.e(e)}finally{s.f()}return null}},{key:"getLineLength",value:function(e,t,r,n){return Math.sqrt((r-e)*(r-e)+(n-t)*(n-t))}},{key:"getPathLength",value:function(){var e;return-1===this.pathLength&&(this.pathLength=H()(e=this.dataArray).call(e,(function(e,t){return t.pathLength>0?e+t.pathLength:e}),0)),this.pathLength}},{key:"getPointOnCubicBezier",value:function(e,t,r,n,o,s,i,a,A){return{x:a*at(e)+s*At(e)+n*ut(e)+t*ct(e),y:A*at(e)+i*At(e)+o*ut(e)+r*ct(e)}}},{key:"getPointOnQuadraticBezier",value:function(e,t,r,n,o,s,i){return{x:s*lt(e)+n*dt(e)+t*ft(e),y:i*lt(e)+o*dt(e)+r*ft(e)}}},{key:"getPointOnEllipticalArc",value:function(e,t,r,n,o,s){var i=Math.cos(s),a=Math.sin(s),A=r*Math.cos(o),u=n*Math.sin(o);return{x:e+(A*i-u*a),y:t+(A*a+u*i)}}},{key:"buildEquidistantCache",value:function(e,t){var r=this.getPathLength(),n=t||.25,o=e||r/100;if(!this.equidistantCache||this.equidistantCache.step!==o||this.equidistantCache.precision!==n){this.equidistantCache={step:o,precision:n,points:[]};for(var s=0,i=0;i<=r;i+=n){var a=this.getPointOnPath(i),A=this.getPointOnPath(i+n);a&&A&&(s+=this.getLineLength(a.x,a.y,A.x,A.y))>=o&&(this.equidistantCache.points.push({x:a.x,y:a.y,distance:i}),s-=o)}}}},{key:"getEquidistantPointOnPath",value:function(e,t,r){if(this.buildEquidistantCache(t,r),e<0||e-this.getPathLength()>5e-5)return null;var n=Math.round(e/this.getPathLength()*(this.equidistantCache.points.length-1));return this.equidistantCache.points[n]||null}}]),o}(Rt);var wr=function(e){(0,Z.default)(i,e);var t,r,n,o,s=(n=i,o=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=(0,ee.default)(n);if(o){var r=(0,ee.default)(this).constructor;e=Y()(t,arguments,r)}else e=t.apply(this,arguments);return(0,$.default)(this,e)});function i(e,t,r){var n;(0,F.default)(this,i),(n=s.call(this,e,t,r)).type="image",n.loaded=!1;var o=n.getHrefAttribute().getString();if(!o)return(0,$.default)(n);var a=/\.svg$/.test(o);return e.images.push((0,ye.default)(n)),a?n.loadSvg(o):n.loadImage(o),n.isSvg=a,n}return(0,U.default)(i,[{key:"loadImage",value:(r=(0,N.default)(E().mark((function e(t){var r;return E().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.document.createImage(t);case 3:r=e.sent,this.image=r,e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.error('Error while loading image "'.concat(t,'":'),e.t0);case 10:this.loaded=!0;case 11:case"end":return e.stop()}}),e,this,[[0,7]])}))),function(e){return r.apply(this,arguments)})},{key:"loadSvg",value:(t=(0,N.default)(E().mark((function e(t){var r,n;return E().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.document.fetch(t);case 3:return r=e.sent,e.next=6,r.text();case 6:n=e.sent,this.image=n,e.next=13;break;case 10:e.prev=10,e.t0=e.catch(0),console.error('Error while loading image "'.concat(t,'":'),e.t0);case 13:this.loaded=!0;case 14:case"end":return e.stop()}}),e,this,[[0,10]])}))),function(e){return t.apply(this,arguments)})},{key:"renderChildren",value:function(e){var t=this.document,r=this.image,n=this.loaded,o=this.getAttribute("x").getPixels("x"),s=this.getAttribute("y").getPixels("y"),i=this.getStyle("width").getPixels("x"),a=this.getStyle("height").getPixels("y");if(n&&r&&i&&a){if(e.save(),this.isSvg)t.canvg.forkString(e,this.image,{ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0,ignoreClear:!0,offsetX:o,offsetY:s,scaleWidth:i,scaleHeight:a}).render();else{var A=this.image;e.translate(o,s),t.setViewBox({ctx:e,aspectRatio:this.getAttribute("preserveAspectRatio").getString(),width:i,desiredWidth:A.width,height:a,desiredHeight:A.height}),this.loaded&&(void 0===A.complete||A.complete)&&e.drawImage(A,0,0)}e.restore()}}},{key:"getBoundingBox",value:function(){var e=this.getAttribute("x").getPixels("x"),t=this.getAttribute("y").getPixels("y"),r=this.getStyle("width").getPixels("x"),n=this.getStyle("height").getPixels("y");return new Ot(e,t,e+r,t+n)}}]),i}(kt);var br=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="symbol",e}return(0,U.default)(o,[{key:"render",value:function(e){}}]),o}(kt),Br=function(){function e(t){(0,F.default)(this,e),this.document=t,this.loaded=!1,t.fonts.push(this)}var t;return(0,U.default)(e,[{key:"load",value:(t=(0,N.default)(E().mark((function e(t,r){var n,o,s,i;return E().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,o=this.document,e.next=4,o.canvg.parser.load(r);case 4:s=e.sent,i=s.getElementsByTagName("font"),g()(n=ae()(i)).call(n,(function(e){var r=o.createElement(e);o.definitions[t]=r})),e.next=12;break;case 9:e.prev=9,e.t0=e.catch(0),console.error('Error while loading font "'.concat(r,'":'),e.t0);case 12:this.loaded=!0;case 13:case"end":return e.stop()}}),e,this,[[0,9]])}))),function(e,r){return t.apply(this,arguments)})}]),e}();var jr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s,i;(0,F.default)(this,o),(i=n.call(this,e,t,r)).type="style";var a=Re(A()(s=ae()(t.childNodes)).call(s,(function(e){return e.data})).join("").replace(/(\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm,"").replace(/@import.*;/g,"")).split("}");return g()(a).call(a,(function(t){var r=G()(t).call(t);if(r){var n=r.split("{"),o=n[0].split(","),s=n[1].split(";");g()(o).call(o,(function(t){var r=G()(t).call(t);if(r){var n=e.styles[r]||{};if(g()(s).call(s,(function(t){var r,o,s=le()(t).call(t,":"),i=G()(r=t.substr(0,s)).call(r),a=G()(o=t.substr(s+1,t.length-s)).call(o);i&&a&&(n[i]=new ht(e,i,a))})),e.styles[r]=n,e.stylesSpecificity[r]=rt(r),"@font-face"===r){var o=n["font-family"].getString().replace(/"|'/g,""),i=n.src.getString().split(",");g()(i).call(i,(function(t){if(le()(t).call(t,'format("svg")')>0){var r=qe(t);r&&new Br(e).load(o,r)}}))}}}))}})),i}return o}(St);jr.parseExternalUrl=qe;var _r=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="use",e}return(0,U.default)(o,[{key:"setContext",value:function(e){(0,de.default)((0,ee.default)(o.prototype),"setContext",this).call(this,e);var t=this.getAttribute("x"),r=this.getAttribute("y");t.hasValue()&&e.translate(t.getPixels("x"),0),r.hasValue()&&e.translate(0,r.getPixels("y"))}},{key:"path",value:function(e){var t=this.element;t&&t.path(e)}},{key:"renderChildren",value:function(e){var t=this.document,r=this.element;if(r){var n=r;if("symbol"===r.type&&((n=new Vt(t,null)).attributes.viewBox=new ht(t,"viewBox",r.getAttribute("viewBox").getString()),n.attributes.preserveAspectRatio=new ht(t,"preserveAspectRatio",r.getAttribute("preserveAspectRatio").getString()),n.attributes.overflow=new ht(t,"overflow",r.getAttribute("overflow").getString()),n.children=r.children,r.styles.opacity=new ht(t,"opacity",this.calculateOpacity())),"svg"===n.type){var o=this.getStyle("width",!1,!0),s=this.getStyle("height",!1,!0);o.hasValue()&&(n.attributes.width=new ht(t,"width",o.getString())),s.hasValue()&&(n.attributes.height=new ht(t,"height",s.getString()))}var i=n.parent;n.parent=this,n.render(e),n.parent=i}}},{key:"getBoundingBox",value:function(e){var t=this.element;return t?t.getBoundingBox(e):null}},{key:"elementTransform",value:function(){var e=this.document,t=this.element;return Ut.fromElement(e,t)}},{key:"element",get:function(){return this._element||(this._element=this.getHrefAttribute().getDefinition()),this._element}}]),o}(kt);function Cr(e,t,r,n,o,s){return e[r*n*4+4*t+s]}function xr(e,t,r,n,o,s,i){e[r*n*4+4*t+s]=i}function Er(e,t,r){return e[t]*r}function Nr(e,t,r,n){return t+Math.cos(e)*r+Math.sin(e)*n}var Qr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;(0,F.default)(this,o),(s=n.call(this,e,t,r)).type="feColorMatrix";var i=Ke(s.getAttribute("values").getString());switch(s.getAttribute("type").getString("matrix")){case"saturate":var a=i[0];i=[.213+.787*a,.715-.715*a,.072-.072*a,0,0,.213-.213*a,.715+.285*a,.072-.072*a,0,0,.213-.213*a,.715-.715*a,.072+.928*a,0,0,0,0,0,1,0,0,0,0,0,1];break;case"hueRotate":var A=i[0]*Math.PI/180;i=[Nr(A,.213,.787,-.213),Nr(A,.715,-.715,-.715),Nr(A,.072,-.072,.928),0,0,Nr(A,.213,-.213,.143),Nr(A,.715,.285,.14),Nr(A,.072,-.072,-.283),0,0,Nr(A,.213,-.213,-.787),Nr(A,.715,-.715,.715),Nr(A,.072,.928,.072),0,0,0,0,0,1,0,0,0,0,0,1];break;case"luminanceToAlpha":i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,.2125,.7154,.0721,0,0,0,0,0,0,1]}return s.matrix=i,s.includeOpacity=s.getAttribute("includeOpacity").hasValue(),s}return(0,U.default)(o,[{key:"apply",value:function(e,t,r,n,o){for(var s=this.includeOpacity,i=this.matrix,a=e.getImageData(0,0,n,o),A=0;A1&&void 0!==o[1]&&o[1],n=document.createElement("img"),r&&(n.crossOrigin="Anonymous"),e.abrupt("return",new(M())((function(e,r){n.onload=function(){e(n)},n.onerror=function(){r()},n.src=t})));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Kr=function(){function e(t){var r,n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=o.rootEmSize,i=void 0===s?12:s,a=o.emSize,A=void 0===a?12:a,u=o.createCanvas,c=void 0===u?e.createCanvas:u,l=o.createImage,d=void 0===l?e.createImage:l,f=o.anonymousCrossOrigin;(0,F.default)(this,e),this.canvg=t,this.definitions={},this.styles={},this.stylesSpecificity={},this.images=[],this.fonts=[],this.emSizeStack=[],this.uniqueId=0,this.screen=t.screen,this.rootEmSize=i,this.emSize=A,this.createCanvas=c,this.createImage=this.bindCreateImage(d,f),this.screen.wait(K()(r=this.isImagesLoaded).call(r,this)),this.screen.wait(K()(n=this.isFontsLoaded).call(n,this))}return(0,U.default)(e,[{key:"bindCreateImage",value:function(e,t){return"boolean"==typeof t?function(r,n){return e(r,"boolean"==typeof n?n:t)}:e}},{key:"popEmSize",value:function(){this.emSizeStack.pop()}},{key:"getUniqueId",value:function(){return"canvg".concat(++this.uniqueId)}},{key:"isImagesLoaded",value:function(){var e;return k()(e=this.images).call(e,(function(e){return e.loaded}))}},{key:"isFontsLoaded",value:function(){var e;return k()(e=this.fonts).call(e,(function(e){return e.loaded}))}},{key:"createDocumentElement",value:function(e){var t=this.createElement(e.documentElement);return t.root=!0,t.addStylesFromStyleDefinition(),this.documentElement=t,t}},{key:"createElement",value:function(t){var r=t.nodeName.replace(/^[^:]+:/,""),n=e.elementTypes[r];return void 0!==n?new n(this,t):new Lt(this,t)}},{key:"createTextNode",value:function(e){return new Dt(this,e)}},{key:"setViewBox",value:function(e){this.screen.setViewBox(function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};(0,F.default)(this,e),this.parser=new jt(n),this.screen=new wt(t,n),this.options=n;var o=new Kr(this,n),s=o.createDocumentElement(r);this.document=o,this.documentElement=s}var t,r;return(0,U.default)(e,[{key:"fork",value:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.from(t,r,Vr(Vr({},this.options),n))}},{key:"forkString",value:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.fromString(t,r,Vr(Vr({},this.options),n))}},{key:"ready",value:function(){return this.screen.ready()}},{key:"isReady",value:function(){return this.screen.isReady()}},{key:"render",value:(r=(0,N.default)(E().mark((function e(){var t,r=arguments;return E().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.length>0&&void 0!==r[0]?r[0]:{},this.start(Vr({enableRedraw:!0,ignoreAnimation:!0,ignoreMouse:!0},t)),e.next=4,this.ready();case 4:this.stop();case 5:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"start",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.documentElement,r=this.screen,n=this.options;r.start(t,Vr(Vr({enableRedraw:!0},n),e))}},{key:"stop",value:function(){this.screen.stop()}},{key:"resize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.documentElement.resize(e,t,r)}}],[{key:"from",value:(t=(0,N.default)(E().mark((function t(r,n){var o,s,i,a=arguments;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=a.length>2&&void 0!==a[2]?a[2]:{},s=new jt(o),t.next=4,s.parse(n);case 4:return i=t.sent,t.abrupt("return",new e(r,i,o));case 6:case"end":return t.stop()}}),t)}))),function(e,r){return t.apply(this,arguments)})},{key:"fromString",value:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=new jt(n),s=o.parseFromString(r);return new e(t,s,n)}}]),e}(),Gr=Object.freeze({__proto__:null,offscreen:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.DOMParser,r={window:null,ignoreAnimation:!0,ignoreMouse:!0,DOMParser:t,createCanvas:function(e,t){return new OffscreenCanvas(e,t)},createImage:function(e){return(0,N.default)(E().mark((function t(){var r,n,o;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,fetch(e);case 2:return r=t.sent,t.next=5,r.blob();case 5:return n=t.sent,t.next=8,createImageBitmap(n);case 8:return o=t.sent,t.abrupt("return",o);case 10:case"end":return t.stop()}}),t)})))()}};return"undefined"==typeof DOMParser&&void 0!==t||ge()(r,"DOMParser"),r},node:function(e){var t=e.DOMParser,r=e.canvas;return{window:null,ignoreAnimation:!0,ignoreMouse:!0,DOMParser:t,fetch:e.fetch,createCanvas:r.createCanvas,createImage:r.loadImage}}});t.default=qr},"./node_modules/core-js-pure/es/array/from.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.string.iterator.js"),r("./node_modules/core-js-pure/modules/es.array.from.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Array.from},"./node_modules/core-js-pure/es/array/is-array.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.is-array.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Array.isArray},"./node_modules/core-js-pure/es/array/virtual/concat.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.concat.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").concat},"./node_modules/core-js-pure/es/array/virtual/every.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.every.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").every},"./node_modules/core-js-pure/es/array/virtual/fill.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.fill.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").fill},"./node_modules/core-js-pure/es/array/virtual/filter.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.filter.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").filter},"./node_modules/core-js-pure/es/array/virtual/for-each.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.for-each.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").forEach},"./node_modules/core-js-pure/es/array/virtual/includes.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.includes.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").includes},"./node_modules/core-js-pure/es/array/virtual/index-of.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.index-of.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").indexOf},"./node_modules/core-js-pure/es/array/virtual/map.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.map.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").map},"./node_modules/core-js-pure/es/array/virtual/reduce.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.reduce.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").reduce},"./node_modules/core-js-pure/es/array/virtual/reverse.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.reverse.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").reverse},"./node_modules/core-js-pure/es/array/virtual/slice.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.slice.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").slice},"./node_modules/core-js-pure/es/array/virtual/some.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.some.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").some},"./node_modules/core-js-pure/es/array/virtual/values.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.iterator.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").values},"./node_modules/core-js-pure/es/date/now.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.date.now.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Date.now},"./node_modules/core-js-pure/es/function/virtual/bind.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.function.bind.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Function").bind},"./node_modules/core-js-pure/es/instance/bind.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/function/virtual/bind.js"),o=Function.prototype;e.exports=function(e){var t=e.bind;return e===o||e instanceof Function&&t===o.bind?n:t}},"./node_modules/core-js-pure/es/instance/concat.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/concat.js"),o=Array.prototype;e.exports=function(e){var t=e.concat;return e===o||e instanceof Array&&t===o.concat?n:t}},"./node_modules/core-js-pure/es/instance/every.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/every.js"),o=Array.prototype;e.exports=function(e){var t=e.every;return e===o||e instanceof Array&&t===o.every?n:t}},"./node_modules/core-js-pure/es/instance/fill.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/fill.js"),o=Array.prototype;e.exports=function(e){var t=e.fill;return e===o||e instanceof Array&&t===o.fill?n:t}},"./node_modules/core-js-pure/es/instance/filter.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/filter.js"),o=Array.prototype;e.exports=function(e){var t=e.filter;return e===o||e instanceof Array&&t===o.filter?n:t}},"./node_modules/core-js-pure/es/instance/includes.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/includes.js"),o=r("./node_modules/core-js-pure/es/string/virtual/includes.js"),s=Array.prototype,i=String.prototype;e.exports=function(e){var t=e.includes;return e===s||e instanceof Array&&t===s.includes?n:"string"==typeof e||e===i||e instanceof String&&t===i.includes?o:t}},"./node_modules/core-js-pure/es/instance/index-of.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/index-of.js"),o=Array.prototype;e.exports=function(e){var t=e.indexOf;return e===o||e instanceof Array&&t===o.indexOf?n:t}},"./node_modules/core-js-pure/es/instance/map.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/map.js"),o=Array.prototype;e.exports=function(e){var t=e.map;return e===o||e instanceof Array&&t===o.map?n:t}},"./node_modules/core-js-pure/es/instance/reduce.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/reduce.js"),o=Array.prototype;e.exports=function(e){var t=e.reduce;return e===o||e instanceof Array&&t===o.reduce?n:t}},"./node_modules/core-js-pure/es/instance/reverse.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/reverse.js"),o=Array.prototype;e.exports=function(e){var t=e.reverse;return e===o||e instanceof Array&&t===o.reverse?n:t}},"./node_modules/core-js-pure/es/instance/slice.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/slice.js"),o=Array.prototype;e.exports=function(e){var t=e.slice;return e===o||e instanceof Array&&t===o.slice?n:t}},"./node_modules/core-js-pure/es/instance/some.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/some.js"),o=Array.prototype;e.exports=function(e){var t=e.some;return e===o||e instanceof Array&&t===o.some?n:t}},"./node_modules/core-js-pure/es/instance/starts-with.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/string/virtual/starts-with.js"),o=String.prototype;e.exports=function(e){var t=e.startsWith;return"string"==typeof e||e===o||e instanceof String&&t===o.startsWith?n:t}},"./node_modules/core-js-pure/es/instance/trim.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/string/virtual/trim.js"),o=String.prototype;e.exports=function(e){var t=e.trim;return"string"==typeof e||e===o||e instanceof String&&t===o.trim?n:t}},"./node_modules/core-js-pure/es/map/index.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.map.js"),r("./node_modules/core-js-pure/modules/es.object.to-string.js"),r("./node_modules/core-js-pure/modules/es.string.iterator.js"),r("./node_modules/core-js-pure/modules/web.dom-collections.iterator.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Map},"./node_modules/core-js-pure/es/object/create.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.object.create.js");var n=r("./node_modules/core-js-pure/internals/path.js").Object;e.exports=function(e,t){return n.create(e,t)}},"./node_modules/core-js-pure/es/object/define-properties.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.object.define-properties.js");var n=r("./node_modules/core-js-pure/internals/path.js").Object,o=e.exports=function(e,t){return n.defineProperties(e,t)};n.defineProperties.sham&&(o.sham=!0)},"./node_modules/core-js-pure/es/object/define-property.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.object.define-property.js");var n=r("./node_modules/core-js-pure/internals/path.js").Object,o=e.exports=function(e,t,r){return n.defineProperty(e,t,r)};n.defineProperty.sham&&(o.sham=!0)},"./node_modules/core-js-pure/es/object/get-own-property-descriptor.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.object.get-own-property-descriptor.js");var n=r("./node_modules/core-js-pure/internals/path.js").Object,o=e.exports=function(e,t){return n.getOwnPropertyDescriptor(e,t)};n.getOwnPropertyDescriptor.sham&&(o.sham=!0)},"./node_modules/core-js-pure/es/object/get-own-property-descriptors.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.object.get-own-property-descriptors.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Object.getOwnPropertyDescriptors},"./node_modules/core-js-pure/es/object/get-own-property-symbols.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.symbol.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Object.getOwnPropertySymbols},"./node_modules/core-js-pure/es/object/get-prototype-of.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.object.get-prototype-of.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Object.getPrototypeOf},"./node_modules/core-js-pure/es/object/keys.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.object.keys.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Object.keys},"./node_modules/core-js-pure/es/object/set-prototype-of.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.object.set-prototype-of.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Object.setPrototypeOf},"./node_modules/core-js-pure/es/parse-float.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.parse-float.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.parseFloat},"./node_modules/core-js-pure/es/parse-int.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.parse-int.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.parseInt},"./node_modules/core-js-pure/es/promise/index.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.aggregate-error.js"),r("./node_modules/core-js-pure/modules/es.object.to-string.js"),r("./node_modules/core-js-pure/modules/es.promise.js"),r("./node_modules/core-js-pure/modules/es.promise.all-settled.js"),r("./node_modules/core-js-pure/modules/es.promise.any.js"),r("./node_modules/core-js-pure/modules/es.promise.finally.js"),r("./node_modules/core-js-pure/modules/es.string.iterator.js"),r("./node_modules/core-js-pure/modules/web.dom-collections.iterator.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Promise},"./node_modules/core-js-pure/es/reflect/apply.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.reflect.apply.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Reflect.apply},"./node_modules/core-js-pure/es/reflect/construct.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.reflect.construct.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Reflect.construct},"./node_modules/core-js-pure/es/reflect/delete-property.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.reflect.delete-property.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Reflect.deleteProperty},"./node_modules/core-js-pure/es/reflect/get-prototype-of.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.reflect.get-prototype-of.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Reflect.getPrototypeOf},"./node_modules/core-js-pure/es/reflect/get.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.reflect.get.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Reflect.get},"./node_modules/core-js-pure/es/string/virtual/includes.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.string.includes.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("String").includes},"./node_modules/core-js-pure/es/string/virtual/starts-with.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.string.starts-with.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("String").startsWith},"./node_modules/core-js-pure/es/string/virtual/trim.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.string.trim.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("String").trim},"./node_modules/core-js-pure/es/symbol/index.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.concat.js"),r("./node_modules/core-js-pure/modules/es.object.to-string.js"),r("./node_modules/core-js-pure/modules/es.symbol.js"),r("./node_modules/core-js-pure/modules/es.symbol.async-iterator.js"),r("./node_modules/core-js-pure/modules/es.symbol.description.js"),r("./node_modules/core-js-pure/modules/es.symbol.has-instance.js"),r("./node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js"),r("./node_modules/core-js-pure/modules/es.symbol.iterator.js"),r("./node_modules/core-js-pure/modules/es.symbol.match.js"),r("./node_modules/core-js-pure/modules/es.symbol.match-all.js"),r("./node_modules/core-js-pure/modules/es.symbol.replace.js"),r("./node_modules/core-js-pure/modules/es.symbol.search.js"),r("./node_modules/core-js-pure/modules/es.symbol.species.js"),r("./node_modules/core-js-pure/modules/es.symbol.split.js"),r("./node_modules/core-js-pure/modules/es.symbol.to-primitive.js"),r("./node_modules/core-js-pure/modules/es.symbol.to-string-tag.js"),r("./node_modules/core-js-pure/modules/es.symbol.unscopables.js"),r("./node_modules/core-js-pure/modules/es.json.to-string-tag.js"),r("./node_modules/core-js-pure/modules/es.math.to-string-tag.js"),r("./node_modules/core-js-pure/modules/es.reflect.to-string-tag.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Symbol},"./node_modules/core-js-pure/es/symbol/iterator.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.symbol.iterator.js"),r("./node_modules/core-js-pure/modules/es.string.iterator.js"),r("./node_modules/core-js-pure/modules/web.dom-collections.iterator.js");var n=r("./node_modules/core-js-pure/internals/well-known-symbol-wrapped.js");e.exports=n.f("iterator")},"./node_modules/core-js-pure/features/array/from.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/from.js");e.exports=n},"./node_modules/core-js-pure/features/array/is-array.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/is-array.js");e.exports=n},"./node_modules/core-js-pure/features/get-iterator-method.js":function(e,t,r){r("./node_modules/core-js-pure/modules/web.dom-collections.iterator.js"),r("./node_modules/core-js-pure/modules/es.string.iterator.js");var n=r("./node_modules/core-js-pure/internals/get-iterator-method.js");e.exports=n},"./node_modules/core-js-pure/features/get-iterator.js":function(e,t,r){r("./node_modules/core-js-pure/modules/web.dom-collections.iterator.js"),r("./node_modules/core-js-pure/modules/es.string.iterator.js");var n=r("./node_modules/core-js-pure/internals/get-iterator.js");e.exports=n},"./node_modules/core-js-pure/features/instance/slice.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/instance/slice.js");e.exports=n},"./node_modules/core-js-pure/features/object/create.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/object/create.js");e.exports=n},"./node_modules/core-js-pure/features/object/define-property.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/object/define-property.js");e.exports=n},"./node_modules/core-js-pure/features/object/get-own-property-descriptor.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/object/get-own-property-descriptor.js");e.exports=n},"./node_modules/core-js-pure/features/object/get-prototype-of.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/object/get-prototype-of.js");e.exports=n},"./node_modules/core-js-pure/features/object/set-prototype-of.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/object/set-prototype-of.js");e.exports=n},"./node_modules/core-js-pure/features/promise/index.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/promise/index.js");r("./node_modules/core-js-pure/modules/esnext.aggregate-error.js"),r("./node_modules/core-js-pure/modules/esnext.promise.all-settled.js"),r("./node_modules/core-js-pure/modules/esnext.promise.try.js"),r("./node_modules/core-js-pure/modules/esnext.promise.any.js"),e.exports=n},"./node_modules/core-js-pure/features/reflect/get.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/reflect/get.js");e.exports=n},"./node_modules/core-js-pure/features/symbol/index.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/symbol/index.js");r("./node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js"),r("./node_modules/core-js-pure/modules/esnext.symbol.dispose.js"),r("./node_modules/core-js-pure/modules/esnext.symbol.matcher.js"),r("./node_modules/core-js-pure/modules/esnext.symbol.metadata.js"),r("./node_modules/core-js-pure/modules/esnext.symbol.observable.js"),r("./node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js"),r("./node_modules/core-js-pure/modules/esnext.symbol.replace-all.js"),e.exports=n},"./node_modules/core-js-pure/features/symbol/iterator.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/symbol/iterator.js");e.exports=n},"./node_modules/core-js-pure/internals/a-function.js":function(e){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},"./node_modules/core-js-pure/internals/a-possible-prototype.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/is-object.js");e.exports=function(e){if(!n(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},"./node_modules/core-js-pure/internals/add-to-unscopables.js":function(e){e.exports=function(){}},"./node_modules/core-js-pure/internals/an-instance.js":function(e){e.exports=function(e,t,r){if(!(e instanceof t))throw TypeError("Incorrect "+(r?r+" ":"")+"invocation");return e}},"./node_modules/core-js-pure/internals/an-object.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/is-object.js");e.exports=function(e){if(!n(e))throw TypeError(String(e)+" is not an object");return e}},"./node_modules/core-js-pure/internals/array-fill.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/to-object.js"),o=r("./node_modules/core-js-pure/internals/to-absolute-index.js"),s=r("./node_modules/core-js-pure/internals/to-length.js");e.exports=function(e){for(var t=n(this),r=s(t.length),i=arguments.length,a=o(i>1?arguments[1]:void 0,r),A=i>2?arguments[2]:void 0,u=void 0===A?r:o(A,r);u>a;)t[a++]=e;return t}},"./node_modules/core-js-pure/internals/array-for-each.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/array-iteration.js").forEach,o=r("./node_modules/core-js-pure/internals/array-method-is-strict.js")("forEach");e.exports=o?[].forEach:function(e){return n(this,e,arguments.length>1?arguments[1]:void 0)}},"./node_modules/core-js-pure/internals/array-from.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/function-bind-context.js"),o=r("./node_modules/core-js-pure/internals/to-object.js"),s=r("./node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js"),i=r("./node_modules/core-js-pure/internals/is-array-iterator-method.js"),a=r("./node_modules/core-js-pure/internals/to-length.js"),A=r("./node_modules/core-js-pure/internals/create-property.js"),u=r("./node_modules/core-js-pure/internals/get-iterator-method.js");e.exports=function(e){var t,r,c,l,d,f,h=o(e),p="function"==typeof this?this:Array,m=arguments.length,g=m>1?arguments[1]:void 0,y=void 0!==g,v=u(h),w=0;if(y&&(g=n(g,m>2?arguments[2]:void 0,2)),null==v||p==Array&&i(v))for(r=new p(t=a(h.length));t>w;w++)f=y?g(h[w],w):h[w],A(r,w,f);else for(d=(l=v.call(h)).next,r=new p;!(c=d.call(l)).done;w++)f=y?s(l,g,[c.value,w],!0):c.value,A(r,w,f);return r.length=w,r}},"./node_modules/core-js-pure/internals/array-includes.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/to-indexed-object.js"),o=r("./node_modules/core-js-pure/internals/to-length.js"),s=r("./node_modules/core-js-pure/internals/to-absolute-index.js"),i=function(e){return function(t,r,i){var a,A=n(t),u=o(A.length),c=s(i,u);if(e&&r!=r){for(;u>c;)if((a=A[c++])!=a)return!0}else for(;u>c;c++)if((e||c in A)&&A[c]===r)return e||c||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},"./node_modules/core-js-pure/internals/array-iteration.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/function-bind-context.js"),o=r("./node_modules/core-js-pure/internals/indexed-object.js"),s=r("./node_modules/core-js-pure/internals/to-object.js"),i=r("./node_modules/core-js-pure/internals/to-length.js"),a=r("./node_modules/core-js-pure/internals/array-species-create.js"),A=[].push,u=function(e){var t=1==e,r=2==e,u=3==e,c=4==e,l=6==e,d=7==e,f=5==e||l;return function(h,p,m,g){for(var y,v,w=s(h),b=o(w),B=n(p,m,3),j=i(b.length),_=0,C=g||a,x=t?C(h,j):r||d?C(h,0):void 0;j>_;_++)if((f||_ in b)&&(v=B(y=b[_],_,w),e))if(t)x[_]=v;else if(v)switch(e){case 3:return!0;case 5:return y;case 6:return _;case 2:A.call(x,y)}else switch(e){case 4:return!1;case 7:A.call(x,y)}return l?-1:u||c?c:x}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterOut:u(7)}},"./node_modules/core-js-pure/internals/array-method-has-species-support.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/fails.js"),o=r("./node_modules/core-js-pure/internals/well-known-symbol.js"),s=r("./node_modules/core-js-pure/internals/engine-v8-version.js"),i=o("species");e.exports=function(e){return s>=51||!n((function(){var t=[];return(t.constructor={})[i]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},"./node_modules/core-js-pure/internals/array-method-is-strict.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/fails.js");e.exports=function(e,t){var r=[][e];return!!r&&n((function(){r.call(null,t||function(){throw 1},1)}))}},"./node_modules/core-js-pure/internals/array-reduce.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/a-function.js"),o=r("./node_modules/core-js-pure/internals/to-object.js"),s=r("./node_modules/core-js-pure/internals/indexed-object.js"),i=r("./node_modules/core-js-pure/internals/to-length.js"),a=function(e){return function(t,r,a,A){n(r);var u=o(t),c=s(u),l=i(u.length),d=e?l-1:0,f=e?-1:1;if(a<2)for(;;){if(d in c){A=c[d],d+=f;break}if(d+=f,e?d<0:l<=d)throw TypeError("Reduce of empty array with no initial value")}for(;e?d>=0:l>d;d+=f)d in c&&(A=r(A,c[d],d,u));return A}};e.exports={left:a(!1),right:a(!0)}},"./node_modules/core-js-pure/internals/array-species-create.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/is-object.js"),o=r("./node_modules/core-js-pure/internals/is-array.js"),s=r("./node_modules/core-js-pure/internals/well-known-symbol.js")("species");e.exports=function(e,t){var r;return o(e)&&("function"!=typeof(r=e.constructor)||r!==Array&&!o(r.prototype)?n(r)&&null===(r=r[s])&&(r=void 0):r=void 0),new(void 0===r?Array:r)(0===t?0:t)}},"./node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/an-object.js"),o=r("./node_modules/core-js-pure/internals/iterator-close.js");e.exports=function(e,t,r,s){try{return s?t(n(r)[0],r[1]):t(r)}catch(t){throw o(e),t}}},"./node_modules/core-js-pure/internals/check-correctness-of-iteration.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/well-known-symbol.js")("iterator"),o=!1;try{var s=0,i={next:function(){return{done:!!s++}},return:function(){o=!0}};i[n]=function(){return this},Array.from(i,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var r=!1;try{var s={};s[n]=function(){return{next:function(){return{done:r=!0}}}},e(s)}catch(e){}return r}},"./node_modules/core-js-pure/internals/classof-raw.js":function(e){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},"./node_modules/core-js-pure/internals/classof.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/to-string-tag-support.js"),o=r("./node_modules/core-js-pure/internals/classof-raw.js"),s=r("./node_modules/core-js-pure/internals/well-known-symbol.js")("toStringTag"),i="Arguments"==o(function(){return arguments}());e.exports=n?o:function(e){var t,r,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),s))?r:i?o(t):"Object"==(n=o(t))&&"function"==typeof t.callee?"Arguments":n}},"./node_modules/core-js-pure/internals/collection-strong.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/object-define-property.js").f,o=r("./node_modules/core-js-pure/internals/object-create.js"),s=r("./node_modules/core-js-pure/internals/redefine-all.js"),i=r("./node_modules/core-js-pure/internals/function-bind-context.js"),a=r("./node_modules/core-js-pure/internals/an-instance.js"),A=r("./node_modules/core-js-pure/internals/iterate.js"),u=r("./node_modules/core-js-pure/internals/define-iterator.js"),c=r("./node_modules/core-js-pure/internals/set-species.js"),l=r("./node_modules/core-js-pure/internals/descriptors.js"),d=r("./node_modules/core-js-pure/internals/internal-metadata.js").fastKey,f=r("./node_modules/core-js-pure/internals/internal-state.js"),h=f.set,p=f.getterFor;e.exports={getConstructor:function(e,t,r,u){var c=e((function(e,n){a(e,c,t),h(e,{type:t,index:o(null),first:void 0,last:void 0,size:0}),l||(e.size=0),null!=n&&A(n,e[u],{that:e,AS_ENTRIES:r})})),f=p(t),m=function(e,t,r){var n,o,s=f(e),i=g(e,t);return i?i.value=r:(s.last=i={index:o=d(t,!0),key:t,value:r,previous:n=s.last,next:void 0,removed:!1},s.first||(s.first=i),n&&(n.next=i),l?s.size++:e.size++,"F"!==o&&(s.index[o]=i)),e},g=function(e,t){var r,n=f(e),o=d(t);if("F"!==o)return n.index[o];for(r=n.first;r;r=r.next)if(r.key==t)return r};return s(c.prototype,{clear:function(){for(var e=f(this),t=e.index,r=e.first;r;)r.removed=!0,r.previous&&(r.previous=r.previous.next=void 0),delete t[r.index],r=r.next;e.first=e.last=void 0,l?e.size=0:this.size=0},delete:function(e){var t=this,r=f(t),n=g(t,e);if(n){var o=n.next,s=n.previous;delete r.index[n.index],n.removed=!0,s&&(s.next=o),o&&(o.previous=s),r.first==n&&(r.first=o),r.last==n&&(r.last=s),l?r.size--:t.size--}return!!n},forEach:function(e){for(var t,r=f(this),n=i(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.next:r.first;)for(n(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!g(this,e)}}),s(c.prototype,r?{get:function(e){var t=g(this,e);return t&&t.value},set:function(e,t){return m(this,0===e?0:e,t)}}:{add:function(e){return m(this,e=0===e?0:e,e)}}),l&&n(c.prototype,"size",{get:function(){return f(this).size}}),c},setStrong:function(e,t,r){var n=t+" Iterator",o=p(t),s=p(n);u(e,t,(function(e,t){h(this,{type:n,target:e,state:o(e),kind:t,last:void 0})}),(function(){for(var e=s(this),t=e.kind,r=e.last;r&&r.removed;)r=r.previous;return e.target&&(e.last=r=r?r.next:e.state.first)?"keys"==t?{value:r.key,done:!1}:"values"==t?{value:r.value,done:!1}:{value:[r.key,r.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),r?"entries":"values",!r,!0),c(t)}}},"./node_modules/core-js-pure/internals/collection.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/export.js"),o=r("./node_modules/core-js-pure/internals/global.js"),s=r("./node_modules/core-js-pure/internals/internal-metadata.js"),i=r("./node_modules/core-js-pure/internals/fails.js"),a=r("./node_modules/core-js-pure/internals/create-non-enumerable-property.js"),A=r("./node_modules/core-js-pure/internals/iterate.js"),u=r("./node_modules/core-js-pure/internals/an-instance.js"),c=r("./node_modules/core-js-pure/internals/is-object.js"),l=r("./node_modules/core-js-pure/internals/set-to-string-tag.js"),d=r("./node_modules/core-js-pure/internals/object-define-property.js").f,f=r("./node_modules/core-js-pure/internals/array-iteration.js").forEach,h=r("./node_modules/core-js-pure/internals/descriptors.js"),p=r("./node_modules/core-js-pure/internals/internal-state.js"),m=p.set,g=p.getterFor;e.exports=function(e,t,r){var p,y=-1!==e.indexOf("Map"),v=-1!==e.indexOf("Weak"),w=y?"set":"add",b=o[e],B=b&&b.prototype,j={};if(h&&"function"==typeof b&&(v||B.forEach&&!i((function(){(new b).entries().next()})))){p=t((function(t,r){m(u(t,p,e),{type:e,collection:new b}),null!=r&&A(r,t[w],{that:t,AS_ENTRIES:y})}));var _=g(e);f(["add","clear","delete","forEach","get","has","set","keys","values","entries"],(function(e){var t="add"==e||"set"==e;!(e in B)||v&&"clear"==e||a(p.prototype,e,(function(r,n){var o=_(this).collection;if(!t&&v&&!c(r))return"get"==e&&void 0;var s=o[e](0===r?0:r,n);return t?this:s}))})),v||d(p.prototype,"size",{configurable:!0,get:function(){return _(this).collection.size}})}else p=r.getConstructor(t,e,y,w),s.REQUIRED=!0;return l(p,e,!1,!0),j[e]=p,n({global:!0,forced:!0},j),v||r.setStrong(p,e,y),p}},"./node_modules/core-js-pure/internals/correct-is-regexp-logic.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/well-known-symbol.js")("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(r){try{return t[n]=!1,"/./"[e](t)}catch(e){}}return!1}},"./node_modules/core-js-pure/internals/correct-prototype-getter.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/fails.js");e.exports=!n((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},"./node_modules/core-js-pure/internals/create-iterator-constructor.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/iterators-core.js").IteratorPrototype,o=r("./node_modules/core-js-pure/internals/object-create.js"),s=r("./node_modules/core-js-pure/internals/create-property-descriptor.js"),i=r("./node_modules/core-js-pure/internals/set-to-string-tag.js"),a=r("./node_modules/core-js-pure/internals/iterators.js"),A=function(){return this};e.exports=function(e,t,r){var u=t+" Iterator";return e.prototype=o(n,{next:s(1,r)}),i(e,u,!1,!0),a[u]=A,e}},"./node_modules/core-js-pure/internals/create-non-enumerable-property.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/descriptors.js"),o=r("./node_modules/core-js-pure/internals/object-define-property.js"),s=r("./node_modules/core-js-pure/internals/create-property-descriptor.js");e.exports=n?function(e,t,r){return o.f(e,t,s(1,r))}:function(e,t,r){return e[t]=r,e}},"./node_modules/core-js-pure/internals/create-property-descriptor.js":function(e){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},"./node_modules/core-js-pure/internals/create-property.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/to-primitive.js"),o=r("./node_modules/core-js-pure/internals/object-define-property.js"),s=r("./node_modules/core-js-pure/internals/create-property-descriptor.js");e.exports=function(e,t,r){var i=n(t);i in e?o.f(e,i,s(0,r)):e[i]=r}},"./node_modules/core-js-pure/internals/define-iterator.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/export.js"),o=r("./node_modules/core-js-pure/internals/create-iterator-constructor.js"),s=r("./node_modules/core-js-pure/internals/object-get-prototype-of.js"),i=r("./node_modules/core-js-pure/internals/object-set-prototype-of.js"),a=r("./node_modules/core-js-pure/internals/set-to-string-tag.js"),A=r("./node_modules/core-js-pure/internals/create-non-enumerable-property.js"),u=r("./node_modules/core-js-pure/internals/redefine.js"),c=r("./node_modules/core-js-pure/internals/well-known-symbol.js"),l=r("./node_modules/core-js-pure/internals/is-pure.js"),d=r("./node_modules/core-js-pure/internals/iterators.js"),f=r("./node_modules/core-js-pure/internals/iterators-core.js"),h=f.IteratorPrototype,p=f.BUGGY_SAFARI_ITERATORS,m=c("iterator"),g="keys",y="values",v="entries",w=function(){return this};e.exports=function(e,t,r,c,f,b,B){o(r,t,c);var j,_,C,x=function(e){if(e===f&&U)return U;if(!p&&e in Q)return Q[e];switch(e){case g:case y:case v:return function(){return new r(this,e)}}return function(){return new r(this)}},E=t+" Iterator",N=!1,Q=e.prototype,F=Q[m]||Q["@@iterator"]||f&&Q[f],U=!p&&F||x(f),S="Array"==t&&Q.entries||F;if(S&&(j=s(S.call(new e)),h!==Object.prototype&&j.next&&(l||s(j)===h||(i?i(j,h):"function"!=typeof j[m]&&A(j,m,w)),a(j,E,!0,!0),l&&(d[E]=w))),f==y&&F&&F.name!==y&&(N=!0,U=function(){return F.call(this)}),l&&!B||Q[m]===U||A(Q,m,U),d[t]=U,f)if(_={values:x(y),keys:b?U:x(g),entries:x(v)},B)for(C in _)(p||N||!(C in Q))&&u(Q,C,_[C]);else n({target:t,proto:!0,forced:p||N},_);return _}},"./node_modules/core-js-pure/internals/define-well-known-symbol.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/path.js"),o=r("./node_modules/core-js-pure/internals/has.js"),s=r("./node_modules/core-js-pure/internals/well-known-symbol-wrapped.js"),i=r("./node_modules/core-js-pure/internals/object-define-property.js").f;e.exports=function(e){var t=n.Symbol||(n.Symbol={});o(t,e)||i(t,e,{value:s.f(e)})}},"./node_modules/core-js-pure/internals/descriptors.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/fails.js");e.exports=!n((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},"./node_modules/core-js-pure/internals/document-create-element.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/global.js"),o=r("./node_modules/core-js-pure/internals/is-object.js"),s=n.document,i=o(s)&&o(s.createElement);e.exports=function(e){return i?s.createElement(e):{}}},"./node_modules/core-js-pure/internals/dom-iterables.js":function(e){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},"./node_modules/core-js-pure/internals/engine-is-browser.js":function(e){e.exports="object"==typeof window},"./node_modules/core-js-pure/internals/engine-is-ios.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/engine-user-agent.js");e.exports=/(?:iphone|ipod|ipad).*applewebkit/i.test(n)},"./node_modules/core-js-pure/internals/engine-is-node.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/classof-raw.js"),o=r("./node_modules/core-js-pure/internals/global.js");e.exports="process"==n(o.process)},"./node_modules/core-js-pure/internals/engine-is-webos-webkit.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/engine-user-agent.js");e.exports=/web0s(?!.*chrome)/i.test(n)},"./node_modules/core-js-pure/internals/engine-user-agent.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/get-built-in.js");e.exports=n("navigator","userAgent")||""},"./node_modules/core-js-pure/internals/engine-v8-version.js":function(e,t,r){var n,o,s=r("./node_modules/core-js-pure/internals/global.js"),i=r("./node_modules/core-js-pure/internals/engine-user-agent.js"),a=s.process,A=a&&a.versions,u=A&&A.v8;u?o=(n=u.split("."))[0]<4?1:n[0]+n[1]:i&&(!(n=i.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=i.match(/Chrome\/(\d+)/))&&(o=n[1]),e.exports=o&&+o},"./node_modules/core-js-pure/internals/entry-virtual.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=function(e){return n[e+"Prototype"]}},"./node_modules/core-js-pure/internals/enum-bug-keys.js":function(e){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"./node_modules/core-js-pure/internals/export.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/global.js"),o=r("./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js").f,s=r("./node_modules/core-js-pure/internals/is-forced.js"),i=r("./node_modules/core-js-pure/internals/path.js"),a=r("./node_modules/core-js-pure/internals/function-bind-context.js"),A=r("./node_modules/core-js-pure/internals/create-non-enumerable-property.js"),u=r("./node_modules/core-js-pure/internals/has.js"),c=function(e){var t=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,n)}return e.apply(this,arguments)};return t.prototype=e.prototype,t};e.exports=function(e,t){var r,l,d,f,h,p,m,g,y=e.target,v=e.global,w=e.stat,b=e.proto,B=v?n:w?n[y]:(n[y]||{}).prototype,j=v?i:i[y]||(i[y]={}),_=j.prototype;for(d in t)r=!s(v?d:y+(w?".":"#")+d,e.forced)&&B&&u(B,d),h=j[d],r&&(p=e.noTargetGet?(g=o(B,d))&&g.value:B[d]),f=r&&p?p:t[d],r&&typeof h==typeof f||(m=e.bind&&r?a(f,n):e.wrap&&r?c(f):b&&"function"==typeof f?a(Function.call,f):f,(e.sham||f&&f.sham||h&&h.sham)&&A(m,"sham",!0),j[d]=m,b&&(u(i,l=y+"Prototype")||A(i,l,{}),i[l][d]=f,e.real&&_&&!_[d]&&A(_,d,f)))}},"./node_modules/core-js-pure/internals/fails.js":function(e){e.exports=function(e){try{return!!e()}catch(e){return!0}}},"./node_modules/core-js-pure/internals/freezing.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/fails.js");e.exports=!n((function(){return Object.isExtensible(Object.preventExtensions({}))}))},"./node_modules/core-js-pure/internals/function-bind-context.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/a-function.js");e.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 0:return function(){return e.call(t)};case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,o){return e.call(t,r,n,o)}}return function(){return e.apply(t,arguments)}}},"./node_modules/core-js-pure/internals/function-bind.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/a-function.js"),o=r("./node_modules/core-js-pure/internals/is-object.js"),s=[].slice,i={},a=function(e,t,r){if(!(t in i)){for(var n=[],o=0;od;d++)if((h=j(e[d]))&&h instanceof u)return h;return new u(!1)}c=l.call(e)}for(p=c.next;!(m=p.call(c)).done;){try{h=j(m.value)}catch(e){throw A(c),e}if("object"==typeof h&&h&&h instanceof u)return h}return new u(!1)}},"./node_modules/core-js-pure/internals/iterator-close.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/an-object.js");e.exports=function(e){var t=e.return;if(void 0!==t)return n(t.call(e)).value}},"./node_modules/core-js-pure/internals/iterators-core.js":function(e,t,r){"use strict";var n,o,s,i=r("./node_modules/core-js-pure/internals/fails.js"),a=r("./node_modules/core-js-pure/internals/object-get-prototype-of.js"),A=r("./node_modules/core-js-pure/internals/create-non-enumerable-property.js"),u=r("./node_modules/core-js-pure/internals/has.js"),c=r("./node_modules/core-js-pure/internals/well-known-symbol.js"),l=r("./node_modules/core-js-pure/internals/is-pure.js"),d=c("iterator"),f=!1;[].keys&&("next"in(s=[].keys())?(o=a(a(s)))!==Object.prototype&&(n=o):f=!0);var h=null==n||i((function(){var e={};return n[d].call(e)!==e}));h&&(n={}),l&&!h||u(n,d)||A(n,d,(function(){return this})),e.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:f}},"./node_modules/core-js-pure/internals/iterators.js":function(e){e.exports={}},"./node_modules/core-js-pure/internals/microtask.js":function(e,t,r){var n,o,s,i,a,A,u,c,l=r("./node_modules/core-js-pure/internals/global.js"),d=r("./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js").f,f=r("./node_modules/core-js-pure/internals/task.js").set,h=r("./node_modules/core-js-pure/internals/engine-is-ios.js"),p=r("./node_modules/core-js-pure/internals/engine-is-webos-webkit.js"),m=r("./node_modules/core-js-pure/internals/engine-is-node.js"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.document,v=l.process,w=l.Promise,b=d(l,"queueMicrotask"),B=b&&b.value;B||(n=function(){var e,t;for(m&&(e=v.domain)&&e.exit();o;){t=o.fn,o=o.next;try{t()}catch(e){throw o?i():s=void 0,e}}s=void 0,e&&e.enter()},h||m||p||!g||!y?w&&w.resolve?((u=w.resolve(void 0)).constructor=w,c=u.then,i=function(){c.call(u,n)}):i=m?function(){v.nextTick(n)}:function(){f.call(l,n)}:(a=!0,A=y.createTextNode(""),new g(n).observe(A,{characterData:!0}),i=function(){A.data=a=!a})),e.exports=B||function(e){var t={fn:e,next:void 0};s&&(s.next=t),o||(o=t,i()),s=t}},"./node_modules/core-js-pure/internals/native-promise-constructor.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/global.js");e.exports=n.Promise},"./node_modules/core-js-pure/internals/native-symbol.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/engine-v8-version.js"),o=r("./node_modules/core-js-pure/internals/fails.js");e.exports=!!Object.getOwnPropertySymbols&&!o((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},"./node_modules/core-js-pure/internals/native-weak-map.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/global.js"),o=r("./node_modules/core-js-pure/internals/inspect-source.js"),s=n.WeakMap;e.exports="function"==typeof s&&/native code/.test(o(s))},"./node_modules/core-js-pure/internals/new-promise-capability.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/a-function.js"),o=function(e){var t,r;this.promise=new e((function(e,n){if(void 0!==t||void 0!==r)throw TypeError("Bad Promise constructor");t=e,r=n})),this.resolve=n(t),this.reject=n(r)};e.exports.f=function(e){return new o(e)}},"./node_modules/core-js-pure/internals/not-a-regexp.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/is-regexp.js");e.exports=function(e){if(n(e))throw TypeError("The method doesn't accept regular expressions");return e}},"./node_modules/core-js-pure/internals/number-parse-float.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/global.js"),o=r("./node_modules/core-js-pure/internals/string-trim.js").trim,s=r("./node_modules/core-js-pure/internals/whitespaces.js"),i=n.parseFloat,a=1/i(s+"-0")!=-1/0;e.exports=a?function(e){var t=o(String(e)),r=i(t);return 0===r&&"-"==t.charAt(0)?-0:r}:i},"./node_modules/core-js-pure/internals/number-parse-int.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/global.js"),o=r("./node_modules/core-js-pure/internals/string-trim.js").trim,s=r("./node_modules/core-js-pure/internals/whitespaces.js"),i=n.parseInt,a=/^[+-]?0[Xx]/,A=8!==i(s+"08")||22!==i(s+"0x16");e.exports=A?function(e,t){var r=o(String(e));return i(r,t>>>0||(a.test(r)?16:10))}:i},"./node_modules/core-js-pure/internals/object-create.js":function(e,t,r){var n,o=r("./node_modules/core-js-pure/internals/an-object.js"),s=r("./node_modules/core-js-pure/internals/object-define-properties.js"),i=r("./node_modules/core-js-pure/internals/enum-bug-keys.js"),a=r("./node_modules/core-js-pure/internals/hidden-keys.js"),A=r("./node_modules/core-js-pure/internals/html.js"),u=r("./node_modules/core-js-pure/internals/document-create-element.js"),c=r("./node_modules/core-js-pure/internals/shared-key.js")("IE_PROTO"),l=function(){},d=function(e){return" - - - +{% block extra_js %} + + + {% endblock %} diff --git a/templates/administration/staff_index.html b/templates/administration/staff_index.html index 9ff00980..779d0c20 100644 --- a/templates/administration/staff_index.html +++ b/templates/administration/staff_index.html @@ -35,9 +35,9 @@ {% include 'modal/confirm_modal.html' %} @@ -103,7 +103,7 @@ if (isUserSuperUser) { superuserInputField = `
- + ${staffDropdown.outerHTML}
`; @@ -112,27 +112,27 @@ return ` ${superuserInputField}
- + ${servicesDropdown.outerHTML}
- - - - + + + + - - - - + + + +
- - + +
- - + +
- - + +
`; } @@ -143,8 +143,8 @@ return ` ${commonInputs}
- - + +
`; } @@ -156,7 +156,7 @@ return ` ${commonInputs} - + `; } diff --git a/templates/administration/user_profile.html b/templates/administration/user_profile.html index f7f2dbc4..00b74e10 100644 --- a/templates/administration/user_profile.html +++ b/templates/administration/user_profile.html @@ -34,7 +34,7 @@
-

{% trans 'Appointment Information' %}

+

{% trans 'Appointments Information' %}

{{ service_msg }} diff --git a/templates/crm/employee_calendar.html b/templates/crm/employee_calendar.html new file mode 100644 index 00000000..614afadf --- /dev/null +++ b/templates/crm/employee_calendar.html @@ -0,0 +1,22 @@ + +

Upcoming Test Drives

+ + + + + + + + + + + {% for appointment in appointments %} + + + + + + + {% endfor %} + +
CustomerVehicleDate/TimeStaff
{{ appointment.client.name }}{{ appointment.service.name }}{{ appointment.start_time|date:"M j, Y H:i" }}{{ appointment.staff.user.get_full_name }}
\ No newline at end of file diff --git a/templates/crm/leads/lead_detail.html b/templates/crm/leads/lead_detail.html index 51894d86..cf2239e7 100644 --- a/templates/crm/leads/lead_detail.html +++ b/templates/crm/leads/lead_detail.html @@ -199,24 +199,7 @@ {% for note in notes %} - + {{note.note}} {% if note.created_by.staff %} @@ -230,9 +213,13 @@ "> - + + {% endif %} @@ -587,6 +574,7 @@
+ {% include 'modal/delete_modal.html' %}
diff --git a/templates/modal/delete_modal.html b/templates/modal/delete_modal.html new file mode 100644 index 00000000..1458d410 --- /dev/null +++ b/templates/modal/delete_modal.html @@ -0,0 +1,48 @@ +{% load i18n %} + + \ No newline at end of file diff --git a/templates/modal/event_details_modal.html b/templates/modal/event_details_modal.html index cc41bcfe..6e67c15a 100644 --- a/templates/modal/event_details_modal.html +++ b/templates/modal/event_details_modal.html @@ -4,33 +4,35 @@ aria-hidden="true">