From 65b88c49976aaeb3e8e052cc69b9a3107561a282 Mon Sep 17 00:00:00 2001
From: alberto-art3ch
Date: Sat, 27 Apr 2024 23:43:46 +0000
Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=20b380f?=
=?UTF-8?q?7f630837fcc3263d74255059b2ed6d41984=20=F0=9F=9A=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
assets/env.js | 2 +-
assets/translations/cs-CS.json | 136 ++++++++++++++++++++
assets/translations/de-DE.json | 136 ++++++++++++++++++++
assets/translations/en-US.json | 150 ++++++++++++++++++++--
assets/translations/es-MX.json | 182 +++++++++++++++++++++++----
assets/translations/fr-FR.json | 136 ++++++++++++++++++++
assets/translations/it-IT.json | 136 ++++++++++++++++++++
assets/translations/ko-KO.json | 136 ++++++++++++++++++++
assets/translations/lt-LT.json | 136 ++++++++++++++++++++
assets/translations/lv-LV.json | 136 ++++++++++++++++++++
assets/translations/ne-NE.json | 136 ++++++++++++++++++++
assets/translations/pt-PT.json | 136 ++++++++++++++++++++
assets/translations/sw-SW.json | 136 ++++++++++++++++++++
main.js | 2 +-
src_app_savings_savings_module_ts.js | 2 +-
15 files changed, 1665 insertions(+), 33 deletions(-)
diff --git a/assets/env.js b/assets/env.js
index f5f6ea8aca..ca18313baf 100644
--- a/assets/env.js
+++ b/assets/env.js
@@ -30,6 +30,6 @@
window['env']['waitTimeForCOBCatchUp'] = '';
// Time in milliseconds for Session idle timeout, default 300000 seconds
- window['env']['sessionIdleTimeout'] = '60000';
+ window['env']['sessionIdleTimeout'] = '0';
})(this);
diff --git a/assets/translations/cs-CS.json b/assets/translations/cs-CS.json
index f0df27abc0..8646d44661 100644
--- a/assets/translations/cs-CS.json
+++ b/assets/translations/cs-CS.json
@@ -514,8 +514,138 @@
"Waive Charge": "Zřeknutí se poplatku",
"Week": "Týden",
"Withdraw": "Ustoupit",
+ "View Active Charges": "Zobrazit aktivní poplatky",
+ "View Inactive Charges": "Zobrazit neaktivní poplatky",
"Yes": "Ano"
},
+ "catalogs": {
+ "Active": "Aktivní",
+ "Inactive": "Inactive",
+ "Loans": "Loans",
+ "Client": "Client",
+ "Loan": "Loan",
+ "Savings": "Savings",
+ "Shares": "Shares",
+ "Regular": "Regular",
+ "Account transfer": "Account transfer",
+ "Flat": "Flat",
+ "% Amount": "% Amount",
+ "% Interest": "% Interest",
+ "% Loan Amount + Interest": "% Loan Amount + Interest",
+ "Disbursement": "Disbursement",
+ "Specified due date": "Specified due date",
+ "Installment Fee": "Installment Fee",
+ "Overdue Fees": "Overdue Fees",
+ "Tranche Disbursement": "Tranche Disbursement",
+ "Savings Activation": "Savings Activation",
+ "Saving No Activity Fee": "Ušetříte žádný poplatek za aktivitu",
+ "Withdrawal Fee": "Withdrawal Fee",
+ "Annual Fee": "Annual Fee",
+ "Monthly Fee": "Monthly Fee",
+ "Weekly Fee": "Weekly Fee",
+ "Share Account Activate": "Share Account Activate",
+ "Share Purchase": "Share Purchase",
+ "Share Redeem": "Share Redeem",
+ "Days": "Dny",
+ "Weeks": "týdny",
+ "Months": "měsíce",
+ "Years": "let",
+ "Deposit": "Vklad",
+ "Withdrawal": "Vybrání",
+ "Interest Posting": "Zveřejnění zájmu",
+ "Waive Charge": "Zřeknutí se poplatku",
+ "Pay Charge": "Zaplatit poplatek",
+ "Dividend Payout": "Výplata dividend",
+ "Accrual": "Akruální",
+ "Initiate Transfer": "Spusťte přenos",
+ "Approve Transfer": "Schválit převod",
+ "Withdraw Transfer": "Odebrat převod",
+ "Writtenoff": "Odepsané",
+ "Overdraft Interest": "Úrok z kontokorentu",
+ "Withhold Tax": "Srážková daň",
+ "Escheat": "Escheat",
+ "On Hold": "Pozastaveno",
+ "Release": "Uvolnění",
+ "Daily": "Denně",
+ "Monthly": "Měsíční",
+ "Quarterly": "Čtvrtletně",
+ "Semi-Annual": "Pololetní",
+ "Annually": "Každoročně",
+ "Weekly": "Týdně",
+ "Daily Balance": "Denní zůstatek",
+ "Average Daily Balance": "Průměrný denní zůstatek",
+ "BiAnnual": "Pololetní",
+ "360 Days": "360 dní",
+ "365 Days": "365 dní",
+ "30 Days": "30 dní",
+ "364 Days": "364 dní",
+ "Actual": "Aktuální",
+ "Disbursement Date": "Datum výplaty",
+ "Submitted On Date": "Odesláno dne",
+ "Per year": "Za rok",
+ "Per month": "Za měsíc",
+ "Whole term": "Celé období",
+ "Same as repayment period": "Stejné jako doba splácení",
+ "Declining Balance": "Klesající zůstatek",
+ "Cumulative": "Kumulativní",
+ "Progressive": "Progresivní",
+ "Penalty": "Trest",
+ "Fees": "Poplatky",
+ "Fee": "Poplatek",
+ "Horizontal": "Horizontální",
+ "Vertical": "Vertikální",
+ "Advanced payment allocation strategy": "Pokročilá strategie alokace plateb",
+ "Past due penalty": "Po splatnosti pokuta",
+ "Past due fee": "Poplatek po splatnosti",
+ "Past due principal": "Po splatnosti jistina",
+ "Past due interest": "Úroky po splatnosti",
+ "Due penalty": "Náležitý trest",
+ "Due fee": "Dlužný poplatek",
+ "Due principal": "Splatná jistina",
+ "Due interest": "Přiměřený zájem",
+ "In advanced penalty": "Pokuta předem",
+ "In advanced fee": "Poplatek předem",
+ "In advanced principal": "Předem ředitel",
+ "In advanced interest": "Zájem předem",
+ "Next installment": "Další splátka",
+ "Last installment": "Poslední splátka",
+ "Reamotization": "Reamotizace",
+ "equals": "rovná se",
+ "greater than": "větší než",
+ "Equal installments": "Stejné splátky",
+ "Equal principal payments": "Stejné splátky jistiny",
+ "Till Pre-Close Date": "Do data předběžného uzavření",
+ "Till Rest Frequency Date": "Do zbývajícího data frekvence",
+ "Reduce EMI amount": "Snížit částku",
+ "Reduce number of installments": "Snížit počet splátek",
+ "Reschedule next repayments": "Přeplánujte další splátky",
+ "None": "Hlavní město",
+ "Interest": "Zájem",
+ "Fee and Interest": "Poplatek a úrok",
+ "Creocore Unique": "Unikátní Creocore",
+ "Early Repayment Strategy": "Strategie předčasného splacení",
+ "Penalties, Fees, Interest, Principal order": "Sankce, poplatky, úroky, jistina",
+ "HeavensFamily Unique": "Unikátní Nebeská rodina",
+ "Interest, Principal, Penalties, Fees Order": "Úroky, jistina, penále, poplatky",
+ "Principal, Interest, Penalties, Fees Order": "Jistina, úrok, penále, příkaz k poplatkům",
+ "Overdue/Due Fee/Int,Principal": "Po splatnosti/Poplatek po splatnosti/Int, jistina",
+ "Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Splatná pokuta, poplatek, úrok, jistina, Předem jistina, penále, poplatek, úrok",
+ "Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Splatná pokuta, úrok, jistina, poplatek, Pokuta předem, úrok, jistina, poplatek",
+ "first": "První",
+ "second": "druhý",
+ "third": "Třetí",
+ "fourth": "čtyři",
+ "last": "poslední",
+ "on day": "ve dne",
+ "SUNDAY": "NEDĚLE",
+ "MONDAY": "PONDĚLÍ",
+ "TUESDAY": "ÚTERÝ",
+ "WEDNESDAY": "STŘEDA",
+ "THURSDAY": "ČTVRTEK",
+ "FRIDAY": "PÁTEK",
+ "SATURDAY": "SOBOTA",
+ "Invalid": "Neplatný"
+ },
"commons": {
"50 characters long": "50 znaků dlouhé",
"8 characters long": "8 znaků dlouhé",
@@ -573,6 +703,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "Přidat účet",
"Add Currency Form": "Přidat formulář měny",
+ "Add Client Identifier": "Přidat identifikátor klienta",
"Add Journal Entry Form": "Přidat formulář pro zápis do deníku",
"Add Loan Collateral": "Přidejte zajištění úvěru",
"Add Role": "Přidat roli",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Datum zahájení dividendového období",
"Dividends": "Dividendy",
"Documents": "Dokumenty",
+ "Document Key": "Klíč dokumentu",
+ "Document Type": "Typ dokumentu",
"Dormancy Tracking": "Sledování dormance",
"Download": "Stažení",
"Due": "Z důvodu",
@@ -2155,6 +2288,8 @@
},
"task-management component": "komponenta řízení úkolů",
"to": "na",
+ "Down Payments": "Zálohy",
+ "Enable Down Payments": "Povolit zálohové platby",
"valid": "platný"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "Záznamy v časopise",
"Mandatory": "Povinné",
"Voluntary": "Dobrovolný",
+ "Write a note": "Napište poznámku",
"“Maker-Checker” principle requires every tasks": "Princip „Maker-Checker“ vyžaduje, aby každý úkol prováděli dva lidé, aby se snížila pravděpodobnost chyb a zneužití. Jedna osoba proces iniciuje a druhá jej dokončí."
},
"titles": {
diff --git a/assets/translations/de-DE.json b/assets/translations/de-DE.json
index 4e605ed098..24a9a749c0 100644
--- a/assets/translations/de-DE.json
+++ b/assets/translations/de-DE.json
@@ -514,8 +514,138 @@
"Waive Charge": "Auf Gebühr verzichten",
"Week": "Woche",
"Withdraw": "Zurückziehen",
+ "View Active Charges": "Aktive Gebühren anzeigen",
+ "View Inactive Charges": "Inaktive Gebühren anzeigen",
"Yes": "Ja"
},
+ "catalogs": {
+ "Active": "Aktiv",
+ "Inactive": "Inaktiv",
+ "Loans": "Kredite",
+ "Client": "Klient",
+ "Loan": "Darlehen",
+ "Savings": "Ersparnisse",
+ "Shares": "Anteile",
+ "Regular": "Regulär",
+ "Account transfer": "Kontoübertragung",
+ "Flat": "Wohnung",
+ "% Amount": "Menge",
+ "% Interest": "Interesse",
+ "% Loan Amount + Interest": "Kreditbetrag + Zinsen",
+ "Disbursement": "Auszahlung",
+ "Specified due date": "Angegebenes Fälligkeitsdatum",
+ "Installment Fee": "Ratenzahlungsgebühr",
+ "Overdue Fees": "Überfällige Gebühren",
+ "Tranche Disbursement": "Tranchenauszahlung",
+ "Savings Activation": "Sparaktivierung",
+ "Saving No Activity Fee": "Sparen Sie keine Aktivitätsgebühr",
+ "Withdrawal Fee": "Abhebegebühr",
+ "Annual Fee": "Jahresgebühr",
+ "Monthly Fee": "Monatliche Gebühr",
+ "Weekly Fee": "Wöchentliche Gebühr",
+ "Share Account Activate": "Freigabekonto aktivieren",
+ "Share Purchase": "Aktienkauf",
+ "Share Redeem": "Teilen, einlösen",
+ "Days": "Tage",
+ "Weeks": "Wochen",
+ "Months": "Monate",
+ "Years": "Jahre",
+ "Deposit": "Kaution",
+ "Withdrawal": "Rückzug",
+ "Interest Posting": "Zinsbuchung",
+ "Waive Charge": "Auf Gebühr verzichten",
+ "Pay Charge": "Gebühr bezahlen",
+ "Dividend Payout": "Dividendenzahlung",
+ "Accrual": "Rückstellung",
+ "Initiate Transfer": "Übertragung einleiten",
+ "Approve Transfer": "Übertragung genehmigen",
+ "Withdraw Transfer": "Überweisung zurückziehen",
+ "Writtenoff": "Abgeschrieben",
+ "Overdraft Interest": "Überziehungszinsen",
+ "Withhold Tax": "Quellensteuer",
+ "Escheat": "Betrug",
+ "On Hold": "In der Warteschleife",
+ "Release": "Freigeben",
+ "Daily": "Täglich",
+ "Monthly": "Monatlich",
+ "Quarterly": "Vierteljährlich",
+ "Semi-Annual": "Halbjährlich",
+ "Annually": "Jährlich",
+ "Weekly": "Wöchentlich",
+ "Daily Balance": "Tagesbilanz",
+ "Average Daily Balance": "Durchschnittlicher Tagessaldo",
+ "BiAnnual": "Zweijährlich",
+ "360 Days": "360 Tage",
+ "365 Days": "365 Tage",
+ "30 Days": "30 Tage",
+ "364 Days": "364 Tage",
+ "Actual": "Tatsächlich",
+ "Disbursement Date": "Auszahlungsdatum",
+ "Submitted On Date": "Eingereicht am Datum",
+ "Per year": "Pro Jahr",
+ "Per month": "Pro Monat",
+ "Whole term": "Ganze Amtszeit",
+ "Same as repayment period": "Entspricht der Rückzahlungsfrist",
+ "Declining Balance": "Sinkendes Gleichgewicht",
+ "Cumulative": "Kumulativ",
+ "Progressive": "Progressiv",
+ "Penalty": "Strafe",
+ "Fees": "Gebühren",
+ "Fee": "Gebühr",
+ "Horizontal": "Horizontal",
+ "Vertical": "Vertikal",
+ "Advanced payment allocation strategy": "Erweiterte Zahlungszuweisungsstrategie",
+ "Past due penalty": "Überfällige Strafe",
+ "Past due fee": "Überfällige Gebühr",
+ "Past due principal": "Überfälliger Kapitalbetrag",
+ "Past due interest": "Überfällige Zinsen",
+ "Due penalty": "Fällige Strafe",
+ "Due fee": "Fällige Gebühr",
+ "Due principal": "Fälliger Auftraggeber",
+ "Due interest": "Geschuldete Zinsen",
+ "In advanced penalty": "Vorabstrafe",
+ "In advanced fee": "Gebühr im Voraus",
+ "In advanced principal": "Im Voraus Auftraggeber",
+ "In advanced interest": "Im Voraus Zinsen",
+ "Next installment": "Nächste Folge",
+ "Last installment": "Letzte Rate",
+ "Reamotization": "Reamotisierung",
+ "equals": "gleicht",
+ "greater than": "größer als",
+ "Equal installments": "Gleiche Raten",
+ "Equal principal payments": "Gleiche Kapitalzahlungen",
+ "Till Pre-Close Date": "Bis zum Vorschlussdatum",
+ "Till Rest Frequency Date": "Bis Ruhefrequenzdatum",
+ "Reduce EMI amount": "Betrag reduzieren",
+ "Reduce number of installments": "Reduzieren Sie die Anzahl der Raten",
+ "Reschedule next repayments": "Planen Sie die nächsten Rückzahlungen neu",
+ "None": "Hauptstadt",
+ "Interest": "Interesse",
+ "Fee and Interest": "Gebühr und Zinsen",
+ "Creocore Unique": "Creocore Einzigartig",
+ "Early Repayment Strategy": "Strategie zur vorzeitigen Rückzahlung",
+ "Penalties, Fees, Interest, Principal order": "Strafen, Gebühren, Zinsen, Hauptordnung",
+ "HeavensFamily Unique": "HeavensFamily Unique",
+ "Interest, Principal, Penalties, Fees Order": "Zins-, Kapital-, Vertragsstrafen- und Gebührenordnung",
+ "Principal, Interest, Penalties, Fees Order": "Anordnung zu Kapital, Zinsen, Vertragsstrafen und Gebühren",
+ "Overdue/Due Fee/Int,Principal": "Überfällige/fällige Gebühr/Int, Kapital",
+ "Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Fällige Vertragsstrafe, Gebühr, Zinsen, Kapital, Im Voraus fällige Vertragsstrafe, Vertragsstrafe, Gebühr, Zinsen",
+ "Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Fällige Strafe, Zinsen, Kapital, Gebühr, Vorabstrafe, Zinsen, Kapital, Gebühr",
+ "first": "Erste",
+ "second": "zweite",
+ "third": "dritte",
+ "fourth": "vier",
+ "last": "zuletzt",
+ "on day": "am Tag",
+ "SUNDAY": "SONNTAG",
+ "MONDAY": "MONTAG",
+ "TUESDAY": "DIENSTAG",
+ "WEDNESDAY": "MITTWOCH",
+ "THURSDAY": "DONNERSTAG",
+ "FRIDAY": "FREITAG",
+ "SATURDAY": "SAMSTAG",
+ "Invalid": "Ungültig"
+ },
"commons": {
"50 characters long": "50 Zeichen lang",
"8 characters long": "8 Zeichen lang",
@@ -574,6 +704,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "Konto hinzufügen",
"Add Currency Form": "Währungsformular hinzufügen",
+ "Add Client Identifier": "Client-ID hinzufügen",
"Add Journal Entry Form": "Journaleintragsformular hinzufügen",
"Add Loan Collateral": "Kreditsicherheiten hinzufügen",
"Add Role": "Rolle hinzufügen",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Startdatum des Dividendenzeitraums",
"Dividends": "Dividenden",
"Documents": "Unterlagen",
+ "Document Key": "Dokumentschlüssel",
+ "Document Type": "Art des Dokuments",
"Dormancy Tracking": "Ruheverfolgung",
"Download": "Herunterladen",
"Due": "Fällig",
@@ -2155,6 +2288,8 @@
},
"task-management component": "Aufgabenverwaltungskomponente",
"to": "Zu",
+ "Down Payments": "Anzahlungen",
+ "Enable Down Payments": "Anzahlungen aktivieren",
"valid": "gültig"
},
"links": {
@@ -2879,6 +3014,7 @@
"Journal Entries": "Journaleinträge",
"Mandatory": "Obligatorisch",
"Voluntary": "Freiwillig",
+ "Write a note": "Schreib eine Notitz",
"“Maker-Checker” principle requires every tasks": "Das „Maker-Checker“-Prinzip erfordert, dass jede Aufgabe von zwei Personen erledigt wird, um das Risiko von Fehlern und Missbrauch zu verringern. Eine Person leitet den Prozess ein und die zweite Person schließt ihn ab."
},
"titles": {
diff --git a/assets/translations/en-US.json b/assets/translations/en-US.json
index 4832a349e1..b4738595a7 100644
--- a/assets/translations/en-US.json
+++ b/assets/translations/en-US.json
@@ -514,8 +514,138 @@
"Waive Charge": "Waive Charge",
"Week": "Week",
"Withdraw": "Withdraw",
+ "View Active Charges": "View Active Charges",
+ "View Inactive Charges": "View Inactive Charges",
"Yes": "Yes"
},
+ "catalogs": {
+ "Active": "Active",
+ "Inactive": "Inactive",
+ "Loans": "Loans",
+ "Client": "Client",
+ "Loan": "Loan",
+ "Savings": "Savings",
+ "Shares": "Shares",
+ "Regular": "Regular",
+ "Account transfer": "Account transfer",
+ "Flat": "Flat",
+ "% Amount": "% Amount",
+ "% Interest": "% Interest",
+ "% Loan Amount + Interest": "% Loan Amount + Interest",
+ "Disbursement": "Disbursement",
+ "Specified due date": "Specified due date",
+ "Installment Fee": "Installment Fee",
+ "Overdue Fees": "Overdue Fees",
+ "Tranche Disbursement": "Tranche Disbursement",
+ "Savings Activation": "Savings Activation",
+ "Saving No Activity Fee": "Saving No Activity Fee",
+ "Withdrawal Fee": "Withdrawal Fee",
+ "Annual Fee": "Annual Fee",
+ "Monthly Fee": "Monthly Fee",
+ "Weekly Fee": "Weekly Fee",
+ "Share Account Activate": "Share Account Activate",
+ "Share Purchase": "Share Purchase",
+ "Share Redeem": "Share Redeem",
+ "Days": "Days",
+ "Weeks": "Weeks",
+ "Months": "Months",
+ "Years": "Years",
+ "Deposit": "Deposit",
+ "Withdrawal": "Withdrawal",
+ "Interest Posting": "Interest Posting",
+ "Waive Charge": "Waive Charge",
+ "Pay Charge": "Pay Charge",
+ "Dividend Payout": "Dividend Payout",
+ "Accrual": "Accrual",
+ "Initiate Transfer": "Initiate Transfer",
+ "Approve Transfer": "Approve Transfer",
+ "Withdraw Transfer": "Withdraw Transfer",
+ "Writtenoff": "Writtenoff",
+ "Overdraft Interest": "Overdraft Interest",
+ "Withhold Tax": "Withhold Tax",
+ "Escheat": "Escheat",
+ "On Hold": "On Hold",
+ "Release": "Release",
+ "Daily": "Daily",
+ "Monthly": "Monthly",
+ "Weekly": "Weekly",
+ "Quarterly": "Quartely",
+ "Semi-Annual": "Semi-Annual",
+ "Annually": "Annually",
+ "Daily Balance": "Daily Balance",
+ "Average Daily Balance": "Average Daily Balance",
+ "BiAnnual": "BiAnnual",
+ "360 Days": "360 Days",
+ "365 Days": "365 Days",
+ "30 Days": "30 Days",
+ "364 Days": "364 Days",
+ "Actual": "Actual",
+ "Disbursement Date": "Disbursement Date",
+ "Submitted On Date": "Submitted On Date",
+ "Per year": "Per year",
+ "Per month": "Per month",
+ "Whole term": "Whole Term",
+ "Same as repayment period": "Same as repayment period",
+ "Declining Balance": "Declining Balance",
+ "Cumulative": "Cumulative",
+ "Progressive": "Progressive",
+ "Penalty": "Penalty",
+ "Fees": "Fees",
+ "Fee": "Fee",
+ "Horizontal": "Horizontal",
+ "Vertical": "Vertical",
+ "Advanced payment allocation strategy": "Advanced payment allocation strategy",
+ "Past due penalty": "Past due penalty",
+ "Past due fee": "Past due fee",
+ "Past due principal": "Past due principal",
+ "Past due interest": "Past due interest",
+ "Due penalty": "Due penalty",
+ "Due fee": "Due fee",
+ "Due principal": "Due principal",
+ "Due interest": "Due interest",
+ "In advanced penalty": "In advanced penalty",
+ "In advanced fee": "In advanced fee",
+ "In advanced principal": "In advanced principal",
+ "In advanced interest": "In advanced interest",
+ "Next installment": "Next installment",
+ "Last installment": "Last installment",
+ "Reamotization": "Reamotization",
+ "equals": "equals",
+ "greater than": "greater than",
+ "Equal installments": "Equal installments",
+ "Equal principal payments": "Equal principal payments",
+ "Till Pre-Close Date": "Till Pre-Close Date",
+ "Till Rest Frequency Date": "Till Rest Frequency Date",
+ "Reduce EMI amount": "Reduce EMI Amount",
+ "Reduce number of installments": "Reduce number of installments",
+ "Reschedule next repayments": "Reschedule next repayments",
+ "None": "None",
+ "Interest": "Interest",
+ "Fee and Interest": "Fee and Interest",
+ "Creocore Unique": "Creocore Unique",
+ "Early Repayment Strategy": "Early Repayment Strategy",
+ "Penalties, Fees, Interest, Principal order": "Penalties, Fees, Interest, Principal order",
+ "HeavensFamily Unique": "HeavensFamily Unique",
+ "Interest, Principal, Penalties, Fees Order": "Interest, Principal, Penalties, Fees Order",
+ "Principal, Interest, Penalties, Fees Order": "Principal, Interest, Penalties, Fees Order",
+ "Overdue/Due Fee/Int,Principal": "Overdue/Due Fee/Int,Principal",
+ "Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest",
+ "Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee",
+ "first": "first",
+ "second": "second",
+ "third": "third",
+ "fourth": "four",
+ "last": "last",
+ "on day": "on day",
+ "SUNDAY": "SUNDAY",
+ "MONDAY": "MONDAY",
+ "TUESDAY": "TUESDAY",
+ "WEDNESDAY": "WEDNESDAY",
+ "THURSDAY": "THURSDAY",
+ "FRIDAY": "FRIDAY",
+ "SATURDAY": "SATURDAY",
+ "Invalid": "Invalid"
+ },
"commons": {
"50 characters long": "50 characters long",
"8 characters long": "8 characters long",
@@ -546,7 +676,7 @@
"is required": "is required",
"least one uppercase": "least one uppercase",
"lowercase and special character": "lowercase and special character",
- "must be":"must be",
+ "must be": "must be",
"must be a positive integer": "must be a positive integer",
"must be an integer between -9999 and 9999": "must be an integer between -9999 and 9999",
"must be between 1 and 12": "must be between 1 and 12",
@@ -574,6 +704,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "Add Account",
"Add Currency Form": "Add Currency Form",
+ "Add Client Identifier": "Add Client Identifier",
"Add Journal Entry Form": "Add Journal Entry Form",
"Add Loan Collateral": "Add Loan Collateral",
"Add Role": "Add Role",
@@ -649,7 +780,7 @@
"Default Shares per Client": "Default Shares per Client",
"Define New Mapping": "Define New Mapping",
"Define Tax Components": "Define Tax Components",
- "Define Tax Groups": "Define Tax Groups",
+ "Define Tax Groups": "Define Tax Groups",
"Delete": "Delete",
"Delete Client Signature": "Delete Client Signature",
"Delete Checker": "Delete Checker",
@@ -988,7 +1119,7 @@
"Amount Recieved/Returned": "Amount Received/Returned",
"Amount to be Reserved": "Amount to be Reserved",
"Annual Fees Transaction Date": "Annual Fees Transaction Date",
- "Applies To":"Applies To",
+ "Applies To": "Applies To",
"Applicable From Date": "Applicable From Date",
"Applicant": "Applicant",
"Application Date": "Application Date",
@@ -1058,7 +1189,7 @@
"Cashier/Staff": "Cashier/Staff",
"Category": "Category",
"Category Name": "Category Name",
- "Calculation":"Calculation",
+ "Calculation": "Calculation",
"Center Name": "Center Name",
"Change Repayment Date": "Change Repayment Date",
"Changes Affection Date": "Changes Affection Date",
@@ -1264,6 +1395,8 @@
"Dividend Period Start Date": "Dividend Period Start Date",
"Dividends": "Dividends",
"Documents": "Documents",
+ "Document Key": "Document Key",
+ "Document Type": "Document Type",
"Dormancy Tracking": "Dormancy Tracking",
"Download": "Download",
"Due": "Due",
@@ -1874,7 +2007,7 @@
"Repeats On (M/d)": "Repeats On (M/d)",
"Repeats on Day": "Repeats on Day",
"Repeats?": "Repeats?",
- "Repeat Every":"Repeat Every",
+ "Repeat Every": "Repeat Every",
"Repetition Frequency": "Repetition Frequency",
"Repetition Interval": "Repetition Interval",
"Report Category": "Report Category",
@@ -2014,7 +2147,7 @@
"Theme": "Theme",
"Theme and Font": "Theme and Font",
"Thursday": "Thursday",
- "Time":"Time",
+ "Time": "Time",
"To": "To",
"To Account": "To Account",
"To Account Type": "To Account Type",
@@ -2154,6 +2287,8 @@
},
"task-management component": "task-management component",
"to": "to",
+ "Down Payments": "Down Payments",
+ "Enable Down Payments": "Enable Down Payments",
"valid": "valid"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "Journal Entries",
"Mandatory": "Mandatory",
"Voluntary": "Voluntary",
+ "Write a note": "Write a note",
"“Maker-Checker” principle requires every tasks": "The “Maker-Checker” principle requires every tasks to be completed by two people to reduce the chance of errors and misuse. One person initiates the process and the second completes it."
},
"titles": {
@@ -3078,4 +3214,4 @@
"loan product will be active and available to clients": "The date that the loan product will be active and available to clients. If blank, the loan product will be active as soon as it is created.",
"loan product will become inactive and unavailable to clients": "The date that the loan product will become inactive and unavailable to clients. If blank, the load product will never become inactive."
}
-}
+}
\ No newline at end of file
diff --git a/assets/translations/es-MX.json b/assets/translations/es-MX.json
index 95b671c992..ea0cc91a29 100644
--- a/assets/translations/es-MX.json
+++ b/assets/translations/es-MX.json
@@ -27,7 +27,7 @@
"validation.msg.charge.chargeAppliesTo.cannot.be.blank": "El cargo se aplica a no puede estar en blanco.",
"validation.msg.charge.chargeCalculationType.cannot.be.blank": "El cálculo del cargo no puede estar en blanco.",
"validation.msg.charge.chargeCalculationType.is.not.one.of.expected.enumerations": "La opción de tipo de cálculo de cargo seleccionada no es válida.",
- "validation.msg.charge.chargePaymentMode.cannot.be.blank": "El modo de pago del cargo no puede estar en blanco.",
+ "validation.msg.charge.chargePaymentMode.cannot.be.blank": "La forma de pago del cargo no puede estar en blanco.",
"validation.msg.charge.chargeTimeType.cannot.be.blank": "El tiempo de comisión no puede estar en blanco.",
"validation.msg.charge.chargeTimeType.is.not.within.expected.range": "La opción de tiempo de comisión seleccionada no es válida.",
"validation.msg.charge.currencyCode.cannot.be.blank": "El código de moneda no puede estar en blanco.",
@@ -329,7 +329,7 @@
"Bulk JLG Loan Application": "Solicitud de Crédito JLG a granel",
"Buy Back Loan": "Crédito de recompra",
"Cancel": "Cancelar",
- "Cancel Sell Loan": "Cancelar préstamo de venta",
+ "Cancel Sell Loan": "Cancelar venta de Crédito",
"Capture": "Captura",
"Centers Saving Application": "Solicitud de Ahorro de Centros",
"Change Password": "Cambiar la contraseña",
@@ -468,7 +468,7 @@
"Run Periodic Accruals": "Ejecutar acumulaciones periódicas",
"Run Report": "Sacar un reporte",
"Run Selected Jobs": "Ejecutar procesos seleccionados",
- "Sell Loan": "Vender préstamo",
+ "Sell Loan": "Vender el Crédito",
"Save Changes": "Guardar cambios",
"Search": "Buscar",
"Search Instructions": "Instrucciones de búsqueda",
@@ -514,8 +514,138 @@
"Waive Charge": "Renunciar a Comisión",
"Week": "Semana",
"Withdraw": "Retirar",
+ "View Active Charges": "Ver Comisiones Activas",
+ "View Inactive Charges": "Ver Comisiones inactivas",
"Yes": "Sí"
},
+ "catalogs": {
+ "Active": "Activo",
+ "Inactive": "Inactivo",
+ "Loans": "Préstamos",
+ "Client": "Cliente",
+ "Loan": "Crédito",
+ "Savings": "Ahorros",
+ "Shares": "Acciones",
+ "Regular": "Regular",
+ "Account transfer": "Transferencia de cuenta",
+ "Flat": "Monto fijo",
+ "% Amount": "% Monto del Crédito",
+ "% Interest": "% Interés",
+ "% Loan Amount + Interest": "Monto del Crédito + Interés",
+ "Disbursement": "Desembolso",
+ "Specified due date": "Fecha de Vencimiento",
+ "Installment Fee": "Cuota de pago",
+ "Overdue Fees": "Cuotas vencidas",
+ "Tranche Disbursement": "Multiple Desembolso",
+ "Savings Activation": "Activación de Cuenta",
+ "Saving No Activity Fee": "Ahorro sin Actividad",
+ "Withdrawal Fee": "Comisión por retiro",
+ "Annual Fee": "Comisión anual",
+ "Monthly Fee": "Comisión mensual",
+ "Weekly Fee": "Comisión semanal",
+ "Share Account Activate": "Activación de Cuenta",
+ "Share Purchase": "Compra de acciones",
+ "Share Redeem": "Canjear Acciones",
+ "Days": "Días",
+ "Weeks": "Semanas",
+ "Months": "Meses",
+ "Years": "Años",
+ "Deposit": "Depósito",
+ "Withdrawal": "Retiro",
+ "Interest Posting": "intereses",
+ "Waive Charge": "Renunciar a Comisión",
+ "Pay Charge": "Pagar Comisión",
+ "Dividend Payout": "Pago de dividendos",
+ "Accrual": "Devengo",
+ "Initiate Transfer": "Iniciar transferencia",
+ "Approve Transfer": "Aprobar transferencia",
+ "Withdraw Transfer": "Retirar transferencia",
+ "Writtenoff": "Cancelado",
+ "Overdraft Interest": "Intereses por sobregiro",
+ "Withhold Tax": "Retención impuesto",
+ "Escheat": "Privación de propiedad",
+ "On Hold": "Retener Monto",
+ "Release": "Liberar Monto",
+ "Daily": "Diario",
+ "Monthly": "Mensual",
+ "Quarterly": "Trimestral",
+ "Semi-Annual": "Semestral",
+ "Annually": "Anual",
+ "Weekly": "Semanal",
+ "Daily Balance": "Saldo Diario",
+ "Average Daily Balance": "Saldo Diario Promedio",
+ "BiAnnual": "Semestral",
+ "360 Days": "360 Días",
+ "365 Days": "365 Dias",
+ "30 Days": "30 Dias",
+ "364 Days": "364 Días",
+ "Actual": "Actual",
+ "Disbursement Date": "Fecha de Desembolso",
+ "Submitted On Date": "Fecha de Registro",
+ "Per year": "Por Año",
+ "Per month": "Por Mes",
+ "Whole term": "Plazo completo",
+ "Same as repayment period": "Igual al periodo de amortización",
+ "Declining Balance": "Saldo Decreciente",
+ "Cumulative": "Acumulativa",
+ "Progressive": "Progresiva",
+ "Penalty": "Penalización",
+ "Fees": "Comisiones",
+ "Fee": "Comisión",
+ "Horizontal": "Horizontal",
+ "Vertical": "Vertical",
+ "Advanced payment allocation strategy": "Estrategia avanzada de asignación de pagos",
+ "Past due penalty": "Penalización vencida",
+ "Past due fee": "Comisión vencida",
+ "Past due principal": "Capital vencido",
+ "Past due interest": "Interes vencido",
+ "Due penalty": "Vencimiento de Penalización",
+ "Due fee": "Vencimiento de Comisión",
+ "Due principal": "Vencimiento de Capital",
+ "Due interest": "Vencimiento de interés",
+ "In advanced penalty": "Penalización anticipada",
+ "In advanced fee": "Comisión anticipada",
+ "In advanced principal": "Capital anticipado",
+ "In advanced interest": "interés anticipado",
+ "Next installment": "Próxima cuota",
+ "Last installment": "Última cuota",
+ "Reamotization": "Reamotización",
+ "equals": "Igual a",
+ "greater than": "Mayor a",
+ "Equal installments": "Cuotas iguales",
+ "Equal principal payments": "Pagos iguales de capital",
+ "Till Pre-Close Date": "Hasta la fecha de cierre previo",
+ "Till Rest Frequency Date": "Hasta la Frecuencia Fecha",
+ "Reduce EMI amount": "Reducir Monto de Cuota",
+ "Reduce number of installments": "Reducir el número de cuotas",
+ "Reschedule next repayments": "Reprogramar próximos pagos",
+ "None": "Capital",
+ "Interest": "Interés",
+ "Fee and Interest": "Comisión e interés",
+ "Creocore Unique": "Creocore único",
+ "Early Repayment Strategy": "Estrategia de amortización anticipada",
+ "Penalties, Fees, Interest, Principal order": "Penalizaciones, Comisiones, Intereses, Capital",
+ "HeavensFamily Unique": "CielosFamilia Única",
+ "Interest, Principal, Penalties, Fees Order": "Intereses, Capital, Penalizaciones, Orden de Honorarios",
+ "Principal, Interest, Penalties, Fees Order": "Capital, Intereses, Penalizaciones y Comisiones",
+ "Overdue/Due Fee/Int,Principal": "Vencido/Comisiones vencida/int, Capital",
+ "Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Penalización vencida, Comisiones, Intereses, Capital, Capital adelantado, Penalizaciones, Comisiones, Intereses",
+ "Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Penalización vencida, Intereses, Capital, Comisiones, Penalización por adelantado, Intereses, Capital, Comisiones",
+ "first": "Primer",
+ "second": "Segundo",
+ "third": "Tercer",
+ "fourth": "Cuarto",
+ "last": "Ultimo",
+ "on day": "En el día",
+ "SUNDAY": "DOMINGO",
+ "MONDAY": "LUNES",
+ "TUESDAY": "MARTES",
+ "WEDNESDAY": "MIÉRCOLES",
+ "THURSDAY": "JUEVES",
+ "FRIDAY": "VIERNES",
+ "SATURDAY": "SÁBADO",
+ "Invalid": "Inválido"
+ },
"commons": {
"50 characters long": "50 caracteres de largo",
"8 characters long": "8 caracteres de largo",
@@ -574,6 +704,7 @@
"AdHocQuery": "Consulta ad hoc",
"Add Account": "Añadir cuenta",
"Add Currency Form": "Agregar formulario de moneda",
+ "Add Client Identifier": "Agregar identificador de cliente",
"Add Journal Entry Form": "Agregar formulario de asiento de diario",
"Add Loan Collateral": "Agregar garantía de Crédito",
"Add Role": "Agregar rol",
@@ -588,7 +719,7 @@
"And thereafter, in Multiples of": "Y posteriormente, en Múltiplos de",
"Approve Share": "Aprobar Compartir",
"Approve Checker": "Aprobar el verificador",
- "Approve Loan": "Aprobar préstamo",
+ "Approve Loan": "Aprobar Crédito",
"Assets": "Activos",
"Assets / Liability": "Activo / Pasivo",
"Audit Trails": "Pistas de auditoría",
@@ -817,7 +948,7 @@
"Release Amount": "Cantidad de liberación",
"Repaid Every": "Frecuencia de Pago",
"Report Parameter": "Parámetro de reporte",
- "Reschedule Loan": "Préstamo de reprogramación",
+ "Reschedule Loan": "Reprogramación del Crédito",
"Revert Transaction": "Revertir transacción",
"S3 Amazon External Service": "Servicio externo de Amazon S3",
"SMS": "SMS",
@@ -910,7 +1041,7 @@
"LIABILITY": "PASIVO",
"EQUITY": "PATRIMONIO",
"INCOME": "INGRESO",
- "EXPENSE": "EGRESO"
+ "EXPENSE": "EGRESO"
},
"ACCOUNTING": "CONTABILIDAD",
"ADDRESS": "DOMICILIO",
@@ -969,7 +1100,7 @@
"All": "Todo",
"Allocate Cash": "Asignar efectivo",
"Allocation": "Asignación",
- "Allow approval / disbursal above loan applied amount": "Permitir aprobación/desembolso por encima del monto aplicado del préstamo",
+ "Allow approval / disbursal above loan applied amount": "Permitir aprobación/desembolso por encima del monto aplicado del crédito",
"Allow Approved / Disbursed Amounts Over Applied": "Permitir montos aprobados/desembolsados por encima de los aplicados",
"Allow Partial Interest Calculation with same as repayment": "Permitir el cálculo de interés parcial con el mismo pago",
"Allow Withdrawals": "Permitir retiros",
@@ -1071,7 +1202,7 @@
"Charge Frequency": "Frecuencia de Comisión",
"Charge Name": "Nombre del cargo",
"Charge Payment By": "Pago de cargo por",
- "Charge Payment Mode": "Modo de pago de cargo",
+ "Charge Payment Mode": "Forma de pago de cargo",
"Charge Time": "Tiempo de Comisión",
"Charge Time Type": "Tipo de tiempo de Comisión",
"Charge Type": "Tipo de Comisión",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Fecha de inicio del período de dividendos",
"Dividends": "Dividendos",
"Documents": "Documentos",
+ "Document Key": "Clave de documento",
+ "Document Type": "Tipo de Documento",
"Dormancy Tracking": "Seguimiento de Inactivdad",
"Download": "Descargar",
"Due": "Pendiente",
@@ -1493,7 +1626,7 @@
"Is Differential": "es diferencial",
"Is Equal Amortization": "¿Amortizaciones iguales?",
"Is Floating Rate": "¿Es tasa variable?",
- "Is Floating calculation allowed?": "¿Se permite el cálculo flotante?",
+ "Is Floating calculation allowed?": "¿Se permite el cálculo flotante?",
"Is Interest Posting required on closure date": "¿Se requiere la publicación de intereses en la fecha de cierre?",
"Is Linked to floating interest rates?": "¿Está vinculado a tasas de interés flotantes?",
"Is Loan Officer": "Es oficial de Créditos",
@@ -1601,7 +1734,7 @@
"Maturity Date": "Fecha de vencimiento",
"Max Age": "Edad máxima",
"Maximum": "Máximo",
- "Maximum Charge Cap": "Tapa de carga máxima",
+ "Maximum Charge Cap": "Límite de carga máxima",
"Maturity Instructions": "Instrucciones al Vencimiento",
"Maximum Deposit Term": "Plazo máximo de depósito",
"Maximum Overdraft Amount Limit": "Límite máximo del monto de sobregiro",
@@ -1661,7 +1794,7 @@
"Nominal Annual Interest": "Tasa de Interés Nominal Anual",
"Nominal Annual Interest for Overdraft": "Tasa de Interés Nominal Anual por Sobregiro",
"Nominal Interest Rate": "Tasa de interés nominal",
- "Nominal interest rate by loan cycle": "Tasa de interés nominal por ciclo de préstamo",
+ "Nominal interest rate by loan cycle": "Tasa de interés nominal por ciclo de crédito",
"Nominal Price": "Precio nominal",
"Nominal interest rate": "Tasa de interés nominal",
"Nominal/Unit Price": "Precio nominal/unitario",
@@ -1687,7 +1820,7 @@
"Number of Groups": "Número de grupos",
"Number of Installments": "Número de cuotas",
"Number of Repayments": "Número de reembolsos",
- "Number of repayments by loan cycle": "Número de reembolsos por ciclo de préstamo",
+ "Number of repayments by loan cycle": "Número de reembolsos por ciclo de crédito",
"Number of Staff": "Numero de Empleado",
"Number of days a loan may be overdue before moving into arrears": "Número de días que un Crédito puede estar vencido antes de entrar en mora",
"Number of repayments": "Número de reembolsos",
@@ -1718,7 +1851,7 @@
"Outstanding": "Pendiente",
"Overdraft": "Sobregiro",
"Over Amount": "Monto extra",
- "Over Amount Calculation Type": "Tipo de cálculo",
+ "Over Amount Calculation Type": "Tipo de cálculo",
"Over Applied": "Sobre aplicado",
"Over Due": "Atrasado",
"Over payment liability": "Responsabilidad por sobrepago",
@@ -1759,7 +1892,7 @@
"Payment Details": "Detalles del pago",
"Payment Type": "Tipo de pago",
"Payment Type Id": "Id del tipo de pago",
- "Payment due as of": "Pago vencido a partir de",
+ "Payment due as of": "Pago vencido en",
"Payment due at": "Pago vencido en",
"Payments due on non working days": "Pagos vencidos en días no laborables",
"Penal Interest": "Interés Penal",
@@ -1778,7 +1911,7 @@
"Period To": "Período hasta",
"Period Type": "Tipo de período",
"Amount Range From": "Monto desde",
- "Amount Range To": "Monto hasta",
+ "Amount Range To": "Monto hasta",
"Person": "Persona",
"Phone Number": "Número de teléfono",
"Place Guarantee Funds On-Hold": "Poner los fondos de garantía en espera",
@@ -1800,7 +1933,7 @@
"Principal Amount": "Cantidad principal",
"Principal Due": "Principal vencido",
"Principal Grace Periods": "Períodos de gracia sobre el principal",
- "Principal by loan cycle": "Principal por ciclo de préstamo",
+ "Principal by loan cycle": "Principal por ciclo de crédito",
"Principal Outstanding": "Director Sobresaliente",
"Principal Threshold (%) for Last Instalment": "Umbral de capital (%) para la última cuota",
"Priority": "Prioridad",
@@ -1857,7 +1990,7 @@
"Remember me": "Acuérdate de mí",
"Reopened On Date": "Reabierto en la fecha",
"Repaid every": "Frecuencia de Pago",
- "Repay Every": "pagar cada",
+ "Repay Every": "Paga cada",
"Repayment Info": "Información de pago",
"Repayment Schedule": "Calendario de pagos",
"Repayment Schedule Parameters": "Parámetros del calendario de pagos",
@@ -2155,6 +2288,8 @@
},
"task-management component": "componente de gestión de tareas",
"to": "a",
+ "Down Payments": "Pago Inicial",
+ "Enable Down Payments": "Habilitar Pagos Iniciales",
"valid": "válido"
},
"links": {
@@ -2304,9 +2439,9 @@
"Are you sure you want to undo this transaction ?": "¿Estás seguro de que deseas deshacer esta transacción?",
"Are you sure you want recover from Guarantor": "¿Estás seguro de que deseas recuperar del garante?",
"Are you sure you want recover the Original Schedule": "¿Estás seguro de que deseas recuperar el Calendario Original?",
- "Are you sure you want resume the Delinquency Classification for Loan": "¿Estás seguro de que deseas reanudar la Clasificación de Morosidad para el Préstamo?",
+ "Are you sure you want resume the Delinquency Classification for Loan": "¿Estás seguro de que deseas reanudar la Clasificación de Morosidad para el Crédito?",
"Are you sure you want": "¿Estás seguro de que deseas",
- "the Loan Reschedule": "la Replanificación del Préstamo",
+ "the Loan Reschedule": "la Recanlendrización del Crédito",
"Are you sure you want undo the transaction": "¿Estás seguro de que deseas deshacer la transacción?",
"Are you sure you want undo the transaction type": "¿Estás seguro de que deseas deshacer el tipo de transacción?",
"with id": "con ID",
@@ -2316,10 +2451,10 @@
"Are you sure you want to approve checker": "¿Estás seguro de que deseas aprobar al verificador?",
"Are you sure you want to reject checker": "¿Estás seguro de que deseas rechazar al verificador?",
"Are you sure you want to delete checker": "¿Estás seguro de que deseas eliminar al verificador?",
- "Are you sure you want to Approve Loan": "¿Estás seguro de que deseas aprobar el préstamo?",
- "Are you sure you want to Disburse Loan": "¿Estás seguro de que deseas desembolsar el préstamo?",
+ "Are you sure you want to Approve Loan": "¿Estás seguro de que deseas aprobar el Crédito?",
+ "Are you sure you want to Disburse Loan": "¿Estás seguro de que deseas desembolsar el Crédito?",
"Are you sure you want to": "¿Estás seguro de que deseas",
- "the Reschedule Loan": "la Replanificación del Préstamo"
+ "the Reschedule Loan": "la Recandelarización del Crédito"
},
"text": {
"A": "A",
@@ -2880,6 +3015,7 @@
"Journal Entries": "Entradas de diario",
"Mandatory": "Obligatorio",
"Voluntary": "Voluntario",
+ "Write a note": "Escribe una nota",
"“Maker-Checker” principle requires every tasks": "El principio \"Maker-Checker\" requiere que dos personas completen cada tarea para reducir la posibilidad de errores y uso indebido. Una persona inicia el proceso y la segunda lo completa."
},
"titles": {
@@ -3078,4 +3214,4 @@
"loan product will be active and available to clients": "La fecha en que el producto de Crédito estará activo y disponible para los clientes. Si está en blanco, el producto de Crédito estará activo tan pronto como se cree.",
"loan product will become inactive and unavailable to clients": "La fecha en que el producto de Crédito quedará inactivo y no estará disponible para los clientes. Si está en blanco, el producto de carga nunca quedará inactivo."
}
-}
+}
\ No newline at end of file
diff --git a/assets/translations/fr-FR.json b/assets/translations/fr-FR.json
index ca1579ab2f..22b6f6b01d 100644
--- a/assets/translations/fr-FR.json
+++ b/assets/translations/fr-FR.json
@@ -514,8 +514,138 @@
"Waive Charge": "Renoncer aux frais",
"Week": "Semaine",
"Withdraw": "Retirer",
+ "View Active Charges": "Afficher les frais actifs",
+ "View Inactive Charges": "Afficher les frais inactifs",
"Yes": "Oui"
},
+ "catalogs": {
+ "Active": "Actif",
+ "Inactive": "Inactif",
+ "Loans": "Prêts",
+ "Client": "Client",
+ "Loan": "Prêt",
+ "Savings": "Des économies",
+ "Shares": "Actions",
+ "Regular": "Régulier",
+ "Account transfer": "Transfert de compte",
+ "Flat": "Plat",
+ "% Amount": "Montant",
+ "% Interest": "Intérêt",
+ "% Loan Amount + Interest": "Montant du prêt + intérêts",
+ "Disbursement": "Décaissement",
+ "Specified due date": "Date d'échéance spécifiée",
+ "Installment Fee": "Frais de versement",
+ "Overdue Fees": "Frais de retard",
+ "Tranche Disbursement": "Décaissement des tranches",
+ "Savings Activation": "Activation de l'épargne",
+ "Saving No Activity Fee": "Économiser sans frais d'activité",
+ "Withdrawal Fee": "frais de retrait",
+ "Annual Fee": "Frais annuels",
+ "Monthly Fee": "Redevance mensuelle",
+ "Weekly Fee": "Tarif hebdomadaire",
+ "Share Account Activate": "Partager le compte Activer",
+ "Share Purchase": "Achat d'actions",
+ "Share Redeem": "Partager Échanger",
+ "Days": "Jours",
+ "Weeks": "Semaines",
+ "Months": "Mois",
+ "Years": "Années",
+ "Deposit": "Dépôt",
+ "Withdrawal": "Retrait",
+ "Interest Posting": "Publication d'intérêt",
+ "Waive Charge": "Renoncer aux frais",
+ "Pay Charge": "Payer les frais",
+ "Dividend Payout": "Paiement de dividendes",
+ "Accrual": "Accumulation",
+ "Initiate Transfer": "Initier le transfert",
+ "Approve Transfer": "Approuver le transfert",
+ "Withdraw Transfer": "Retirer le transfert",
+ "Writtenoff": "Radiation",
+ "Overdraft Interest": "Intérêts de découvert",
+ "Withhold Tax": "Retenir l'impôt",
+ "Escheat": "Escroquerie",
+ "On Hold": "En attente",
+ "Release": "Libérer",
+ "Daily": "Tous les jours",
+ "Monthly": "Mensuel",
+ "Weekly": "Hebdomadaire",
+ "Quarterly": "Trimestriel",
+ "Semi-Annual": "Semestriel",
+ "Annually": "Annuellement",
+ "Daily Balance": "Solde quotidien",
+ "Average Daily Balance": "Solde quotidien moyen",
+ "BiAnnual": "Semestriel",
+ "360 Days": "360 jours",
+ "365 Days": "365 jours",
+ "30 Days": "30 jours",
+ "364 Days": "364 jours",
+ "Actual": "Réel",
+ "Disbursement Date": "Date de décaissement",
+ "Submitted On Date": "Soumis le jour",
+ "Per year": "Par an",
+ "Per month": "Par mois",
+ "Whole term": "Durée entière",
+ "Same as repayment period": "Identique à la période de remboursement",
+ "Declining Balance": "Solde dégressif",
+ "Cumulative": "Cumulatif",
+ "Progressive": "Progressive",
+ "Penalty": "Peine",
+ "Fees": "Frais",
+ "Fee": "Frais",
+ "Horizontal": "Horizontal",
+ "Vertical": "Verticale",
+ "Advanced payment allocation strategy": "Stratégie avancée d’allocation des paiements",
+ "Past due penalty": "Pénalité pour retard de paiement",
+ "Past due fee": "Frais en souffrance",
+ "Past due principal": "Principal en souffrance",
+ "Past due interest": "Intérêts en souffrance",
+ "Due penalty": "Pénalité due",
+ "Due fee": "Frais dus",
+ "Due principal": "Principal dû",
+ "Due interest": "Intérêts dus",
+ "In advanced penalty": "Pénalité anticipée",
+ "In advanced fee": "Frais d'avance",
+ "In advanced principal": "À l'avance, le principal",
+ "In advanced interest": "Intérêts d'avance",
+ "Next installment": "Prochain versement",
+ "Last installment": "Dernier versement",
+ "Reamotization": "Réamotisation",
+ "equals": "équivaut à",
+ "greater than": "plus grand que",
+ "Equal installments": "Versements égaux",
+ "Equal principal payments": "Paiements du principal égaux",
+ "Till Pre-Close Date": "Jusqu'à la date de pré-clôture",
+ "Till Rest Frequency Date": "Jusqu'à la date de fréquence de repos",
+ "Reduce EMI amount": "Réduire le montant",
+ "Reduce number of installments": "Réduire le nombre de versements",
+ "Reschedule next repayments": "Reprogrammer les prochains remboursements",
+ "None": "Capital",
+ "Interest": "Intérêt",
+ "Fee and Interest": "Frais et intérêts",
+ "Creocore Unique": "Créocore Unique",
+ "Early Repayment Strategy": "Stratégie de remboursement anticipé",
+ "Penalties, Fees, Interest, Principal order": "Pénalités, frais, intérêts, ordonnance principale",
+ "HeavensFamily Unique": "HeavensFamille Unique",
+ "Interest, Principal, Penalties, Fees Order": "Ordonnance sur les intérêts, le capital, les pénalités et les frais",
+ "Principal, Interest, Penalties, Fees Order": "Ordonnance sur le capital, les intérêts, les pénalités et les frais",
+ "Overdue/Due Fee/Int,Principal": "Frais de retard/dû/Int, principal",
+ "Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Pénalité due, frais, intérêts, principal, Principal à l'avance, pénalité, frais, intérêts",
+ "Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Pénalité due, intérêts, principal, frais, Pénalité d'avance, intérêts, principal, frais",
+ "first": "d'abord",
+ "second": "deuxième",
+ "third": "troisième",
+ "fourth": "quatre",
+ "last": "dernier",
+ "on day": "le jour",
+ "SUNDAY": "DIMANCHE",
+ "MONDAY": "LUNDI",
+ "TUESDAY": "MARDI",
+ "WEDNESDAY": "MERCREDI",
+ "THURSDAY": "JEUDI",
+ "FRIDAY": "VENDREDI",
+ "SATURDAY": "SAMEDI",
+ "Invalid": "Invalide"
+ },
"commons": {
"50 characters long": "50 caractères",
"8 characters long": "8 caractères",
@@ -574,6 +704,7 @@
"AdHocQuery": "Requête ad hoc",
"Add Account": "Ajouter un compte",
"Add Currency Form": "Ajouter un formulaire de devise",
+ "Add Client Identifier": "Ajouter un identifiant client",
"Add Journal Entry Form": "Ajouter un formulaire d'écriture de journal",
"Add Loan Collateral": "Ajouter une garantie de prêt",
"Add Role": "Ajouter un rôle",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Date de début de la période de dividende",
"Dividends": "Dividendes",
"Documents": "Documents",
+ "Document Key": "Clé du document",
+ "Document Type": "Type de document",
"Dormancy Tracking": "Suivi de la dormance",
"Download": "Télécharger",
"Due": "Exigible",
@@ -2155,6 +2288,8 @@
},
"task-management component": "composant de gestion des tâches",
"to": "à",
+ "Down Payments": "Acomptes",
+ "Enable Down Payments": "Activer les acomptes",
"valid": "valide"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "{titre : Entrées de journal",
"Mandatory": "Obligatoire",
"Voluntary": "Volontaire",
+ "Write a note": "Écrire une note",
"“Maker-Checker” principle requires every tasks": "Le principe « Maker-Checker » exige que chaque tâche soit effectuée par deux personnes afin de réduire les risques d'erreurs et de mauvaise utilisation. Une personne lance le processus et la seconde le termine."
},
"titles": {
diff --git a/assets/translations/it-IT.json b/assets/translations/it-IT.json
index 0e70b7856a..a0f859321a 100644
--- a/assets/translations/it-IT.json
+++ b/assets/translations/it-IT.json
@@ -514,8 +514,138 @@
"Waive Charge": "Rinuncia all'addebito",
"Week": "Settimana",
"Withdraw": "Ritirare",
+ "View Active Charges": "Visualizza gli addebiti attivi",
+ "View Inactive Charges": "Visualizza addebiti inattivi",
"Yes": "SÌ"
},
+ "catalogs": {
+ "Active": "Attivo",
+ "Inactive": "Inattivo",
+ "Loans": "Prestiti",
+ "Client": "Cliente",
+ "Loan": "Prestito",
+ "Savings": "Risparmio",
+ "Shares": "Azioni",
+ "Regular": "Regolare",
+ "Account transfer": "Trasferimento del conto",
+ "Flat": "Piatto",
+ "% Amount": "Quantità",
+ "% Interest": "Interesse",
+ "% Loan Amount + Interest": "Importo del prestito + interessi",
+ "Disbursement": "Erogazione",
+ "Specified due date": "Data di scadenza specificata",
+ "Installment Fee": "Commissione di rata",
+ "Overdue Fees": "Commissioni scadute",
+ "Tranche Disbursement": "Erogazione della tranche",
+ "Savings Activation": "Attivazione del risparmio",
+ "Saving No Activity Fee": "Risparmio senza costi di attività",
+ "Withdrawal Fee": "Commissione di prelievo",
+ "Annual Fee": "Tassa annuale",
+ "Monthly Fee": "Canone mensile",
+ "Weekly Fee": "Tariffa settimanale",
+ "Share Account Activate": "Condividi l'attivazione dell'account",
+ "Share Purchase": "Condividi l'acquisto",
+ "Share Redeem": "Condividi Riscatta",
+ "Days": "Giorni",
+ "Weeks": "Settimane",
+ "Months": "Mesi",
+ "Years": "Anni",
+ "Deposit": "Depositare",
+ "Withdrawal": "Ritiro",
+ "Interest Posting": "Pubblicazione di interessi",
+ "Waive Charge": "Rinuncia all'addebito",
+ "Pay Charge": "Pagare la tassa",
+ "Dividend Payout": "Pagamento dei dividendi",
+ "Accrual": "Maturazione",
+ "Initiate Transfer": "Avvia trasferimento",
+ "Approve Transfer": "Approva il trasferimento",
+ "Withdraw Transfer": "Preleva trasferimento",
+ "Writtenoff": "Cancellati",
+ "Overdraft Interest": "Interesse sullo scoperto",
+ "Withhold Tax": "Trattenuta fiscale",
+ "Escheat": "Incameramento",
+ "On Hold": "In attesa",
+ "Release": "Pubblicazione",
+ "Daily": "Quotidiano",
+ "Monthly": "Mensile",
+ "Quarterly": "Trimestrale",
+ "Semi-Annual": "Semiannuale",
+ "Annually": "Annualmente",
+ "Weekly": "settimanalmente",
+ "Daily Balance": "Saldo giornaliero",
+ "Average Daily Balance": "Saldo medio giornaliero",
+ "BiAnnual": "Semestrale",
+ "360 Days": "360 giorni",
+ "365 Days": "365 giorni",
+ "30 Days": "30 giorni",
+ "364 Days": "364 giorni",
+ "Actual": "Effettivo",
+ "Disbursement Date": "Data di erogazione",
+ "Submitted On Date": "Inserito in data",
+ "Per year": "Per anno",
+ "Per month": "Al mese",
+ "Whole term": "Intero termine",
+ "Same as repayment period": "Uguale al periodo di rimborso",
+ "Declining Balance": "Equilibrio in declino",
+ "Cumulative": "Cumulativo",
+ "Progressive": "Progressivo",
+ "Penalty": "Pena",
+ "Fees": "Commissioni",
+ "Fee": "Tassa",
+ "Horizontal": "Orizzontale",
+ "Vertical": "Verticale",
+ "Advanced payment allocation strategy": "Strategia avanzata di allocazione dei pagamenti",
+ "Past due penalty": "Penalità scaduta",
+ "Past due fee": "Commissione scaduta",
+ "Past due principal": "Capitale scaduto",
+ "Past due interest": "Interessi scaduti",
+ "Due penalty": "Penalità dovuta",
+ "Due fee": "Tariffa dovuta",
+ "Due principal": "Principale dovuto",
+ "Due interest": "Interessi dovuti",
+ "In advanced penalty": "Pena anticipata",
+ "In advanced fee": "Pagamento anticipato",
+ "In advanced principal": "In anticipo principale",
+ "In advanced interest": "Interessi anticipati",
+ "Next installment": "Prossima puntata",
+ "Last installment": "Ultima puntata",
+ "Reamotization": "Riamotizzazione",
+ "equals": "equivale",
+ "greater than": "più grande di",
+ "Equal installments": "Rate uguali",
+ "Equal principal payments": "Parità di capitale",
+ "Till Pre-Close Date": "Fino alla data di pre-chiusura",
+ "Till Rest Frequency Date": "Fino alla data di frequenza del riposo",
+ "Reduce EMI amount": "Ridurre l'importo",
+ "Reduce number of installments": "Ridurre il numero di rate",
+ "Reschedule next repayments": "Riprogrammare i prossimi rimborsi",
+ "None": "Capitale",
+ "Interest": "Interesse",
+ "Fee and Interest": "Commissione e interessi",
+ "Creocore Unique": "Creocore unico",
+ "Early Repayment Strategy": "Strategia di rimborso anticipato",
+ "Penalties, Fees, Interest, Principal order": "Sanzioni, commissioni, interessi, ordine principale",
+ "HeavensFamily Unique": "HeavensFamily unica",
+ "Interest, Principal, Penalties, Fees Order": "Interessi, capitale, sanzioni, ordine delle commissioni",
+ "Principal, Interest, Penalties, Fees Order": "Capitale, interessi, sanzioni, ordine delle commissioni",
+ "Overdue/Due Fee/Int,Principal": "Commissione scaduta/scaduta/Int",
+ "Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Pena, commissione, interesse, capitale dovuta, Capitale anticipato, penale, commissione, interesse",
+ "Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Penale dovuta, interessi, capitale, commissione, Penale anticipata, interessi, capitale, commissione",
+ "first": "Primo",
+ "second": "secondo",
+ "third": "terzo",
+ "fourth": "quattro",
+ "last": "scorso",
+ "on day": "Nel giorno",
+ "SUNDAY": "DOMENICA",
+ "MONDAY": "LUNEDI",
+ "TUESDAY": "MARTEDÌ",
+ "WEDNESDAY": "MERCOLEDÌ",
+ "THURSDAY": "GIOVEDÌ",
+ "FRIDAY": "VENERDÌ",
+ "SATURDAY": "SABATO",
+ "Invalid": "Non valido"
+ },
"commons": {
"50 characters long": "50 caratteri di lunghezza",
"8 characters long": "8 caratteri di lunghezza",
@@ -574,6 +704,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "Aggiungi account",
"Add Currency Form": "Modulo Aggiungi valuta",
+ "Add Client Identifier": "Aggiungi identificatore cliente",
"Add Journal Entry Form": "Aggiungi modulo di iscrizione al diario",
"Add Loan Collateral": "Aggiungi garanzia collaterale al prestito",
"Add Role": "Aggiungi ruolo",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Data di inizio del periodo di dividendo",
"Dividends": "Dividendi",
"Documents": "Documenti",
+ "Document Key": "Chiave del documento",
+ "Document Type": "tipo di documento",
"Dormancy Tracking": "Monitoraggio della dormienza",
"Download": "Scaricamento",
"Due": "Dovuto",
@@ -2155,6 +2288,8 @@
},
"task-management component": "componente di gestione delle attività",
"to": "A",
+ "Down Payments": "Acconti",
+ "Enable Down Payments": "Abilita acconti",
"valid": "valido"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "{titolo: Voci di diario",
"Mandatory": "Obbligatorio",
"Voluntary": "Volontario",
+ "Write a note": "Scrivi una nota",
"“Maker-Checker” principle requires every tasks": "Il principio “Maker-Checker” richiede che ogni attività venga completata da due persone per ridurre la possibilità di errori e usi impropri. Una persona avvia il processo e la seconda lo completa."
},
"titles": {
diff --git a/assets/translations/ko-KO.json b/assets/translations/ko-KO.json
index be0f568d38..d91d7a37b4 100644
--- a/assets/translations/ko-KO.json
+++ b/assets/translations/ko-KO.json
@@ -514,8 +514,138 @@
"Waive Charge": "요금 면제",
"Week": "주",
"Withdraw": "철회하다",
+ "View Active Charges": "활성 요금 보기",
+ "View Inactive Charges": "비활성 요금 보기",
"Yes": "예"
},
+ "catalogs": {
+ "Active": "활동적인",
+ "Inactive": "비활성",
+ "Loans": "대출",
+ "Client": "고객",
+ "Loan": "대출",
+ "Savings": "저금",
+ "Shares": "주식",
+ "Regular": "정기적인",
+ "Account transfer": "계좌이체",
+ "Flat": "평평한",
+ "% Amount": "양",
+ "% Interest": "관심",
+ "% Loan Amount + Interest": "대출금액 + 이자",
+ "Disbursement": "지불",
+ "Specified due date": "지정된 마감일",
+ "Installment Fee": "할부 수수료",
+ "Overdue Fees": "연체 수수료",
+ "Tranche Disbursement": "트랜치 지급",
+ "Savings Activation": "저축 활성화",
+ "Saving No Activity Fee": "활동비 절약",
+ "Withdrawal Fee": "인출 수수료",
+ "Annual Fee": "연회비",
+ "Monthly Fee": "월 사용료",
+ "Weekly Fee": "주간 비용",
+ "Share Account Activate": "공유 계정 활성화",
+ "Share Purchase": "공유 구매",
+ "Share Redeem": "공유 교환",
+ "Days": "날",
+ "Weeks": "주",
+ "Months": "개월",
+ "Years": "연령",
+ "Deposit": "보증금",
+ "Withdrawal": "철수",
+ "Interest Posting": "관심 게시",
+ "Waive Charge": "요금 면제",
+ "Pay Charge": "요금 지불",
+ "Dividend Payout": "배당금 지급",
+ "Accrual": "발생",
+ "Initiate Transfer": "송금 시작",
+ "Approve Transfer": "이전 승인",
+ "Withdraw Transfer": "이체철회",
+ "Writtenoff": "상각",
+ "Overdraft Interest": "초과인월 이자",
+ "Withhold Tax": "원천징수세",
+ "Escheat": "복귀",
+ "On Hold": "보류 중",
+ "Release": "풀어 주다",
+ "Daily": "일일",
+ "Monthly": "월간 간행물",
+ "Quarterly": "분기별",
+ "Semi-Annual": "반년마다",
+ "Annually": "매년",
+ "Weekly": "주간",
+ "Daily Balance": "일일 잔액",
+ "Average Daily Balance": "평균 일일 잔액",
+ "BiAnnual": "격년",
+ "360 Days": "360일",
+ "365 Days": "365일",
+ "30 Days": "30 일",
+ "364 Days": "364일",
+ "Actual": "실제",
+ "Disbursement Date": "지급일",
+ "Submitted On Date": "제출 날짜",
+ "Per year": "연간",
+ "Per month": "달마다",
+ "Whole term": "전체 기간",
+ "Same as repayment period": "상환기간과 동일",
+ "Declining Balance": "체감 잔액",
+ "Cumulative": "누적",
+ "Progressive": "프로그레시브",
+ "Penalty": "패널티",
+ "Fees": "수수료",
+ "Fee": "요금",
+ "Horizontal": "수평의",
+ "Vertical": "수직의",
+ "Advanced payment allocation strategy": "고급 지불 할당 전략",
+ "Past due penalty": "연체 벌금",
+ "Past due fee": "연체 수수료",
+ "Past due principal": "연체된 교장",
+ "Past due interest": "연체이자",
+ "Due penalty": "정당한 처벌",
+ "Due fee": "납부 수수료",
+ "Due principal": "교장",
+ "Due interest": "정당한 관심",
+ "In advanced penalty": "사전 패널티",
+ "In advanced fee": "선불요금",
+ "In advanced principal": "사전 교장",
+ "In advanced interest": "사전이자",
+ "Next installment": "다음 편",
+ "Last installment": "마지막 할부",
+ "Reamotization": "재분할화",
+ "equals": "같음",
+ "greater than": "~보다 큰",
+ "Equal installments": "균등할부",
+ "Equal principal payments": "동일 원금지급",
+ "Till Pre-Close Date": "마감 전 날짜까지",
+ "Till Rest Frequency Date": "휴식 빈도 날짜까지",
+ "Reduce EMI amount": "금액 감소",
+ "Reduce number of installments": "할부 횟수 줄이기",
+ "Reschedule next repayments": "다음 상환 일정 변경",
+ "None": "수도",
+ "Interest": "관심",
+ "Fee and Interest": "수수료 및 이자",
+ "Creocore Unique": "크레오코어 유니크",
+ "Early Repayment Strategy": "조기상환 전략",
+ "Penalties, Fees, Interest, Principal order": "위약금, 수수료, 이자, 원금 명령",
+ "HeavensFamily Unique": "HeavensFamily 고유",
+ "Interest, Principal, Penalties, Fees Order": "이자, 원금, 벌금, 수수료 순서",
+ "Principal, Interest, Penalties, Fees Order": "원금, 이자, 벌금, 수수료 순서",
+ "Overdue/Due Fee/Int,Principal": "연체/연체 수수료/내부, 원금",
+ "Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "위약금, 수수료, 이자, 원금, 선불원금, 위약금, 수수료, 이자",
+ "Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "위약금, 이자, 원금, 수수료, 선납 위약금, 이자, 원금, 수수료",
+ "first": "첫 번째",
+ "second": "두번째",
+ "third": "제삼",
+ "fourth": "네",
+ "last": "마지막",
+ "on day": "낮에",
+ "SUNDAY": "일요일",
+ "MONDAY": "월요일",
+ "TUESDAY": "화요일",
+ "WEDNESDAY": "수요일",
+ "THURSDAY": "목요일",
+ "FRIDAY": "금요일",
+ "SATURDAY": "토요일",
+ "Invalid": "유효하지 않은"
+ },
"commons": {
"50 characters long": "50자(영문 기준)",
"8 characters long": "8자 길이",
@@ -574,6 +704,7 @@
"AdHocQuery": "임시 쿼리",
"Add Account": "계정을 추가",
"Add Currency Form": "통화 양식 추가",
+ "Add Client Identifier": "클라이언트 식별자 추가",
"Add Journal Entry Form": "분개 양식 추가",
"Add Loan Collateral": "대출 담보 추가",
"Add Role": "역할 추가",
@@ -1266,6 +1397,8 @@
"Dividend Period Start Date": "배당기간 개시일",
"Dividends": "배당금",
"Documents": "서류",
+ "Document Key": "문서 키",
+ "Document Type": "문서 유형",
"Dormancy Tracking": "휴면 추적",
"Download": "다운로드",
"Due": "로 인한",
@@ -2156,6 +2289,8 @@
},
"task-management component": "작업 관리 구성 요소",
"to": "에게",
+ "Down Payments": "계약금",
+ "Enable Down Payments": "계약금 활성화",
"valid": "유효한"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "{제목: 저널 항목",
"Mandatory": "필수적인",
"Voluntary": "자발적인",
+ "Write a note": "메모 쓰기",
"“Maker-Checker” principle requires every tasks": "\"Maker-Checker\" 원칙은 오류와 오용 가능성을 줄이기 위해 모든 작업을 두 사람이 완료하도록 요구합니다. 한 사람이 프로세스를 시작하고 두 번째 사람이 프로세스를 완료합니다."
},
"titles": {
diff --git a/assets/translations/lt-LT.json b/assets/translations/lt-LT.json
index 9be21710f9..e328c1e5ff 100644
--- a/assets/translations/lt-LT.json
+++ b/assets/translations/lt-LT.json
@@ -514,8 +514,138 @@
"Waive Charge": "Atsisakyti mokesčio",
"Week": "Savaitė",
"Withdraw": "Atsitraukti",
+ "View Active Charges": "Peržiūrėti aktyvius mokesčius",
+ "View Inactive Charges": "Peržiūrėkite neaktyvius mokesčius",
"Yes": "Taip"
},
+ "catalogs": {
+ "Active": "Aktyvus",
+ "Inactive": "Neaktyvus",
+ "Loans": "Paskolos",
+ "Client": "Klientas",
+ "Loan": "Paskola",
+ "Savings": "Taupymas",
+ "Shares": "Akcijos",
+ "Regular": "Reguliarus",
+ "Account transfer": "Sąskaitos perkėlimas",
+ "Flat": "Butas",
+ "% Amount": "Suma",
+ "% Interest": "Palūkanos",
+ "% Loan Amount + Interest": "Paskolos suma + palūkanos",
+ "Disbursement": "Išmokėjimas",
+ "Specified due date": "Nurodytas terminas",
+ "Installment Fee": "Įmokos mokestis",
+ "Overdue Fees": "Pradelsti mokesčiai",
+ "Tranche Disbursement": "Dalies išmokėjimas",
+ "Savings Activation": "Taupymo aktyvinimas",
+ "Saving No Activity Fee": "Sutaupykite jokios veiklos mokesčio",
+ "Withdrawal Fee": "Išėmimo mokestis",
+ "Annual Fee": "Metinis mokestis",
+ "Monthly Fee": "Mėnesinis mokėstis",
+ "Weekly Fee": "Savaitinis mokestis",
+ "Share Account Activate": "Bendrinti paskyrą Aktyvuoti",
+ "Share Purchase": "Dalintis pirkiniu",
+ "Share Redeem": "Dalintis Išpirkti",
+ "Days": "Dienos",
+ "Weeks": "Savaitės",
+ "Months": "Mėnesių",
+ "Years": "Metai",
+ "Deposit": "Užstatas",
+ "Withdrawal": "Pasitraukimas",
+ "Interest Posting": "Interesų skelbimas",
+ "Waive Charge": "Atsisakyti mokesčio",
+ "Pay Charge": "Mokėti mokestį",
+ "Dividend Payout": "Dividendų išmokėjimas",
+ "Accrual": "Kaupiamasis",
+ "Initiate Transfer": "Inicijuoti perkėlimą",
+ "Approve Transfer": "Patvirtinti perkėlimą",
+ "Withdraw Transfer": "Atsiimti pervedimą",
+ "Writtenoff": "Nurašytas",
+ "Overdraft Interest": "Overdrafto palūkanos",
+ "Withhold Tax": "Išskaičiuoti mokestį",
+ "Escheat": "Escheat",
+ "On Hold": "Sulaikyta",
+ "Release": "Paleisti",
+ "Daily": "Kasdien",
+ "Monthly": "Kas mėnesį",
+ "Quarterly": "Kas ketvirtį",
+ "Semi-Annual": "Pusmetis",
+ "Annually": "Kasmet",
+ "Weekly": "Kas savaitę",
+ "Daily Balance": "Dienos balansas",
+ "Average Daily Balance": "Vidutinis dienos balansas",
+ "BiAnnual": "Kas dvejus metus",
+ "360 Days": "360 dienų",
+ "365 Days": "365 dienos",
+ "30 Days": "30 dienų",
+ "364 Days": "364 dienos",
+ "Actual": "Faktinis",
+ "Disbursement Date": "Išmokėjimo data",
+ "Submitted On Date": "Pateikta datą",
+ "Per year": "Per metus",
+ "Per month": "Per mėnesį",
+ "Whole term": "Visas terminas",
+ "Same as repayment period": "Toks pat kaip ir grąžinimo laikotarpis",
+ "Declining Balance": "Mažėjantis balansas",
+ "Cumulative": "Kaupiamasis",
+ "Progressive": "Progresyvus",
+ "Penalty": "Bauda",
+ "Fees": "Mokesčiai",
+ "Fee": "Rinkliava",
+ "Horizontal": "Horizontalus",
+ "Vertical": "Vertikalus",
+ "Advanced payment allocation strategy": "Išplėstinė mokėjimų paskirstymo strategija",
+ "Past due penalty": "Praleista bauda",
+ "Past due fee": "Mokestis už pradelstą mokestį",
+ "Past due principal": "Pradinė suma",
+ "Past due interest": "Prastos palūkanos",
+ "Due penalty": "Dera bauda",
+ "Due fee": "Mokamas mokestis",
+ "Due principal": "Mokėtas pagrindinis",
+ "Due interest": "Deramas palūkanas",
+ "In advanced penalty": "Išankstinė bauda",
+ "In advanced fee": "Išankstinis mokestis",
+ "In advanced principal": "Iš anksto pagrindinis",
+ "In advanced interest": "Iš anksto palūkanas",
+ "Next installment": "Kita įmoka",
+ "Last installment": "Paskutinė įmoka",
+ "Reamotization": "Reomatizacija",
+ "equals": "lygus",
+ "greater than": "geresnis negu",
+ "Equal installments": "Lygiomis dalimis",
+ "Equal principal payments": "Vienodos pagrindinės išmokos",
+ "Till Pre-Close Date": "Iki išankstinio uždarymo datos",
+ "Till Rest Frequency Date": "Iki poilsio dažnumo datos",
+ "Reduce EMI amount": "Sumažinti sumą",
+ "Reduce number of installments": "Sumažinti įmokų skaičių",
+ "Reschedule next repayments": "Suplanuokite kitus mokėjimus",
+ "None": "Kapitalas",
+ "Interest": "Palūkanos",
+ "Fee and Interest": "Mokestis ir palūkanos",
+ "Creocore Unique": "Creocore unikalus",
+ "Early Repayment Strategy": "Išankstinio grąžinimo strategija",
+ "Penalties, Fees, Interest, Principal order": "Baudos, mokesčiai, palūkanos, pagrindinis užsakymas",
+ "HeavensFamily Unique": "Unikali dangaus šeima",
+ "Interest, Principal, Penalties, Fees Order": "Palūkanos, pagrindinė suma, netesybos, mokesčiai",
+ "Principal, Interest, Penalties, Fees Order": "Pagrindinė suma, palūkanos, netesybos, mokesčiai",
+ "Overdue/Due Fee/Int,Principal": "Uždelstas/mokestis/Tarptautinis, pagrindinis",
+ "Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Delspinigiai, mokestis, palūkanos, pagrindinė suma, Avansinė pagrindinė suma, netesybos, mokestis, palūkanos",
+ "Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Delspinigiai, delspinigiai, pagrindinė suma, mokestis, Avansinė bauda, palūkanos, pagrindinė suma, mokestis",
+ "first": "Pirmas",
+ "second": "antra",
+ "third": "trečias",
+ "fourth": "keturi",
+ "last": "paskutinis",
+ "on day": "Dieną",
+ "SUNDAY": "SEKMADIENIS",
+ "MONDAY": "PIRMADIENIS",
+ "TUESDAY": "ANTRADIENIS",
+ "WEDNESDAY": "TREČIADIENIS",
+ "THURSDAY": "KETVIRTADIENIS",
+ "FRIDAY": "PENKTADIENIS",
+ "SATURDAY": "ŠEŠTADIENIS",
+ "Invalid": "Neteisinga"
+ },
"commons": {
"50 characters long": "50 simbolių ilgio",
"8 characters long": "8 simbolių ilgio",
@@ -574,6 +704,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "Pridėti paskyrą",
"Add Currency Form": "Pridėti valiutos formą",
+ "Add Client Identifier": "Pridėti kliento identifikatorių",
"Add Journal Entry Form": "Pridėti žurnalo įrašo formą",
"Add Loan Collateral": "Pridėti paskolos užstatą",
"Add Role": "Pridėti vaidmenį",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Dividendų laikotarpio pradžios data",
"Dividends": "Dividendai",
"Documents": "Dokumentai",
+ "Document Key": "Dokumento raktas",
+ "Document Type": "dokumento tipas",
"Dormancy Tracking": "Ramybės stebėjimas",
"Download": "parsisiųsti",
"Due": "Dėl",
@@ -2155,6 +2288,8 @@
},
"task-management component": "užduočių valdymo komponentas",
"to": "į",
+ "Down Payments": "Pradiniai mokėjimai",
+ "Enable Down Payments": "Įgalinti pradinius mokėjimus",
"valid": "galioja"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "{pavadinimas: žurnalo įrašai",
"Mandatory": "Privaloma",
"Voluntary": "Savanoriškas",
+ "Write a note": "Parašykite pastabą",
"“Maker-Checker” principle requires every tasks": "„Maker-Checker“ principas reikalauja, kad kiekvieną užduotį atliktų du žmonės, kad būtų sumažinta klaidų ir netinkamo naudojimo galimybė. Vienas asmuo pradeda procesą, o antrasis jį užbaigia."
},
"titles": {
diff --git a/assets/translations/lv-LV.json b/assets/translations/lv-LV.json
index d2e7c22d6c..d7dea0ab1a 100644
--- a/assets/translations/lv-LV.json
+++ b/assets/translations/lv-LV.json
@@ -514,8 +514,138 @@
"Waive Charge": "Atteikties no maksas",
"Week": "nedēļa",
"Withdraw": "Izņemt",
+ "View Active Charges": "Skatīt aktīvās maksas",
+ "View Inactive Charges": "Skatīt neaktīvās maksas",
"Yes": "Jā"
},
+ "catalogs": {
+ "Active": "Aktīvs",
+ "Inactive": "Neaktīvs",
+ "Loans": "Aizdevumi",
+ "Client": "Klients",
+ "Loan": "Aizdevums",
+ "Savings": "Ietaupījumi",
+ "Shares": "Akcijas",
+ "Regular": "Regulāri",
+ "Account transfer": "Konta pārskaitījums",
+ "Flat": "Plakans",
+ "% Amount": "Summa",
+ "% Interest": "Interese",
+ "% Loan Amount + Interest": "Aizdevuma summa + procenti",
+ "Disbursement": "Izmaksa",
+ "Specified due date": "Norādīts izpildes datums",
+ "Installment Fee": "Nomaksas maksa",
+ "Overdue Fees": "Nokavējuma maksas",
+ "Tranche Disbursement": "Daļas izmaksa",
+ "Savings Activation": "Uzkrājumu aktivizēšana",
+ "Saving No Activity Fee": "Ietaupot bezdarbības maksu",
+ "Withdrawal Fee": "Izņemšanas maksa",
+ "Annual Fee": "Gada maksa",
+ "Monthly Fee": "Mēneša maksa",
+ "Weekly Fee": "Iknedēļas maksa",
+ "Share Account Activate": "Kopīgot kontu Aktivizēt",
+ "Share Purchase": "Akciju pirkums",
+ "Share Redeem": "Kopīgot Izpirkt",
+ "Days": "Dienas",
+ "Weeks": "Nedēļas",
+ "Months": "Mēneši",
+ "Years": "Gadiem",
+ "Deposit": "Depozīts",
+ "Withdrawal": "Izņemšana",
+ "Interest Posting": "Interešu publicēšana",
+ "Waive Charge": "Atteikties no maksas",
+ "Pay Charge": "Maksājiet maksu",
+ "Dividend Payout": "Dividenžu izmaksa",
+ "Accrual": "Uzkrāšana",
+ "Initiate Transfer": "Sāciet pārsūtīšanu",
+ "Approve Transfer": "Apstiprināt pārsūtīšanu",
+ "Withdraw Transfer": "Izņemt pārskaitījumu",
+ "Writtenoff": "Norakstīti",
+ "Overdraft Interest": "Overdrafta procenti",
+ "Withhold Tax": "Ieturējuma nodoklis",
+ "Escheat": "Escheat",
+ "On Hold": "Aizturēts",
+ "Release": "Atbrīvot",
+ "Daily": "Ikdienas",
+ "Monthly": "Ikmēneša",
+ "Quarterly": "Ceturkšņa",
+ "Semi-Annual": "Pusgada",
+ "Annually": "Ik gadu",
+ "Weekly": "Iknedēļas",
+ "Daily Balance": "Dienas bilance",
+ "Average Daily Balance": "Vidējais dienas atlikums",
+ "BiAnnual": "Divreiz gadā",
+ "360 Days": "360 dienas",
+ "365 Days": "365 dienas",
+ "30 Days": "30 dienas",
+ "364 Days": "364 dienas",
+ "Actual": "Faktiskais",
+ "Disbursement Date": "Izmaksas datums",
+ "Submitted On Date": "Iesniegts datumā",
+ "Per year": "Gadā",
+ "Per month": "Mēnesī",
+ "Whole term": "Viss termiņš",
+ "Same as repayment period": "Tāds pats kā atmaksas termiņš",
+ "Declining Balance": "Bilances samazināšanās",
+ "Cumulative": "Kumulatīvs",
+ "Progressive": "Progresīvs",
+ "Penalty": "Sods",
+ "Fees": "Maksas",
+ "Fee": "Maksa",
+ "Horizontal": "Horizontāli",
+ "Vertical": "Vertikāli",
+ "Advanced payment allocation strategy": "Uzlabota maksājumu sadales stratēģija",
+ "Past due penalty": "Nokavēts sods",
+ "Past due fee": "Nokavējuma nauda",
+ "Past due principal": "Nokavētais pamatsumma",
+ "Past due interest": "Nokavēti procenti",
+ "Due penalty": "Pienācīgs sods",
+ "Due fee": "Maksājamā maksa",
+ "Due principal": "Maksājamais pamatsumma",
+ "Due interest": "Pienācīgi procenti",
+ "In advanced penalty": "Priekšsods",
+ "In advanced fee": "Iepriekš samaksā",
+ "In advanced principal": "Avansā galvenais",
+ "In advanced interest": "Iepriekš procentos",
+ "Next installment": "Nākamā iemaksa",
+ "Last installment": "Pēdējā iemaksa",
+ "Reamotization": "Reomatizācija",
+ "equals": "vienāds",
+ "greater than": "lielāks nekā",
+ "Equal installments": "Vienādas iemaksas",
+ "Equal principal payments": "Vienlīdzīgi pamatsummas maksājumi",
+ "Till Pre-Close Date": "Līdz pirmsslēgšanas datumam",
+ "Till Rest Frequency Date": "Līdz atpūtas biežuma datumam",
+ "Reduce EMI amount": "Samazināt summu",
+ "Reduce number of installments": "Samaziniet iemaksu skaitu",
+ "Reschedule next repayments": "Pārplānojiet nākamos maksājumus",
+ "None": "Kapitāls",
+ "Interest": "Interese",
+ "Fee and Interest": "Maksa un procenti",
+ "Creocore Unique": "Creocore unikāls",
+ "Early Repayment Strategy": "Pirmstermiņa atmaksas stratēģija",
+ "Penalties, Fees, Interest, Principal order": "Sodi, nodevas, procenti, pamatpasūtījums",
+ "HeavensFamily Unique": "HeavensFamily unikāls",
+ "Interest, Principal, Penalties, Fees Order": "Procenti, pamatsumma, līgumsodi, maksas rīkojums",
+ "Principal, Interest, Penalties, Fees Order": "Pamatsumma, procenti, līgumsodi, maksas rīkojums",
+ "Overdue/Due Fee/Int,Principal": "Nokavējums/Maksa/Int, Principal",
+ "Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Maksājamais līgumsods, nodeva, procenti, pamatsumma, Avansa pamatsumma, līgumsods, maksa, procenti",
+ "Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Maksājamais līgumsods, procenti, pamatsumma, maksa, avansa līgumsods, procenti, pamatsumma, maksa",
+ "first": "vispirms",
+ "second": "otrais",
+ "third": "trešais",
+ "fourth": "četri",
+ "last": "Pēdējais",
+ "on day": "dienā",
+ "SUNDAY": "SVĒTDIENA",
+ "MONDAY": "PIRMDIENA",
+ "TUESDAY": "OTRDIENA",
+ "WEDNESDAY": "TREŠDIENA",
+ "THURSDAY": "CETURTDIENA",
+ "FRIDAY": "PIEKTDIENA",
+ "SATURDAY": "SESTDIENA",
+ "Invalid": "Nederīgs"
+ },
"commons": {
"50 characters long": "50 rakstzīmes garš",
"8 characters long": "8 rakstzīmes garš",
@@ -574,6 +704,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "Pievienot kontu",
"Add Currency Form": "Pievienot valūtas veidlapu",
+ "Add Client Identifier": "Pievienojiet klienta identifikatoru",
"Add Journal Entry Form": "Pievienojiet žurnāla ieraksta veidlapu",
"Add Loan Collateral": "Pievienojiet aizdevuma nodrošinājumu",
"Add Role": "Pievienot lomu",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Dividenžu perioda sākuma datums",
"Dividends": "Dividendes",
"Documents": "Dokumenti",
+ "Document Key": "Dokumenta atslēga",
+ "Document Type": "Dokumenta veids",
"Dormancy Tracking": "Miega stāvokļa izsekošana",
"Download": "Lejupielādēt",
"Due": "Pienākas",
@@ -2155,6 +2288,8 @@
},
"task-management component": "uzdevumu pārvaldības komponents",
"to": "uz",
+ "Down Payments": "Pirmās iemaksas",
+ "Enable Down Payments": "Iespējot pirmās iemaksas",
"valid": "derīgs"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "Žurnāla ieraksti",
"Mandatory": "Obligāts",
"Voluntary": "Brīvprātīgi",
+ "Write a note": "Uzrakstiet piezīmi",
"“Maker-Checker” principle requires every tasks": "“Maker-Checker” princips paredz, ka katrs uzdevums ir jāveic diviem cilvēkiem, lai samazinātu kļūdu un nepareizas lietošanas iespējamību. Viens cilvēks uzsāk procesu, bet otrs to pabeidz."
},
"titles": {
diff --git a/assets/translations/ne-NE.json b/assets/translations/ne-NE.json
index a29e9a2b30..bd2883c3fa 100644
--- a/assets/translations/ne-NE.json
+++ b/assets/translations/ne-NE.json
@@ -514,8 +514,138 @@
"Waive Charge": "शुल्क छुट",
"Week": "हप्ता",
"Withdraw": "निकाल्नु",
+ "View Active Charges": "सक्रिय शुल्कहरू हेर्नुहोस्",
+ "View Inactive Charges": "निष्क्रिय शुल्कहरू हेर्नुहोस्",
"Yes": "हो"
},
+ "catalogs": {
+ "Active": "सक्रिय",
+ "Inactive": "निष्क्रिय",
+ "Loans": "ऋण",
+ "Client": "ग्राहक",
+ "Loan": "ऋण",
+ "Savings": "बचत",
+ "Shares": "सेयरहरू",
+ "Regular": "नियमित",
+ "Account transfer": "खाता स्थानान्तरण",
+ "Flat": "फ्ल्याट",
+ "% Amount": "रकम",
+ "% Interest": "ब्याज",
+ "% Loan Amount + Interest": "ऋण रकम + ब्याज",
+ "Disbursement": "वितरण",
+ "Specified due date": "तोकिएको म्याद मिति",
+ "Installment Fee": "किस्ता शुल्क",
+ "Overdue Fees": "अतिदेय शुल्क",
+ "Tranche Disbursement": "किस्ता वितरण",
+ "Savings Activation": "बचत सक्रियता",
+ "Saving No Activity Fee": "कुनै गतिविधि शुल्क बचत गर्दै",
+ "Withdrawal Fee": "निकासी शुल्क",
+ "Annual Fee": "बार्षक शुल्क",
+ "Monthly Fee": "मासिक शुल्क",
+ "Weekly Fee": "साप्ताहिक शुल्क",
+ "Share Account Activate": "साझेदारी खाता सक्रिय गर्नुहोस्",
+ "Share Purchase": "शेयर खरिद",
+ "Share Redeem": "रिडिम साझा गर्नुहोस्",
+ "Days": "दिनहरू",
+ "Weeks": "हप्ताहरू",
+ "Months": "महिनाहरू",
+ "Years": "वर्षहरू",
+ "Deposit": "जम्मा",
+ "Withdrawal": "फिर्ता",
+ "Interest Posting": "रुचि पोस्टिंग",
+ "Waive Charge": "शुल्क छुट",
+ "Pay Charge": "शुल्क तिर्नुहोस्",
+ "Dividend Payout": "लाभांश भुक्तानी",
+ "Accrual": "उपार्जन",
+ "Initiate Transfer": "स्थानान्तरण सुरु गर्नुहोस्",
+ "Approve Transfer": "स्थानान्तरण अनुमोदन गर्नुहोस्",
+ "Withdraw Transfer": "स्थानान्तरण फिर्ता लिनुहोस्",
+ "Writtenoff": "लिखित अफ",
+ "Overdraft Interest": "ओभरड्राफ्ट ब्याज",
+ "Withhold Tax": "कर रोक",
+ "Escheat": "एस्केट",
+ "On Hold": "होल्डमा छ",
+ "Release": "रिलीज",
+ "Daily": "दैनिक",
+ "Monthly": "मासिक",
+ "Quarterly": "त्रैमासिक",
+ "Semi-Annual": "अर्ध - वार्षिक",
+ "Annually": "वार्षिक रूपमा",
+ "Weekly": "साप्ताहिक",
+ "Daily Balance": "दैनिक ब्यालेन्स",
+ "Average Daily Balance": "औसत दैनिक ब्यालेन्स",
+ "BiAnnual": "द्विवार्षिक",
+ "360 Days": "३६० दिन",
+ "365 Days": "३६५ दिन",
+ "30 Days": "30 दिन",
+ "364 Days": "३६४ दिन",
+ "Actual": "वास्तविक",
+ "Disbursement Date": "वितरण मिति",
+ "Submitted On Date": "मितिमा पेश गरियो",
+ "Per year": "प्रति वर्ष",
+ "Per month": "प्रति महिना",
+ "Whole term": "सम्पूर्ण अवधि",
+ "Same as repayment period": "भुक्तानी अवधि जस्तै",
+ "Declining Balance": "घट्दो ब्यालेन्स",
+ "Cumulative": "संचयी",
+ "Progressive": "प्रगतिशील",
+ "Penalty": "जरिवाना",
+ "Fees": "शुल्क",
+ "Fee": "शुल्क",
+ "Horizontal": "तेर्सो",
+ "Vertical": "ठाडो",
+ "Advanced payment allocation strategy": "उन्नत भुक्तानी आवंटन रणनीति",
+ "Past due penalty": "विगतको कारण सजाय",
+ "Past due fee": "विगतको देय शुल्क",
+ "Past due principal": "विगतको देय प्रिन्सिपल",
+ "Past due interest": "विगतको देय ब्याज",
+ "Due penalty": "आवश्यक जरिवाना",
+ "Due fee": "देय शुल्क",
+ "Due principal": "देय प्रिन्सिपल",
+ "Due interest": "देय ब्याज",
+ "In advanced penalty": "अग्रिम जरिवाना",
+ "In advanced fee": "अग्रिम शुल्कमा",
+ "In advanced principal": "अग्रिम प्रिन्सिपल",
+ "In advanced interest": "अग्रिम ब्याजमा",
+ "Next installment": "अर्को किस्ता",
+ "Last installment": "अन्तिम किस्ता",
+ "Reamotization": "रिमोटाइजेशन",
+ "equals": "बराबर",
+ "greater than": "भन्दा ठुलो",
+ "Equal installments": "बराबर किस्ता",
+ "Equal principal payments": "समान मूल भुक्तानी",
+ "Till Pre-Close Date": "पूर्व बन्द मिति सम्म",
+ "Till Rest Frequency Date": "आराम आवृत्ति मिति सम्म",
+ "Reduce EMI amount": "रकम घटाउनुहोस्",
+ "Reduce number of installments": "किस्ताको संख्या घटाउनुहोस्",
+ "Reschedule next repayments": "अर्को भुक्तानीहरू पुन: तालिका गर्नुहोस्",
+ "None": "राजधानी",
+ "Interest": "ब्याज",
+ "Fee and Interest": "शुल्क र ब्याज",
+ "Creocore Unique": "Creocore अद्वितीय",
+ "Early Repayment Strategy": "प्रारम्भिक भुक्तानी रणनीति",
+ "Penalties, Fees, Interest, Principal order": "जरिवाना, शुल्क, ब्याज, मूल आदेश",
+ "HeavensFamily Unique": "स्वर्ग परिवार अद्वितीय",
+ "Interest, Principal, Penalties, Fees Order": "ब्याज, प्रिन्सिपल, जरिवाना, शुल्क आदेश",
+ "Principal, Interest, Penalties, Fees Order": "प्रिन्सिपल, ब्याज, दण्ड, शुल्क आदेश",
+ "Overdue/Due Fee/Int,Principal": "ओभरड्यू/देय शुल्क/Int, प्रिन्सिपल",
+ "Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "देय जरिवाना, दस्तुर, ब्याज, मुद्दल, अग्रिम मुद्दल, जरिवाना, शुल्क, ब्याज",
+ "Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "बक्यौता जरिवाना, व्याज, मुद्दल, शुल्क, अग्रिम जरिवाना, व्याज, मूल, शुल्क",
+ "first": "पहिलो",
+ "second": "दोस्रो",
+ "third": "तेस्रो",
+ "fourth": "चार",
+ "last": "अन्तिम",
+ "on day": "दिनमा",
+ "SUNDAY": "आइतबार",
+ "MONDAY": "सोमबार",
+ "TUESDAY": "मंगलबार",
+ "WEDNESDAY": "बुधवार",
+ "THURSDAY": "बिहीबार",
+ "FRIDAY": "शुक्रबार",
+ "SATURDAY": "शनिबार",
+ "Invalid": "अवैध"
+ },
"commons": {
"50 characters long": "५० वर्ण लामो",
"8 characters long": "8 वर्ण लामो",
@@ -574,6 +704,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "खाता थप्नुहोस्",
"Add Currency Form": "मुद्रा फारम थप्नुहोस्",
+ "Add Client Identifier": "ग्राहक पहिचानकर्ता थप्नुहोस्",
"Add Journal Entry Form": "जर्नल प्रविष्टि फारम थप्नुहोस्",
"Add Loan Collateral": "ऋण संपार्श्विक थप्नुहोस्",
"Add Role": "भूमिका थप्नुहोस्",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "लाभांश अवधि सुरु मिति",
"Dividends": "लाभांश",
"Documents": "कागजातहरू",
+ "Document Key": "कागजात कुञ्जी",
+ "Document Type": "कागजात प्रकार",
"Dormancy Tracking": "सुप्तता ट्र्याकिङ",
"Download": "डाउनलोड गर्नुहोस्",
"Due": "बाँकी",
@@ -2155,6 +2288,8 @@
},
"task-management component": "कार्य व्यवस्थापन घटक",
"to": "को",
+ "Down Payments": "तल भुक्तानीहरू",
+ "Enable Down Payments": "डाउन पेमेन्टहरू सक्षम गर्नुहोस्",
"valid": "मान्य"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "{शीर्षक: जर्नल प्रविष्टिहरू",
"Mandatory": "अनिवार्य",
"Voluntary": "स्वैच्छिक",
+ "Write a note": "नोट लेख्नुहोस्",
"“Maker-Checker” principle requires every tasks": "\"मेकर-चेकर\" सिद्धान्तले त्रुटि र दुरुपयोगको सम्भावना कम गर्न प्रत्येक कार्यहरू दुई व्यक्तिद्वारा पूरा गर्न आवश्यक छ। एक व्यक्तिले प्रक्रिया सुरु गर्छ र दोस्रोले यसलाई पूरा गर्दछ।"
},
"titles": {
diff --git a/assets/translations/pt-PT.json b/assets/translations/pt-PT.json
index f76dfdd93a..77be5199ec 100644
--- a/assets/translations/pt-PT.json
+++ b/assets/translations/pt-PT.json
@@ -514,8 +514,138 @@
"Waive Charge": "Isenção de cobrança",
"Week": "Semana",
"Withdraw": "Retirar",
+ "View Active Charges": "Ver cobranças ativas",
+ "View Inactive Charges": "Ver cobranças inativas",
"Yes": "Sim"
},
+ "catalogs": {
+ "Active": "Ativo",
+ "Inactive": "Inativo",
+ "Loans": "Empréstimos",
+ "Client": "Cliente",
+ "Loan": "Empréstimo",
+ "Savings": "Poupança",
+ "Shares": "Ações",
+ "Regular": "Regular",
+ "Account transfer": "Transferência de conta",
+ "Flat": "Plano",
+ "% Amount": "Quantia",
+ "% Interest": "Interesse",
+ "% Loan Amount + Interest": "Valor do empréstimo + juros",
+ "Disbursement": "Desembolso",
+ "Specified due date": "Data de vencimento especificada",
+ "Installment Fee": "Taxa de parcelamento",
+ "Overdue Fees": "Taxas vencidas",
+ "Tranche Disbursement": "Desembolso da Tranche",
+ "Savings Activation": "Ativação de poupança",
+ "Saving No Activity Fee": "Economizando sem taxa de atividade",
+ "Withdrawal Fee": "Taxa de retirada",
+ "Annual Fee": "Taxa anual",
+ "Monthly Fee": "Taxa mensal",
+ "Weekly Fee": "Taxa semanal",
+ "Share Account Activate": "Compartilhar conta ativada",
+ "Share Purchase": "Compra de ações",
+ "Share Redeem": "Compartilhar resgatar",
+ "Days": "Dias",
+ "Weeks": "Semanas",
+ "Months": "Meses",
+ "Years": "Anos",
+ "Deposit": "Depósito",
+ "Withdrawal": "Cancelamento",
+ "Interest Posting": "Postagem de interesse",
+ "Waive Charge": "Isenção de cobrança",
+ "Pay Charge": "Taxa de pagamento",
+ "Dividend Payout": "Pagamento de dividendos",
+ "Accrual": "Acumulação",
+ "Initiate Transfer": "Iniciar transferência",
+ "Approve Transfer": "Aprovar transferência",
+ "Withdraw Transfer": "Retirar Transferência",
+ "Writtenoff": "Baixado",
+ "Overdraft Interest": "Juros do cheque especial",
+ "Withhold Tax": "Taxa administrativa",
+ "Escheat": "Fuga",
+ "On Hold": "Em espera",
+ "Release": "Liberar",
+ "Daily": "Diário",
+ "Monthly": "Por mês",
+ "Quarterly": "Trimestralmente",
+ "Semi-Annual": "Semestral",
+ "Annually": "Anualmente",
+ "Weekly": "Semanalmente",
+ "Daily Balance": "Saldo Diário",
+ "Average Daily Balance": "Saldo Médio Diário",
+ "BiAnnual": "Semestral",
+ "360 Days": "360 dias",
+ "365 Days": "365 dias",
+ "30 Days": "30 dias",
+ "364 Days": "364 dias",
+ "Actual": "Real",
+ "Disbursement Date": "Data de Desembolso",
+ "Submitted On Date": "Enviado na data",
+ "Per year": "Por ano",
+ "Per month": "Por mês",
+ "Whole term": "Período inteiro",
+ "Same as repayment period": "Igual ao período de reembolso",
+ "Declining Balance": "Saldo decrescente",
+ "Cumulative": "Cumulativo",
+ "Progressive": "Progressivo",
+ "Penalty": "Pena",
+ "Fees": "Tarifas",
+ "Fee": "Taxa",
+ "Horizontal": "Horizontal",
+ "Vertical": "Vertical",
+ "Advanced payment allocation strategy": "Estratégia avançada de alocação de pagamentos",
+ "Past due penalty": "Penalidade vencida",
+ "Past due fee": "Taxa vencida",
+ "Past due principal": "Principal vencido",
+ "Past due interest": "Juros vencidos",
+ "Due penalty": "Penalidade devida",
+ "Due fee": "Taxa devida",
+ "Due principal": "Principal devido",
+ "Due interest": "Juros devidos",
+ "In advanced penalty": "Penalidade antecipada",
+ "In advanced fee": "Taxa antecipada",
+ "In advanced principal": "Antecipadamente principal",
+ "In advanced interest": "Juros antecipados",
+ "Next installment": "Próxima parcela",
+ "Last installment": "Última parcela",
+ "Reamotization": "Reamotização",
+ "equals": "é igual a",
+ "greater than": "Maior que",
+ "Equal installments": "Parcelas iguais",
+ "Equal principal payments": "Pagamentos de principal iguais",
+ "Till Pre-Close Date": "Até a data de pré-fechamento",
+ "Till Rest Frequency Date": "Até a data de frequência de descanso",
+ "Reduce EMI amount": "Reduzir quantidade",
+ "Reduce number of installments": "Reduza o número de parcelas",
+ "Reschedule next repayments": "Reprogramar próximos pagamentos",
+ "None": "Capital",
+ "Interest": "Interesse",
+ "Fee and Interest": "Taxa e juros",
+ "Creocore Unique": "Creocore Único",
+ "Early Repayment Strategy": "Estratégia de reembolso antecipado",
+ "Penalties, Fees, Interest, Principal order": "Penalidades, taxas, juros, pedido principal",
+ "HeavensFamily Unique": "CéusFamília Única",
+ "Interest, Principal, Penalties, Fees Order": "Juros, principal, penalidades, ordem de taxas",
+ "Principal, Interest, Penalties, Fees Order": "Principal, Juros, Penalidades, Ordem de Taxas",
+ "Overdue/Due Fee/Int,Principal": "Taxa vencida/devida/int,principal",
+ "Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Multa devida, taxa, juros, principal, Adiantamento de principal, multa, taxa, juros",
+ "Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Pena devida, juros, principal, taxa, multa antecipada, juros, principal, taxa",
+ "first": "primeiro",
+ "second": "segundo",
+ "third": "terceiro",
+ "fourth": "quatro",
+ "last": "durar",
+ "on day": "Um dia",
+ "SUNDAY": "DOMINGO",
+ "MONDAY": "SEGUNDA-FEIRA",
+ "TUESDAY": "TERÇA-FEIRA",
+ "WEDNESDAY": "QUARTA-FEIRA",
+ "THURSDAY": "QUINTA-FEIRA",
+ "FRIDAY": "SEXTA-FEIRA",
+ "SATURDAY": "SÁBADO",
+ "Invalid": "Inválido"
+ },
"commons": {
"50 characters long": "50 caracteres",
"8 characters long": "8 caracteres de comprimento",
@@ -574,6 +704,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "Adicionar Conta",
"Add Currency Form": "Adicionar formulário de moeda",
+ "Add Client Identifier": "Adicionar identificador de cliente",
"Add Journal Entry Form": "Adicionar formulário de lançamento contábil manual",
"Add Loan Collateral": "Adicionar garantia de empréstimo",
"Add Role": "Adicionar função",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Data de início do período de dividendos",
"Dividends": "Dividendos",
"Documents": "Documentos",
+ "Document Key": "Chave do documento",
+ "Document Type": "tipo de documento",
"Dormancy Tracking": "Rastreamento de dormência",
"Download": "Download",
"Due": "Devido",
@@ -2155,6 +2288,8 @@
},
"task-management component": "componente de gerenciamento de tarefas",
"to": "para",
+ "Down Payments": "Adiantamentos",
+ "Enable Down Payments": "Habilitar adiantamentos",
"valid": "válido"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "{título: Lançamentos Diários",
"Mandatory": "Obrigatório",
"Voluntary": "Voluntário",
+ "Write a note": "Escreva uma nota",
"“Maker-Checker” principle requires every tasks": "O princípio “Maker-Checker” exige que todas as tarefas sejam concluídas por duas pessoas para reduzir a chance de erros e uso indevido. Uma pessoa inicia o processo e a segunda o conclui."
},
"titles": {
diff --git a/assets/translations/sw-SW.json b/assets/translations/sw-SW.json
index 6b1cbb3722..5d8c05a6b4 100644
--- a/assets/translations/sw-SW.json
+++ b/assets/translations/sw-SW.json
@@ -514,8 +514,138 @@
"Waive Charge": "Kuondoa Malipo",
"Week": "Wiki",
"Withdraw": "Kutoa",
+ "View Active Charges": "Tazama Malipo Yanayotumika",
+ "View Inactive Charges": "Tazama Gharama Isiyotumika",
"Yes": "Ndiyo"
},
+ "catalogs": {
+ "Active": "Inayotumika",
+ "Inactive": "Isiyotumika",
+ "Loans": "Mikopo",
+ "Client": "Mteja",
+ "Loan": "Mkopo",
+ "Savings": "Akiba",
+ "Shares": "Hisa",
+ "Regular": "Mara kwa mara",
+ "Account transfer": "Uhamisho wa akaunti",
+ "Flat": "Gorofa",
+ "% Amount": "Kiasi",
+ "% Interest": "Hamu",
+ "% Loan Amount + Interest": "Kiasi cha Mkopo + Riba",
+ "Disbursement": "Utoaji",
+ "Specified due date": "Tarehe ya mwisho iliyoainishwa",
+ "Installment Fee": "Ada ya Ufungaji",
+ "Overdue Fees": "Ada Zilizochelewa",
+ "Tranche Disbursement": "Utoaji wa Tranche",
+ "Savings Activation": "Uanzishaji wa Akiba",
+ "Saving No Activity Fee": "Haihifadhi Ada ya Shughuli",
+ "Withdrawal Fee": "Ada ya Kuondoa",
+ "Annual Fee": "Ada ya Mwaka",
+ "Monthly Fee": "Ada ya Kila Mwezi",
+ "Weekly Fee": "Ada ya Wiki",
+ "Share Account Activate": "Shiriki Akaunti Washa",
+ "Share Purchase": "Shiriki Ununuzi",
+ "Share Redeem": "Shiriki Kukomboa",
+ "Days": "Siku",
+ "Weeks": "Wiki",
+ "Months": "Miezi",
+ "Years": "Miaka",
+ "Deposit": "Amana",
+ "Withdrawal": "Uondoaji",
+ "Interest Posting": "Maslahi Posting",
+ "Waive Charge": "Kuondoa Malipo",
+ "Pay Charge": "Lipa Ada",
+ "Dividend Payout": "Malipo ya gawio",
+ "Accrual": "Accrual",
+ "Initiate Transfer": "Anzisha Uhamisho",
+ "Approve Transfer": "Idhinisha Uhamisho",
+ "Withdraw Transfer": "Ondoa Uhamisho",
+ "Writtenoff": "Imeandikwa",
+ "Overdraft Interest": "Riba ya overdraft",
+ "Withhold Tax": "Kodi ya Kuzuia",
+ "Escheat": "Escheat",
+ "On Hold": "Imesimama",
+ "Release": "Kutolewa",
+ "Daily": "Kila siku",
+ "Monthly": "Kila mwezi",
+ "Quarterly": "Kila robo",
+ "Semi-Annual": "Nusu ya Mwaka",
+ "Annually": "Kila mwaka",
+ "Weekly": "Kila wiki",
+ "Daily Balance": "Mizani ya Kila siku",
+ "Average Daily Balance": "Wastani wa Salio la Kila Siku",
+ "BiAnnual": "BiAnnual",
+ "360 Days": "Siku 360",
+ "365 Days": "Siku 365",
+ "30 Days": "Siku 30",
+ "364 Days": "Siku 364",
+ "Actual": "Halisi",
+ "Disbursement Date": "Tarehe ya Utoaji",
+ "Submitted On Date": "Imewasilishwa Tarehe",
+ "Per year": "Kwa mwaka",
+ "Per month": "Kwa mwezi",
+ "Whole term": "Muda Mzima",
+ "Same as repayment period": "Sawa na kipindi cha malipo",
+ "Declining Balance": "Kupungua kwa Mizani",
+ "Cumulative": "Jumla",
+ "Progressive": "Maendeleo",
+ "Penalty": "Adhabu",
+ "Fees": "Ada",
+ "Fee": "Ada",
+ "Horizontal": "Mlalo",
+ "Vertical": "Wima",
+ "Advanced payment allocation strategy": "Mkakati wa hali ya juu wa ugawaji malipo",
+ "Past due penalty": "Adhabu ya wakati uliopita",
+ "Past due fee": "Ada ya malipo ya nyuma",
+ "Past due principal": "Mkuu wa shule aliyepita",
+ "Past due interest": "Maslahi yaliyopita",
+ "Due penalty": "Adhabu inayostahili",
+ "Due fee": "Ada inayodaiwa",
+ "Due principal": "Malipo mkuu",
+ "Due interest": "Nia inayostahili",
+ "In advanced penalty": "Adhabu ya mapema",
+ "In advanced fee": "Ada ya mapema",
+ "In advanced principal": "Mapema mkuu",
+ "In advanced interest": "Maslahi ya mapema",
+ "Next installment": "Awamu inayofuata",
+ "Last installment": "Awamu ya mwisho",
+ "Reamotization": "Remotization",
+ "equals": "sawa",
+ "greater than": "kubwa kuliko",
+ "Equal installments": "Awamu sawa",
+ "Equal principal payments": "Malipo ya msingi sawa",
+ "Till Pre-Close Date": "Hadi Tarehe ya Kufungwa",
+ "Till Rest Frequency Date": "Hadi Tarehe ya Marudio ya Kupumzika",
+ "Reduce EMI amount": "Punguza Kiasi",
+ "Reduce number of installments": "Kupunguza idadi ya awamu",
+ "Reschedule next repayments": "Panga upya malipo yanayofuata",
+ "None": "Mtaji",
+ "Interest": "Hamu",
+ "Fee and Interest": "Ada na Riba",
+ "Creocore Unique": "Creocore ya kipekee",
+ "Early Repayment Strategy": "Mkakati wa Kulipa Mapema",
+ "Penalties, Fees, Interest, Principal order": "Adhabu, Ada, Riba, Agizo kuu",
+ "HeavensFamily Unique": "HeavensFamily ya Kipekee",
+ "Interest, Principal, Penalties, Fees Order": "Riba, Mkuu, Adhabu, Agizo la Ada",
+ "Principal, Interest, Penalties, Fees Order": "Mkuu, Riba, Adhabu, Agizo la Ada",
+ "Overdue/Due Fee/Int,Principal": "Ada Imechelewa/Inayodaiwa/Int,Mkuu",
+ "Due penalty, fee, interest, principal, In advance principal, penalty, fee, interest": "Adhabu inayodaiwa, ada, riba, mkuu, Mapema mkuu, adhabu, ada, riba",
+ "Due penalty, interest, principal, fee, In advance penalty, interest, principal, fee": "Adhabu inayostahili, riba, mkuu, ada, Adhabu ya mapema, riba, mkuu, ada",
+ "first": "kwanza",
+ "second": "pili",
+ "third": "cha tatu",
+ "fourth": "nne",
+ "last": "mwisho",
+ "on day": "siku",
+ "SUNDAY": "JUMAPILI",
+ "MONDAY": "JUMATATU",
+ "TUESDAY": "JUMANNE",
+ "WEDNESDAY": "JUMATANO",
+ "THURSDAY": "ALHAMISI",
+ "FRIDAY": "IJUMAA",
+ "SATURDAY": "JUMAMOSI",
+ "Invalid": "Batili"
+ },
"commons": {
"50 characters long": "Urefu wa herufi 50",
"8 characters long": "Urefu wa herufi 8",
@@ -574,6 +704,7 @@
"AdHocQuery": "AdHocQuery",
"Add Account": "Ongeza Akaunti",
"Add Currency Form": "Ongeza Fomu ya Sarafu",
+ "Add Client Identifier": "Ongeza Kitambulisho cha Mteja",
"Add Journal Entry Form": "Ongeza Fomu ya Kuingiza Jarida",
"Add Loan Collateral": "Ongeza Dhamana ya Mkopo",
"Add Role": "Ongeza Jukumu",
@@ -1265,6 +1396,8 @@
"Dividend Period Start Date": "Tarehe ya Kuanza kwa Kipindi cha Gawio",
"Dividends": "Gawio",
"Documents": "Nyaraka",
+ "Document Key": "Ufunguo wa Hati",
+ "Document Type": "Aina ya Hati",
"Dormancy Tracking": "Ufuatiliaji wa Malalamiko",
"Download": "Pakua",
"Due": "Inastahili",
@@ -2155,6 +2288,8 @@
},
"task-management component": "sehemu ya usimamizi wa kazi",
"to": "kwa",
+ "Down Payments": "Malipo ya Chini",
+ "Enable Down Payments": "Washa Malipo ya Chini",
"valid": "halali"
},
"links": {
@@ -2880,6 +3015,7 @@
"Journal Entries": "{kichwa: Maingizo ya Jarida",
"Mandatory": "Lazima",
"Voluntary": "Kwa hiari",
+ "Write a note": "Andika dokezo",
"“Maker-Checker” principle requires every tasks": "Kanuni ya \"Mtengenezaji-Kikagua\" inahitaji kila kazi kukamilishwa na watu wawili ili kupunguza uwezekano wa makosa na matumizi mabaya. Mtu mmoja anaanzisha mchakato na wa pili anakamilisha."
},
"titles": {
diff --git a/main.js b/main.js
index 436f9cb2f7..4eb5422a10 100644
--- a/main.js
+++ b/main.js
@@ -1 +1 @@
-(self.webpackChunkmifosx_web_app=self.webpackChunkmifosx_web_app||[]).push([["main"],{96170:(at,et,v)=>{at=v.nmd(at),function(d){const p=d.en=d.en||{};p.dictionary=Object.assign(p.dictionary||{},{"%0 of %1":"%0 of %1",Accept:"Accept","Align cell text to the bottom":"Align cell text to the bottom","Align cell text to the center":"Align cell text to the center","Align cell text to the left":"Align cell text to the left","Align cell text to the middle":"Align cell text to the middle","Align cell text to the right":"Align cell text to the right","Align cell text to the top":"Align cell text to the top","Align table to the left":"Align table to the left","Align table to the right":"Align table to the right",Alignment:"Alignment",Aquamarine:"Aquamarine",Background:"Background",Black:"Black","Block quote":"Block quote",Blue:"Blue",Bold:"Bold",Border:"Border","Break text":"Break text","Bulleted List":"Bulleted List","Bulleted list styles toolbar":"Bulleted list styles toolbar",Cancel:"Cancel","Cannot access default workspace.":"Cannot access default workspace.","Cannot determine a category for the uploaded file.":"Cannot determine a category for the uploaded file.","Cannot upload file:":"Cannot upload file:","Caption for image: %0":"Caption for image: %0","Caption for the image":"Caption for the image","Cell properties":"Cell properties","Center table":"Center table","Centered image":"Centered image","Change image text alternative":"Change image text alternative","Choose heading":"Choose heading",Circle:"Circle",Clear:"Clear","Click to edit block":"Click to edit block",Code:"Code",Color:"Color","Color picker":"Color picker",Column:"Column","Could not insert image at the current position.":"Could not insert image at the current position.","Could not obtain resized image URL.":"Could not obtain resized image URL.",Dashed:"Dashed",Decimal:"Decimal","Decimal with leading zero":"Decimal with leading zero","Decrease indent":"Decrease indent","Delete column":"Delete column","Delete row":"Delete row","Dim grey":"Dim grey",Dimensions:"Dimensions",Disc:"Disc",Dotted:"Dotted",Double:"Double",Downloadable:"Downloadable","Drag to move":"Drag to move","Dropdown toolbar":"Dropdown toolbar","Edit block":"Edit block","Edit link":"Edit link","Editor block content toolbar":"Editor block content toolbar","Editor contextual toolbar":"Editor contextual toolbar","Editor editing area: %0":"Editor editing area: %0","Editor toolbar":"Editor toolbar","Enter image caption":"Enter image caption","Enter table caption":"Enter table caption","Full size image":"Full size image",Green:"Green",Grey:"Grey",Groove:"Groove","Header column":"Header column","Header row":"Header row",Heading:"Heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading 4":"Heading 4","Heading 5":"Heading 5","Heading 6":"Heading 6",Height:"Height",HEX:"HEX","Horizontal text alignment toolbar":"Horizontal text alignment toolbar","Image resize list":"Image resize list","Image toolbar":"Image toolbar","image widget":"image widget","In line":"In line","Increase indent":"Increase indent",Insert:"Insert","Insert column left":"Insert column left","Insert column right":"Insert column right","Insert image":"Insert image","Insert image or file":"Insert image or file","Insert image via URL":"Insert image via URL","Insert media":"Insert media","Insert paragraph after block":"Insert paragraph after block","Insert paragraph before block":"Insert paragraph before block","Insert row above":"Insert row above","Insert row below":"Insert row below","Insert table":"Insert table","Inserting image failed":"Inserting image failed",Inset:"Inset",Italic:"Italic","Justify cell text":"Justify cell text","Left aligned image":"Left aligned image","Light blue":"Light blue","Light green":"Light green","Light grey":"Light grey",Link:"Link","Link image":"Link image","Link URL":"Link URL","List properties":"List properties","Lower-latin":"Lower-latin","Lower\u2013roman":"Lower\u2013roman","Media toolbar":"Media toolbar","Media URL":"Media URL","media widget":"media widget","Merge cell down":"Merge cell down","Merge cell left":"Merge cell left","Merge cell right":"Merge cell right","Merge cell up":"Merge cell up","Merge cells":"Merge cells",Next:"Next","No results found":"No results found","No searchable items":"No searchable items",None:"None","Numbered List":"Numbered List","Numbered list styles toolbar":"Numbered list styles toolbar","Open file manager":"Open file manager","Open in a new tab":"Open in a new tab","Open link in new tab":"Open link in new tab","Open media in new tab":"Open media in new tab",Orange:"Orange",Original:"Original",Outset:"Outset",Padding:"Padding",Paragraph:"Paragraph","Paste the media URL in the input.":"Paste the media URL in the input.","Press Enter to type after or press Shift + Enter to type before the widget":"Press Enter to type after or press Shift + Enter to type before the widget",Previous:"Previous",Purple:"Purple",Red:"Red",Redo:"Redo","Remove color":"Remove color","Resize image":"Resize image","Resize image to %0":"Resize image to %0","Resize image to the original size":"Resize image to the original size","Restore default":"Restore default","Reversed order":"Reversed order","Rich Text Editor":"Rich Text Editor",Ridge:"Ridge","Right aligned image":"Right aligned image",Row:"Row",Save:"Save","Select all":"Select all","Select column":"Select column","Select row":"Select row","Selecting resized image failed":"Selecting resized image failed","Show more items":"Show more items","Side image":"Side image",Solid:"Solid","Split cell horizontally":"Split cell horizontally","Split cell vertically":"Split cell vertically",Square:"Square","Start at":"Start at","Start index must be greater than 0.":"Start index must be greater than 0.",Strikethrough:"Strikethrough",Style:"Style",Subscript:"Subscript",Superscript:"Superscript","Table alignment toolbar":"Table alignment toolbar","Table cell text alignment":"Table cell text alignment","Table properties":"Table properties","Table toolbar":"Table toolbar","Text alternative":"Text alternative",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".',"The URL must not be empty.":"The URL must not be empty.",'The value is invalid. Try "10px" or "2em" or simply "2".':'The value is invalid. Try "10px" or "2em" or simply "2".',"This link has no URL":"This link has no URL","This media URL is not supported.":"This media URL is not supported.","Tip: Paste the URL into the content to embed faster.":"Tip: Paste the URL into the content to embed faster.","To-do List":"To-do List","Toggle caption off":"Toggle caption off","Toggle caption on":"Toggle caption on","Toggle the circle list style":"Toggle the circle list style","Toggle the decimal list style":"Toggle the decimal list style","Toggle the decimal with leading zero list style":"Toggle the decimal with leading zero list style","Toggle the disc list style":"Toggle the disc list style","Toggle the lower\u2013latin list style":"Toggle the lower\u2013latin list style","Toggle the lower\u2013roman list style":"Toggle the lower\u2013roman list style","Toggle the square list style":"Toggle the square list style","Toggle the upper\u2013latin list style":"Toggle the upper\u2013latin list style","Toggle the upper\u2013roman list style":"Toggle the upper\u2013roman list style",Turquoise:"Turquoise","Type or paste your content here.":"Type or paste your content here.","Type your title":"Type your title",Underline:"Underline",Undo:"Undo",Unlink:"Unlink",Update:"Update","Update image URL":"Update image URL","Upload failed":"Upload failed","Upload in progress":"Upload in progress","Upper-latin":"Upper-latin","Upper-roman":"Upper-roman","Vertical text alignment toolbar":"Vertical text alignment toolbar",White:"White","Widget toolbar":"Widget toolbar",Width:"Width","Wrap text":"Wrap text",Yellow:"Yellow"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),self,at.exports=(()=>(()=>{var d={4959:(t,A,x)=>{const U=x(1103),k={};for(const P of Object.keys(U))k[U[P]]=P;const D={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};t.exports=D;for(const P of Object.keys(D)){if(!("channels"in D[P]))throw new Error("missing channels property: "+P);if(!("labels"in D[P]))throw new Error("missing channel labels property: "+P);if(D[P].labels.length!==D[P].channels)throw new Error("channel and label counts mismatch: "+P);const{channels:F,labels:z}=D[P];delete D[P].channels,delete D[P].labels,Object.defineProperty(D[P],"channels",{value:F}),Object.defineProperty(D[P],"labels",{value:z})}D.rgb.hsl=function(P){const F=P[0]/255,z=P[1]/255,J=P[2]/255,K=Math.min(F,z,J),ot=Math.max(F,z,J),lt=ot-K;let vt,Dt;ot===K?vt=0:F===ot?vt=(z-J)/lt:z===ot?vt=2+(J-F)/lt:J===ot&&(vt=4+(F-z)/lt),vt=Math.min(60*vt,360),vt<0&&(vt+=360);const Pt=(K+ot)/2;return Dt=ot===K?0:Pt<=.5?lt/(ot+K):lt/(2-ot-K),[vt,100*Dt,100*Pt]},D.rgb.hsv=function(P){let F,z,J,K,ot;const lt=P[0]/255,vt=P[1]/255,Dt=P[2]/255,Pt=Math.max(lt,vt,Dt),zt=Pt-Math.min(lt,vt,Dt),Vt=function(it){return(Pt-it)/6/zt+.5};return 0===zt?(K=0,ot=0):(ot=zt/Pt,F=Vt(lt),z=Vt(vt),J=Vt(Dt),lt===Pt?K=J-z:vt===Pt?K=.3333333333333333+F-J:Dt===Pt&&(K=.6666666666666666+z-F),K<0?K+=1:K>1&&(K-=1)),[360*K,100*ot,100*Pt]},D.rgb.hwb=function(P){const F=P[0],z=P[1];let J=P[2];const K=D.rgb.hsl(P)[0],ot=1/255*Math.min(F,Math.min(z,J));return J=1-.00392156862745098*Math.max(F,Math.max(z,J)),[K,100*ot,100*J]},D.rgb.cmyk=function(P){const F=P[0]/255,z=P[1]/255,J=P[2]/255,K=Math.min(1-F,1-z,1-J);return[100*((1-F-K)/(1-K)||0),100*((1-z-K)/(1-K)||0),100*((1-J-K)/(1-K)||0),100*K]},D.rgb.keyword=function(P){const F=k[P];if(F)return F;let z,J=1/0;for(const lt of Object.keys(U)){const Dt=((K=P)[0]-(ot=U[lt])[0])**2+(K[1]-ot[1])**2+(K[2]-ot[2])**2;Dt.04045?((F+.055)/1.055)**2.4:F/12.92,z=z>.04045?((z+.055)/1.055)**2.4:z/12.92,J=J>.04045?((J+.055)/1.055)**2.4:J/12.92,[100*(.4124*F+.3576*z+.1805*J),100*(.2126*F+.7152*z+.0722*J),100*(.0193*F+.1192*z+.9505*J)]},D.rgb.lab=function(P){const F=D.rgb.xyz(P);let z=F[0],J=F[1],K=F[2];return z/=95.047,J/=100,K/=108.883,z=z>.008856?z**.3333333333333333:7.787*z+.13793103448275862,J=J>.008856?J**.3333333333333333:7.787*J+.13793103448275862,K=K>.008856?K**.3333333333333333:7.787*K+.13793103448275862,[116*J-16,500*(z-J),200*(J-K)]},D.hsl.rgb=function(P){const F=P[0]/360,z=P[1]/100,J=P[2]/100;let K,ot,lt;if(0===z)return lt=255*J,[lt,lt,lt];K=J<.5?J*(1+z):J+z-J*z;const vt=2*J-K,Dt=[0,0,0];for(let Pt=0;Pt<3;Pt++)ot=F+.3333333333333333*-(Pt-1),ot<0&&ot++,ot>1&&ot--,lt=6*ot<1?vt+6*(K-vt)*ot:2*ot<1?K:3*ot<2?vt+(K-vt)*(.6666666666666666-ot)*6:vt,Dt[Pt]=255*lt;return Dt},D.hsl.hsv=function(P){const F=P[0];let z=P[1]/100,J=P[2]/100,K=z;const ot=Math.max(J,.01);return J*=2,z*=J<=1?J:2-J,K*=ot<=1?ot:2-ot,[F,100*(0===J?2*K/(ot+K):2*z/(J+z)),(J+z)/2*100]},D.hsv.rgb=function(P){const F=P[0]/60,z=P[1]/100;let J=P[2]/100;const K=Math.floor(F)%6,ot=F-Math.floor(F),lt=255*J*(1-z),vt=255*J*(1-z*ot),Dt=255*J*(1-z*(1-ot));switch(J*=255,K){case 0:return[J,Dt,lt];case 1:return[vt,J,lt];case 2:return[lt,J,Dt];case 3:return[lt,vt,J];case 4:return[Dt,lt,J];case 5:return[J,lt,vt]}},D.hsv.hsl=function(P){const F=P[0],z=P[1]/100,J=P[2]/100,K=Math.max(J,.01);let ot,lt;lt=(2-z)*J;const vt=(2-z)*K;return ot=z*K,ot/=vt<=1?vt:2-vt,ot=ot||0,lt/=2,[F,100*ot,100*lt]},D.hwb.rgb=function(P){const F=P[0]/360;let z=P[1]/100,J=P[2]/100;const K=z+J;let ot;K>1&&(z/=K,J/=K);const lt=Math.floor(6*F),vt=1-J;ot=6*F-lt,0!=(1<)&&(ot=1-ot);const Dt=z+ot*(vt-z);let Pt,zt,Vt;switch(lt){default:case 6:case 0:Pt=vt,zt=Dt,Vt=z;break;case 1:Pt=Dt,zt=vt,Vt=z;break;case 2:Pt=z,zt=vt,Vt=Dt;break;case 3:Pt=z,zt=Dt,Vt=vt;break;case 4:Pt=Dt,zt=z,Vt=vt;break;case 5:Pt=vt,zt=z,Vt=Dt}return[255*Pt,255*zt,255*Vt]},D.cmyk.rgb=function(P){const z=P[1]/100,J=P[2]/100,K=P[3]/100;return[255*(1-Math.min(1,P[0]/100*(1-K)+K)),255*(1-Math.min(1,z*(1-K)+K)),255*(1-Math.min(1,J*(1-K)+K))]},D.xyz.rgb=function(P){const F=P[0]/100,z=P[1]/100,J=P[2]/100;let K,ot,lt;return K=3.2406*F+-1.5372*z+-.4986*J,ot=-.9689*F+1.8758*z+.0415*J,lt=.0557*F+-.204*z+1.057*J,K=K>.0031308?1.055*K**.4166666666666667-.055:12.92*K,ot=ot>.0031308?1.055*ot**.4166666666666667-.055:12.92*ot,lt=lt>.0031308?1.055*lt**.4166666666666667-.055:12.92*lt,K=Math.min(Math.max(0,K),1),ot=Math.min(Math.max(0,ot),1),lt=Math.min(Math.max(0,lt),1),[255*K,255*ot,255*lt]},D.xyz.lab=function(P){let F=P[0],z=P[1],J=P[2];return F/=95.047,z/=100,J/=108.883,F=F>.008856?F**.3333333333333333:7.787*F+.13793103448275862,z=z>.008856?z**.3333333333333333:7.787*z+.13793103448275862,J=J>.008856?J**.3333333333333333:7.787*J+.13793103448275862,[116*z-16,500*(F-z),200*(z-J)]},D.lab.xyz=function(P){let F,z,J;z=(P[0]+16)/116,F=P[1]/500+z,J=z-P[2]/200;const K=z**3,ot=F**3,lt=J**3;return z=K>.008856?K:(z-.13793103448275862)/7.787,F=ot>.008856?ot:(F-.13793103448275862)/7.787,J=lt>.008856?lt:(J-.13793103448275862)/7.787,F*=95.047,z*=100,J*=108.883,[F,z,J]},D.lab.lch=function(P){const F=P[0],z=P[1],J=P[2];let K;return K=360*Math.atan2(J,z)/2/Math.PI,K<0&&(K+=360),[F,Math.sqrt(z*z+J*J),K]},D.lch.lab=function(P){const z=P[1],J=P[2]/360*2*Math.PI;return[P[0],z*Math.cos(J),z*Math.sin(J)]},D.rgb.ansi16=function(P,F=null){const[z,J,K]=P;let ot=null===F?D.rgb.hsv(P)[2]:F;if(ot=Math.round(ot/50),0===ot)return 30;let lt=30+(Math.round(K/255)<<2|Math.round(J/255)<<1|Math.round(z/255));return 2===ot&&(lt+=60),lt},D.hsv.ansi16=function(P){return D.rgb.ansi16(D.hsv.rgb(P),P[2])},D.rgb.ansi256=function(P){const F=P[0],z=P[1],J=P[2];return F===z&&z===J?F<8?16:F>248?231:Math.round((F-8)/247*24)+232:16+36*Math.round(F/255*5)+6*Math.round(z/255*5)+Math.round(J/255*5)},D.ansi16.rgb=function(P){let F=P%10;if(0===F||7===F)return P>50&&(F+=3.5),F=F/10.5*255,[F,F,F];const z=.5*(1+~~(P>50));return[(1&F)*z*255,(F>>1&1)*z*255,(F>>2&1)*z*255]},D.ansi256.rgb=function(P){if(P>=232){const z=10*(P-232)+8;return[z,z,z]}let F;return P-=16,[Math.floor(P/36)/5*255,Math.floor((F=P%36)/6)/5*255,F%6/5*255]},D.rgb.hex=function(P){const F=(((255&Math.round(P[0]))<<16)+((255&Math.round(P[1]))<<8)+(255&Math.round(P[2]))).toString(16).toUpperCase();return"000000".substring(F.length)+F},D.hex.rgb=function(P){const F=P.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!F)return[0,0,0];let z=F[0];3===F[0].length&&(z=z.split("").map(K=>K+K).join(""));const J=parseInt(z,16);return[J>>16&255,J>>8&255,255&J]},D.rgb.hcg=function(P){const F=P[0]/255,z=P[1]/255,J=P[2]/255,K=Math.max(Math.max(F,z),J),ot=Math.min(Math.min(F,z),J),lt=K-ot;let vt,Dt;return vt=lt<1?ot/(1-lt):0,Dt=lt<=0?0:K===F?(z-J)/lt%6:K===z?2+(J-F)/lt:4+(F-z)/lt,Dt/=6,Dt%=1,[360*Dt,100*lt,100*vt]},D.hsl.hcg=function(P){const F=P[1]/100,z=P[2]/100,J=z<.5?2*F*z:2*F*(1-z);let K=0;return J<1&&(K=(z-.5*J)/(1-J)),[P[0],100*J,100*K]},D.hsv.hcg=function(P){const z=P[2]/100,J=P[1]/100*z;let K=0;return J<1&&(K=(z-J)/(1-J)),[P[0],100*J,100*K]},D.hcg.rgb=function(P){const z=P[1]/100,J=P[2]/100;if(0===z)return[255*J,255*J,255*J];const K=[0,0,0],ot=P[0]/360%1*6,lt=ot%1,vt=1-lt;let Dt=0;switch(Math.floor(ot)){case 0:K[0]=1,K[1]=lt,K[2]=0;break;case 1:K[0]=vt,K[1]=1,K[2]=0;break;case 2:K[0]=0,K[1]=1,K[2]=lt;break;case 3:K[0]=0,K[1]=vt,K[2]=1;break;case 4:K[0]=lt,K[1]=0,K[2]=1;break;default:K[0]=1,K[1]=0,K[2]=vt}return Dt=(1-z)*J,[255*(z*K[0]+Dt),255*(z*K[1]+Dt),255*(z*K[2]+Dt)]},D.hcg.hsv=function(P){const F=P[1]/100,z=F+P[2]/100*(1-F);let J=0;return z>0&&(J=F/z),[P[0],100*J,100*z]},D.hcg.hsl=function(P){const F=P[1]/100,z=P[2]/100*(1-F)+.5*F;let J=0;return z>0&&z<.5?J=F/(2*z):z>=.5&&z<1&&(J=F/(2*(1-z))),[P[0],100*J,100*z]},D.hcg.hwb=function(P){const F=P[1]/100,z=F+P[2]/100*(1-F);return[P[0],100*(z-F),100*(1-z)]},D.hwb.hcg=function(P){const z=1-P[2]/100,J=z-P[1]/100;let K=0;return J<1&&(K=(z-J)/(1-J)),[P[0],100*J,100*K]},D.apple.rgb=function(P){return[P[0]/65535*255,P[1]/65535*255,P[2]/65535*255]},D.rgb.apple=function(P){return[P[0]/255*65535,P[1]/255*65535,P[2]/255*65535]},D.gray.rgb=function(P){return[P[0]/100*255,P[0]/100*255,P[0]/100*255]},D.gray.hsl=function(P){return[0,0,P[0]]},D.gray.hsv=D.gray.hsl,D.gray.hwb=function(P){return[0,100,P[0]]},D.gray.cmyk=function(P){return[0,0,0,P[0]]},D.gray.lab=function(P){return[P[0],0,0]},D.gray.hex=function(P){const F=255&Math.round(P[0]/100*255),z=((F<<16)+(F<<8)+F).toString(16).toUpperCase();return"000000".substring(z.length)+z},D.rgb.gray=function(P){return[(P[0]+P[1]+P[2])/3/255*100]}},841:(t,A,x)=>{const U=x(4959),k=x(9325),D={};Object.keys(U).forEach(P=>{D[P]={},Object.defineProperty(D[P],"channels",{value:U[P].channels}),Object.defineProperty(D[P],"labels",{value:U[P].labels});const F=k(P);Object.keys(F).forEach(z=>{const J=F[z];D[P][z]=function(K){const ot=function(...lt){const vt=lt[0];if(null==vt)return vt;vt.length>1&&(lt=vt);const Dt=K(lt);if("object"==typeof Dt)for(let Pt=Dt.length,zt=0;zt1&&(lt=vt),K(lt))};return"conversion"in K&&(ot.conversion=K.conversion),ot}(J)})}),t.exports=D},9325:(t,A,x)=>{const U=x(4959);function D(F,z){return function(J){return z(F(J))}}function P(F,z){const J=[z[F].parent,F];let K=U[z[F].parent][F],ot=z[F].parent;for(;z[ot].parent;)J.unshift(z[ot].parent),K=D(U[z[ot].parent][ot],K),ot=z[ot].parent;return K.conversion=J,K}t.exports=function(F){const z=function k(F){const z=function(){const K={},ot=Object.keys(U);for(let lt=ot.length,vt=0;vt{"use strict";t.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},8603:(t,A,x)=>{"use strict";x.d(A,{Z:()=>F});var U=x(1799),k=x.n(U),D=x(2609),P=x.n(D)()(k());P.push([t.id,".ck-content code{background-color:hsla(0,0%,78%,.3);border-radius:2px;padding:.15em}.ck.ck-editor__editable .ck-code_selected{background-color:hsla(0,0%,78%,.5)}","",{version:3,sources:["webpack://./../ckeditor5-basic-styles/theme/code.css"],names:[],mappings:"AAKA,iBACC,kCAAuC,CAEvC,iBAAkB,CADlB,aAED,CAEA,0CACC,kCACD",sourcesContent:["/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content code {\n\tbackground-color: hsla(0, 0%, 78%, 0.3);\n\tpadding: .15em;\n\tborder-radius: 2px;\n}\n\n.ck.ck-editor__editable .ck-code_selected {\n\tbackground-color: hsla(0, 0%, 78%, 0.5);\n}\n"],sourceRoot:""}]);const F=P},3062:(t,A,x)=>{"use strict";x.d(A,{Z:()=>F});var U=x(1799),k=x.n(U),D=x(2609),P=x.n(D)()(k());P.push([t.id,".ck-content blockquote{border-left:5px solid #ccc;font-style:italic;margin-left:0;margin-right:0;overflow:hidden;padding-left:1.5em;padding-right:1.5em}.ck-content[dir=rtl] blockquote{border-left:0;border-right:5px solid #ccc}","",{version:3,sources:["webpack://./../ckeditor5-block-quote/theme/blockquote.css"],names:[],mappings:"AAKA,uBAWC,0BAAsC,CADtC,iBAAkB,CAFlB,aAAc,CACd,cAAe,CAPf,eAAgB,CAIhB,kBAAmB,CADnB,mBAOD,CAEA,gCACC,aAAc,CACd,2BACD",sourcesContent:['/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content blockquote {\n\t/* See #12 */\n\toverflow: hidden;\n\n\t/* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */\n\tpadding-right: 1.5em;\n\tpadding-left: 1.5em;\n\n\tmargin-left: 0;\n\tmargin-right: 0;\n\tfont-style: italic;\n\tborder-left: solid 5px hsl(0, 0%, 80%);\n}\n\n.ck-content[dir="rtl"] blockquote {\n\tborder-left: 0;\n\tborder-right: solid 5px hsl(0, 0%, 80%);\n}\n'],sourceRoot:""}]);const F=P},903:(t,A,x)=>{"use strict";x.d(A,{Z:()=>F});var U=x(1799),k=x.n(U),D=x(2609),P=x.n(D)()(k());P.push([t.id,'.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position{display:inline;pointer-events:none;position:relative}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{position:absolute;width:0}.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__selection-handle,.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__type-around{display:none}.ck.ck-clipboard-drop-target-line{pointer-events:none;position:absolute}:root{--ck-clipboard-drop-target-dot-width:12px;--ck-clipboard-drop-target-dot-height:8px;--ck-clipboard-drop-target-color:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);bottom:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);margin-left:-1px;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span:after{border-color:var(--ck-clipboard-drop-target-color) transparent transparent transparent;border-style:solid;border-width:calc(var(--ck-clipboard-drop-target-dot-height)) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5);content:"";display:block;height:0;left:50%;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);transform:translateX(-50%);width:0}.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range{outline:var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color)!important}.ck.ck-editor__editable .ck-widget:-webkit-drag{zoom:.6;outline:none!important}.ck.ck-clipboard-drop-target-line{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);height:0;margin-top:-1px}.ck.ck-clipboard-drop-target-line:before{border-style:solid;content:"";height:0;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-width)*-.5);width:0}[dir=ltr] .ck.ck-clipboard-drop-target-line:before{border-color:transparent transparent transparent var(--ck-clipboard-drop-target-color);border-width:calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5) var(--ck-clipboard-drop-target-dot-height);left:-1px}[dir=rtl] .ck.ck-clipboard-drop-target-line:before{border-color:transparent var(--ck-clipboard-drop-target-color) transparent transparent;border-width:calc(var(--ck-clipboard-drop-target-dot-width)*.5) var(--ck-clipboard-drop-target-dot-height) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0;right:-1px}',"",{version:3,sources:["webpack://./../ckeditor5-clipboard/theme/clipboard.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-clipboard/clipboard.css"],names:[],mappings:"AASC,8DACC,cAAe,CAEf,mBAAoB,CADpB,iBAOD,CAJC,mEACC,iBAAkB,CAClB,OACD,CAWA,qJACC,YACD,CAIF,kCAEC,mBAAoB,CADpB,iBAED,CC9BA,MACC,yCAA0C,CAC1C,yCAA0C,CAC1C,6DACD,CAOE,mEAIC,gDAAiD,CADjD,sDAAuD,CAFvD,2DAA8D,CAI9D,gBAAiB,CAHjB,wDAqBD,CAfC,yEAWC,sFAAuF,CAEvF,kBAAmB,CADnB,qKAA0K,CAX1K,UAAW,CAIX,aAAc,CAFd,QAAS,CAIT,QAAS,CADT,iBAAkB,CAElB,wDAA2D,CAE3D,0BAA2B,CAR3B,OAYD,CAOF,kEACC,gGACD,CAKA,gDACC,OAAS,CACT,sBACD,CAGD,kCAGC,gDAAiD,CADjD,sDAAuD,CADvD,QAAS,CAGT,eAwBD,CAtBC,yCAMC,kBAAmB,CALnB,UAAW,CAIX,QAAS,CAHT,iBAAkB,CAClB,uDAA0D,CAC1D,OAiBD,CArBA,mDAYE,sFAAuF,CADvF,+JAAoK,CAFpK,SAYF,CArBA,mDAmBE,sFAAuF,CADvF,+JAAmK,CAFnK,UAKF",sourcesContent:["/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\tdisplay: inline;\n\t\tposition: relative;\n\t\tpointer-events: none;\n\n\t\t& span {\n\t\t\tposition: absolute;\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\t& > .ck-widget__selection-handle {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t& > .ck-widget__type-around {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n.ck.ck-clipboard-drop-target-line {\n\tposition: absolute;\n\tpointer-events: none;\n}\n","/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import \"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\";\n\n:root {\n\t--ck-clipboard-drop-target-dot-width: 12px;\n\t--ck-clipboard-drop-target-dot-height: 8px;\n\t--ck-clipboard-drop-target-color: var(--ck-color-focus-border);\n}\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\t& span {\n\t\t\tbottom: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\t\t\tbackground: var(--ck-clipboard-drop-target-color);\n\t\t\tmargin-left: -1px;\n\n\t\t\t/* The triangle above the marker */\n\t\t\t&::after {\n\t\t\t\tcontent: '';\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 50%;\n\t\t\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\tborder-color: var(--ck-clipboard-drop-target-color) transparent transparent transparent;\n\t\t\t\tborder-width: calc(var(--ck-clipboard-drop-target-dot-height)) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width));\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Styles of the widget that it a drop target.\n\t */\n\t& .ck-widget.ck-clipboard-drop-target-range {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color) !important;\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\tzoom: 0.6;\n\t\toutline: none !important;\n\t}\n}\n\n.ck.ck-clipboard-drop-target-line {\n\theight: 0;\n\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\tbackground: var(--ck-clipboard-drop-target-color);\n\tmargin-top: -1px;\n\n\t&::before {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-width));\n\t\twidth: 0;\n\t\theight: 0;\n\t\tborder-style: solid;\n\n\t\t@mixin ck-dir ltr {\n\t\t\tleft: -1px;\n\n\t\t\tborder-width: calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height);\n\t\t\tborder-color: transparent transparent transparent var(--ck-clipboard-drop-target-color);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tright: -1px;\n\n\t\t\tborder-width:calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0;\n\t\t\tborder-color: transparent var(--ck-clipboard-drop-target-color) transparent transparent;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const F=P},3143:(t,A,x)=>{"use strict";x.d(A,{Z:()=>F});var U=x(1799),k=x.n(U),D=x(2609),P=x.n(D)()(k());P.push([t.id,".ck.ck-editor{position:relative}.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar{z-index:var(--ck-z-modal)}.ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-toolbar,.ck.ck-editor__top .ck-sticky-panel .ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-bottom-width:0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar{border-bottom-width:1px;border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:0}.ck.ck-editor__main>.ck-editor__editable{background:var(--ck-color-base-background);border-radius:0}.ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,.ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}.ck.ck-editor__main>.ck-editor__editable:not(.ck-focused){border-color:var(--ck-color-base-border)}","",{version:3,sources:["webpack://./../ckeditor5-editor-classic/theme/classiceditor.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-editor-classic/classiceditor.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,cAIC,iBAMD,CAJC,2DAEC,yBACD,CCLC,gDCED,eDKC,CAPA,uICMA,qCAAsC,CDJpC,2BAA4B,CAC5B,4BAIF,CAPA,gDAMC,qBACD,CAEA,iFACC,uBAAwB,CCR1B,eDaC,CANA,yMCHA,qCAAsC,CDOpC,eAEF,CAKF,yCAEC,0CAA2C,CCpB3C,eD8BD,CAZA,yHCdE,qCAAsC,CDmBtC,wBAAyB,CACzB,yBAMF,CAHC,0DACC,wCACD",sourcesContent:["/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor {\n\t/* All the elements within `.ck-editor` are positioned relatively to it.\n\t If any element needs to be positioned with respect to the , etc.,\n\t it must land outside of the `.ck-editor` in DOM. */\n\tposition: relative;\n\n\t& .ck-editor__top .ck-sticky-panel .ck-toolbar {\n\t\t/* https://github.com/ckeditor/ckeditor5-editor-classic/issues/62 */\n\t\tz-index: var(--ck-z-modal);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../mixins/_rounded.css";\n\n.ck.ck-editor__top {\n\t& .ck-sticky-panel {\n\t\t& .ck-toolbar {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\n\t\t\tborder-bottom-width: 0;\n\t\t}\n\n\t\t& .ck-sticky-panel__content_sticky .ck-toolbar {\n\t\t\tborder-bottom-width: 1px;\n\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* Note: Use ck-editor__main to make sure these styles don\'t apply to other editor types */\n.ck.ck-editor__main > .ck-editor__editable {\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/113 */\n\tbackground: var(--ck-color-base-background);\n\n\t@mixin ck-rounded-corners {\n\t\tborder-top-left-radius: 0;\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&:not(.ck-focused) {\n\t\tborder-color: var(--ck-color-base-border);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const F=P},4717:(t,A,x)=>{"use strict";x.d(A,{Z:()=>F});var U=x(1799),k=x.n(U),D=x(2609),P=x.n(D)()(k());P.push([t.id,".ck .ck-placeholder,.ck.ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{content:attr(data-placeholder);left:0;pointer-events:none;position:absolute;right:0}.ck.ck-read-only .ck-placeholder:before{display:none}.ck.ck-reset_all .ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{color:var(--ck-color-engine-placeholder-text);cursor:text}","",{version:3,sources:["webpack://./../ckeditor5-engine/theme/placeholder.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-engine/placeholder.css"],names:[],mappings:"AAMA,uCAEC,iBAWD,CATC,qDAIC,8BAA+B,CAF/B,MAAO,CAKP,mBAAoB,CANpB,iBAAkB,CAElB,OAKD,CAKA,wCACC,YACD,CAQD,iCACC,iBACD,CC5BC,qDAEC,6CAA8C,CAD9C,WAED",sourcesContent:["/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder,\n.ck .ck-placeholder {\n\tposition: relative;\n\n\t&::before {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tcontent: attr(data-placeholder);\n\n\t\t/* See ckeditor/ckeditor5#469. */\n\t\tpointer-events: none;\n\t}\n}\n\n/* See ckeditor/ckeditor5#1987. */\n.ck.ck-read-only .ck-placeholder {\n\t&::before {\n\t\tdisplay: none;\n\t}\n}\n\n/*\n * Rules for the `ck-placeholder` are loaded before the rules for `ck-reset_all` in the base CKEditor 5 DLL build.\n * This fix overwrites the incorrectly set `position: static` from `ck-reset_all`.\n * See https://github.com/ckeditor/ckeditor5/issues/11418.\n */\n.ck.ck-reset_all .ck-placeholder {\n\tposition: relative;\n}\n","/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder, .ck .ck-placeholder {\n\t&::before {\n\t\tcursor: text;\n\t\tcolor: var(--ck-color-engine-placeholder-text);\n\t}\n}\n"],sourceRoot:""}]);const F=P},9315:(t,A,x)=>{"use strict";x.d(A,{Z:()=>F});var U=x(1799),k=x.n(U),D=x(2609),P=x.n(D)()(k());P.push([t.id,".ck.ck-editor__editable span[data-ck-unsafe-element]{display:none}","",{version:3,sources:["webpack://./../ckeditor5-engine/theme/renderer.css"],names:[],mappings:"AAMA,qDACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Elements marked by the Renderer as hidden should be invisible in the editor. */\n.ck.ck-editor__editable span[data-ck-unsafe-element] {\n\tdisplay: none;\n}\n"],sourceRoot:""}]);const F=P},8733:(t,A,x)=>{"use strict";x.d(A,{Z:()=>F});var U=x(1799),k=x.n(U),D=x(2609),P=x.n(D)()(k());P.push([t.id,".ck.ck-heading_heading1{font-size:20px}.ck.ck-heading_heading2{font-size:17px}.ck.ck-heading_heading3{font-size:14px}.ck[class*=ck-heading_heading]{font-weight:700}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item{min-width:18em}","",{version:3,sources:["webpack://./../ckeditor5-heading/theme/heading.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-heading/heading.css"],names:[],mappings:"AAKA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,+BACC,eACD,CCZC,2EACC,SACD,CAEA,uEACC,cACD",sourcesContent:['/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-heading_heading1 {\n\tfont-size: 20px;\n}\n\n.ck.ck-heading_heading2 {\n\tfont-size: 17px;\n}\n\n.ck.ck-heading_heading3 {\n\tfont-size: 14px;\n}\n\n.ck[class*="ck-heading_heading"] {\n\tfont-weight: bold;\n}\n',"/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Resize dropdown's button label. */\n.ck.ck-dropdown.ck-heading-dropdown {\n\t& .ck-dropdown__button .ck-button__label {\n\t\twidth: 8em;\n\t}\n\n\t& .ck-dropdown__panel .ck-list__item {\n\t\tmin-width: 18em;\n\t}\n}\n"],sourceRoot:""}]);const F=P},3508:(t,A,x)=>{"use strict";x.d(A,{Z:()=>F});var U=x(1799),k=x.n(U),D=x(2609),P=x.n(D)()(k());P.push([t.id,".ck-content .image{clear:both;display:table;margin:.9em auto;min-width:50px;text-align:center}.ck-content .image img{display:block;height:auto;margin:0 auto;max-width:100%;min-width:100%}.ck-content .image-inline{align-items:flex-start;display:inline-flex;max-width:100%}.ck-content .image-inline picture{display:flex}.ck-content .image-inline img,.ck-content .image-inline picture{flex-grow:1;flex-shrink:1;max-width:100%}.ck.ck-editor__editable .image>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}.ck.ck-editor__editable .image{z-index:1}.ck.ck-editor__editable .image.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline{z-index:1}.ck.ck-editor__editable .image-inline.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection{display:none}.ck.ck-editor__editable .image-inline img{height:auto}.ck.ck-editor__editable td .image-inline img,.ck.ck-editor__editable th .image-inline img{max-width:none}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/image.css"],names:[],mappings:"AAMC,mBAEC,UAAW,CADX,aAAc,CAOd,gBAAkB,CAGlB,cAAe,CARf,iBA2BD,CAjBC,uBAEC,aAAc,CAad,WAAY,CAVZ,aAAc,CAGd,cAAe,CAGf,cAKD,CAGD,0BAYC,sBAAuB,CANvB,mBAAoB,CAGpB,cAoBD,CAdC,kCACC,YACD,CAGA,gEAGC,WAAY,CACZ,aAAc,CAGd,cACD,CAUD,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAKA,+BACC,SASD,CAHC,kDACC,SACD,CAMD,sCACC,SAkBD,CAZC,yDACC,SAUD,CAHC,qEACC,YACD,CAMF,0CACC,WACD,CAMC,0FACC,cACD",sourcesContent:['/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content {\n\t& .image {\n\t\tdisplay: table;\n\t\tclear: both;\n\t\ttext-align: center;\n\n\t\t/* Make sure there is some space between the content and the image. Center image by default. */\n\t\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\t \tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\t\tmargin: 0.9em auto;\n\n\t\t/* Make sure the caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */\n\t\tmin-width: 50px;\n\n\t\t& img {\n\t\t\t/* Prevent unnecessary margins caused by line-height (see #44). */\n\t\t\tdisplay: block;\n\n\t\t\t/* Center the image if its width is smaller than the content\'s width. */\n\t\t\tmargin: 0 auto;\n\n\t\t\t/* Make sure the image never exceeds the size of the parent container (ckeditor/ckeditor5-ui#67). */\n\t\t\tmax-width: 100%;\n\n\t\t\t/* Make sure the image is never smaller than the parent container (See: https://github.com/ckeditor/ckeditor5/issues/9300). */\n\t\t\tmin-width: 100%;\n\n\t\t\t/* Keep proportions of the block image if the height is set and the image is wider than the editor width.\n\t\t\tSee https://github.com/ckeditor/ckeditor5/issues/14542. */\n\t\t\theight: auto;\n\t\t}\n\t}\n\n\t& .image-inline {\n\t\t/*\n\t\t * Normally, the .image-inline would have "display: inline-block" and "img { width: 100% }" (to follow the wrapper while resizing).\n\t\t * Unfortunately, together with "srcset", it gets automatically stretched up to the width of the editing root.\n\t\t * This strange behavior does not happen with inline-flex.\n\t\t */\n\t\tdisplay: inline-flex;\n\n\t\t/* While being resized, don\'t allow the image to exceed the width of the editing root. */\n\t\tmax-width: 100%;\n\n\t\t/* This is required by Safari to resize images in a sensible way. Without this, the browser breaks the ratio. */\n\t\talign-items: flex-start;\n\n\t\t/* When the picture is present it must act as a flex container to let the img resize properly */\n\t\t& picture {\n\t\t\tdisplay: flex;\n\t\t}\n\n\t\t/* When the picture is present, it must act like a resizable img. */\n\t\t& picture,\n\t\t& img {\n\t\t\t/* This is necessary for the img to span the entire .image-inline wrapper and to resize properly. */\n\t\t\tflex-grow: 1;\n\t\t\tflex-shrink: 1;\n\n\t\t\t/* Prevents overflowing the editing root boundaries when an inline image is very wide. */\n\t\t\tmax-width: 100%;\n\t\t}\n\t}\n}\n\n.ck.ck-editor__editable {\n\t/*\n\t * Inhertit the content styles padding of the in case the integration overrides `text-align: center`\n\t * of `.image` (e.g. to the left/right). This ensures the placeholder stays at the padding just like the native\n\t * caret does, and not at the edge of .\n\t */\n\t& .image > figcaption.ck-placeholder::before {\n\t\tpadding-left: inherit;\n\t\tpadding-right: inherit;\n\n\t\t/*\n\t\t * Make sure the image caption placeholder doesn\'t overflow the placeholder area.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\n\t\t */\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t/*\n\t * See https://github.com/ckeditor/ckeditor5/issues/15115.\n\t */\n\t& .image {\n\t\tz-index: 1;\n\n\t\t/*\n\t\t * Make sure the selected image always stays on top of its siblings.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\n\t\t */\n\t\t&.ck-widget_selected {\n\t\t\tz-index: 2;\n\t\t}\n\t}\n\n\t/*\n\t * See https://github.com/ckeditor/ckeditor5/issues/15115.\n\t */\n\t& .image-inline {\n\t\tz-index: 1;\n\n\t\t/*\n\t\t * Make sure the selected inline image always stays on top of its siblings.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\n\t\t */\n\t\t&.ck-widget_selected {\n\t\t\tz-index: 2;\n\n\t\t\t/*\n\t\t\t * Make sure the native browser selection style is not displayed.\n\t\t\t * Inline image widgets have their own styles for the selected state and\n\t\t\t * leaving this up to the browser is asking for a visual collision.\n\t\t\t */\n\t\t\t& ::selection {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Keep proportions of the inline image if the height is set and the image is wider than the editor width.\n\tSee https://github.com/ckeditor/ckeditor5/issues/14542. */\n\t& .image-inline img {\n\t\theight: auto;\n\t}\n\n\t/* The inline image nested in the table should have its original size if not resized.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\n\t& td,\n\t& th {\n\t\t& .image-inline img {\n\t\t\tmax-width: none;\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const F=P},2640:(t,A,x)=>{"use strict";x.d(A,{Z:()=>F});var U=x(1799),k=x.n(U),D=x(2609),P=x.n(D)()(k());P.push([t.id,":root{--ck-color-image-caption-background:#f7f7f7;--ck-color-image-caption-text:#333;--ck-color-image-caption-highligted-background:#fd0}.ck-content .image>figcaption{background-color:var(--ck-color-image-caption-background);caption-side:bottom;color:var(--ck-color-image-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;word-break:break-word}.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:ck-image-caption-highlight .6s ease-out}@keyframes ck-image-caption-highlight{0%{background-color:var(--ck-color-image-caption-highligted-background)}to{background-color:var(--ck-color-image-caption-background)}}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imagecaption.css"],names:[],mappings:"AAKA,MACC,2CAAoD,CACpD,kCAA8C,CAC9C,mDACD,CAGA,8BAKC,yDAA0D,CAH1D,mBAAoB,CAEpB,wCAAyC,CAHzC,qBAAsB,CAMtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,qBAMD,CAGA,qEACC,iDACD,CAEA,sCACC,GACC,oEACD,CAEA,GACC,yDACD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-image-caption-background: hsl(0, 0%, 97%);\n\t--ck-color-image-caption-text: hsl(0, 0%, 20%);\n\t--ck-color-image-caption-highligted-background: hsl(52deg 100% 50%);\n}\n\n/* Content styles */\n.ck-content .image > figcaption {\n\tdisplay: table-caption;\n\tcaption-side: bottom;\n\tword-break: break-word;\n\tcolor: var(--ck-color-image-caption-text);\n\tbackground-color: var(--ck-color-image-caption-background);\n\tpadding: .6em;\n\tfont-size: .75em;\n\toutline-offset: -1px;\n}\n\n/* Editing styles */\n.ck.ck-editor__editable .image > figcaption.image__caption_highlighted {\n\tanimation: ck-image-caption-highlight .6s ease-out;\n}\n\n@keyframes ck-image-caption-highlight {\n\t0% {\n\t\tbackground-color: var(--ck-color-image-caption-highligted-background);\n\t}\n\n\t100% {\n\t\tbackground-color: var(--ck-color-image-caption-background);\n\t}\n}\n"],sourceRoot:""}]);const F=P},3535:(t,A,x)=>{"use strict";x.d(A,{Z:()=>F});var U=x(1799),k=x.n(U),D=x(2609),P=x.n(D)()(k());P.push([t.id,".ck.ck-image-insert__panel{padding:var(--ck-spacing-large)}.ck.ck-image-insert__ck-finder-button{border:1px solid #ccc;border-radius:var(--ck-border-radius);display:block;margin:var(--ck-spacing-standard) auto;width:100%}.ck.ck-splitbutton>.ck-file-dialog-button.ck-button{border:none;margin:0;padding:0}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageinsert.css"],names:[],mappings:"AAKA,2BACC,+BACD,CAEA,sCAIC,qBAAiC,CACjC,qCAAsC,CAJtC,aAAc,CAEd,sCAAuC,CADvC,UAID,CAGA,oDAGC,WAAY,CADZ,QAAS,CADT,SAGD",sourcesContent:["/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-image-insert__panel {\n\tpadding: var(--ck-spacing-large);\n}\n\n.ck.ck-image-insert__ck-finder-button {\n\tdisplay: block;\n\twidth: 100%;\n\tmargin: var(--ck-spacing-standard) auto;\n\tborder: 1px solid hsl(0, 0%, 80%);\n\tborder-radius: var(--ck-border-radius);\n}\n\n/* https://github.com/ckeditor/ckeditor5/issues/7986 */\n.ck.ck-splitbutton > .ck-file-dialog-button.ck-button {\n\tpadding: 0;\n\tmargin: 0;\n\tborder: none;\n}\n"],sourceRoot:""}]);const F=P},1568:(t,A,x)=>{"use strict";x.d(A,{Z:()=>F});var U=x(1799),k=x.n(U),D=x(2609),P=x.n(D)()(k());P.push([t.id,".ck.ck-image-insert-form:focus{outline:none}.ck.ck-form__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.ck.ck-form__row>:not(.ck-label){flex-grow:1}.ck.ck-form__row.ck-image-insert-form__action-row{margin-top:var(--ck-spacing-standard)}.ck.ck-form__row.ck-image-insert-form__action-row .ck-button-cancel,.ck.ck-form__row.ck-image-insert-form__action-row .ck-button-save{justify-content:center}.ck.ck-form__row.ck-image-insert-form__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageinsertformrowview.css"],names:[],mappings:"AAMC,+BAEC,YACD,CAGD,iBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAmBD,CAhBC,iCACC,WACD,CAEA,kDACC,qCAUD,CARC,sIAEC,sBACD,CAEA,+EACC,0BACD",sourcesContent:["/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-image-insert-form {\n\t&:focus {\n\t\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\n\t\toutline: none;\n\t}\n}\n\n.ck.ck-form__row {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: space-between;\n\n\t/* Ignore labels that work as fieldset legends */\n\t& > *:not(.ck-label) {\n\t\tflex-grow: 1;\n\t}\n\n\t&.ck-image-insert-form__action-row {\n\t\tmargin-top: var(--ck-spacing-standard);\n\n\t\t& .ck-button-save,\n\t\t& .ck-button-cancel {\n\t\t\tjustify-content: center;\n\t\t}\n\n\t\t& .ck-button .ck-button__label {\n\t\t\tcolor: var(--ck-color-text);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const F=P},6270:(t,A,x)=>{"use strict";x.d(A,{Z:()=>F});var U=x(1799),k=x.n(U),D=x(2609),P=x.n(D)()(k());P.push([t.id,".ck-content img.image_resized{height:auto}.ck-content .image.image_resized{box-sizing:border-box;display:block;max-width:100%}.ck-content .image.image_resized img{width:100%}.ck-content .image.image_resized>figcaption{display:block}.ck.ck-editor__editable td .image-inline.image_resized img,.ck.ck-editor__editable th .image-inline.image_resized img{max-width:100%}[dir=ltr] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-left:var(--ck-spacing-standard)}.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label{width:4em}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageresize.css"],names:[],mappings:"AAMA,8BACC,WACD,CAEA,iCAQC,qBAAsB,CADtB,aAAc,CANd,cAkBD,CATC,qCAEC,UACD,CAEA,4CAEC,aACD,CAQC,sHACC,cACD,CAIF,oFACC,uCACD,CAEA,oFACC,sCACD,CAEA,oEACC,SACD",sourcesContent:['/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Preserve aspect ratio of the resized image after introducing image height attribute. */\n.ck-content img.image_resized {\n\theight: auto;\n}\n\n.ck-content .image.image_resized {\n\tmax-width: 100%;\n\t/*\n\tThe `
").replace(/\r?\n/g,"
").replace(/\t/g," ").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g," ")).includes("
")||G.includes("
"))&&(G=`
${G}
`),dt=G),N=this.editor.data.htmlProcessor.toView(dt)}var G;const W=new lt(this,"inputTransformation");this.fire(W,{content:N,dataTransfer:E,targetRanges:M.targetRanges,method:M.method}),W.stop.called&&C.stop(),u.scrollToTheSelection()},{priority:"low"}),this.listenTo(this,"inputTransformation",(C,M)=>{if(M.content.isEmpty)return;const E=this.editor.data.toModel(M.content,"$clipboardHolder");0!=E.childCount&&(C.stop(),c.change(()=>{this.fire("contentInsertion",{content:E,method:M.method,dataTransfer:M.dataTransfer,targetRanges:M.targetRanges})}))},{priority:"low"}),this.listenTo(this,"contentInsertion",(C,M)=>{M.resultRange=c.insertContent(M.content)},{priority:"low"})}_setupCopyCut(){const r=this.editor,c=r.model.document,u=r.editing.view.document,_=(C,M)=>{const E=M.dataTransfer;M.preventDefault(),this._fireOutputTransformationEvent(E,c.selection,C.name)};this.listenTo(u,"copy",_,{priority:"low"}),this.listenTo(u,"cut",(C,M)=>{r.model.canEditAt(r.model.document.selection)?_(C,M):M.preventDefault()},{priority:"low"}),this.listenTo(this,"outputTransformation",(C,M)=>{const E=r.data.toView(M.content);u.fire("clipboardOutput",{dataTransfer:M.dataTransfer,content:E,method:M.method})},{priority:"low"}),this.listenTo(u,"clipboardOutput",(C,M)=>{M.content.isEmpty||(M.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(M.content)),M.dataTransfer.setData("text/plain",g5(M.content))),"cut"==M.method&&r.model.deleteContent(c.selection)},{priority:"low"})}}class v5{constructor(r,c=20){this._batch=null,this.model=r,this._size=0,this.limit=c,this._isLocked=!1,this._changeCallback=(u,_)=>{_.isLocal&&_.isUndoable&&_!==this._batch&&this._reset(!0)},this._selectionChangeCallback=()=>{this._reset()},this.model.document.on("change",this._changeCallback),this.model.document.selection.on("change:range",this._selectionChangeCallback),this.model.document.selection.on("change:attribute",this._selectionChangeCallback)}get batch(){return this._batch||(this._batch=this.model.createBatch({isTyping:!0})),this._batch}get size(){return this._size}input(r){this._size+=r,this._size>=this.limit&&this._reset(!0)}get isLocked(){return this._isLocked}lock(){this._isLocked=!0}unlock(){this._isLocked=!1}destroy(){this.model.document.off("change",this._changeCallback),this.model.document.selection.off("change:range",this._selectionChangeCallback),this.model.document.selection.off("change:attribute",this._selectionChangeCallback)}_reset(r=!1){this.isLocked&&!r||(this._batch=null,this._size=0)}}class D8 extends Ta{constructor(r,c){super(r),this._buffer=new v5(r.model,c),this._isEnabledBasedOnSelection=!1}get buffer(){return this._buffer}destroy(){super.destroy(),this._buffer.destroy()}execute(r={}){const c=this.editor.model,u=c.document,_=r.text||"",C=_.length;let M=u.selection;if(r.selection?M=r.selection:r.range&&(M=c.createSelection(r.range)),!c.canEditAt(M))return;const E=r.resultRange;c.enqueueChange(this._buffer.batch,N=>{this._buffer.lock(),c.deleteContent(M),_&&c.insertContent(N.createText(_,u.selection.getAttributes()),M),E?N.setSelection(E):M.is("documentSelection")||N.setSelection(M),this._buffer.unlock(),this._buffer.input(C)})}}const P8=["insertText","insertReplacementText"];class Bb extends Mu{constructor(r){super(r),this.focusObserver=r.getObserver(V1),D_isAndroid&&P8.push("insertCompositionText");const c=r.document;c.on("beforeinput",(u,_)=>{if(!this.isEnabled)return;const{data:C,targetRanges:M,inputType:E,domEvent:N}=_;if(!P8.includes(E))return;this.focusObserver.flush();const G=new lt(c,"insertText");c.fire(G,new Gd(r,N,{text:C,selection:r.createSelection(M)})),G.stop.called&&u.stop()}),c.on("compositionend",(u,{data:_,domEvent:C})=>{this.isEnabled&&!D_isAndroid&&_&&c.fire("insertText",new Gd(r,C,{text:_,selection:c.selection}))},{priority:"lowest"})}observe(){}stopObserving(){}}class Vb extends lo{static get pluginName(){return"Input"}init(){const r=this.editor,c=r.model,u=r.editing.view,_=c.document.selection;u.addObserver(Bb);const C=new D8(r,r.config.get("typing.undoStep")||20);r.commands.add("insertText",C),r.commands.add("input",C),this.listenTo(u.document,"insertText",(M,E)=>{u.document.isComposing||E.preventDefault();const{text:N,selection:G,resultRange:W}=E,dt=Array.from(G.getRanges()).map(xe=>r.editing.mapper.toModelRange(xe));let Zt=N;if(D_isAndroid){const xe=Array.from(dt[0].getItems()).reduce((Ee,ln)=>Ee+(ln.is("$textProxy")?ln.data:""),"");xe&&(xe.length<=Zt.length?Zt.startsWith(xe)&&(Zt=Zt.substring(xe.length),dt[0].start=dt[0].start.getShiftedBy(xe.length)):xe.startsWith(Zt)&&(dt[0].start=dt[0].start.getShiftedBy(Zt.length),Zt=""))}const ue={text:Zt,selection:c.createSelection(dt)};W&&(ue.resultRange=r.editing.mapper.toModelRange(W)),r.execute("insertText",ue),u.scrollToTheSelection()}),D_isAndroid?this.listenTo(u.document,"keydown",(M,E)=>{!_.isCollapsed&&229==E.keyCode&&u.document.isComposing&&b5(c,C)}):this.listenTo(u.document,"compositionstart",()=>{_.isCollapsed||b5(c,C)})}}function b5(m,r){if(!r.isEnabled)return;const c=r.buffer;c.lock(),m.enqueueChange(c.batch,()=>{m.deleteContent(m.document.selection)}),c.unlock()}class cf extends Ta{constructor(r,c){super(r),this.direction=c,this._buffer=new v5(r.model,r.config.get("typing.undoStep")),this._isEnabledBasedOnSelection=!1}get buffer(){return this._buffer}execute(r={}){const c=this.editor.model,u=c.document;c.enqueueChange(this._buffer.batch,_=>{this._buffer.lock();const C=_.createSelection(r.selection||u.selection);if(!c.canEditAt(C))return;const M=r.sequence||1,E=C.isCollapsed;if(C.isCollapsed&&c.modifySelection(C,{direction:this.direction,unit:r.unit,treatEmojiAsSingleUnit:!0}),this._shouldEntireContentBeReplacedWithParagraph(M))return void this._replaceEntireContentWithParagraph(_);if(this._shouldReplaceFirstBlockWithParagraph(C,M))return void this.editor.execute("paragraph",{selection:C});if(C.isCollapsed)return;let N=0;C.getFirstRange().getMinimalFlatRanges().forEach(G=>{N+=ne(G.getWalker({singleCharacters:!0,ignoreElementEnd:!0,shallow:!0}))}),c.deleteContent(C,{doNotResetEntireContent:E,direction:this.direction}),this._buffer.input(N),_.setSelection(C),this._buffer.unlock()})}_shouldEntireContentBeReplacedWithParagraph(r){if(r>1)return!1;const c=this.editor.model,u=c.document.selection,_=c.schema.getLimitElement(u);if(!u.isCollapsed||!u.containsEntireContent(_)||!c.schema.checkChild(_,"paragraph"))return!1;const C=_.getChild(0);return!C||!C.is("element","paragraph")}_replaceEntireContentWithParagraph(r){const c=this.editor.model,_=c.schema.getLimitElement(c.document.selection),C=r.createElement("paragraph");r.remove(r.createRangeIn(_)),r.insert(C,_),r.setSelection(C,0)}_shouldReplaceFirstBlockWithParagraph(r,c){const u=this.editor.model;if(c>1||"backward"!=this.direction||!r.isCollapsed)return!1;const _=r.getFirstPosition(),C=u.schema.getLimitElement(_),M=C.getChild(0);return _.parent==M&&!!r.containsEntireContent(M)&&!!u.schema.checkChild(C,"paragraph")&&"paragraph"!=M.name}}const n2="selection",Ih="backward",Za="forward",jb={deleteContent:{unit:n2,direction:Ih},deleteContentBackward:{unit:"codePoint",direction:Ih},deleteWordBackward:{unit:"word",direction:Ih},deleteHardLineBackward:{unit:n2,direction:Ih},deleteSoftLineBackward:{unit:n2,direction:Ih},deleteContentForward:{unit:"character",direction:Za},deleteWordForward:{unit:"word",direction:Za},deleteHardLineForward:{unit:n2,direction:Za},deleteSoftLineForward:{unit:n2,direction:Za}};class Jb extends Mu{constructor(r){super(r);const c=r.document;let u=0;c.on("keydown",()=>{u++}),c.on("keyup",()=>{u=0}),c.on("beforeinput",(_,C)=>{if(!this.isEnabled)return;const{targetRanges:M,domEvent:E,inputType:N}=C,G=jb[N];if(!G)return;const W={direction:G.direction,unit:G.unit,sequence:u};W.unit==n2&&(W.selectionToRemove=r.createSelection(M[0])),"deleteContentBackward"===N&&(D_isAndroid&&(W.sequence=1),function(Zt){if(1!=Zt.length||Zt[0].isCollapsed)return!1;const ue=Zt[0].getWalker({direction:"backward",singleCharacters:!0,ignoreElementEnd:!0});let xe=0;for(const{nextPosition:Ee}of ue){if(Ee.parent.is("$text")){const ln=Ee.parent.data,Mn=Ee.offset;if(cn(ln,Mn)||fd(ln,Mn)||Zl(ln,Mn))continue;xe++}else xe++;if(xe>1)return!0}return!1}(M)&&(W.unit=n2,W.selectionToRemove=r.createSelection(M)));const dt=new yp(c,"delete",M[0]);c.fire(dt,new Gd(r,E,W)),dt.stop.called&&_.stop()}),D_isBlink&&function(_){const C=_.view,M=C.document;let E=null,N=!1;function G(dt){return dt==$a.backspace||dt==$a.delete}function W(dt){return dt==$a.backspace?Ih:Za}M.on("keydown",(dt,{keyCode:Zt})=>{E=Zt,N=!1}),M.on("keyup",(dt,{keyCode:Zt,domEvent:ue})=>{const xe=M.selection,Ee=_.isEnabled&&Zt==E&&G(Zt)&&!xe.isCollapsed&&!N;if(E=null,Ee){const ln=xe.getFirstRange(),Mn=new yp(M,"delete",ln),di={unit:n2,direction:W(Zt),selectionToRemove:xe};M.fire(Mn,new Gd(C,ue,di))}}),M.on("beforeinput",(dt,{inputType:Zt})=>{const ue=jb[Zt];G(E)&&ue&&ue.direction==W(E)&&(N=!0)},{priority:"high"}),M.on("beforeinput",(dt,{inputType:Zt,data:ue})=>{E==$a.delete&&"insertText"==Zt&&"\x7f"==ue&&dt.stop()},{priority:"high"})}(this)}observe(){}stopObserving(){}}class t_ extends lo{static get pluginName(){return"Delete"}init(){const r=this.editor,c=r.editing.view,u=c.document,_=r.model.document;c.addObserver(Jb),this._undoOnBackspace=!1;const C=new cf(r,"forward");r.commands.add("deleteForward",C),r.commands.add("forwardDelete",C),r.commands.add("delete",new cf(r,"backward")),this.listenTo(u,"delete",(M,E)=>{u.isComposing||E.preventDefault();const{direction:N,sequence:G,selectionToRemove:W,unit:dt}=E,Zt="forward"===N?"deleteForward":"delete",ue={sequence:G};if("selection"==dt){const xe=Array.from(W.getRanges()).map(Ee=>r.editing.mapper.toModelRange(Ee));ue.selection=r.model.createSelection(xe)}else ue.unit=dt;r.execute(Zt,ue),c.scrollToTheSelection()},{priority:"low"}),this.editor.plugins.has("UndoEditing")&&(this.listenTo(u,"delete",(M,E)=>{this._undoOnBackspace&&"backward"==E.direction&&1==E.sequence&&"codePoint"==E.unit&&(this._undoOnBackspace=!1,r.execute("undo"),E.preventDefault(),M.stop())},{context:"$capture"}),this.listenTo(_,"change",()=>{this._undoOnBackspace=!1}))}requestUndoOnBackspace(){this.editor.plugins.has("UndoEditing")&&(this._undoOnBackspace=!0)}}class S8 extends lo{static get requires(){return[Vb,t_]}static get pluginName(){return"Typing"}}function T4(m,r){let c=m.start;return{text:Array.from(m.getWalker({ignoreElementEnd:!1})).reduce((u,{item:_})=>_.is("$text")||_.is("$textProxy")?u+_.data:(c=r.createPositionAfter(_),""),""),range:r.createRange(c,m.end)}}class Qb extends(we()){constructor(r,c){super(),this.model=r,this.testCallback=c,this._hasMatch=!1,this.set("isEnabled",!0),this.on("change:isEnabled",()=>{this.isEnabled?this._startListening():(this.stopListening(r.document.selection),this.stopListening(r.document))}),this._startListening()}get hasMatch(){return this._hasMatch}_startListening(){const r=this.model.document;this.listenTo(r.selection,"change:range",(c,{directChange:u})=>{u&&(r.selection.isCollapsed?this._evaluateTextBeforeSelection("selection"):this.hasMatch&&(this.fire("unmatched"),this._hasMatch=!1))}),this.listenTo(r,"change:data",(c,u)=>{!u.isUndo&&u.isLocal&&this._evaluateTextBeforeSelection("data",{batch:u})})}_evaluateTextBeforeSelection(r,c={}){const u=this.model,_=u.document.selection,C=u.createRange(u.createPositionAt(_.focus.parent,0),_.focus),{text:M,range:E}=T4(C,u),N=this.testCallback(M);if(!N&&this.hasMatch&&this.fire("unmatched"),this._hasMatch=!!N,N){const G=Object.assign(c,{text:M,range:E});"object"==typeof N&&Object.assign(G,N),this.fire(`matched:${r}`,G)}}}class C5 extends lo{constructor(r){super(r),this.attributes=new Set,this._overrideUid=null}static get pluginName(){return"TwoStepCaretMovement"}init(){const r=this.editor,_=r.locale,C=r.model.document.selection;this.listenTo(r.editing.view.document,"arrowKey",(M,E)=>{if(!C.isCollapsed||E.shiftKey||E.altKey||E.ctrlKey)return;const N=E.keyCode==$a.arrowright,G=E.keyCode==$a.arrowleft;if(!N&&!G)return;const W=_.contentLanguageDirection;let dt=!1;dt="ltr"===W&&N||"rtl"===W&&G?this._handleForwardMovement(E):this._handleBackwardMovement(E),!0===dt&&M.stop()},{context:"$text",priority:"highest"}),this._isNextGravityRestorationSkipped=!1,this.listenTo(C,"change:range",(M,E)=>{this._isNextGravityRestorationSkipped?this._isNextGravityRestorationSkipped=!1:this._isGravityOverridden&&(!E.directChange&&H0(C.getFirstPosition(),this.attributes)||this._restoreGravity())})}registerAttribute(r){this.attributes.add(r)}_handleForwardMovement(r){const c=this.attributes,u=this.editor.model.document.selection,_=u.getFirstPosition();return!(this._isGravityOverridden||_.isAtStart&&w4(u,c)||!H0(_,c)||(oa(r),this._overrideGravity(),0))}_handleBackwardMovement(r){const c=this.attributes,u=this.editor.model,_=u.document.selection,C=_.getFirstPosition();return this._isGravityOverridden?(oa(r),this._restoreGravity(),Zd(u,c,C),!0):C.isAtStart?!!w4(_,c)&&(oa(r),Zd(u,c,C),!0):(E=c,!(!H0(C.getShiftedBy(-1),E)||(C.isAtEnd&&!w4(_,c)&&H0(C,c)?(oa(r),Zd(u,c,C),0):(this._isNextGravityRestorationSkipped=!0,this._overrideGravity(),1))));var E}get _isGravityOverridden(){return!!this._overrideUid}_overrideGravity(){this._overrideUid=this.editor.model.change(r=>r.overrideSelectionGravity())}_restoreGravity(){this.editor.model.change(r=>{r.restoreSelectionGravity(this._overrideUid),this._overrideUid=null})}}function w4(m,r){for(const c of r)if(m.hasAttribute(c))return!0;return!1}function Zd(m,r,c){const u=c.nodeBefore;m.change(_=>{if(u){const C=[],M=m.schema.isObject(u)&&m.schema.isInline(u);for(const[E,N]of u.getAttributes())!m.schema.checkAttribute("$text",E)||M&&!1===m.schema.getAttributeProperties(E).copyFromObject||C.push([E,N]);_.setSelectionAttribute(C)}else _.removeSelectionAttribute(r)})}function oa(m){m.preventDefault()}function H0(m,r){const{nodeBefore:c,nodeAfter:u}=m;for(const _ of r){const C=c?c.getAttribute(_):void 0;if((u?u.getAttribute(_):void 0)!==C)return!0}return!1}const x5={copyright:{from:"(c)",to:"\xa9"},registeredTrademark:{from:"(r)",to:"\xae"},trademark:{from:"(tm)",to:"\u2122"},oneHalf:{from:/(^|[^/a-z0-9])(1\/2)([^/a-z0-9])$/i,to:[null,"\xbd",null]},oneThird:{from:/(^|[^/a-z0-9])(1\/3)([^/a-z0-9])$/i,to:[null,"\u2153",null]},twoThirds:{from:/(^|[^/a-z0-9])(2\/3)([^/a-z0-9])$/i,to:[null,"\u2154",null]},oneForth:{from:/(^|[^/a-z0-9])(1\/4)([^/a-z0-9])$/i,to:[null,"\xbc",null]},threeQuarters:{from:/(^|[^/a-z0-9])(3\/4)([^/a-z0-9])$/i,to:[null,"\xbe",null]},lessThanOrEqual:{from:"<=",to:"\u2264"},greaterThanOrEqual:{from:">=",to:"\u2265"},notEqual:{from:"!=",to:"\u2260"},arrowLeft:{from:"<-",to:"\u2190"},arrowRight:{from:"->",to:"\u2192"},horizontalEllipsis:{from:"...",to:"\u2026"},enDash:{from:/(^| )(--)( )$/,to:[null,"\u2013",null]},emDash:{from:/(^| )(---)( )$/,to:[null,"\u2014",null]},quotesPrimary:{from:$d('"'),to:[null,"\u201c",null,"\u201d"]},quotesSecondary:{from:$d("'"),to:[null,"\u2018",null,"\u2019"]},quotesPrimaryEnGb:{from:$d("'"),to:[null,"\u2018",null,"\u2019"]},quotesSecondaryEnGb:{from:$d('"'),to:[null,"\u201c",null,"\u201d"]},quotesPrimaryPl:{from:$d('"'),to:[null,"\u201e",null,"\u201d"]},quotesSecondaryPl:{from:$d("'"),to:[null,"\u201a",null,"\u2019"]}},U4={symbols:["copyright","registeredTrademark","trademark"],mathematical:["oneHalf","oneThird","twoThirds","oneForth","threeQuarters","lessThanOrEqual","greaterThanOrEqual","notEqual","arrowLeft","arrowRight"],typography:["horizontalEllipsis","enDash","emDash"],quotes:["quotesPrimary","quotesSecondary"]},A5=["symbols","mathematical","typography","quotes"];function Dl(m){return"string"==typeof m?new RegExp(`(${l5(m)})$`):m}function Z4(m){return"string"==typeof m?()=>[m]:m instanceof Array?()=>m:m}function y5(m){return(m.textNode?m.textNode:m.nodeAfter).getAttributes()}function $d(m){return new RegExp(`(^|\\s)(${m})([^${m}]*)(${m})$`)}function Ti(m,r,c,u){return u.createRange(zn(m,r,c,!0,u),zn(m,r,c,!1,u))}function zn(m,r,c,u,_){let C=m.textNode||(u?m.nodeBefore:m.nodeAfter),M=null;for(;C&&C.getAttribute(r)==c;)M=C,C=u?C.previousSibling:C.nextSibling;return M?_.createPositionAt(M,u?"before":"after"):m}function*H(m,r){for(const c of r)c&&m.getAttributeProperties(c[0]).copyOnEnter&&(yield c)}class Nh extends Ta{execute(){this.editor.model.change(r=>{this.enterBlock(r),this.fire("afterExecute",{writer:r})})}enterBlock(r){const c=this.editor.model,u=c.document.selection,_=c.schema,C=u.isCollapsed,M=u.getFirstRange(),E=M.start.parent,N=M.end.parent;if(_.isLimit(E)||_.isLimit(N))return C||E!=N||c.deleteContent(u),!1;if(C){const G=H(r.model.schema,u.getAttributes());return Oc(r,M.start),r.setSelectionAttribute(G),!0}{const G=!(M.start.isAtStart&&M.end.isAtEnd),W=E==N;if(c.deleteContent(u,{leaveUnmerged:G}),G){if(W)return Oc(r,u.focus),!0;r.setSelection(N,0)}}return!1}}function Oc(m,r){m.split(r),m.setSelection(r.parent.nextSibling,0)}const ny={insertParagraph:{isSoft:!1},insertLineBreak:{isSoft:!0}};class M4 extends Mu{constructor(r){super(r);const c=this.document;let u=!1;c.on("keydown",(_,C)=>{u=C.shiftKey}),c.on("beforeinput",(_,C)=>{if(!this.isEnabled)return;let M=C.inputType;D_isSafari&&u&&"insertParagraph"==M&&(M="insertLineBreak");const E=C.domEvent,N=ny[M];if(!N)return;const G=new yp(c,"enter",C.targetRanges[0]);c.fire(G,new Gd(r,E,{isSoft:N.isSoft})),G.stop.called&&_.stop()})}observe(){}stopObserving(){}}class z0 extends lo{static get pluginName(){return"Enter"}init(){const r=this.editor,c=r.editing.view,u=c.document;c.addObserver(M4),r.commands.add("enter",new Nh(r)),this.listenTo(u,"enter",(_,C)=>{u.isComposing||C.preventDefault(),C.isSoft||(r.execute("enter"),c.scrollToTheSelection())},{priority:"low"})}}class iy extends Ta{execute(){const r=this.editor.model,c=r.document;r.change(u=>{(function(_,C,M){const E=M.isCollapsed,N=M.getFirstRange(),W=N.end.parent,dt=N.start.parent==W;if(E){const Zt=H(_.schema,M.getAttributes());Ma(_,C,N.end),C.removeSelectionAttribute(M.getAttributeKeys()),C.setSelectionAttribute(Zt)}else{const Zt=!(N.start.isAtStart&&N.end.isAtEnd);_.deleteContent(M,{leaveUnmerged:Zt}),dt?Ma(_,C,M.focus):Zt&&C.setSelection(W,0)}})(r,u,c.selection),this.fire("afterExecute",{writer:u})})}refresh(){const r=this.editor.model;this.isEnabled=function(u,_){if(_.rangeCount>1)return!1;const C=_.anchor;if(!C||!u.checkChild(C,"softBreak"))return!1;const M=_.getFirstRange(),E=M.start.parent,N=M.end.parent;return!((k4(E,u)||k4(N,u))&&E!==N)}(r.schema,r.document.selection)}}function Ma(m,r,c){const u=r.createElement("softBreak");m.insertContent(u,c),r.setSelection(u,"after")}function k4(m,r){return!m.is("rootElement")&&(r.isLimit(m)||k4(m.parent,r))}class L8 extends lo{static get pluginName(){return"ShiftEnter"}init(){const r=this.editor,u=r.conversion,_=r.editing.view,C=_.document;r.model.schema.register("softBreak",{allowWhere:"$text",isInline:!0}),u.for("upcast").elementToElement({model:"softBreak",view:"br"}),u.for("downcast").elementToElement({model:"softBreak",view:(M,{writer:E})=>E.createEmptyElement("br")}),_.addObserver(M4),r.commands.add("shiftEnter",new iy(r)),this.listenTo(C,"enter",(M,E)=>{C.isComposing||E.preventDefault(),E.isSoft&&(r.execute("shiftEnter"),_.scrollToTheSelection())},{priority:"low"})}}class Wb extends(Le()){constructor(){super(...arguments),this._stack=[]}add(r,c){const u=this._stack,_=u[0];this._insertDescriptor(r);const C=u[0];_===C||e_(_,C)||this.fire("change:top",{oldDescriptor:_,newDescriptor:C,writer:c})}remove(r,c){const u=this._stack,_=u[0];this._removeDescriptor(r);const C=u[0];_===C||e_(_,C)||this.fire("change:top",{oldDescriptor:_,newDescriptor:C,writer:c})}_insertDescriptor(r){const c=this._stack,u=c.findIndex(C=>C.id===r.id);if(e_(r,c[u]))return;u>-1&&c.splice(u,1);let _=0;for(;c[_]&&O8(c[_],r);)_++;c.splice(_,0,r)}_removeDescriptor(r){const c=this._stack,u=c.findIndex(_=>_.id===r);u>-1&&c.splice(u,1)}}function e_(m,r){return m&&r&&m.priority==r.priority&&lf(m.classes)==lf(r.classes)}function O8(m,r){return m.priority>r.priority||!(m.prioritylf(r.classes)}function lf(m){return Array.isArray(m)?m.sort().join(","):m}const $b="ck-widget_selected";function Pl(m){return!!m.is("element")&&!!m.getCustomProperty("widget")}function uf(m,r,c={}){if(!m.is("containerElement"))throw new it("widget-to-widget-wrong-element-type",null,{element:m});return r.setAttribute("contenteditable","false",m),r.addClass("ck-widget",m),r.setCustomProperty("widget",!0,m),m.getFillerOffset=F8,r.setCustomProperty("widgetLabel",[],m),c.label&&(_=c.label,m.getCustomProperty("widgetLabel").push(_)),c.hasSelectionHandle&&function(u,_){const C=_.createUIElement("div",{class:"ck ck-widget__selection-handle"},function(M){const E=this.toDomElement(M),N=new Ps;return N.set("content",''),N.render(),E.appendChild(N.element),E});_.insert(_.createPositionAt(u,0),C),_.addClass(["ck-widget_with-selection-handle"],u)}(m,r),T5(m,r),m;var _}function E8(m,r,c){if(r.classes&&c.addClass(Ds(r.classes),m),r.attributes)for(const u in r.attributes)c.setAttribute(u,r.attributes[u],m)}function Kb(m,r,c){if(r.classes&&c.removeClass(Ds(r.classes),m),r.attributes)for(const u in r.attributes)c.removeAttribute(u,m)}function T5(m,r,c=E8,u=Kb){const _=new Wb;_.on("change:top",(C,M)=>{M.oldDescriptor&&u(m,M.oldDescriptor,M.writer),M.newDescriptor&&c(m,M.newDescriptor,M.writer)}),r.setCustomProperty("addHighlight",(C,M,E)=>_.add(M,E),m),r.setCustomProperty("removeHighlight",(C,M,E)=>_.remove(M,E),m)}function w5(m,r,c={}){return r.addClass(["ck-editor__editable","ck-editor__nested-editable"],m),r.setAttribute("role","textbox",m),c.label&&r.setAttribute("aria-label",c.label,m),r.setAttribute("contenteditable",m.isReadOnly?"false":"true",m),m.on("change:isReadOnly",(u,_,C)=>{r.setAttribute("contenteditable",C?"false":"true",m)}),m.on("change:isFocused",(u,_,C)=>{C?r.addClass("ck-editor__nested-editable_focused",m):r.removeClass("ck-editor__nested-editable_focused",m)}),T5(m,r),m}function D4(m,r){const c=m.getSelectedElement();if(c){const u=nd(m);if(u)return r.createRange(r.createPositionAt(c,u))}return G2(m,r)}function F8(){return null}const i_="widget-type-around";function op(m,r,c){return!!m&&Pl(m)&&!c.isInline(r)}function nd(m){return m.getAttribute(i_)}var Xb=b(4921);Io()(Xb.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});const eC=["before","after"],P4=(new DOMParser).parseFromString('',"image/svg+xml").firstChild,S4="ck-widget__type-around_disabled";class nC extends lo{constructor(){super(...arguments),this._currentFakeCaretModelElement=null}static get pluginName(){return"WidgetTypeAround"}static get requires(){return[z0,t_]}init(){const r=this.editor,c=r.editing.view;this.on("change:isEnabled",(u,_,C)=>{c.change(M=>{for(const E of c.document.roots)C?M.removeClass(S4,E):M.addClass(S4,E)}),C||r.model.change(M=>{M.removeSelectionAttribute(i_)})}),this._enableTypeAroundUIInjection(),this._enableInsertingParagraphsOnButtonClick(),this._enableInsertingParagraphsOnEnterKeypress(),this._enableInsertingParagraphsOnTypingKeystroke(),this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows(),this._enableDeleteIntegration(),this._enableInsertContentIntegration(),this._enableInsertObjectIntegration(),this._enableDeleteContentIntegration()}destroy(){super.destroy(),this._currentFakeCaretModelElement=null}_insertParagraph(r,c){const u=this.editor,_=u.editing.view,C=u.model.schema.getAttributesWithProperty(r,"copyOnReplace",!0);u.execute("insertParagraph",{position:u.model.createPositionAt(r,c),attributes:C}),_.focus(),_.scrollToTheSelection()}_listenToIfEnabled(r,c,u,_){this.listenTo(r,c,(...C)=>{this.isEnabled&&u(...C)},_)}_insertParagraphAccordingToFakeCaretPosition(){const r=this.editor.model.document.selection,c=nd(r);if(!c)return!1;const u=r.getSelectedElement();return this._insertParagraph(u,c),!0}_enableTypeAroundUIInjection(){const r=this.editor,c=r.model.schema,u=r.locale.t,_={before:u("Insert paragraph before block"),after:u("Insert paragraph after block")};r.editing.downcastDispatcher.on("insert",(C,M,E)=>{const N=E.mapper.toViewElement(M.item);N&&op(N,M.item,c)&&(function(G,W,dt){const Zt=G.createUIElement("div",{class:"ck ck-reset_all ck-widget__type-around"},function(ue){const xe=this.toDomElement(ue);return function(Ee,ln){for(const Mn of eC){const di=new wr({tag:"div",attributes:{class:["ck","ck-widget__type-around__button",`ck-widget__type-around__button_${Mn}`],title:ln[Mn],"aria-hidden":"true"},children:[Ee.ownerDocument.importNode(P4,!0)]});Ee.appendChild(di.render())}}(xe,W),function(Ee){const ln=new wr({tag:"div",attributes:{class:["ck","ck-widget__type-around__fake-caret"]}});Ee.appendChild(ln.render())}(xe),xe});G.insert(G.createPositionAt(dt,"end"),Zt)}(E.writer,_,N),N.getCustomProperty("widgetLabel").push(()=>this.isEnabled?u("Press Enter to type after or press Shift + Enter to type before the widget"):""))},{priority:"low"})}_enableTypeAroundFakeCaretActivationUsingKeyboardArrows(){const r=this.editor,c=r.model,u=c.document.selection,_=c.schema;function M(E){return`ck-widget_type-around_show-fake-caret_${E}`}this._listenToIfEnabled(r.editing.view.document,"arrowKey",(E,N)=>{this._handleArrowKeyPress(E,N)},{context:[Pl,"$text"],priority:"high"}),this._listenToIfEnabled(u,"change:range",(E,N)=>{N.directChange&&r.model.change(G=>{G.removeSelectionAttribute(i_)})}),this._listenToIfEnabled(c.document,"change:data",()=>{const E=u.getSelectedElement();E&&op(r.editing.mapper.toViewElement(E),E,_)||r.model.change(N=>{N.removeSelectionAttribute(i_)})}),this._listenToIfEnabled(r.editing.downcastDispatcher,"selection",(E,N,G)=>{const W=G.writer;if(this._currentFakeCaretModelElement){const xe=G.mapper.toViewElement(this._currentFakeCaretModelElement);xe&&(W.removeClass(eC.map(M),xe),this._currentFakeCaretModelElement=null)}const dt=N.selection.getSelectedElement();if(!dt)return;const Zt=G.mapper.toViewElement(dt);if(!op(Zt,dt,_))return;const ue=nd(N.selection);ue&&(W.addClass(M(ue),Zt),this._currentFakeCaretModelElement=dt)}),this._listenToIfEnabled(r.ui.focusTracker,"change:isFocused",(E,N,G)=>{G||r.model.change(W=>{W.removeSelectionAttribute(i_)})})}_handleArrowKeyPress(r,c){const u=this.editor,_=u.model,C=_.document.selection,M=_.schema,E=u.editing.view,N=function(dt,Zt){const ue=d1(dt,Zt);return"down"===ue||"right"===ue}(c.keyCode,u.locale.contentLanguageDirection),G=E.document.selection.getSelectedElement();let W;op(G,u.editing.mapper.toModelElement(G),M)?W=this._handleArrowKeyPressOnSelectedWidget(N):C.isCollapsed?W=this._handleArrowKeyPressWhenSelectionNextToAWidget(N):c.shiftKey||(W=this._handleArrowKeyPressWhenNonCollapsedSelection(N)),W&&(c.preventDefault(),r.stop())}_handleArrowKeyPressOnSelectedWidget(r){const c=this.editor.model,u=nd(c.document.selection);return c.change(_=>u?u!==(r?"after":"before")&&(_.removeSelectionAttribute(i_),!0):(_.setSelectionAttribute(i_,r?"after":"before"),!0))}_handleArrowKeyPressWhenSelectionNextToAWidget(r){const c=this.editor,u=c.model,_=u.schema,C=c.plugins.get("Widget"),M=C._getObjectElementNextToSelection(r);return!!op(c.editing.mapper.toViewElement(M),M,_)&&(u.change(E=>{C._setSelectionOverElement(M),E.setSelectionAttribute(i_,r?"before":"after")}),!0)}_handleArrowKeyPressWhenNonCollapsedSelection(r){const c=this.editor,u=c.model,_=u.schema,C=c.editing.mapper,M=u.document.selection,E=r?M.getLastPosition().nodeBefore:M.getFirstPosition().nodeAfter;return!!op(C.toViewElement(E),E,_)&&(u.change(N=>{N.setSelection(E,"on"),N.setSelectionAttribute(i_,r?"after":"before")}),!0)}_enableInsertingParagraphsOnButtonClick(){const r=this.editor,c=r.editing.view;this._listenToIfEnabled(c.document,"mousedown",(u,_)=>{const C=_.domTarget.closest(".ck-widget__type-around__button");if(!C)return;const M=C.classList.contains("ck-widget__type-around__button_before")?"before":"after",E=function(G,W){const dt=G.closest(".ck-widget");return W.mapDomToView(dt)}(C,c.domConverter),N=r.editing.mapper.toModelElement(E);this._insertParagraph(N,M),_.preventDefault(),u.stop()})}_enableInsertingParagraphsOnEnterKeypress(){const r=this.editor,c=r.model.document.selection;this._listenToIfEnabled(r.editing.view.document,"enter",(_,C)=>{if("atTarget"!=_.eventPhase)return;const M=c.getSelectedElement(),E=r.editing.mapper.toViewElement(M),N=r.model.schema;let G;this._insertParagraphAccordingToFakeCaretPosition()?G=!0:op(E,M,N)&&(this._insertParagraph(M,C.isSoft?"before":"after"),G=!0),G&&(C.preventDefault(),_.stop())},{context:Pl})}_enableInsertingParagraphsOnTypingKeystroke(){const r=this.editor.editing.view.document;this._listenToIfEnabled(r,"insertText",(c,u)=>{this._insertParagraphAccordingToFakeCaretPosition()&&(u.selection=r.selection)},{priority:"high"}),D_isAndroid?this._listenToIfEnabled(r,"keydown",(c,u)=>{229==u.keyCode&&this._insertParagraphAccordingToFakeCaretPosition()}):this._listenToIfEnabled(r,"compositionstart",()=>{this._insertParagraphAccordingToFakeCaretPosition()},{priority:"high"})}_enableDeleteIntegration(){const r=this.editor,u=r.model,_=u.schema;this._listenToIfEnabled(r.editing.view.document,"delete",(C,M)=>{if("atTarget"!=C.eventPhase)return;const E=nd(u.document.selection);if(!E)return;const N=M.direction,G=u.document.selection.getSelectedElement(),W="forward"==N;if("before"===E===W)r.execute("delete",{selection:u.createSelection(G,"on")});else{const dt=_.getNearestSelectionRange(u.createPositionAt(G,E),N);if(dt)if(dt.isCollapsed){const Zt=u.createSelection(dt.start);if(u.modifySelection(Zt,{direction:N}),Zt.focus.isEqual(dt.start)){const ue=function(xe,Ee){let ln=Ee;for(const Mn of Ee.getAncestors({parentFirst:!0})){if(Mn.childCount>1||xe.isLimit(Mn))break;ln=Mn}return ln}(_,dt.start.parent);u.deleteContent(u.createSelection(ue,"on"),{doNotAutoparagraph:!0})}else u.change(ue=>{ue.setSelection(dt),r.execute(W?"deleteForward":"delete")})}else u.change(Zt=>{Zt.setSelection(dt),r.execute(W?"deleteForward":"delete")})}M.preventDefault(),C.stop()},{context:Pl})}_enableInsertContentIntegration(){const c=this.editor.model,u=c.document.selection;this._listenToIfEnabled(this.editor.model,"insertContent",(_,[C,M])=>{if(M&&!M.is("documentSelection"))return;const E=nd(u);return E?(_.stop(),c.change(N=>{const G=u.getSelectedElement(),W=c.createPositionAt(G,E),dt=N.createSelection(W),Zt=c.insertContent(C,dt);return N.setSelection(dt),Zt})):void 0},{priority:"high"})}_enableInsertObjectIntegration(){const c=this.editor.model.document.selection;this._listenToIfEnabled(this.editor.model,"insertObject",(u,_)=>{const[,C,M={}]=_;if(C&&!C.is("documentSelection"))return;const E=nd(c);E&&(M.findOptimalPosition=E,_[3]=M)},{priority:"high"})}_enableDeleteContentIntegration(){const c=this.editor.model.document.selection;this._listenToIfEnabled(this.editor.model,"deleteContent",(u,[_])=>{_&&!_.is("documentSelection")||nd(c)&&u.stop()},{priority:"high"})}}function oC(m,r,c){const u=m.schema,_=m.createRangeIn(r.root),C="forward"==c?"elementStart":"elementEnd";for(const{previousPosition:M,item:E,type:N}of _.getWalker({startPosition:r,direction:c})){if(u.isLimit(E)&&!u.isInline(E))return M;if(N==C&&u.isBlock(E))return null}return null}function df(m,r,c){const u="backward"==c?r.end:r.start;if(m.checkChild(u,"$text"))return u;for(const{nextPosition:_}of r.getWalker({direction:c}))if(m.checkChild(_,"$text"))return _;return null}var qh=b(3488);Io()(qh.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class Y0 extends lo{constructor(){super(...arguments),this._previouslySelected=new Set}static get pluginName(){return"Widget"}static get requires(){return[nC,t_]}init(){const r=this.editor,c=r.editing.view,u=c.document;this.editor.editing.downcastDispatcher.on("selection",(_,C,M)=>{const E=M.writer,N=C.selection;if(N.isCollapsed)return;const G=N.getSelectedElement();if(!G)return;const W=r.editing.mapper.toViewElement(G);var dt;Pl(W)&&M.consumable.consume(N,"selection")&&E.setSelection(E.createRangeOn(W),{fake:!0,label:(dt=W,dt.getCustomProperty("widgetLabel").reduce((Zt,ue)=>"function"==typeof ue?Zt?Zt+". "+ue():ue():Zt?Zt+". "+ue:ue,""))})}),this.editor.editing.downcastDispatcher.on("selection",(_,C,M)=>{this._clearPreviouslySelectedWidgets(M.writer);const E=M.writer,N=E.document.selection;let G=null;for(const W of N.getRanges())for(const dt of W){const Zt=dt.item;Pl(Zt)&&!I8(Zt,G)&&(E.addClass($b,Zt),this._previouslySelected.add(Zt),G=Zt)}},{priority:"low"}),c.addObserver(gh),this.listenTo(u,"mousedown",(..._)=>this._onMousedown(..._)),this.listenTo(u,"arrowKey",(..._)=>{this._handleSelectionChangeOnArrowKeyPress(..._)},{context:[Pl,"$text"]}),this.listenTo(u,"arrowKey",(..._)=>{this._preventDefaultOnArrowKeyPress(..._)},{context:"$root"}),this.listenTo(u,"arrowKey",function iC(m){const r=m.model;return(c,u)=>{const C=u.keyCode==$a.arrowdown,M=u.shiftKey,E=r.document.selection;if(u.keyCode!=$a.arrowup&&!C)return;const N=C;if(M&&!(W=E).isCollapsed&&W.isBackward==N)return;var W;const G=function(W,dt,Zt){const ue=W.model;if(Zt){const xe=dt.isCollapsed?dt.focus:dt.getLastPosition(),Ee=oC(ue,xe,"forward");if(!Ee)return null;const ln=ue.createRange(xe,Ee),Mn=df(ue.schema,ln,"backward");return Mn?ue.createRange(xe,Mn):null}{const xe=dt.isCollapsed?dt.focus:dt.getFirstPosition(),Ee=oC(ue,xe,"backward");if(!Ee)return null;const ln=ue.createRange(Ee,xe),Mn=df(ue.schema,ln,"forward");return Mn?ue.createRange(Mn,xe):null}}(m,E,N);if(G){if(G.isCollapsed&&(E.isCollapsed||M))return;(G.isCollapsed||function(W,dt,Zt){const ue=W.model,xe=W.view.domConverter;if(Zt){const Ri=ue.createSelection(dt.start);ue.modifySelection(Ri),Ri.focus.isAtEnd||dt.start.isEqual(Ri.focus)||(dt=ue.createRange(Ri.focus,dt.end))}const Ee=W.mapper.toViewRange(dt),ln=xe.viewRangeToDom(Ee),Mn=ce.getDomRangeRects(ln);let di;for(const Ri of Mn)if(void 0!==di){if(Math.round(Ri.top)>=di)return!1;di=Math.max(di,Math.round(Ri.bottom))}else di=Math.round(Ri.bottom);return!0}(m,G,N))&&(r.change(W=>{const dt=N?G.end:G.start;if(M){const Zt=r.createSelection(E.anchor);Zt.setFocus(dt),W.setSelection(Zt)}else W.setSelection(dt)}),c.stop(),u.preventDefault(),u.stopPropagation())}}}(this.editor.editing),{context:"$text"}),this.listenTo(u,"delete",(_,C)=>{this._handleDelete("forward"==C.direction)&&(C.preventDefault(),_.stop())},{context:"$root"})}_onMousedown(r,c){const u=this.editor,_=u.editing.view,C=_.document;let M=c.target;if(function(N){let G=N;for(;G;){if(G.is("editableElement")&&!G.is("rootElement"))return!0;if(Pl(G))return!1;G=G.parent}return!1}(M)){if((D_isSafari||D_isGecko)&&c.domEvent.detail>=3){const N=u.editing.mapper,G=M.is("attributeElement")?M.findAncestor(dt=>!dt.is("attributeElement")):M,W=N.toModelElement(G);c.preventDefault(),this.editor.model.change(dt=>{dt.setSelection(W,"in")})}return}if(!Pl(M)&&(M=M.findAncestor(Pl),!M))return;D_isAndroid&&c.preventDefault(),C.isFocused||_.focus();const E=u.editing.mapper.toModelElement(M);this._setSelectionOverElement(E)}_handleSelectionChangeOnArrowKeyPress(r,c){const u=c.keyCode,_=this.editor.model,C=_.schema,M=_.document.selection,E=M.getSelectedElement(),N=d1(u,this.editor.locale.contentLanguageDirection),G="down"==N||"right"==N,W="up"==N||"down"==N;if(E&&C.isObject(E)){const Zt=G?M.getLastPosition():M.getFirstPosition(),ue=C.getNearestSelectionRange(Zt,G?"forward":"backward");return void(ue&&(_.change(xe=>{xe.setSelection(ue)}),c.preventDefault(),r.stop()))}if(!M.isCollapsed&&!c.shiftKey){const Zt=M.getFirstPosition(),ue=M.getLastPosition(),xe=Zt.nodeAfter,Ee=ue.nodeBefore;return void((xe&&C.isObject(xe)||Ee&&C.isObject(Ee))&&(_.change(ln=>{ln.setSelection(G?ue:Zt)}),c.preventDefault(),r.stop()))}if(!M.isCollapsed)return;const dt=this._getObjectElementNextToSelection(G);if(dt&&C.isObject(dt)){if(C.isInline(dt)&&W)return;this._setSelectionOverElement(dt),c.preventDefault(),r.stop()}}_preventDefaultOnArrowKeyPress(r,c){const u=this.editor.model,_=u.schema,C=u.document.selection.getSelectedElement();C&&_.isObject(C)&&(c.preventDefault(),r.stop())}_handleDelete(r){const c=this.editor.model.document.selection;if(!this.editor.model.canEditAt(c)||!c.isCollapsed)return;const u=this._getObjectElementNextToSelection(r);return u?(this.editor.model.change(_=>{let C=c.anchor.parent;for(;C.isEmpty;){const M=C;C=M.parent,_.remove(M)}this._setSelectionOverElement(u)}),!0):void 0}_setSelectionOverElement(r){this.editor.model.change(c=>{c.setSelection(c.createRangeOn(r))})}_getObjectElementNextToSelection(r){const c=this.editor.model,u=c.schema,_=c.document.selection,C=c.createSelection(_);if(c.modifySelection(C,{direction:r?"forward":"backward"}),C.isEqual(_))return null;const M=r?C.focus.nodeBefore:C.focus.nodeAfter;return M&&u.isObject(M)?M:null}_clearPreviouslySelectedWidgets(r){for(const c of this._previouslySelected)r.removeClass($b,c);this._previouslySelected.clear()}}function I8(m,r){return!!r&&Array.from(m.getAncestors()).includes(r)}class B0 extends lo{constructor(){super(...arguments),this._toolbarDefinitions=new Map}static get requires(){return[O0]}static get pluginName(){return"WidgetToolbarRepository"}init(){const r=this.editor;if(r.plugins.has("BalloonToolbar")){const c=r.plugins.get("BalloonToolbar");this.listenTo(c,"show",u=>{(function(_){const C=_.getSelectedElement();return!(!C||!Pl(C))})(r.editing.view.document.selection)&&u.stop()},{priority:"high"})}this._balloon=this.editor.plugins.get("ContextualBalloon"),this.on("change:isEnabled",()=>{this._updateToolbarsVisibility()}),this.listenTo(r.ui,"update",()=>{this._updateToolbarsVisibility()}),this.listenTo(r.ui.focusTracker,"change:isFocused",()=>{this._updateToolbarsVisibility()},{priority:"low"})}destroy(){super.destroy();for(const r of this._toolbarDefinitions.values())r.view.destroy()}register(r,{ariaLabel:c,items:u,getRelatedElement:_,balloonClassName:C="ck-toolbar-container"}){if(!u.length)return void Tt("widget-toolbar-no-items",{toolbarId:r});const M=this.editor,E=M.t,N=new ys(M.locale);if(N.ariaLabel=c||E("Widget toolbar"),this._toolbarDefinitions.has(r))throw new it("widget-toolbar-duplicated",this,{toolbarId:r});const G={view:N,getRelatedElement:_,balloonClassName:C,itemsConfig:u,initialized:!1};M.ui.addToolbar(N,{isContextual:!0,beforeFocus:()=>{const W=_(M.editing.view.document.selection);W&&this._showToolbar(G,W)},afterBlur:()=>{this._hideToolbar(G)}}),this._toolbarDefinitions.set(r,G)}_updateToolbarsVisibility(){let r=0,c=null,u=null;for(const _ of this._toolbarDefinitions.values()){const C=_.getRelatedElement(this.editor.editing.view.document.selection);if(this.isEnabled&&C)if(this.editor.ui.focusTracker.isFocused){const M=C.getAncestors().length;M>r&&(r=M,c=C,u=_)}else this._isToolbarVisible(_)&&this._hideToolbar(_);else this._isToolbarInBalloon(_)&&this._hideToolbar(_)}u&&this._showToolbar(u,c)}_hideToolbar(r){this._balloon.remove(r.view),this.stopListening(this._balloon,"change:visibleView")}_showToolbar(r,c){this._isToolbarVisible(r)?U5(this.editor,c):this._isToolbarInBalloon(r)||(r.initialized||(r.initialized=!0,r.view.fillFromConfig(r.itemsConfig,this.editor.ui.componentFactory)),this._balloon.add({view:r.view,position:Z5(this.editor,c),balloonClassName:r.balloonClassName}),this.listenTo(this._balloon,"change:visibleView",()=>{for(const u of this._toolbarDefinitions.values())if(this._isToolbarVisible(u)){const _=u.getRelatedElement(this.editor.editing.view.document.selection);U5(this.editor,_)}}))}_isToolbarVisible(r){return this._balloon.visibleView===r.view}_isToolbarInBalloon(r){return this._balloon.hasView(r.view)}}function U5(m,r){const c=m.plugins.get("ContextualBalloon"),u=Z5(m,r);c.updatePosition(u)}function Z5(m,r){const u=td.defaultPositions;return{target:m.editing.view.domConverter.mapViewToDom(r),positions:[u.northArrowSouth,u.northArrowSouthWest,u.northArrowSouthEast,u.southArrowNorth,u.southArrowNorthWest,u.southArrowNorthEast,u.viewportStickyNorth]}}we(),we();var rC=b(8506);Io()(rC.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});const k5=vo("px");class N8 extends aa{constructor(){super();const r=this.bindTemplate;this.set({isVisible:!1,left:null,top:null,width:null}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-clipboard-drop-target-line",r.if("isVisible","ck-hidden",c=>!c)],style:{left:r.to("left",c=>k5(c)),top:r.to("top",c=>k5(c)),width:r.to("width",c=>k5(c))}}})}}class D5 extends lo{constructor(){super(...arguments),this.removeDropMarkerDelayed=Tr(()=>this.removeDropMarker(),40),this._updateDropMarkerThrottled=w0(r=>this._updateDropMarker(r),40),this._reconvertMarkerThrottled=w0(()=>{this.editor.model.markers.has("drop-target")&&this.editor.editing.reconvertMarker("drop-target")},0),this._dropTargetLineView=new N8,this._domEmitter=new(eo()),this._scrollables=new Map}static get pluginName(){return"DragDropTarget"}init(){this._setupDropMarker()}destroy(){this._domEmitter.stopListening();for(const{resizeObserver:r}of this._scrollables.values())r.destroy();return this._updateDropMarkerThrottled.cancel(),this.removeDropMarkerDelayed.cancel(),this._reconvertMarkerThrottled.cancel(),super.destroy()}updateDropMarker(r,c,u,_,C){this.removeDropMarkerDelayed.cancel();const M=sC(this.editor,r,c,u,_,C);M&&this._updateDropMarkerThrottled(M)}getFinalDropRange(r,c,u,_,C){const M=sC(this.editor,r,c,u,_,C);return this.removeDropMarker(),M}removeDropMarker(){const r=this.editor.model;this.removeDropMarkerDelayed.cancel(),this._updateDropMarkerThrottled.cancel(),this._dropTargetLineView.isVisible=!1,r.markers.has("drop-target")&&r.change(c=>{c.removeMarker("drop-target")})}_setupDropMarker(){const r=this.editor;r.ui.view.body.add(this._dropTargetLineView),r.conversion.for("editingDowncast").markerToHighlight({model:"drop-target",view:{classes:["ck-clipboard-drop-target-range"]}}),r.conversion.for("editingDowncast").markerToElement({model:"drop-target",view:(c,{writer:u})=>{if(r.model.schema.checkChild(c.markerRange.start,"$text"))return this._dropTargetLineView.isVisible=!1,this._createDropTargetPosition(u);c.markerRange.isCollapsed?this._updateDropTargetLine(c.markerRange):this._dropTargetLineView.isVisible=!1}})}_updateDropMarker(r){const c=this.editor,u=c.model.markers;c.model.change(_=>{u.has("drop-target")?u.get("drop-target").getRange().isEqual(r)||_.updateMarker("drop-target",{range:r}):_.addMarker("drop-target",{range:r,usingOperation:!1,affectsData:!1})})}_createDropTargetPosition(r){return r.createUIElement("span",{class:"ck ck-clipboard-drop-target-position"},function(c){const u=this.toDomElement(c);return u.append("\u2060",c.createElement("span"),"\u2060"),u})}_updateDropTargetLine(r){const c=this.editor.editing,u=r.start.nodeBefore,_=r.start.nodeAfter,C=r.start.parent,M=u?c.mapper.toViewElement(u):null,E=M?c.view.domConverter.mapViewToDom(M):null,N=_?c.mapper.toViewElement(_):null,G=N?c.view.domConverter.mapViewToDom(N):null,W=c.mapper.toViewElement(C),dt=c.view.domConverter.mapViewToDom(W),Zt=this._getScrollableRect(W),{scrollX:ue,scrollY:xe}=Mt.window,Ee=E?new ce(E):null,ln=G?new ce(G):null,Mn=new ce(dt).excludeScrollbarsAndBorders(),di=Ee?Ee.bottom:Mn.top,Ri=ln?ln.top:Mn.bottom,Jo=Mt.window.getComputedStyle(dt),Da=di<=Ri?(di+Ri)/2:Ri;if(Zt.topZt.is("element")&&!oy(m,Zt));let W=0,dt=G.length;if(0==dt)return M.createRange(M.createPositionAt(N,"end"));for(;Wr in m?cC(m,r,{enumerable:!0,configurable:!0,writable:!0,value:c}):m[r]=c;class H8 extends lo{constructor(){super(...arguments),this._isBlockDragging=!1,this._domEmitter=new(eo())}static get pluginName(){return"DragDropBlockToolbar"}init(){const r=this.editor;if(this.listenTo(r,"change:isReadOnly",(c,u,_)=>{_?(this.forceDisabled("readOnlyMode"),this._isBlockDragging=!1):this.clearForceDisabled("readOnlyMode")}),D_isAndroid&&this.forceDisabled("noAndroidSupport"),r.plugins.has("BlockToolbar")){const c=r.plugins.get("BlockToolbar").buttonView.element;this._domEmitter.listenTo(c,"dragstart",(u,_)=>this._handleBlockDragStart(_)),this._domEmitter.listenTo(Mt.document,"dragover",(u,_)=>this._handleBlockDragging(_)),this._domEmitter.listenTo(Mt.document,"drop",(u,_)=>this._handleBlockDragging(_)),this._domEmitter.listenTo(Mt.document,"dragend",()=>this._handleBlockDragEnd(),{useCapture:!0}),this.isEnabled&&c.setAttribute("draggable","true"),this.on("change:isEnabled",(u,_,C)=>{c.setAttribute("draggable",C?"true":"false")})}}destroy(){return this._domEmitter.stopListening(),super.destroy()}_handleBlockDragStart(r){if(!this.isEnabled)return;const c=this.editor.model,_=this.editor.editing.view,C=Array.from(c.document.selection.getSelectedBlocks()),M=c.createRange(c.createPositionBefore(C[0]),c.createPositionAfter(C[C.length-1]));c.change(E=>E.setSelection(M)),this._isBlockDragging=!0,_.focus(),_.getObserver(Fh).onDomEvent(r)}_handleBlockDragging(r){if(!this.isEnabled||!this._isBlockDragging)return;const c=r.clientX+("ltr"==this.editor.locale.contentLanguageDirection?100:-100),u=r.clientY,_=document.elementFromPoint(c,u),C=this.editor.editing.view;var M;_&&_.closest(".ck-editor__editable")&&C.getObserver(Fh).onDomEvent((M=((N,G)=>{for(var W in G||(G={}))R8.call(G,W)&&uC(N,W,G[W]);if(pf)for(var W of pf(G))P5.call(G,W)&&uC(N,W,G[W]);return N})({},r),q8(M,lC({type:r.type,dataTransfer:r.dataTransfer,target:_,clientX:c,clientY:u,preventDefault:()=>r.preventDefault(),stopPropagation:()=>r.stopPropagation()}))))}_handleBlockDragEnd(){this._isBlockDragging=!1}}var dC=b(903);Io()(dC.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class mC extends lo{constructor(){super(...arguments),this._clearDraggableAttributesDelayed=Tr(()=>this._clearDraggableAttributes(),40),this._blockMode=!1,this._domEmitter=new(eo())}static get pluginName(){return"DragDrop"}static get requires(){return[Rp,Y0,D5,H8]}init(){const r=this.editor,c=r.editing.view;this._draggedRange=null,this._draggingUid="",this._draggableElement=null,c.addObserver(Fh),c.addObserver(gh),this._setupDragging(),this._setupContentInsertionIntegration(),this._setupClipboardInputIntegration(),this._setupDraggableAttributeHandling(),this.listenTo(r,"change:isReadOnly",(u,_,C)=>{C?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")}),this.on("change:isEnabled",(u,_,C)=>{C||this._finalizeDragging(!1)}),D_isAndroid&&this.forceDisabled("noAndroidSupport")}destroy(){return this._draggedRange&&(this._draggedRange.detach(),this._draggedRange=null),this._previewContainer&&this._previewContainer.remove(),this._domEmitter.stopListening(),this._clearDraggableAttributesDelayed.cancel(),super.destroy()}_setupDragging(){const r=this.editor,c=r.model,u=r.editing.view,_=u.document,C=r.plugins.get(D5);this.listenTo(_,"dragstart",(M,E)=>{if(E.target&&E.target.is("editableElement")||(this._prepareDraggedRange(E.target),!this._draggedRange))return void E.preventDefault();this._draggingUid=Dt(),E.dataTransfer.effectAllowed=this.isEnabled?"copyMove":"copy",E.dataTransfer.setData("application/ckeditor5-dragging-uid",this._draggingUid);const N=c.createSelection(this._draggedRange.toRange());this.editor.plugins.get("ClipboardPipeline")._fireOutputTransformationEvent(E.dataTransfer,N,"dragstart");const{dataTransfer:G,domTarget:W,domEvent:dt}=E,{clientX:Zt}=dt;this._updatePreview({dataTransfer:G,domTarget:W,clientX:Zt}),E.stopPropagation(),this.isEnabled||(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="")},{priority:"low"}),this.listenTo(_,"dragend",(M,E)=>{this._finalizeDragging(!E.dataTransfer.isCanceled&&"move"==E.dataTransfer.dropEffect)},{priority:"low"}),this._domEmitter.listenTo(Mt.document,"dragend",()=>{this._blockMode=!1},{useCapture:!0}),this.listenTo(_,"dragenter",()=>{this.isEnabled&&u.focus()}),this.listenTo(_,"dragleave",()=>{C.removeDropMarkerDelayed()}),this.listenTo(_,"dragging",(M,E)=>{if(!this.isEnabled)return void(E.dataTransfer.dropEffect="none");const{clientX:N,clientY:G}=E.domEvent;C.updateDropMarker(E.target,E.targetRanges,N,G,this._blockMode),this._draggedRange||(E.dataTransfer.dropEffect="copy"),D_isGecko||("copy"==E.dataTransfer.effectAllowed?E.dataTransfer.dropEffect="copy":["all","copyMove"].includes(E.dataTransfer.effectAllowed)&&(E.dataTransfer.dropEffect="move")),M.stop()},{priority:"low"})}_setupClipboardInputIntegration(){const r=this.editor,c=r.editing.view.document,u=r.plugins.get(D5);this.listenTo(c,"clipboardInput",(_,C)=>{if("drop"!=C.method)return;const{clientX:M,clientY:E}=C.domEvent,N=u.getFinalDropRange(C.target,C.targetRanges,M,E,this._blockMode);return N?(this._draggedRange&&this._draggingUid!=C.dataTransfer.getData("application/ckeditor5-dragging-uid")&&(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid=""),"move"==_C(C.dataTransfer)&&this._draggedRange&&this._draggedRange.containsRange(N,!0)?(this._finalizeDragging(!1),void _.stop()):void(C.targetRanges=[r.editing.mapper.toViewRange(N)])):(this._finalizeDragging(!1),void _.stop())},{priority:"high"})}_setupContentInsertionIntegration(){const r=this.editor.plugins.get(Rp);r.on("contentInsertion",(c,u)=>{if(!this.isEnabled||"drop"!==u.method)return;const _=u.targetRanges.map(C=>this.editor.editing.mapper.toModelRange(C));this.editor.model.change(C=>C.setSelection(_))},{priority:"high"}),r.on("contentInsertion",(c,u)=>{if(!this.isEnabled||"drop"!==u.method)return;const _="move"==_C(u.dataTransfer);this._finalizeDragging((!u.resultRange||!u.resultRange.isCollapsed)&&_)},{priority:"lowest"})}_setupDraggableAttributeHandling(){const r=this.editor,c=r.editing.view,u=c.document;this.listenTo(u,"mousedown",(_,C)=>{if(D_isAndroid||!C)return;this._clearDraggableAttributesDelayed.cancel();let M=mf(C.target);if(D_isBlink&&!r.isReadOnly&&!M&&!u.selection.isCollapsed){const E=u.selection.getSelectedElement();E&&Pl(E)||(M=u.selection.editableElement)}M&&(c.change(E=>{E.setAttribute("draggable","true",M)}),this._draggableElement=r.editing.mapper.toModelElement(M))}),this.listenTo(u,"mouseup",()=>{D_isAndroid||this._clearDraggableAttributesDelayed()})}_clearDraggableAttributes(){const r=this.editor.editing;r.view.change(c=>{this._draggableElement&&"$graveyard"!=this._draggableElement.root.rootName&&c.removeAttribute("draggable",r.mapper.toViewElement(this._draggableElement)),this._draggableElement=null})}_finalizeDragging(r){const c=this.editor,u=c.model;c.plugins.get(D5).removeDropMarker(),this._clearDraggableAttributes(),c.plugins.has("WidgetToolbarRepository")&&c.plugins.get("WidgetToolbarRepository").clearForceDisabled("dragDrop"),this._draggingUid="",this._previewContainer&&(this._previewContainer.remove(),this._previewContainer=void 0),this._draggedRange&&(r&&this.isEnabled&&u.change(_=>{const C=u.createSelection(this._draggedRange);u.deleteContent(C,{doNotAutoparagraph:!0});const M=C.getFirstPosition().parent;M.isEmpty&&!u.schema.checkChild(M,"$text")&&u.schema.checkChild(M,"paragraph")&&_.insertElement("paragraph",M,0)}),this._draggedRange.detach(),this._draggedRange=null)}_prepareDraggedRange(r){const c=this.editor,u=c.model,_=u.document.selection,C=r?mf(r):null;if(C){const G=c.editing.mapper.toModelElement(C);return this._draggedRange=Ad.fromRange(u.createRangeOn(G)),this._blockMode=u.schema.isBlock(G),void(c.plugins.has("WidgetToolbarRepository")&&c.plugins.get("WidgetToolbarRepository").forceDisabled("dragDrop"))}if(_.isCollapsed&&!_.getFirstPosition().parent.isEmpty)return;const M=Array.from(_.getSelectedBlocks()),E=_.getFirstRange();if(0==M.length)return void(this._draggedRange=Ad.fromRange(E));const N=fC(u,M);if(M.length>1)this._draggedRange=Ad.fromRange(N),this._blockMode=!0;else if(1==M.length){const G=E.start.isTouching(N.start)&&E.end.isTouching(N.end);this._draggedRange=Ad.fromRange(G?N:E),this._blockMode=G}u.change(G=>G.setSelection(this._draggedRange.toRange()))}_updatePreview({dataTransfer:r,domTarget:c,clientX:u}){const _=this.editor.editing.view,M=_.domConverter.mapViewToDom(_.document.selection.editableElement),E=Mt.window.getComputedStyle(M);this._previewContainer?this._previewContainer.firstElementChild&&this._previewContainer.removeChild(this._previewContainer.firstElementChild):(this._previewContainer=We(Mt.document,"div",{style:"position: fixed; left: -999999px;"}),Mt.document.body.appendChild(this._previewContainer));const N=new ce(M);if(M.contains(c))return;const G=parseFloat(E.paddingLeft),W=We(Mt.document,"div");W.className="ck ck-content",W.style.width=E.width,W.style.paddingLeft=`${N.left-u+G}px`,D_isiOS&&(W.style.backgroundColor="white"),W.innerHTML=r.getData("text/html"),r.setDragImage(W,0,0),this._previewContainer.appendChild(W)}}function _C(m){return D_isGecko?m.dropEffect:["all","copyMove"].includes(m.effectAllowed)?"move":"copy"}function mf(m){if(m.is("editableElement"))return null;if(m.hasClass("ck-widget__selection-handle"))return m.findAncestor(Pl);if(Pl(m))return m;const r=m.findAncestor(c=>Pl(c)||c.is("editableElement"));return Pl(r)?r:null}function fC(m,r){const c=r[0],u=r[r.length-1],_=c.getCommonAncestor(u),C=m.createPositionBefore(c),M=m.createPositionAfter(u);if(_&&_.is("element")&&!m.schema.isLimit(_)){const E=m.createRangeOn(_),N=C.isTouching(E.start),G=M.isTouching(E.end);if(N&&G)return fC(m,[_])}return m.createRange(C,M)}class hC extends lo{static get pluginName(){return"PastePlainText"}static get requires(){return[Rp]}init(){const r=this.editor,c=r.model,u=r.editing.view,_=u.document,C=c.document.selection;let M=!1;u.addObserver(Fh),this.listenTo(_,"keydown",(E,N)=>{M=N.shiftKey}),r.plugins.get(Rp).on("contentInsertion",(E,N)=>{(M||function(G,W){if(G.childCount>1)return!1;const dt=G.getChild(0);return!W.isObject(dt)&&0==Array.from(dt.getAttributeKeys()).length}(N.content,c.schema))&&c.change(G=>{const W=Array.from(C.getAttributes()).filter(([Zt])=>c.schema.getAttributeProperties(Zt).isFormatting);C.isCollapsed||c.deleteContent(C,{doNotAutoparagraph:!0}),W.push(...C.getAttributes());const dt=G.createRangeIn(N.content);for(const Zt of dt.getItems())Zt.is("$textProxy")&&G.setAttributes(W,Zt)})})}}class gC extends lo{static get pluginName(){return"Clipboard"}static get requires(){return[Rp,mC,hC]}}class S5 extends Ta{constructor(r){super(r),this.affectsData=!1}execute(){const r=this.editor.model,c=r.document.selection;let u=r.schema.getLimitElement(c);if(c.containsEntireContent(u)||!vC(r.schema,u))do{if(u=u.parent,!u)return}while(!vC(r.schema,u));r.change(_=>{_.setSelection(u,"in")})}}function vC(m,r){return m.isLimit(r)&&(m.checkChild(r,"$text")||m.checkChild(r,"paragraph"))}const bC=Ks("Ctrl+A");class z8 extends lo{static get pluginName(){return"SelectAllEditing"}init(){const r=this.editor,c=r.editing.view.document;r.commands.add("selectAll",new S5(r)),this.listenTo(c,"keydown",(u,_)=>{xc(_)===bC&&(r.execute("selectAll"),_.preventDefault())})}}class O4 extends lo{static get pluginName(){return"SelectAllUI"}init(){const r=this.editor;r.ui.componentFactory.add("selectAll",c=>{const u=r.commands.get("selectAll"),_=new Hr(c);return _.set({label:(0,c.t)("Select all"),icon:'',keystroke:"Ctrl+A",tooltip:!0}),_.bind("isEnabled").to(u,"isEnabled"),this.listenTo(_,"execute",()=>{r.execute("selectAll"),r.editing.view.focus()}),_})}}class Y8 extends lo{static get requires(){return[z8,O4]}static get pluginName(){return"SelectAll"}}var CC=Object.defineProperty,L5=Object.getOwnPropertySymbols,B8=Object.prototype.hasOwnProperty,xC=Object.prototype.propertyIsEnumerable,AC=(m,r,c)=>r in m?CC(m,r,{enumerable:!0,configurable:!0,writable:!0,value:c}):m[r]=c;class Rh extends Ta{constructor(r){super(r),this._stack=[],this._createdBatches=new WeakSet,this.refresh(),this._isEnabledBasedOnSelection=!1,this.listenTo(r.data,"set",(c,u)=>{u[1]=((C,M)=>{for(var E in M||(M={}))B8.call(M,E)&&AC(C,E,M[E]);if(L5)for(var E of L5(M))xC.call(M,E)&&AC(C,E,M[E]);return C})({},u[1]);const _=u[1];_.batchType||(_.batchType={isUndoable:!1})},{priority:"high"}),this.listenTo(r.data,"set",(c,u)=>{u[1].batchType.isUndoable||this.clearStack()})}refresh(){this.isEnabled=this._stack.length>0}get createdBatches(){return this._createdBatches}addBatch(r){const c=this.editor.model.document.selection,u={ranges:c.hasOwnRange?Array.from(c.getRanges()):[],isBackward:c.isBackward};this._stack.push({batch:r,selection:u}),this.refresh()}clearStack(){this._stack=[],this.refresh()}_restoreSelection(r,c,u){const _=this.editor.model,C=_.document,M=[],E=r.map(G=>G.getTransformedByOperations(u)),N=E.flat();for(const G of E){const W=G.filter(dt=>dt.root!=C.graveyard).filter(dt=>!yC(dt,N));W.length&&(V8(W),M.push(W[0]))}M.length&&_.change(G=>{G.setSelection(M,{backward:c})})}_undo(r,c){const u=this.editor.model,_=u.document;this._createdBatches.add(c);const C=r.operations.slice().filter(M=>M.isDocumentOperation);C.reverse();for(const M of C){const N=Array.from(_.history.getOperations(M.baseVersion+1)),G=J_([M.getReversed()],N,{useRelations:!0,document:this.editor.model.document,padWithNoOps:!1,forceWeakRemove:!0}).operationsA;for(let W of G){const dt=W.affectedSelectable;dt&&!u.canEditAt(dt)&&(W=new zs(W.baseVersion)),c.addOperation(W),u.applyOperation(W),_.history.setOperationAsUndone(M,W)}}}}function V8(m){m.sort((r,c)=>r.start.isBefore(c.start)?-1:1);for(let r=1;rc!==m&&c.containsRange(m,!0))}class TC extends Rh{execute(r=null){const c=r?this._stack.findIndex(C=>C.batch==r):this._stack.length-1,u=this._stack.splice(c,1)[0],_=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(_,()=>{this._undo(u.batch,_);const C=this.editor.model.document.history.getOperations(u.batch.baseVersion);this._restoreSelection(u.selection.ranges,u.selection.isBackward,C)}),this.fire("revert",u.batch,_),this.refresh()}}class G8 extends Rh{execute(){const r=this._stack.pop(),c=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(c,()=>{const _=this.editor.model.document.history.getOperations(r.batch.operations[r.batch.operations.length-1].baseVersion+1);this._restoreSelection(r.selection.ranges,r.selection.isBackward,_),this._undo(r.batch,c)}),this.refresh()}}class j8 extends lo{constructor(){super(...arguments),this._batchRegistry=new WeakSet}static get pluginName(){return"UndoEditing"}init(){const r=this.editor;this._undoCommand=new TC(r),this._redoCommand=new G8(r),r.commands.add("undo",this._undoCommand),r.commands.add("redo",this._redoCommand),this.listenTo(r.model,"applyOperation",(c,u)=>{const _=u[0];if(!_.isDocumentOperation)return;const C=_.batch,M=this._redoCommand.createdBatches.has(C),E=this._undoCommand.createdBatches.has(C);this._batchRegistry.has(C)||(this._batchRegistry.add(C),C.isUndoable&&(M?this._undoCommand.addBatch(C):E||(this._undoCommand.addBatch(C),this._redoCommand.clearStack())))},{priority:"highest"}),this.listenTo(this._undoCommand,"revert",(c,u,_)=>{this._redoCommand.addBatch(_)}),r.keystrokes.set("CTRL+Z","undo"),r.keystrokes.set("CTRL+Y","redo"),r.keystrokes.set("CTRL+SHIFT+Z","redo")}}const O5='',wC='';class J8 extends lo{static get pluginName(){return"UndoUI"}init(){const r=this.editor,c=r.locale,u=r.t,_="ltr"==c.uiLanguageDirection?O5:wC,C="ltr"==c.uiLanguageDirection?wC:O5;this._addButton("undo",u("Undo"),"CTRL+Z",_),this._addButton("redo",u("Redo"),"CTRL+Y",C)}_addButton(r,c,u,_){const C=this.editor;C.ui.componentFactory.add(r,M=>{const E=C.commands.get(r),N=new Hr(M);return N.set({label:c,icon:_,keystroke:u,tooltip:!0}),N.bind("isEnabled").to(E,"isEnabled"),this.listenTo(N,"execute",()=>{C.execute(r),C.editing.view.focus()}),N})}}class UC extends lo{static get requires(){return[j8,J8]}static get pluginName(){return"Undo"}}class ZC extends(we()){constructor(){super();const r=new window.FileReader;this._reader=r,this._data=void 0,this.set("loaded",0),r.onprogress=c=>{this.loaded=c.loaded}}get error(){return this._reader.error}get data(){return this._data}read(r){const c=this._reader;return this.total=r.size,new Promise((u,_)=>{c.onload=()=>{const C=c.result;this._data=C,u(C)},c.onerror=()=>{_("error")},c.onabort=()=>{_("aborted")},this._reader.readAsDataURL(r)})}abort(){this._reader.abort()}}class ap extends lo{constructor(){super(...arguments),this.loaders=new Xs,this._loadersMap=new Map,this._pendingAction=null}static get pluginName(){return"FileRepository"}static get requires(){return[Q2]}init(){this.loaders.on("change",()=>this._updatePendingAction()),this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",(r,c)=>c?r/c*100:0)}getLoader(r){return this._loadersMap.get(r)||null}createLoader(r){if(!this.createUploadAdapter)return Tt("filerepository-no-upload-adapter"),null;const c=new E4(Promise.resolve(r),this.createUploadAdapter);return this.loaders.add(c),this._loadersMap.set(r,c),r instanceof Promise&&c.file.then(u=>{this._loadersMap.set(u,c)}).catch(()=>{}),c.on("change:uploaded",()=>{let u=0;for(const _ of this.loaders)u+=_.uploaded;this.uploaded=u}),c.on("change:uploadTotal",()=>{let u=0;for(const _ of this.loaders)_.uploadTotal&&(u+=_.uploadTotal);this.uploadTotal=u}),c}destroyLoader(r){const c=r instanceof E4?r:this.getLoader(r);c._destroy(),this.loaders.remove(c),this._loadersMap.forEach((u,_)=>{u===c&&this._loadersMap.delete(_)})}_updatePendingAction(){const r=this.editor.plugins.get(Q2);if(this.loaders.length){if(!this._pendingAction){const c=this.editor.t,u=_=>`${c("Upload in progress")} ${parseInt(_)}%.`;this._pendingAction=r.add(u(this.uploadedPercent)),this._pendingAction.bind("message").to(this,"uploadedPercent",u)}}else r.remove(this._pendingAction),this._pendingAction=null}}class E4 extends(we()){constructor(r,c){super(),this.id=Dt(),this._filePromiseWrapper=this._createFilePromiseWrapper(r),this._adapter=c(this),this._reader=new ZC,this.set("status","idle"),this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",(u,_)=>_?u/_*100:0),this.set("uploadResponse",null)}get file(){return this._filePromiseWrapper?this._filePromiseWrapper.promise.then(r=>this._filePromiseWrapper?r:null):Promise.resolve(null)}get data(){return this._reader.data}read(){if("idle"!=this.status)throw new it("filerepository-read-wrong-status",this);return this.status="reading",this.file.then(r=>this._reader.read(r)).then(r=>{if("reading"!==this.status)throw this.status;return this.status="idle",r}).catch(r=>{throw"aborted"===r?(this.status="aborted","aborted"):(this.status="error",this._reader.error?this._reader.error:r)})}upload(){if("idle"!=this.status)throw new it("filerepository-upload-wrong-status",this);return this.status="uploading",this.file.then(()=>this._adapter.upload()).then(r=>(this.uploadResponse=r,this.status="idle",r)).catch(r=>{throw"aborted"===this.status?"aborted":(this.status="error",r)})}abort(){const r=this.status;this.status="aborted",this._filePromiseWrapper.isFulfilled?"reading"==r?this._reader.abort():"uploading"==r&&this._adapter.abort&&this._adapter.abort():(this._filePromiseWrapper.promise.catch(()=>{}),this._filePromiseWrapper.rejecter("aborted")),this._destroy()}_destroy(){this._filePromiseWrapper=void 0,this._reader=void 0,this._adapter=void 0,this.uploadResponse=void 0}_createFilePromiseWrapper(r){const c={};return c.promise=new Promise((u,_)=>{c.rejecter=_,c.isFulfilled=!1,r.then(C=>{c.isFulfilled=!0,u(C)}).catch(C=>{c.isFulfilled=!0,_(C)})}),c}}class E5 extends aa{constructor(r){super(r),this.buttonView=new Hr(r),this._fileInputView=new Q8(r),this._fileInputView.bind("acceptedType").to(this),this._fileInputView.bind("allowMultipleFiles").to(this),this._fileInputView.delegate("done").to(this),this.setTemplate({tag:"span",attributes:{class:"ck-file-dialog-button"},children:[this.buttonView,this._fileInputView]}),this.buttonView.on("execute",()=>{this._fileInputView.open()})}focus(){this.buttonView.focus()}}class Q8 extends aa{constructor(r){super(r),this.set("acceptedType",void 0),this.set("allowMultipleFiles",!1);const c=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck-hidden"],type:"file",tabindex:"-1",accept:c.to("acceptedType"),multiple:c.to("allowMultipleFiles")},on:{change:c.to(()=>{this.element&&this.element.files&&this.element.files.length&&this.fire("done",this.element.files),this.element.value=""})}})}open(){this.element.click()}}const MC="abcdefghijklmnopqrstuvwxyz0123456789";class W8{constructor(r,c,u){this.loader=r,this.url=c,this.t=u}upload(){return this.loader.file.then(r=>new Promise((c,u)=>{this._initRequest(),this._initListeners(c,u,r),this._sendRequest(r)}))}abort(){this.xhr&&this.xhr.abort()}_initRequest(){const r=this.xhr=new XMLHttpRequest;r.open("POST",this.url,!0),r.responseType="json"}_initListeners(r,c,u){const _=this.xhr,C=this.loader,M=(0,this.t)("Cannot upload file:")+` ${u.name}.`;_.addEventListener("error",()=>c(M)),_.addEventListener("abort",()=>c()),_.addEventListener("load",()=>{const E=_.response;if(!E||!E.uploaded)return c(E&&E.error&&E.error.message?E.error.message:M);r({default:E.url})}),_.upload&&_.upload.addEventListener("progress",E=>{E.lengthComputable&&(C.uploadTotal=E.total,C.uploaded=E.loaded)})}_sendRequest(r){const c=new FormData;c.append("upload",r),c.append("ckCsrfToken",function kC(){let m=function(u){u=u.toLowerCase();const _=document.cookie.split(";");for(const C of _){const M=C.split("=");if(decodeURIComponent(M[0].trim().toLowerCase())===u)return decodeURIComponent(M[1])}return null}("ckCsrfToken");var c;return m&&40==m.length||(m=function(u){let _="";const C=new Uint8Array(40);window.crypto.getRandomValues(C);for(let M=0;M.5?E.toUpperCase():E}return _}(),c=m,document.cookie=encodeURIComponent("ckCsrfToken")+"="+encodeURIComponent(c)+";path=/"),m}()),this.xhr.send(c)}}function Hp(m,r,c,u){let _,C=null;"function"==typeof u?_=u:(C=m.commands.get(u),_=()=>{m.execute(u)}),m.model.document.on("change:data",(M,E)=>{if(C&&!C.isEnabled||!r.isEnabled)return;const N=os(m.model.document.selection.getRanges());if(!N.isCollapsed||E.isUndo||!E.isLocal)return;const G=Array.from(m.model.document.differ.getChanges()),W=G[0];if(1!=G.length||"insert"!==W.type||"$text"!=W.name||1!=W.length)return;const dt=W.position.parent;if(dt.is("element","codeBlock")||dt.is("element","listItem")&&"function"!=typeof u&&!["numberedList","bulletedList","todoList"].includes(u)||C&&!0===C.value)return;const Zt=dt.getChild(0),ue=m.model.createRangeOn(Zt);if(!ue.containsRange(N)&&!N.end.isEqual(ue.end))return;const xe=c.exec(Zt.data.substr(0,N.end.offset));xe&&m.model.enqueueChange(Ee=>{const ln=Ee.createPositionAt(dt,0),Mn=Ee.createPositionAt(dt,xe[0].length),di=new Ad(ln,Mn);if(!1!==_({match:xe})){Ee.remove(di);const Ri=m.model.document.selection.getFirstRange(),Jo=Ee.createRangeIn(dt);!dt.isEmpty||Jo.isEqual(Ri)||Jo.containsRange(Ri,!0)||Ee.remove(dt)}di.detach(),m.model.enqueueChange(()=>{m.plugins.get("Delete").requestUndoOnBackspace()})})})}function o2(m,r,c,u){let _,C;c instanceof RegExp?_=c:C=c,C=C||(M=>{let E;const N=[],G=[];for(;null!==(E=_.exec(M))&&!(E&&E.length<4);){let{index:W,1:dt,2:Zt,3:ue}=E;W+=E[0].length-(dt+Zt+ue).length;const ln=[W+dt.length+Zt.length,W+dt.length+Zt.length+ue.length];N.push([W,W+dt.length]),N.push(ln),G.push([W+dt.length,W+dt.length+Zt.length])}return{remove:N,format:G}}),m.model.document.on("change:data",(M,E)=>{if(E.isUndo||!E.isLocal||!r.isEnabled)return;const N=m.model,G=N.document.selection;if(!G.isCollapsed)return;const W=Array.from(N.document.differ.getChanges()),dt=W[0];if(1!=W.length||"insert"!==dt.type||"$text"!=dt.name||1!=dt.length)return;const Zt=G.focus,ue=Zt.parent,{text:xe,range:Ee}=function(Ri,Jo){let Da=Ri.start;return{text:Array.from(Ri.getItems()).reduce(($r,Sl)=>!Sl.is("$text")&&!Sl.is("$textProxy")||Sl.getAttribute("code")?(Da=Jo.createPositionAfter(Sl),""):$r+Sl.data,""),range:Jo.createRange(Da,Ri.end)}}(N.createRange(N.createPositionAt(ue,0),Zt),N),ln=C(xe),Mn=F5(Ee.start,ln.format,N),di=F5(Ee.start,ln.remove,N);Mn.length&&di.length&&N.enqueueChange(Ri=>{if(!1!==u(Ri,Mn)){for(const Jo of di.reverse())Ri.remove(Jo);N.enqueueChange(()=>{m.plugins.get("Delete").requestUndoOnBackspace()})}})})}function F5(m,r,c){return r.filter(u=>void 0!==u[0]&&void 0!==u[1]).map(u=>c.createRange(m.getShiftedBy(u[0]),m.getShiftedBy(u[1])))}function Hh(m,r){return(c,u)=>{if(!m.commands.get(r).isEnabled)return!1;const _=m.model.schema.getValidRanges(u,r);for(const C of _)c.setAttribute(r,!0,C);c.removeSelectionAttribute(r)}}class DC extends Ta{constructor(r,c){super(r),this.attributeKey=c}refresh(){const r=this.editor.model,c=r.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=r.schema.checkAttributeInSelection(c.selection,this.attributeKey)}execute(r={}){const c=this.editor.model,u=c.document.selection,_=void 0===r.forceValue?!this.value:r.forceValue;c.change(C=>{if(u.isCollapsed)_?C.setSelectionAttribute(this.attributeKey,!0):C.removeSelectionAttribute(this.attributeKey);else{const M=c.schema.getValidRanges(u.getRanges(),this.attributeKey);for(const E of M)_?C.setAttribute(this.attributeKey,_,E):C.removeAttribute(this.attributeKey,E)}})}_getValueFromFirstAllowedNode(){const r=this.editor.model,c=r.schema,u=r.document.selection;if(u.isCollapsed)return u.hasAttribute(this.attributeKey);for(const _ of u.getRanges())for(const C of _.getItems())if(c.checkAttribute(C,this.attributeKey))return C.hasAttribute(this.attributeKey);return!1}}const zh="bold";class I5 extends lo{static get pluginName(){return"BoldEditing"}init(){const r=this.editor;r.model.schema.extend("$text",{allowAttributes:zh}),r.model.schema.setAttributeProperties(zh,{isFormatting:!0,copyOnEnter:!0}),r.conversion.attributeToElement({model:zh,view:"strong",upcastAlso:["b",c=>{const u=c.getStyle("font-weight");return u&&("bold"==u||Number(u)>=600)?{name:!0,styles:["font-weight"]}:null}]}),r.commands.add(zh,new DC(r,zh)),r.keystrokes.set("CTRL+B",zh)}}const N5="bold";class q5 extends lo{static get pluginName(){return"BoldUI"}init(){const r=this.editor,c=r.t;r.ui.componentFactory.add(N5,u=>{const _=r.commands.get(N5),C=new Hr(u);return C.set({label:c("Bold"),icon:fs.bold,keystroke:"CTRL+B",tooltip:!0,isToggleable:!0}),C.bind("isOn","isEnabled").to(_,"value","isEnabled"),this.listenTo(C,"execute",()=>{r.execute(N5),r.editing.view.focus()}),C})}}var _f=b(8603);Io()(_f.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});const Yh="italic";class $8 extends lo{static get pluginName(){return"ItalicEditing"}init(){const r=this.editor;r.model.schema.extend("$text",{allowAttributes:Yh}),r.model.schema.setAttributeProperties(Yh,{isFormatting:!0,copyOnEnter:!0}),r.conversion.attributeToElement({model:Yh,view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]}),r.commands.add(Yh,new DC(r,Yh)),r.keystrokes.set("CTRL+I",Yh)}}const j0="italic";class N4 extends lo{static get pluginName(){return"ItalicUI"}init(){const r=this.editor,c=r.t;r.ui.componentFactory.add(j0,u=>{const _=r.commands.get(j0),C=new Hr(u);return C.set({label:c("Italic"),icon:'',keystroke:"CTRL+I",tooltip:!0,isToggleable:!0}),C.bind("isOn","isEnabled").to(_,"value","isEnabled"),this.listenTo(C,"execute",()=>{r.execute(j0),r.editing.view.focus()}),C})}}class K8 extends Ta{refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(r={}){const c=this.editor.model,u=c.schema,C=Array.from(c.document.selection.getSelectedBlocks()),M=void 0===r.forceValue?!this.value:r.forceValue;c.change(E=>{if(M){const N=C.filter(G=>_a(G)||R5(u,G));this._applyQuote(E,N)}else this._removeQuote(E,C.filter(_a))})}_getValue(){const r=os(this.editor.model.document.selection.getSelectedBlocks());return!(!r||!_a(r))}_checkEnabled(){if(this.value)return!0;const c=this.editor.model.schema,u=os(this.editor.model.document.selection.getSelectedBlocks());return!!u&&R5(c,u)}_removeQuote(r,c){hi(r,c).reverse().forEach(u=>{if(u.start.isAtStart&&u.end.isAtEnd)return void r.unwrap(u.start.parent);if(u.start.isAtStart){const C=r.createPositionBefore(u.start.parent);return void r.move(u,C)}u.end.isAtEnd||r.split(u.end);const _=r.createPositionAfter(u.end.parent);r.move(u,_)})}_applyQuote(r,c){const u=[];hi(r,c).reverse().forEach(_=>{let C=_a(_.start);C||(C=r.createElement("blockQuote"),r.wrap(_,C)),u.push(C)}),u.reverse().reduce((_,C)=>_.nextSibling==C?(r.merge(r.createPositionAfter(_)),_):C)}}function _a(m){return"blockQuote"==m.parent.name?m.parent:null}function hi(m,r){let c,u=0;const _=[];for(;u{const E=r.model.document.differ.getChanges();for(const N of E)if("insert"==N.type){const G=N.position.nodeAfter;if(!G)continue;if(G.is("element","blockQuote")&&G.isEmpty)return M.remove(G),!0;if(G.is("element","blockQuote")&&!c.checkChild(N.position,G))return M.unwrap(G),!0;if(G.is("element")){const W=M.createRangeIn(G);for(const dt of W.getItems())if(dt.is("element","blockQuote")&&!c.checkChild(M.createPositionBefore(dt),dt))return M.unwrap(dt),!0}}else if("remove"==N.type){const G=N.position.parent;if(G.is("element","blockQuote")&&G.isEmpty)return M.remove(G),!0}return!1});const u=this.editor.editing.view.document,_=r.model.document.selection,C=r.commands.get("blockQuote");this.listenTo(u,"enter",(M,E)=>{!_.isCollapsed||!C.value||_.getLastPosition().parent.isEmpty&&(r.execute("blockQuote"),r.editing.view.scrollToTheSelection(),E.preventDefault(),M.stop())},{context:"blockquote"}),this.listenTo(u,"delete",(M,E)=>{if("backward"!=E.direction||!_.isCollapsed||!C.value)return;const N=_.getLastPosition().parent;N.isEmpty&&!N.previousSibling&&(r.execute("blockQuote"),r.editing.view.scrollToTheSelection(),E.preventDefault(),M.stop())},{context:"blockquote"})}}var q4=b(3062);Io()(q4.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class SC extends lo{static get pluginName(){return"BlockQuoteUI"}init(){const r=this.editor,c=r.t;r.ui.componentFactory.add("blockQuote",u=>{const _=r.commands.get("blockQuote"),C=new Hr(u);return C.set({label:c("Block quote"),icon:fs.quote,tooltip:!0,isToggleable:!0}),C.bind("isOn","isEnabled").to(_,"value","isEnabled"),this.listenTo(C,"execute",()=>{r.execute("blockQuote"),r.editing.view.focus()}),C})}}class LC extends lo{static get pluginName(){return"CKBoxUI"}afterInit(){const r=this.editor,c=r.commands.get("ckbox");if(!c)return;const u=r.t;r.ui.componentFactory.add("ckbox",_=>{const C=new Hr(_);return C.set({label:u("Open file manager"),icon:'',tooltip:!0}),C.bind("isOn","isEnabled").to(c,"value","isEnabled"),C.on("execute",()=>{r.execute("ckbox")}),C})}}function OC(m){const r=[];let c=0;for(const _ in m){const C=parseInt(_,10);isNaN(C)||(C>c&&(c=C),r.push(`${m[_]} ${_}w`))}const u=[{srcset:r.join(","),sizes:`(max-width: ${c}px) 100vw, ${c}px`,type:"image/webp"}];return{imageFallbackUrl:m.default,imageSources:u}}class X8 extends Ta{constructor(r){super(r),this._chosenAssets=new Set,this._wrapper=null,this._initListeners()}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(){this.fire("ckbox:open")}_getValue(){return null!==this._wrapper}_checkEnabled(){const r=this.editor.commands.get("insertImage"),c=this.editor.commands.get("link");return!(!r.isEnabled&&!c.isEnabled)}_prepareOptions(){const r=this.editor.config.get("ckbox");return{theme:r.theme,language:r.language,tokenUrl:r.tokenUrl,serviceOrigin:r.serviceOrigin,dialog:{onClose:()=>this.fire("ckbox:close")},assets:{onChoose:c=>this.fire("ckbox:choose",c)}}}_initListeners(){const r=this.editor,c=r.model,u=!r.config.get("ckbox.ignoreDataId");this.on("ckbox",()=>{this.refresh()},{priority:"low"}),this.on("ckbox:open",()=>{this.isEnabled&&!this.value&&(this._wrapper=We(document,"div",{class:"ck ckbox-wrapper"}),document.body.appendChild(this._wrapper),window.CKBox.mount(this._wrapper,this._prepareOptions()))}),this.on("ckbox:close",()=>{this.value&&(this._wrapper.remove(),this._wrapper=null)}),this.on("ckbox:choose",(_,C)=>{if(!this.isEnabled)return;const M=r.commands.get("insertImage"),E=r.commands.get("link"),N=function({assets:G,isImageAllowed:W,isLinkAllowed:dt}){return G.map(Zt=>function(ue){const xe=ue.data.metadata;return!!xe&&xe.width&&xe.height}(Zt)?{id:Zt.data.id,type:"image",attributes:tA(Zt)}:{id:Zt.data.id,type:"link",attributes:eA(Zt)}).filter(Zt=>"image"===Zt.type?W:dt)}({assets:C,isImageAllowed:M.isEnabled,isLinkAllowed:E.isEnabled});0!==N.length&&c.change(G=>{for(const W of N)this._insertAsset(W,W===N[N.length-1],G),u&&(setTimeout(()=>this._chosenAssets.delete(W),1e3),this._chosenAssets.add(W))})}),this.listenTo(r,"destroy",()=>{this.fire("ckbox:close"),this._chosenAssets.clear()})}_insertAsset(r,c,u){const _=this.editor.model.document.selection;u.removeSelectionAttribute("linkHref"),"image"===r.type?this._insertImage(r):this._insertLink(r,u),c||u.setSelection(_.getLastPosition())}_insertImage(r){const c=this.editor,{imageFallbackUrl:u,imageSources:_,imageTextAlternative:C}=r.attributes;c.execute("insertImage",{source:{src:u,sources:_,alt:C}})}_insertLink(r,c){const u=this.editor,_=u.model,C=_.document.selection,{linkName:M,linkHref:E}=r.attributes;if(C.isCollapsed){const N=Jc(C.getAttributes()),G=c.createText(M,N),W=_.insertContent(G);c.setSelection(W)}u.execute("link",E)}}function tA(m){const{imageFallbackUrl:r,imageSources:c}=OC(m.data.imageUrls);return{imageFallbackUrl:r,imageSources:c,imageTextAlternative:m.data.metadata.description||""}}function eA(m){return{linkName:m.data.name,linkHref:z5(m)}}function z5(m){const r=new URL(m.data.url);return r.searchParams.set("download","true"),r.toString()}var Bh=(m,r,c)=>new Promise((u,_)=>{var C=N=>{try{E(c.next(N))}catch(G){_(G)}},M=N=>{try{E(c.throw(N))}catch(G){_(G)}},E=N=>N.done?u(N.value):Promise.resolve(N.value).then(C,M);E((c=c.apply(m,r)).next())});class EC extends lo{static get requires(){return["ImageUploadEditing","ImageUploadProgress",ap,Y5]}static get pluginName(){return"CKBoxUploadAdapter"}afterInit(){return Bh(this,null,function*(){const r=this.editor,c=!!r.config.get("ckbox"),u=!!window.CKBox;if(!c&&!u)return;const _=r.plugins.get(ap),C=r.plugins.get(Y5);_.createUploadAdapter=N=>new FC(N,C.getToken(),r);const M=!r.config.get("ckbox.ignoreDataId"),E=r.plugins.get("ImageUploadEditing");M&&E.on("uploadComplete",(N,{imageElement:G,data:W})=>{r.model.change(dt=>{dt.setAttribute("ckboxImageId",W.ckboxImageId,G)})})})}}class FC{constructor(r,c,u){this.loader=r,this.token=c,this.editor=u,this.controller=new AbortController,this.serviceOrigin=u.config.get("ckbox.serviceOrigin")}getWorkspaceId(){const r=(0,this.editor.t)("Cannot access default workspace."),c=this.editor.config.get("ckbox.defaultUploadWorkspaceId"),u=function(_,C){const[,M]=_.value.split("."),E=JSON.parse(atob(M)),N=E.auth&&E.auth.ckbox&&E.auth.ckbox.workspaces||[E.aud];return C?"superadmin"==(E.auth&&E.auth.ckbox&&E.auth.ckbox.role)||N.includes(C)?C:null:N[0]}(this.token,c);if(null==u)throw At("ckbox-access-default-workspace-error"),r;return u}getAvailableCategories(r=0){return Bh(this,null,function*(){const c=new URL("categories",this.serviceOrigin);return c.searchParams.set("limit",50..toString()),c.searchParams.set("offset",r.toString()),c.searchParams.set("workspaceId",this.getWorkspaceId()),this._sendHttpRequest({url:c}).then(u=>Bh(this,null,function*(){if(u.totalCount-(r+50)>0){const _=yield this.getAvailableCategories(r+50);return[...u.items,..._]}return u.items})).catch(()=>{this.controller.signal.throwIfAborted(),At("ckbox-fetch-category-http-error")})})}getCategoryIdForFile(r){return Bh(this,null,function*(){const c=function(M){const E=new RegExp("\\.(?[^.]+)$");return M.match(E).groups.ext.toLowerCase()}(r.name),u=yield this.getAvailableCategories();if(!u)return null;const _=this.editor.config.get("ckbox.defaultUploadCategories");if(_){const M=Object.keys(_).find(E=>_[E].find(N=>N.toLowerCase()==c));if(M){const E=u.find(N=>N.id===M||N.name===M);return E?E.id:null}}const C=u.find(M=>M.extensions.find(E=>E.toLowerCase()==c));return C?C.id:null})}upload(){return Bh(this,null,function*(){const r=this.editor.t,c=r("Cannot determine a category for the uploaded file."),u=yield this.loader.file,_=yield this.getCategoryIdForFile(u);if(!_)return Promise.reject(c);const C=new URL("assets",this.serviceOrigin),M=new FormData;return C.searchParams.set("workspaceId",this.getWorkspaceId()),M.append("categoryId",_),M.append("file",u),this._sendHttpRequest({method:"POST",url:C,data:M,onUploadProgress:N=>{N.lengthComputable&&(this.loader.uploadTotal=N.total,this.loader.uploaded=N.loaded)}}).then(N=>Bh(this,null,function*(){const G=OC(N.imageUrls);return{ckboxImageId:N.id,default:G.imageFallbackUrl,sources:G.imageSources}})).catch(()=>{const N=r("Cannot upload file:")+` ${u.name}.`;return Promise.reject(N)})})}abort(){this.controller.abort()}_sendHttpRequest({url:r,method:c="GET",data:u,onUploadProgress:_}){const C=this.controller.signal,M=new XMLHttpRequest;M.open(c,r.toString(),!0),M.setRequestHeader("Authorization",this.token.value),M.setRequestHeader("CKBox-Version","CKEditor 5"),M.responseType="json";const E=()=>{M.abort()};return new Promise((N,G)=>{C.addEventListener("abort",E),M.addEventListener("loadstart",()=>{C.addEventListener("abort",E)}),M.addEventListener("loadend",()=>{C.removeEventListener("abort",E)}),M.addEventListener("error",()=>{G()}),M.addEventListener("abort",()=>{G()}),M.addEventListener("load",()=>Bh(this,null,function*(){const W=M.response;return!W||W.statusCode>=400?G(W&&W.message):N(W)})),_&&M.upload.addEventListener("progress",W=>{_(W)}),M.send(u)})}}class Y5 extends lo{static get pluginName(){return"CKBoxEditing"}static get requires(){return["CloudServices","LinkEditing","PictureEditing",EC]}init(){return r=this,u=function*(){const _=this.editor,C=!!_.config.get("ckbox"),M=!!window.CKBox;if(!C&&!M)return;this._initConfig();const E=_.plugins.get("CloudServicesCore"),N=_.config.get("ckbox.tokenUrl");if(N===_.config.get("cloudServices.tokenUrl")){const G=_.plugins.get("CloudServices");this._token=G.token}else this._token=yield E.createToken(N).init();_.config.get("ckbox.ignoreDataId")||(this._initSchema(),this._initConversion(),this._initFixers()),M&&_.commands.add("ckbox",new X8(_))},new Promise((_,C)=>{var M=G=>{try{N(u.next(G))}catch(W){C(W)}},E=G=>{try{N(u.throw(G))}catch(W){C(W)}},N=G=>G.done?_(G.value):Promise.resolve(G.value).then(M,E);N((u=u.apply(r,null)).next())});var r,u}getToken(){return this._token}_initConfig(){const r=this.editor;if(r.config.define("ckbox",{serviceOrigin:"https://api.ckbox.io",defaultUploadCategories:null,ignoreDataId:!1,language:r.locale.uiLanguage,theme:"default",tokenUrl:r.config.get("cloudServices.tokenUrl")}),!r.config.get("ckbox.tokenUrl"))throw new it("ckbox-plugin-missing-token-url",this);r.plugins.has("ImageBlockEditing")||r.plugins.has("ImageInlineEditing")||At("ckbox-plugin-image-feature-missing",r)}_initSchema(){const r=this.editor.model.schema;r.extend("$text",{allowAttributes:"ckboxLinkId"}),r.isRegistered("imageBlock")&&r.extend("imageBlock",{allowAttributes:["ckboxImageId","ckboxLinkId"]}),r.isRegistered("imageInline")&&r.extend("imageInline",{allowAttributes:["ckboxImageId","ckboxLinkId"]}),r.addAttributeCheck((c,u)=>{if(!c.last.getAttribute("linkHref")&&"ckboxLinkId"===u)return!1})}_initConversion(){const r=this.editor;r.conversion.for("downcast").add(c=>{c.on("attribute:ckboxLinkId:imageBlock",(u,_,C)=>{const{writer:M,mapper:E,consumable:N}=C;if(!N.consume(_.item,u.name))return;const G=[...E.toViewElement(_.item).getChildren()].find(W=>"a"===W.name);G&&(_.item.hasAttribute("ckboxLinkId")?M.setAttribute("data-ckbox-resource-id",_.item.getAttribute("ckboxLinkId"),G):M.removeAttribute("data-ckbox-resource-id",G))},{priority:"low"}),c.on("attribute:ckboxLinkId",(u,_,C)=>{const{writer:M,mapper:E,consumable:N}=C;if(N.consume(_.item,u.name)){if(_.attributeOldValue){const G=iA(M,_.attributeOldValue);M.unwrap(E.toViewRange(_.range),G)}if(_.attributeNewValue){const G=iA(M,_.attributeNewValue);_.item.is("selection")?M.wrap(M.document.selection.getFirstRange(),G):M.wrap(E.toViewRange(_.range),G)}}},{priority:"low"})}),r.conversion.for("upcast").add(c=>{c.on("element:a",(u,_,C)=>{const{writer:M,consumable:E}=C;if(!_.viewItem.getAttribute("href")||!E.consume(_.viewItem,{attributes:["data-ckbox-resource-id"]}))return;const N=_.viewItem.getAttribute("data-ckbox-resource-id");if(N)if(_.modelRange)for(let G of _.modelRange.getItems())G.is("$textProxy")&&(G=G.textNode),oA(G)&&M.setAttribute("ckboxLinkId",N,G);else M.setAttribute("ckboxLinkId",N,_.modelCursor.nodeBefore||_.modelCursor.parent)},{priority:"low"})}),r.conversion.for("downcast").attributeToAttribute({model:"ckboxImageId",view:"data-ckbox-resource-id"}),r.conversion.for("upcast").elementToAttribute({model:{key:"ckboxImageId",value:c=>c.getAttribute("data-ckbox-resource-id")},view:{attributes:{"data-ckbox-resource-id":/[\s\S]+/}}})}_initFixers(){const r=this.editor,c=r.model,u=c.document.selection;var _;c.document.registerPostFixer((_=r,C=>{let M=!1;const E=_.model,N=_.commands.get("ckbox");if(!N)return M;for(const G of E.document.differ.getChanges()){if("insert"!==G.type&&"attribute"!==G.type)continue;const W="insert"===G.type?new Oi(G.position,G.position.getShiftedBy(G.length)):G.range,dt="attribute"===G.type&&"linkHref"===G.attributeKey&&null===G.attributeNewValue;for(const Zt of W.getItems()){if(dt&&Zt.hasAttribute("ckboxLinkId")){C.removeAttribute("ckboxLinkId",Zt),M=!0;continue}const ue=nA(Zt,N._chosenAssets);for(const xe of ue){const Ee="image"===xe.type?"ckboxImageId":"ckboxLinkId";xe.id!==Zt.getAttribute(Ee)&&(C.setAttribute(Ee,xe.id,Zt),M=!0)}}}return M})),c.document.registerPostFixer(function(_){return C=>!(_.hasAttribute("linkHref")||!_.hasAttribute("ckboxLinkId")||(C.removeSelectionAttribute("ckboxLinkId"),0))}(u))}}function nA(m,r){const c=m.is("element","imageInline")||m.is("element","imageBlock"),u=m.hasAttribute("linkHref");return[...r].filter(_=>"image"===_.type&&c?_.attributes.imageFallbackUrl===m.getAttribute("src"):"link"===_.type&&u?_.attributes.linkHref===m.getAttribute("linkHref"):void 0)}function iA(m,r){const c=m.createAttributeElement("a",{"data-ckbox-resource-id":r},{priority:5});return m.setCustomProperty("link",!0,c),c}function oA(m){return!!m.is("$text")||!(!m.is("element","imageInline")&&!m.is("element","imageBlock"))}class IC extends lo{static get pluginName(){return"CKFinderUI"}init(){const r=this.editor,u=r.t;r.ui.componentFactory.add("ckfinder",_=>{const C=r.commands.get("ckfinder"),M=new Hr(_);return M.set({label:u("Insert image or file"),icon:'',tooltip:!0}),M.bind("isEnabled").to(C),M.on("execute",()=>{r.execute("ckfinder"),r.editing.view.focus()}),M})}}class NC extends Ta{constructor(r){super(r),this.affectsData=!1,this.stopListening(this.editor.model.document,"change"),this.listenTo(this.editor.model.document,"change",()=>this.refresh(),{priority:"low"})}refresh(){const r=this.editor.commands.get("insertImage"),c=this.editor.commands.get("link");this.isEnabled=r.isEnabled||c.isEnabled}execute(){const r=this.editor,c=this.editor.config.get("ckfinder.openerMethod")||"modal";if("popup"!=c&&"modal"!=c)throw new it("ckfinder-unknown-openermethod",r);const u=this.editor.config.get("ckfinder.options")||{};u.chooseFiles=!0;const _=u.onInit;u.language||(u.language=r.locale.uiLanguage),u.onInit=C=>{_&&_(C),C.on("files:choose",M=>{const E=M.data.files.toArray(),N=E.filter(dt=>!dt.isImage()),G=E.filter(dt=>dt.isImage());for(const dt of N)r.execute("link",dt.getUrl());const W=[];for(const dt of G){const Zt=dt.getUrl();W.push(Zt||C.request("file:getProxyUrl",{file:dt}))}W.length&&B5(r,W)}),C.on("file:choose:resizedImage",M=>{const E=M.data.resizedUrl;if(E)B5(r,[E]);else{const N=r.plugins.get("Notification"),G=r.locale.t;N.showWarning(G("Could not obtain resized image URL."),{title:G("Selecting resized image failed"),namespace:"ckfinder"})}})},window.CKFinder[c](u)}}function B5(m,r){if(m.commands.get("insertImage").isEnabled)m.execute("insertImage",{source:r});else{const c=m.plugins.get("Notification"),u=m.locale.t;c.showWarning(u("Could not insert image at the current position."),{title:u("Inserting image failed"),namespace:"ckfinder"})}}class qC extends lo{static get pluginName(){return"CKFinderEditing"}static get requires(){return[af,"LinkEditing"]}init(){const r=this.editor;if(!r.plugins.has("ImageBlockEditing")&&!r.plugins.has("ImageInlineEditing"))throw new it("ckfinder-missing-image-plugin",r);r.commands.add("ckfinder",new NC(r))}}class aA extends lo{static get pluginName(){return"CloudServicesUploadAdapter"}static get requires(){return["CloudServices",ap]}init(){const r=this.editor,c=r.plugins.get("CloudServices"),u=c.token,_=c.uploadUrl;if(!u)return;const C=r.plugins.get("CloudServicesCore");this._uploadGateway=C.createUploadGateway(u,_),r.plugins.get(ap).createUploadAdapter=M=>new rA(this._uploadGateway,M)}}class rA{constructor(r,c){this.uploadGateway=r,this.loader=c}upload(){return this.loader.file.then(r=>(this.fileUploader=this.uploadGateway.upload(r),this.fileUploader.on("progress",(c,u)=>{this.loader.uploadTotal=u.total,this.loader.uploaded=u.uploaded}),this.fileUploader.send()))}abort(){this.fileUploader.abort()}}class V5 extends Ta{constructor(r){super(r),this._isEnabledBasedOnSelection=!1}refresh(){const r=this.editor.model,c=os(r.document.selection.getSelectedBlocks());this.value=!!c&&c.is("element","paragraph"),this.isEnabled=!!c&&RC(c,r.schema)}execute(r={}){const c=this.editor.model,_=r.selection||c.document.selection;c.canEditAt(_)&&c.change(C=>{const M=_.getSelectedBlocks();for(const E of M)!E.is("element","paragraph")&&RC(E,c.schema)&&C.rename(E,"paragraph")})}}function RC(m,r){return r.checkChild(m.parent,"paragraph")&&!r.isObject(m)}class sA extends Ta{constructor(r){super(r),this._isEnabledBasedOnSelection=!1}execute(r){const c=this.editor.model,u=r.attributes;let _=r.position;c.canEditAt(_)&&c.change(C=>{if(_=this._findPositionToInsertParagraph(_,C),!_)return;const M=C.createElement("paragraph");u&&c.schema.setAllowedAttributes(M,u,C),c.insertContent(M,_),C.setSelection(M,"in")})}_findPositionToInsertParagraph(r,c){const u=this.editor.model;if(u.schema.checkChild(r,"paragraph"))return r;const _=u.schema.findAllowedParent(r,"paragraph");if(!_)return null;const C=r.parent,M=u.schema.checkChild(C,"$text");return C.isEmpty||M&&r.isAtEnd?u.createPositionAfter(C):!C.isEmpty&&M&&r.isAtStart?u.createPositionBefore(C):c.split(r,_).position}}const G5=class extends lo{static get pluginName(){return"Paragraph"}init(){const m=this.editor,r=m.model;m.commands.add("paragraph",new V5(m)),m.commands.add("insertParagraph",new sA(m)),r.schema.register("paragraph",{inheritAllFrom:"$block"}),m.conversion.elementToElement({model:"paragraph",view:"p"}),m.conversion.for("upcast").elementToElement({model:(c,{writer:u})=>G5.paragraphLikeElements.has(c.name)?c.isEmpty?null:u.createElement("paragraph"):null,view:/.+/,converterPriority:"low"})}};let j5=G5;j5.paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"]);class J0 extends Ta{constructor(r,c){super(r),this.modelElements=c}refresh(){const r=os(this.editor.model.document.selection.getSelectedBlocks());this.value=!!r&&this.modelElements.includes(r.name)&&r.name,this.isEnabled=!!r&&this.modelElements.some(c=>R4(r,c,this.editor.model.schema))}execute(r){const c=this.editor.model,u=c.document,_=r.value;c.change(C=>{const M=Array.from(u.selection.getSelectedBlocks()).filter(E=>R4(E,_,c.schema));for(const E of M)E.is("element",_)||C.rename(E,_)})}}function R4(m,r,c){return c.checkChild(m.parent,r)&&!c.isObject(m)}const J5="paragraph";class Q5 extends lo{static get pluginName(){return"HeadingEditing"}constructor(r){super(r),r.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[j5]}init(){const r=this.editor,c=r.config.get("heading.options"),u=[];for(const _ of c)"paragraph"!==_.model&&(r.model.schema.register(_.model,{inheritAllFrom:"$block"}),r.conversion.elementToElement(_),u.push(_.model));this._addDefaultH1Conversion(r),r.commands.add("heading",new J0(r,u))}afterInit(){const r=this.editor,c=r.commands.get("enter"),u=r.config.get("heading.options");c&&this.listenTo(c,"afterExecute",(_,C)=>{const M=r.model.document.selection.getFirstPosition().parent;u.some(E=>M.is("element",E.model))&&!M.is("element",J5)&&0===M.childCount&&C.writer.rename(M,J5)})}_addDefaultH1Conversion(r){r.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:Pt.low+1})}}var W5=b(8733);Io()(W5.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class zC extends lo{static get pluginName(){return"HeadingUI"}init(){const r=this.editor,c=r.t,u=function(M){const E=M.t,N={Paragraph:E("Paragraph"),"Heading 1":E("Heading 1"),"Heading 2":E("Heading 2"),"Heading 3":E("Heading 3"),"Heading 4":E("Heading 4"),"Heading 5":E("Heading 5"),"Heading 6":E("Heading 6")};return M.config.get("heading.options").map(G=>{const W=N[G.title];return W&&W!=G.title&&(G.title=W),G})}(r),_=c("Choose heading"),C=c("Heading");r.ui.componentFactory.add("heading",M=>{const E={},N=new Xs,G=r.commands.get("heading"),W=r.commands.get("paragraph"),dt=[G];for(const ue of u){const xe={type:"button",model:new S0({label:ue.title,class:ue.class,role:"menuitemradio",withText:!0})};"paragraph"===ue.model?(xe.model.bind("isOn").to(W,"value"),xe.model.set("commandName","paragraph"),dt.push(W)):(xe.model.bind("isOn").to(G,"value",Ee=>Ee===ue.model),xe.model.set({commandName:"heading",commandValue:ue.model})),N.add(xe),E[ue.model]=ue.title}const Zt=D1(M);return Eu(Zt,N,{ariaLabel:C,role:"menu"}),Zt.buttonView.set({ariaLabel:C,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:C}),Zt.extendTemplate({attributes:{class:["ck-heading-dropdown"]}}),Zt.bind("isEnabled").toMany(dt,"isEnabled",(...ue)=>ue.some(xe=>xe)),Zt.buttonView.bind("label").to(G,"value",W,"value",(ue,xe)=>{const Ee=ue||xe&&"paragraph";return"boolean"==typeof Ee?_:E[Ee]?E[Ee]:_}),this.listenTo(Zt,"execute",ue=>{const{commandName:xe,commandValue:Ee}=ue.source;r.execute(xe,Ee?{value:Ee}:void 0),r.editing.view.focus()}),Zt})}}function YC(m){return m.createContainerElement("figure",{class:"image"},[m.createEmptyElement("img"),m.createSlot("children")])}function cA(m,r){const c=m.plugins.get("ImageUtils"),u=m.plugins.has("ImageInlineEditing")&&m.plugins.has("ImageBlockEditing");return C=>c.isInlineImageView(C)?u&&("block"==C.getStyle("display")||C.findAncestor(c.isBlockImageView)?"imageBlock":"imageInline")!==r?null:function _(C){const M={name:!0};return C.hasAttribute("src")&&(M.attributes=["src"]),M}(C):null}function ca(m,r){const c=os(r.getSelectedBlocks());return!c||m.isObject(c)||c.isEmpty&&"listItem"!=c.name?"imageBlock":"imageInline"}function Q0(m){return m&&m.endsWith("px")?parseInt(m):null}function $5(m){const r=Q0(m.getStyle("width")),c=Q0(m.getStyle("height"));return!(!r||!c)}var H4=Object.defineProperty,BC=Object.getOwnPropertySymbols,W0=Object.prototype.hasOwnProperty,lA=Object.prototype.propertyIsEnumerable,z4=(m,r,c)=>r in m?H4(m,r,{enumerable:!0,configurable:!0,writable:!0,value:c}):m[r]=c,id=(m,r)=>{for(var c in r||(r={}))W0.call(r,c)&&z4(m,c,r[c]);if(BC)for(var c of BC(r))lA.call(r,c)&&z4(m,c,r[c]);return m};const uA=/^(image|image-inline)$/;class Md extends lo{constructor(){super(...arguments),this._domEmitter=new(eo())}static get pluginName(){return"ImageUtils"}isImage(r){return this.isInlineImage(r)||this.isBlockImage(r)}isInlineImageView(r){return!!r&&r.is("element","img")}isBlockImageView(r){return!!r&&r.is("element","figure")&&r.hasClass("image")}insertImage(r={},c=null,u=null,_={}){const C=this.editor,M=C.model,E=M.document.selection;u=Vh(C,c||E,u),r=id(id({},Object.fromEntries(E.getAttributes())),r);for(const N in r)M.schema.checkAttribute(u,N)||delete r[N];return M.change(N=>{const{setImageSizes:G=!0}=_,W=N.createElement(u,r);return M.insertObject(W,c,null,{setSelection:"on",findOptimalPosition:c||"imageInline"==u?void 0:"auto"}),W.parent?(G&&this.setImageNaturalSizeAttributes(W),W):null})}setImageNaturalSizeAttributes(r){const c=r.getAttribute("src");c&&(r.getAttribute("width")||r.getAttribute("height")||this.editor.model.change(u=>{const _=new Mt.window.Image;this._domEmitter.listenTo(_,"load",()=>{r.getAttribute("width")||r.getAttribute("height")||this.editor.model.enqueueChange(u.batch,C=>{C.setAttribute("width",_.naturalWidth,r),C.setAttribute("height",_.naturalHeight,r)}),this._domEmitter.stopListening(_,"load")}),_.src=c}))}getClosestSelectedImageWidget(r){const c=r.getFirstPosition();if(!c)return null;const u=r.getSelectedElement();if(u&&this.isImageWidget(u))return u;let _=c.parent;for(;_;){if(_.is("element")&&this.isImageWidget(_))return _;_=_.parent}return null}getClosestSelectedImageElement(r){const c=r.getSelectedElement();return this.isImage(c)?c:r.getFirstPosition().findAncestor("imageBlock")}getImageWidgetFromImageView(r){return r.findAncestor({classes:uA})}isImageAllowed(){const r=this.editor.model.document.selection;return function(c,u){if("imageBlock"==Vh(c,u,null)){const C=function(M,E){const G=D4(M,E).start.parent;return G.isEmpty&&!G.is("element","$root")?G.parent:G}(u,c.model);if(c.model.schema.checkChild(C,"imageBlock"))return!0}else if(c.model.schema.checkChild(u.focus,"imageInline"))return!0;return!1}(this.editor,r)&&[...r.focus.getAncestors()].every(u=>!u.is("element","imageBlock"))}toImageWidget(r,c,u){return c.setCustomProperty("image",!0,r),uf(r,c,{label:()=>{const _=this.findViewImgElement(r).getAttribute("alt");return _?`${_} ${u}`:u}})}isImageWidget(r){return!!r.getCustomProperty("image")&&Pl(r)}isBlockImage(r){return!!r&&r.is("element","imageBlock")}isInlineImage(r){return!!r&&r.is("element","imageInline")}findViewImgElement(r){if(this.isInlineImageView(r))return r;const c=this.editor.editing.view;for(const{item:u}of c.createRangeIn(r))if(this.isInlineImageView(u))return u}destroy(){return this._domEmitter.stopListening(),super.destroy()}}function Vh(m,r,c){const u=m.model.schema,_=m.config.get("image.insert.type");return m.plugins.has("ImageBlockEditing")?m.plugins.has("ImageInlineEditing")?c||("inline"===_?"imageInline":"block"===_?"imageBlock":r.is("selection")?ca(u,r):u.checkChild(r,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}new RegExp(String(/^(http(s)?:\/\/)?[\w-]+\.[\w.~:/[\]@!$&'()*+,;=%-]+/.source+/\.(jpg|jpeg|png|gif|ico|webp|JPG|JPEG|PNG|GIF|ICO|WEBP)/.source+/(\?[\w.~:/[\]@!$&'()*+,;=%-]*)?/.source+/(#[\w.~:/[\]@!$&'()*+,;=%-]*)?$/.source));class K5 extends Ta{refresh(){const r=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!r,this.value=!(!this.isEnabled||!r.hasAttribute("alt"))&&r.getAttribute("alt")}execute(r){const c=this.editor,u=c.plugins.get("ImageUtils"),_=c.model,C=u.getClosestSelectedImageElement(_.document.selection);_.change(M=>{M.setAttribute("alt",r.newValue,C)})}}class VC extends lo{static get requires(){return[Md]}static get pluginName(){return"ImageTextAlternativeEditing"}init(){this.editor.commands.add("imageTextAlternative",new K5(this.editor))}}var GC=b(1905);Io()(GC.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var K0=b(6764);Io()(K0.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class jC extends aa{constructor(r){super(r);const c=this.locale.t;this.focusTracker=new as,this.keystrokes=new jc,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(c("Save"),fs.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(c("Cancel"),fs.cancel,"ck-button-cancel","cancel"),this._focusables=new Fa,this._focusCycler=new ul({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]})}render(){super.render(),this.keystrokes.listenTo(this.element),x({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach(r=>{this._focusables.add(r),this.focusTracker.add(r.element)})}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createButton(r,c,u,_){const C=new Hr(this.locale);return C.set({label:r,icon:c,tooltip:!0}),C.extendTemplate({attributes:{class:u}}),_&&C.delegate("execute").to(this,_),C}_createLabeledInputView(){const r=this.locale.t,c=new Dr(this.locale,$2);return c.label=r("Text alternative"),c}}function X5(m){const r=m.editing.view,c=td.defaultPositions,u=m.plugins.get("ImageUtils");return{target:r.domConverter.mapViewToDom(u.getClosestSelectedImageWidget(r.document.selection)),positions:[c.northArrowSouth,c.northArrowSouthWest,c.northArrowSouthEast,c.southArrowNorth,c.southArrowNorthWest,c.southArrowNorthEast,c.viewportStickyNorth]}}class JC extends lo{static get requires(){return[O0]}static get pluginName(){return"ImageTextAlternativeUI"}init(){this._createButton()}destroy(){super.destroy(),this._form&&this._form.destroy()}_createButton(){const r=this.editor,c=r.t;r.ui.componentFactory.add("imageTextAlternative",u=>{const _=r.commands.get("imageTextAlternative"),C=new Hr(u);return C.set({label:c("Change image text alternative"),icon:fs.lowVision,tooltip:!0}),C.bind("isEnabled").to(_,"isEnabled"),C.bind("isOn").to(_,"value",M=>!!M),this.listenTo(C,"execute",()=>{this._showForm()}),C})}_createForm(){const r=this.editor,c=r.editing.view.document,u=r.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new(A(jC))(r.locale),this._form.render(),this.listenTo(this._form,"submit",()=>{r.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)}),this.listenTo(this._form,"cancel",()=>{this._hideForm(!0)}),this._form.keystrokes.set("Esc",(_,C)=>{this._hideForm(!0),C()}),this.listenTo(r.ui,"update",()=>{u.getClosestSelectedImageWidget(c.selection)?this._isVisible&&function(_){const C=_.plugins.get("ContextualBalloon");if(_.plugins.get("ImageUtils").getClosestSelectedImageWidget(_.editing.view.document.selection)){const M=X5(_);C.updatePosition(M)}}(r):this._hideForm(!0)}),t({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;this._form||this._createForm();const r=this.editor,c=r.commands.get("imageTextAlternative"),u=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:X5(r)}),u.fieldView.value=u.fieldView.element.value=c.value||"",this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(r=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),r&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}class Y4 extends lo{static get requires(){return[VC,JC]}static get pluginName(){return"ImageTextAlternative"}}function B4(m,r){const c=(u,_,C)=>{if(!C.consumable.consume(_.item,u.name))return;const M=C.writer,E=C.mapper.toViewElement(_.item),N=m.findViewImgElement(E);null===_.attributeNewValue?(M.removeAttribute("srcset",N),M.removeAttribute("sizes",N)):_.attributeNewValue&&(M.setAttribute("srcset",_.attributeNewValue,N),M.setAttribute("sizes","100vw",N))};return u=>{u.on(`attribute:srcset:${r}`,c)}}function V4(m,r,c){const u=(_,C,M)=>{if(!M.consumable.consume(C.item,_.name))return;const E=M.writer,N=M.mapper.toViewElement(C.item),G=m.findViewImgElement(N);E.setAttribute(C.attributeKey,C.attributeNewValue||"",G)};return _=>{_.on(`attribute:${c}:${r}`,u)}}class pA extends Mu{observe(r){this.listenTo(r,"load",(c,u)=>{const _=u.target;this.checkShouldIgnoreEventFromTarget(_)||"IMG"==_.tagName&&this._fireEvents(u)},{useCapture:!0})}stopObserving(r){this.stopListening(r)}_fireEvents(r){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",r))}}var ay=Object.defineProperty,X0=Object.getOwnPropertySymbols,tv=Object.prototype.hasOwnProperty,ev=Object.prototype.propertyIsEnumerable,G4=(m,r,c)=>r in m?ay(m,r,{enumerable:!0,configurable:!0,writable:!0,value:c}):m[r]=c,Gh=(m,r)=>{for(var c in r||(r={}))tv.call(r,c)&&G4(m,c,r[c]);if(X0)for(var c of X0(r))ev.call(r,c)&&G4(m,c,r[c]);return m};class nv extends Ta{constructor(r){super(r);const c=r.config.get("image.insert.type");r.plugins.has("ImageBlockEditing")||"block"===c&&Tt("image-block-plugin-required"),r.plugins.has("ImageInlineEditing")||"inline"===c&&Tt("image-inline-plugin-required")}refresh(){const r=this.editor.plugins.get("ImageUtils");this.isEnabled=r.isImageAllowed()}execute(r){const c=Ds(r.source),u=this.editor.model.document.selection,_=this.editor.plugins.get("ImageUtils"),C=Object.fromEntries(u.getAttributes());c.forEach((M,E)=>{const N=u.getSelectedElement();if("string"==typeof M&&(M={src:M}),E&&N&&_.isImage(N)){const G=this.editor.model.createPositionAfter(N);_.insertImage(Gh(Gh({},M),C),G)}else _.insertImage(Gh(Gh({},M),C))})}}class mA extends Ta{refresh(){const r=this.editor.plugins.get("ImageUtils"),c=this.editor.model.document.selection.getSelectedElement();this.isEnabled=r.isImage(c),this.value=this.isEnabled?c.getAttribute("src"):null}execute(r){const c=this.editor.model.document.selection.getSelectedElement();this.editor.model.change(u=>{u.setAttribute("src",r.source,c),u.removeAttribute("srcset",c),u.removeAttribute("sizes",c)})}}class iv extends lo{static get requires(){return[Md]}static get pluginName(){return"ImageEditing"}init(){const r=this.editor,c=r.conversion;r.editing.view.addObserver(pA),c.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:"srcset"});const u=new nv(r),_=new mA(r);r.commands.add("insertImage",u),r.commands.add("replaceImageSource",_),r.commands.add("imageInsert",u)}}class ov extends lo{static get requires(){return[Md]}static get pluginName(){return"ImageSizeAttributes"}afterInit(){this._registerSchema(),this._registerConverters("imageBlock"),this._registerConverters("imageInline")}_registerSchema(){this.editor.plugins.has("ImageBlockEditing")&&this.editor.model.schema.extend("imageBlock",{allowAttributes:["width","height"]}),this.editor.plugins.has("ImageInlineEditing")&&this.editor.model.schema.extend("imageInline",{allowAttributes:["width","height"]})}_registerConverters(r){const c=this.editor,u=c.plugins.get("ImageUtils"),_="imageBlock"===r?"figure":"img";function C(M,E,N,G){M.on(`attribute:${E}:${r}`,(W,dt,Zt)=>{if(!Zt.consumable.consume(dt.item,W.name))return;const ue=Zt.writer,xe=Zt.mapper.toViewElement(dt.item),Ee=u.findViewImgElement(xe);if(null!==dt.attributeNewValue?ue.setAttribute(N,dt.attributeNewValue,Ee):ue.removeAttribute(N,Ee),dt.item.hasAttribute("sources"))return;const ln=dt.item.hasAttribute("resizedWidth");if("imageInline"===r&&!ln&&!G)return;const Mn=dt.item.getAttribute("width"),di=dt.item.getAttribute("height"),Ri=Ee.getStyle("aspect-ratio");Mn&&di&&!Ri&&ue.setStyle("aspect-ratio",`${Mn}/${di}`,Ee)})}c.conversion.for("upcast").attributeToAttribute({view:{name:_,styles:{width:/.+/}},model:{key:"width",value:M=>$5(M)?Q0(M.getStyle("width")):null}}).attributeToAttribute({view:{name:_,key:"width"},model:"width"}).attributeToAttribute({view:{name:_,styles:{height:/.+/}},model:{key:"height",value:M=>$5(M)?Q0(M.getStyle("height")):null}}).attributeToAttribute({view:{name:_,key:"height"},model:"height"}),c.conversion.for("editingDowncast").add(M=>{C(M,"width","width",!0),C(M,"height","height",!0)}),c.conversion.for("dataDowncast").add(M=>{C(M,"width","width",!1),C(M,"height","height",!1)})}}class av extends Ta{constructor(r,c){super(r),this._modelElementName=c}refresh(){const r=this.editor.plugins.get("ImageUtils"),c=r.getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled="imageBlock"===this._modelElementName?r.isInlineImage(c):r.isBlockImage(c)}execute(r={}){const u=this.editor.model,_=this.editor.plugins.get("ImageUtils"),C=_.getClosestSelectedImageElement(u.document.selection),M=Object.fromEntries(C.getAttributes());return M.src||M.uploadId?u.change(E=>{const{setImageSizes:N=!0}=r,G=Array.from(u.markers).filter(Zt=>Zt.getRange().containsItem(C)),W=_.insertImage(M,u.createSelection(C,"on"),this._modelElementName,{setImageSizes:N});if(!W)return null;const dt=E.createRangeOn(W);for(const Zt of G){const ue=Zt.getRange(),xe="$graveyard"!=ue.root.rootName?ue.getJoined(dt,!0):dt;E.updateMarker(Zt,{range:xe})}return{oldElement:C,newElement:W}}):null}}class t3 extends lo{static get requires(){return[iv,ov,Md,Rp]}static get pluginName(){return"ImageBlockEditing"}init(){const r=this.editor;r.model.schema.register("imageBlock",{inheritAllFrom:"$blockObject",allowAttributes:["alt","src","srcset"]}),this._setupConversion(),r.plugins.has("ImageInlineEditing")&&(r.commands.add("imageTypeBlock",new av(this.editor,"imageBlock")),this._setupClipboardIntegration())}_setupConversion(){const r=this.editor,c=r.t,u=r.conversion,_=r.plugins.get("ImageUtils");u.for("dataDowncast").elementToStructure({model:"imageBlock",view:(C,{writer:M})=>YC(M)}),u.for("editingDowncast").elementToStructure({model:"imageBlock",view:(C,{writer:M})=>_.toImageWidget(YC(M),M,c("image widget"))}),u.for("downcast").add(V4(_,"imageBlock","src")).add(V4(_,"imageBlock","alt")).add(B4(_,"imageBlock")),u.for("upcast").elementToElement({view:cA(r,"imageBlock"),model:(C,{writer:M})=>M.createElement("imageBlock",C.hasAttribute("src")?{src:C.getAttribute("src")}:void 0)}).add(function(C){const M=(E,N,G)=>{if(!G.consumable.test(N.viewItem,{name:!0,classes:"image"}))return;const W=C.findViewImgElement(N.viewItem);if(!W||!G.consumable.test(W,{name:!0}))return;G.consumable.consume(N.viewItem,{name:!0,classes:"image"});const dt=os(G.convertItem(W,N.modelCursor).modelRange.getItems());dt?(G.convertChildren(N.viewItem,dt),G.updateConversionResult(dt,N)):G.consumable.revert(N.viewItem,{name:!0,classes:"image"})};return E=>{E.on("element:figure",M)}}(_))}_setupClipboardIntegration(){const r=this.editor,c=r.model,u=r.editing.view,_=r.plugins.get("ImageUtils"),C=r.plugins.get("ClipboardPipeline");this.listenTo(C,"inputTransformation",(M,E)=>{const N=Array.from(E.content.getChildren());let G;if(!N.every(_.isInlineImageView))return;G=E.targetRanges?r.editing.mapper.toModelRange(E.targetRanges[0]):c.document.selection.getFirstRange();const W=c.createSelection(G);if("imageBlock"===ca(c.schema,W)){const dt=new X1(u.document),Zt=N.map(ue=>dt.createElement("figure",{class:"image"},ue));E.content=dt.createDocumentFragment(Zt)}}),this.listenTo(C,"contentInsertion",(M,E)=>{"paste"===E.method&&c.change(N=>{const G=N.createRangeIn(E.content);for(const W of G.getItems())W.is("element","imageBlock")&&_.setImageNaturalSizeAttributes(W)})})}}var j4=b(3508);Io()(j4.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class QC extends lo{static get requires(){return[t3,Y0,Y4]}static get pluginName(){return"ImageBlock"}}class WC extends lo{static get requires(){return[iv,ov,Md,Rp]}static get pluginName(){return"ImageInlineEditing"}init(){const r=this.editor,c=r.model.schema;c.register("imageInline",{inheritAllFrom:"$inlineObject",allowAttributes:["alt","src","srcset"]}),c.addChildCheck((u,_)=>{if(u.endsWith("caption")&&"imageInline"===_.name)return!1}),this._setupConversion(),r.plugins.has("ImageBlockEditing")&&(r.commands.add("imageTypeInline",new av(this.editor,"imageInline")),this._setupClipboardIntegration())}_setupConversion(){const r=this.editor,c=r.t,u=r.conversion,_=r.plugins.get("ImageUtils");u.for("dataDowncast").elementToElement({model:"imageInline",view:(C,{writer:M})=>M.createEmptyElement("img")}),u.for("editingDowncast").elementToStructure({model:"imageInline",view:(C,{writer:M})=>{return _.toImageWidget((E=M).createContainerElement("span",{class:"image-inline"},E.createEmptyElement("img")),M,c("image widget"));var E}}),u.for("downcast").add(V4(_,"imageInline","src")).add(V4(_,"imageInline","alt")).add(B4(_,"imageInline")),u.for("upcast").elementToElement({view:cA(r,"imageInline"),model:(C,{writer:M})=>M.createElement("imageInline",C.hasAttribute("src")?{src:C.getAttribute("src")}:void 0)})}_setupClipboardIntegration(){const r=this.editor,c=r.model,u=r.editing.view,_=r.plugins.get("ImageUtils"),C=r.plugins.get("ClipboardPipeline");this.listenTo(C,"inputTransformation",(M,E)=>{const N=Array.from(E.content.getChildren());let G;if(!N.every(_.isBlockImageView))return;G=E.targetRanges?r.editing.mapper.toModelRange(E.targetRanges[0]):c.document.selection.getFirstRange();const W=c.createSelection(G);if("imageInline"===ca(c.schema,W)){const dt=new X1(u.document),Zt=N.map(ue=>1===ue.childCount?(Array.from(ue.getAttributes()).forEach(xe=>dt.setAttribute(...xe,_.findViewImgElement(ue))),ue.getChild(0)):ue);E.content=dt.createDocumentFragment(Zt)}}),this.listenTo(C,"contentInsertion",(M,E)=>{"paste"===E.method&&c.change(N=>{const G=N.createRangeIn(E.content);for(const W of G.getItems())W.is("element","imageInline")&&_.setImageNaturalSizeAttributes(W)})})}}class _A extends lo{static get requires(){return[WC,Y0,Y4]}static get pluginName(){return"ImageInline"}}class e3 extends lo{static get pluginName(){return"ImageCaptionUtils"}static get requires(){return[Md]}getCaptionFromImageModelElement(r){for(const c of r.getChildren())if(c&&c.is("element","caption"))return c;return null}getCaptionFromModelSelection(r){const c=this.editor.plugins.get("ImageUtils"),u=r.getFirstPosition().findAncestor("caption");return u&&c.isBlockImage(u.parent)?u:null}matchImageCaptionViewElement(r){const c=this.editor.plugins.get("ImageUtils");return"figcaption"==r.name&&c.isBlockImageView(r.parent)?{name:!0}:null}}class $C extends Ta{refresh(){const r=this.editor,c=r.plugins.get("ImageCaptionUtils"),u=r.plugins.get("ImageUtils");if(!r.plugins.has(t3))return this.isEnabled=!1,void(this.value=!1);const _=r.model.document.selection,C=_.getSelectedElement();if(!C){const M=c.getCaptionFromModelSelection(_);return this.isEnabled=!!M,void(this.value=!!M)}this.isEnabled=u.isImage(C),this.value=!!this.isEnabled&&!!c.getCaptionFromImageModelElement(C)}execute(r={}){const{focusCaptionOnShow:c}=r;this.editor.model.change(u=>{this.value?this._hideImageCaption(u):this._showImageCaption(u,c)})}_showImageCaption(r,c){const u=this.editor.model.document.selection,_=this.editor.plugins.get("ImageCaptionEditing"),C=this.editor.plugins.get("ImageUtils");let M=u.getSelectedElement();const E=_._getSavedCaption(M);C.isInlineImage(M)&&(this.editor.execute("imageTypeBlock"),M=u.getSelectedElement());const N=E||r.createElement("caption");r.append(N,M),c&&r.setSelection(N,"in")}_hideImageCaption(r){const c=this.editor,u=c.model.document.selection,_=c.plugins.get("ImageCaptionEditing"),C=c.plugins.get("ImageCaptionUtils");let M,E=u.getSelectedElement();E?M=C.getCaptionFromImageModelElement(E):(M=C.getCaptionFromModelSelection(u),E=M.parent),_._saveCaption(E,M),r.setSelection(E,"on"),r.remove(M)}}class fA extends lo{constructor(r){super(r),this._savedCaptionsMap=new WeakMap}static get requires(){return[Md,e3]}static get pluginName(){return"ImageCaptionEditing"}init(){const r=this.editor,c=r.model.schema;c.isRegistered("caption")?c.extend("caption",{allowIn:"imageBlock"}):c.register("caption",{allowIn:"imageBlock",allowContentOf:"$block",isLimit:!0}),r.commands.add("toggleImageCaption",new $C(this.editor)),this._setupConversion(),this._setupImageTypeCommandsIntegration(),this._registerCaptionReconversion()}_setupConversion(){const r=this.editor,c=r.editing.view,u=r.plugins.get("ImageUtils"),_=r.plugins.get("ImageCaptionUtils"),C=r.t;r.conversion.for("upcast").elementToElement({view:M=>_.matchImageCaptionViewElement(M),model:"caption"}),r.conversion.for("dataDowncast").elementToElement({model:"caption",view:(M,{writer:E})=>u.isBlockImage(M.parent)?E.createContainerElement("figcaption"):null}),r.conversion.for("editingDowncast").elementToElement({model:"caption",view:(M,{writer:E})=>{if(!u.isBlockImage(M.parent))return null;const N=E.createEditableElement("figcaption");E.setCustomProperty("imageCaption",!0,N),N.placeholder=C("Enter image caption"),Y({view:c,element:N,keepOnFocus:!0});const G=M.parent.getAttribute("alt");return w5(N,E,{label:G?C("Caption for image: %0",[G]):C("Caption for the image")})}})}_setupImageTypeCommandsIntegration(){const r=this.editor,c=r.plugins.get("ImageUtils"),u=r.plugins.get("ImageCaptionUtils"),_=r.commands.get("imageTypeInline"),C=r.commands.get("imageTypeBlock"),M=E=>{if(!E.return)return;const{oldElement:N,newElement:G}=E.return;if(!N)return;if(c.isBlockImage(N)){const dt=u.getCaptionFromImageModelElement(N);if(dt)return void this._saveCaption(G,dt)}const W=this._getSavedCaption(N);W&&this._saveCaption(G,W)};_&&this.listenTo(_,"execute",M,{priority:"low"}),C&&this.listenTo(C,"execute",M,{priority:"low"})}_getSavedCaption(r){const c=this._savedCaptionsMap.get(r);return c?_s.fromJSON(c):null}_saveCaption(r,c){this._savedCaptionsMap.set(r,c.toJSON())}_registerCaptionReconversion(){const r=this.editor,c=r.model,u=r.plugins.get("ImageUtils"),_=r.plugins.get("ImageCaptionUtils");c.document.on("change:data",()=>{const C=c.document.differ.getChanges();for(const M of C){if("alt"!==M.attributeKey)continue;const E=M.range.start.nodeAfter;if(u.isBlockImage(E)){const N=_.getCaptionFromImageModelElement(E);if(!N)return;r.editing.reconvertItem(N)}}})}}class sv extends lo{static get requires(){return[e3]}static get pluginName(){return"ImageCaptionUI"}init(){const r=this.editor,c=r.editing.view,u=r.plugins.get("ImageCaptionUtils"),_=r.t;r.ui.componentFactory.add("toggleImageCaption",C=>{const M=r.commands.get("toggleImageCaption"),E=new Hr(C);return E.set({icon:fs.caption,tooltip:!0,isToggleable:!0}),E.bind("isOn","isEnabled").to(M,"value","isEnabled"),E.bind("label").to(M,"value",N=>_(N?"Toggle caption off":"Toggle caption on")),this.listenTo(E,"execute",()=>{r.execute("toggleImageCaption",{focusCaptionOnShow:!0});const N=u.getCaptionFromModelSelection(r.model.document.selection);if(N){const G=r.editing.mapper.toViewElement(N);c.scrollToTheSelection(),c.change(W=>{W.addClass("image__caption_highlighted",G)})}r.editing.view.focus()}),E})}}var cv=b(2640);function ff(m){const r=m.map(c=>c.replace("+","\\+"));return new RegExp(`^image\\/(${r.join("|")})$`)}function hA(m){return new Promise((r,c)=>{const u=m.getAttribute("src");fetch(u).then(_=>_.blob()).then(_=>{const C=KC(_,u),M=C.replace("image/",""),E=new File([_],`image.${M}`,{type:C});r(E)}).catch(_=>{return _&&"TypeError"===_.name?(C=u,(M=C,new Promise((E,N)=>{const G=Mt.document.createElement("img");G.addEventListener("load",()=>{const W=Mt.document.createElement("canvas");W.width=G.width,W.height=G.height,W.getContext("2d").drawImage(G,0,0),W.toBlob(dt=>dt?E(dt):N())}),G.addEventListener("error",()=>N()),G.src=M})).then(M=>{const E=KC(M,C),N=E.replace("image/","");return new File([M],`image.${N}`,{type:E})})).then(r).catch(c):c(_);var C,M})})}function KC(m,r){return m.type?m.type:r.match(/data:(image\/\w+);base64/)?r.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}Io()(cv.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class lv extends lo{static get pluginName(){return"ImageUploadUI"}init(){const r=this.editor,c=r.t,u=_=>{const C=new E5(_),M=r.commands.get("uploadImage"),E=r.config.get("image.upload.types"),N=ff(E);return C.set({acceptedType:E.map(G=>`image/${G}`).join(","),allowMultipleFiles:!0}),C.buttonView.set({label:c("Insert image"),icon:fs.image,tooltip:!0}),C.buttonView.bind("isEnabled").to(M),C.on("done",(G,W)=>{const dt=Array.from(W).filter(Zt=>N.test(Zt.type));dt.length&&(r.execute("uploadImage",{file:dt}),r.editing.view.focus())}),C};r.ui.componentFactory.add("uploadImage",u),r.ui.componentFactory.add("imageUpload",u)}}var gA=b(3689);Io()(gA.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var uv=b(4036);Io()(uv.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var dv=b(3773);Io()(dv.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class vA extends lo{constructor(r){super(r),this.uploadStatusChange=(c,u,_)=>{const C=this.editor,M=u.item,E=M.getAttribute("uploadId");if(!_.consumable.consume(u.item,c.name))return;const N=C.plugins.get("ImageUtils"),G=C.plugins.get(ap),W=E?u.attributeNewValue:null,dt=this.placeholder,Zt=C.editing.mapper.toViewElement(M),ue=_.writer;if("reading"==W)return pv(Zt,ue),void tx(N,dt,Zt,ue);if("uploading"==W){const xe=G.loaders.get(E);return pv(Zt,ue),void(xe?(ex(Zt,ue),function(Ee,ln,Mn,di){const Ri=function(Jo){const Da=Jo.createUIElement("div",{class:"ck-progress-bar"});return Jo.setCustomProperty("progressBar",!0,Da),Da}(ln);ln.insert(ln.createPositionAt(Ee,"end"),Ri),Mn.on("change:uploadedPercent",(Jo,Da,Ts)=>{di.change($r=>{$r.setStyle("width",Ts+"%",Ri)})})}(Zt,ue,xe,C.editing.view),function(Ee,ln,Mn,di){if(di.data){const Ri=Ee.findViewImgElement(ln);Mn.setAttribute("src",di.data,Ri)}}(N,Zt,ue,xe)):tx(N,dt,Zt,ue))}"complete"==W&&G.loaders.get(E)&&function(xe,Ee,ln){const Mn=Ee.createUIElement("div",{class:"ck-image-upload-complete-icon"});Ee.insert(Ee.createPositionAt(xe,"end"),Mn),setTimeout(()=>{ln.change(di=>di.remove(di.createRangeOn(Mn)))},3e3)}(Zt,ue,C.editing.view),n3(Zt,ue,"progressBar"),ex(Zt,ue),ue.removeClass("ck-appear",Zt)},this.placeholder="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}static get pluginName(){return"ImageUploadProgress"}init(){const r=this.editor;r.plugins.has("ImageBlockEditing")&&r.editing.downcastDispatcher.on("attribute:uploadStatus:imageBlock",this.uploadStatusChange),r.plugins.has("ImageInlineEditing")&&r.editing.downcastDispatcher.on("attribute:uploadStatus:imageInline",this.uploadStatusChange)}}function pv(m,r){m.hasClass("ck-appear")||r.addClass("ck-appear",m)}function tx(m,r,c,u){c.hasClass("ck-image-upload-placeholder")||u.addClass("ck-image-upload-placeholder",c);const _=m.findViewImgElement(c);_.getAttribute("src")!==r&&u.setAttribute("src",r,_),nx(c,"placeholder")||u.insert(u.createPositionAfter(_),function(C){const M=C.createUIElement("div",{class:"ck-upload-placeholder-loader"});return C.setCustomProperty("placeholder",!0,M),M}(u))}function ex(m,r){m.hasClass("ck-image-upload-placeholder")&&r.removeClass("ck-image-upload-placeholder",m),n3(m,r,"placeholder")}function nx(m,r){for(const c of m.getChildren())if(c.getCustomProperty(r))return c}function n3(m,r,c){const u=nx(m,c);u&&r.remove(r.createRangeOn(u))}var ix=Object.defineProperty,ox=Object.defineProperties,Q4=Object.getOwnPropertyDescriptors,W4=Object.getOwnPropertySymbols,ry=Object.prototype.hasOwnProperty,_c=Object.prototype.propertyIsEnumerable,ax=(m,r,c)=>r in m?ix(m,r,{enumerable:!0,configurable:!0,writable:!0,value:c}):m[r]=c;class rx extends Ta{refresh(){const r=this.editor,c=r.plugins.get("ImageUtils"),u=r.model.document.selection.getSelectedElement();this.isEnabled=c.isImageAllowed()||c.isImage(u)}execute(r){const c=Ds(r.file),u=this.editor.model.document.selection,_=this.editor.plugins.get("ImageUtils"),C=Object.fromEntries(u.getAttributes());c.forEach((M,E)=>{const N=u.getSelectedElement();if(E&&N&&_.isImage(N)){const G=this.editor.model.createPositionAfter(N);this._uploadImage(M,C,G)}else this._uploadImage(M,C)})}_uploadImage(r,c,u){const _=this.editor,C=_.plugins.get(ap).createLoader(r),M=_.plugins.get("ImageUtils");var E;C&&M.insertImage((E=((G,W)=>{for(var dt in W||(W={}))ry.call(W,dt)&&ax(G,dt,W[dt]);if(W4)for(var dt of W4(W))_c.call(W,dt)&&ax(G,dt,W[dt]);return G})({},c),ox(E,Q4({uploadId:C.id}))),u)}}class hf extends lo{constructor(r){super(r),r.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}}),this._uploadImageElements=new Map}static get requires(){return[ap,af,Rp,Md]}static get pluginName(){return"ImageUploadEditing"}init(){const r=this.editor,c=r.model.document,u=r.conversion,_=r.plugins.get(ap),C=r.plugins.get("ImageUtils"),M=r.plugins.get("ClipboardPipeline"),E=ff(r.config.get("image.upload.types")),N=new rx(r);r.commands.add("uploadImage",N),r.commands.add("imageUpload",N),u.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}),this.listenTo(r.editing.view.document,"clipboardInput",(G,W)=>{if(dt=W.dataTransfer,Array.from(dt.types).includes("text/html")&&""!==dt.getData("text/html"))return;var dt;const Zt=Array.from(W.dataTransfer.files).filter(ue=>!!ue&&E.test(ue.type));Zt.length&&(G.stop(),r.model.change(ue=>{W.targetRanges&&ue.setSelection(W.targetRanges.map(xe=>r.editing.mapper.toModelRange(xe))),r.execute("uploadImage",{file:Zt})}))}),this.listenTo(M,"inputTransformation",(G,W)=>{const dt=Array.from(r.editing.view.createRangeIn(W.content)).map(ue=>ue.item).filter(ue=>{return!(!C.isInlineImageView(Ee=ue)||!Ee.getAttribute("src")||!Ee.getAttribute("src").match(/^data:image\/\w+;base64,/g)&&!Ee.getAttribute("src").match(/^blob:/g)||ue.getAttribute("uploadProcessed"));var Ee}).map(ue=>({promise:hA(ue),imageElement:ue}));if(!dt.length)return;const Zt=new X1(r.editing.view.document);for(const ue of dt){Zt.setAttribute("uploadProcessed",!0,ue.imageElement);const xe=_.createLoader(ue.promise);xe&&(Zt.setAttribute("src","",ue.imageElement),Zt.setAttribute("uploadId",xe.id,ue.imageElement))}}),r.editing.view.document.on("dragover",(G,W)=>{W.preventDefault()}),c.on("change",()=>{const G=c.differ.getChanges({includeChangesInGraveyard:!0}).reverse(),W=new Set;for(const dt of G)if("insert"==dt.type&&"$text"!=dt.name){const Zt=dt.position.nodeAfter,ue="$graveyard"==dt.position.root.rootName;for(const xe of bA(r,Zt)){const Ee=xe.getAttribute("uploadId");if(!Ee)continue;const ln=_.loaders.get(Ee);ln&&(ue?W.has(Ee)||ln.abort():(W.add(Ee),this._uploadImageElements.set(Ee,xe),"idle"==ln.status&&this._readAndUpload(ln)))}}}),this.on("uploadComplete",(G,{imageElement:W,data:dt})=>{const Zt=dt.urls?dt.urls:dt;this.editor.model.change(ue=>{ue.setAttribute("src",Zt.default,W),this._parseAndSetSrcsetAttributeOnImage(Zt,W,ue),C.setImageNaturalSizeAttributes(W)})},{priority:"low"})}afterInit(){const r=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&r.extend("imageBlock",{allowAttributes:["uploadId","uploadStatus"]}),this.editor.plugins.has("ImageInlineEditing")&&r.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]})}_readAndUpload(r){const c=this.editor,u=c.model,_=c.locale.t,C=c.plugins.get(ap),M=c.plugins.get(af),E=c.plugins.get("ImageUtils"),N=this._uploadImageElements;return u.enqueueChange({isUndoable:!1},W=>{W.setAttribute("uploadStatus","reading",N.get(r.id))}),r.read().then(()=>{const W=r.upload(),dt=N.get(r.id);if(D_isSafari){const Zt=c.editing.mapper.toViewElement(dt),ue=E.findViewImgElement(Zt);c.editing.view.once("render",()=>{if(!ue.parent)return;const xe=c.editing.view.domConverter.mapViewToDom(ue.parent);if(!xe)return;const Ee=xe.style.display;xe.style.display="none",xe._ckHack=xe.offsetHeight,xe.style.display=Ee})}return u.enqueueChange({isUndoable:!1},Zt=>{Zt.setAttribute("uploadStatus","uploading",dt)}),W}).then(W=>{u.enqueueChange({isUndoable:!1},dt=>{const Zt=N.get(r.id);dt.setAttribute("uploadStatus","complete",Zt),this.fire("uploadComplete",{data:W,imageElement:Zt})}),G()}).catch(W=>{if("error"!==r.status&&"aborted"!==r.status)throw W;"error"==r.status&&W&&M.showWarning(W,{title:_("Upload failed"),namespace:"upload"}),u.enqueueChange({isUndoable:!1},dt=>{dt.remove(N.get(r.id))}),G()});function G(){u.enqueueChange({isUndoable:!1},W=>{const dt=N.get(r.id);W.removeAttribute("uploadId",dt),W.removeAttribute("uploadStatus",dt),N.delete(r.id)}),C.destroyLoader(r)}}_parseAndSetSrcsetAttributeOnImage(r,c,u){let _=0;const C=Object.keys(r).filter(M=>{const E=parseInt(M,10);if(!isNaN(E))return _=Math.max(_,E),!0}).map(M=>`${r[M]} ${M}w`).join(", ");if(""!=C){const M={srcset:C};c.hasAttribute("width")||c.hasAttribute("height")||(M.width=_),u.setAttributes(M,c)}}}function bA(m,r){const c=m.plugins.get("ImageUtils");return Array.from(m.model.createRangeOn(r)).filter(u=>c.isImage(u.item)).map(u=>u.item)}var i3=b(1568);Io()(i3.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var sx=b(3535);Io()(sx.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var xA=b(6270);Io()(xA.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class yA extends Ta{constructor(r,c){super(r),this._defaultStyles={imageBlock:!1,imageInline:!1},this._styles=new Map(c.map(u=>{if(u.isDefault)for(const _ of u.modelElements)this._defaultStyles[_]=u.name;return[u.name,u]}))}refresh(){const r=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!r,this.value=!!this.isEnabled&&(r.hasAttribute("imageStyle")?r.getAttribute("imageStyle"):this._defaultStyles[r.name])}execute(r={}){const c=this.editor,u=c.model,_=c.plugins.get("ImageUtils");u.change(C=>{const M=r.value,{setImageSizes:E=!0}=r;let N=_.getClosestSelectedImageElement(u.document.selection);M&&this.shouldConvertImageType(M,N)&&(this.editor.execute(_.isBlockImage(N)?"imageTypeInline":"imageTypeBlock",{setImageSizes:E}),N=_.getClosestSelectedImageElement(u.document.selection)),!M||this._styles.get(M).isDefault?C.removeAttribute("imageStyle",N):C.setAttribute("imageStyle",M,N),E&&_.setImageNaturalSizeAttributes(N)})}shouldConvertImageType(r,c){return!this._styles.get(r).modelElements.includes(c.name)}}var TA=Object.defineProperty,_v=Object.getOwnPropertySymbols,fv=Object.prototype.hasOwnProperty,wA=Object.prototype.propertyIsEnumerable,$4=(m,r,c)=>r in m?TA(m,r,{enumerable:!0,configurable:!0,writable:!0,value:c}):m[r]=c,hv=(m,r)=>{for(var c in r||(r={}))fv.call(r,c)&&$4(m,c,r[c]);if(_v)for(var c of _v(r))wA.call(r,c)&&$4(m,c,r[c]);return m};const{objectFullWidth:K4,objectInline:cx,objectLeft:gv,objectRight:vv,objectCenter:o3,objectBlockLeft:bv,objectBlockRight:Cv}=fs,Jh={get inline(){return{name:"inline",title:"In line",icon:cx,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:gv,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:bv,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:o3,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:vv,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:Cv,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:o3,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:vv,modelElements:["imageBlock"],className:"image-style-side"}}},xv={full:K4,left:bv,right:Cv,center:o3,inlineLeft:gv,inlineRight:vv,inline:cx},lx=[{name:"imageStyle:wrapText",title:"Wrap text",defaultItem:"imageStyle:alignLeft",items:["imageStyle:alignLeft","imageStyle:alignRight"]},{name:"imageStyle:breakText",title:"Break text",defaultItem:"imageStyle:block",items:["imageStyle:alignBlockLeft","imageStyle:block","imageStyle:alignBlockRight"]}];function UA(m){Tt("image-style-configuration-definition-invalid",m)}const a3={normalizeStyles:function(m){return(m.configuredStyles.options||[]).map(r=>{return"string"==typeof(c="string"==typeof(c=r)?Jh[c]?hv({},Jh[c]):{name:c}:function(u,_){const C=hv({},_);for(const M in u)Object.prototype.hasOwnProperty.call(_,M)||(C[M]=u[M]);return C}(Jh[c.name],c)).icon&&(c.icon=xv[c.icon]||c.icon),c;var c}).filter(r=>function(c,{isBlockPluginLoaded:u,isInlinePluginLoaded:_}){const{modelElements:C,name:M}=c;if(!(C&&C.length&&M))return UA({style:c}),!1;{const E=[u?"imageBlock":null,_?"imageInline":null];if(!C.some(N=>E.includes(N)))return Tt("image-style-missing-dependency",{style:c,missingPlugins:C.map(N=>"imageBlock"===N?"ImageBlockEditing":"ImageInlineEditing")}),!1}return!0}(r,m))},getDefaultStylesConfiguration:function(m,r){return m&&r?{options:["inline","alignLeft","alignRight","alignCenter","alignBlockLeft","alignBlockRight","block","side"]}:m?{options:["block","side"]}:r?{options:["inline","alignLeft","alignRight"]}:{}},getDefaultDropdownDefinitions:function(m){return m.has("ImageBlockEditing")&&m.has("ImageInlineEditing")?[...lx]:[]},warnInvalidStyle:UA,DEFAULT_OPTIONS:Jh,DEFAULT_ICONS:xv,DEFAULT_DROPDOWN_DEFINITIONS:lx};function ZA(m,r){for(const c of r)if(c.name===m)return c}class ux extends lo{static get pluginName(){return"ImageStyleEditing"}static get requires(){return[Md]}init(){const{normalizeStyles:r,getDefaultStylesConfiguration:c}=a3,u=this.editor,_=u.plugins.has("ImageBlockEditing"),C=u.plugins.has("ImageInlineEditing");u.config.define("image.styles",c(_,C)),this.normalizedStyles=r({configuredStyles:u.config.get("image.styles"),isBlockPluginLoaded:_,isInlinePluginLoaded:C}),this._setupConversion(_,C),this._setupPostFixer(),u.commands.add("imageStyle",new yA(u,this.normalizedStyles))}_setupConversion(r,c){const u=this.editor,_=u.model.schema,C=(M=this.normalizedStyles,(N,G,W)=>{if(!W.consumable.consume(G.item,N.name))return;const dt=ZA(G.attributeNewValue,M),Zt=ZA(G.attributeOldValue,M),ue=W.mapper.toViewElement(G.item),xe=W.writer;Zt&&xe.removeClass(Zt.className,ue),dt&&xe.addClass(dt.className,ue)});var M;const E=function(N){const G={imageInline:N.filter(W=>!W.isDefault&&W.modelElements.includes("imageInline")),imageBlock:N.filter(W=>!W.isDefault&&W.modelElements.includes("imageBlock"))};return(W,dt,Zt)=>{if(!dt.modelRange)return;const ue=dt.viewItem,xe=os(dt.modelRange.getItems());if(xe&&Zt.schema.checkAttribute(xe,"imageStyle"))for(const Ee of G[xe.name])Zt.consumable.consume(ue,{classes:Ee.className})&&Zt.writer.setAttribute("imageStyle",Ee.name,xe)}}(this.normalizedStyles);u.editing.downcastDispatcher.on("attribute:imageStyle",C),u.data.downcastDispatcher.on("attribute:imageStyle",C),r&&(_.extend("imageBlock",{allowAttributes:"imageStyle"}),u.data.upcastDispatcher.on("element:figure",E,{priority:"low"})),c&&(_.extend("imageInline",{allowAttributes:"imageStyle"}),u.data.upcastDispatcher.on("element:img",E,{priority:"low"}))}_setupPostFixer(){const r=this.editor,c=r.model.document,u=r.plugins.get(Md),_=new Map(this.normalizedStyles.map(C=>[C.name,C]));c.registerPostFixer(C=>{let M=!1;for(const E of c.differ.getChanges())if("insert"==E.type||"attribute"==E.type&&"imageStyle"==E.attributeKey){let N="insert"==E.type?E.position.nodeAfter:E.range.start.nodeAfter;if(N&&N.is("element","paragraph")&&N.childCount>0&&(N=N.getChild(0)),!u.isImage(N))continue;const G=N.getAttribute("imageStyle");if(!G)continue;const W=_.get(G);W&&W.modelElements.includes(N.name)||(C.removeAttribute("imageStyle",N),M=!0)}return M})}}var MA=b(5083);Io()(MA.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class cy extends lo{static get requires(){return[ux]}static get pluginName(){return"ImageStyleUI"}get localizedDefaultStylesTitles(){const r=this.editor.t;return{"Wrap text":r("Wrap text"),"Break text":r("Break text"),"In line":r("In line"),"Full size image":r("Full size image"),"Side image":r("Side image"),"Left aligned image":r("Left aligned image"),"Centered image":r("Centered image"),"Right aligned image":r("Right aligned image")}}init(){const r=this.editor.plugins,c=this.editor.config.get("image.toolbar")||[],u=kA(r.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const C of u)this._createButton(C);const _=kA([...c.filter(Wt),...a3.getDefaultDropdownDefinitions(r)],this.localizedDefaultStylesTitles);for(const C of _)this._createDropdown(C,u)}_createDropdown(r,c){const u=this.editor.ui.componentFactory;u.add(r.name,_=>{let C;const{defaultItem:M,items:E,title:N}=r,G=E.filter(ue=>c.find(({name:xe})=>DA(xe)===ue)).map(ue=>{const xe=u.create(ue);return ue===M&&(C=xe),xe});E.length!==G.length&&a3.warnInvalidStyle({dropdown:r});const W=D1(_,p4),dt=W.buttonView,Zt=dt.arrowView;return X_(W,G,{enableActiveItemFocusOnDropdownOpen:!0}),dt.set({label:PA(N,C.label),class:null,tooltip:!0}),Zt.unbind("label"),Zt.set({label:N}),dt.bind("icon").toMany(G,"isOn",(...ue)=>{const xe=ue.findIndex(wu);return xe<0?C.icon:G[xe].icon}),dt.bind("label").toMany(G,"isOn",(...ue)=>{const xe=ue.findIndex(wu);return PA(N,xe<0?C.label:G[xe].label)}),dt.bind("isOn").toMany(G,"isOn",(...ue)=>ue.some(wu)),dt.bind("class").toMany(G,"isOn",(...ue)=>ue.some(wu)?"ck-splitbutton_flatten":void 0),dt.on("execute",()=>{G.some(({isOn:ue})=>ue)?W.isOpen=!W.isOpen:C.fire("execute")}),W.bind("isEnabled").toMany(G,"isEnabled",(...ue)=>ue.some(wu)),this.listenTo(W,"execute",()=>{this.editor.editing.view.focus()}),W})}_createButton(r){const c=r.name;this.editor.ui.componentFactory.add(DA(c),u=>{const _=this.editor.commands.get("imageStyle"),C=new Hr(u);return C.set({label:r.title,icon:r.icon,tooltip:!0,isToggleable:!0}),C.bind("isEnabled").to(_,"isEnabled"),C.bind("isOn").to(_,"value",M=>M===c),C.on("execute",this._executeCommand.bind(this,c)),C})}_executeCommand(r){this.editor.execute("imageStyle",{value:r}),this.editor.editing.view.focus()}}function kA(m,r){for(const c of m)r[c.title]&&(c.title=r[c.title]);return m}function DA(m){return`imageStyle:${m}`}function PA(m,r){return(m?m+": ":"")+r}class X4 extends lo{static get pluginName(){return"IndentEditing"}init(){const r=this.editor;r.commands.add("indent",new $p(r)),r.commands.add("outdent",new $p(r))}}const SA='',Av='';class r3 extends lo{static get pluginName(){return"IndentUI"}init(){const r=this.editor,c=r.locale,u=r.t,_="ltr"==c.uiLanguageDirection?SA:Av,C="ltr"==c.uiLanguageDirection?Av:SA;this._defineButton("indent",u("Increase indent"),_),this._defineButton("outdent",u("Decrease indent"),C)}_defineButton(r,c,u){const _=this.editor;_.ui.componentFactory.add(r,C=>{const M=_.commands.get(r),E=new Hr(C);return E.set({label:c,icon:u,tooltip:!0}),E.bind("isEnabled").to(M,"isEnabled"),this.listenTo(E,"execute",()=>{_.execute(r),_.editing.view.focus()}),E})}}class dx{constructor(){this._definitions=new Set}get length(){return this._definitions.size}add(r){Array.isArray(r)?r.forEach(c=>this._definitions.add(c)):this._definitions.add(r)}getDispatcher(){return r=>{r.on("attribute:linkHref",(c,u,_)=>{if(!_.consumable.test(u.item,"attribute:linkHref")||!u.item.is("selection")&&!_.schema.isInline(u.item))return;const C=_.writer,M=C.document.selection;for(const E of this._definitions){const N=C.createAttributeElement("a",E.attributes,{priority:5});E.classes&&C.addClass(E.classes,N);for(const G in E.styles)C.setStyle(G,E.styles[G],N);C.setCustomProperty("link",!0,N),E.callback(u.attributeNewValue)?u.item.is("selection")?C.wrap(M.getFirstRange(),N):C.wrap(_.mapper.toViewRange(u.range),N):C.unwrap(_.mapper.toViewRange(u.range),N)}},{priority:"high"})}}getDispatcherForLinkedImage(){return r=>{r.on("attribute:linkHref:imageBlock",(c,u,{writer:_,mapper:C})=>{const M=C.toViewElement(u.item),E=Array.from(M.getChildren()).find(N=>N.is("element","a"));for(const N of this._definitions){const G=Jc(N.attributes);if(N.callback(u.attributeNewValue)){for(const[W,dt]of G)"class"===W?_.addClass(dt,E):_.setAttribute(W,dt,E);N.classes&&_.addClass(N.classes,E);for(const W in N.styles)_.setStyle(W,N.styles[W],E)}else{for(const[W,dt]of G)"class"===W?_.removeClass(dt,E):_.removeAttribute(W,E);N.classes&&_.removeClass(N.classes,E);for(const W in N.styles)_.removeStyle(W,E)}}})}}}var ly=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");const s3=function(m){return ly.test(m)};var _x="\\ud800-\\udfff",yv="["+_x+"]",Tv="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",wv="\\ud83c[\\udffb-\\udfff]",fx="[^"+_x+"]",hx="(?:\\ud83c[\\udde6-\\uddff]){2}",c3="[\\ud800-\\udbff][\\udc00-\\udfff]",gx="(?:"+Tv+"|"+wv+")?",vx="[\\ufe0e\\ufe0f]?",uy=vx+gx+"(?:\\u200d(?:"+[fx,hx,c3].join("|")+")"+vx+gx+")*",dy="(?:"+[fx+Tv+"?",Tv,hx,c3,yv].join("|")+")",LA=RegExp(wv+"(?="+wv+")|"+dy+uy,"g");const py=function(r){r=Cg(r);var c=s3(r)?function(m){return s3(m)?function(m){return m.match(LA)||[]}(m):function(m){return m.split("")}(m)}(r):void 0,u=c?c[0]:r.charAt(0),_=c?function(m,r,c){var u=m.length;return b2(m,1,c=void 0===c?u:c)}(c).join(""):r.slice(1);return u.toUpperCase()+_},Cx=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,xx=/^(?:(?:https?|ftps?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i,Ax=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,my=/^((\w+:(\/{2,})?)|(\W))/i,S1="Ctrl+K";function yx(m,{writer:r}){const c=r.createAttributeElement("a",{href:m},{priority:5});return r.setCustomProperty("link",!0,c),c}function l3(m){const r=String(m);return r.replace(Cx,"").match(xx)?r:"#"}function t6(m,r){return!!m&&r.checkAttribute(m.name,"linkHref")}function Kd(m,r){const c=Ax.test(m)?"mailto:":r,_=!!c&&!Uv(m);return m&&_?c+m:m}function Uv(m){return my.test(m)}function e6(m){window.open(m,"_blank","noopener")}class Zv extends Ta{constructor(){super(...arguments),this.manualDecorators=new Xs,this.automaticDecorators=new dx}restoreManualDecoratorStates(){for(const r of this.manualDecorators)r.value=this._getDecoratorStateFromModel(r.id)}refresh(){const r=this.editor.model,c=r.document.selection,u=c.getSelectedElement()||os(c.getSelectedBlocks());t6(u,r.schema)?(this.value=u.getAttribute("linkHref"),this.isEnabled=r.schema.checkAttribute(u,"linkHref")):(this.value=c.getAttribute("linkHref"),this.isEnabled=r.schema.checkAttributeInSelection(c,"linkHref"));for(const _ of this.manualDecorators)_.value=this._getDecoratorStateFromModel(_.id)}execute(r,c={}){const u=this.editor.model,_=u.document.selection,C=[],M=[];for(const E in c)c[E]?C.push(E):M.push(E);u.change(E=>{if(_.isCollapsed){const N=_.getFirstPosition();if(_.hasAttribute("linkHref")){const G=Tx(_);let W=Ti(N,"linkHref",_.getAttribute("linkHref"),u);_.getAttribute("linkHref")===G&&(W=this._updateLinkContent(u,E,W,r)),E.setAttribute("linkHref",r,W),C.forEach(dt=>{E.setAttribute(dt,!0,W)}),M.forEach(dt=>{E.removeAttribute(dt,W)}),E.setSelection(E.createPositionAfter(W.end.nodeBefore))}else if(""!==r){const G=Jc(_.getAttributes());G.set("linkHref",r),C.forEach(dt=>{G.set(dt,!0)});const{end:W}=u.insertContent(E.createText(r,G),N);E.setSelection(W)}["linkHref",...C,...M].forEach(G=>{E.removeSelectionAttribute(G)})}else{const N=u.schema.getValidRanges(_.getRanges(),"linkHref"),G=[];for(const dt of _.getSelectedBlocks())u.schema.checkAttribute(dt,"linkHref")&&G.push(E.createRangeOn(dt));const W=G.slice();for(const dt of N)this._isRangeToUpdate(dt,G)&&W.push(dt);for(const dt of W){let Zt=dt;if(1===W.length){const ue=Tx(_);_.getAttribute("linkHref")===ue&&(Zt=this._updateLinkContent(u,E,dt,r),E.setSelection(E.createSelection(Zt)))}E.setAttribute("linkHref",r,Zt),C.forEach(ue=>{E.setAttribute(ue,!0,Zt)}),M.forEach(ue=>{E.removeAttribute(ue,Zt)})}}})}_getDecoratorStateFromModel(r){const c=this.editor.model,u=c.document.selection,_=u.getSelectedElement();return t6(_,c.schema)?_.getAttribute(r):u.getAttribute(r)}_isRangeToUpdate(r,c){for(const u of c)if(u.containsRange(r))return!1;return!0}_updateLinkContent(r,c,u,_){const C=c.createText(_,{linkHref:_});return r.insertContent(C,u)}}function Tx(m){if(m.isCollapsed){const r=m.getFirstPosition();return r.textNode&&r.textNode.data}{const r=Array.from(m.getFirstRange().getItems());if(r.length>1)return null;const c=r[0];return c.is("$text")||c.is("$textProxy")?c.data:null}}class Mv extends Ta{refresh(){const r=this.editor.model,c=r.document.selection,u=c.getSelectedElement();this.isEnabled=t6(u,r.schema)?r.schema.checkAttribute(u,"linkHref"):r.schema.checkAttributeInSelection(c,"linkHref")}execute(){const c=this.editor.model,u=c.document.selection,_=this.editor.commands.get("link");c.change(C=>{const M=u.isCollapsed?[Ti(u.getFirstPosition(),"linkHref",u.getAttribute("linkHref"),c)]:c.schema.getValidRanges(u.getRanges(),"linkHref");for(const E of M)if(C.removeAttribute("linkHref",E),_)for(const N of _.manualDecorators)C.removeAttribute(N.id,E)})}}class wx extends(we()){constructor({id:r,label:c,attributes:u,classes:_,styles:C,defaultValue:M}){super(),this.id=r,this.set("value",void 0),this.defaultValue=M,this.label=c,this.attributes=u,this.classes=_,this.styles=C}_createPattern(){return{attributes:this.attributes,classes:this.classes,styles:this.styles}}}var kv=b(9773);Io()(kv.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var Ux=Object.defineProperty,Pv=Object.getOwnPropertySymbols,Zx=Object.prototype.hasOwnProperty,Mx=Object.prototype.propertyIsEnumerable,kx=(m,r,c)=>r in m?Ux(m,r,{enumerable:!0,configurable:!0,writable:!0,value:c}):m[r]=c,n6=(m,r)=>{for(var c in r||(r={}))Zx.call(r,c)&&kx(m,c,r[c]);if(Pv)for(var c of Pv(r))Mx.call(r,c)&&kx(m,c,r[c]);return m};const o_="automatic",Sv=/^(https?:)?\/\//;class Lv extends lo{static get pluginName(){return"LinkEditing"}static get requires(){return[C5,Vb,Rp]}constructor(r){super(r),r.config.define("link",{addTargetToExternalLinks:!1})}init(){const r=this.editor;r.model.schema.extend("$text",{allowAttributes:"linkHref"}),r.conversion.for("dataDowncast").attributeToElement({model:"linkHref",view:yx}),r.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(u,_)=>yx(l3(u),_)}),r.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:{href:!0}},model:{key:"linkHref",value:u=>u.getAttribute("href")}}),r.commands.add("link",new Zv(r)),r.commands.add("unlink",new Mv(r));const c=function(u,_){const C={"Open in a new tab":u("Open in a new tab"),Downloadable:u("Downloadable")};return _.forEach(M=>("label"in M&&C[M.label]&&(M.label=C[M.label]),M)),_}(r.t,function(u){const _=[];if(u)for(const[C,M]of Object.entries(u)){const E=Object.assign({},M,{id:`link${py(C)}`});_.push(E)}return _}(r.config.get("link.decorators")));this._enableAutomaticDecorators(c.filter(u=>u.mode===o_)),this._enableManualDecorators(c.filter(u=>"manual"===u.mode)),r.plugins.get(C5).registerAttribute("linkHref"),function(u,_,C,M){const E=u.editing.view,N=new Set;E.document.registerPostFixer(G=>{const W=u.model.document.selection;let dt=!1;if(W.hasAttribute(_)){const Zt=Ti(W.getFirstPosition(),_,W.getAttribute(_),u.model),ue=u.editing.mapper.toViewRange(Zt);for(const xe of ue.getItems())xe.is("element","a")&&!xe.hasClass(M)&&(G.addClass(M,xe),N.add(xe),dt=!0)}return dt}),u.conversion.for("editingDowncast").add(G=>{function W(){E.change(dt=>{for(const Zt of N.values())dt.removeClass(M,Zt),N.delete(Zt)})}G.on("insert",W,{priority:"highest"}),G.on("remove",W,{priority:"highest"}),G.on("attribute",W,{priority:"highest"}),G.on("selection",W,{priority:"highest"})})}(r,"linkHref",0,"ck-link_selected"),this._enableLinkOpen(),this._enableInsertContentSelectionAttributesFixer(),this._enableClickingAfterLink(),this._enableTypingOverLink(),this._handleDeleteContentAfterLink(),this._enableClipboardIntegration()}_enableAutomaticDecorators(r){const c=this.editor,u=c.commands.get("link").automaticDecorators;c.config.get("link.addTargetToExternalLinks")&&u.add({id:"linkIsExternal",mode:o_,callback:_=>!!_&&Sv.test(_),attributes:{target:"_blank",rel:"noopener noreferrer"}}),u.add(r),u.length&&c.conversion.for("downcast").add(u.getDispatcher())}_enableManualDecorators(r){if(!r.length)return;const c=this.editor,u=c.commands.get("link").manualDecorators;r.forEach(_=>{c.model.schema.extend("$text",{allowAttributes:_.id});const C=new wx(_);u.add(C),c.conversion.for("downcast").attributeToElement({model:C.id,view:(M,{writer:E,schema:N},{item:G})=>{if((G.is("selection")||N.isInline(G))&&M){const W=E.createAttributeElement("a",C.attributes,{priority:5});C.classes&&E.addClass(C.classes,W);for(const dt in C.styles)E.setStyle(dt,C.styles[dt],W);return E.setCustomProperty("link",!0,W),W}}}),c.conversion.for("upcast").elementToAttribute({view:n6({name:"a"},C._createPattern()),model:{key:C.id}})})}_enableLinkOpen(){const r=this.editor,c=r.editing.view.document;this.listenTo(c,"click",(u,_)=>{if(!(D_isMac?_.domEvent.metaKey:_.domEvent.ctrlKey))return;let C=_.domTarget;if("a"!=C.tagName.toLowerCase()&&(C=C.closest("a")),!C)return;const M=C.getAttribute("href");M&&(u.stop(),_.preventDefault(),e6(M))},{context:"$capture"}),this.listenTo(c,"keydown",(u,_)=>{const C=r.commands.get("link").value;C&&_.keyCode===$a.enter&&_.altKey&&(u.stop(),e6(C))})}_enableInsertContentSelectionAttributesFixer(){const r=this.editor.model,c=r.document.selection;this.listenTo(r,"insertContent",()=>{const u=c.anchor.nodeBefore,_=c.anchor.nodeAfter;c.hasAttribute("linkHref")&&u&&u.hasAttribute("linkHref")&&(_&&_.hasAttribute("linkHref")||r.change(C=>{rp(C,Dx(r.schema))}))},{priority:"low"})}_enableClickingAfterLink(){const r=this.editor,c=r.model;r.editing.view.addObserver(gh);let u=!1;this.listenTo(r.editing.view.document,"mousedown",()=>{u=!0}),this.listenTo(r.editing.view.document,"selectionChange",()=>{if(!u)return;u=!1;const _=c.document.selection;if(!_.isCollapsed||!_.hasAttribute("linkHref"))return;const C=_.getFirstPosition(),M=Ti(C,"linkHref",_.getAttribute("linkHref"),c);(C.isTouching(M.start)||C.isTouching(M.end))&&c.change(E=>{rp(E,Dx(c.schema))})})}_enableTypingOverLink(){const r=this.editor;let u=null,_=!1;this.listenTo(r.editing.view.document,"delete",()=>{_=!0},{priority:"high"}),this.listenTo(r.model,"deleteContent",()=>{const C=r.model.document.selection;C.isCollapsed||(_?_=!1:Ov(r)&&function(M){const E=M.document.selection,N=E.getFirstPosition(),G=E.getLastPosition(),W=N.nodeAfter;return!!(W&&W.is("$text")&&W.hasAttribute("linkHref"))&&(W===(G.textNode||G.nodeBefore)||Ti(N,"linkHref",W.getAttribute("linkHref"),M).containsRange(M.createRange(N,G),!0))}(r.model)&&(u=C.getAttributes()))},{priority:"high"}),this.listenTo(r.model,"insertContent",(C,[M])=>{_=!1,Ov(r)&&u&&(r.model.change(E=>{for(const[N,G]of u)E.setAttribute(N,G,M)}),u=null)},{priority:"high"})}_handleDeleteContentAfterLink(){const r=this.editor,c=r.model,u=c.document.selection;let C=!1,M=!1;this.listenTo(r.editing.view.document,"delete",(E,N)=>{M="backward"===N.direction},{priority:"high"}),this.listenTo(c,"deleteContent",()=>{C=!1;const E=u.getFirstPosition(),N=u.getAttribute("linkHref");if(!N)return;const G=Ti(E,"linkHref",N,c);C=G.containsPosition(E)||G.end.isEqual(E)},{priority:"high"}),this.listenTo(c,"deleteContent",()=>{M&&(M=!1,C||r.model.enqueueChange(E=>{rp(E,Dx(c.schema))}))},{priority:"low"})}_enableClipboardIntegration(){const r=this.editor,c=r.model,u=this.editor.config.get("link.defaultProtocol");u&&this.listenTo(r.plugins.get("ClipboardPipeline"),"contentInsertion",(_,C)=>{c.change(M=>{const E=M.createRangeIn(C.content);for(const N of E.getItems())if(N.hasAttribute("linkHref")){const G=Kd(N.getAttribute("linkHref"),u);M.setAttribute("linkHref",G,N)}})})}}function rp(m,r){m.removeSelectionAttribute("linkHref");for(const c of r)m.removeSelectionAttribute(c)}function Ov(m){return m.model.change(r=>r.batch).isTyping}function Dx(m){return m.getDefinition("$text").allowAttributes.filter(r=>r.startsWith("link"))}var u3=b(7754);Io()(u3.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class EA extends aa{constructor(r,c){super(r),this.focusTracker=new as,this.keystrokes=new jc,this._focusables=new Fa;const u=r.t;this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(u("Save"),fs.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(u("Cancel"),fs.cancel,"ck-button-cancel","cancel"),this._manualDecoratorSwitches=this._createManualDecoratorSwitches(c),this.children=this._createFormChildren(c.manualDecorators),this._focusCycler=new ul({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const _=["ck","ck-link-form","ck-responsive-form"];c.manualDecorators.length&&_.push("ck-link-form_layout-vertical","ck-vertical-form"),this.setTemplate({tag:"form",attributes:{class:_,tabindex:"-1"},children:this.children})}getDecoratorSwitchesState(){return Array.from(this._manualDecoratorSwitches).reduce((r,c)=>(r[c.name]=c.isOn,r),{})}render(){super.render(),x({view:this}),[this.urlInputView,...this._manualDecoratorSwitches,this.saveButtonView,this.cancelButtonView].forEach(r=>{this._focusables.add(r),this.focusTracker.add(r.element)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createUrlInput(){const r=this.locale.t,c=new Dr(this.locale,$2);return c.label=r("Link URL"),c}_createButton(r,c,u,_){const C=new Hr(this.locale);return C.set({label:r,icon:c,tooltip:!0}),C.extendTemplate({attributes:{class:u}}),_&&C.delegate("execute").to(this,_),C}_createManualDecoratorSwitches(r){const c=this.createCollection();for(const u of r.manualDecorators){const _=new xi(this.locale);_.set({name:u.id,label:u.label,withText:!0}),_.bind("isOn").toMany([u,r],"value",(C,M)=>void 0===M&&void 0===C?!!u.defaultValue:!!C),_.on("execute",()=>{u.set("value",!_.isOn)}),c.add(_)}return c}_createFormChildren(r){const c=this.createCollection();if(c.add(this.urlInputView),r.length){const u=new aa;u.setTemplate({tag:"ul",children:this._manualDecoratorSwitches.map(_=>({tag:"li",children:[_],attributes:{class:["ck","ck-list__item"]}})),attributes:{class:["ck","ck-reset","ck-list"]}}),c.add(u)}return c.add(this.saveButtonView),c.add(this.cancelButtonView),c}}var Sx=b(2347);Io()(Sx.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class _y extends aa{constructor(r){super(r),this.focusTracker=new as,this.keystrokes=new jc,this._focusables=new Fa;const c=r.t;this.previewButtonView=this._createPreviewButton(),this.unlinkButtonView=this._createButton(c("Unlink"),'',"unlink"),this.editButtonView=this._createButton(c("Edit link"),fs.pencil,"edit"),this.set("href",void 0),this._focusCycler=new ul({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-actions","ck-responsive-form"],tabindex:"-1"},children:[this.previewButtonView,this.editButtonView,this.unlinkButtonView]})}render(){super.render(),[this.previewButtonView,this.editButtonView,this.unlinkButtonView].forEach(r=>{this._focusables.add(r),this.focusTracker.add(r.element)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createButton(r,c,u){const _=new Hr(this.locale);return _.set({label:r,icon:c,tooltip:!0}),_.delegate("execute").to(this,u),_}_createPreviewButton(){const r=new Hr(this.locale),c=this.bindTemplate,u=this.t;return r.set({withText:!0,tooltip:u("Open link in new tab")}),r.extendTemplate({attributes:{class:["ck","ck-link-actions__preview"],href:c.to("href",_=>_&&l3(_)),target:"_blank",rel:"noopener noreferrer"}}),r.bind("label").to(this,"href",_=>_||u("This link has no URL")),r.bind("isEnabled").to(this,"href",_=>!!_),r.template.tag="a",r.template.eventListeners={},r}}const zp="link-ui";class FA extends lo{constructor(){super(...arguments),this.actionsView=null,this.formView=null}static get requires(){return[O0]}static get pluginName(){return"LinkUI"}init(){const r=this.editor;r.editing.view.addObserver(s4),this._balloon=r.plugins.get(O0),this._createToolbarLinkButton(),this._enableBalloonActivators(),r.conversion.for("editingDowncast").markerToHighlight({model:zp,view:{classes:["ck-fake-link-selection"]}}),r.conversion.for("editingDowncast").markerToElement({model:zp,view:{name:"span",classes:["ck-fake-link-selection","ck-fake-link-selection_collapsed"]}})}destroy(){super.destroy(),this.formView&&this.formView.destroy(),this.actionsView&&this.actionsView.destroy()}_createViews(){this.actionsView=this._createActionsView(),this.formView=this._createFormView(),this._enableUserBalloonInteractions()}_createActionsView(){const r=this.editor,c=new _y(r.locale),u=r.commands.get("link"),_=r.commands.get("unlink");return c.bind("href").to(u,"value"),c.editButtonView.bind("isEnabled").to(u),c.unlinkButtonView.bind("isEnabled").to(_),this.listenTo(c,"edit",()=>{this._addFormView()}),this.listenTo(c,"unlink",()=>{r.execute("unlink"),this._hideUI()}),c.keystrokes.set("Esc",(C,M)=>{this._hideUI(),M()}),c.keystrokes.set(S1,(C,M)=>{this._addFormView(),M()}),c}_createFormView(){const r=this.editor,c=r.commands.get("link"),u=r.config.get("link.defaultProtocol"),_=new(A(EA))(r.locale,c);return _.urlInputView.fieldView.bind("value").to(c,"value"),_.urlInputView.bind("isEnabled").to(c,"isEnabled"),_.saveButtonView.bind("isEnabled").to(c),this.listenTo(_,"submit",()=>{const{value:C}=_.urlInputView.fieldView.element,M=Kd(C,u);r.execute("link",M,_.getDecoratorSwitchesState()),this._closeFormView()}),this.listenTo(_,"cancel",()=>{this._closeFormView()}),_.keystrokes.set("Esc",(C,M)=>{this._closeFormView(),M()}),_}_createToolbarLinkButton(){const r=this.editor,c=r.commands.get("link"),u=r.t;r.ui.componentFactory.add("link",_=>{const C=new Hr(_);return C.isEnabled=!0,C.label=u("Link"),C.icon='',C.keystroke=S1,C.tooltip=!0,C.isToggleable=!0,C.bind("isEnabled").to(c,"isEnabled"),C.bind("isOn").to(c,"value",M=>!!M),this.listenTo(C,"execute",()=>this._showUI(!0)),C})}_enableBalloonActivators(){const r=this.editor;this.listenTo(r.editing.view.document,"click",()=>{this._getSelectedLinkElement()&&this._showUI()}),r.keystrokes.set(S1,(u,_)=>{_(),r.commands.get("link").isEnabled&&this._showUI(!0)})}_enableUserBalloonInteractions(){this.editor.keystrokes.set("Tab",(r,c)=>{this._areActionsVisible&&!this.actionsView.focusTracker.isFocused&&(this.actionsView.focus(),c())},{priority:"high"}),this.editor.keystrokes.set("Esc",(r,c)=>{this._isUIVisible&&(this._hideUI(),c())}),t({emitter:this.formView,activator:()=>this._isUIInPanel,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideUI()})}_addActionsView(){this.actionsView||this._createViews(),this._areActionsInPanel||this._balloon.add({view:this.actionsView,position:this._getBalloonPositionData()})}_addFormView(){if(this.formView||this._createViews(),this._isFormInPanel)return;const r=this.editor.commands.get("link");this.formView.disableCssTransitions(),this._balloon.add({view:this.formView,position:this._getBalloonPositionData()}),this._balloon.visibleView===this.formView&&this.formView.urlInputView.fieldView.select(),this.formView.enableCssTransitions(),this.formView.urlInputView.fieldView.element.value=r.value||""}_closeFormView(){const r=this.editor.commands.get("link");r.restoreManualDecoratorStates(),void 0!==r.value?this._removeFormView():this._hideUI()}_removeFormView(){this._isFormInPanel&&(this.formView.saveButtonView.focus(),this._balloon.remove(this.formView),this.editor.editing.view.focus(),this._hideFakeVisualSelection())}_showUI(r=!1){this.formView||this._createViews(),this._getSelectedLinkElement()?(this._areActionsVisible?this._addFormView():this._addActionsView(),r&&this._balloon.showStack("main")):(this._showFakeVisualSelection(),this._addActionsView(),r&&this._balloon.showStack("main"),this._addFormView()),this._startUpdatingUI()}_hideUI(){if(!this._isUIInPanel)return;const r=this.editor;this.stopListening(r.ui,"update"),this.stopListening(this._balloon,"change:visibleView"),r.editing.view.focus(),this._removeFormView(),this._balloon.remove(this.actionsView),this._hideFakeVisualSelection()}_startUpdatingUI(){const r=this.editor,c=r.editing.view.document;let u=this._getSelectedLinkElement(),_=M();const C=()=>{const E=this._getSelectedLinkElement(),N=M();u&&!E||!u&&N!==_?this._hideUI():this._isUIVisible&&this._balloon.updatePosition(this._getBalloonPositionData()),u=E,_=N};function M(){return c.selection.focus.getAncestors().reverse().find(E=>E.is("element"))}this.listenTo(r.ui,"update",C),this.listenTo(this._balloon,"change:visibleView",C)}get _isFormInPanel(){return!!this.formView&&this._balloon.hasView(this.formView)}get _areActionsInPanel(){return!!this.actionsView&&this._balloon.hasView(this.actionsView)}get _areActionsVisible(){return!!this.actionsView&&this._balloon.visibleView===this.actionsView}get _isUIInPanel(){return this._isFormInPanel||this._areActionsInPanel}get _isUIVisible(){return!!this.formView&&this._balloon.visibleView==this.formView||this._areActionsVisible}_getBalloonPositionData(){const r=this.editor.editing.view,u=r.document;let _;if(this.editor.model.markers.has(zp)){const C=Array.from(this.editor.editing.mapper.markerNameToElements(zp)),M=r.createRange(r.createPositionBefore(C[0]),r.createPositionAfter(C[C.length-1]));_=r.domConverter.viewRangeToDom(M)}else _=()=>{const C=this._getSelectedLinkElement();return C?r.domConverter.mapViewToDom(C):r.domConverter.viewRangeToDom(u.selection.getFirstRange())};return{target:_}}_getSelectedLinkElement(){const r=this.editor.editing.view,c=r.document.selection,u=c.getSelectedElement();if(c.isCollapsed||u&&Pl(u))return i6(c.getFirstPosition());{const _=c.getFirstRange().getTrimmed(),C=i6(_.start),M=i6(_.end);return C&&C==M&&r.createRangeIn(C).getTrimmed().isEqual(_)?C:null}}_showFakeVisualSelection(){const r=this.editor.model;r.change(c=>{const u=r.document.selection.getFirstRange();if(r.markers.has(zp))c.updateMarker(zp,{range:u});else if(u.start.isAtEnd){const _=u.start.getLastMatchingPosition(({item:C})=>!r.schema.isContent(C),{boundaries:u});c.addMarker(zp,{usingOperation:!1,affectsData:!1,range:c.createRange(_,u.end)})}else c.addMarker(zp,{usingOperation:!1,affectsData:!1,range:u})})}_hideFakeVisualSelection(){const r=this.editor.model;r.markers.has(zp)&&r.change(c=>{c.removeMarker(zp)})}}function i6(m){return m.getAncestors().find(r=>{return(c=r).is("attributeElement")&&!!c.getCustomProperty("link");var c})||null}const fy=new RegExp("(^|\\s)(((?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(((?!www\\.)|(www\\.))(?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.)+(?:[a-z\\u00a1-\\uffff]{2,63})))(?::\\d{2,5})?(?:[/?#]\\S*)?)|((www.|(\\S+@))((?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.))+(?:[a-z\\u00a1-\\uffff]{2,63})))$","i");class o6 extends lo{static get requires(){return[t_]}static get pluginName(){return"AutoLink"}init(){const r=this.editor.model.document.selection;r.on("change:range",()=>{this.isEnabled=!r.anchor.parent.is("element","codeBlock")}),this._enableTypingHandling()}afterInit(){this._enableEnterHandling(),this._enableShiftEnterHandling()}_enableTypingHandling(){const r=this.editor,c=new Qb(r.model,u=>{if(!((C=u).length>4&&" "===C[C.length-1]&&" "!==C[C.length-2]))return;var C;const _=a6(u.substr(0,u.length-1));return _?{url:_}:void 0});c.on("matched:data",(u,_)=>{const{batch:C,range:M,url:E}=_;if(!C.isTyping)return;const N=M.end.getShiftedBy(-1),G=N.getShiftedBy(-E.length),W=r.model.createRange(G,N);this._applyAutoLink(E,W)}),c.bind("isEnabled").to(this)}_enableEnterHandling(){const r=this.editor,c=r.model,u=r.commands.get("enter");u&&u.on("execute",()=>{const _=c.document.selection.getFirstPosition();if(!_.parent.previousSibling)return;const C=c.createRangeIn(_.parent.previousSibling);this._checkAndApplyAutoLinkOnRange(C)})}_enableShiftEnterHandling(){const r=this.editor,c=r.model,u=r.commands.get("shiftEnter");u&&u.on("execute",()=>{const _=c.document.selection.getFirstPosition(),C=c.createRange(c.createPositionAt(_.parent,0),_.getShiftedBy(-1));this._checkAndApplyAutoLinkOnRange(C)})}_checkAndApplyAutoLinkOnRange(r){const c=this.editor.model,{text:u,range:_}=T4(r,c),C=a6(u);if(C){const M=c.createRange(_.end.getShiftedBy(-C.length),_.end);this._applyAutoLink(C,M)}}_applyAutoLink(r,c){const u=this.editor.model,_=Kd(r,this.editor.config.get("link.defaultProtocol"));var M;this.isEnabled&&(M=u).schema.checkAttributeInSelection(M.createSelection(c),"linkHref")&&Uv(_)&&!function(C){const M=C.start.nodeAfter;return!!M&&M.hasAttribute("linkHref")}(c)&&this._persistAutoLink(_,c)}_persistAutoLink(r,c){const u=this.editor.model,_=this.editor.plugins.get("Delete");u.enqueueChange(C=>{C.setAttribute("linkHref",r,c),u.enqueueChange(()=>{_.requestUndoOnBackspace()})})}}function a6(m){const r=fy.exec(m);return r?r[2]:null}var p3=b(111);Io()(p3.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var Ev=b(5730);Io()(Ev.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var m3=b(4564);function Fx(m,r,c,u){const _=r.parent,C=c.mapper,M=c.writer;let E=C.toViewPosition(u.createPositionBefore(m));const N=Ix(m.previousSibling,{sameIndent:!0,smallerIndent:!0,listIndent:m.getAttribute("listIndent")}),G=m.previousSibling;if(N&&N.getAttribute("listIndent")==m.getAttribute("listIndent")){const W=C.toViewElement(N);E=M.breakContainer(M.createPositionAfter(W))}else if(G&&"listItem"==G.name){E=C.toViewPosition(u.createPositionAt(G,"end"));const W=C.findMappedViewAncestor(E),dt=function(Zt){for(const ue of Zt.getChildren())if("ul"==ue.name||"ol"==ue.name)return ue;return null}(W);E=dt?M.createPositionBefore(dt):M.createPositionAt(W,"end")}else E=C.toViewPosition(u.createPositionBefore(m));if(E=Iv(E),M.insert(E,_),G&&"listItem"==G.name){const W=C.toViewElement(G),dt=M.createRange(M.createPositionAt(W,0),E).getWalker({ignoreElementEnd:!0});for(const Zt of dt)if(Zt.item.is("element","li")){const ue=M.breakContainer(M.createPositionBefore(Zt.item)),xe=Zt.item.parent,Ee=M.createPositionAt(r,"end");L1(M,Ee.nodeBefore,Ee.nodeAfter),M.move(M.createRangeOn(xe),Ee),dt._position=ue}}else{const W=_.nextSibling;if(W&&(W.is("element","ul")||W.is("element","ol"))){let dt=null;for(const Zt of W.getChildren()){const ue=C.toModelElement(Zt);if(!(ue&&ue.getAttribute("listIndent")>m.getAttribute("listIndent")))break;dt=Zt}dt&&(M.breakContainer(M.createPositionAfter(dt)),M.move(M.createRangeOn(dt.parent),M.createPositionAt(r,"end")))}}L1(M,_,_.nextSibling),L1(M,_.previousSibling,_)}function L1(m,r,c){return!r||!c||"ul"!=r.name&&"ol"!=r.name||r.name!=c.name||r.getAttribute("class")!==c.getAttribute("class")?null:m.mergeContainers(m.createPositionAfter(r))}function Iv(m){return m.getLastMatchingPosition(r=>r.item.is("uiElement"))}function Ix(m,r){const c=!!r.sameIndent,u=!!r.smallerIndent,_=r.listIndent;let C=m;for(;C&&"listItem"==C.name;){const M=C.getAttribute("listIndent");if(c&&_==M||u&&_>M)return C;C="forward"===r.direction?C.nextSibling:C.previousSibling}return null}function Nx(m,r,c,u){m.ui.componentFactory.add(r,_=>{const C=m.commands.get(r),M=new Hr(_);return M.set({label:c,icon:u,tooltip:!0,isToggleable:!0}),M.bind("isOn","isEnabled").to(C,"value","isEnabled"),M.on("execute",()=>{m.execute(r),m.editing.view.focus()}),M})}function qx(m,r){const c=[],u=m.parent,_={ignoreElementEnd:!1,startPosition:m,shallow:!0,direction:r},C=u.getAttribute("listIndent"),M=[...new Jd(_)].filter(E=>E.item.is("element")).map(E=>E.item);for(const E of M){if(!E.is("element","listItem")||E.getAttribute("listIndent")C)){if(E.getAttribute("listType")!==u.getAttribute("listType")||E.getAttribute("listStyle")!==u.getAttribute("listStyle")||E.getAttribute("listReversed")!==u.getAttribute("listReversed")||E.getAttribute("listStart")!==u.getAttribute("listStart"))break;"backward"===r?c.unshift(E):c.push(E)}}return c}Io()(m3.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});const IA=["disc","circle","square"],Rx=["decimal","decimal-leading-zero","lower-roman","upper-roman","lower-latin","upper-latin"];function Nv(){const m=!this.isEmpty&&("ul"==this.getChild(0).name||"ol"==this.getChild(0).name);return this.isEmpty||m?0:Ff.call(this)}class NA extends lo{static get pluginName(){return"ListUI"}init(){const r=this.editor.t;Nx(this.editor,"numberedList",r("Numbered List"),''),Nx(this.editor,"bulletedList",r("Bulleted List"),'')}}const Hx={},hy={},gy={},vy=[{listStyle:"disc",typeAttribute:"disc",listType:"bulleted"},{listStyle:"circle",typeAttribute:"circle",listType:"bulleted"},{listStyle:"square",typeAttribute:"square",listType:"bulleted"},{listStyle:"decimal",typeAttribute:"1",listType:"numbered"},{listStyle:"decimal-leading-zero",typeAttribute:null,listType:"numbered"},{listStyle:"lower-roman",typeAttribute:"i",listType:"numbered"},{listStyle:"upper-roman",typeAttribute:"I",listType:"numbered"},{listStyle:"lower-alpha",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-alpha",typeAttribute:"A",listType:"numbered"},{listStyle:"lower-latin",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-latin",typeAttribute:"A",listType:"numbered"}];for(const{listStyle:m,typeAttribute:r,listType:c}of vy)Hx[m]=c,hy[m]=r,r&&(gy[r]=m);var qA=b(4721);Io()(qA.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var zx=b(6082);Io()(zx.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var Yx=b(2417);Io()(Yx.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class Rv extends Ta{constructor(r,c){super(r),this._indentBy="forward"==c?1:-1}refresh(){this.isEnabled=this._checkEnabled()}execute(){const r=this.editor.model;let u=Array.from(r.document.selection.getSelectedBlocks());r.change(_=>{const C=u[u.length-1];let M=C.nextSibling;for(;M&&"listItem"==M.name&&M.getAttribute("listIndent")>C.getAttribute("listIndent");)u.push(M),M=M.nextSibling;this._indentBy<0&&(u=u.reverse());for(const E of u){const N=E.getAttribute("listIndent")+this._indentBy;N<0?_.rename(E,"paragraph"):_.setAttribute("listIndent",N,E)}this.fire("_executeCleanup",u)})}_checkEnabled(){const r=os(this.editor.model.document.selection.getSelectedBlocks());if(!r||!r.is("element","listItem"))return!1;if(this._indentBy>0){const c=r.getAttribute("listIndent"),u=r.getAttribute("listType");let _=r.previousSibling;for(;_&&_.is("element","listItem")&&_.getAttribute("listIndent")>=c;){if(_.getAttribute("listIndent")==c)return _.getAttribute("listType")==u;_=_.previousSibling}return!1}return!0}}class a2 extends Ta{constructor(r,c){super(r),this.type=c}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(r={}){const c=this.editor.model,_=Array.from(c.document.selection.getSelectedBlocks()).filter(M=>s6(M,c.schema)),C=void 0!==r.forceValue?!r.forceValue:this.value;c.change(M=>{if(C){let E=_[_.length-1].nextSibling,N=Number.POSITIVE_INFINITY,G=[];for(;E&&"listItem"==E.name&&0!==E.getAttribute("listIndent");){const W=E.getAttribute("listIndent");W=c;)C>_.getAttribute("listIndent")&&(C=_.getAttribute("listIndent")),_.getAttribute("listIndent")==C&&m[r?"unshift":"push"](_),_=_[r?"previousSibling":"nextSibling"]}}function s6(m,r){return r.checkChild(m.parent,"listItem")&&!r.isObject(m)}class zv extends lo{static get pluginName(){return"ListUtils"}getListTypeFromListStyleType(r){return IA.includes(c=r)?"bulleted":Rx.includes(c)?"numbered":null;var c}getSelectedListItems(r){return function(c){let u=[...c.document.selection.getSelectedBlocks()].filter(_=>_.is("element","listItem")).map(_=>{const C=c.change(M=>M.createPositionAt(_,0));return[...qx(C,"backward"),...qx(C,"forward")]}).flat();return u=[...new Set(u)],u}(r)}getSiblingNodes(r,c){return qx(r,c)}}function Bx(m){return(r,c,u)=>{const _=u.consumable;if(!_.test(c.item,"insert")||!_.test(c.item,"attribute:listType")||!_.test(c.item,"attribute:listIndent"))return;_.consume(c.item,"insert"),_.consume(c.item,"attribute:listType"),_.consume(c.item,"attribute:listIndent");const C=c.item;Fx(C,function Ex(m,r){const c=r.mapper,u=r.writer,_="numbered"==m.getAttribute("listType")?"ol":"ul",C=function(E){const N=E.createContainerElement("li");return N.getFillerOffset=Nv,N}(u),M=u.createContainerElement(_,null);return u.insert(u.createPositionAt(M,0),C),c.bindElements(m,C),C}(C,u),u,m)}}const Yv=(m,r,c)=>{if(!c.consumable.test(r.item,m.name))return;const u=c.mapper.toViewElement(r.item),_=c.writer;_.breakContainer(_.createPositionBefore(u)),_.breakContainer(_.createPositionAfter(u)),_.rename("numbered"==r.attributeNewValue?"ol":"ul",u.parent)},gf=(m,r,c)=>{c.consumable.consume(r.item,m.name);const u=c.mapper.toViewElement(r.item).parent,_=c.writer;L1(_,u,u.nextSibling),L1(_,u.previousSibling,u)},f3=(m,r,c)=>{if(c.consumable.test(r.item,m.name)&&"listItem"!=r.item.name){let u=c.mapper.toViewPosition(r.range.start);const _=c.writer,C=[];for(;("ul"==u.parent.name||"ol"==u.parent.name)&&(u=_.breakContainer(u),"li"==u.parent.name);){const M=u,E=_.createPositionAt(u.parent,"end");if(!M.isEqual(E)){const N=_.remove(_.createRange(M,E));C.push(N)}u=_.createPositionAfter(u.parent)}if(C.length>0){for(let M=0;M0){const N=L1(_,E,E.nextSibling);N&&N.parent==E&&u.offset--}}L1(_,u.nodeBefore,u.nodeAfter)}}},by=(m,r,c)=>{const u=c.mapper.toViewPosition(r.position);L1(c.writer,u.nodeBefore,u.nodeAfter)},Cy=(m,r,c)=>{if(c.consumable.consume(r.viewItem,{name:!0})){const u=c.writer,_=u.createElement("listItem"),C=function(N){let G=0,W=N.parent;for(;W;){if(W.is("element","li"))G++;else{const dt=W.previousSibling;dt&&dt.is("element","li")&&G++}W=W.parent}return G}(r.viewItem);if(u.setAttribute("listIndent",C,_),u.setAttribute("listType",r.viewItem.parent&&"ol"==r.viewItem.parent.name?"numbered":"bulleted",_),!c.safeInsert(_,r.modelCursor))return;const E=function(N,G,W){const{writer:dt,schema:Zt}=W;let ue=dt.createPositionAfter(N);for(const xe of G)if("ul"==xe.name||"ol"==xe.name)ue=W.convertItem(xe,ue).modelCursor;else{const Ee=W.convertItem(xe,dt.createPositionAt(N,"end")),ln=Ee.modelRange.start.nodeAfter;ln&&ln.is("element")&&!Zt.checkChild(N,ln.name)&&(N=Ee.modelCursor.parent.is("element","listItem")?Ee.modelCursor.parent:YA(Ee.modelCursor),ue=dt.createPositionAfter(N))}return ue}(_,r.viewItem.getChildren(),c);r.modelRange=u.createRange(r.modelCursor,E),c.updateConversionResult(_,r)}},HA=(m,r,c)=>{if(c.consumable.test(r.viewItem,{name:!0})){const u=Array.from(r.viewItem.getChildren());for(const _ of u)!_.is("element","li")&&!Qh(_)&&_._remove()}},Bv=(m,r,c)=>{if(c.consumable.test(r.viewItem,{name:!0})){if(0===r.viewItem.childCount)return;const u=[...r.viewItem.getChildren()];let _=!1;for(const C of u)_&&!Qh(C)&&C._remove(),Qh(C)&&(_=!0)}};function Vv(m){return(r,c)=>{if(c.isPhantom)return;const u=c.modelPosition.nodeBefore;if(u&&u.is("element","listItem")){const _=c.mapper.toViewElement(u),C=_.getAncestors().find(Qh),M=m.createPositionAt(_,0).getWalker();for(const E of M){if("elementStart"==E.type&&E.item.is("element","li")){c.viewPosition=E.previousPosition;break}if("elementEnd"==E.type&&E.item==C){c.viewPosition=E.nextPosition;break}}}}}const zA=function(m,[r,c]){let _,C=r.is("documentFragment")?r.getChild(0):r;if(_=c?this.createSelection(c):this.document.selection,C&&C.is("element","listItem")){const M=_.getFirstPosition();let E=null;if(M.parent.is("element","listItem")?E=M.parent:M.nodeBefore&&M.nodeBefore.is("element","listItem")&&(E=M.nodeBefore),E){const N=E.getAttribute("listIndent");if(N>0)for(;C&&C.is("element","listItem");)C._setAttribute("listIndent",C.getAttribute("listIndent")+N),C=C.nextSibling}}};function YA(m){const r=new Jd({startPosition:m});let c;do{c=r.next()}while(!c.value.item.is("element","listItem"));return c.value.item}function Vx(m,r,c,u,_,C){const M=Ix(r.nodeBefore,{sameIndent:!0,smallerIndent:!0,listIndent:m}),E=_.mapper,N=_.writer,G=M?M.getAttribute("listIndent"):null;let W;if(M)if(G==m){const dt=E.toViewElement(M).parent;W=N.createPositionAfter(dt)}else{const dt=C.createPositionAt(M,"end");W=E.toViewPosition(dt)}else W=c;W=Iv(W);for(const dt of[...u.getChildren()])Qh(dt)&&(W=N.move(N.createRangeOn(dt),W).end,L1(N,dt,dt.nextSibling),L1(N,dt.previousSibling,dt))}function Qh(m){return m.is("element","ol")||m.is("element","ul")}class Gv extends lo{static get pluginName(){return"ListEditing"}static get requires(){return[z0,t_,zv]}init(){const r=this.editor;r.model.schema.register("listItem",{inheritAllFrom:"$block",allowAttributes:["listType","listIndent"]});const c=r.data,u=r.editing;var _;r.model.document.registerPostFixer(M=>function(E,N){const G=E.document.differ.getChanges(),W=new Map;let dt=!1;for(const Ee of G)if("insert"==Ee.type&&"listItem"==Ee.name)Zt(Ee.position);else if("insert"==Ee.type&&"listItem"!=Ee.name){if("$text"!=Ee.name){const ln=Ee.position.nodeAfter;ln.hasAttribute("listIndent")&&(N.removeAttribute("listIndent",ln),dt=!0),ln.hasAttribute("listType")&&(N.removeAttribute("listType",ln),dt=!0),ln.hasAttribute("listStyle")&&(N.removeAttribute("listStyle",ln),dt=!0),ln.hasAttribute("listReversed")&&(N.removeAttribute("listReversed",ln),dt=!0),ln.hasAttribute("listStart")&&(N.removeAttribute("listStart",ln),dt=!0);for(const Mn of Array.from(E.createRangeIn(ln)).filter(di=>di.item.is("element","listItem")))Zt(Mn.previousPosition)}Zt(Ee.position.getShiftedBy(Ee.length))}else"remove"==Ee.type&&"listItem"==Ee.name?Zt(Ee.position):("attribute"==Ee.type&&"listIndent"==Ee.attributeKey||"attribute"==Ee.type&&"listType"==Ee.attributeKey)&&Zt(Ee.range.start);for(const Ee of W.values())ue(Ee),xe(Ee);return dt;function Zt(Ee){const ln=Ee.nodeBefore;if(ln&&ln.is("element","listItem")){let Mn=ln;if(W.has(Mn))return;for(let di=Mn.previousSibling;di&&di.is("element","listItem");di=Mn.previousSibling)if(Mn=di,W.has(Mn))return;W.set(ln,Mn)}else{const Mn=Ee.nodeAfter;Mn&&Mn.is("element","listItem")&&W.set(Mn,Mn)}}function ue(Ee){let ln=0,Mn=null;for(;Ee&&Ee.is("element","listItem");){const di=Ee.getAttribute("listIndent");if(di>ln){let Ri;null===Mn?(Mn=di-ln,Ri=ln):(Mn>di&&(Mn=di),Ri=di-Mn),N.setAttribute("listIndent",Ri,Ee),dt=!0}else Mn=null,ln=Ee.getAttribute("listIndent")+1;Ee=Ee.nextSibling}}function xe(Ee){let ln=[],Mn=null;for(;Ee&&Ee.is("element","listItem");){const di=Ee.getAttribute("listIndent");if(Mn&&Mn.getAttribute("listIndent")>di&&(ln=ln.slice(0,di+1)),0!=di)if(ln[di]){const Ri=ln[di];Ee.getAttribute("listType")!=Ri&&(N.setAttribute("listType",Ri,Ee),dt=!0)}else ln[di]=Ee.getAttribute("listType");Mn=Ee,Ee=Ee.nextSibling}}}(r.model,M)),u.mapper.registerViewToModelLength("li",h3),c.mapper.registerViewToModelLength("li",h3),u.mapper.on("modelToViewPosition",Vv(u.view)),u.mapper.on("viewToModelPosition",(_=r.model,(M,E)=>{const N=E.viewPosition,G=N.parent,W=E.mapper;if("ul"==G.name||"ol"==G.name){if(N.isAtEnd){const dt=W.toModelElement(N.nodeBefore),Zt=W.getModelLength(N.nodeBefore);E.modelPosition=_.createPositionBefore(dt).getShiftedBy(Zt)}else{const dt=W.toModelElement(N.nodeAfter);E.modelPosition=_.createPositionBefore(dt)}M.stop()}else if("li"==G.name&&N.nodeBefore&&("ul"==N.nodeBefore.name||"ol"==N.nodeBefore.name)){const dt=W.toModelElement(G);let Zt=1,ue=N.nodeBefore;for(;ue&&Qh(ue);)Zt+=W.getModelLength(ue),ue=ue.previousSibling;E.modelPosition=_.createPositionBefore(dt).getShiftedBy(Zt),M.stop()}})),c.mapper.on("modelToViewPosition",Vv(u.view)),r.conversion.for("editingDowncast").add(M=>{var E;M.on("insert",f3,{priority:"high"}),M.on("insert:listItem",Bx(r.model)),M.on("attribute:listType:listItem",Yv,{priority:"high"}),M.on("attribute:listType:listItem",gf,{priority:"low"}),M.on("attribute:listIndent:listItem",(E=r.model,(N,G,W)=>{if(!W.consumable.consume(G.item,"attribute:listIndent"))return;const dt=W.mapper.toViewElement(G.item),Zt=W.writer;Zt.breakContainer(Zt.createPositionBefore(dt)),Zt.breakContainer(Zt.createPositionAfter(dt));const ue=dt.parent,xe=ue.previousSibling,Ee=Zt.createRangeOn(ue);Zt.remove(Ee),xe&&xe.nextSibling&&L1(Zt,xe,xe.nextSibling),Vx(G.attributeOldValue+1,G.range.start,Ee.start,dt,W,E),Fx(G.item,dt,W,E);for(const ln of G.item.getChildren())W.consumable.consume(ln,"insert")})),M.on("remove:listItem",function(E){return(N,G,W)=>{const dt=W.mapper.toViewPosition(G.position).getLastMatchingPosition(Mn=>!Mn.item.is("element","li")).nodeAfter,Zt=W.writer;Zt.breakContainer(Zt.createPositionBefore(dt)),Zt.breakContainer(Zt.createPositionAfter(dt));const ue=dt.parent,xe=ue.previousSibling,Ee=Zt.createRangeOn(ue),ln=Zt.remove(Ee);xe&&xe.nextSibling&&L1(Zt,xe,xe.nextSibling),Vx(W.mapper.toModelElement(dt).getAttribute("listIndent")+1,G.position,Ee.start,dt,W,E);for(const Mn of Zt.createRangeIn(ln).getItems())W.mapper.unbindViewElement(Mn);N.stop()}}(r.model)),M.on("remove",by,{priority:"low"})}),r.conversion.for("dataDowncast").add(M=>{M.on("insert",f3,{priority:"high"}),M.on("insert:listItem",Bx(r.model))}),r.conversion.for("upcast").add(M=>{M.on("element:ul",HA,{priority:"high"}),M.on("element:ol",HA,{priority:"high"}),M.on("element:li",Bv,{priority:"high"}),M.on("element:li",Cy)}),r.model.on("insertContent",zA,{priority:"high"}),r.commands.add("numberedList",new a2(r,"numbered")),r.commands.add("bulletedList",new a2(r,"bulleted")),r.commands.add("indentList",new Rv(r,"forward")),r.commands.add("outdentList",new Rv(r,"backward"));const C=u.view.document;this.listenTo(C,"enter",(M,E)=>{const N=this.editor.model.document,G=N.selection.getLastPosition().parent;N.selection.isCollapsed&&"listItem"==G.name&&G.isEmpty&&(this.editor.execute("outdentList"),E.preventDefault(),M.stop())},{context:"li"}),this.listenTo(C,"delete",(M,E)=>{if("backward"!==E.direction)return;const N=this.editor.model.document.selection;if(!N.isCollapsed)return;const G=N.getFirstPosition();if(!G.isAtStart)return;const W=G.parent;"listItem"===W.name&&(W.previousSibling&&"listItem"===W.previousSibling.name||(this.editor.execute("outdentList"),E.preventDefault(),M.stop()))},{context:"li"}),this.listenTo(r.editing.view.document,"tab",(M,E)=>{const N=E.shiftKey?"outdentList":"indentList";this.editor.commands.get(N).isEnabled&&(r.execute(N),E.stopPropagation(),E.preventDefault(),M.stop())},{context:"li"})}afterInit(){const r=this.editor.commands,c=r.get("indent"),u=r.get("outdent");c&&c.registerChildCommand(r.get("indentList")),u&&u.registerChildCommand(r.get("outdentList"))}}function h3(m){let r=1;for(const c of m.getChildren())if("ul"==c.name||"ol"==c.name)for(const u of c.getChildren())r+=h3(u);return r}Ks("Ctrl+Enter");var jv=b(1199);function Gx(m,r){const c=(u,_,C)=>{if(!C.consumable.consume(_.item,u.name))return;const M=_.attributeNewValue,E=C.writer,N=C.mapper.toViewElement(_.item),G=[...N.getChildren()].find(dt=>dt.getCustomProperty("media-content"));E.remove(G);const W=m.getMediaViewElement(E,M,r);E.insert(E.createPositionAt(N,0),W)};return u=>{u.on("attribute:url:media",c)}}function c6(m,r,c,u){return m.createContainerElement("figure",{class:"media"},[r.getMediaViewElement(m,c,u),m.createSlot()])}function l6(m){const r=m.getSelectedElement();return r&&r.is("element","media")?r:null}function VA(m,r,c,u){m.change(_=>{const C=_.createElement("media",{url:r});m.insertObject(C,c,null,{setSelection:"on",findOptimalPosition:u?"auto":void 0})})}Io()(jv.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0}),Ks("Ctrl+Enter");class jx extends Ta{refresh(){const r=this.editor.model,c=r.document.selection,u=l6(c);this.value=u?u.getAttribute("url"):void 0,this.isEnabled=function(_){const C=_.getSelectedElement();return!!C&&"media"===C.name}(c)||function(_,C){let E=D4(_,C).start.parent;return E.isEmpty&&!C.schema.isLimit(E)&&(E=E.parent),C.schema.checkChild(E,"media")}(c,r)}execute(r){const c=this.editor.model,u=c.document.selection,_=l6(u);_?c.change(C=>{C.setAttribute("url",r,_)}):VA(c,r,u,!0)}}class g3{constructor(r,c){const u=c.providers,_=c.extraProviders||[],C=new Set(c.removeProviders),M=u.concat(_).filter(E=>{const N=E.name;return N?!C.has(N):(Tt("media-embed-no-provider-name",{provider:E}),!1)});this.locale=r,this.providerDefinitions=M}hasMedia(r){return!!this._getMedia(r)}getMediaViewElement(r,c,u){return this._getMedia(c).getViewElement(r,u)}_getMedia(r){if(!r)return new Jx(this.locale);r=r.trim();for(const c of this.providerDefinitions){const u=c.html,_=Ds(c.url);for(const C of _){const M=this._getUrlMatches(r,C);if(M)return new Jx(this.locale,r,M,u)}}return null}_getUrlMatches(r,c){let u=r.match(c);if(u)return u;let _=r.replace(/^https?:\/\//,"");return u=_.match(c),u||(_=_.replace(/^www\./,""),u=_.match(c),u||null)}}class Jx{constructor(r,c,u,_){this.url=this._getValidUrl(c),this._locale=r,this._match=u,this._previewRenderer=_}getViewElement(r,c){const u={};let _;if(c.renderForEditingView||c.renderMediaPreview&&this.url&&this._previewRenderer){this.url&&(u["data-oembed-url"]=this.url),c.renderForEditingView&&(u.class="ck-media__wrapper");const C=this._getPreviewHtml(c);_=r.createRawElement("div",u,(M,E)=>{E.setContentOf(M,C)})}else this.url&&(u.url=this.url),_=r.createEmptyElement(c.elementName,u);return r.setCustomProperty("media-content",!0,_),_}_getPreviewHtml(r){return this._previewRenderer?this._previewRenderer(this._match):this.url&&r.renderForEditingView?this._getPlaceholderHtml():""}_getPlaceholderHtml(){const r=new Ps,c=this._locale.t;return r.content='',r.viewBox="0 0 64 42",new wr({tag:"div",attributes:{class:"ck ck-reset_all ck-media__placeholder"},children:[{tag:"div",attributes:{class:"ck-media__placeholder__icon"},children:[r]},{tag:"a",attributes:{class:"ck-media__placeholder__url",target:"_blank",rel:"noopener noreferrer",href:this.url,"data-cke-tooltip-text":c("Open media in new tab")},children:[{tag:"span",attributes:{class:"ck-media__placeholder__url__text"},children:[this.url]}]}]}).render().outerHTML}_getValidUrl(r){return r?r.match(/^https?/)?r:"https://"+r:null}}var Qx=b(7442);Io()(Qx.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class Jv extends lo{constructor(r){super(r),r.config.define("mediaEmbed",{elementName:"oembed",providers:[{name:"dailymotion",url:/^dailymotion\.com\/video\/(\w+)/,html:c=>``},{name:"spotify",url:[/^open\.spotify\.com\/(artist\/\w+)/,/^open\.spotify\.com\/(album\/\w+)/,/^open\.spotify\.com\/(track\/\w+)/],html:c=>``},{name:"youtube",url:[/^(?:m\.)?youtube\.com\/watch\?v=([\w-]+)(?:&t=(\d+))?/,/^(?:m\.)?youtube\.com\/v\/([\w-]+)(?:\?t=(\d+))?/,/^youtube\.com\/embed\/([\w-]+)(?:\?start=(\d+))?/,/^youtu\.be\/([\w-]+)(?:\?t=(\d+))?/],html:c=>{const _=c[2];return``}},{name:"vimeo",url:[/^vimeo\.com\/(\d+)/,/^vimeo\.com\/[^/]+\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/album\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/channels\/[^/]+\/(\d+)/,/^vimeo\.com\/groups\/[^/]+\/videos\/(\d+)/,/^vimeo\.com\/ondemand\/[^/]+\/(\d+)/,/^player\.vimeo\.com\/video\/(\d+)/],html:c=>``},{name:"instagram",url:/^instagram\.com\/p\/(\w+)/},{name:"twitter",url:/^twitter\.com/},{name:"googleMaps",url:[/^google\.com\/maps/,/^goo\.gl\/maps/,/^maps\.google\.com/,/^maps\.app\.goo\.gl/]},{name:"flickr",url:/^flickr\.com/},{name:"facebook",url:/^facebook\.com/}]}),this.registry=new g3(r.locale,r.config.get("mediaEmbed"))}static get pluginName(){return"MediaEmbedEditing"}init(){const r=this.editor,c=r.model.schema,u=r.t,_=r.conversion,C=r.config.get("mediaEmbed.previewsInData"),M=r.config.get("mediaEmbed.elementName"),E=this.registry;r.commands.add("mediaEmbed",new jx(r)),c.register("media",{inheritAllFrom:"$blockObject",allowAttributes:["url"]}),_.for("dataDowncast").elementToStructure({model:"media",view:(N,{writer:G})=>{const W=N.getAttribute("url");return c6(G,E,W,{elementName:M,renderMediaPreview:!!W&&C})}}),_.for("dataDowncast").add(Gx(E,{elementName:M,renderMediaPreview:C})),_.for("editingDowncast").elementToStructure({model:"media",view:(N,{writer:G})=>{const W=N.getAttribute("url");return dt=c6(G,E,W,{elementName:M,renderForEditingView:!0}),Zt=G,ue=u("media widget"),Zt.setCustomProperty("media",!0,dt),uf(dt,Zt,{label:ue});var dt,Zt,ue}}),_.for("editingDowncast").add(Gx(E,{elementName:M,renderForEditingView:!0})),_.for("upcast").elementToElement({view:N=>["oembed",M].includes(N.name)&&N.getAttribute("url")?{name:!0}:null,model:(N,{writer:G})=>{const W=N.getAttribute("url");return E.hasMedia(W)?G.createElement("media",{url:W}):null}}).elementToElement({view:{name:"div",attributes:{"data-oembed-url":!0}},model:(N,{writer:G})=>{const W=N.getAttribute("data-oembed-url");return E.hasMedia(W)?G.createElement("media",{url:W}):null}}).add(N=>{N.on("element:figure",(G,W,dt)=>{if(!dt.consumable.consume(W.viewItem,{name:!0,classes:"media"}))return;const{modelRange:Zt,modelCursor:ue}=dt.convertChildren(W.viewItem,W.modelCursor);W.modelRange=Zt,W.modelCursor=ue,os(Zt.getItems())||dt.consumable.revert(W.viewItem,{name:!0,classes:"media"})})})}}const GA=/^(?:http(s)?:\/\/)?[\w-]+\.[\w-.~:/?#[\]@!$&'()*+,;=%]+$/;class jA extends lo{constructor(r){super(r),this._timeoutId=null,this._positionToInsert=null}static get requires(){return[gC,t_,UC]}static get pluginName(){return"AutoMediaEmbed"}init(){const r=this.editor,c=r.model.document,u=r.plugins.get("ClipboardPipeline");this.listenTo(u,"inputTransformation",()=>{const _=c.selection.getFirstRange(),C=Ql.fromPosition(_.start);C.stickiness="toPrevious";const M=Ql.fromPosition(_.end);M.stickiness="toNext",c.once("change:data",()=>{this._embedMediaBetweenPositions(C,M),C.detach(),M.detach()},{priority:"high"})}),r.commands.get("undo").on("execute",()=>{this._timeoutId&&(Mt.window.clearTimeout(this._timeoutId),this._positionToInsert.detach(),this._timeoutId=null,this._positionToInsert=null)},{priority:"high"})}_embedMediaBetweenPositions(r,c){const u=this.editor,_=u.plugins.get(Jv).registry,C=new Ad(r,c),M=C.getWalker({ignoreElementEnd:!0});let E="";for(const N of M)N.item.is("$textProxy")&&(E+=N.item.data);E=E.trim(),E.match(GA)&&_.hasMedia(E)&&u.commands.get("mediaEmbed").isEnabled?(this._positionToInsert=Ql.fromPosition(r),this._timeoutId=Mt.window.setTimeout(()=>{u.model.change(N=>{this._timeoutId=null,N.remove(C),C.detach();let G=null;"$graveyard"!==this._positionToInsert.root.rootName&&(G=this._positionToInsert),VA(u.model,E,G,!1),this._positionToInsert.detach(),this._positionToInsert=null}),u.plugins.get(t_).requestUndoOnBackspace()},100)):C.detach()}}var Wx=b(9292);Io()(Wx.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class yy extends aa{constructor(r,c){super(c);const u=c.t;this.focusTracker=new as,this.keystrokes=new jc,this.set("mediaURLInputValue",""),this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(u("Save"),fs.check,"ck-button-save"),this.saveButtonView.type="submit",this.saveButtonView.bind("isEnabled").to(this,"mediaURLInputValue",_=>!!_),this.cancelButtonView=this._createButton(u("Cancel"),fs.cancel,"ck-button-cancel","cancel"),this._focusables=new Fa,this._focusCycler=new ul({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this._validators=r,this.setTemplate({tag:"form",attributes:{class:["ck","ck-media-form","ck-responsive-form"],tabindex:"-1"},children:[this.urlInputView,this.saveButtonView,this.cancelButtonView]})}render(){super.render(),x({view:this}),[this.urlInputView,this.saveButtonView,this.cancelButtonView].forEach(c=>{this._focusables.add(c),this.focusTracker.add(c.element)}),this.keystrokes.listenTo(this.element);const r=c=>c.stopPropagation();this.keystrokes.set("arrowright",r),this.keystrokes.set("arrowleft",r),this.keystrokes.set("arrowup",r),this.keystrokes.set("arrowdown",r)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}get url(){return this.urlInputView.fieldView.element.value.trim()}set url(r){this.urlInputView.fieldView.element.value=r.trim()}isValid(){this.resetFormStatus();for(const r of this._validators){const c=r(this);if(c)return this.urlInputView.errorText=c,!1}return!0}resetFormStatus(){this.urlInputView.errorText=null,this.urlInputView.infoText=this._urlInputViewInfoDefault}_createUrlInput(){const r=this.locale.t,c=new Dr(this.locale,$2),u=c.fieldView;return this._urlInputViewInfoDefault=r("Paste the media URL in the input."),this._urlInputViewInfoTip=r("Tip: Paste the URL into the content to embed faster."),c.label=r("Media URL"),c.infoText=this._urlInputViewInfoDefault,u.on("input",()=>{c.infoText=u.element.value?this._urlInputViewInfoTip:this._urlInputViewInfoDefault,this.mediaURLInputValue=u.element.value.trim()}),c}_createButton(r,c,u,_){const C=new Hr(this.locale);return C.set({label:r,icon:c,tooltip:!0}),C.extendTemplate({attributes:{class:u}}),_&&C.delegate("execute").to(this,_),C}}class JA extends lo{static get requires(){return[Jv]}static get pluginName(){return"MediaEmbedUI"}init(){const r=this.editor,c=r.commands.get("mediaEmbed");r.ui.componentFactory.add("mediaEmbed",u=>{const _=D1(u);return this._setUpDropdown(_,c),_})}_setUpDropdown(r,c){const u=this.editor,_=u.t,C=r.buttonView,M=u.plugins.get(Jv).registry;r.once("change:isOpen",()=>{const E=new(A(yy))((N=u.t,G=M,[W=>{if(!W.url.length)return N("The URL must not be empty.")},W=>{if(!G.hasMedia(W.url))return N("This media URL is not supported.")}]),u.locale);var N,G;r.panelView.children.add(E),C.on("open",()=>{E.disableCssTransitions(),E.url=c.value||"",E.urlInputView.fieldView.select(),E.enableCssTransitions()},{priority:"low"}),r.on("submit",()=>{E.isValid()&&(u.execute("mediaEmbed",E.url),u.editing.view.focus())}),r.on("change:isOpen",()=>E.resetFormStatus()),r.on("cancel",()=>{u.editing.view.focus()}),E.delegate("submit","cancel").to(r),E.urlInputView.fieldView.bind("value").to(c,"value"),E.urlInputView.bind("isEnabled").to(c,"isEnabled")}),r.bind("isEnabled").to(c),C.set({label:_("Insert media"),icon:'',tooltip:!0})}}var QA=b(4652);function wy(m){if(m.startsWith("arabic-leading-zero"))return"decimal-leading-zero";switch(m){case"alpha-upper":return"upper-alpha";case"alpha-lower":return"lower-alpha";case"roman-upper":return"upper-roman";case"roman-lower":return"lower-roman";case"circle":case"disc":case"square":return m;default:return null}}function WA(m,r,c){const u=r.parent,_=c.createElement(m.type),C=u.getChildIndex(r)+1;return c.insertChild(C,_,u),m.style&&c.setStyle("list-style-type",m.style,_),m.startIndex&&m.startIndex>1&&c.setAttribute("start",m.startIndex,_),_}function $A(m){const r={},c=m.getStyle("mso-list");if(c){const u=c.match(/(^|\s{1,100})l(\d+)/i),_=c.match(/\s{0,100}lfo(\d+)/i),C=c.match(/\s{0,100}level(\d+)/i);u&&_&&C&&(r.id=u[2],r.order=_[1],r.indent=parseInt(C[1]))}return r}function Zy(m){return btoa(m.match(/\w{2}/g).map(r=>String.fromCharCode(parseInt(r,16))).join(""))}Io()(QA.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});const My=//i,h=/xmlns:o="urn:schemas-microsoft-com/i;class g{constructor(r){this.document=r}isActive(r){return My.test(r)||h.test(r)}execute(r){const{body:c,stylesString:u}=r._parsedData;(function $x(m,r){if(!m.childCount)return;const c=new X1(m.document),u=function(M,E){const N=E.createRangeIn(M),G=new ms({name:/^p|h\d+$/,styles:{"mso-list":/.*/}}),W=[];for(const dt of N)if("elementStart"===dt.type&&G.match(dt.item)){const Zt=$A(dt.item);W.push({element:dt.item,id:Zt.id,order:Zt.order,indent:Zt.indent})}return W}(m,c);if(!u.length)return;let _=null,C=1;u.forEach((M,E)=>{const N=function(xe,Ee){if(!xe)return!0;if(xe.id!==Ee.id)return Ee.indent-xe.indent!=1;const ln=Ee.element.previousSibling;return!ln||!((Mn=ln).is("element","ol")||Mn.is("element","ul"));var Mn}(u[E-1],M),W=(Zt=M,(dt=N?null:u[E-1])?Zt.indent-dt.indent:Zt.indent-1);var dt,Zt;if(N&&(_=null,C=1),!_||0!==W){const xe=function(Ee,ln){const di=/mso-level-number-format:([^;]{0,100});/gi,Ri=/mso-level-start-at:\s{0,100}([0-9]{0,10})\s{0,100};/gi,Jo=new RegExp(`@list l${Ee.id}:level${Ee.indent}\\s*({[^}]*)`,"gi").exec(ln);let Da="decimal",Ts="ol",$r=null;if(Jo&&Jo[1]){const Sl=di.exec(Jo[1]);if(Sl&&Sl[1]&&(Da=Sl[1].trim(),Ts="bullet"!==Da&&"image"!==Da?"ol":"ul"),"bullet"===Da){const fl=function(g6){const c2=function(vf){if(vf.getChild(0).is("$text"))return null;for(const l2 of vf.getChildren()){if(!l2.is("element","span"))continue;const y3=l2.getChild(0);if(y3)return y3.is("$text")?y3:y3.getChild(0)}return null}(g6);if(!c2)return null;const Yp=c2._data;return"o"===Yp?"circle":"\xb7"===Yp?"disc":"\xa7"===Yp?"square":null}(Ee.element);fl&&(Da=fl)}else{const fl=Ri.exec(Jo[1]);fl&&fl[1]&&($r=parseInt(fl[1]))}}return{type:Ts,startIndex:$r,style:wy(Da)}}(M,r);if(_)if(M.indent>C){const Ee=_.getChild(_.childCount-1),ln=Ee.getChild(Ee.childCount-1);_=WA(xe,ln,c),C+=1}else M.indentC.indexOf(xe)>-1)?W.push(Zt):Zt.getAttribute("src")||W.push(Zt)}for(const dt of W)E.remove(dt)})(u,m,c),function(C,M,E){const N=E.createRangeIn(M),G=[];for(const Zt of N)if("elementStart"==Zt.type&&Zt.item.is("element","v:shape")){const ue=Zt.item.getAttribute("id");if(C.includes(ue))continue;W(Zt.item.parent.getChildren(),ue)||G.push(Zt.item)}for(const Zt of G){const ue={src:dt(Zt)};Zt.hasAttribute("alt")&&(ue.alt=Zt.getAttribute("alt"));const xe=E.createElement("img",ue);E.insertChild(Zt.index+1,xe,Zt.parent)}function W(Zt,ue){for(const xe of Zt)if(xe.is("element")&&("img"==xe.name&&xe.getAttribute("v:shapes")==ue||W(xe.getChildren(),ue)))return!0;return!1}function dt(Zt){for(const ue of Zt.getChildren())if(ue.is("element")&&ue.getAttribute("src"))return ue.getAttribute("src")}}(u,m,c),function(C,M){const E=M.createRangeIn(C),N=new ms({name:/v:(.+)/}),G=[];for(const W of E)"elementStart"==W.type&&N.match(W.item)&&G.push(W.item);for(const W of G)M.remove(W)}(m,c);const _=function(C,M){const E=M.createRangeIn(C),N=new ms({name:"img"}),G=[];for(const W of E)W.item.is("element")&&N.match(W.item)&&W.item.getAttribute("src").startsWith("file://")&&G.push(W.item);return G}(m,c);_.length&&function(C,M,E){if(C.length===M.length)for(let N=0;NM.is("element")&&!u.includes(M.name)&&!_.includes(M.name),{direction:r}),"forward"==r?C.nodeAfter:C.nodeBefore}function O(m,r){return!!m&&m.is("element")&&r.includes(m.name)}const q=/id=("|')docs-internal-guid-[-0-9a-f]+("|')/i;class V{constructor(r){this.document=r}isActive(r){return q.test(r)}execute(r){const c=new X1(this.document),{body:u}=r._parsedData;(function(_,C){for(const M of _.getChildren())if(M.is("element","b")&&"normal"===M.getStyle("font-weight")){const E=_.getChildIndex(M);C.remove(M),C.insertChild(E,M.getChildren(),_)}})(u,c),function(_,C){for(const M of C.createRangeIn(_)){const E=M.item;if(E.is("element","li")){const N=E.getChild(0);N&&N.is("element","p")&&C.unwrapElement(N)}}}(u,c),function(_,C){const M=new em(C.document.stylesProcessor),E=new D_(M,{renderingMode:"data"}),N=E.blockElements,G=E.inlineObjectElements,W=[];for(const dt of C.createRangeIn(_)){const Zt=dt.item;if(Zt.is("element","br")){const ue=w(Zt,"forward",C,{blockElements:N,inlineObjectElements:G}),xe=w(Zt,"backward",C,{blockElements:N,inlineObjectElements:G}),Ee=O(ue,N);(O(xe,N)||Ee)&&W.push(Zt)}}for(const dt of W)dt.hasClass("Apple-interchange-newline")?C.remove(dt):C.replace(dt,C.createElement("p"))}(u,c),r.content=u}}const ut=/(\s+)<\/span>/g,(r,c)=>1===c.length?" ":Array(c.length+1).join("\xa0 ").substr(0,c.length))}function Ge(m,r,c,u,_=1){null!=r&&null!=_&&r>_?u.setAttribute(m,r,c):u.removeAttribute(m,c)}function Cn(m,r,c={}){const u=m.createElement("tableCell",c);return m.insertElement("paragraph",u),m.insert(u,r),u}function ai(m,r){const u=parseInt(r.parent.parent.getAttribute("headingColumns")||"0"),{column:_}=m.getCellLocation(r);return!!u&&_{r.on(`element:${m}`,(c,u,{writer:_})=>{if(!u.modelRange)return;const C=u.modelRange.start.nodeAfter,M=_.createPositionAt(C,0);if(u.viewItem.isEmpty)return void _.insertElement("paragraph",M);const E=Array.from(C.getChildren());if(E.every(N=>N.is("element","$marker"))){const N=_.createElement("paragraph");_.insert(N,_.createPositionAt(C,0));for(const G of E)_.move(_.createRangeOn(G),_.createPositionAt(N,"end"))}},{priority:"low"})}}function yo(m){let r=0,c=0;const u=Array.from(m.getChildren()).filter(_=>"th"===_.name||"td"===_.name);for(;c1||M>1)&&this._recordSpans(_,M,C),this._shouldSkipSlot()||(c=this._formatOutValue(_)),this._nextCellAtColumn=this._column+C}return this._column++,this._column==this._nextCellAtColumn&&this._cellIndex++,c||this.next()}skipRow(r){this._skipRows.add(r)}_advanceToNextRow(){return this._row++,this._rowIndex++,this._column=0,this._cellIndex=0,this._nextCellAtColumn=-1,this.next()}_isOverEndRow(){return void 0!==this._endRow&&this._row>this._endRow}_isOverEndColumn(){return void 0!==this._endColumn&&this._column>this._endColumn}_formatOutValue(r,c=this._row,u=this._column){return{done:!1,value:new ma(this,r,c,u)}}_shouldSkipSlot(){return this._skipRows.has(this._row)||this._rowthis._endColumn}_getSpanned(){const r=this._spannedCells.get(this._row);return r&&r.get(this._column)||null}_recordSpans(r,c,u){const _={cell:r,row:this._row,column:this._column};for(let C=this._row;C0&&!this._jumpedToStartRow}_jumpToNonSpannedRowClosestToStartRow(){const r=this._getRowLength(0);for(let c=this._startRow;!this._jumpedToStartRow;c--)r===this._getRowLength(c)&&(this._row=c,this._rowIndex=c,this._jumpedToStartRow=!0)}_getRowLength(r){return[...this._table.getChild(r).getChildren()].reduce((c,u)=>c+parseInt(u.getAttribute("colspan")||"1"),0)}}class ma{constructor(r,c,u,_){this.cell=c,this.row=r._row,this.column=r._column,this.cellAnchorRow=u,this.cellAnchorColumn=_,this._cellIndex=r._cellIndex,this._rowIndex=r._rowIndex,this._table=r._table}get isAnchor(){return this.row===this.cellAnchorRow&&this.column===this.cellAnchorColumn}get cellWidth(){return parseInt(this.cell.getAttribute("colspan")||"1")}get cellHeight(){return parseInt(this.cell.getAttribute("rowspan")||"1")}get rowIndex(){return this._rowIndex}getPositionBefore(){return this._table.root.document.model.createPositionAt(this._table.getChild(this.row),this._cellIndex)}}function wa(m,r){return(c,{writer:u})=>{const _=c.getAttribute("headingRows")||0,C=u.createContainerElement("table",null,[]),M=u.createContainerElement("figure",{class:"table"},C);_>0&&u.insert(u.createPositionAt(C,"end"),u.createContainerElement("thead",null,u.createSlot(E=>E.is("element","tableRow")&&E.index<_))),_E.is("element","tableRow")&&E.index>=_)));for(const{positionOffset:E,filter:N}of r.additionalSlots)u.insert(u.createPositionAt(C,E),u.createSlot(N));return u.insert(u.createPositionAt(C,"after"),u.createSlot(E=>!E.is("element","tableRow")&&!r.additionalSlots.some(({filter:N})=>N(E)))),r.asWidget?((N=u).setCustomProperty("table",!0,E=M),uf(E,N,{hasSelectionHandle:!0})):M;var E,N}}function ao(m={}){return(r,{writer:c})=>{const u=r.parent,_=u.parent,C=_.getChildIndex(u),M=new so(_,{row:C}),E=_.getAttribute("headingRows")||0,N=_.getAttribute("headingColumns")||0;let G=null;for(const W of M)if(W.cell==r){const dt=W.row{if(!r.parent.is("element","tableCell")||!Br(r))return null;if(m.asWidget)return c.createContainerElement("span",{class:"ck-table-bogus-paragraph"});{const u=c.createContainerElement("p");return c.setCustomProperty("dataPipeline:transparentRendering",!0,u),u}}}function Br(m){return 1==m.parent.childCount&&!!m.getAttributeKeys().next().done}class Tc extends Ta{refresh(){const r=this.editor.model;this.isEnabled=function(_,C){const M=_.getFirstPosition().parent;return C.checkChild(M===M.root?M:M.parent,"table")}(r.document.selection,r.schema)}execute(r={}){const c=this.editor,u=c.model,_=c.plugins.get("TableUtils"),C=c.config.get("table.defaultHeadings.rows"),M=c.config.get("table.defaultHeadings.columns");void 0===r.headingRows&&C&&(r.headingRows=C),void 0===r.headingColumns&&M&&(r.headingColumns=M),u.change(E=>{const N=_.createTable(E,r);u.insertObject(N,null,null,{findOptimalPosition:"auto"}),E.setSelection(E.createPositionAt(N.getNodeByPath([0,0,0]),0))})}}class r2 extends Ta{constructor(r,c={}){super(r),this.order=c.order||"below"}refresh(){const r=this.editor.model.document.selection,c=!!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(r).length;this.isEnabled=c}execute(){const r=this.editor,c=r.model.document.selection,u=r.plugins.get("TableUtils"),_="above"===this.order,C=u.getSelectionAffectedTableCells(c),M=u.getRowIndexes(C),E=_?M.first:M.last,N=C[0].findAncestor("table");u.insertRows(N,{at:_?E:E+1,copyStructureFromAbove:!_})}}class u6 extends Ta{constructor(r,c={}){super(r),this.order=c.order||"right"}refresh(){const r=this.editor.model.document.selection,c=!!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(r).length;this.isEnabled=c}execute(){const r=this.editor,c=r.model.document.selection,u=r.plugins.get("TableUtils"),_="left"===this.order,C=u.getSelectionAffectedTableCells(c),M=u.getColumnIndexes(C),E=_?M.first:M.last,N=C[0].findAncestor("table");u.insertColumns(N,{columns:1,at:_?E:E+1})}}class v3 extends Ta{constructor(r,c={}){super(r),this.direction=c.direction||"horizontally"}refresh(){const r=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=1===r.length}execute(){const r=this.editor.plugins.get("TableUtils"),c=r.getSelectionAffectedTableCells(this.editor.model.document.selection)[0];"horizontally"===this.direction?r.splitCellHorizontally(c,2):r.splitCellVertically(c,2)}}function d6(m,r,c){const{startRow:u,startColumn:_,endRow:C,endColumn:M}=r,E=c.createElement("table"),N=C-u+1;for(let W=0;W0&&Ge("headingRows",Ee-Zt,W,xe,0);const ln=parseInt(dt.getAttribute("headingColumns")||"0");ln>0&&Ge("headingColumns",ln-ue,W,xe,0)}(E,m,u,_,c),E}function p6(m,r,c=0){const u=[],_=new so(m,{startRow:c,endRow:r-1});for(const C of _){const{row:M,cellHeight:E}=C;M1&&(E.rowspan=N);const G=parseInt(m.getAttribute("colspan")||"1");G>1&&(E.colspan=G);const W=C+M,dt=[...new so(_,{startRow:C,endRow:W,includeAllSlots:!0})];let Zt,ue=null;for(const xe of dt){const{row:Ee,column:ln,cell:Mn}=xe;Mn===m&&void 0===Zt&&(Zt=ln),void 0!==Zt&&Zt===ln&&Ee===W&&(ue=Cn(c,xe.getPositionBefore(),E))}return Ge("rowspan",M,m,c),ue}function _6(m,r){const c=[],u=new so(m);for(const _ of u){const{column:C,cellWidth:M}=_;C1&&(C.colspan=M);const E=parseInt(m.getAttribute("rowspan")||"1");E>1&&(C.rowspan=E);const N=Cn(u,u.createPositionAfter(m),C);return Ge("colspan",_,m,u),N}function b3(m,r,c,u,_,C){const M=parseInt(m.getAttribute("colspan")||"1"),E=parseInt(m.getAttribute("rowspan")||"1");c+M-1>_&&Ge("colspan",_-c+1,m,C,1),r+E-1>u&&Ge("rowspan",u-r+1,m,C,1)}function C3(m,r){const c=r.getColumns(m),u=new Array(c).fill(0);for(const{column:C}of new so(m))u[C]++;const _=u.reduce((C,M,E)=>M?C:[...C,E],[]);return _.length>0&&(r.removeColumns(m,{at:_[_.length-1]}),!0)}function Kx(m,r){const c=[],u=r.getRows(m);for(let _=0;_0&&(r.removeRows(m,{at:c[c.length-1]}),!0)}function KA(m,r){C3(m,r)||Kx(m,r)}function XA(m,r){const c=Array.from(new so(m,{startColumn:r.firstColumn,endColumn:r.lastColumn,row:r.lastRow}));return c.every(({cellHeight:_})=>1===_)?r.lastRow:r.lastRow+(c[0].cellHeight-1)}function ky(m,r){const c=Array.from(new so(m,{startRow:r.firstRow,endRow:r.lastRow,column:r.lastColumn}));return c.every(({cellWidth:_})=>1===_)?r.lastColumn:r.lastColumn+(c[0].cellWidth-1)}class Qv extends Ta{constructor(r,c){super(r),this.direction=c.direction,this.isHorizontal="right"==this.direction||"left"==this.direction}refresh(){const r=this._getMergeableCell();this.value=r,this.isEnabled=!!r}execute(){const r=this.editor.model,c=r.document,u=this.editor.plugins.get("TableUtils").getTableCellsContainingSelection(c.selection)[0],_=this.value,C=this.direction;r.change(M=>{const E="right"==C||"down"==C,N=E?u:_,G=E?_:u,W=G.parent;var Ee,ln,Mn;ln=N,Mn=M,Dy(Ee=G)||(Dy(ln)&&Mn.remove(Mn.createRangeIn(ln)),Mn.move(Mn.createRangeIn(Ee),Mn.createPositionAt(ln,"end"))),Mn.remove(Ee);const dt=this.isHorizontal?"colspan":"rowspan",Zt=parseInt(u.getAttribute(dt)||"1"),ue=parseInt(_.getAttribute(dt)||"1");M.setAttribute(dt,Zt+ue,N),M.setSelection(M.createRangeIn(N));const xe=this.editor.plugins.get("TableUtils");KA(W.findAncestor("table"),xe)})}_getMergeableCell(){const r=this.editor.model.document,c=this.editor.plugins.get("TableUtils"),u=c.getTableCellsContainingSelection(r.selection)[0];if(!u)return;const _=this.isHorizontal?function(E,N,G){const Zt="right"==N?E.nextSibling:E.previousSibling,ue=(E.parent.parent.getAttribute("headingColumns")||0)>0;if(!Zt)return;const xe="right"==N?E:Zt,Ee="right"==N?Zt:E,{column:ln}=G.getCellLocation(xe),{column:Mn}=G.getCellLocation(Ee),di=parseInt(xe.getAttribute("colspan")||"1"),Ri=ai(G,xe),Jo=ai(G,Ee);return ue&&Ri!=Jo?void 0:ln+di===Mn?Zt:void 0}(u,this.direction,c):function(E,N,G){const W=E.parent,dt=W.parent,Zt=dt.getChildIndex(W);if("down"==N&&Zt===G.getRows(dt)-1||"up"==N&&0===Zt)return null;const ue=parseInt(E.getAttribute("rowspan")||"1"),xe=dt.getAttribute("headingRows")||0;if(xe&&("down"==N&&Zt+ue===xe||"up"==N&&Zt===xe))return null;const Mn=parseInt(E.getAttribute("rowspan")||"1"),di="down"==N?Zt+Mn:Zt,Ri=[...new so(dt,{endRow:di})],Da=Ri.find($r=>$r.cell===E).column,Ts=Ri.find(({row:$r,cellHeight:Sl,column:fl})=>fl===Da&&("down"==N?$r===di:di===$r+Sl));return Ts&&Ts.cell?Ts.cell:null}(u,this.direction,c);if(!_)return;const C=this.isHorizontal?"rowspan":"colspan",M=parseInt(u.getAttribute(C)||"1");return parseInt(_.getAttribute(C)||"1")===M?_:void 0}}function Dy(m){const r=m.getChild(0);return 1==m.childCount&&r.is("element","paragraph")&&r.isEmpty}class Py extends Ta{refresh(){const r=this.editor.plugins.get("TableUtils"),c=r.getSelectionAffectedTableCells(this.editor.model.document.selection),u=c[0];if(u){const _=u.findAncestor("table"),C=r.getRows(_)-1,M=r.getRowIndexes(c);this.isEnabled=!(0===M.first&&M.last===C)}else this.isEnabled=!1}execute(){const r=this.editor.model,c=this.editor.plugins.get("TableUtils"),u=c.getSelectionAffectedTableCells(r.document.selection),_=c.getRowIndexes(u),C=u[0],M=C.findAncestor("table"),E=c.getCellLocation(C).column;r.change(N=>{c.removeRows(M,{at:_.first,rows:_.last-_.first+1});const W=function(dt,Zt,ue,xe){const Ee=dt.getChild(Math.min(Zt,xe-1));let ln=Ee.getChild(0),Mn=0;for(const di of Ee.getChildren()){if(Mn>ue)return ln;ln=di,Mn+=parseInt(di.getAttribute("colspan")||"1")}return ln}(M,_.first,E,c.getRows(M));N.setSelection(N.createPositionAt(W,0))})}}class Sy extends Ta{refresh(){const r=this.editor.plugins.get("TableUtils"),c=r.getSelectionAffectedTableCells(this.editor.model.document.selection),u=c[0];if(u){const _=u.findAncestor("table"),C=r.getColumns(_),{first:M,last:E}=r.getColumnIndexes(c);this.isEnabled=E-MN.cell===c).column,last:C.find(N=>N.cell===u).column},E=(N=C,G=c,W=u,dt=M,parseInt(W.getAttribute("colspan")||"1")>1?W:G.previousSibling||W.nextSibling?W.nextSibling||G.previousSibling:dt.first?N.reverse().find(({column:ue})=>ueue>dt.last).cell);var N,G,W,dt;this.editor.model.change(N=>{r.removeColumns(_,{at:M.first,columns:M.last-M.first+1}),N.setSelection(N.createPositionAt(E,0))})}}class QT extends Ta{refresh(){const u=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection),_=u.length>0;this.isEnabled=_,this.value=_&&u.every(C=>this._isInHeading(C,C.parent.parent))}execute(r={}){if(r.forceValue===this.value)return;const c=this.editor.plugins.get("TableUtils"),u=this.editor.model,_=c.getSelectionAffectedTableCells(u.document.selection),C=_[0].findAncestor("table"),{first:M,last:E}=c.getRowIndexes(_),N=this.value?M:E+1,G=C.getAttribute("headingRows")||0;u.change(W=>{if(N){const dt=p6(C,N,N>G?G:0);for(const{cell:Zt}of dt)m6(Zt,N,W)}Ge("headingRows",N,C,W,0)})}_isInHeading(r,c){const u=parseInt(c.getAttribute("headingRows")||"0");return!!u&&r.parent.index0;this.isEnabled=_,this.value=_&&u.every(C=>ai(c,C))}execute(r={}){if(r.forceValue===this.value)return;const c=this.editor.plugins.get("TableUtils"),u=this.editor.model,_=c.getSelectionAffectedTableCells(u.document.selection),C=_[0].findAncestor("table"),{first:M,last:E}=c.getColumnIndexes(_),N=this.value?M:E+1;u.change(G=>{if(N){const W=_6(C,N);for(const{cell:dt,column:Zt}of W)f6(dt,Zt,N,G)}Ge("headingColumns",N,C,G,0)})}}class Xd extends lo{static get pluginName(){return"TableUtils"}init(){this.decorate("insertColumns"),this.decorate("insertRows")}getCellLocation(r){const c=r.parent,u=c.parent,_=u.getChildIndex(c),C=new so(u,{row:_});for(const{cell:M,row:E,column:N}of C)if(M===r)return{row:E,column:N}}createTable(r,c){const u=r.createElement("table"),_=c.rows||2,C=c.columns||2;return Wn(r,u,0,_,C),c.headingRows&&Ge("headingRows",Math.min(c.headingRows,_),u,r,0),c.headingColumns&&Ge("headingColumns",Math.min(c.headingColumns,C),u,r,0),u}insertRows(r,c={}){const u=this.editor.model,_=c.at||0,C=c.rows||1,M=void 0!==c.copyStructureFromAbove,E=c.copyStructureFromAbove?_-1:_,N=this.getRows(r),G=this.getColumns(r);if(_>N)throw new it("tableutils-insertrows-insert-out-of-range",this,{options:c});u.change(W=>{const dt=r.getAttribute("headingRows")||0;if(dt>_&&Ge("headingRows",dt+C,r,W,0),!M&&(0===_||_===N))return void Wn(W,r,_,C,G);const Zt=M?Math.max(_,E):_,ue=new so(r,{endRow:Zt}),xe=new Array(G).fill(1);for(const{row:Ee,column:ln,cellHeight:Mn,cellWidth:di,cell:Ri}of ue){const Jo=Ee+Mn-1,Da=Ee<=E&&E<=Jo;Ee<_&&_<=Jo?(W.setAttribute("rowspan",Mn+C,Ri),xe[ln]=-di):M&&Da&&(xe[ln]=di)}for(let Ee=0;Ee0&&Cn(W,Ri,di>1?{colspan:di}:void 0),Mn+=Math.abs(di)-1}}})}insertColumns(r,c={}){const _=c.at||0,C=c.columns||1;this.editor.model.change(M=>{const E=r.getAttribute("headingColumns");_C-1)throw new it("tableutils-removerows-row-index-out-of-range",this,{table:r,options:c});u.change(N=>{const G={first:M,last:E},{cellsToMove:W,cellsToTrim:dt}=function(Zt,{first:ue,last:xe}){const Ee=new Map,ln=[];for(const{row:Mn,column:di,cellHeight:Ri,cell:Jo}of new so(Zt,{endRow:xe})){const Da=Mn+Ri-1;if(Mn>=ue&&Mn<=xe&&Da>xe&&Ee.set(di,{cell:Jo,rowspan:Ri-(xe-Mn+1)}),Mn=ue){let Ts;Ts=Da>=xe?xe-ue+1:Da-ue+1,ln.push({cell:Jo,rowspan:Ri-Ts})}}return{cellsToMove:Ee,cellsToTrim:ln}}(r,G);W.size&&function(Zt,ue,xe,Ee){const Mn=[...new so(Zt,{includeAllSlots:!0,row:ue})],di=Zt.getChild(ue);let Ri;for(const{column:Jo,cell:Da,isAnchor:Ts}of Mn)if(xe.has(Jo)){const{cell:$r,rowspan:Sl}=xe.get(Jo),fl=Ri?Ee.createPositionAfter(Ri):Ee.createPositionAt(di,0);Ee.move(Ee.createRangeOn($r),fl),Ge("rowspan",Sl,$r,Ee),Ri=$r}else Ts&&(Ri=Da)}(r,E+1,W,N);for(let Zt=E;Zt>=M;Zt--)N.remove(r.getChild(Zt));for(const{rowspan:Zt,cell:ue}of dt)Ge("rowspan",Zt,ue,N);(function(Zt,{first:ue,last:xe},Ee){const ln=Zt.getAttribute("headingRows")||0;ue{!function(G,W,dt){const Zt=G.getAttribute("headingColumns")||0;if(Zt&&W.firstc.is("element","tableColumnGroup"))}(m);return r?Array.from(r.getChildren()):[]}(r);for(let G=M;G>=_;G--){for(const{cell:W,column:dt,cellWidth:Zt}of[...new so(r)])dt<=G&&Zt>1&&dt+Zt>G?Ge("colspan",Zt-1,W,E):dt===G&&E.remove(W);if(N[G]){const W=0===G?N[1]:N[G-1],dt=parseFloat(N[G].getAttribute("columnWidth")),Zt=parseFloat(W.getAttribute("columnWidth"));E.remove(N[G]),E.setAttribute("columnWidth",dt+Zt+"%",W)}}Kx(r,this)||C3(r,this)})}splitCellVertically(r,c=2){const u=this.editor.model,_=r.parent.parent,C=parseInt(r.getAttribute("rowspan")||"1"),M=parseInt(r.getAttribute("colspan")||"1");u.change(E=>{if(M>1){const{newCellsSpan:N,updatedSpan:G}=Ly(M,c);Ge("colspan",G,r,E);const W={};N>1&&(W.colspan=N),C>1&&(W.rowspan=C),h6(M>c?c-1:M-1,E,E.createPositionAfter(r),W)}if(Mxe===r),dt=G.filter(({cell:xe,cellWidth:Ee,column:ln})=>xe!==r&&ln===W||lnW);for(const{cell:xe,cellWidth:Ee}of dt)E.setAttribute("colspan",Ee+N,xe);const Zt={};C>1&&(Zt.rowspan=C),h6(N,E,E.createPositionAfter(r),Zt);const ue=_.getAttribute("headingColumns")||0;ue>W&&Ge("headingColumns",ue+N,_,E)}})}splitCellHorizontally(r,c=2){const u=this.editor.model,_=r.parent,C=_.parent,M=C.getChildIndex(_),E=parseInt(r.getAttribute("rowspan")||"1"),N=parseInt(r.getAttribute("colspan")||"1");u.change(G=>{if(E>1){const W=[...new so(C,{startRow:M,endRow:M+E-1,includeAllSlots:!0})],{newCellsSpan:dt,updatedSpan:Zt}=Ly(E,c);Ge("rowspan",Zt,r,G);const{column:ue}=W.find(({cell:Ee})=>Ee===r),xe={};dt>1&&(xe.rowspan=dt),N>1&&(xe.colspan=N);for(const Ee of W){const{column:ln,row:Mn}=Ee;Mn>=M+Zt&&ln===ue&&(Mn+M+Zt)%dt==0&&h6(1,G,Ee.getPositionBefore(),xe)}}if(EM&&G.setAttribute("rowspan",Ee+W,xe);const Zt={};N>1&&(Zt.colspan=N),Wn(G,C,M+1,W,1,Zt);const ue=C.getAttribute("headingRows")||0;ue>M&&Ge("headingRows",ue+W,C,G)}})}getColumns(r){return[...r.getChild(0).getChildren()].reduce((c,u)=>c+parseInt(u.getAttribute("colspan")||"1"),0)}getRows(r){return Array.from(r.getChildren()).reduce((c,u)=>u.is("element","tableRow")?c+1:c,0)}createTableWalker(r,c={}){return new so(r,c)}getSelectedTableCells(r){const c=[];for(const u of this.sortRanges(r.getRanges())){const _=u.getContainedElement();_&&_.is("element","tableCell")&&c.push(_)}return c}getTableCellsContainingSelection(r){const c=[];for(const u of r.getRanges()){const _=u.start.findAncestor("tableCell");_&&c.push(_)}return c}getSelectionAffectedTableCells(r){const c=this.getSelectedTableCells(r);return c.length?c:this.getTableCellsContainingSelection(r)}getRowIndexes(r){const c=r.map(u=>u.parent.index);return this._getFirstLastIndexesObject(c)}getColumnIndexes(r){const c=r[0].findAncestor("table"),u=[...new so(c)].filter(_=>r.includes(_.cell)).map(_=>_.column);return this._getFirstLastIndexesObject(u)}isSelectionRectangular(r){if(r.length<2||!this._areCellInTheSameTableSection(r))return!1;const c=new Set,u=new Set;let _=0;for(const M of r){const{row:E,column:N}=this.getCellLocation(M),G=parseInt(M.getAttribute("rowspan"))||1,W=parseInt(M.getAttribute("colspan"))||1;c.add(E),u.add(N),G>1&&c.add(E+G-1),W>1&&u.add(N+W-1),_+=G*W}return function(M,E){const N=Array.from(M.values()),G=Array.from(E.values());return(Math.max(...N)-Math.min(...N)+1)*(Math.max(...G)-Math.min(...G)+1)}(c,u)==_}sortRanges(r){return Array.from(r).sort(Oy)}_getFirstLastIndexesObject(r){const c=r.sort((u,_)=>u-_);return{first:c[0],last:c[c.length-1]}}_areCellInTheSameTableSection(r){const c=r[0].findAncestor("table"),u=this.getRowIndexes(r),_=parseInt(c.getAttribute("headingRows"))||0;if(!this._areIndexesInSameSection(u,_))return!1;const C=this.getColumnIndexes(r),M=parseInt(c.getAttribute("headingColumns"))||0;return this._areIndexesInSameSection(C,M)}_areIndexesInSameSection({first:r,last:c},u){return r{const _=c.getSelectedTableCells(r.document.selection),C=_.shift(),{mergeWidth:M,mergeHeight:E}=function(N,G,W){let dt=0,Zt=0;for(const Mn of G){const{row:di,column:Ri}=W.getCellLocation(Mn);dt=Fy(Mn,Ri,dt,"colspan"),Zt=Fy(Mn,di,Zt,"rowspan")}const{row:ue,column:xe}=W.getCellLocation(N);return{mergeWidth:dt-xe,mergeHeight:Zt-ue}}(C,_,c);Ge("colspan",M,C,u),Ge("rowspan",E,C,u);for(const N of _)XT(N,C,u);KA(C.findAncestor("table"),c),u.setSelection(C,"in")})}}function XT(m,r,c){Ey(m)||(Ey(r)&&c.remove(c.createRangeIn(r)),c.move(c.createRangeIn(m),c.createPositionAt(r,"end"))),c.remove(m)}function Ey(m){const r=m.getChild(0);return 1==m.childCount&&r.is("element","paragraph")&&r.isEmpty}function Fy(m,r,c,u){const _=parseInt(m.getAttribute(u)||"1");return Math.max(c,r+_)}class t7 extends Ta{constructor(r){super(r),this.affectsData=!1}refresh(){const r=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=r.length>0}execute(){const r=this.editor.model,c=this.editor.plugins.get("TableUtils"),u=c.getSelectionAffectedTableCells(r.document.selection),_=c.getRowIndexes(u),C=u[0].findAncestor("table"),M=[];for(let E=_.first;E<=_.last;E++)for(const N of C.getChild(E).getChildren())M.push(r.createRangeOn(N));r.change(E=>{E.setSelection(M)})}}class Iy extends Ta{constructor(r){super(r),this.affectsData=!1}refresh(){const r=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=r.length>0}execute(){const r=this.editor.plugins.get("TableUtils"),c=this.editor.model,u=r.getSelectionAffectedTableCells(c.document.selection),_=u[0],C=u.pop(),M=_.findAncestor("table"),E=r.getCellLocation(_),N=r.getCellLocation(C),G=Math.min(E.column,N.column),W=Math.max(E.column,N.column),dt=[];for(const Zt of new so(M,{startColumn:G,endColumn:W}))dt.push(c.createRangeOn(Zt.cell));c.change(Zt=>{Zt.setSelection(dt)})}}function e9(m,r){let c=!1;const u=function(_){const C=parseInt(_.getAttribute("headingRows")||"0"),M=Array.from(_.getChildren()).reduce((N,G)=>G.is("element","tableRow")?N+1:N,0),E=[];for(const{row:N,cell:G,cellHeight:W}of new so(_)){if(W<2)continue;const dt=Ndt&&E.push({cell:G,rowspan:dt-N})}return E}(m);if(u.length){c=!0;for(const _ of u)Ge("rowspan",_.rowspan,_.cell,r,1)}return c}function e7(m,r){let c=!1;const u=function(E){const N=new Array(E.childCount).fill(0);for(const{rowIndex:G}of new so(E,{includeAllSlots:!0}))N[G]++;return N}(m),_=[];for(const[E,N]of u.entries())!N&&m.getChild(E).is("element","tableRow")&&_.push(E);if(_.length){c=!0;for(const E of _.reverse())r.remove(m.getChild(E)),u.splice(E,1)}const C=u.filter((E,N)=>m.getChild(N).is("element","tableRow")),M=C[0];if(!C.every(E=>E===M)){const E=C.reduce((N,G)=>G>N?G:N,0);for(const[N,G]of C.entries()){const W=E-G;if(W){for(let dt=0;dtu.is("$text"));for(const u of c)r.wrap(r.createRangeOn(u),"paragraph");return!!c.length}function a9(m){return!!m.position.parent.is("element","tableCell")&&("insert"==m.type&&"$text"==m.name||"remove"==m.type)}function r9(m,r){if(!m.is("element","paragraph"))return!1;const c=r.toViewElement(m);return!!c&&Br(m)!==c.is("element","span")}var qy=b(3881);Io()(qy.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class Ry extends lo{constructor(r){super(r),this._additionalSlots=[]}static get pluginName(){return"TableEditing"}static get requires(){return[Xd]}init(){const r=this.editor,c=r.model,u=c.schema,_=r.conversion,C=r.plugins.get(Xd);u.register("table",{inheritAllFrom:"$blockObject",allowAttributes:["headingRows","headingColumns"]}),u.register("tableRow",{allowIn:"table",isLimit:!0}),u.register("tableCell",{allowContentOf:"$container",allowIn:"tableRow",allowAttributes:["colspan","rowspan"],isLimit:!0,isSelectable:!0}),_.for("upcast").add(M=>{M.on("element:figure",(E,N,G)=>{if(!G.consumable.test(N.viewItem,{name:!0,classes:"table"}))return;const W=function(Zt){for(const ue of Zt.getChildren())if(ue.is("element","table"))return ue}(N.viewItem);if(!W||!G.consumable.test(W,{name:!0}))return;G.consumable.consume(N.viewItem,{name:!0,classes:"table"});const dt=os(G.convertItem(W,N.modelCursor).modelRange.getItems());dt?(G.convertChildren(N.viewItem,G.writer.createPositionAt(dt,"end")),G.updateConversionResult(dt,N)):G.consumable.revert(N.viewItem,{name:!0,classes:"table"})})}),_.for("upcast").add(function Ai(){return m=>{m.on("element:table",(r,c,u)=>{const _=c.viewItem;if(!u.consumable.test(_,{name:!0}))return;const{rows:C,headingRows:M,headingColumns:E}=function(W){let dt,Zt=0;const ue=[],xe=[];let Ee;for(const ln of Array.from(W.getChildren())){if("tbody"!==ln.name&&"thead"!==ln.name&&"tfoot"!==ln.name)continue;"thead"!==ln.name||Ee||(Ee=ln);const Mn=Array.from(ln.getChildren()).filter(di=>di.is("element","tr"));for(const di of Mn)if(Ee&&ln===Ee||"tbody"===ln.name&&Array.from(di.getChildren()).length&&Array.from(di.getChildren()).every(Ri=>Ri.is("element","th")))Zt++,ue.push(di);else{xe.push(di);const Ri=yo(di);(!dt||Riu.convertItem(W,u.writer.createPositionAt(G,"end"))),u.convertChildren(_,u.writer.createPositionAt(G,"end")),G.isEmpty){const W=u.writer.createElement("tableRow");u.writer.insert(W,u.writer.createPositionAt(G,"end")),Cn(u.writer,u.writer.createPositionAt(W,"end"))}u.updateConversionResult(G,c)}})}}()),_.for("editingDowncast").elementToStructure({model:{name:"table",attributes:["headingRows"]},view:wa(C,{asWidget:!0,additionalSlots:this._additionalSlots})}),_.for("dataDowncast").elementToStructure({model:{name:"table",attributes:["headingRows"]},view:wa(C,{additionalSlots:this._additionalSlots})}),_.for("upcast").elementToElement({model:"tableRow",view:"tr"}),_.for("upcast").add(M=>{M.on("element:tr",(E,N)=>{N.viewItem.isEmpty&&0==N.modelCursor.index&&E.stop()},{priority:"high"})}),_.for("downcast").elementToElement({model:"tableRow",view:(M,{writer:E})=>M.isEmpty?E.createEmptyElement("tr"):E.createContainerElement("tr")}),_.for("upcast").elementToElement({model:"tableCell",view:"td"}),_.for("upcast").elementToElement({model:"tableCell",view:"th"}),_.for("upcast").add(Vi("td")),_.for("upcast").add(Vi("th")),_.for("editingDowncast").elementToElement({model:"tableCell",view:ao({asWidget:!0})}),_.for("dataDowncast").elementToElement({model:"tableCell",view:ao()}),_.for("editingDowncast").elementToElement({model:"paragraph",view:Ea({asWidget:!0}),converterPriority:"high"}),_.for("dataDowncast").elementToElement({model:"paragraph",view:Ea(),converterPriority:"high"}),_.for("downcast").attributeToAttribute({model:"colspan",view:"colspan"}),_.for("upcast").attributeToAttribute({model:{key:"colspan",value:Hy("colspan")},view:"colspan"}),_.for("downcast").attributeToAttribute({model:"rowspan",view:"rowspan"}),_.for("upcast").attributeToAttribute({model:{key:"rowspan",value:Hy("rowspan")},view:"rowspan"}),r.config.define("table.defaultHeadings.rows",0),r.config.define("table.defaultHeadings.columns",0),r.commands.add("insertTable",new Tc(r)),r.commands.add("insertTableRowAbove",new r2(r,{order:"above"})),r.commands.add("insertTableRowBelow",new r2(r,{order:"below"})),r.commands.add("insertTableColumnLeft",new u6(r,{order:"left"})),r.commands.add("insertTableColumnRight",new u6(r,{order:"right"})),r.commands.add("removeTableRow",new Py(r)),r.commands.add("removeTableColumn",new Sy(r)),r.commands.add("splitTableCellVertically",new v3(r,{direction:"vertically"})),r.commands.add("splitTableCellHorizontally",new v3(r,{direction:"horizontally"})),r.commands.add("mergeTableCells",new KT(r)),r.commands.add("mergeTableCellRight",new Qv(r,{direction:"right"})),r.commands.add("mergeTableCellLeft",new Qv(r,{direction:"left"})),r.commands.add("mergeTableCellDown",new Qv(r,{direction:"down"})),r.commands.add("mergeTableCellUp",new Qv(r,{direction:"up"})),r.commands.add("setTableColumnHeader",new WT(r)),r.commands.add("setTableRowHeader",new QT(r)),r.commands.add("selectTableRow",new t7(r)),r.commands.add("selectTableColumn",new Iy(r)),function t9(m){m.document.registerPostFixer(r=>function(c,u){const _=u.document.differ.getChanges();let C=!1;const M=new Set;for(const E of _){let N=null;"insert"==E.type&&"table"==E.name&&(N=E.position.nodeAfter),"insert"!=E.type&&"remove"!=E.type||"tableRow"!=E.name&&"tableCell"!=E.name||(N=E.position.findAncestor("table")),n9(E)&&(N=E.range.start.findAncestor("table")),N&&!M.has(N)&&(C=e9(N,c)||C,C=e7(N,c)||C,M.add(N))}return C}(r,m))}(c),function i9(m){m.document.registerPostFixer(r=>function(c,u){const _=u.document.differ.getChanges();let C=!1;for(const M of _)"insert"==M.type&&"table"==M.name&&(C=o9(M.position.nodeAfter,c)||C),"insert"==M.type&&"tableRow"==M.name&&(C=Ny(M.position.nodeAfter,c)||C),"insert"==M.type&&"tableCell"==M.name&&(C=Wv(M.position.nodeAfter,c)||C),"remove"!=M.type&&"insert"!=M.type||!a9(M)||(C=Wv(M.position.parent,c)||C);return C}(r,m))}(c),this.listenTo(c.document,"change:data",()=>{(function(M,E){const N=M.document.differ;for(const G of N.getChanges()){let W,dt=!1;if("attribute"==G.type){const Ee=G.range.start.nodeAfter;if(!Ee||!Ee.is("element","table")||"headingRows"!=G.attributeKey&&"headingColumns"!=G.attributeKey)continue;W=Ee,dt="headingRows"==G.attributeKey}else"tableRow"!=G.name&&"tableCell"!=G.name||(W=G.position.findAncestor("table"),dt="tableRow"==G.name);if(!W)continue;const Zt=W.getAttribute("headingRows")||0,ue=W.getAttribute("headingColumns")||0,xe=new so(W);for(const Ee of xe){const ln=Ee.rowr9(Zt,E.mapper));for(const Zt of dt)E.reconvertItem(Zt)}}(c,r.editing)})}registerAdditionalSlot(r){this._additionalSlots.push(r)}}function Hy(m){return r=>{const c=parseInt(r.getAttribute(m));return Number.isNaN(c)||c<=0?null:c}}var zy=b(1613);Io()(zy.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class ka extends aa{constructor(r){super(r);const c=this.bindTemplate;this.items=this._createGridCollection(),this.keystrokes=new jc,this.focusTracker=new as,this.set("rows",0),this.set("columns",0),this.bind("label").to(this,"columns",this,"rows",(u,_)=>`${_} \xd7 ${u}`),this.setTemplate({tag:"div",attributes:{class:["ck"]},children:[{tag:"div",attributes:{class:["ck-insert-table-dropdown__grid"]},on:{"mouseover@.ck-insert-table-dropdown-grid-box":c.to("boxover")},children:this.items},{tag:"div",attributes:{class:["ck","ck-insert-table-dropdown__label"],"aria-hidden":!0},children:[{text:c.to("label")}]}],on:{mousedown:c.to(u=>{u.preventDefault()}),click:c.to(()=>{this.fire("execute")})}}),this.on("boxover",(u,_)=>{const{row:C,column:M}=_.target.dataset;this.items.get(10*(parseInt(C,10)-1)+(parseInt(M,10)-1)).focus()}),this.focusTracker.on("change:focusedElement",(u,_,C)=>{if(!C)return;const{row:M,column:E}=C.dataset;this.set({rows:parseInt(M),columns:parseInt(E)})}),this.on("change:columns",()=>this._highlightGridBoxes()),this.on("change:rows",()=>this._highlightGridBoxes())}render(){super.render(),function({keystrokeHandler:r,focusTracker:c,gridItems:u,numberOfColumns:_,uiLanguageDirection:C}){const M="number"==typeof _?()=>_:_;function E(W){return dt=>{const Zt=u.find(Ee=>Ee.element===c.focusedElement),ue=u.getIndex(Zt),xe=W(ue,u);u.get(xe).focus(),dt.stopPropagation(),dt.preventDefault()}}function N(W,dt){return W===dt-1?0:W+1}function G(W,dt){return 0===W?dt-1:W-1}r.set("arrowright",E((W,dt)=>"rtl"===C?G(W,dt.length):N(W,dt.length))),r.set("arrowleft",E((W,dt)=>"rtl"===C?N(W,dt.length):G(W,dt.length))),r.set("arrowup",E((W,dt)=>{let Zt=W-M();return Zt<0&&(Zt=W+M()*Math.floor(dt.length/M()),Zt>dt.length-1&&(Zt-=M())),Zt})),r.set("arrowdown",E((W,dt)=>{let Zt=W+M();return Zt>dt.length-1&&(Zt=W%M()),Zt}))}({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.items,numberOfColumns:10,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection});for(const r of this.items)this.focusTracker.add(r.element);this.keystrokes.listenTo(this.element)}focus(){this.items.get(0).focus()}focusLast(){this.items.get(0).focus()}_highlightGridBoxes(){const r=this.rows,c=this.columns;this.items.map((u,_)=>{const C=Math.floor(_/10){const C=r.commands.get("insertTable"),M=D1(_);let E;return M.bind("isEnabled").to(C),M.buttonView.set({icon:'',label:c("Insert table"),tooltip:!0}),M.on("change:isOpen",()=>{E||(E=new ka(_),M.panelView.children.add(E),E.delegate("execute").to(M),M.on("execute",()=>{r.execute("insertTable",{rows:E.rows,columns:E.columns}),r.editing.view.focus()}))}),M}),r.ui.componentFactory.add("tableColumn",_=>{const C=[{type:"switchbutton",model:{commandName:"setTableColumnHeader",label:c("Header column"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:u?"insertTableColumnLeft":"insertTableColumnRight",label:c("Insert column left")}},{type:"button",model:{commandName:u?"insertTableColumnRight":"insertTableColumnLeft",label:c("Insert column right")}},{type:"button",model:{commandName:"removeTableColumn",label:c("Delete column")}},{type:"button",model:{commandName:"selectTableColumn",label:c("Select column")}}];return this._prepareDropdown(c("Column"),'',C,_)}),r.ui.componentFactory.add("tableRow",_=>{const C=[{type:"switchbutton",model:{commandName:"setTableRowHeader",label:c("Header row"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:"insertTableRowAbove",label:c("Insert row above")}},{type:"button",model:{commandName:"insertTableRowBelow",label:c("Insert row below")}},{type:"button",model:{commandName:"removeTableRow",label:c("Delete row")}},{type:"button",model:{commandName:"selectTableRow",label:c("Select row")}}];return this._prepareDropdown(c("Row"),'',C,_)}),r.ui.componentFactory.add("mergeTableCells",_=>{const C=[{type:"button",model:{commandName:"mergeTableCellUp",label:c("Merge cell up")}},{type:"button",model:{commandName:u?"mergeTableCellRight":"mergeTableCellLeft",label:c("Merge cell right")}},{type:"button",model:{commandName:"mergeTableCellDown",label:c("Merge cell down")}},{type:"button",model:{commandName:u?"mergeTableCellLeft":"mergeTableCellRight",label:c("Merge cell left")}},{type:"separator"},{type:"button",model:{commandName:"splitTableCellVertically",label:c("Split cell vertically")}},{type:"button",model:{commandName:"splitTableCellHorizontally",label:c("Split cell horizontally")}}];return this._prepareMergeSplitButtonDropdown(c("Merge cells"),'',C,_)})}_prepareDropdown(r,c,u,_){const C=this.editor,M=D1(_),E=this._fillDropdownWithListOptions(M,u);return M.buttonView.set({label:r,icon:c,tooltip:!0}),M.bind("isEnabled").toMany(E,"isEnabled",(...N)=>N.some(G=>G)),this.listenTo(M,"execute",N=>{C.execute(N.source.commandName),N.source instanceof xi||C.editing.view.focus()}),M}_prepareMergeSplitButtonDropdown(r,c,u,_){const C=this.editor,M=D1(_,p4),E="mergeTableCells",N=C.commands.get(E),G=this._fillDropdownWithListOptions(M,u);return M.buttonView.set({label:r,icon:c,tooltip:!0,isEnabled:!0}),M.bind("isEnabled").toMany([N,...G],"isEnabled",(...W)=>W.some(dt=>dt)),this.listenTo(M.buttonView,"execute",()=>{C.execute(E),C.editing.view.focus()}),this.listenTo(M,"execute",W=>{C.execute(W.source.commandName),C.editing.view.focus()}),M}_fillDropdownWithListOptions(r,c){const u=this.editor,_=[],C=new Xs;for(const M of c)lr(M,u,_,C);return Eu(r,C),_}}function lr(m,r,c,u){if("button"===m.type||"switchbutton"===m.type){const _=m.model=new S0(m.model),{commandName:C,bindIsOn:M}=m.model,E=r.commands.get(C);c.push(E),_.set({commandName:C}),_.bind("isEnabled").to(E),M&&_.bind("isOn").to(E,"value"),_.set({withText:!0})}u.add(m)}var n7=b(6945);Io()(n7.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});class x3 extends lo{static get pluginName(){return"TableSelection"}static get requires(){return[Xd,Xd]}init(){const r=this.editor,u=r.editing.view;this.listenTo(r.model,"deleteContent",(_,C)=>this._handleDeleteContent(_,C),{priority:"high"}),this.listenTo(u.document,"insertText",(_,C)=>this._handleInsertTextEvent(_,C),{priority:"high"}),this._defineSelectionConverter(),this._enablePluginDisabling()}getSelectedTableCells(){const u=this.editor.plugins.get(Xd).getSelectedTableCells(this.editor.model.document.selection);return 0==u.length?null:u}getSelectionAsFragment(){const r=this.editor.plugins.get(Xd),c=this.getSelectedTableCells();return c?this.editor.model.change(u=>{const _=u.createDocumentFragment(),{first:C,last:M}=r.getColumnIndexes(c),{first:E,last:N}=r.getRowIndexes(c),G=c[0].findAncestor("table");let W=N,dt=M;if(r.isSelectionRectangular(c)){const ue={firstColumn:C,lastColumn:M,firstRow:E,lastRow:N};W=XA(G,ue),dt=ky(G,ue)}const Zt=d6(G,{startRow:E,startColumn:C,endRow:W,endColumn:dt},u);return u.insert(Zt,_,0),_}):null}setCellSelection(r,c){const u=this._getCellsToSelect(r,c);this.editor.model.change(_=>{_.setSelection(u.cells.map(C=>_.createRangeOn(C)),{backward:u.backward})})}getFocusCell(){const r=[...this.editor.model.document.selection.getRanges()].pop().getContainedElement();return r&&r.is("element","tableCell")?r:null}getAnchorCell(){const r=os(this.editor.model.document.selection.getRanges()).getContainedElement();return r&&r.is("element","tableCell")?r:null}_defineSelectionConverter(){const r=this.editor,c=new Set;r.conversion.for("editingDowncast").add(u=>u.on("selection",(_,C,M)=>{const E=M.writer;!function(W){for(const dt of c)W.removeClass("ck-editor__editable_selected",dt);c.clear()}(E);const N=this.getSelectedTableCells();if(!N)return;for(const W of N){const dt=M.mapper.toViewElement(W);E.addClass("ck-editor__editable_selected",dt),c.add(dt)}const G=M.mapper.toViewElement(N[N.length-1]);E.setSelection(G,0)},{priority:"lowest"}))}_enablePluginDisabling(){const r=this.editor;this.on("change:isEnabled",()=>{if(!this.isEnabled){const c=this.getSelectedTableCells();if(!c)return;r.model.change(u=>{const _=u.createPositionAt(c[0],0),C=r.model.schema.getNearestSelectionRange(_);u.setSelection(C)})}})}_handleDeleteContent(r,c){const u=this.editor.plugins.get(Xd),_=c[0],C=c[1],M=this.editor.model,E=!C||"backward"==C.direction,N=u.getSelectedTableCells(_);N.length&&(r.stop(),M.change(G=>{const W=N[E?N.length-1:0];M.change(Zt=>{for(const ue of N)M.deleteContent(Zt.createSelection(ue,"in"))});const dt=M.schema.getNearestSelectionRange(G.createPositionAt(W,0));_.is("documentSelection")?G.setSelection(dt):_.setTo(dt)}))}_handleInsertTextEvent(r,c){const u=this.editor,_=this.getSelectedTableCells();if(!_)return;const C=u.editing.view,M=u.editing.mapper,E=_.map(N=>C.createRangeOn(M.toViewElement(N)));c.selection=C.createSelection(E)}_getCellsToSelect(r,c){const u=this.editor.plugins.get("TableUtils"),_=u.getCellLocation(r),C=u.getCellLocation(c),M=Math.min(_.row,C.row),E=Math.max(_.row,C.row),N=Math.min(_.column,C.column),G=Math.max(_.column,C.column),W=new Array(E-M+1).fill(null).map(()=>[]),dt={startRow:M,endRow:E,startColumn:N,endColumn:G};for(const{row:xe,cell:Ee}of new so(r.findAncestor("table"),dt))W[xe-M].push(Ee);const Zt=C.row<_.row,ue=C.column<_.column;return Zt&&W.reverse(),ue&&W.forEach(xe=>xe.reverse()),{cells:W.flat(),backward:Zt||ue}}}class i7 extends lo{static get pluginName(){return"TableClipboard"}static get requires(){return[x3,Xd]}init(){const r=this.editor,c=r.editing.view.document;this.listenTo(c,"copy",(u,_)=>this._onCopyCut(u,_)),this.listenTo(c,"cut",(u,_)=>this._onCopyCut(u,_)),this.listenTo(r.model,"insertContent",(u,[_,C])=>this._onInsertContent(u,_,C),{priority:"high"}),this.decorate("_replaceTableSlotCell")}_onCopyCut(r,c){const u=this.editor.plugins.get(x3);if(!u.getSelectedTableCells()||"cut"==r.name&&!this.editor.model.canEditAt(this.editor.model.document.selection))return;c.preventDefault(),r.stop();const C=this.editor.editing.view.document,M=this.editor.data.toView(u.getSelectionAsFragment());C.fire("clipboardOutput",{dataTransfer:c.dataTransfer,content:M,method:r.name})}_onInsertContent(r,c,u){if(u&&!u.is("documentSelection"))return;const _=this.editor.model,C=this.editor.plugins.get(Xd);let M=this.getTableIfOnlyTableInContent(c,_);if(!M)return;const E=C.getSelectionAffectedTableCells(_.document.selection);E.length?(r.stop(),_.change(N=>{const G={width:C.getColumns(M),height:C.getRows(M)},W=function(ln,Mn,di,Ri){const Jo=ln[0].findAncestor("table"),Da=Ri.getColumnIndexes(ln),Ts=Ri.getRowIndexes(ln),$r={firstColumn:Da.first,lastColumn:Da.last,firstRow:Ts.first,lastRow:Ts.last},Sl=1===ln.length;return Sl&&($r.lastRow+=Mn.height-1,$r.lastColumn+=Mn.width-1,function(fl,g6,c2,Yp){const vf=Yp.getColumns(fl),l2=Yp.getRows(fl);c2>vf&&Yp.insertColumns(fl,{at:vf,columns:c2-vf}),g6>l2&&Yp.insertRows(fl,{at:l2,rows:g6-l2})}(Jo,$r.lastRow+1,$r.lastColumn+1,Ri)),Sl||!Ri.isSelectionRectangular(ln)?function(fl,g6,c2){const{firstRow:Yp,lastRow:vf,firstColumn:l2,lastColumn:y3}=g6,aT={first:Yp,last:vf},m7={first:l2,last:y3};a7(fl,l2,aT,c2),a7(fl,y3+1,aT,c2),o7(fl,Yp,m7,c2),o7(fl,vf+1,m7,c2,Yp)}(Jo,$r,di):($r.lastRow=XA(Jo,$r),$r.lastColumn=ky(Jo,$r)),$r}(E,G,N,C),Zt=W.lastColumn-W.firstColumn+1,ue={startRow:0,startColumn:0,endRow:Math.min(W.lastRow-W.firstRow+1,G.height)-1,endColumn:Math.min(Zt,G.width)-1};M=d6(M,ue,N);const xe=E[0].findAncestor("table"),Ee=this._replaceSelectedCellsWithPasted(M,G,xe,W,N);if(this.editor.plugins.get("TableSelection").isEnabled){const ln=C.sortRanges(Ee.map(Mn=>N.createRangeOn(Mn)));N.setSelection(ln)}else N.setSelection(Ee[0],0)})):KA(M,C)}_replaceSelectedCellsWithPasted(r,c,u,_,C){const{width:M,height:E}=c,N=function(ln,Mn,di){const Ri=new Array(di).fill(null).map(()=>new Array(Mn).fill(null));for(const{column:Jo,row:Da,cell:Ts}of new so(ln))Ri[Da][Jo]=Ts;return Ri}(r,M,E),G=[...new so(u,{startRow:_.firstRow,endRow:_.lastRow,startColumn:_.firstColumn,endColumn:_.lastColumn,includeAllSlots:!0})],W=[];let dt;for(const ln of G){const{row:Mn,column:di}=ln;di===_.firstColumn&&(dt=ln.getPositionBefore());const Da=N[(Mn-_.firstRow)%E][(di-_.firstColumn)%M],Ts=Da?C.cloneElement(Da):null,$r=this._replaceTableSlotCell(ln,Ts,dt,C);$r&&(b3($r,Mn,di,_.lastRow,_.lastColumn,C),W.push($r),dt=C.createPositionAfter($r))}const Zt=parseInt(u.getAttribute("headingRows")||"0"),ue=parseInt(u.getAttribute("headingColumns")||"0"),Ee=_.firstColumnt8(C,M,c)).map(({cell:C})=>m6(C,r,u))}function a7(m,r,c,u){if(!(r<1))return _6(m,r).filter(({row:_,cellHeight:C})=>t8(_,C,c)).map(({cell:_,column:C})=>f6(_,C,r,u))}function t8(m,r,c){const u=m+r-1,{first:_,last:C}=c;return m>=_&&m<=C||m<_&&u>=_}class u9 extends lo{static get pluginName(){return"TableKeyboard"}static get requires(){return[x3,Xd]}init(){const r=this.editor.editing.view.document;this.listenTo(r,"arrowKey",(...c)=>this._onArrowKey(...c),{context:"table"}),this.listenTo(r,"tab",(...c)=>this._handleTabOnSelectedTable(...c),{context:"figure"}),this.listenTo(r,"tab",(...c)=>this._handleTab(...c),{context:["th","td"]})}_handleTabOnSelectedTable(r,c){const u=this.editor,_=u.model.document.selection.getSelectedElement();_&&_.is("element","table")&&(c.preventDefault(),c.stopPropagation(),r.stop(),u.model.change(C=>{C.setSelection(C.createRangeIn(_.getChild(0).getChild(0)))}))}_handleTab(r,c){const u=this.editor,_=this.editor.plugins.get(Xd),C=this.editor.plugins.get("TableSelection"),E=!c.shiftKey;let N=_.getTableCellsContainingSelection(u.model.document.selection)[0];if(N||(N=C.getFocusCell()),!N)return;c.preventDefault(),c.stopPropagation(),r.stop();const G=N.parent,W=G.parent,dt=W.getChildIndex(G),Zt=G.getChildIndex(N),ue=0===Zt;if(!E&&ue&&0===dt)return void u.model.change(Mn=>{Mn.setSelection(Mn.createRangeOn(W))});const xe=Zt===G.childCount-1,Ee=dt===_.getRows(W)-1;if(E&&Ee&&xe&&(u.execute("insertTableRowBelow"),dt===_.getRows(W)-1))return void u.model.change(Mn=>{Mn.setSelection(Mn.createRangeOn(W))});let ln;if(E&&xe)ln=W.getChild(dt+1).getChild(0);else if(!E&&ue){const Mn=W.getChild(dt-1);ln=Mn.getChild(Mn.childCount-1)}else ln=G.getChild(Zt+(E?1:-1));u.model.change(Mn=>{Mn.setSelection(Mn.createRangeIn(ln))})}_onArrowKey(r,c){const _=d1(c.keyCode,this.editor.locale.contentLanguageDirection);this._handleArrowKeys(_,c.shiftKey)&&(c.preventDefault(),c.stopPropagation(),r.stop())}_handleArrowKeys(r,c){const u=this.editor.plugins.get(Xd),_=this.editor.plugins.get("TableSelection"),C=this.editor.model,M=C.document.selection,E=["right","down"].includes(r),N=u.getSelectedTableCells(M);if(N.length){let W;return W=c?_.getFocusCell():E?N[N.length-1]:N[0],this._navigateFromCellInDirection(W,r,c),!0}const G=M.focus.findAncestor("tableCell");if(!G)return!1;if(!M.isCollapsed)if(c){if(M.isBackward==E&&!M.containsEntireContent(G))return!1}else{const W=M.getSelectedElement();if(!W||!C.schema.isObject(W))return!1}return!!this._isSelectionAtCellEdge(M,G,E)&&(this._navigateFromCellInDirection(G,r,c),!0)}_isSelectionAtCellEdge(r,c,u){const _=this.editor.model,C=this.editor.model.schema,M=u?r.getLastPosition():r.getFirstPosition();if(!C.getLimitElement(M).is("element","tableCell"))return _.createPositionAt(c,u?"end":0).isTouching(M);const E=_.createSelection(M);return _.modifySelection(E,{direction:u?"forward":"backward"}),M.isEqual(E.focus)}_navigateFromCellInDirection(r,c,u=!1){const _=this.editor.model,C=r.findAncestor("table"),M=[...new so(C,{includeAllSlots:!0})],{row:E,column:N}=M[M.length-1],G=M.find(({cell:Ee})=>Ee==r);let{row:W,column:dt}=G;switch(c){case"left":dt--;break;case"up":W--;break;case"right":dt+=G.cellWidth;break;case"down":W+=G.cellHeight}if(W<0||W>E||dt<0&&W<=0||dt>N&&W>=E)return void _.change(Ee=>{Ee.setSelection(Ee.createRangeOn(C))});dt<0?(dt=u?0:N,W--):dt>N&&(dt=u?N:0,W++);const Zt=M.find(Ee=>Ee.row==W&&Ee.column==dt).cell,ue=["right","down"].includes(c),xe=this.editor.plugins.get("TableSelection");if(u&&xe.isEnabled){const Ee=xe.getAnchorCell()||r;xe.setCellSelection(Ee,Zt)}else{const Ee=_.createPositionAt(Zt,ue?0:"end");_.change(ln=>{ln.setSelection(Ee)})}}}class Yy extends jd{constructor(){super(...arguments),this.domEventType=["mousemove","mouseleave"]}onDomEvent(r){this.fire(r.type,r)}}class d9 extends lo{static get pluginName(){return"TableMouse"}static get requires(){return[x3,Xd]}init(){this.editor.editing.view.addObserver(Yy),this._enableShiftClickSelection(),this._enableMouseDragSelection()}_enableShiftClickSelection(){const r=this.editor,c=r.plugins.get(Xd);let u=!1;const _=r.plugins.get(x3);this.listenTo(r.editing.view.document,"mousedown",(C,M)=>{const E=r.model.document.selection;if(!this.isEnabled||!_.isEnabled||!M.domEvent.shiftKey)return;const N=_.getAnchorCell()||c.getTableCellsContainingSelection(E)[0];if(!N)return;const G=this._getModelTableCellFromDomEvent(M);G&&By(N,G)&&(u=!0,_.setCellSelection(N,G),M.preventDefault())}),this.listenTo(r.editing.view.document,"mouseup",()=>{u=!1}),this.listenTo(r.editing.view.document,"selectionChange",C=>{u&&C.stop()},{priority:"highest"})}_enableMouseDragSelection(){const r=this.editor;let c,u,_=!1,C=!1;const M=r.plugins.get(x3);this.listenTo(r.editing.view.document,"mousedown",(E,N)=>{this.isEnabled&&M.isEnabled&&(N.domEvent.shiftKey||N.domEvent.ctrlKey||N.domEvent.altKey||(c=this._getModelTableCellFromDomEvent(N)))}),this.listenTo(r.editing.view.document,"mousemove",(E,N)=>{if(!N.domEvent.buttons||!c)return;const G=this._getModelTableCellFromDomEvent(N);G&&By(c,G)&&(u=G,_||u==c||(_=!0)),_&&(C=!0,M.setCellSelection(c,u),N.preventDefault())}),this.listenTo(r.editing.view.document,"mouseup",()=>{_=!1,C=!1,c=null,u=null}),this.listenTo(r.editing.view.document,"selectionChange",E=>{C&&E.stop()},{priority:"highest"})}_getModelTableCellFromDomEvent(r){const u=this.editor.editing.view.createPositionAt(r.target,0);return this.editor.editing.mapper.toModelPosition(u).parent.findAncestor("tableCell",{includeSelf:!0})}}function By(m,r){return m.parent.parent==r.parent.parent}var r7=b(6306);function m9(m){const r=m.getSelectedElement();return r&&s7(r)?r:null}function Vy(m){const r=m.getFirstPosition();if(!r)return null;let c=r.parent;for(;c;){if(c.is("element")&&s7(c))return c;c=c.parent}return null}function s7(m){return!!m.getCustomProperty("table")&&Pl(m)}Io()(r7.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var e8=b(7368);Io()(e8.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var Gy=b(9247);Io()(Gy.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var Jy=b(4070);Io()(Jy.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var Wy=b(6237);Io()(Wy.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var Ky=b(5087);Io()(Ky.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var s2=b(7341);Io()(s2.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var A3=b(2128);Io()(A3.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var tT=b(4101);Io()(tT.Z,{injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0});var v9=Object.defineProperty,c7=Object.getOwnPropertySymbols,l7=Object.prototype.hasOwnProperty,b9=Object.prototype.propertyIsEnumerable,eT=(m,r,c)=>r in m?v9(m,r,{enumerable:!0,configurable:!0,writable:!0,value:c}):m[r]=c,nT=(m,r)=>{for(var c in r||(r={}))l7.call(r,c)&&eT(m,c,r[c]);if(c7)for(var c of c7(r))b9.call(r,c)&&eT(m,c,r[c]);return m};const C9={autoRefresh:!0};class u7 extends(we()){constructor(r,c={}){if(super(),!r)throw new it("token-missing-token-url",this);c.initValue&&this._validateTokenValue(c.initValue),this.set("value",c.initValue),this._refresh="function"==typeof r?r:()=>{return u=r,new Promise((_,C)=>{const M=new XMLHttpRequest;M.open("GET",u),M.addEventListener("load",()=>{const E=M.status,N=M.response;return E<200||E>299?C(new it("token-cannot-download-new-token",null)):_(N)}),M.addEventListener("error",()=>C(new Error("Network Error"))),M.addEventListener("abort",()=>C(new Error("Abort"))),M.send()});var u},this._options=nT(nT({},C9),c)}init(){return new Promise((r,c)=>{this.value?(this._options.autoRefresh&&this._registerRefreshTokenTimeout(),r(this)):this.refreshToken().then(r).catch(c)})}refreshToken(){return this._refresh().then(r=>(this._validateTokenValue(r),this.set("value",r),this._options.autoRefresh&&this._registerRefreshTokenTimeout(),this))}destroy(){clearTimeout(this._tokenRefreshTimeout)}_validateTokenValue(r){const c="string"==typeof r,u=!/^".*"$/.test(r),_=c&&3===r.split(".").length;if(!u||!_)throw new it("token-not-in-jwt-format",this)}_registerRefreshTokenTimeout(){const r=this._getTokenRefreshTimeoutTime();clearTimeout(this._tokenRefreshTimeout),this._tokenRefreshTimeout=setTimeout(()=>{this.refreshToken()},r)}_getTokenRefreshTimeoutTime(){try{const[,r]=this.value.split("."),{exp:c}=JSON.parse(atob(r));return c?Math.floor((1e3*c-Date.now())/2):36e5}catch{return 36e5}}static create(r,c={}){return new u7(r,c).init()}}const d7=/^data:(\S*?);base64,/;class x9 extends(Le()){constructor(r,c,u){if(super(),!r)throw new it("fileuploader-missing-file",null);if(!c)throw new it("fileuploader-missing-token",null);if(!u)throw new it("fileuploader-missing-api-address",null);this.file=function(_){if("string"!=typeof _)return!1;const C=_.match(d7);return!(!C||!C.length)}(r)?function(_,C=512){try{const M=_.match(d7)[1],E=atob(_.replace(d7,"")),N=[];for(let G=0;Gr(u)),this}onError(r){return this.once("error",(c,u)=>r(u)),this}abort(){this.xhr.abort()}send(){return this._prepareRequest(),this._attachXHRListeners(),this._sendRequest()}_prepareRequest(){const r=new XMLHttpRequest;r.open("POST",this._apiAddress),r.setRequestHeader("Authorization",this._token.value),r.responseType="json",this.xhr=r}_attachXHRListeners(){const r=this.xhr,c=u=>()=>this.fire("error",u);r.addEventListener("error",c("Network Error")),r.addEventListener("abort",c("Abort")),r.upload&&r.upload.addEventListener("progress",u=>{u.lengthComputable&&this.fire("progress",{total:u.total,uploaded:u.loaded})}),r.addEventListener("load",()=>{const u=r.status,_=r.response;if(u<200||u>299)return this.fire("error",_.message||_.error)})}_sendRequest(){const r=new FormData,c=this.xhr;return r.append("file",this.file),new Promise((u,_)=>{c.addEventListener("load",()=>{const C=c.status,M=c.response;return C<200||C>299?_(M.message?new it("fileuploader-uploading-data-failed",this,{message:M.message}):M.error):u(M)}),c.addEventListener("error",()=>_(new Error("Network Error"))),c.addEventListener("abort",()=>_(new Error("Abort"))),c.send(r)})}}class iT{constructor(r,c){if(!r)throw new it("uploadgateway-missing-token",null);if(!c)throw new it("uploadgateway-missing-api-address",null);this._token=r,this._apiAddress=c}upload(r){return new x9(r,this._token,this._apiAddress)}}class A9 extends C_{static get pluginName(){return"CloudServicesCore"}createToken(r,c){return new u7(r,c)}createUploadGateway(r,c){return new iT(r,c)}}var oT=(m,r,c)=>new Promise((u,_)=>{var C=N=>{try{E(c.next(N))}catch(G){_(G)}},M=N=>{try{E(c.throw(N))}catch(G){_(G)}},E=N=>N.done?u(N.value):Promise.resolve(N.value).then(C,M);E((c=c.apply(m,r)).next())});class p7 extends R0{}p7.builtinPlugins=[class extends lo{static get requires(){return[gC,z0,Y8,L8,S8,UC]}static get pluginName(){return"Essentials"}},class extends lo{static get requires(){return[ap]}static get pluginName(){return"CKFinderUploadAdapter"}init(){const m=this.editor.config.get("ckfinder.uploadUrl");m&&(this.editor.plugins.get(ap).createUploadAdapter=r=>new W8(r,m,this.editor.t))}},class extends lo{static get requires(){return[t_]}static get pluginName(){return"Autoformat"}afterInit(){this._addListAutoformats(),this._addBasicStylesAutoformats(),this._addHeadingAutoformats(),this._addBlockQuoteAutoformats(),this._addCodeBlockAutoformats(),this._addHorizontalLineAutoformats()}_addListAutoformats(){const m=this.editor.commands;m.get("bulletedList")&&Hp(this.editor,this,/^[*-]\s$/,"bulletedList"),m.get("numberedList")&&Hp(this.editor,this,/^1[.|)]\s$/,"numberedList"),m.get("todoList")&&Hp(this.editor,this,/^\[\s?\]\s$/,"todoList"),m.get("checkTodoList")&&Hp(this.editor,this,/^\[\s?x\s?\]\s$/,()=>{this.editor.execute("todoList"),this.editor.execute("checkTodoList")})}_addBasicStylesAutoformats(){const m=this.editor.commands;if(m.get("bold")){const r=Hh(this.editor,"bold");o2(this.editor,this,/(?:^|\s)(\*\*)([^*]+)(\*\*)$/g,r),o2(this.editor,this,/(?:^|\s)(__)([^_]+)(__)$/g,r)}if(m.get("italic")){const r=Hh(this.editor,"italic");o2(this.editor,this,/(?:^|\s)(\*)([^*_]+)(\*)$/g,r),o2(this.editor,this,/(?:^|\s)(_)([^_]+)(_)$/g,r)}if(m.get("code")){const r=Hh(this.editor,"code");o2(this.editor,this,/(`)([^`]+)(`)$/g,r)}if(m.get("strikethrough")){const r=Hh(this.editor,"strikethrough");o2(this.editor,this,/(~~)([^~]+)(~~)$/g,r)}}_addHeadingAutoformats(){const m=this.editor.commands.get("heading");m&&m.modelElements.filter(r=>r.match(/^heading[1-6]$/)).forEach(r=>{const u=new RegExp(`^(#{${r[7]}})\\s$`);Hp(this.editor,this,u,()=>{if(!m.isEnabled||m.value===r)return!1;this.editor.execute("heading",{value:r})})})}_addBlockQuoteAutoformats(){this.editor.commands.get("blockQuote")&&Hp(this.editor,this,/^>\s$/,"blockQuote")}_addCodeBlockAutoformats(){const m=this.editor,r=m.model.document.selection;m.commands.get("codeBlock")&&Hp(m,this,/^```$/,()=>{if(r.getFirstPosition().parent.is("element","listItem"))return!1;this.editor.execute("codeBlock",{usePreviousLanguageChoice:!0})})}_addHorizontalLineAutoformats(){this.editor.commands.get("horizontalLine")&&Hp(this.editor,this,/^---$/,"horizontalLine")}},class extends lo{static get requires(){return[I5,q5]}static get pluginName(){return"Bold"}},class extends lo{static get requires(){return[$8,N4]}static get pluginName(){return"Italic"}},class extends lo{static get requires(){return[H5,SC]}static get pluginName(){return"BlockQuote"}},class extends lo{static get pluginName(){return"CKBox"}static get requires(){return[Y5,LC]}},class extends lo{static get pluginName(){return"CKFinder"}static get requires(){return["Link","CKFinderUploadAdapter",qC,IC]}},class extends C_{constructor(){super(...arguments),this.token=null,this._tokens=new Map}static get pluginName(){return"CloudServices"}static get requires(){return[A9]}init(){return oT(this,null,function*(){const m=this.context.config.get("cloudServices")||{};for(const[c,u]of Object.entries(m))this[c]=u;if(!this.tokenUrl)return void(this.token=null);const r=this.context.plugins.get("CloudServicesCore");this.token=yield r.createToken(this.tokenUrl).init(),this._tokens.set(this.tokenUrl,this.token)})}registerTokenUrl(m){return oT(this,null,function*(){if(this._tokens.has(m))return this.getTokenFor(m);const r=this.context.plugins.get("CloudServicesCore"),c=yield r.createToken(m).init();return this._tokens.set(m,c),c})}getTokenFor(m){const r=this._tokens.get(m);if(!r)throw new it("cloudservices-token-not-registered",this);return r}destroy(){super.destroy();for(const m of this._tokens.values())m.destroy()}},class extends lo{static get pluginName(){return"EasyImage"}static get requires(){return[aA,"ImageUpload"]}init(){const m=this.editor;m.plugins.has("ImageBlockEditing")||m.plugins.has("ImageInlineEditing")||Tt("easy-image-image-feature-missing",m)}},class extends lo{static get requires(){return[Q5,zC]}static get pluginName(){return"Heading"}},class extends lo{static get requires(){return[QC,_A]}static get pluginName(){return"Image"}},class extends lo{static get requires(){return[fA,sv]}static get pluginName(){return"ImageCaption"}},class extends lo{static get requires(){return[ux,cy]}static get pluginName(){return"ImageStyle"}},class extends lo{static get requires(){return[B0,Md]}static get pluginName(){return"ImageToolbar"}afterInit(){const m=this.editor,r=m.t,c=m.plugins.get(B0),u=m.plugins.get("ImageUtils");var _;c.register("image",{ariaLabel:r("Image toolbar"),items:(_=m.config.get("image.toolbar")||[],_.map(C=>Wt(C)?C.name:C)),getRelatedElement:C=>u.getClosestSelectedImageWidget(C)})}},class extends lo{static get pluginName(){return"ImageUpload"}static get requires(){return[hf,lv,vA]}},class extends lo{static get pluginName(){return"Indent"}static get requires(){return[X4,r3]}},class extends lo{static get requires(){return[Lv,FA,o6]}static get pluginName(){return"Link"}},class extends lo{static get requires(){return[Gv,NA]}static get pluginName(){return"List"}},class extends lo{static get requires(){return[Jv,JA,jA,Y0]}static get pluginName(){return"MediaEmbed"}},j5,class extends lo{static get pluginName(){return"PasteFromOffice"}static get requires(){return[Rp]}init(){const m=this.editor,r=m.plugins.get("ClipboardPipeline"),c=m.editing.view.document,u=[];u.push(new g(c)),u.push(new V(c)),u.push(new Ut(c)),r.on("inputTransformation",(_,C)=>{if(C._isTransformedWithPasteFromOffice||m.model.document.selection.getFirstPosition().parent.is("element","codeBlock"))return;const M=C.dataTransfer.getData("text/html"),E=u.find(N=>N.isActive(M));E&&(C._parsedData||(C._parsedData=function ge(m,r){const c=new DOMParser,u=Ht(Ht(function(N){const G="",dt=N.indexOf(G);if(dt<0)return N;const Zt=N.indexOf("