diff --git a/plugins/a11ychecker/index.js b/plugins/a11ychecker/index.js new file mode 100644 index 00000000..35752f84 --- /dev/null +++ b/plugins/a11ychecker/index.js @@ -0,0 +1 @@ +require('./plugin.js'); \ No newline at end of file diff --git a/plugins/a11ychecker/index.mjs b/plugins/a11ychecker/index.mjs new file mode 100644 index 00000000..d2860bc1 --- /dev/null +++ b/plugins/a11ychecker/index.mjs @@ -0,0 +1 @@ +import './plugin.js'; \ No newline at end of file diff --git a/plugins/a11ychecker/langs/ar.js b/plugins/a11ychecker/langs/ar.js new file mode 100644 index 00000000..b3fa0e08 --- /dev/null +++ b/plugins/a11ychecker/langs/ar.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ar", { + '"{0}"': '"{0}"', + "Accessibility Checker": "\u0623\u062f\u0627\u0629 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0625\u0645\u0643\u0627\u0646\u064a\u0629 \u0648\u0635\u0648\u0644 \u0630\u0648\u064a \u0627\u0644\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u0627\u0644\u062e\u0627\u0635\u0629", + "Accessibility checker...": "\u0623\u062f\u0627\u0629 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0625\u0645\u0643\u0627\u0646\u064a\u0629 \u0627\u0644\u0648\u0635\u0648\u0644...", + "Add a text description": "\u0623\u0636\u0650\u0641 \u0648\u0635\u0641\u064b\u0627 \u0646\u0635\u064a\u064b\u0627", + "Add a text description for this image": "\u0623\u0636\u0650\u0641 \u0648\u0635\u0641\u064b\u0627 \u0646\u0635\u064a\u064b\u0627 \u0647\u0630\u0647 \u0627\u0644\u0635\u0648\u0631\u0629", + "Adjacent links with the same URL should be merged into one link": "\u064a\u062c\u0628 \u062f\u0645\u062c \u0627\u0644\u0627\u0631\u062a\u0628\u0627\u0637\u0627\u062a \u0627\u0644\u0645\u062a\u062c\u0627\u0648\u0631\u0629 \u0645\u0639 \u0646\u0641\u0633 \u0627\u0644\u0640 URL\u200f \u0641\u064a \u0627\u0631\u062a\u0628\u0627\u0637 \u0648\u0627\u062d\u062f", + "Caption cannot be empty": "\u0644\u0627 \u064a\u0645\u0643\u0646 \u0623\u0646 \u062a\u0643\u0648\u0646 \u0642\u064a\u0645\u0629 \u0627\u0644\u062a\u0633\u0645\u064a\u0629 \u0627\u0644\u062a\u0648\u0636\u064a\u062d\u064a\u0629 \u0641\u0627\u0631\u063a\u0629", + "Choose table header": "\u0627\u062e\u062a\u064a\u0627\u0631 \u0631\u0623\u0633 \u0627\u0644\u062c\u062f\u0648\u0644", + "Click for more info": "\u0627\u0646\u0642\u0631 \u0644\u0644\u0645\u0632\u064a\u062f \u0645\u0646 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062a", + "Column": "\u0639\u0645\u0648\u062f", + "Column group": "\u0645\u062c\u0645\u0648\u0639\u0629 \u0627\u0644\u0623\u0639\u0645\u062f\u0629", + "Complex tables should have summaries": "\u064a\u062c\u0628 \u0623\u0646 \u062a\u062d\u062a\u0648\u064a \u0627\u0644\u062c\u062f\u0627\u0648\u0644 \u0627\u0644\u0645\u0639\u0642\u062f\u0629 \u0639\u0644\u0649 \u0645\u0644\u062e\u0635\u0627\u062a", + "Decorative images are not allowed. Please add a text description.": "\u063a\u064a\u0631 \u0645\u0633\u0645\u0648\u062d \u0628\u0627\u0644\u0635\u0648\u0631\u0629 \u0627\u0644\u0632\u062e\u0631\u0641\u064a\u0629. \u064a\u064f\u0631\u062c\u0649 \u0625\u0636\u0627\u0641\u0629 \u0648\u0635\u0641 \u0646\u0635\u064a.", + "Error": "\u062e\u0637\u0623", + "Header column": "\u0639\u0645\u0648\u062f \u0627\u0644\u0631\u0623\u0633", + "Header row": "\u0635\u0641 \u0627\u0644\u0631\u0623\u0633", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u064a\u062c\u0628 \u062a\u0637\u0628\u064a\u0642 \u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646 \u0628\u062a\u0631\u062a\u064a\u0628 \u0645\u062a\u062a\u0627\u0644. \u0639\u0644\u0649 \u0633\u0628\u064a\u0644 \u0627\u0644\u0645\u062b\u0627\u0644: \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0627\u0644\u0639\u0646\u0648\u0627\u0646 1\u200f \u0645\u062a\u0628\u0648\u0639\u064b\u0627 \u0628\u0627\u0644\u0639\u0646\u0648\u0627\u0646 2\u200f \u0648\u0644\u064a\u0633 \u0627\u0644\u0639\u0646\u0648\u0627\u0646 3\u200f.", + "ID attribute must be unique": "\u064a\u062c\u0628 \u0623\u0646 \u062a\u0643\u0648\u0646 \u0633\u0645\u0629 \u0627\u0644\u0645\u0639\u0631\u0641 \u0641\u0631\u064a\u062f\u0629", + "Ignore": "\u062a\u062c\u0627\u0647\u0644", + "Image": "\u0635\u0648\u0631\u0629", + "Image must be marked as decorative or have an alternative text description": "\u064a\u062c\u0628 \u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0635\u0648\u0631\u0629 \u0643\u0632\u062e\u0631\u0641\u064a\u0629 \u0623\u0648 \u0648\u062c\u0648\u062f \u0648\u0635\u0641 \u0646\u0635\u064a \u0628\u062f\u064a\u0644", + "Image needs a text description": "\u0627\u0644\u0635\u0648\u0631\u0629 \u0628\u062d\u0627\u062c\u0629 \u0648\u0635\u0641 \u0646\u0635\u064a", + "Info": "\u0645\u0639\u0644\u0648\u0645\u0627\u062a", + "Issue {0} of {1}": "\u0645\u0634\u0643\u0644\u0629 {0} \u0645\u0646 {1}", + "Keep this ID and remove all others": "\u0627\u062a\u0631\u0643 \u0647\u0630\u0627 \u0627\u0644\u0645\u0639\u0631\u0651\u0641 \u0648\u0623\u0632\u0644 \u0627\u0644\u0645\u0639\u0631\u0641\u0627\u062a \u0627\u0644\u0623\u062e\u0631\u0649", + "Large text must have a contrast ratio of at least 3:1": "\u064a\u062c\u0628 \u0623\u0646 \u062a\u0643\u0648\u0646 \u0646\u0633\u0628\u0629 \u062a\u0628\u0627\u064a\u0646 \u0627\u0644\u0646\u0635 \u0627\u0644\u0643\u0628\u064a\u0631 3\u200f:1\u200f \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644", + "Link": "\u0631\u0627\u0628\u0637", + "Make ID unique": "\u0639\u0645\u0644 \u0645\u0639\u0631\u0651\u0641 \u0641\u0631\u064a\u062f", + "Mark as decorative": "\u0648\u0636\u0639 \u0639\u0644\u0627\u0645\u0629 \u0643\u0632\u062e\u0631\u0641\u064a\u0629", + "More info": "\u0627\u0644\u0645\u0632\u064a\u062f \u0645\u0646 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062a", + "Next issue": "\u0627\u0644\u0645\u0634\u0643\u0644\u0629 \u0627\u0644\u062a\u0627\u0644\u064a\u0629", + "No accessibility issues detected": "\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u0643\u0634\u0641 \u0639\u0646 \u0623\u064a \u0645\u0634\u0643\u0644\u0627\u062a \u0645\u062a\u0639\u0644\u0642\u0629 \u0628\u0625\u0645\u0643\u0627\u0646\u064a\u0629 \u0648\u0635\u0648\u0644 \u0630\u0648\u064a \u0627\u0644\u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a \u0627\u0644\u062e\u0627\u0635\u0629", + "Or add a text description": "\u0623\u0648 \u0623\u0636\u0650\u0641 \u0648\u0635\u0641\u064b\u0627 \u0646\u0635\u064a\u064b\u0627", + "Previous issue": "\u0627\u0644\u0645\u0634\u0643\u0644\u0629 \u0627\u0644\u0633\u0627\u0628\u0642\u0629", + "Provide caption": "\u0625\u062f\u062e\u0627\u0644 \u062a\u0639\u0644\u064a\u0642", + "Provide table summary": "\u0625\u062f\u062e\u0627\u0644 \u0645\u0644\u062e\u0635 \u0627\u0644\u062c\u062f\u0648\u0644", + "Remove all IDs": "\u0625\u0632\u0627\u0644\u0629 \u062c\u0645\u064a\u0639 \u0627\u0644\u0645\u0639\u0631\u0651\u0641\u0627\u062a", + "Remove this ID": "\u0625\u0632\u0627\u0644\u0629 \u0647\u0630\u0627 \u0627\u0644\u0645\u0639\u0631\u0651\u0641", + "Repair": "\u0625\u0635\u0644\u0627\u062d", + "Repair issue": "\u0625\u0635\u0644\u0627\u062d \u0627\u0644\u0645\u0634\u0643\u0644\u0629", + "Replace filename with a meaningful description": "\u0627\u0633\u062a\u0628\u062f\u0644 \u0627\u0633\u0645 \u0627\u0644\u0645\u0644\u0641 \u0628\u0648\u0635\u0641\u064d \u0630\u064a \u0645\u0639\u0646\u0649", + "Row": "\u0635\u0641", + "Row group": "\u200f\u200f\u0645\u062c\u0645\u0648\u0639\u0629 \u0627\u0644\u0635\u0641\u0648\u0641", + "Select a heading level": "\u062a\u062d\u062f\u064a\u062f \u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u0639\u0646\u0648\u0627\u0646", + "Select header scope": "\u062a\u062d\u062f\u064a\u062f \u0646\u0637\u0627\u0642 \u0627\u0644\u0631\u0623\u0633", + "Shorten the text description": "\u0642\u0645 \u0628\u062a\u0642\u0635\u064a\u0631 \u0627\u0644\u0646\u0635 \u0627\u0644\u0648\u0635\u0641\u064a", + "Solution": "\u0627\u0644\u062d\u0644", + "Success": "\u0646\u062c\u0627\u062d", + "Summary cannot be empty": "\u0644\u0627 \u064a\u0645\u0643\u0646 \u0623\u0646 \u062a\u0643\u0648\u0646 \u0642\u064a\u0645\u0629 \u0627\u0644\u0645\u0644\u062e\u0635 \u0641\u0627\u0631\u063a\u0629", + "Table": "\u062c\u062f\u0648\u0644", + "Table caption and summary cannot have the same value": "\u0644\u0627 \u064a\u0645\u0643\u0646 \u0623\u0646 \u062a\u0634\u062a\u0645\u0644 \u0627\u0644\u062a\u0633\u0645\u064a\u0629 \u0627\u0644\u062a\u0648\u0636\u064a\u062d\u064a\u0629 \u0644\u0644\u062c\u062f\u0648\u0644 \u0648\u0627\u0644\u0645\u0644\u062e\u0635 \u0639\u0644\u0649 \u0646\u0641\u0633 \u0627\u0644\u0642\u064a\u0645\u0629", + "Table caption cannot be the same as the table summary": "\u0644\u0627 \u064a\u0645\u0643\u0646 \u0623\u0646 \u062a\u0643\u0648\u0646 \u0627\u0644\u062a\u0633\u0645\u064a\u0629 \u0627\u0644\u062a\u0648\u0636\u064a\u062d\u064a\u0629 \u0644\u0644\u062c\u062f\u0648\u0644 \u0647\u064a \u0646\u0641\u0633 \u0645\u0644\u062e\u0635 \u0627\u0644\u062c\u062f\u0648\u0644", + "Table elements must contain TR and TD tags": "\u064a\u062c\u0628 \u0623\u0646 \u062a\u062d\u062a\u0648\u064a \u0639\u0646\u0627\u0635\u0631 \u0627\u0644\u062c\u062f\u0648\u0644 \u0639\u0644\u0649 \u0639\u0644\u0627\u0645\u0627\u062a TR\u200f \u0648 TD\u200f", + "Table headers must be applied to a row or a column": "\u064a\u062c\u0628 \u062a\u0637\u0628\u064a\u0642 \u0639\u0646\u0627\u0648\u064a\u0646 \u0627\u0644\u062c\u062f\u0648\u0644 \u0639\u0644\u0649 \u0635\u0641 \u0623\u0648 \u0639\u0645\u0648\u062f", + "Table summary cannot be the same as the table caption": "\u0644\u0627 \u064a\u0645\u0643\u0646 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0645\u0644\u062e\u0635 \u0627\u0644\u062c\u062f\u0648\u0644 \u0647\u0648 \u0646\u0641\u0633 \u0627\u0644\u062a\u0633\u0645\u064a\u0629 \u0627\u0644\u062a\u0648\u0636\u064a\u062d\u064a\u0629 \u0644\u0644\u062c\u062f\u0648\u0644", + "Tables must have at least one header cell": "\u064a\u062c\u0628 \u0623\u0646 \u062a\u062d\u062a\u0648\u064a \u0627\u0644\u062c\u062f\u0627\u0648\u0644 \u0639\u0644\u0649 \u062e\u0644\u064a\u0629 \u0639\u0646\u0648\u0627\u0646 \u0648\u0627\u062d\u062f\u0629 \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644", + "Tables must have captions": "\u064a\u062c\u0628 \u0623\u0646 \u062a\u062d\u062a\u0648\u064a \u0627\u0644\u062c\u062f\u0627\u0648\u0644 \u0639\u0644\u0649 \u062a\u0633\u0645\u064a\u0627\u062a \u062a\u0648\u0636\u064a\u062d\u064a\u0629", + "Text": "\u0646\u0635", + "Text description cannot be empty": "\u0644\u0627 \u064a\u0645\u0643\u0646 \u062a\u0631\u0643 \u0627\u0644\u0646\u0635 \u0627\u0644\u0648\u0635\u0641\u064a \u0641\u0627\u0631\u063a\u064b\u0627", + "Text description is too long": "\u0627\u0644\u0646\u0635 \u0627\u0644\u0648\u0635\u0641\u064a \u0637\u0648\u064a\u0644 \u0644\u0644\u063a\u0627\u064a\u0629", + "Text description should describe the image, not the filename": "\u064a\u0646\u0628\u063a\u064a \u0623\u0646 \u064a\u0635\u0641 \u0627\u0644\u0646\u0635 \u0627\u0644\u0648\u0635\u0641\u064a \u0627\u0644\u0635\u0648\u0631\u0629\u060c \u0648\u0644\u064a\u0633 \u0627\u0633\u0645 \u0627\u0644\u0645\u0644\u0641", + "Text description should not be the image filename": "\u064a\u0646\u0628\u063a\u064a \u0623\u0644\u0627 \u064a\u0643\u0648\u0646 \u0627\u0644\u0646\u0635 \u0627\u0644\u0648\u0635\u0641\u064a \u0647\u0648 \u0646\u0641\u0633\u0647 \u0627\u0633\u0645 \u0645\u0644\u0641 \u0627\u0644\u0635\u0648\u0631\u0629", + "Text must have a contrast ratio of at least 4.5:1": "\u064a\u062c\u0628 \u0623\u0646 \u062a\u0643\u0648\u0646 \u0646\u0633\u0628\u0629 \u062a\u0628\u0627\u064a\u0646 \u0627\u0644\u0646\u0635 4.5\u200f:1\u200f \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644", + "Text must have a contrast ratio of at least 7:1": "\u064a\u062c\u0628 \u0623\u0644\u0627 \u062a\u0642\u0644 \u0646\u0633\u0628\u0629 \u062a\u0628\u0627\u064a\u0646 \u0627\u0644\u0646\u0635 \u0639\u0646 7:1\u200f", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u064a\u0628\u062f\u0648 \u0623\u0646 \u0627\u0644\u0646\u0635 \u0627\u0644\u0645\u062d\u062f\u062f \u0642\u0627\u0626\u0645\u0629. \u064a\u062c\u0628 \u062a\u0646\u0633\u064a\u0642 \u0627\u0644\u0642\u0648\u0627\u0626\u0645 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0639\u0644\u0627\u0645\u0629 \u0642\u0627\u0626\u0645\u0629.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u062a\u062d\u062a\u0648\u064a \u0647\u0630\u0647 \u0627\u0644\u0635\u0648\u0631\u0629 \u0639\u0644\u0649 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0645\u062a\u0636\u0627\u0631\u0628\u0629. \u0642\u0645 \u0628\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0646\u0635 \u0627\u0644\u0648\u0635\u0641\u064a \u0644\u062c\u0639\u0644\u0647\u0627 \u0632\u062e\u0631\u0641\u064a\u0629\u060c \u0623\u0648 \u0625\u0632\u0627\u0644\u0629 \u0639\u0644\u0627\u0645\u0629 \u062a\u062d\u062f\u064a\u062f\u0647\u0627 \u0643\u0632\u062e\u0631\u0641\u064a\u0629.", + "This image is decorative": "\u0647\u0630\u0647 \u0627\u0644\u0635\u0648\u0631\u0629 \u0632\u062e\u0631\u0641\u064a\u0629", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u062a\u0628\u062f\u0648 \u0647\u0630\u0647 \u0627\u0644\u0641\u0642\u0631\u0629 \u0643\u0639\u0646\u0648\u0627\u0646. \u0625\u0630\u0627 \u0643\u0627\u0646 \u0647\u0630\u0627 \u0639\u0646\u0648\u0627\u0646\u064b\u0627\u060c \u064a\u0631\u062c\u0649 \u062a\u062d\u062f\u064a\u062f \u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u0639\u0646\u0648\u0627\u0646.", + "Warning": "\u062a\u062d\u0630\u064a\u0631", + "{0} characters (maximum {1} allowed)": "{0} \u0645\u0646 \u0627\u0644\u0623\u062d\u0631\u0641 (\u0627\u0644\u062d\u062f \u0627\u0644\u0623\u0642\u0635\u0649 \u0627\u0644\u0645\u0633\u0645\u0648\u062d \u0628\u0647: {1})" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/bg-BG.js b/plugins/a11ychecker/langs/bg-BG.js new file mode 100644 index 00000000..8bc3500a --- /dev/null +++ b/plugins/a11ychecker/langs/bg-BG.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("bg-BG", { + '"{0}"': "\u201e{0}\u201c", + "Accessibility Checker": "\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0434\u043e\u0441\u0442\u044a\u043f\u043d\u043e\u0441\u0442\u0442\u0430", + "Accessibility checker...": "\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0434\u043e\u0441\u0442\u044a\u043f\u043d\u043e\u0441\u0442\u0442\u0430...", + "Add a text description": "\u0414\u043e\u0431\u0430\u0432\u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", + "Add a text description for this image": "\u0414\u043e\u0431\u0430\u0432\u0435\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0437\u0430 \u0442\u043e\u0432\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435", + "Adjacent links with the same URL should be merged into one link": "\u0421\u044a\u0441\u0435\u0434\u043d\u0438 \u0432\u0440\u044a\u0437\u043a\u0438 \u0441 \u0435\u0434\u0438\u043d \u0438 \u0441\u044a\u0449\u0438 URL \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0431\u044a\u0434\u0430\u0442 \u043e\u0431\u0435\u0434\u0438\u043d\u044f\u0432\u0430\u043d\u0438 \u0432 \u0435\u0434\u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430", + "Caption cannot be empty": "\u041d\u0430\u0434\u043f\u0438\u0441\u044a\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043f\u0440\u0430\u0437\u0435\u043d", + "Choose table header": "\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430", + "Click for more info": "\u0429\u0440\u0430\u043a\u043d\u0435\u0442\u0435 \u0437\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f", + "Column": "\u041a\u043e\u043b\u043e\u043d\u0430", + "Column group": "\u0413\u0440\u0443\u043f\u0430 \u043a\u043e\u043b\u043e\u043d\u0438", + "Complex tables should have summaries": "\u0421\u043b\u043e\u0436\u043d\u0438\u0442\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0438 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043c\u0430\u0442 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u044f", + "Decorative images are not allowed. Please add a text description.": "\u041d\u0435 \u0441\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0442 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u041c\u043e\u043b\u044f, \u0434\u043e\u0431\u0430\u0432\u0435\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435.", + "Error": "\u0413\u0440\u0435\u0448\u043a\u0430", + "Header column": "\u041a\u043e\u043b\u043e\u043d\u0430 \u0441\u044a\u0441 \u0437\u0430\u0433\u043b\u0430\u0432\u043a\u0430", + "Header row": "\u0420\u0435\u0434 \u0441\u044a\u0441 \u0437\u0430\u0433\u043b\u0430\u0432\u043a\u0430", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u044f\u0442\u0430 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0431\u044a\u0434\u0430\u0442 \u043f\u0440\u0438\u043b\u0430\u0433\u0430\u043d\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u043d\u043e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u0421\u043b\u0435\u0434 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435 1 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u043b\u0435\u0434\u0432\u0430 \u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 2, \u0430 \u043d\u0435 \u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 3.", + "ID attribute must be unique": "\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044a\u0442 \u043d\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0431\u044a\u0434\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u0435\u043d", + "Ignore": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0430\u043d\u0435", + "Image": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435", + "Image must be marked as decorative or have an alternative text description": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u043e \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043c\u0430\u0440\u043a\u0438\u0440\u0430\u043d\u043e \u043a\u0430\u0442\u043e \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u0438\u043b\u0438 \u0434\u0430 \u0438\u043c\u0430 \u0430\u043b\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", + "Image needs a text description": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u043e \u0441\u0435 \u043d\u0443\u0436\u0434\u0430\u0435 \u043e\u0442 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", + "Info": "\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f", + "Issue {0} of {1}": "\u041f\u0440\u043e\u0431\u043b\u0435\u043c {0} \u043e\u0442 {1}", + "Keep this ID and remove all others": "\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0437\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0438 \u043f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u043e\u0441\u0442\u0430\u043d\u0430\u043b\u0438", + "Large text must have a contrast ratio of at least 3:1": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0435 \u0441 \u0433\u043e\u043b\u044f\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043c\u0430\u0442 \u0441\u044a\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u0430 \u043f\u043e\u043d\u0435 3:1", + "Link": "\u0412\u0440\u044a\u0437\u043a\u0430", + "Make ID unique": "\u041d\u0430\u043f\u0440\u0430\u0432\u0435\u0442\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0443\u043d\u0438\u043a\u0430\u043b\u0435\u043d", + "Mark as decorative": "\u041c\u0430\u0440\u043a\u0438\u0440\u0430\u043d\u0435 \u043a\u0430\u0442\u043e \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e", + "More info": "\u041f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f", + "Next issue": "\u0421\u043b\u0435\u0434\u0432\u0430\u0449 \u043f\u0440\u043e\u0431\u043b\u0435\u043c", + "No accessibility issues detected": "\u041d\u0435 \u0441\u0430 \u043e\u0442\u043a\u0440\u0438\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438 \u0441 \u0434\u043e\u0441\u0442\u044a\u043f\u0430", + "Or add a text description": "\u0418\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0435\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", + "Previous issue": "\u041f\u0440\u0435\u0434\u0438\u0448\u0435\u043d \u043f\u0440\u043e\u0431\u043b\u0435\u043c", + "Provide caption": "\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u043d\u0430\u0434\u043f\u0438\u0441", + "Provide table summary": "\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430", + "Remove all IDs": "\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0438", + "Remove this ID": "\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0437\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440", + "Repair": "\u041f\u043e\u043f\u0440\u0430\u0432\u044f\u043d\u0435", + "Repair issue": "\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043f\u043e\u043f\u0440\u0430\u0432\u043a\u0430\u0442\u0430", + "Replace filename with a meaningful description": "\u0417\u0430\u043c\u0435\u043d\u0435\u0442\u0435 \u0438\u043c\u0435\u0442\u043e \u043d\u0430 \u0444\u0430\u0439\u043b\u0430 \u0441 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", + "Row": "\u0420\u0435\u0434", + "Row group": "\u0413\u0440\u0443\u043f\u0430 \u0440\u0435\u0434\u043e\u0432\u0435", + "Select a heading level": "\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u043d\u0438\u0432\u043e \u043d\u0430 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435\u0442\u043e", + "Select header scope": "\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043d\u0430 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435\u0442\u043e", + "Shorten the text description": "\u0421\u044a\u043a\u0440\u0430\u0442\u0435\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", + "Solution": "\u0420\u0435\u0448\u0435\u043d\u0438\u0435", + "Success": "\u0423\u0441\u043f\u0435\u0448\u043d\u043e", + "Summary cannot be empty": "\u041e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043f\u0440\u0430\u0437\u043d\u043e", + "Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430", + "Table caption and summary cannot have the same value": "\u041d\u0430\u0434\u043f\u0438\u0441\u044a\u0442 \u0438 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043c\u0430\u0442 \u0435\u0434\u043d\u0430\u043a\u0432\u0438 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442\u0438", + "Table caption cannot be the same as the table summary": "\u041d\u0430\u0434\u043f\u0438\u0441\u044a\u0442 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u0441\u044a\u0449\u0438\u044f \u043a\u0430\u0442\u043e \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430", + "Table elements must contain TR and TD tags": "\u0415\u043b\u0435\u043c\u0435\u043d\u0442\u0438\u0442\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u0442 \u0435\u0442\u0438\u043a\u0435\u0442\u0438 TR \u0438 TD", + "Table headers must be applied to a row or a column": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u044f\u0442\u0430 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0431\u044a\u0434\u0430\u0442 \u043f\u0440\u0438\u043b\u0430\u0433\u0430\u043d\u0438 \u043a\u044a\u043c \u0440\u0435\u0434 \u0438\u043b\u0438 \u043a\u044a\u043c \u043a\u043e\u043b\u043e\u043d\u0430", + "Table summary cannot be the same as the table caption": "\u041e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u0441\u044a\u0449\u043e\u0442\u043e \u043a\u0430\u0442\u043e \u043d\u0430\u0434\u043f\u0438\u0441\u0430 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430", + "Tables must have at least one header cell": "\u0422\u0430\u0431\u043b\u0438\u0446\u0438\u0442\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043c\u0430\u0442 \u043f\u043e\u043d\u0435 \u0435\u0434\u043d\u0430 \u0437\u0430\u0433\u043b\u0430\u0432\u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0430", + "Tables must have captions": "\u0422\u0430\u0431\u043b\u0438\u0446\u0438\u0442\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043c\u0430\u0442 \u043d\u0430\u0434\u043f\u0438\u0441\u0438", + "Text": "\u0422\u0435\u043a\u0441\u0442", + "Text description cannot be empty": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043f\u0440\u0430\u0437\u043d\u043e", + "Text description is too long": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0435 \u043f\u0440\u0435\u043a\u0430\u043b\u0435\u043d\u043e \u0434\u044a\u043b\u0433\u043e", + "Text description should describe the image, not the filename": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435, \u0430 \u043d\u0435 \u0438\u043c\u0435\u0442\u043e \u043d\u0430 \u0444\u0430\u0439\u043b\u0430, \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u043e\u043f\u0438\u0441\u0432\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u043e", + "Text description should not be the image filename": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0431\u044a\u0434\u0435 \u0438\u043c\u0435\u0442\u043e \u043d\u0430 \u0444\u0430\u0439\u043b\u0430 \u0441 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u043e", + "Text must have a contrast ratio of at least 4.5:1": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043c\u0430\u0442 \u0441\u044a\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u0430 \u043f\u043e\u043d\u0435 4.5:1", + "Text must have a contrast ratio of at least 7:1": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043c\u0430\u0442 \u0441\u044a\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u0430 \u043f\u043e\u043d\u0435 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u0418\u0437\u0431\u0440\u0430\u043d\u0438\u044f\u0442 \u0442\u0435\u043a\u0441\u0442 \u0438\u0437\u0433\u043b\u0435\u0436\u0434\u0430 \u0435 \u0441\u043f\u0438\u0441\u044a\u043a. \u0421\u043f\u0438\u0441\u044a\u0446\u0438\u0442\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0431\u044a\u0434\u0430\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d\u0438 \u0447\u0440\u0435\u0437 \u0438\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0435\u0442\u0438\u043a\u0435\u0442 \u0437\u0430 \u0441\u043f\u0438\u0441\u044a\u043a.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u0422\u043e\u0432\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u044a\u0434\u044a\u0440\u0436\u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0432\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f. \u041f\u0440\u0435\u043c\u0430\u0445\u043d\u0435\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435, \u0437\u0430 \u0434\u0430 \u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e, \u0438\u043b\u0438 \u043f\u0440\u0435\u043c\u0430\u0445\u043d\u0435\u0442\u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u0442\u0430 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0430.", + "This image is decorative": "\u0422\u043e\u0432\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u0422\u043e\u0437\u0438 \u043f\u0430\u0440\u0430\u0433\u0440\u0430\u0444 \u0438\u0437\u0433\u043b\u0435\u0436\u0434\u0430 \u043a\u0430\u0442\u043e \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435. \u0410\u043a\u043e \u0435 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435, \u043c\u043e\u043b\u044f, \u0438\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u043d\u0438\u0432\u043e \u043d\u0430 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435.", + "Warning": "\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435", + "{0} characters (maximum {1} allowed)": "{0} \u0441\u0438\u043c\u0432\u043e\u043b\u0430 (\u043d\u0430\u0439-\u043c\u043d\u043e\u0433\u043e {1})" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/bg_BG.js b/plugins/a11ychecker/langs/bg_BG.js new file mode 100644 index 00000000..045c995a --- /dev/null +++ b/plugins/a11ychecker/langs/bg_BG.js @@ -0,0 +1,80 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("bg-BG", { + '"{0}"': "\u201e{0}\u201c", + "Accessibility Checker": "\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0434\u043e\u0441\u0442\u044a\u043f\u043d\u043e\u0441\u0442\u0442\u0430", + "Accessibility checker...": "\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0434\u043e\u0441\u0442\u044a\u043f\u043d\u043e\u0441\u0442\u0442\u0430...", + "Add a text description": "\u0414\u043e\u0431\u0430\u0432\u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", + "Add a text description for this image": "\u0414\u043e\u0431\u0430\u0432\u0435\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0437\u0430 \u0442\u043e\u0432\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435", + "Adjacent links with the same URL should be merged into one link": "\u0421\u044a\u0441\u0435\u0434\u043d\u0438 \u0432\u0440\u044a\u0437\u043a\u0438 \u0441 \u0435\u0434\u0438\u043d \u0438 \u0441\u044a\u0449\u0438 URL \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0431\u044a\u0434\u0430\u0442 \u043e\u0431\u0435\u0434\u0438\u043d\u044f\u0432\u0430\u043d\u0438 \u0432 \u0435\u0434\u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430", + "Caption cannot be empty": "\u041d\u0430\u0434\u043f\u0438\u0441\u044a\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043f\u0440\u0430\u0437\u0435\u043d", + "Choose table header": "\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430", + "Click for more info": "\u0429\u0440\u0430\u043a\u043d\u0435\u0442\u0435 \u0437\u0430 \u043f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f", + "Column": "\u041a\u043e\u043b\u043e\u043d\u0430", + "Column group": "\u0413\u0440\u0443\u043f\u0430 \u043a\u043e\u043b\u043e\u043d\u0438", + "Complex tables should have summaries": "\u0421\u043b\u043e\u0436\u043d\u0438\u0442\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0438 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043c\u0430\u0442 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u044f", + "Decorative images are not allowed. Please add a text description.": "\u041d\u0435 \u0441\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0442 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u041c\u043e\u043b\u044f, \u0434\u043e\u0431\u0430\u0432\u0435\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435.", + "Error": "\u0413\u0440\u0435\u0448\u043a\u0430", + "Header column": "\u041a\u043e\u043b\u043e\u043d\u0430 \u0441\u044a\u0441 \u0437\u0430\u0433\u043b\u0430\u0432\u043a\u0430", + "Header row": "\u0420\u0435\u0434 \u0441\u044a\u0441 \u0437\u0430\u0433\u043b\u0430\u0432\u043a\u0430", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u044f\u0442\u0430 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0431\u044a\u0434\u0430\u0442 \u043f\u0440\u0438\u043b\u0430\u0433\u0430\u043d\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u043d\u043e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u0421\u043b\u0435\u0434 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435 1 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u043b\u0435\u0434\u0432\u0430 \u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 2, \u0430 \u043d\u0435 \u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 3.", + "ID attribute must be unique": "\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044a\u0442 \u043d\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0431\u044a\u0434\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u0435\u043d", + "Ignore": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0430\u043d\u0435", + "Image": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435", + "Image must be marked as decorative or have an alternative text description": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u043e \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043c\u0430\u0440\u043a\u0438\u0440\u0430\u043d\u043e \u043a\u0430\u0442\u043e \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u0438\u043b\u0438 \u0434\u0430 \u0438\u043c\u0430 \u0430\u043b\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", + "Image needs a text description": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u043e \u0441\u0435 \u043d\u0443\u0436\u0434\u0430\u0435 \u043e\u0442 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", + "Info": "\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f", + "Issue {0} of {1}": "\u041f\u0440\u043e\u0431\u043b\u0435\u043c {0} \u043e\u0442 {1}", + "Keep this ID and remove all others": "\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0437\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0438 \u043f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u043e\u0441\u0442\u0430\u043d\u0430\u043b\u0438", + "Large text must have a contrast ratio of at least 3:1": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0435 \u0441 \u0433\u043e\u043b\u044f\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043c\u0430\u0442 \u0441\u044a\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u0430 \u043f\u043e\u043d\u0435 3:1", + "Link": "\u0412\u0440\u044a\u0437\u043a\u0430", + "Make ID unique": "\u041d\u0430\u043f\u0440\u0430\u0432\u0435\u0442\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0443\u043d\u0438\u043a\u0430\u043b\u0435\u043d", + "Mark as decorative": "\u041c\u0430\u0440\u043a\u0438\u0440\u0430\u043d\u0435 \u043a\u0430\u0442\u043e \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e", + "More info": "\u041f\u043e\u0432\u0435\u0447\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f", + "Next issue": "\u0421\u043b\u0435\u0434\u0432\u0430\u0449 \u043f\u0440\u043e\u0431\u043b\u0435\u043c", + "No accessibility issues detected": "\u041d\u0435 \u0441\u0430 \u043e\u0442\u043a\u0440\u0438\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0438 \u0441 \u0434\u043e\u0441\u0442\u044a\u043f\u0430", + "Or add a text description": "\u0418\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0435\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", + "Previous issue": "\u041f\u0440\u0435\u0434\u0438\u0448\u0435\u043d \u043f\u0440\u043e\u0431\u043b\u0435\u043c", + "Provide caption": "\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u043d\u0430\u0434\u043f\u0438\u0441", + "Provide table summary": "\u0412\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430", + "Remove all IDs": "\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0438", + "Remove this ID": "\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u043e\u0437\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440", + "Repair": "\u041f\u043e\u043f\u0440\u0430\u0432\u044f\u043d\u0435", + "Repair issue": "\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043f\u043e\u043f\u0440\u0430\u0432\u043a\u0430\u0442\u0430", + "Replace filename with a meaningful description": "\u0417\u0430\u043c\u0435\u043d\u0435\u0442\u0435 \u0438\u043c\u0435\u0442\u043e \u043d\u0430 \u0444\u0430\u0439\u043b\u0430 \u0441 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", + "Row": "\u0420\u0435\u0434", + "Row group": "\u0413\u0440\u0443\u043f\u0430 \u0440\u0435\u0434\u043e\u0432\u0435", + "Select a heading level": "\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u043d\u0438\u0432\u043e \u043d\u0430 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435\u0442\u043e", + "Select header scope": "\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043d\u0430 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435\u0442\u043e", + "Shorten the text description": "\u0421\u044a\u043a\u0440\u0430\u0442\u0435\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", + "Solution": "\u0420\u0435\u0448\u0435\u043d\u0438\u0435", + "Success": "\u0423\u0441\u043f\u0435\u0448\u043d\u043e", + "Summary cannot be empty": "\u041e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043f\u0440\u0430\u0437\u043d\u043e", + "Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430", + "Table caption and summary cannot have the same value": "\u041d\u0430\u0434\u043f\u0438\u0441\u044a\u0442 \u0438 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043c\u0430\u0442 \u0435\u0434\u043d\u0430\u043a\u0432\u0438 \u0441\u0442\u043e\u0439\u043d\u043e\u0441\u0442\u0438", + "Table caption cannot be the same as the table summary": "\u041d\u0430\u0434\u043f\u0438\u0441\u044a\u0442 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u0441\u044a\u0449\u0438\u044f \u043a\u0430\u0442\u043e \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430", + "Table elements must contain TR and TD tags": "\u0415\u043b\u0435\u043c\u0435\u043d\u0442\u0438\u0442\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u0442 \u0435\u0442\u0438\u043a\u0435\u0442\u0438 TR \u0438 TD", + "Table headers must be applied to a row or a column": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u044f\u0442\u0430 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0431\u044a\u0434\u0430\u0442 \u043f\u0440\u0438\u043b\u0430\u0433\u0430\u043d\u0438 \u043a\u044a\u043c \u0440\u0435\u0434 \u0438\u043b\u0438 \u043a\u044a\u043c \u043a\u043e\u043b\u043e\u043d\u0430", + "Table summary cannot be the same as the table caption": "\u041e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u0442\u043e \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u0441\u044a\u0449\u043e\u0442\u043e \u043a\u0430\u0442\u043e \u043d\u0430\u0434\u043f\u0438\u0441\u0430 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430", + "Tables must have at least one header cell": "\u0422\u0430\u0431\u043b\u0438\u0446\u0438\u0442\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043c\u0430\u0442 \u043f\u043e\u043d\u0435 \u0435\u0434\u043d\u0430 \u0437\u0430\u0433\u043b\u0430\u0432\u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0430", + "Tables must have captions": "\u0422\u0430\u0431\u043b\u0438\u0446\u0438\u0442\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043c\u0430\u0442 \u043d\u0430\u0434\u043f\u0438\u0441\u0438", + "Text": "\u0422\u0435\u043a\u0441\u0442", + "Text description cannot be empty": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0431\u044a\u0434\u0435 \u043f\u0440\u0430\u0437\u043d\u043e", + "Text description is too long": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0435 \u043f\u0440\u0435\u043a\u0430\u043b\u0435\u043d\u043e \u0434\u044a\u043b\u0433\u043e", + "Text description should describe the image, not the filename": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435, \u0430 \u043d\u0435 \u0438\u043c\u0435\u0442\u043e \u043d\u0430 \u0444\u0430\u0439\u043b\u0430, \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u043e\u043f\u0438\u0441\u0432\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u043e", + "Text description should not be the image filename": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0431\u044a\u0434\u0435 \u0438\u043c\u0435\u0442\u043e \u043d\u0430 \u0444\u0430\u0439\u043b\u0430 \u0441 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u043e", + "Text must have a contrast ratio of at least 4.5:1": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043c\u0430\u0442 \u0441\u044a\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u0430 \u043f\u043e\u043d\u0435 4.5:1", + "Text must have a contrast ratio of at least 7:1": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0438\u043c\u0430\u0442 \u0441\u044a\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u0430 \u043f\u043e\u043d\u0435 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u0418\u0437\u0431\u0440\u0430\u043d\u0438\u044f\u0442 \u0442\u0435\u043a\u0441\u0442 \u0438\u0437\u0433\u043b\u0435\u0436\u0434\u0430 \u0435 \u0441\u043f\u0438\u0441\u044a\u043a. \u0421\u043f\u0438\u0441\u044a\u0446\u0438\u0442\u0435 \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0431\u044a\u0434\u0430\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d\u0438 \u0447\u0440\u0435\u0437 \u0438\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0435\u0442\u0438\u043a\u0435\u0442 \u0437\u0430 \u0441\u043f\u0438\u0441\u044a\u043a.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u0422\u043e\u0432\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u044a\u0434\u044a\u0440\u0436\u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0432\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f. \u041f\u0440\u0435\u043c\u0430\u0445\u043d\u0435\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435, \u0437\u0430 \u0434\u0430 \u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e, \u0438\u043b\u0438 \u043f\u0440\u0435\u043c\u0430\u0445\u043d\u0435\u0442\u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u0442\u0430 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0430.", + "This image is decorative": "\u0422\u043e\u0432\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u0422\u043e\u0437\u0438 \u043f\u0430\u0440\u0430\u0433\u0440\u0430\u0444 \u0438\u0437\u0433\u043b\u0435\u0436\u0434\u0430 \u043a\u0430\u0442\u043e \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435. \u0410\u043a\u043e \u0435 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435, \u043c\u043e\u043b\u044f, \u0438\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u043d\u0438\u0432\u043e \u043d\u0430 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435.", + "Warning": "\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435", + "{0} characters (maximum {1} allowed)": "{0} \u0441\u0438\u043c\u0432\u043e\u043b\u0430 (\u043d\u0430\u0439-\u043c\u043d\u043e\u0433\u043e {1})" +}); + +console.warn('TinyMCE language code "bg_BG" is deprecated, please use "bg-BG" instead.'); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/ca.js b/plugins/a11ychecker/langs/ca.js new file mode 100644 index 00000000..7aeecbaa --- /dev/null +++ b/plugins/a11ychecker/langs/ca.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ca", { + '"{0}"': '"{0}"', + "Accessibility Checker": "Comprovaci\xf3 d'accessibilitat", + "Accessibility checker...": "Comprovador d'accessibilitat...", + "Add a text description": "Afegiu una descripci\xf3 textual", + "Add a text description for this image": "Afegiu una descripci\xf3 textual per a aquesta imatge", + "Adjacent links with the same URL should be merged into one link": "Els enlla\xe7os adjacents amb la mateixa URL s'haurien de combinar en un enlla\xe7", + "Caption cannot be empty": "La llegenda no pot estar buida", + "Choose table header": "Trieu la cap\xe7alera de la taula", + "Click for more info": "Feu clic per obtenir m\xe9s informaci\xf3", + "Column": "Columna", + "Column group": "Grup de columnes", + "Complex tables should have summaries": "Les taules complexes han de tenir resums", + "Decorative images are not allowed. Please add a text description.": "No es permeten les imatges decoratives. Afegiu una descripci\xf3 textual.", + "Error": "Error", + "Header column": "Columna de cap\xe7alera", + "Header row": "Fila de cap\xe7alera", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Els encap\xe7alaments s'han d'aplicar de forma consecutiva. Per exemple: l'encap\xe7alament 1 ha d'anar seguit de l'encap\xe7alament 2, no de l'encap\xe7alament 3.", + "ID attribute must be unique": "L'atribut de l'identificador ha de ser \xfanic", + "Ignore": "Ignorar", + "Image": "Imatge", + "Image must be marked as decorative or have an alternative text description": "La imatge s'ha de marcar com a decorativa o ha de tenir una descripci\xf3 textual alternativa", + "Image needs a text description": "La imatge necessita una descripci\xf3 textual", + "Info": "Informaci\xf3", + "Issue {0} of {1}": "Problema {0} de {1}", + "Keep this ID and remove all others": "Manteniu aquest identificador i suprimiu-ne tots els altres", + "Large text must have a contrast ratio of at least 3:1": "El text de mida gran ha de tenir una relaci\xf3 de contrast de com a m\xednim 3:1", + "Link": "Enlla\xe7", + "Make ID unique": "Feu l'identificador \xfanic", + "Mark as decorative": "Marca com a decorativa", + "More info": "M\xe9s informaci\xf3", + "Next issue": "Problema seg\xfcent", + "No accessibility issues detected": "No s'han detectat problemes d'accessibilitat", + "Or add a text description": "O afegiu una descripci\xf3 textual", + "Previous issue": "Problema anterior", + "Provide caption": "Introdu\xefu una llegenda", + "Provide table summary": "Introdu\xefu el resum de la taula", + "Remove all IDs": "Suprimir tots els identificadors", + "Remove this ID": "Suprimir aquest identificador", + "Repair": "Reparar", + "Repair issue": "Reparar problema", + "Replace filename with a meaningful description": "Substitueix el nom del fitxer amb una descripci\xf3 rellevant", + "Row": "Fila", + "Row group": "Grup de files", + "Select a heading level": "Seleccioneu un nivell d'encap\xe7alament", + "Select header scope": "Seleccioneu l'abast de la cap\xe7alera", + "Shorten the text description": "Escur\xe7a la descripci\xf3 textual", + "Solution": "Soluci\xf3", + "Success": "\xc8xit", + "Summary cannot be empty": "El resum de la taula no pot estar buit", + "Table": "Taula", + "Table caption and summary cannot have the same value": "El resum i la llegenda de la taula no poden tenir el mateix valor", + "Table caption cannot be the same as the table summary": "La llegenda de la taula no pot ser la mateixa que el resum de la taula", + "Table elements must contain TR and TD tags": "Els elements de la taula han de contenir etiquetes TR i TD", + "Table headers must be applied to a row or a column": "Les cap\xe7aleres de taula s'han d'aplicar a una fila o a una columna", + "Table summary cannot be the same as the table caption": "El resum de la taula no pot ser el mateix que la llegenda de la taula", + "Tables must have at least one header cell": "Les taules han de tenir almenys una cel\xb7la de cap\xe7alera", + "Tables must have captions": "Les taules han de tenir llegendes", + "Text": "Text", + "Text description cannot be empty": "La descripci\xf3 textual no pot estar buida", + "Text description is too long": "La descripci\xf3 textual \xe9s massa llarga", + "Text description should describe the image, not the filename": "El text, i no el nom del fitxer, hauria de descriure la imatge", + "Text description should not be the image filename": "La descripci\xf3 textual no hauria de ser el nom del fitxer de la imatge", + "Text must have a contrast ratio of at least 4.5:1": "El text ha de tenir una relaci\xf3 de contrast de com a m\xednim 4.5:1", + "Text must have a contrast ratio of at least 7:1": "El text ha de tenir una relaci\xf3 de contrast de com a m\xednim 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Sembla que el text seleccionat \xe9s una llista. Les llistes s'han de formatar amb una etiqueta de llista.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Aquesta imatge t\xe9 informaci\xf3 contradict\xf2ria. Elimineu la descripci\xf3 textual per fer-la decorativa, o elimineu la marca de decorativa.", + "This image is decorative": "Aquesta imatge \xe9s decorativa", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Aquest par\xe0graf sembla un encap\xe7alament. Si \xe9s un encap\xe7alament, selecciona un nivell d'encap\xe7alament.", + "Warning": "Advert\xe8ncia", + "{0} characters (maximum {1} allowed)": "{0} car\xe0cters (m\xe0xim {1} permesos)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/cs.js b/plugins/a11ychecker/langs/cs.js new file mode 100644 index 00000000..5bc965f8 --- /dev/null +++ b/plugins/a11ychecker/langs/cs.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("cs", { + '"{0}"': "\u201e{0}\u201c", + "Accessibility Checker": "Kontrola dostupnosti", + "Accessibility checker...": "Kontrola dostupnosti...", + "Add a text description": "P\u0159idejte textov\xfd popis", + "Add a text description for this image": "P\u0159idejte k\xa0tomuto obr\xe1zku textov\xfd popis", + "Adjacent links with the same URL should be merged into one link": "Sousedn\xed odkazy se stejnou adresou URL by m\u011bly b\xfdt slou\u010deny do jednoho odkazu", + "Caption cannot be empty": "Titulek nesm\xed b\xfdt pr\xe1zdn\xfd", + "Choose table header": "Vyberte z\xe1hlav\xed tabulky", + "Click for more info": "Klikn\u011bte pro dal\u0161\xed informace", + "Column": "Sloupec", + "Column group": "Skupina sloupc\u016f", + "Complex tables should have summaries": "Slo\u017eit\xe9 tabulky by m\u011bly m\xedt souhrny", + "Decorative images are not allowed. Please add a text description.": "Dekorativn\xed obr\xe1zky nejsou povoleny. P\u0159idejte pros\xedm textov\xfd popis.", + "Error": "Chyba", + "Header column": "Sloupec se z\xe1hlav\xedm", + "Header row": "\u0158\xe1dek se z\xe1hlav\xedm", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Nadpisy musej\xed b\xfdt pou\u017eity v postupn\xe9m po\u0159ad\xed. Nap\u0159\xedklad: Po Nadpisu 1 by m\u011bl n\xe1sledovat Nadpis 2, nikoli Nadpis 3.", + "ID attribute must be unique": "Atribut ID mus\xed b\xfdt jedine\u010dn\xfd", + "Ignore": "Ignorovat", + "Image": "Obr\xe1zek", + "Image must be marked as decorative or have an alternative text description": "Obr\xe1zek mus\xed b\xfdt ozna\u010den jako dekorativn\xed nebo mus\xed m\xedt alternativn\xed textov\xfd popis", + "Image needs a text description": "Obr\xe1zek pot\u0159ebuje textov\xfd popis", + "Info": "Info", + "Issue {0} of {1}": "Probl\xe9m {0} z {1}", + "Keep this ID and remove all others": "Zachovat toto ID a odebrat v\u0161echna ostatn\xed", + "Large text must have a contrast ratio of at least 3:1": "Velk\xfd text mus\xed m\xedt kontrastn\xed pom\u011br alespo\u0148 3:1", + "Link": "Odkaz", + "Make ID unique": "Vytvo\u0159it jedine\u010dn\xe9 ID", + "Mark as decorative": "Ozna\u010dit jako dekorativn\xed", + "More info": "V\xedce informac\xed", + "Next issue": "N\xe1sleduj\xedc\xed probl\xe9m", + "No accessibility issues detected": "Nebyly zji\u0161t\u011bny \u017e\xe1dn\xe9 probl\xe9my s dostupnost\xed", + "Or add a text description": "Nebo p\u0159idejte textov\xfd popis", + "Previous issue": "P\u0159edchoz\xed probl\xe9m", + "Provide caption": "Zadejte titulek", + "Provide table summary": "Zadejte souhrn tabulky", + "Remove all IDs": "Odebrat v\u0161echna ID", + "Remove this ID": "Odebrat toto ID", + "Repair": "Opravit", + "Repair issue": "Odstranit probl\xe9m", + "Replace filename with a meaningful description": "Nahra\u010fte n\xe1zev souboru smyslupln\xfdm popisem", + "Row": "\u0158\xe1dek", + "Row group": "Skupina \u0159\xe1dk\u016f", + "Select a heading level": "Vyberte \xfarove\u0148 nadpisu", + "Select header scope": "Vyberte rozsah z\xe1hlav\xed", + "Shorten the text description": "Zkra\u0165te textov\xfd popis", + "Solution": "\u0158e\u0161en\xed", + "Success": "\xdasp\u011b\u0161n\u011b dokon\u010deno", + "Summary cannot be empty": "Souhrn nesm\xed b\xfdt pr\xe1zdn\xfd", + "Table": "Tabulka", + "Table caption and summary cannot have the same value": "Titulek a souhrn tabulky nemohou m\xedt stejnou hodnotu", + "Table caption cannot be the same as the table summary": "Titulek tabulky nesm\xed b\xfdt stejn\xfd jako souhrn tabulky", + "Table elements must contain TR and TD tags": "Prvky tabulky musej\xed obsahovat tagy TR a TD", + "Table headers must be applied to a row or a column": "Z\xe1hlav\xed tabulky musej\xed b\xfdt pou\u017eita na \u0159\xe1dek nebo sloupec", + "Table summary cannot be the same as the table caption": "Souhrn tabulky nesm\xed b\xfdt stejn\xfd jako titulek tabulky", + "Tables must have at least one header cell": "Tabulky musej\xed m\xedt alespo\u0148 jednu bu\u0148ku z\xe1hlav\xed", + "Tables must have captions": "Tabulky musej\xed m\xedt titulek", + "Text": "Text", + "Text description cannot be empty": "Textov\xfd popis nesm\xed b\xfdt pr\xe1zdn\xfd", + "Text description is too long": "Textov\xfd popis je p\u0159\xedli\u0161 dlouh\xfd", + "Text description should describe the image, not the filename": "Obr\xe1zek by m\u011bl popisovat textov\xfd popis, nikoli n\xe1zev souboru.", + "Text description should not be the image filename": "Textov\xfd popis by nem\u011bl b\xfdt n\xe1zvem souboru obr\xe1zku.", + "Text must have a contrast ratio of at least 4.5:1": "Text mus\xed m\xedt kontrastn\xed pom\u011br alespo\u0148 4,5:1", + "Text must have a contrast ratio of at least 7:1": "Text mus\xed m\xedt kontrastn\xed pom\u011br alespo\u0148 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Zd\xe1 se, \u017ee vybran\xfd text p\u0159edstavuje seznam. Seznamy by m\u011bly b\xfdt form\xe1tov\xe1ny pomoc\xed tagu ozna\u010duj\xedc\xedho polo\u017eky seznamu.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Tento obr\xe1zek obsahuje konfliktn\xed informace. Bu\u010f odstra\u0148te textov\xfd popis, aby byl obr\xe1zek pouze dekorativn\xed, nebo odstra\u0148te ozna\u010den\xed \u201edekorativn\xed\u201c.", + "This image is decorative": "Tento obr\xe1zek je dekorativn\xed", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Tento odstavec vypad\xe1 jako nadpis. Pokud se jedn\xe1 o nadpis, vyberte pros\xedm \xfarove\u0148 nadpisu.", + "Warning": "Upozorn\u011bn\xed", + "{0} characters (maximum {1} allowed)": "Po\u010det znak\u016f: {0} (maxim\xe1ln\xed povolen\xfd po\u010det: {1})" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/da.js b/plugins/a11ychecker/langs/da.js new file mode 100644 index 00000000..d9e41c18 --- /dev/null +++ b/plugins/a11ychecker/langs/da.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("da", { + '"{0}"': '"{0}"', + "Accessibility Checker": "Tilg\xe6ngelighedskontrol", + "Accessibility checker...": "Tilg\xe6ngelighedskontrol...", + "Add a text description": "Tilf\xf8j en beskrivelsesteksten", + "Add a text description for this image": "Tilf\xf8j en beskrivelsestekst til dette billede", + "Adjacent links with the same URL should be merged into one link": "Tilst\xf8dende links med samme URL-adresse skal sammenl\xe6gges til \xe9t link", + "Caption cannot be empty": "Billedtekst skal udfyldes", + "Choose table header": "V\xe6lg tabeloverskrift", + "Click for more info": "Klik for n\xe6rmere information", + "Column": "Kolonne", + "Column group": "Kolonnegruppe", + "Complex tables should have summaries": "Komplekse tabeller skal have sammenfatninger", + "Decorative images are not allowed. Please add a text description.": "Dekorative billeder er ikke tilladt. Tilf\xf8j en beskrivelsestekst.", + "Error": "Fejl", + "Header column": "Overskriftskolonne", + "Header row": "Overskriftsr\xe6kke", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Overskrifter skal tilf\xf8jes i r\xe6kkef\xf8lge. For eksempel: Overskrift 1 efterf\xf8lges af Overskrift 2, ikke Overskrift 3.", + "ID attribute must be unique": "Id-attribut skal v\xe6re unik", + "Ignore": "Ignorer", + "Image": "Billede", + "Image must be marked as decorative or have an alternative text description": "Billedet skal markeres som dekorative eller have en alternativ beskrivelsestekst", + "Image needs a text description": "Billedet skal have en beskrivelsestekst", + "Info": "Information", + "Issue {0} of {1}": "Problem {0} af {1}", + "Keep this ID and remove all others": "Behold dette id, og fjern alle andre", + "Large text must have a contrast ratio of at least 3:1": "St\xf8rre tekst skal have et kontrastforhold p\xe5 mindst 3:1", + "Link": "Link", + "Make ID unique": "G\xf8r id unikt", + "Mark as decorative": "Marker som dekorativt", + "More info": "Mere info", + "Next issue": "N\xe6ste problem", + "No accessibility issues detected": "Ingen tilg\xe6ngelighedsproblemer registreret", + "Or add a text description": "Eller tilf\xf8j en beskrivelsesteksten", + "Previous issue": "Forrige problem", + "Provide caption": "Angiv billedtekst", + "Provide table summary": "Angiv tabelsammenfatning", + "Remove all IDs": "Fjern alle id'er", + "Remove this ID": "Fjern dette id", + "Repair": "Reparer", + "Repair issue": "L\xf8s problem", + "Replace filename with a meaningful description": "Erstat filnavn med en betydningsfuld beskrivelse", + "Row": "R\xe6kke", + "Row group": "R\xe6kkegruppe", + "Select a heading level": "V\xe6lg et overskriftsniveau", + "Select header scope": "V\xe6lg overskriftens omfang", + "Shorten the text description": "Forkort beskrivelsesteksten", + "Solution": "L\xf8sning", + "Success": "Udf\xf8rt", + "Summary cannot be empty": "Sammenfatning skal udfyldes", + "Table": "Tabel", + "Table caption and summary cannot have the same value": "Billedtekst til tabel og tabelsammenfatning m\xe5 ikke have samme v\xe6rdi", + "Table caption cannot be the same as the table summary": "Billedtekst til tabel m\xe5 ikke v\xe6re det samme som tabelsammenfatningen", + "Table elements must contain TR and TD tags": "Tabelelementer skal indeholde TR- og TD-koder", + "Table headers must be applied to a row or a column": "Tabeloverskrifter skal tilf\xf8jes til en r\xe6kke eller en kolonne", + "Table summary cannot be the same as the table caption": "Tabelsammenfatning m\xe5 ikke v\xe6re det samme som billedteksten til tabellen", + "Tables must have at least one header cell": "Tabeller skal have mindst \xe9n overskriftscelle", + "Tables must have captions": "Tabeller skal have billedtekster", + "Text": "Tekst ", + "Text description cannot be empty": "Beskrivelsesteksten m\xe5 ikke v\xe6re tom", + "Text description is too long": "Beskrivelsesteksten er for lang", + "Text description should describe the image, not the filename": "Beskrivelsesteksten skal beskrive billedet, ikke filnavnet", + "Text description should not be the image filename": "Beskrivelsesteksten b\xf8r ikke v\xe6re billedets filnavn", + "Text must have a contrast ratio of at least 4.5:1": "Tekst skal have et kontrastforhold p\xe5 mindst 4,5:1", + "Text must have a contrast ratio of at least 7:1": "Tekst skal have et kontrastforhold p\xe5 mindst 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Den markerede tekst ligner en liste. Lister skal formateres ved hj\xe6lp af en listekode.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Dette billede har modsatrettede oplysninger. Fjern enten beskrivelsesteksten for at g\xf8re den dekorativ, eller fjern den dekorative m\xe6rkning.", + "This image is decorative": "Dette billede er dekorativt", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Dette afsnit ligner en overskrift. Hvis det er en overskrift, skal du v\xe6lge et overskriftsniveau.", + "Warning": "Advarsel", + "{0} characters (maximum {1} allowed)": "{0} tegn (maksimalt {1} tilladt)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/de.js b/plugins/a11ychecker/langs/de.js new file mode 100644 index 00000000..a8805058 --- /dev/null +++ b/plugins/a11ychecker/langs/de.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("de", { + '"{0}"': "\u201e{0}\u201c", + "Accessibility Checker": "Barrierefreiheitspr\xfcfung", + "Accessibility checker...": "Barrierefreiheitspr\xfcfung\xa0...", + "Add a text description": "Einen Beschreibungstext hinzuf\xfcgen", + "Add a text description for this image": "F\xfcgen Sie einen Beschreibungstext zum Bild hinzu", + "Adjacent links with the same URL should be merged into one link": "Angrenzende Hyperlinks mit demselben URL m\xfcssen zu einem Link zusammengef\xfchrt werden", + "Caption cannot be empty": 'Das Feld "Tabellen\xfcberschrift" darf nicht leer sein', + "Choose table header": "Tabellenkopfzeile ausw\xe4hlen", + "Click for more info": "F\xfcr mehr Informationen hier klicken", + "Column": "Spalte", + "Column group": "Spaltengruppe", + "Complex tables should have summaries": "Komplexe Tabellen m\xfcssen Zusammenfassungen aufweisen.", + "Decorative images are not allowed. Please add a text description.": "Dekorative Bilder sind nicht erlaubt. Bitte f\xfcgen Sie einen Beschreibungstext hinzu.", + "Error": "Fehler", + "Header column": "Kopfzeilenspalte", + "Header row": "Kopfzeilenzeile", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Kopfzeilen m\xfcssen in sequenzieller Reihenfolge angewendet werden. Zum Beispiel: Auf Kopfzeile 1 muss Kopfzeile 2, nicht Kopfzeile 3 folgen.", + "ID attribute must be unique": "ID-Attribut (Kennung) muss einmalig sein", + "Ignore": "Ignorieren", + "Image": "Bild", + "Image must be marked as decorative or have an alternative text description": "Bild muss als dekorativ gekennzeichnet werden oder einen alternativen Beschreibungstext aufweisen", + "Image needs a text description": "Bild ben\xf6tigt einen Beschreibungstext", + "Info": "Informationen", + "Issue {0} of {1}": "Ausgabe {0} von {1}", + "Keep this ID and remove all others": "Diese Kennung behalten und alle anderen entfernen", + "Large text must have a contrast ratio of at least 3:1": "Gro\xdfe Texte m\xfcssen ein Kontrastverh\xe4ltnis von mindestens 3:1 aufweisen", + "Link": "Link", + "Make ID unique": "Kennung einmalig machen", + "Mark as decorative": "Als dekorativ markieren", + "More info": "Mehr Informationen", + "Next issue": "N\xe4chstes Problem", + "No accessibility issues detected": "Keine Barrierefreiheitsprobleme gefunden", + "Or add a text description": "Oder einen Beschreibungstext hinzuf\xfcgen", + "Previous issue": "Vorheriges Problem", + "Provide caption": "Beschriftung eingeben", + "Provide table summary": "Tabellenzusammenfassung eingeben", + "Remove all IDs": "Alle Kennungen entfernen", + "Remove this ID": "Diese Kennung entfernen", + "Repair": "Reparatur", + "Repair issue": "Problem beheben", + "Replace filename with a meaningful description": "Ersetzen Sie den Dateinamen mit einer bedeutsamen Beschreibung", + "Row": "Zeile", + "Row group": "Zeilengruppe", + "Select a heading level": "W\xe4hlen Sie die Kopfzeilenebene aus", + "Select header scope": "Kopfzeilenumfang ausw\xe4hlen", + "Shorten the text description": "K\xfcrzen Sie den Beschreibungstext", + "Solution": "L\xf6sung", + "Success": "Erfolgreich", + "Summary cannot be empty": 'Das Feld "Tabellenzusammenfassung" darf nicht leer sein', + "Table": "Tabelle", + "Table caption and summary cannot have the same value": "\xdcberschrift und Zusammenfassung der Tabelle k\xf6nnen nicht den gleichen Wert aufweisen", + "Table caption cannot be the same as the table summary": "Die Tabellen\xfcberschrift muss sich von der Tabellenzusammenfassung unterscheiden.", + "Table elements must contain TR and TD tags": "Die Tabellenelemente m\xfcssen TR- und TD-Tags enthalten", + "Table headers must be applied to a row or a column": "Tabellenkopfzeilen m\xfcssen auf eine Zeile oder Spalte angewandt werden", + "Table summary cannot be the same as the table caption": "Die Tabellenzusammenfassung muss sich von der Tabellen\xfcberschrift unterscheiden.", + "Tables must have at least one header cell": "Tabellen m\xfcssen mindestens eine Kopfzeilenzelle aufweisen", + "Tables must have captions": "Tabellen m\xfcssen \xdcberschriften aufweisen", + "Text": "Text", + "Text description cannot be empty": "Beschreibungstext kann nicht leer sein", + "Text description is too long": "Beschreibungstext ist zu lang", + "Text description should describe the image, not the filename": "Beschreibungstext sollte das Bild beschreiben, nicht den Dateinamen", + "Text description should not be the image filename": "Beschreibungstext sollte nicht der Bild-Dateiname sein", + "Text must have a contrast ratio of at least 4.5:1": "Text muss ein Kontrastverh\xe4ltnis von mindestens 4.5:1 aufweisen", + "Text must have a contrast ratio of at least 7:1": "Text muss ein Kontrastverh\xe4ltnis von mindestens 7:1 aufweisen", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Bei dem ausgew\xe4hlten Text scheint es sich um eine Liste zu handeln. Listen m\xfcssen mit einem Listen-Tag formatiert werden.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Dieses Bild hat widerspr\xfcchliche Informationen. Entfernen Sie entweder den Beschreibungstext, um es dekorativ zu machen, oder entfernen Sie die Dekorativ-Markierung.", + "This image is decorative": "Dieses Bild ist dekorativ", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Dieser Paragraf sieht wie eine Kopfzeile aus. Wenn es sich tats\xe4chlich um eine Kopfzeile handelt, w\xe4hlen Sie eine Kopfzeilenebene aus.", + "Warning": "Warnung", + "{0} characters (maximum {1} allowed)": "{0} Zeichen (maximal {1} erlaubt)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/el.js b/plugins/a11ychecker/langs/el.js new file mode 100644 index 00000000..009fc2c4 --- /dev/null +++ b/plugins/a11ychecker/langs/el.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("el", { + '"{0}"': "\xab{0}\xbb", + "Accessibility Checker": "\u0395\u03bb\u03b5\u03b3\u03ba\u03c4\u03ae\u03c2 \u03c0\u03c1\u03bf\u03c3\u03b2\u03b1\u03c3\u03b9\u03bc\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2", + "Accessibility checker...": "\u0388\u03bb\u03b5\u03b3\u03c7\u03bf\u03c2 \u03c0\u03c1\u03bf\u03c3\u03b2\u03b1\u03c3\u03b9\u03bc\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2...", + "Add a text description": "\u03a0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03c4\u03b5 \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5", + "Add a text description for this image": "\u03a0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03c4\u03b5 \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5 \u03b3\u03b9' \u03b1\u03c5\u03c4\u03ae\u03bd \u03c4\u03b7\u03bd \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1", + "Adjacent links with the same URL should be merged into one link": "\u039f\u03b9 \u03b3\u03b5\u03b9\u03c4\u03bf\u03bd\u03b9\u03ba\u03ad\u03c2 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03b5\u03b9\u03c2 \u03bc\u03b5 \u03af\u03b4\u03b9\u03b1 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 URL \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03c3\u03c5\u03b3\u03c7\u03c9\u03bd\u03b5\u03cd\u03bf\u03bd\u03c4\u03b1\u03b9 \u03c3\u03b5 \u03bc\u03af\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7", + "Caption cannot be empty": "\u0397 \u03bb\u03b5\u03b6\u03ac\u03bd\u03c4\u03b1 \u03b4\u03b5\u03bd \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ba\u03b5\u03bd\u03ae", + "Choose table header": "\u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03b5\u03c0\u03b9\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 \u03c0\u03af\u03bd\u03b1\u03ba\u03b1", + "Click for more info": "\u039a\u03ac\u03bd\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03b3\u03b9\u03b1 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b5\u03c2 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2", + "Column": "\u03a3\u03c4\u03ae\u03bb\u03b7", + "Column group": "\u039f\u03bc\u03ac\u03b4\u03b1 \u03c3\u03c4\u03b7\u03bb\u03ce\u03bd", + "Complex tables should have summaries": "\u039f\u03b9 \u03c3\u03cd\u03bd\u03b8\u03b5\u03c4\u03bf\u03b9 \u03c0\u03af\u03bd\u03b1\u03ba\u03b5\u03c2 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03ad\u03c7\u03bf\u03c5\u03bd \u03c0\u03b5\u03c1\u03b9\u03bb\u03ae\u03c8\u03b5\u03b9\u03c2", + "Decorative images are not allowed. Please add a text description.": "\u0394\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03bf\u03bd\u03c4\u03b1\u03b9 \u03b4\u03b9\u03b1\u03ba\u03bf\u03c3\u03bc\u03b7\u03c4\u03b9\u03ba\u03ad\u03c2 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b5\u03c2. \u03a0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03c4\u03b5 \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5.", + "Error": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1", + "Header column": "\u03a3\u03c4\u03ae\u03bb\u03b7 \u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1\u03c2", + "Header row": "\u03a3\u03b5\u03b9\u03c1\u03ac \u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1\u03c2", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u039f\u03b9 \u03b5\u03c0\u03b9\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b5\u03c2 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03c6\u03b1\u03c1\u03bc\u03cc\u03b6\u03bf\u03bd\u03c4\u03b1\u03b9 \u03c3\u03b5 \u03b4\u03b9\u03b1\u03b4\u03bf\u03c7\u03b9\u03ba\u03ae \u03c3\u03b5\u03b9\u03c1\u03ac. \u0393\u03b9\u03b1 \u03c0\u03b1\u03c1\u03ac\u03b4\u03b5\u03b9\u03b3\u03bc\u03b1: \u0397 \u0395\u03c0\u03b9\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 1 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b1\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03b5\u03af\u03c4\u03b1\u03b9 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u0395\u03c0\u03b9\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 2, \u03cc\u03c7\u03b9 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u0395\u03c0\u03b9\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 3.", + "ID attribute must be unique": "\u03a4\u03bf \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03b7\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03cc \u03b1\u03bd\u03b1\u03b3\u03bd\u03c9\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03bf\u03cd \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03bc\u03bf\u03bd\u03b1\u03b4\u03b9\u03ba\u03cc", + "Ignore": "\u0391\u03b3\u03bd\u03cc\u03b7\u03c3\u03b7", + "Image": "\u0395\u03b9\u03ba\u03cc\u03bd\u03b1", + "Image must be marked as decorative or have an alternative text description": "\u0397 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03c3\u03b7\u03bc\u03b1\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 \u03c9\u03c2 \u03b4\u03b9\u03b1\u03ba\u03bf\u03c3\u03bc\u03b7\u03c4\u03b9\u03ba\u03ae \u03ae \u03bd\u03b1 \u03ad\u03c7\u03b5\u03b9 \u03b5\u03bd\u03b1\u03bb\u03bb\u03b1\u03ba\u03c4\u03b9\u03ba\u03ae \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5", + "Image needs a text description": "\u0397 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1 \u03c7\u03c1\u03b5\u03b9\u03ac\u03b6\u03b5\u03c4\u03b1\u03b9 \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5", + "Info": "\u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2", + "Issue {0} of {1}": "\u0398\u03ad\u03bc\u03b1{0} \u03c4\u03bf\u03c5 {1}", + "Keep this ID and remove all others": "\u0394\u03b9\u03b1\u03c4\u03b7\u03c1\u03ae\u03c3\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03b1\u03bd\u03b1\u03b3\u03bd\u03c9\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03cc \u03ba\u03b1\u03b9 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03c4\u03b5 \u03c4\u03b1 \u03c5\u03c0\u03cc\u03bb\u03bf\u03b9\u03c0\u03b1", + "Large text must have a contrast ratio of at least 3:1": "\u03a4\u03bf \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03bc\u03b5 \u03bc\u03b5\u03b3\u03ac\u03bb\u03bf \u03bc\u03ad\u03b3\u03b5\u03b8\u03bf\u03c2 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03ad\u03c7\u03b5\u03b9 \u03bb\u03cc\u03b3\u03bf \u03b1\u03bd\u03c4\u03af\u03b8\u03b5\u03c3\u03b7\u03c2 \u03c4\u03bf\u03c5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf\u03bd 3:1", + "Link": "\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03c2", + "Make ID unique": "\u039a\u03ac\u03bd\u03c4\u03b5 \u03c4\u03bf \u03b1\u03bd\u03b1\u03b3\u03bd\u03c9\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03cc \u03bc\u03bf\u03bd\u03b1\u03b4\u03b9\u03ba\u03cc", + "Mark as decorative": "\u0395\u03c0\u03b9\u03c3\u03ae\u03bc\u03b1\u03bd\u03c3\u03b7 \u03c9\u03c2 \u03b4\u03b9\u03b1\u03ba\u03bf\u03c3\u03bc\u03b7\u03c4\u03b9\u03ba\u03ae", + "More info": "\u03a0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b5\u03c2 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2", + "Next issue": "\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03bf \u03b8\u03ad\u03bc\u03b1", + "No accessibility issues detected": "\u0394\u03b5\u03bd \u03b5\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03c4\u03b7\u03ba\u03b1\u03bd \u03b8\u03ad\u03bc\u03b1\u03c4\u03b1 \u03c0\u03c1\u03bf\u03c3\u03b2\u03b1\u03c3\u03b9\u03bc\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2", + "Or add a text description": "\u0389 \u03c0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03c4\u03b5 \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5", + "Previous issue": "\u03a0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf \u03b8\u03ad\u03bc\u03b1", + "Provide caption": "\u03a0\u03b1\u03c1\u03ad\u03c7\u03b5\u03c4\u03b5 \u03bb\u03b5\u03b6\u03ac\u03bd\u03c4\u03b1", + "Provide table summary": "\u03a0\u03b1\u03c1\u03ad\u03c7\u03b5\u03c4\u03b5 \u03c0\u03b5\u03c1\u03af\u03bb\u03b7\u03c8\u03b7 \u03c0\u03af\u03bd\u03b1\u03ba\u03b1", + "Remove all IDs": "\u0394\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03c4\u03b5 \u03cc\u03bb\u03b1 \u03c4\u03b1 \u03b1\u03bd\u03b1\u03b3\u03bd\u03c9\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac", + "Remove this ID": "\u0394\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03b1\u03bd\u03b1\u03b3\u03bd\u03c9\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03cc", + "Repair": "\u0394\u03b9\u03cc\u03c1\u03b8\u03c9\u03c3\u03b7", + "Repair issue": "\u0398\u03ad\u03bc\u03b1 \u03b5\u03c0\u03b9\u03b4\u03b9\u03cc\u03c1\u03b8\u03c9\u03c3\u03b7\u03c2", + "Replace filename with a meaningful description": "\u0391\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03ae\u03c3\u03c4\u03b5 \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03bc\u03b5 \u03bc\u03b9\u03b1 \u03bf\u03c5\u03c3\u03b9\u03b1\u03c3\u03c4\u03b9\u03ba\u03ae \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae", + "Row": "\u0393\u03c1\u03b1\u03bc\u03bc\u03ae", + "Row group": "\u039f\u03bc\u03ac\u03b4\u03b1 \u03c3\u03b5\u03b9\u03c1\u03ce\u03bd", + "Select a heading level": "\u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03b5\u03c0\u03af\u03c0\u03b5\u03b4\u03bf \u03b5\u03c0\u03b9\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1\u03c2", + "Select header scope": "\u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03b5\u03bc\u03b2\u03ad\u03bb\u03b5\u03b9\u03b1 \u03b5\u03c0\u03b9\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1\u03c2", + "Shorten the text description": "\u03a3\u03c5\u03bd\u03c4\u03bf\u03bc\u03b5\u03cd\u03c3\u03c4\u03b5 \u03c4\u03b7\u03bd \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5", + "Solution": "\u039b\u03cd\u03c3\u03b7", + "Success": "\u0395\u03c0\u03b9\u03c4\u03c5\u03c7\u03af\u03b1", + "Summary cannot be empty": "\u0397 \u03c0\u03b5\u03c1\u03af\u03bb\u03b7\u03c8\u03b7 \u03b4\u03b5\u03bd \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ba\u03b5\u03bd\u03ae", + "Table": "\u03a0\u03af\u03bd\u03b1\u03ba\u03b1\u03c2", + "Table caption and summary cannot have the same value": "\u0397 \u03bb\u03b5\u03b6\u03ac\u03bd\u03c4\u03b1 \u03ba\u03b1\u03b9 \u03b7 \u03c0\u03b5\u03c1\u03af\u03bb\u03b7\u03c8\u03b7 \u03b5\u03bd\u03cc\u03c2 \u03c0\u03af\u03bd\u03b1\u03ba\u03b1 \u03b4\u03b5\u03bd \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03ad\u03c7\u03bf\u03c5\u03bd \u03c4\u03b7\u03bd \u03af\u03b4\u03b9\u03b1 \u03c4\u03b9\u03bc\u03ae", + "Table caption cannot be the same as the table summary": "\u0397 \u03bb\u03b5\u03b6\u03ac\u03bd\u03c4\u03b1 \u03c4\u03bf\u03c5 \u03c0\u03af\u03bd\u03b1\u03ba\u03b1 \u03b4\u03b5\u03bd \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03af\u03b4\u03b9\u03b1 \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c0\u03b5\u03c1\u03af\u03bb\u03b7\u03c8\u03b7 \u03c4\u03bf\u03c5 \u03c0\u03af\u03bd\u03b1\u03ba\u03b1", + "Table elements must contain TR and TD tags": "\u03a4\u03b1 \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1 \u03c4\u03bf\u03c5 \u03c0\u03af\u03bd\u03b1\u03ba\u03b1 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03c0\u03b5\u03c1\u03b9\u03ad\u03c7\u03bf\u03c5\u03bd \u03b5\u03c4\u03b9\u03ba\u03ad\u03c4\u03b5\u03c2 TR \u03ba\u03b1\u03b9 TD", + "Table headers must be applied to a row or a column": "\u039f\u03b9 \u03b5\u03c0\u03b9\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b5\u03c2 \u03c4\u03bf\u03c5 \u03c0\u03af\u03bd\u03b1\u03ba\u03b1 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03c6\u03b1\u03c1\u03bc\u03cc\u03b6\u03bf\u03bd\u03c4\u03b1\u03b9 \u03c3\u03b5 \u03bc\u03b9\u03b1 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae \u03ae \u03c3\u03b5 \u03bc\u03b9\u03b1 \u03c3\u03c4\u03ae\u03bb\u03b7", + "Table summary cannot be the same as the table caption": "\u0397 \u03bb\u03b5\u03b6\u03ac\u03bd\u03c4\u03b1 \u03c4\u03bf\u03c5 \u03c0\u03af\u03bd\u03b1\u03ba\u03b1 \u03b4\u03b5\u03bd \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03af\u03b4\u03b9\u03b1 \u03bc\u03b5 \u03c4\u03b7\u03bd \u03c0\u03b5\u03c1\u03af\u03bb\u03b7\u03c8\u03b7 \u03c4\u03bf\u03c5 \u03c0\u03af\u03bd\u03b1\u03ba\u03b1", + "Tables must have at least one header cell": "\u039f\u03b9 \u03c0\u03af\u03bd\u03b1\u03ba\u03b5\u03c2 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03ad\u03c7\u03bf\u03c5\u03bd \u03c4\u03bf\u03c5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf\u03bd \u03ad\u03bd\u03b1 \u03ba\u03b5\u03bb\u03af \u03c9\u03c2 \u03b5\u03c0\u03b9\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1", + "Tables must have captions": "\u039f\u03b9 \u03c0\u03af\u03bd\u03b1\u03ba\u03b5\u03c2 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03ad\u03c7\u03bf\u03c5\u03bd \u03bb\u03b5\u03b6\u03ac\u03bd\u03c4\u03b5\u03c2", + "Text": "\u039a\u03b5\u03af\u03bc\u03b5\u03bd\u03bf", + "Text description cannot be empty": "\u0397 \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5 \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ba\u03b5\u03bd\u03ae", + "Text description is too long": "\u0397 \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c0\u03bf\u03bb\u03cd \u03bc\u03b5\u03b3\u03ac\u03bb\u03b7", + "Text description should describe the image, not the filename": "\u0397 \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03ac\u03c6\u03b5\u03b9 \u03c4\u03b7\u03bd \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1, \u03cc\u03c7\u03b9 \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5", + "Text description should not be the image filename": "\u03a4\u03bf \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2 \u03b4\u03b5\u03bd \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03c4\u03b7\u03c2 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2", + "Text must have a contrast ratio of at least 4.5:1": "\u03a4\u03bf \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03ad\u03c7\u03b5\u03b9 \u03bb\u03cc\u03b3\u03bf \u03b1\u03bd\u03c4\u03af\u03b8\u03b5\u03c3\u03b7\u03c2 \u03c4\u03bf\u03c5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf\u03bd 4,5:1", + "Text must have a contrast ratio of at least 7:1": "\u03a4\u03bf \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03ad\u03c7\u03b5\u03b9 \u03bb\u03cc\u03b3\u03bf \u03b1\u03bd\u03c4\u03af\u03b8\u03b5\u03c3\u03b7\u03c2 \u03c4\u03bf\u03c5\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf\u03bd 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u03a4\u03bf \u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03bf \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03bc\u03bf\u03b9\u03ac\u03b6\u03b5\u03b9 \u03bc\u03b5 \u03bb\u03af\u03c3\u03c4\u03b1. \u039f\u03b9 \u03bb\u03af\u03c3\u03c4\u03b5\u03c2 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03bc\u03bf\u03c1\u03c6\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bd\u03c4\u03b1\u03b9 \u03bc\u03b5 \u03c4\u03b7 \u03c7\u03c1\u03ae\u03c3\u03b7 \u03bc\u03b9\u03b1\u03c2 \u03b5\u03c4\u03b9\u03ba\u03ad\u03c4\u03b1\u03c2 \u03bb\u03af\u03c3\u03c4\u03b1\u03c2.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u0397 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1 \u03b1\u03c5\u03c4\u03ae \u03c0\u03b5\u03c1\u03b9\u03ad\u03c7\u03b5\u03b9 \u03b1\u03bd\u03c4\u03b9\u03ba\u03c1\u03bf\u03c5\u03cc\u03bc\u03b5\u03bd\u03b5\u03c2 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2. \u03a0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03b1\u03c6\u03b1\u03b9\u03c1\u03ad\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03c0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c4\u03b7\u03bd \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03b4\u03b9\u03b1\u03ba\u03bf\u03c3\u03bc\u03b7\u03c4\u03b9\u03ba\u03ae \u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03b1\u03c6\u03b1\u03b9\u03c1\u03ad\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03b4\u03b9\u03b1\u03ba\u03bf\u03c3\u03bc\u03b7\u03c4\u03b9\u03ba\u03ae \u03c3\u03ae\u03bc\u03b1\u03bd\u03c3\u03b7.", + "This image is decorative": "\u0397 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1 \u03b1\u03c5\u03c4\u03ae \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03b9\u03b1\u03ba\u03bf\u03c3\u03bc\u03b7\u03c4\u03b9\u03ba\u03ae", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u0391\u03c5\u03c4\u03ae \u03b7 \u03c0\u03b1\u03c1\u03ac\u03b3\u03c1\u03b1\u03c6\u03bf\u03c2 \u03bc\u03bf\u03b9\u03ac\u03b6\u03b5\u03b9 \u03bc\u03b5 \u03b5\u03c0\u03b9\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1. \u0391\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03c0\u03b9\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1, \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03b5\u03c0\u03af\u03c0\u03b5\u03b4\u03bf \u03b5\u03c0\u03b9\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1\u03c2.", + "Warning": "\u03a0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7", + "{0} characters (maximum {1} allowed)": "{0} \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b5\u03c2 (\u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03bf\u03bd\u03c4\u03b1\u03b9 \u03bc\u03ad\u03b3\u03b9\u03c3\u03c4\u03bf {1})" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/es.js b/plugins/a11ychecker/langs/es.js new file mode 100644 index 00000000..a9ca1d91 --- /dev/null +++ b/plugins/a11ychecker/langs/es.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("es", { + '"{0}"': "\xab{0}\xbb", + "Accessibility Checker": "Comprobador de accesibilidad", + "Accessibility checker...": "Comprobador de accesibilidad...", + "Add a text description": "A\xf1adir texto a la descripci\xf3n", + "Add a text description for this image": "A\xf1ada un texto a la descripci\xf3n de esta imagen", + "Adjacent links with the same URL should be merged into one link": "Los enlaces adyacentes que tengan la misma URL se deben combinar en un solo enlace", + "Caption cannot be empty": "El subt\xedtulo no puede quedar vac\xedo", + "Choose table header": "Escoja el encabezado de la tabla", + "Click for more info": "Haga clic para obtener m\xe1s informaci\xf3n", + "Column": "Columna", + "Column group": "Grupo de columnas", + "Complex tables should have summaries": "Las tablas complejas deben tener res\xfamenes", + "Decorative images are not allowed. Please add a text description.": "No se permiten im\xe1genes decorativas. A\xf1ada un texto a la descripci\xf3n.", + "Error": "Error", + "Header column": "Columna de encabezado", + "Header row": "Fila de encabezado", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Los encabezados deben aplicarse en orden secuencial. Por ejemplo: el Encabezado 1 debe ir seguido del Encabezado 2, no del Encabezado 3.", + "ID attribute must be unique": "El atributo ID debe ser \xfanico", + "Ignore": "Ignorar", + "Image": "Imagen", + "Image must be marked as decorative or have an alternative text description": "La imagen debe marcarse como decorativa o tener un texto de descripci\xf3n alternativo", + "Image needs a text description": "La imagen necesita un texto de descripci\xf3n", + "Info": "Informaci\xf3n", + "Issue {0} of {1}": "Edici\xf3n {0} de {1}", + "Keep this ID and remove all others": "Guardar este ID y eliminar todos los dem\xe1s", + "Large text must have a contrast ratio of at least 3:1": "El texto grande debe tener una relaci\xf3n de contraste del color de al menos 3:1", + "Link": "Enlace", + "Make ID unique": "Hacer que el ID sea \xfanico", + "Mark as decorative": "Marcar como decorativa", + "More info": "M\xe1s informaci\xf3n", + "Next issue": "Problema siguiente", + "No accessibility issues detected": "No se han detectado problemas de accesibilidad", + "Or add a text description": "O a\xf1adir texto a la descripci\xf3n", + "Previous issue": "Problema anterior", + "Provide caption": "Escriba el subt\xedtulo", + "Provide table summary": "Escriba el resumen de la tabla", + "Remove all IDs": "Eliminar todos los ID", + "Remove this ID": "Eliminar este ID", + "Repair": "Corregir", + "Repair issue": "Reparar problema", + "Replace filename with a meaningful description": "Sustituya el nombre de archivo por una descripci\xf3n significativa", + "Row": "Fila", + "Row group": "Grupo de filas", + "Select a heading level": "Seleccione un nivel de encabezado", + "Select header scope": "Seleccione el alcance del encabezado", + "Shorten the text description": "Reduzca el texto de la descripci\xf3n", + "Solution": "Soluci\xf3n", + "Success": "Correcto", + "Summary cannot be empty": "El resumen no puede quedar vac\xedo", + "Table": "Tabla", + "Table caption and summary cannot have the same value": "El subt\xedtulo y el resumen de la tabla no pueden tener el mismo valor", + "Table caption cannot be the same as the table summary": "El subt\xedtulo de la tabla no puede ser el mismo que el resumen de la tabla", + "Table elements must contain TR and TD tags": "Los elementos de la tabla deben contener etiquetas TR y TD", + "Table headers must be applied to a row or a column": "Los encabezados de la tabla se deben aplicar a una fila o a una columna", + "Table summary cannot be the same as the table caption": "El resumen de la tabla no puede ser el mismo que el subt\xedtulo de la tabla", + "Tables must have at least one header cell": "Las tablas deben tener por lo menos una celda de encabezado", + "Tables must have captions": "Las tablas deben tener subt\xedtulos", + "Text": "Texto", + "Text description cannot be empty": "El texto de la descripci\xf3n no debe estar vac\xedo", + "Text description is too long": "El texto de la descripci\xf3n es demasiado largo", + "Text description should describe the image, not the filename": "El texto de la descripci\xf3n debe describir la imagen, no el nombre de archivo", + "Text description should not be the image filename": "El texto de la descripci\xf3n no debe ser el nombre de archivo de la imagen", + "Text must have a contrast ratio of at least 4.5:1": "El texto debe tener una relaci\xf3n de contraste del color de al menos 4,5:1", + "Text must have a contrast ratio of at least 7:1": "El texto debe tener una relaci\xf3n de contraste del color de al menos 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Parece que el texto seleccionado es una lista. Las listas deben llevar el formato correspondiente con una etiqueta de lista.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Esta imagen tiene informaci\xf3n contradictoria. Elimine el texto de la descripci\xf3n para hacerla decorativa o elimine la marca de decorativa.", + "This image is decorative": "Esta imagen es decorativa", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Este p\xe1rrafo parece un encabezado. Si se trata de un encabezado, escoja el nivel de encabezado correspondiente.", + "Warning": "Advertencia", + "{0} characters (maximum {1} allowed)": "{0} caracteres (m\xe1ximo de {1} permitido)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/eu.js b/plugins/a11ychecker/langs/eu.js new file mode 100644 index 00000000..d35f8bb4 --- /dev/null +++ b/plugins/a11ychecker/langs/eu.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("eu", { + '"{0}"': '"{0}"', + "Accessibility Checker": "Erabilerraztasun-egiaztatzailea", + "Accessibility checker...": "Erabilerraztasun-egiaztatzailea\u2026", + "Add a text description": "Gehitu deskribapen-testu bat", + "Add a text description for this image": "Gehitu deskribapen-testu bat irudi honetarako", + "Adjacent links with the same URL should be merged into one link": "Helbide bera duten ondoko estekek esteka bakar batean elkartu beharko lirateke.", + "Caption cannot be empty": "Irudi-oina ezin da hutsik egon", + "Choose table header": "Aukeratu taulako goiburua", + "Click for more info": "Egin klik informazio gehiago lortzeko", + "Column": "Zutabea", + "Column group": "Zutabe taldea", + "Complex tables should have summaries": "Taula konplexuek laburpenak izan beharko lituzkete", + "Decorative images are not allowed. Please add a text description.": "Ez dira irudi apaingarriak onartzen. Gehitu deskribapen-testu bat.", + "Error": "Errorea", + "Header column": "Goiburuaren zutabea", + "Header row": "Goiburuaren errenkada", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Izenburuak ordena sekuentzialean aplikatu behar dira. Adibidez: 1. izenburuari 2. izenburuak jarraitu beharko lioke, eta ez 3. izenburua.", + "ID attribute must be unique": "ID-atributua bakarra izan behar da", + "Ignore": "Ez ikusi", + "Image": "Irudia", + "Image must be marked as decorative or have an alternative text description": "Irudia apaingarri gisa markatu behar da, edo ordezko deskribapen-testu bat izan behar du", + "Image needs a text description": "Irudiak deskribapen-testu bat behar du", + "Info": "Informazioa", + "Issue {0} of {1}": "{0} arazo {1}tik", + "Keep this ID and remove all others": "Gorde ID hau eta ezabatu beste guztiak", + "Large text must have a contrast ratio of at least 3:1": "Testu luzeek gutxienez 3:1ko kontraste-ratioa izan behar dute.", + "Link": "Esteka", + "Make ID unique": "Sortu ID bakarra", + "Mark as decorative": "Markatu apaingarri gisa", + "More info": "Informazio gehiago", + "Next issue": "Hurrengo arazoa", + "No accessibility issues detected": "Ez da erabilerraztasun-arazorik aurkitu", + "Or add a text description": "Edo gehitu deskribapen-testu bat", + "Previous issue": "Aurreko arazoa", + "Provide caption": "Gehitu irudi-oina", + "Provide table summary": "Gehitu taularen laburpena", + "Remove all IDs": "Ezabatu ID guztiak", + "Remove this ID": "Ezabatu ID hau", + "Repair": "Zuzendu", + "Repair issue": "Zuzendu arazoa", + "Replace filename with a meaningful description": "Ordeztu fitxategi-izena deskribapen esanguratsu batekin", + "Row": "Errenkada", + "Row group": "Errenkada taldea", + "Select a heading level": "Aukeratu goiburu-maila bat", + "Select header scope": "Aukeratu goiburuaren esparrua", + "Shorten the text description": "Laburtu deskribapen-testua", + "Solution": "Konponbidea", + "Success": "Ondo atera da", + "Summary cannot be empty": "Laburpena ezin da hutsik egon", + "Table": "Taula", + "Table caption and summary cannot have the same value": "Taularen irudi-oinak eta laburpenak ezin dute balio bera izan", + "Table caption cannot be the same as the table summary": "Taulen irudi-oina ezin da taularen laburpenaren testu bera izan", + "Table elements must contain TR and TD tags": "Taularen elementuek TR eta TD etiketak izan behar dituzte", + "Table headers must be applied to a row or a column": "Taularako izenburuak lerro edo zutabe bati aplikatu behar zaizkio", + "Table summary cannot be the same as the table caption": "Taulen laburpena ezin da taularen irudi-oinaren testu bera izan", + "Tables must have at least one header cell": "Taulek gutxienez izenburuko gelaxka bat izan behar dute", + "Tables must have captions": "Taulek irudi-oinak izan behar dituzte", + "Text": "Testua", + "Text description cannot be empty": "Deskribapen-testua ezin da hutsik egon", + "Text description is too long": "Deskribapen-testua luzeegia da", + "Text description should describe the image, not the filename": "Deskribapen-testuak deskribatu beharko luke irudia, ez fitxategi-izenak", + "Text description should not be the image filename": "Deskribapen-testuak ez luke irudiaren fitxategi-izena izan beharko", + "Text must have a contrast ratio of at least 4.5:1": "Testuak gutxienez 4,5:1ko kontraste-ratioa izan behar du.", + "Text must have a contrast ratio of at least 7:1": "Testuak gutxienez 7:1ko kontraste-ratioa izan behar du.", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Aukeratutako testua zerrenda bat dela dirudi. Zerrendei zerrenda-etiketa bat erabiliz eman beharko liezaieke formatua.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Irudiak bat ez datorren informazioa du. Kendu deskribapen-testua irudia apaingarri bihurtzeko, edo kendu apaingarri izatearen marka.", + "This image is decorative": "Irudi hau apaingarria da", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Paragrafo hau izenburu bat dela dirudi. Izenburu bat bada, aukeratu izenburu-maila bat.", + "Warning": "Oharra", + "{0} characters (maximum {1} allowed)": "{0} karaktere (gehienez {1} onartzen dira)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/fa.js b/plugins/a11ychecker/langs/fa.js new file mode 100644 index 00000000..e5f28b0c --- /dev/null +++ b/plugins/a11ychecker/langs/fa.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("fa", { + '"{0}"': '"{0}"', + "Accessibility Checker": "\u0628\u0631\u0631\u0633\u06cc\u200c\u06a9\u0646\u0646\u062f\u0647 \u0642\u0627\u0628\u0644\u06cc\u062a \u062f\u0633\u062a\u0631\u0633\u06cc", + "Accessibility checker...": "\u0628\u0631\u0631\u0633\u06cc\u200c\u06a9\u0646\u0646\u062f\u0647 \u0642\u0627\u0628\u0644\u06cc\u062a \u062f\u0633\u062a\u0631\u0633\u06cc...", + "Add a text description": "\u062a\u0648\u0636\u06cc\u062d \u0645\u062a\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f", + "Add a text description for this image": "\u06cc\u06a9 \u062a\u0648\u0636\u06cc\u062d \u0645\u062a\u0646 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u062a\u0635\u0648\u06cc\u0631 \u0627\u0636\u0627\u0641\u0647 \u0646\u0645\u0627\u06cc\u06cc\u062f", + "Adjacent links with the same URL should be merged into one link": "\u067e\u06cc\u0648\u0646\u062f\u0647\u0627\u06cc \u0645\u062c\u0627\u0648\u0631 \u0628\u0627 \u0622\u062f\u0631\u0633 \u06cc\u06a9\u0633\u0627\u0646 \u0628\u0627\u06cc\u062f \u0628\u0647 \u06cc\u06a9 \u067e\u06cc\u0648\u0646\u062f \u0627\u062f\u063a\u0627\u0645 \u0634\u0648\u0646\u062f", + "Caption cannot be empty": "\u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0639\u0646\u0648\u0627\u0646 \u0631\u0627 \u062e\u0627\u0644\u06cc \u06af\u0630\u0627\u0634\u062a", + "Choose table header": "\u0633\u0631\u0628\u0631\u06af \u062c\u062f\u0648\u0644 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f", + "Click for more info": "\u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f", + "Column": "\u0633\u062a\u0648\u0646", + "Column group": "\u06af\u0631\u0648\u0647 \u0633\u062a\u0648\u0646", + "Complex tables should have summaries": "\u062c\u062f\u0648\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u0627\u06cc\u062f \u062e\u0644\u0627\u0635\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f", + "Decorative images are not allowed. Please add a text description.": "\u062a\u0635\u0627\u0648\u06cc\u0631 \u062a\u0632\u0626\u06cc\u0646\u06cc \u0645\u062c\u0627\u0632 \u0646\u06cc\u0633\u062a\u0646\u062f. \u0644\u0637\u0641\u0627\u064b \u062a\u0648\u0636\u06cc\u062d \u0645\u062a\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.", + "Error": "\u062e\u0637\u0627", + "Header column": "\u0633\u062a\u0648\u0646 \u0633\u0631\u0635\u0641\u062d\u0647", + "Header row": "\u0631\u062f\u06cc\u0641 \u0633\u0631\u0635\u0641\u062d\u0647", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u0633\u0631\u0641\u0635\u0644\u200c\u0647\u0627 \u0628\u0627\u06cc\u062f \u062f\u0631 \u06cc\u06a9 \u062a\u0631\u062a\u06cc\u0628 \u0645\u062a\u0648\u0627\u0644\u06cc \u0627\u0639\u0645\u0627\u0644 \u0634\u0648\u0646\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644: \u067e\u0633 \u0627\u0632 \u0633\u0631\u0641\u0635\u0644 1 \u0628\u0627\u06cc\u062f \u0633\u0631\u0641\u0635\u0644 2 \u0628\u06cc\u0627\u06cc\u062f \u0646\u0647 \u0633\u0631\u0641\u0635\u0644 3.", + "ID attribute must be unique": "\u0645\u0634\u062e\u0635\u0647 \u0634\u0646\u0627\u0633\u0647 \u0628\u0627\u06cc\u062f \u0645\u0646\u062d\u0635\u0631\u200c\u0628\u0647\u200c\u0641\u0631\u062f \u0628\u0627\u0634\u062f", + "Ignore": "\u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646", + "Image": "\u062a\u0635\u0648\u06cc\u0631", + "Image must be marked as decorative or have an alternative text description": "\u062a\u0635\u0648\u06cc\u0631 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062a\u0635\u0648\u06cc\u0631 \u062a\u0632\u0626\u06cc\u0646\u06cc \u0639\u0644\u0627\u0645\u062a \u0632\u062f\u0647 \u0634\u0648\u062f \u06cc\u0627 \u062f\u0627\u0631\u0627\u06cc \u062a\u0648\u0636\u06cc\u062d \u0645\u062a\u0646 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0628\u0627\u0634\u062f", + "Image needs a text description": "\u062a\u0635\u0648\u06cc\u0631 \u0628\u0647 \u062a\u0648\u0636\u06cc\u062d \u0645\u062a\u0646 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f", + "Info": "\u0627\u0637\u0644\u0627\u0639\u0627\u062a", + "Issue {0} of {1}": "\u0645\u0634\u06a9\u0644 {0} \u0627\u0632 {1}", + "Keep this ID and remove all others": "\u0646\u06af\u0647 \u062f\u0627\u0634\u062a\u0646 \u0627\u06cc\u0646 \u0634\u0646\u0627\u0633\u0647 \u0648 \u062d\u0630\u0641 \u0647\u0645\u0647 \u0634\u0646\u0627\u0633\u0647\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631", + "Large text must have a contrast ratio of at least 3:1": "\u0645\u062a\u0646 \u0628\u0632\u0631\u06af \u0628\u0627\u06cc\u062f \u062d\u062f\u0627\u0642\u0644 \u062f\u0627\u0631\u0627\u06cc \u0646\u0633\u0628\u062a \u062a\u0636\u0627\u062f \u0631\u0646\u06af 3:1 \u0628\u0627\u0634\u062f", + "Link": "\u0644\u06cc\u0646\u06a9", + "Make ID unique": "\u062a\u0628\u062f\u06cc\u0644 \u0634\u0646\u0627\u0633\u0647 \u0628\u0647 \u0634\u0646\u0627\u0633\u0647 \u0645\u0646\u062d\u0635\u0631\u200c\u0628\u0647\u200c\u0641\u0631\u062f", + "Mark as decorative": "\u0639\u0644\u0627\u0645\u062a \u06af\u0630\u0627\u0631\u06cc \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062a\u0632\u0626\u06cc\u0646\u06cc", + "More info": "\u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631", + "Next issue": "\u0645\u0634\u06a9\u0644 \u0628\u0639\u062f\u06cc", + "No accessibility issues detected": "\u0647\u06cc\u0686 \u0645\u0634\u06a9\u0644\u06cc \u062f\u0631 \u0631\u0627\u0628\u0637\u0647 \u0628\u0627 \u0642\u0627\u0628\u0644\u06cc\u062a \u062f\u0633\u062a\u0631\u0633\u06cc \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0646\u0634\u062f", + "Or add a text description": "\u06cc\u0627 \u062a\u0648\u0636\u06cc\u062d \u0645\u062a\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f", + "Previous issue": "\u0645\u0634\u06a9\u0644 \u0642\u0628\u0644\u06cc", + "Provide caption": "\u06cc\u06a9 \u0639\u0646\u0648\u0627\u0646 \u0627\u0631\u0627\u0626\u0647 \u06a9\u0646\u06cc\u062f", + "Provide table summary": "\u062e\u0644\u0627\u0635\u0647 \u062c\u062f\u0648\u0644 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u06a9\u0646\u06cc\u062f", + "Remove all IDs": "\u062d\u0630\u0641 \u0647\u0645\u0647 \u0634\u0646\u0627\u0633\u0647\u200c\u0647\u0627", + "Remove this ID": "\u062d\u0630\u0641 \u0627\u06cc\u0646 \u0634\u0646\u0627\u0633\u0647", + "Repair": "\u0627\u0635\u0644\u0627\u062d", + "Repair issue": "\u062d\u0644 \u0645\u0634\u06a9\u0644", + "Replace filename with a meaningful description": "\u0646\u0627\u0645 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0627 \u06cc\u06a9 \u062a\u0648\u0636\u06cc\u062d \u0645\u0639\u0646\u0627\u062f\u0627\u0631 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0646\u0645\u0627\u06cc\u06cc\u062f", + "Row": "\u0631\u062f\u06cc\u0641", + "Row group": "\u06af\u0631\u0648\u0647 \u0631\u062f\u06cc\u0641", + "Select a heading level": "\u06cc\u06a9 \u0633\u0637\u062d \u0633\u0631\u0641\u0635\u0644 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f", + "Select header scope": "\u06af\u0633\u062a\u0631\u0647 \u0633\u0631\u0628\u0631\u06af \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f", + "Shorten the text description": "\u062a\u0648\u0636\u06cc\u062d \u0645\u062a\u0646 \u0631\u0627 \u06a9\u0648\u062a\u0627\u0647 \u06a9\u0646\u06cc\u062f", + "Solution": "\u0631\u0627\u0647 \u062d\u0644", + "Success": "\u0645\u0648\u0641\u0642", + "Summary cannot be empty": "\u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u062e\u0644\u0627\u0635\u0647 \u0631\u0627 \u062e\u0627\u0644\u06cc \u06af\u0630\u0627\u0634\u062a", + "Table": "\u062c\u062f\u0648\u0644", + "Table caption and summary cannot have the same value": "\u0639\u0646\u0648\u0627\u0646 \u0648 \u062e\u0644\u0627\u0635\u0647 \u062c\u062f\u0648\u0644 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062f\u0627\u0631\u0627\u06cc \u0645\u0642\u062f\u0627\u0631 \u06cc\u06a9\u0633\u0627\u0646\u06cc \u0628\u0627\u0634\u0646\u062f", + "Table caption cannot be the same as the table summary": "\u0639\u0646\u0648\u0627\u0646 \u062c\u062f\u0648\u0644 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u062e\u0644\u0627\u0635\u0647 \u062c\u062f\u0648\u0644 \u06cc\u06a9\u0633\u0627\u0646 \u0628\u0627\u0634\u062f", + "Table elements must contain TR and TD tags": "\u0639\u0646\u0627\u0635\u0631 \u062c\u062f\u0648\u0644 \u0628\u0627\u06cc\u062f \u062f\u0627\u0631\u0627\u06cc \u0628\u0631\u0686\u0633\u0628\u200c\u0647\u0627\u06cc TR \u0648 TD \u0628\u0627\u0634\u0646\u062f", + "Table headers must be applied to a row or a column": "\u0633\u0631\u0628\u0631\u06af\u200c\u0647\u0627\u06cc \u062c\u062f\u0648\u0644 \u0628\u0627\u06cc\u062f \u0628\u0647 \u06cc\u06a9 \u0631\u062f\u06cc\u0641 \u06cc\u0627 \u0633\u062a\u0648\u0646 \u0627\u0639\u0645\u0627\u0644 \u0634\u0648\u0646\u062f", + "Table summary cannot be the same as the table caption": "\u062e\u0644\u0627\u0635\u0647 \u062c\u062f\u0648\u0644 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u0639\u0646\u0648\u0627\u0646 \u062c\u062f\u0648\u0644 \u06cc\u06a9\u0633\u0627\u0646 \u0628\u0627\u0634\u062f", + "Tables must have at least one header cell": "\u062c\u062f\u0648\u0644\u200c\u0647\u0627 \u0628\u0627\u06cc\u062f \u062d\u062f\u0627\u0642\u0644 \u062f\u0627\u0631\u0627\u06cc \u06cc\u06a9 \u0633\u0644\u0648\u0644 \u0633\u0631\u0628\u0631\u06af \u0628\u0627\u0634\u0646\u062f", + "Tables must have captions": "\u062c\u062f\u0648\u0644\u200c\u0647\u0627 \u0628\u0627\u06cc\u062f \u062f\u0627\u0631\u0627\u06cc \u0639\u0646\u0648\u0627\u0646 \u0628\u0627\u0634\u0646\u062f", + "Text": "\u0645\u062a\u0646", + "Text description cannot be empty": "\u062a\u0648\u0636\u06cc\u062d \u0645\u062a\u0646 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062e\u0627\u0644\u06cc \u0628\u0645\u0627\u0646\u062f", + "Text description is too long": "\u062a\u0648\u0636\u06cc\u062d \u0645\u062a\u0646 \u0632\u06cc\u0627\u062f \u0637\u0648\u0644\u0627\u0646\u06cc \u0627\u0633\u062a", + "Text description should describe the image, not the filename": "\u0645\u062a\u0646 \u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u0628\u0627\u06cc\u062f \u062a\u0635\u0648\u06cc\u0631 \u0631\u0627 \u062a\u0648\u0635\u06cc\u0641 \u06a9\u0646\u062f\u060c \u0646\u0647 \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644 \u0631\u0627", + "Text description should not be the image filename": "\u0645\u062a\u0646 \u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u0646\u0628\u0627\u06cc\u062f \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644 \u062a\u0635\u0648\u06cc\u0631 \u0628\u0627\u0634\u062f", + "Text must have a contrast ratio of at least 4.5:1": "\u0645\u062a\u0646\u200c \u0628\u0627\u06cc\u062f \u062d\u062f\u0627\u0642\u0644 \u062f\u0627\u0631\u0627\u06cc \u0646\u0633\u0628\u062a \u062a\u0636\u0627\u062f \u0631\u0646\u06af 4.5:1 \u0628\u0627\u0634\u062f", + "Text must have a contrast ratio of at least 7:1": "\u0645\u062a\u0646\u200c \u0628\u0627\u06cc\u062f \u062d\u062f\u0627\u0642\u0644 \u062f\u0627\u0631\u0627\u06cc \u0646\u0633\u0628\u062a \u062a\u0636\u0627\u062f \u0631\u0646\u06af 7:1 \u0628\u0627\u0634\u062f", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc\u200c\u0631\u0633\u062f \u0645\u062a\u0646 \u0627\u0646\u062a\u062e\u0627\u0628 \u0634\u062f\u0647 \u06cc\u06a9 \u0641\u0647\u0631\u0633\u062a \u0628\u0627\u0634\u062f. \u0641\u0647\u0631\u0633\u062a\u200c\u0647\u0627 \u0628\u0627\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u0628\u0631\u0686\u0633\u0628 \u0641\u0647\u0631\u0633\u062a \u0642\u0627\u0644\u0628\u200c\u0628\u0646\u062f\u06cc \u0634\u0648\u0646\u062f.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u0627\u06cc\u0646 \u062a\u0635\u0648\u06cc\u0631 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u062a\u0646\u0627\u0642\u0636\u06cc \u062f\u0627\u0631\u062f. \u06cc\u0627 \u062a\u0648\u0636\u06cc\u062d \u0645\u062a\u0646 \u0631\u0627 \u062d\u0630\u0641 \u0646\u0645\u0627\u06cc\u06cc\u062f \u062a\u0627 \u062a\u0632\u0626\u06cc\u0646\u06cc \u0634\u0648\u062f\u060c \u06cc\u0627 \u0639\u0644\u0627\u0645\u062a \u062a\u0632\u0626\u06cc\u0646\u06cc \u0631\u0627 \u0628\u0631\u062f\u0627\u0631\u06cc\u062f.", + "This image is decorative": "\u0627\u06cc\u0646 \u062a\u0635\u0648\u06cc\u0631 \u062a\u0632\u0626\u06cc\u0646\u06cc \u0627\u0633\u062a", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u0627\u06cc\u0646 \u067e\u0627\u0631\u0627\u06af\u0631\u0627\u0641 \u0634\u0628\u06cc\u0647 \u06cc\u06a9 \u0633\u0631\u0641\u0635\u0644 \u0627\u0633\u062a. \u0627\u06af\u0631 \u06cc\u06a9 \u0633\u0631\u0641\u0635\u0644 \u0645\u06cc\u200c\u0628\u0627\u0634\u062f \u0644\u0637\u0641\u0627\u064b \u0628\u0631\u0627\u06cc \u0622\u0646 \u0633\u0637\u062d \u0633\u0631\u0641\u0635\u0644 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f.", + "Warning": "\u0647\u0634\u062f\u0627\u0631", + "{0} characters (maximum {1} allowed)": "{0} \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631 (\u062d\u062f\u0627\u06a9\u062b\u0631 {1} \u0645\u062c\u0627\u0632)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/fi.js b/plugins/a11ychecker/langs/fi.js new file mode 100644 index 00000000..ea29227d --- /dev/null +++ b/plugins/a11ychecker/langs/fi.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("fi", { + '"{0}"': '"{0}"', + "Accessibility Checker": "K\xe4ytett\xe4vyyden tarkistaja", + "Accessibility checker...": "K\xe4ytett\xe4vyyden tarkistaja...", + "Add a text description": "Lis\xe4\xe4 tekstikuvaus", + "Add a text description for this image": "Lis\xe4\xe4 kuvalle tekstikuvaus", + "Adjacent links with the same URL should be merged into one link": "Samaan URL:\xe4\xe4n viittaavat viereiset linkit tulee sulauttaa yhdeksi linkiksi", + "Caption cannot be empty": "Kuvateksti ei voi olla tyhj\xe4", + "Choose table header": "Valitse taulukon yl\xe4tunniste", + "Click for more info": "Napsauta saadaksesi lis\xe4tietoja", + "Column": "Sarake", + "Column group": "Sarakeryhm\xe4", + "Complex tables should have summaries": "Monimutkaisissa taulukoissa tulee olla yhteenvetoja", + "Decorative images are not allowed. Please add a text description.": "Koristeellisia kuvia ei sallita. Lis\xe4\xe4 tekstikuvaus.", + "Error": "Virhe", + "Header column": "Otsikkosarake", + "Header row": "Otsikkorivi", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Otsakkeita on lis\xe4tt\xe4v\xe4 jaksottaisessa j\xe4rjestyksess\xe4. Esimerkki: Otsikkoa 1 pit\xe4\xe4 seurata otsikko 2, ei otsikko 3.", + "ID attribute must be unique": "Tunnuksen attribuutin tulee olla yksil\xf6llinen", + "Ignore": "Ohita", + "Image": "Kuva", + "Image must be marked as decorative or have an alternative text description": "Kuva t\xe4ytyy merkit\xe4 koristeeksi tai sill\xe4 t\xe4ytyy olla vaihtoehtoinen tekstikuvaus", + "Image needs a text description": "Kuva tarvitsee tekstikuvauksen", + "Info": "Info", + "Issue {0} of {1}": "Ongelma {0}/{1}", + "Keep this ID and remove all others": "Pid\xe4 t\xe4m\xe4 tunnus ja poista kaikki muut", + "Large text must have a contrast ratio of at least 3:1": "Suuren tekstin kontrastisuhteen on oltava ainakin 3:1", + "Link": "Linkki", + "Make ID unique": "Tee tunnuksesta yksil\xf6llinen", + "Mark as decorative": "Merkitse koristeeksi", + "More info": "Lis\xe4tietoja", + "Next issue": "Seuraava ongelma", + "No accessibility issues detected": "K\xe4ytett\xe4vyysongelmia ei havaittu", + "Or add a text description": "Vaihtoehtoisesti lis\xe4\xe4 tekstikuvaus", + "Previous issue": "Edellinen ongelma", + "Provide caption": "Anna kuvateksti", + "Provide table summary": "Anna taulukon yhteenveto", + "Remove all IDs": "Poista kaikki tunnukset", + "Remove this ID": "Poista t\xe4m\xe4 tunnus", + "Repair": "Korjaa", + "Repair issue": "Korjaa ongelma", + "Replace filename with a meaningful description": "Korvaa tiedostonimi merkityksellisell\xe4 kuvauksella", + "Row": "Rivi", + "Row group": "Riviryhm\xe4", + "Select a heading level": "Valitse yl\xe4tunnisteen taso", + "Select header scope": "Valitse yl\xe4tunnisteen kattavuus", + "Shorten the text description": "Lyhenn\xe4 tekstikuvausta", + "Solution": "Ratkaisu", + "Success": "Onnistui", + "Summary cannot be empty": "Yhteenveto ei voi olla tyhj\xe4", + "Table": "Taulukko", + "Table caption and summary cannot have the same value": "Taulukon kuvatekstill\xe4 ja yhteenvedolla ei saa olla sama arvo", + "Table caption cannot be the same as the table summary": "Taulukon kuvateksti ei voi olla sama kuin taulukon yhteenveto", + "Table elements must contain TR and TD tags": "Taulukon elementtien on sis\xe4llett\xe4v\xe4 TR- ja TD-tunnisteet", + "Table headers must be applied to a row or a column": "Taulukon yl\xe4tunnisteita pit\xe4\xe4 k\xe4ytt\xe4\xe4 riviin tai sarakkeeseen", + "Table summary cannot be the same as the table caption": "Taulukon yhteenveto ei voi olla sama kuin taulukon kuvateksti", + "Tables must have at least one header cell": "Taulukoissa on oltava ainakin yksi yl\xe4tunnistesolu", + "Tables must have captions": "Taulukoissa on oltava kuvatekstit", + "Text": "Teksti", + "Text description cannot be empty": "Tekstikuvausta ei voi j\xe4tt\xe4\xe4 tyhj\xe4ksi", + "Text description is too long": "Tekstikuvaus on liian pitk\xe4", + "Text description should describe the image, not the filename": "Kuvaustekstin tulisi antaa selostus kuvalle, ei tiedostonimelle", + "Text description should not be the image filename": "Kuvaustekstin ei tulisi olla sama kuin kuvan tiedostonimi", + "Text must have a contrast ratio of at least 4.5:1": "Tekstin kontrastisuhteen on oltava ainakin 4,5:1", + "Text must have a contrast ratio of at least 7:1": "Tekstin kontrastisuhteen on oltava ainakin 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Valittu teksti n\xe4ytt\xe4\xe4 olevan lista. Listat tulee muotoilla k\xe4ytt\xe4en listatunnistetta.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Kuvan tiedot ovat ristiriitaisia. Tee kuvasta koriste poistamalla tekstikuvaus, tai poista koristeellisen kuvan merkint\xe4.", + "This image is decorative": "Kuva on koriste", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "T\xe4m\xe4 kappale n\xe4ytt\xe4\xe4 otsikolta. Jos se on otsikko, valitse otsikkotaso.", + "Warning": "Varoitus", + "{0} characters (maximum {1} allowed)": "{0} merkki\xe4 (enimm\xe4ispituus {1} merkki\xe4)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/fr-FR.js b/plugins/a11ychecker/langs/fr-FR.js new file mode 100644 index 00000000..5b22c113 --- /dev/null +++ b/plugins/a11ychecker/langs/fr-FR.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("fr-FR", { + '"{0}"': "\xab\xa0{0}\xa0\xbb", + "Accessibility Checker": "V\xe9rificateur d\u2019accessibilit\xe9", + "Accessibility checker...": "V\xe9rificateur d\u2019accessibilit\xe9...", + "Add a text description": "Ajoutez un texte de description", + "Add a text description for this image": "Ajoutez un texte de description \xe0 cette image", + "Adjacent links with the same URL should be merged into one link": "Les liens adjacents ayant la m\xeame URL doivent \xeatre fusionn\xe9s en un seul lien", + "Caption cannot be empty": "La l\xe9gende doit \xeatre renseign\xe9e", + "Choose table header": "Choisissez l'en-t\xeate du tableau", + "Click for more info": "Cliquer pour plus d'informations", + "Column": "Colonne", + "Column group": "Groupe de colonnes", + "Complex tables should have summaries": "Les tableaux complexes doivent avoir des r\xe9sum\xe9s", + "Decorative images are not allowed. Please add a text description.": "Les images d\xe9coratives ne sont pas autoris\xe9es. Veuillez ajouter un texte de description.", + "Error": "Erreur", + "Header column": "En-t\xeate de colonne", + "Header row": "En-t\xeate de ligne", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Les titres doivent \xeatre appliqu\xe9s dans un ordre s\xe9quentiel. Par exemple : le Titre 1 doit \xeatre suivi du Titre 2 et non du Titre 3.", + "ID attribute must be unique": "L'attribut ID doit \xeatre unique", + "Ignore": "Ignorer", + "Image": "Image", + "Image must be marked as decorative or have an alternative text description": "L'image doit \xeatre marqu\xe9e comme \xe9tant d\xe9corative ou bien avoir une autre description textuelle", + "Image needs a text description": "L'image a besoin d'une description textuelle", + "Info": "Information", + "Issue {0} of {1}": "Probl\xe8me {0} sur {1}", + "Keep this ID and remove all others": "Conservez cet ID et supprimez tous les autres", + "Large text must have a contrast ratio of at least 3:1": "Les textes de grande taille doivent avoir un rapport de contraste d'au moins 3:1", + "Link": "Lien", + "Make ID unique": "Rendre l'ID unique", + "Mark as decorative": "Marquer comme d\xe9corative", + "More info": "Plus d'informations", + "Next issue": "Probl\xe8me suivant", + "No accessibility issues detected": "Aucun probl\xe8me d'accessibilit\xe9 d\xe9tect\xe9", + "Or add a text description": "Ou ajoutez un texte de description", + "Previous issue": "Probl\xe8me pr\xe9c\xe9dent", + "Provide caption": "Fournissez une l\xe9gende", + "Provide table summary": "Fournissez un r\xe9sum\xe9 pour le tableau", + "Remove all IDs": "Supprimer tous les ID", + "Remove this ID": "Supprimer cet ID", + "Repair": "R\xe9paration", + "Repair issue": "R\xe9parer le probl\xe8me", + "Replace filename with a meaningful description": "Remplacez le nom du fichier par une description significative", + "Row": "Ligne", + "Row group": "Groupe de lignes", + "Select a heading level": "S\xe9lectionnez un niveau de titre", + "Select header scope": "S\xe9lectionnez l'\xe9tendue de l'en-t\xeate", + "Shorten the text description": "Raccourcissez le texte de description", + "Solution": "Solution", + "Success": "R\xe9ussite", + "Summary cannot be empty": "Le r\xe9sum\xe9 doit \xeatre renseign\xe9", + "Table": "Tableau", + "Table caption and summary cannot have the same value": "La l\xe9gende et le r\xe9sum\xe9 du tableau ne peuvent pas avoir la m\xeame valeur", + "Table caption cannot be the same as the table summary": "La l\xe9gende du tableau doit \xeatre diff\xe9rente du r\xe9sum\xe9 du tableau", + "Table elements must contain TR and TD tags": "Les \xe9l\xe9ments du tableau doivent contenir des balises TR et TD", + "Table headers must be applied to a row or a column": "Les en-t\xeates doivent s'appliquer \xe0 une ligne ou \xe0 une colonne", + "Table summary cannot be the same as the table caption": "Le r\xe9sum\xe9 du tableau doit \xeatre diff\xe9rent de la l\xe9gende du tableau", + "Tables must have at least one header cell": "Les tableaux doivent contenir au moins une cellule d'en-t\xeate", + "Tables must have captions": "Les tableaux doivent comporter des l\xe9gendes", + "Text": "Texte", + "Text description cannot be empty": "Le texte de description ne peut pas \xeatre vide", + "Text description is too long": "Le texte de description est trop long", + "Text description should describe the image, not the filename": "Le texte de description doit d\xe9crire l'image, pas le nom de fichier", + "Text description should not be the image filename": "Le texte de description ne peut pas \xeatre identique au nom de fichier de l'image", + "Text must have a contrast ratio of at least 4.5:1": "Le texte doit avoir un rapport de contraste d'au moins 4.5:1", + "Text must have a contrast ratio of at least 7:1": "Le texte doit avoir un rapport de contraste d'au moins 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Le texte s\xe9lectionn\xe9 semble \xeatre une liste. Les listes doivent \xeatre format\xe9es \xe0 l'aide d'une balise de liste.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Cette image contient des informations contradictoires. Supprimez la description textuelle pour la rendre d\xe9corative ou supprimez le marquage d\xe9coratif.", + "This image is decorative": "Cette image est d\xe9corative", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Ce paragraphe ressemble \xe0 un titre. S'il s'agit d'un titre, veuillez s\xe9lectionner un niveau de titre.", + "Warning": "Attention", + "{0} characters (maximum {1} allowed)": "{0} caract\xe8res (maximum autoris\xe9 : {1})" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/fr_FR.js b/plugins/a11ychecker/langs/fr_FR.js new file mode 100644 index 00000000..cb66a0e2 --- /dev/null +++ b/plugins/a11ychecker/langs/fr_FR.js @@ -0,0 +1,80 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("fr-FR", { + '"{0}"': "\xab\xa0{0}\xa0\xbb", + "Accessibility Checker": "V\xe9rificateur d\u2019accessibilit\xe9", + "Accessibility checker...": "V\xe9rificateur d\u2019accessibilit\xe9...", + "Add a text description": "Ajoutez un texte de description", + "Add a text description for this image": "Ajoutez un texte de description \xe0 cette image", + "Adjacent links with the same URL should be merged into one link": "Les liens adjacents ayant la m\xeame URL doivent \xeatre fusionn\xe9s en un seul lien", + "Caption cannot be empty": "La l\xe9gende doit \xeatre renseign\xe9e", + "Choose table header": "Choisissez l'en-t\xeate du tableau", + "Click for more info": "Cliquer pour plus d'informations", + "Column": "Colonne", + "Column group": "Groupe de colonnes", + "Complex tables should have summaries": "Les tableaux complexes doivent avoir des r\xe9sum\xe9s", + "Decorative images are not allowed. Please add a text description.": "Les images d\xe9coratives ne sont pas autoris\xe9es. Veuillez ajouter un texte de description.", + "Error": "Erreur", + "Header column": "En-t\xeate de colonne", + "Header row": "En-t\xeate de ligne", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Les titres doivent \xeatre appliqu\xe9s dans un ordre s\xe9quentiel. Par exemple : le Titre 1 doit \xeatre suivi du Titre 2 et non du Titre 3.", + "ID attribute must be unique": "L'attribut ID doit \xeatre unique", + "Ignore": "Ignorer", + "Image": "Image", + "Image must be marked as decorative or have an alternative text description": "L'image doit \xeatre marqu\xe9e comme \xe9tant d\xe9corative ou bien avoir une autre description textuelle", + "Image needs a text description": "L'image a besoin d'une description textuelle", + "Info": "Information", + "Issue {0} of {1}": "Probl\xe8me {0} sur {1}", + "Keep this ID and remove all others": "Conservez cet ID et supprimez tous les autres", + "Large text must have a contrast ratio of at least 3:1": "Les textes de grande taille doivent avoir un rapport de contraste d'au moins 3:1", + "Link": "Lien", + "Make ID unique": "Rendre l'ID unique", + "Mark as decorative": "Marquer comme d\xe9corative", + "More info": "Plus d'informations", + "Next issue": "Probl\xe8me suivant", + "No accessibility issues detected": "Aucun probl\xe8me d'accessibilit\xe9 d\xe9tect\xe9", + "Or add a text description": "Ou ajoutez un texte de description", + "Previous issue": "Probl\xe8me pr\xe9c\xe9dent", + "Provide caption": "Fournissez une l\xe9gende", + "Provide table summary": "Fournissez un r\xe9sum\xe9 pour le tableau", + "Remove all IDs": "Supprimer tous les ID", + "Remove this ID": "Supprimer cet ID", + "Repair": "R\xe9paration", + "Repair issue": "R\xe9parer le probl\xe8me", + "Replace filename with a meaningful description": "Remplacez le nom du fichier par une description significative", + "Row": "Ligne", + "Row group": "Groupe de lignes", + "Select a heading level": "S\xe9lectionnez un niveau de titre", + "Select header scope": "S\xe9lectionnez l'\xe9tendue de l'en-t\xeate", + "Shorten the text description": "Raccourcissez le texte de description", + "Solution": "Solution", + "Success": "R\xe9ussite", + "Summary cannot be empty": "Le r\xe9sum\xe9 doit \xeatre renseign\xe9", + "Table": "Tableau", + "Table caption and summary cannot have the same value": "La l\xe9gende et le r\xe9sum\xe9 du tableau ne peuvent pas avoir la m\xeame valeur", + "Table caption cannot be the same as the table summary": "La l\xe9gende du tableau doit \xeatre diff\xe9rente du r\xe9sum\xe9 du tableau", + "Table elements must contain TR and TD tags": "Les \xe9l\xe9ments du tableau doivent contenir des balises TR et TD", + "Table headers must be applied to a row or a column": "Les en-t\xeates doivent s'appliquer \xe0 une ligne ou \xe0 une colonne", + "Table summary cannot be the same as the table caption": "Le r\xe9sum\xe9 du tableau doit \xeatre diff\xe9rent de la l\xe9gende du tableau", + "Tables must have at least one header cell": "Les tableaux doivent contenir au moins une cellule d'en-t\xeate", + "Tables must have captions": "Les tableaux doivent comporter des l\xe9gendes", + "Text": "Texte", + "Text description cannot be empty": "Le texte de description ne peut pas \xeatre vide", + "Text description is too long": "Le texte de description est trop long", + "Text description should describe the image, not the filename": "Le texte de description doit d\xe9crire l'image, pas le nom de fichier", + "Text description should not be the image filename": "Le texte de description ne peut pas \xeatre identique au nom de fichier de l'image", + "Text must have a contrast ratio of at least 4.5:1": "Le texte doit avoir un rapport de contraste d'au moins 4.5:1", + "Text must have a contrast ratio of at least 7:1": "Le texte doit avoir un rapport de contraste d'au moins 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Le texte s\xe9lectionn\xe9 semble \xeatre une liste. Les listes doivent \xeatre format\xe9es \xe0 l'aide d'une balise de liste.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Cette image contient des informations contradictoires. Supprimez la description textuelle pour la rendre d\xe9corative ou supprimez le marquage d\xe9coratif.", + "This image is decorative": "Cette image est d\xe9corative", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Ce paragraphe ressemble \xe0 un titre. S'il s'agit d'un titre, veuillez s\xe9lectionner un niveau de titre.", + "Warning": "Attention", + "{0} characters (maximum {1} allowed)": "{0} caract\xe8res (maximum autoris\xe9 : {1})" +}); + +console.warn('TinyMCE language code "fr_FR" is deprecated, please use "fr-FR" instead.'); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/he-IL.js b/plugins/a11ychecker/langs/he-IL.js new file mode 100644 index 00000000..4650779d --- /dev/null +++ b/plugins/a11ychecker/langs/he-IL.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("he-IL", { + '"{0}"': '"{0}"', + "Accessibility Checker": "\u05d1\u05d5\u05d3\u05e7 \u05e0\u05d2\u05d9\u05e9\u05d5\u05ea", + "Accessibility checker...": "\u05d1\u05d5\u05d3\u05e7 \u05e0\u05d2\u05d9\u05e9\u05d5\u05ea...", + "Add a text description": "\u05d4\u05d5\u05e1\u05e4\u05ea \u05d8\u05e7\u05e1\u05d8 \u05ea\u05d9\u05d0\u05d5\u05e8", + "Add a text description for this image": "\u05d4\u05d5\u05e1\u05d9\u05e4\u05d5 \u05dc\u05ea\u05de\u05d5\u05e0\u05d4 \u05d4\u05d6\u05d5 \u05d8\u05e7\u05e1\u05d8 \u05ea\u05d9\u05d0\u05d5\u05e8", + "Adjacent links with the same URL should be merged into one link": "\u05d9\u05e9 \u05dc\u05de\u05d6\u05d2 \u05e7\u05d9\u05e9\u05d5\u05e8\u05d9\u05dd \u05e1\u05de\u05d5\u05db\u05d9\u05dd \u05d1\u05e2\u05dc\u05d9 \u05d0\u05d5\u05ea\u05d4 \u05db\u05ea\u05d5\u05d1\u05ea URL \u05dc\u05e7\u05d9\u05e9\u05d5\u05e8 \u05d0\u05d7\u05d3", + "Caption cannot be empty": "\u05db\u05d9\u05ea\u05d5\u05d1 \u05d0\u05d9\u05e0\u05d5 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d9\u05d5\u05ea \u05e8\u05d9\u05e7", + "Choose table header": "\u05d1\u05d7\u05e8\u05d5 \u05db\u05d5\u05ea\u05e8\u05ea \u05d8\u05d1\u05dc\u05d4", + "Click for more info": "\u05dc\u05d7\u05e5 \u05dc\u05de\u05d9\u05d3\u05e2 \u05e0\u05d5\u05e1\u05e3", + "Column": "\u05e2\u05de\u05d5\u05d3\u05d4", + "Column group": "\u05e7\u05d1\u05d5\u05e6\u05ea \u05e2\u05de\u05d5\u05d3\u05d5\u05ea", + "Complex tables should have summaries": "\u05e2\u05dc \u05d8\u05d1\u05dc\u05d0\u05d5\u05ea \u05de\u05d5\u05e8\u05db\u05d1\u05d5\u05ea \u05dc\u05db\u05dc\u05d5\u05dc \u05e1\u05d9\u05db\u05d5\u05de\u05d9\u05dd", + "Decorative images are not allowed. Please add a text description.": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05ea\u05de\u05d5\u05e0\u05d5\u05ea \u05e7\u05d9\u05e9\u05d5\u05d8\u05d9\u05d5\u05ea. \u05d9\u05e9 \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05d8\u05e7\u05e1\u05d8 \u05ea\u05d9\u05d0\u05d5\u05e8.", + "Error": "\u05e9\u05d2\u05d9\u05d0\u05d4", + "Header column": "\u05db\u05d5\u05ea\u05e8\u05ea \u05e2\u05de\u05d5\u05d3\u05d4", + "Header row": "\u05db\u05d5\u05ea\u05e8\u05ea \u05e9\u05d5\u05e8\u05d4", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u05d9\u05e9 \u05dc\u05d4\u05d7\u05d9\u05dc \u05db\u05d5\u05ea\u05e8\u05d5\u05ea \u05d1\u05e1\u05d3\u05e8 \u05e8\u05e6\u05d9\u05e3. \u05dc\u05d3\u05d5\u05d2\u05de\u05d4: \u05d0\u05d7\u05e8\u05d9 \u05db\u05d5\u05ea\u05e8\u05ea 1 \u05ea\u05d5\u05e4\u05d9\u05e2 \u05db\u05d5\u05ea\u05e8\u05ea 2, \u05dc\u05d0 \u05db\u05d5\u05ea\u05e8\u05ea 3.", + "ID attribute must be unique": "\u05de\u05d0\u05e4\u05d9\u05d9\u05df \u05de\u05d6\u05d4\u05d4 \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05d9\u05d9\u05d7\u05d5\u05d3\u05d9", + "Ignore": "\u05d4\u05ea\u05e2\u05dc\u05dd", + "Image": "\u05ea\u05de\u05d5\u05e0\u05d4", + "Image must be marked as decorative or have an alternative text description": "\u05d9\u05e9 \u05dc\u05e1\u05de\u05df \u05d0\u05ea \u05d4\u05ea\u05de\u05d5\u05e0\u05d4 \u05db\u05e7\u05d9\u05e9\u05d5\u05d8\u05d9\u05ea \u05d0\u05d5 \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05dc\u05d4 \u05ea\u05d9\u05d0\u05d5\u05e8 \u05d8\u05e7\u05e1\u05d8 \u05d7\u05dc\u05d5\u05e4\u05d9", + "Image needs a text description": "\u05d9\u05e9 \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05dc\u05ea\u05de\u05d5\u05e0\u05d4 \u05d8\u05e7\u05e1\u05d8 \u05ea\u05d9\u05d0\u05d5\u05e8", + "Info": "\u05de\u05d9\u05d3\u05e2", + "Issue {0} of {1}": "\u05e0\u05d5\u05e9\u05d0{0} \u05e9\u05dc{1}", + "Keep this ID and remove all others": "\u05e9\u05de\u05d5\u05e8 \u05e2\u05dc \u05de\u05d6\u05d4\u05d4 \u05d6\u05d4 \u05d5\u05d4\u05e1\u05e8 \u05d0\u05ea \u05db\u05dc \u05d4\u05d0\u05d7\u05e8\u05d9\u05dd", + "Large text must have a contrast ratio of at least 3:1": "\u05e2\u05dc \u05d8\u05d1\u05dc\u05d0\u05d5\u05ea \u05dc\u05db\u05dc\u05d5\u05dc \u05d9\u05d7\u05e1 \u05e0\u05d9\u05d2\u05d5\u05d3\u05d9\u05d5\u05ea \u05e9\u05dc 3:1 \u05dc\u05db\u05dc \u05d4\u05e4\u05d7\u05d5\u05ea", + "Link": "\u05e7\u05d9\u05e9\u05d5\u05e8", + "Make ID unique": "\u05d4\u05e4\u05d5\u05da \u05d0\u05ea \u05d4\u05de\u05d6\u05d4\u05d4 \u05dc\u05d9\u05d9\u05d7\u05d5\u05d3\u05d9", + "Mark as decorative": "\u05dc\u05e1\u05de\u05df \u05db\u05e7\u05d9\u05e9\u05d5\u05d8\u05d9\u05ea", + "More info": "\u05de\u05d9\u05d3\u05e2 \u05e0\u05d5\u05e1\u05e3", + "Next issue": "\u05d4\u05d1\u05e2\u05d9\u05d4 \u05d4\u05d1\u05d0\u05d4", + "No accessibility issues detected": "\u05dc\u05d0 \u05d6\u05d5\u05d4\u05d5 \u05d1\u05e2\u05d9\u05d5\u05ea \u05e0\u05d2\u05d9\u05e9\u05d5\u05ea", + "Or add a text description": "\u05d0\u05d5 \u05d4\u05d5\u05e1\u05d9\u05e4\u05d5 \u05d8\u05e7\u05e1\u05d8 \u05ea\u05d9\u05d0\u05d5\u05e8", + "Previous issue": "\u05d4\u05d1\u05e2\u05d9\u05d4 \u05d4\u05e7\u05d5\u05d3\u05de\u05ea", + "Provide caption": "\u05e1\u05e4\u05e7\u05d5 \u05db\u05d9\u05ea\u05d5\u05d1", + "Provide table summary": "\u05e1\u05e4\u05e7\u05d5 \u05e1\u05d9\u05db\u05d5\u05dd \u05d8\u05d1\u05dc\u05d4", + "Remove all IDs": "\u05d4\u05e1\u05e8 \u05d0\u05ea \u05db\u05dc \u05ea\u05e2\u05d5\u05d3\u05d5\u05ea \u05d4\u05d6\u05d4\u05d5\u05ea", + "Remove this ID": "\u05d4\u05e1\u05e8 \u05de\u05d6\u05d4\u05d4 \u05d6\u05d4", + "Repair": "\u05dc\u05b0\u05ea\u05b7\u05e7\u05b5\u05df", + "Repair issue": "\u05ea\u05d9\u05e7\u05d5\u05df \u05d1\u05e2\u05d9\u05d4", + "Replace filename with a meaningful description": "\u05d9\u05e9 \u05dc\u05d4\u05d7\u05dc\u05d9\u05e3 \u05d0\u05ea \u05e9\u05dd \u05d4\u05e7\u05d5\u05d1\u05e5 \u05d1\u05ea\u05d9\u05d0\u05d5\u05e8 \u05de\u05e9\u05de\u05e2\u05d5\u05ea\u05d9", + "Row": "\u05e9\u05d5\u05e8\u05d4", + "Row group": "\u05e7\u05d1\u05d5\u05e6\u05ea \u05e9\u05d5\u05e8\u05d5\u05ea", + "Select a heading level": "\u05d1\u05d7\u05e8\u05d5 \u05e8\u05de\u05ea \u05db\u05d5\u05ea\u05e8\u05ea", + "Select header scope": "\u05d1\u05d7\u05e8\u05d5 \u05d8\u05d5\u05d5\u05d7 \u05db\u05d5\u05ea\u05e8\u05ea", + "Shorten the text description": "\u05d9\u05e9 \u05dc\u05e7\u05e6\u05e8 \u05d0\u05ea \u05d8\u05e7\u05e1\u05d8 \u05d4\u05ea\u05d9\u05d0\u05d5\u05e8", + "Solution": "\u05e4\u05ea\u05e8\u05d5\u05df", + "Success": "\u05d4\u05b7\u05e6\u05dc\u05b8\u05d7\u05b8\u05d4", + "Summary cannot be empty": "\u05e1\u05d9\u05db\u05d5\u05dd \u05d0\u05d9\u05e0\u05d5 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d9\u05d5\u05ea \u05e8\u05d9\u05e7", + "Table": "\u05d8\u05d1\u05dc\u05d4", + "Table caption and summary cannot have the same value": "\u05db\u05d9\u05ea\u05d5\u05d1 \u05d1\u05d8\u05d1\u05dc\u05d4 \u05d5\u05e1\u05d9\u05db\u05d5\u05dd \u05d8\u05d1\u05dc\u05d4 \u05d0\u05d9\u05e0\u05dd \u05d9\u05db\u05d5\u05dc\u05d9\u05dd \u05dc\u05d4\u05d9\u05d5\u05ea \u05d1\u05e2\u05dc\u05d9 \u05e2\u05e8\u05da \u05d6\u05d4\u05d4", + "Table caption cannot be the same as the table summary": "\u05db\u05d9\u05ea\u05d5\u05d1 \u05e9\u05dc \u05d8\u05d1\u05dc\u05d4 \u05d0\u05d9\u05e0\u05d5 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d9\u05d5\u05ea \u05d6\u05d4\u05d4 \u05dc\u05e1\u05d9\u05db\u05d5\u05dd \u05d4\u05d8\u05d1\u05dc\u05d4", + "Table elements must contain TR and TD tags": "\u05e2\u05dc \u05e8\u05db\u05d9\u05d1\u05d9 \u05d8\u05d1\u05dc\u05d4 \u05dc\u05db\u05dc\u05d5\u05dc \u05ea\u05d2\u05d9\u05d5\u05ea TR \u05d5-TD", + "Table headers must be applied to a row or a column": "\u05d9\u05e9 \u05dc\u05d4\u05d7\u05d9\u05dc \u05db\u05d5\u05ea\u05e8\u05d5\u05ea \u05e9\u05dc \u05d8\u05d1\u05dc\u05d0\u05d5\u05ea \u05e2\u05dc \u05e9\u05d5\u05e8\u05d4 \u05d0\u05d5 \u05e2\u05de\u05d5\u05d3\u05d4", + "Table summary cannot be the same as the table caption": "\u05db\u05d9\u05ea\u05d5\u05d1 \u05e9\u05dc \u05d8\u05d1\u05dc\u05d4 \u05d0\u05d9\u05e0\u05d5 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d9\u05d5\u05ea \u05d6\u05d4\u05d4 \u05dc\u05e1\u05d9\u05db\u05d5\u05dd \u05d4\u05d8\u05d1\u05dc\u05d4", + "Tables must have at least one header cell": "\u05e2\u05dc \u05d8\u05d1\u05dc\u05d0\u05d5\u05ea \u05dc\u05db\u05dc\u05d5\u05dc \u05dc\u05e4\u05d7\u05d5\u05ea \u05ea\u05d0 \u05db\u05d5\u05ea\u05e8\u05ea \u05d0\u05d7\u05d3", + "Tables must have captions": "\u05e2\u05dc \u05d8\u05d1\u05dc\u05d0\u05d5\u05ea \u05dc\u05db\u05dc\u05d5\u05dc \u05db\u05ea\u05d5\u05d1\u05d9\u05d5\u05ea", + "Text": "\u05d8\u05e7\u05e1\u05d8", + "Text description cannot be empty": "\u05d8\u05e7\u05e1\u05d8 \u05d4\u05ea\u05d9\u05d0\u05d5\u05e8 \u05dc\u05d0 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d9\u05d5\u05ea \u05e8\u05d9\u05e7", + "Text description is too long": "\u05d8\u05e7\u05e1\u05d8 \u05d4\u05ea\u05d9\u05d0\u05d5\u05e8 \u05d0\u05e8\u05d5\u05da \u05de\u05d3\u05d9", + "Text description should describe the image, not the filename": "\u05d8\u05e7\u05e1\u05d8 \u05d4\u05ea\u05d9\u05d0\u05d5\u05e8 \u05e6\u05e8\u05d9\u05da \u05dc\u05ea\u05d0\u05e8 \u05d0\u05ea \u05d4\u05ea\u05de\u05d5\u05e0\u05d4, \u05dc\u05d0 \u05d0\u05ea \u05e9\u05dd \u05d4\u05e7\u05d5\u05d1\u05e5", + "Text description should not be the image filename": "\u05d8\u05e7\u05e1\u05d8 \u05d4\u05ea\u05d9\u05d0\u05d5\u05e8 \u05dc\u05d0 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d9\u05d5\u05ea \u05d6\u05d4\u05d4 \u05dc\u05e9\u05dd \u05d4\u05e7\u05d5\u05d1\u05e5 \u05e9\u05dc \u05d4\u05ea\u05de\u05d5\u05e0\u05d4", + "Text must have a contrast ratio of at least 4.5:1": "\u05e2\u05dc \u05d8\u05d1\u05dc\u05d0\u05d5\u05ea \u05dc\u05db\u05dc\u05d5\u05dc \u05d9\u05d7\u05e1 \u05e0\u05d9\u05d2\u05d5\u05d3\u05d9\u05d5\u05ea \u05e9\u05dc 4.5:1 \u05dc\u05db\u05dc \u05d4\u05e4\u05d7\u05d5\u05ea", + "Text must have a contrast ratio of at least 7:1": "\u05e2\u05dc \u05d8\u05d1\u05dc\u05d0\u05d5\u05ea \u05dc\u05db\u05dc\u05d5\u05dc \u05d9\u05d7\u05e1 \u05e0\u05d9\u05d2\u05d5\u05d3\u05d9\u05d5\u05ea \u05e9\u05dc 7:1 \u05dc\u05db\u05dc \u05d4\u05e4\u05d7\u05d5\u05ea", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u05d4\u05d8\u05e7\u05e1\u05d8 \u05e9\u05e0\u05d1\u05d7\u05e8 \u05e0\u05e8\u05d0\u05d4 \u05db\u05de\u05d5 \u05e8\u05e9\u05d9\u05de\u05d4. \u05d9\u05e9 \u05dc\u05e2\u05e6\u05d1 \u05e8\u05e9\u05d9\u05de\u05d5\u05ea \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05ea\u05d2\u05d9\u05ea \u05e8\u05e9\u05d9\u05de\u05d4.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u05ea\u05de\u05d5\u05e0\u05d4 \u05d6\u05d5 \u05db\u05d5\u05dc\u05dc\u05ea \u05de\u05d9\u05d3\u05e2 \u05e0\u05d9\u05d2\u05d5\u05d3\u05d9. \u05d9\u05e9 \u05dc\u05d4\u05e1\u05d9\u05e8 \u05d0\u05ea \u05d8\u05e7\u05e1\u05d8 \u05d4\u05ea\u05d9\u05d0\u05d5\u05e8 \u05db\u05d3\u05d9 \u05dc\u05e1\u05de\u05df \u05d0\u05d5\u05ea\u05d4 \u05db\u05e7\u05d9\u05e9\u05d5\u05d8\u05d9\u05ea \u05d0\u05d5 \u05dc\u05d4\u05e1\u05d9\u05e8 \u05d0\u05ea \u05d4\u05e1\u05d9\u05de\u05d5\u05df \u05e9\u05dc\u05d4 \u05db\u05e7\u05d9\u05e9\u05d5\u05d8\u05d9\u05ea.", + "This image is decorative": "\u05d4\u05ea\u05de\u05d5\u05e0\u05d4 \u05d4\u05d6\u05d5 \u05e7\u05d9\u05e9\u05d5\u05d8\u05d9\u05ea", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u05e4\u05e1\u05e7\u05d4 \u05d6\u05d5 \u05e0\u05e8\u05d0\u05d9\u05ea \u05db\u05de\u05d5 \u05db\u05d5\u05ea\u05e8\u05ea. \u05d0\u05dd \u05d6\u05d5 \u05db\u05d5\u05ea\u05e8\u05ea, \u05d1\u05d7\u05e8 \u05e8\u05de\u05ea \u05db\u05d5\u05ea\u05e8\u05ea.", + "Warning": "\u05d0\u05d6\u05d4\u05e8\u05d4", + "{0} characters (maximum {1} allowed)": "{0} \u05ea\u05d5\u05d5\u05d9\u05dd (\u05de\u05d5\u05ea\u05e8\u05d9\u05dd {1} \u05dc\u05db\u05dc \u05d4\u05d9\u05d5\u05ea\u05e8)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/he_IL.js b/plugins/a11ychecker/langs/he_IL.js new file mode 100644 index 00000000..002eac11 --- /dev/null +++ b/plugins/a11ychecker/langs/he_IL.js @@ -0,0 +1,80 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("he-IL", { + '"{0}"': '"{0}"', + "Accessibility Checker": "\u05d1\u05d5\u05d3\u05e7 \u05e0\u05d2\u05d9\u05e9\u05d5\u05ea", + "Accessibility checker...": "\u05d1\u05d5\u05d3\u05e7 \u05e0\u05d2\u05d9\u05e9\u05d5\u05ea...", + "Add a text description": "\u05d4\u05d5\u05e1\u05e4\u05ea \u05d8\u05e7\u05e1\u05d8 \u05ea\u05d9\u05d0\u05d5\u05e8", + "Add a text description for this image": "\u05d4\u05d5\u05e1\u05d9\u05e4\u05d5 \u05dc\u05ea\u05de\u05d5\u05e0\u05d4 \u05d4\u05d6\u05d5 \u05d8\u05e7\u05e1\u05d8 \u05ea\u05d9\u05d0\u05d5\u05e8", + "Adjacent links with the same URL should be merged into one link": "\u05d9\u05e9 \u05dc\u05de\u05d6\u05d2 \u05e7\u05d9\u05e9\u05d5\u05e8\u05d9\u05dd \u05e1\u05de\u05d5\u05db\u05d9\u05dd \u05d1\u05e2\u05dc\u05d9 \u05d0\u05d5\u05ea\u05d4 \u05db\u05ea\u05d5\u05d1\u05ea URL \u05dc\u05e7\u05d9\u05e9\u05d5\u05e8 \u05d0\u05d7\u05d3", + "Caption cannot be empty": "\u05db\u05d9\u05ea\u05d5\u05d1 \u05d0\u05d9\u05e0\u05d5 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d9\u05d5\u05ea \u05e8\u05d9\u05e7", + "Choose table header": "\u05d1\u05d7\u05e8\u05d5 \u05db\u05d5\u05ea\u05e8\u05ea \u05d8\u05d1\u05dc\u05d4", + "Click for more info": "\u05dc\u05d7\u05e5 \u05dc\u05de\u05d9\u05d3\u05e2 \u05e0\u05d5\u05e1\u05e3", + "Column": "\u05e2\u05de\u05d5\u05d3\u05d4", + "Column group": "\u05e7\u05d1\u05d5\u05e6\u05ea \u05e2\u05de\u05d5\u05d3\u05d5\u05ea", + "Complex tables should have summaries": "\u05e2\u05dc \u05d8\u05d1\u05dc\u05d0\u05d5\u05ea \u05de\u05d5\u05e8\u05db\u05d1\u05d5\u05ea \u05dc\u05db\u05dc\u05d5\u05dc \u05e1\u05d9\u05db\u05d5\u05de\u05d9\u05dd", + "Decorative images are not allowed. Please add a text description.": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05ea\u05de\u05d5\u05e0\u05d5\u05ea \u05e7\u05d9\u05e9\u05d5\u05d8\u05d9\u05d5\u05ea. \u05d9\u05e9 \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05d8\u05e7\u05e1\u05d8 \u05ea\u05d9\u05d0\u05d5\u05e8.", + "Error": "\u05e9\u05d2\u05d9\u05d0\u05d4", + "Header column": "\u05db\u05d5\u05ea\u05e8\u05ea \u05e2\u05de\u05d5\u05d3\u05d4", + "Header row": "\u05db\u05d5\u05ea\u05e8\u05ea \u05e9\u05d5\u05e8\u05d4", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u05d9\u05e9 \u05dc\u05d4\u05d7\u05d9\u05dc \u05db\u05d5\u05ea\u05e8\u05d5\u05ea \u05d1\u05e1\u05d3\u05e8 \u05e8\u05e6\u05d9\u05e3. \u05dc\u05d3\u05d5\u05d2\u05de\u05d4: \u05d0\u05d7\u05e8\u05d9 \u05db\u05d5\u05ea\u05e8\u05ea 1 \u05ea\u05d5\u05e4\u05d9\u05e2 \u05db\u05d5\u05ea\u05e8\u05ea 2, \u05dc\u05d0 \u05db\u05d5\u05ea\u05e8\u05ea 3.", + "ID attribute must be unique": "\u05de\u05d0\u05e4\u05d9\u05d9\u05df \u05de\u05d6\u05d4\u05d4 \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05d9\u05d9\u05d7\u05d5\u05d3\u05d9", + "Ignore": "\u05d4\u05ea\u05e2\u05dc\u05dd", + "Image": "\u05ea\u05de\u05d5\u05e0\u05d4", + "Image must be marked as decorative or have an alternative text description": "\u05d9\u05e9 \u05dc\u05e1\u05de\u05df \u05d0\u05ea \u05d4\u05ea\u05de\u05d5\u05e0\u05d4 \u05db\u05e7\u05d9\u05e9\u05d5\u05d8\u05d9\u05ea \u05d0\u05d5 \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05dc\u05d4 \u05ea\u05d9\u05d0\u05d5\u05e8 \u05d8\u05e7\u05e1\u05d8 \u05d7\u05dc\u05d5\u05e4\u05d9", + "Image needs a text description": "\u05d9\u05e9 \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05dc\u05ea\u05de\u05d5\u05e0\u05d4 \u05d8\u05e7\u05e1\u05d8 \u05ea\u05d9\u05d0\u05d5\u05e8", + "Info": "\u05de\u05d9\u05d3\u05e2", + "Issue {0} of {1}": "\u05e0\u05d5\u05e9\u05d0{0} \u05e9\u05dc{1}", + "Keep this ID and remove all others": "\u05e9\u05de\u05d5\u05e8 \u05e2\u05dc \u05de\u05d6\u05d4\u05d4 \u05d6\u05d4 \u05d5\u05d4\u05e1\u05e8 \u05d0\u05ea \u05db\u05dc \u05d4\u05d0\u05d7\u05e8\u05d9\u05dd", + "Large text must have a contrast ratio of at least 3:1": "\u05e2\u05dc \u05d8\u05d1\u05dc\u05d0\u05d5\u05ea \u05dc\u05db\u05dc\u05d5\u05dc \u05d9\u05d7\u05e1 \u05e0\u05d9\u05d2\u05d5\u05d3\u05d9\u05d5\u05ea \u05e9\u05dc 3:1 \u05dc\u05db\u05dc \u05d4\u05e4\u05d7\u05d5\u05ea", + "Link": "\u05e7\u05d9\u05e9\u05d5\u05e8", + "Make ID unique": "\u05d4\u05e4\u05d5\u05da \u05d0\u05ea \u05d4\u05de\u05d6\u05d4\u05d4 \u05dc\u05d9\u05d9\u05d7\u05d5\u05d3\u05d9", + "Mark as decorative": "\u05dc\u05e1\u05de\u05df \u05db\u05e7\u05d9\u05e9\u05d5\u05d8\u05d9\u05ea", + "More info": "\u05de\u05d9\u05d3\u05e2 \u05e0\u05d5\u05e1\u05e3", + "Next issue": "\u05d4\u05d1\u05e2\u05d9\u05d4 \u05d4\u05d1\u05d0\u05d4", + "No accessibility issues detected": "\u05dc\u05d0 \u05d6\u05d5\u05d4\u05d5 \u05d1\u05e2\u05d9\u05d5\u05ea \u05e0\u05d2\u05d9\u05e9\u05d5\u05ea", + "Or add a text description": "\u05d0\u05d5 \u05d4\u05d5\u05e1\u05d9\u05e4\u05d5 \u05d8\u05e7\u05e1\u05d8 \u05ea\u05d9\u05d0\u05d5\u05e8", + "Previous issue": "\u05d4\u05d1\u05e2\u05d9\u05d4 \u05d4\u05e7\u05d5\u05d3\u05de\u05ea", + "Provide caption": "\u05e1\u05e4\u05e7\u05d5 \u05db\u05d9\u05ea\u05d5\u05d1", + "Provide table summary": "\u05e1\u05e4\u05e7\u05d5 \u05e1\u05d9\u05db\u05d5\u05dd \u05d8\u05d1\u05dc\u05d4", + "Remove all IDs": "\u05d4\u05e1\u05e8 \u05d0\u05ea \u05db\u05dc \u05ea\u05e2\u05d5\u05d3\u05d5\u05ea \u05d4\u05d6\u05d4\u05d5\u05ea", + "Remove this ID": "\u05d4\u05e1\u05e8 \u05de\u05d6\u05d4\u05d4 \u05d6\u05d4", + "Repair": "\u05dc\u05b0\u05ea\u05b7\u05e7\u05b5\u05df", + "Repair issue": "\u05ea\u05d9\u05e7\u05d5\u05df \u05d1\u05e2\u05d9\u05d4", + "Replace filename with a meaningful description": "\u05d9\u05e9 \u05dc\u05d4\u05d7\u05dc\u05d9\u05e3 \u05d0\u05ea \u05e9\u05dd \u05d4\u05e7\u05d5\u05d1\u05e5 \u05d1\u05ea\u05d9\u05d0\u05d5\u05e8 \u05de\u05e9\u05de\u05e2\u05d5\u05ea\u05d9", + "Row": "\u05e9\u05d5\u05e8\u05d4", + "Row group": "\u05e7\u05d1\u05d5\u05e6\u05ea \u05e9\u05d5\u05e8\u05d5\u05ea", + "Select a heading level": "\u05d1\u05d7\u05e8\u05d5 \u05e8\u05de\u05ea \u05db\u05d5\u05ea\u05e8\u05ea", + "Select header scope": "\u05d1\u05d7\u05e8\u05d5 \u05d8\u05d5\u05d5\u05d7 \u05db\u05d5\u05ea\u05e8\u05ea", + "Shorten the text description": "\u05d9\u05e9 \u05dc\u05e7\u05e6\u05e8 \u05d0\u05ea \u05d8\u05e7\u05e1\u05d8 \u05d4\u05ea\u05d9\u05d0\u05d5\u05e8", + "Solution": "\u05e4\u05ea\u05e8\u05d5\u05df", + "Success": "\u05d4\u05b7\u05e6\u05dc\u05b8\u05d7\u05b8\u05d4", + "Summary cannot be empty": "\u05e1\u05d9\u05db\u05d5\u05dd \u05d0\u05d9\u05e0\u05d5 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d9\u05d5\u05ea \u05e8\u05d9\u05e7", + "Table": "\u05d8\u05d1\u05dc\u05d4", + "Table caption and summary cannot have the same value": "\u05db\u05d9\u05ea\u05d5\u05d1 \u05d1\u05d8\u05d1\u05dc\u05d4 \u05d5\u05e1\u05d9\u05db\u05d5\u05dd \u05d8\u05d1\u05dc\u05d4 \u05d0\u05d9\u05e0\u05dd \u05d9\u05db\u05d5\u05dc\u05d9\u05dd \u05dc\u05d4\u05d9\u05d5\u05ea \u05d1\u05e2\u05dc\u05d9 \u05e2\u05e8\u05da \u05d6\u05d4\u05d4", + "Table caption cannot be the same as the table summary": "\u05db\u05d9\u05ea\u05d5\u05d1 \u05e9\u05dc \u05d8\u05d1\u05dc\u05d4 \u05d0\u05d9\u05e0\u05d5 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d9\u05d5\u05ea \u05d6\u05d4\u05d4 \u05dc\u05e1\u05d9\u05db\u05d5\u05dd \u05d4\u05d8\u05d1\u05dc\u05d4", + "Table elements must contain TR and TD tags": "\u05e2\u05dc \u05e8\u05db\u05d9\u05d1\u05d9 \u05d8\u05d1\u05dc\u05d4 \u05dc\u05db\u05dc\u05d5\u05dc \u05ea\u05d2\u05d9\u05d5\u05ea TR \u05d5-TD", + "Table headers must be applied to a row or a column": "\u05d9\u05e9 \u05dc\u05d4\u05d7\u05d9\u05dc \u05db\u05d5\u05ea\u05e8\u05d5\u05ea \u05e9\u05dc \u05d8\u05d1\u05dc\u05d0\u05d5\u05ea \u05e2\u05dc \u05e9\u05d5\u05e8\u05d4 \u05d0\u05d5 \u05e2\u05de\u05d5\u05d3\u05d4", + "Table summary cannot be the same as the table caption": "\u05db\u05d9\u05ea\u05d5\u05d1 \u05e9\u05dc \u05d8\u05d1\u05dc\u05d4 \u05d0\u05d9\u05e0\u05d5 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d9\u05d5\u05ea \u05d6\u05d4\u05d4 \u05dc\u05e1\u05d9\u05db\u05d5\u05dd \u05d4\u05d8\u05d1\u05dc\u05d4", + "Tables must have at least one header cell": "\u05e2\u05dc \u05d8\u05d1\u05dc\u05d0\u05d5\u05ea \u05dc\u05db\u05dc\u05d5\u05dc \u05dc\u05e4\u05d7\u05d5\u05ea \u05ea\u05d0 \u05db\u05d5\u05ea\u05e8\u05ea \u05d0\u05d7\u05d3", + "Tables must have captions": "\u05e2\u05dc \u05d8\u05d1\u05dc\u05d0\u05d5\u05ea \u05dc\u05db\u05dc\u05d5\u05dc \u05db\u05ea\u05d5\u05d1\u05d9\u05d5\u05ea", + "Text": "\u05d8\u05e7\u05e1\u05d8", + "Text description cannot be empty": "\u05d8\u05e7\u05e1\u05d8 \u05d4\u05ea\u05d9\u05d0\u05d5\u05e8 \u05dc\u05d0 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d9\u05d5\u05ea \u05e8\u05d9\u05e7", + "Text description is too long": "\u05d8\u05e7\u05e1\u05d8 \u05d4\u05ea\u05d9\u05d0\u05d5\u05e8 \u05d0\u05e8\u05d5\u05da \u05de\u05d3\u05d9", + "Text description should describe the image, not the filename": "\u05d8\u05e7\u05e1\u05d8 \u05d4\u05ea\u05d9\u05d0\u05d5\u05e8 \u05e6\u05e8\u05d9\u05da \u05dc\u05ea\u05d0\u05e8 \u05d0\u05ea \u05d4\u05ea\u05de\u05d5\u05e0\u05d4, \u05dc\u05d0 \u05d0\u05ea \u05e9\u05dd \u05d4\u05e7\u05d5\u05d1\u05e5", + "Text description should not be the image filename": "\u05d8\u05e7\u05e1\u05d8 \u05d4\u05ea\u05d9\u05d0\u05d5\u05e8 \u05dc\u05d0 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d9\u05d5\u05ea \u05d6\u05d4\u05d4 \u05dc\u05e9\u05dd \u05d4\u05e7\u05d5\u05d1\u05e5 \u05e9\u05dc \u05d4\u05ea\u05de\u05d5\u05e0\u05d4", + "Text must have a contrast ratio of at least 4.5:1": "\u05e2\u05dc \u05d8\u05d1\u05dc\u05d0\u05d5\u05ea \u05dc\u05db\u05dc\u05d5\u05dc \u05d9\u05d7\u05e1 \u05e0\u05d9\u05d2\u05d5\u05d3\u05d9\u05d5\u05ea \u05e9\u05dc 4.5:1 \u05dc\u05db\u05dc \u05d4\u05e4\u05d7\u05d5\u05ea", + "Text must have a contrast ratio of at least 7:1": "\u05e2\u05dc \u05d8\u05d1\u05dc\u05d0\u05d5\u05ea \u05dc\u05db\u05dc\u05d5\u05dc \u05d9\u05d7\u05e1 \u05e0\u05d9\u05d2\u05d5\u05d3\u05d9\u05d5\u05ea \u05e9\u05dc 7:1 \u05dc\u05db\u05dc \u05d4\u05e4\u05d7\u05d5\u05ea", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u05d4\u05d8\u05e7\u05e1\u05d8 \u05e9\u05e0\u05d1\u05d7\u05e8 \u05e0\u05e8\u05d0\u05d4 \u05db\u05de\u05d5 \u05e8\u05e9\u05d9\u05de\u05d4. \u05d9\u05e9 \u05dc\u05e2\u05e6\u05d1 \u05e8\u05e9\u05d9\u05de\u05d5\u05ea \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05ea\u05d2\u05d9\u05ea \u05e8\u05e9\u05d9\u05de\u05d4.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u05ea\u05de\u05d5\u05e0\u05d4 \u05d6\u05d5 \u05db\u05d5\u05dc\u05dc\u05ea \u05de\u05d9\u05d3\u05e2 \u05e0\u05d9\u05d2\u05d5\u05d3\u05d9. \u05d9\u05e9 \u05dc\u05d4\u05e1\u05d9\u05e8 \u05d0\u05ea \u05d8\u05e7\u05e1\u05d8 \u05d4\u05ea\u05d9\u05d0\u05d5\u05e8 \u05db\u05d3\u05d9 \u05dc\u05e1\u05de\u05df \u05d0\u05d5\u05ea\u05d4 \u05db\u05e7\u05d9\u05e9\u05d5\u05d8\u05d9\u05ea \u05d0\u05d5 \u05dc\u05d4\u05e1\u05d9\u05e8 \u05d0\u05ea \u05d4\u05e1\u05d9\u05de\u05d5\u05df \u05e9\u05dc\u05d4 \u05db\u05e7\u05d9\u05e9\u05d5\u05d8\u05d9\u05ea.", + "This image is decorative": "\u05d4\u05ea\u05de\u05d5\u05e0\u05d4 \u05d4\u05d6\u05d5 \u05e7\u05d9\u05e9\u05d5\u05d8\u05d9\u05ea", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u05e4\u05e1\u05e7\u05d4 \u05d6\u05d5 \u05e0\u05e8\u05d0\u05d9\u05ea \u05db\u05de\u05d5 \u05db\u05d5\u05ea\u05e8\u05ea. \u05d0\u05dd \u05d6\u05d5 \u05db\u05d5\u05ea\u05e8\u05ea, \u05d1\u05d7\u05e8 \u05e8\u05de\u05ea \u05db\u05d5\u05ea\u05e8\u05ea.", + "Warning": "\u05d0\u05d6\u05d4\u05e8\u05d4", + "{0} characters (maximum {1} allowed)": "{0} \u05ea\u05d5\u05d5\u05d9\u05dd (\u05de\u05d5\u05ea\u05e8\u05d9\u05dd {1} \u05dc\u05db\u05dc \u05d4\u05d9\u05d5\u05ea\u05e8)" +}); + +console.warn('TinyMCE language code "he_IL" is deprecated, please use "he-IL" instead.'); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/hi.js b/plugins/a11ychecker/langs/hi.js new file mode 100644 index 00000000..71e178b1 --- /dev/null +++ b/plugins/a11ychecker/langs/hi.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("hi", { + '"{0}"': '"{0}"', + "Accessibility Checker": "\u092a\u0939\u0941\u0902\u091a \u0915\u094d\u0937\u092e\u0924\u093e \u091c\u093e\u0902\u091a\u0915\u0930\u094d\u0924\u093e", + "Accessibility checker...": "\u092a\u0939\u0941\u0902\u091a \u0915\u094d\u0937\u092e\u0924\u093e \u091c\u093e\u0902\u091a\u0915\u0930\u094d\u0924\u093e...", + "Add a text description": "\u091f\u0947\u0915\u094d\u0938\u094d\u091f \u0935\u093f\u0935\u0930\u0923 \u091c\u094b\u0921\u093c\u0947\u0902", + "Add a text description for this image": "\u0907\u0938 \u0907\u092e\u0947\u091c \u0915\u0947 \u0932\u093f\u090f \u091f\u0947\u0915\u094d\u0938\u094d\u091f \u0935\u093f\u0935\u0930\u0923 \u091c\u094b\u0921\u093c\u0947\u0902", + "Adjacent links with the same URL should be merged into one link": "\u090f\u0915 \u0939\u0940 URL \u0935\u093e\u0932\u0947 \u0906\u0938\u0928\u094d\u0928 \u0932\u093f\u0902\u0915 \u0915\u094b \u090f\u0915 \u0932\u093f\u0902\u0915 \u092e\u0947\u0902 \u092e\u093f\u0932\u093e \u0926\u093f\u092f\u093e \u091c\u093e\u0928\u093e \u091a\u093e\u0939\u093f\u090f", + "Caption cannot be empty": "\u0915\u0948\u092a\u094d\u0936\u0928 \u0916\u093e\u0932\u0940 \u0928\u0939\u0940\u0902 \u0939\u094b \u0938\u0915\u0924\u093e", + "Choose table header": "\u091f\u0947\u092c\u0932 \u0939\u0947\u0921\u0930 \u091a\u0941\u0928\u0947\u0902", + "Click for more info": "\u0905\u0927\u093f\u0915 \u091c\u093e\u0928\u0915\u093e\u0930\u0940 \u0915\u0947 \u0932\u093f\u090f \u0915\u094d\u0932\u093f\u0915 \u0915\u0930\u0947\u0902", + "Column": "\u0915\u0949\u0932\u092e", + "Column group": "\u0915\u0949\u0932\u092e \u0938\u092e\u0942\u0939", + "Complex tables should have summaries": "\u092e\u093f\u0936\u094d\u0930\u093f\u0924 \u0924\u093e\u0932\u093f\u0915\u093e\u0913\u0902 \u092e\u0947\u0902 \u0938\u093e\u0930\u093e\u0902\u0936 \u0939\u094b\u0928\u093e \u091a\u093e\u0939\u093f\u090f", + "Decorative images are not allowed. Please add a text description.": "\u0938\u091c\u093e\u0935\u091f\u0940 \u0907\u092e\u0947\u091c \u0915\u0940 \u0905\u0928\u0941\u092e\u0924\u093f \u0928\u0939\u0940\u0902 \u0939\u0948\u0964 \u0915\u0943\u092a\u092f\u093e \u091f\u0947\u0915\u094d\u0938\u094d\u091f \u0935\u093f\u0935\u0930\u0923 \u091c\u094b\u0921\u093c\u0947\u0902\u0964", + "Error": "\u0924\u094d\u0930\u0941\u091f\u093f", + "Header column": "\u0936\u0940\u0930\u094d\u0937\u0932\u0947\u0916 \u0915\u0949\u0932\u092e", + "Header row": "\u0936\u0940\u0930\u094d\u0937\u0932\u0947\u0916 \u092a\u0902\u0915\u094d\u0924\u093f", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u0936\u0940\u0930\u094d\u0937\u0915\u094b\u0902 \u0915\u094b \u0905\u0928\u0941\u0915\u094d\u0930\u092e\u093f\u0915 \u0915\u094d\u0930\u092e \u092e\u0947\u0902 \u0932\u093e\u0917\u0942 \u0915\u093f\u092f\u093e \u091c\u093e\u0928\u093e \u091a\u093e\u0939\u093f\u090f\u0964\u0909\u0926\u093e\u0939\u0930\u0923 \u0915\u0947 \u0932\u093f\u090f: \u0936\u0940\u0930\u094d\u0937\u0915 1 \u0915\u0947 \u092c\u093e\u0926 \u0936\u0940\u0930\u094d\u0937\u0915 2 \u0939\u094b\u0928\u093e \u091a\u093e\u0939\u093f\u090f, \u0936\u0940\u0930\u094d\u0937\u0915 3 \u0928\u0939\u0940\u0902\u0964", + "ID attribute must be unique": "ID \u0935\u093f\u0936\u0947\u0937\u0924\u093e \u0905\u0926\u094d\u0935\u093f\u0924\u0940\u092f \u0939\u094b\u0928\u0940 \u091a\u093e\u0939\u093f\u090f", + "Ignore": "\u0905\u0928\u0926\u0947\u0916\u093e \u0915\u0930\u0947\u0902", + "Image": "\u0907\u092e\u0947\u091c", + "Image must be marked as decorative or have an alternative text description": "\u0907\u092e\u0947\u091c \u0915\u094b \u0938\u091c\u093e\u0935\u091f\u0940 \u0915\u0947 \u0930\u0942\u092a \u092e\u0947\u0902 \u091a\u093f\u0939\u094d\u0928\u093f\u0924 \u0915\u093f\u092f\u093e \u091c\u093e\u0928\u093e \u091a\u093e\u0939\u093f\u090f \u092f\u093e \u090f\u0915 \u0935\u0948\u0915\u0932\u094d\u092a\u093f\u0915 \u091f\u0947\u0915\u094d\u0938\u094d\u091f \u0935\u093f\u0935\u0930\u0923 \u0939\u094b\u0928\u093e \u091a\u093e\u0939\u093f\u090f", + "Image needs a text description": "\u0907\u092e\u0947\u091c \u0915\u0947 \u0932\u093f\u090f \u091f\u0947\u0915\u094d\u0938\u094d\u091f \u0935\u093f\u0935\u0930\u0923 \u0906\u0935\u0936\u094d\u092f\u0915 \u0939\u0948", + "Info": "\u091c\u093e\u0928\u0915\u093e\u0930\u0940", + "Issue {0} of {1}": "\u0938\u092e\u0938\u094d\u092f\u093e {1} \u092e\u0947\u0902 \u0938\u0947 {0}", + "Keep this ID and remove all others": "\u0907\u0938 ID \u0915\u094b \u0930\u0916\u0947\u0902 \u0914\u0930 \u0905\u0928\u094d\u092f \u0938\u092d\u0940 \u0915\u094b \u0928\u093f\u0915\u093e\u0932 \u0926\u0947\u0902", + "Large text must have a contrast ratio of at least 3:1": "\u092c\u0921\u093c\u0947 \u091f\u0947\u0915\u094d\u0938\u094d\u091f \u0915\u093e \u0915\u0902\u091f\u094d\u0930\u093e\u0938\u094d\u091f \u0905\u0928\u0941\u092a\u093e\u0924 \u0915\u092e \u0938\u0947 \u0915\u092e 3:1 \u0939\u094b\u0928\u093e \u091a\u093e\u0939\u093f\u090f", + "Link": "\u0932\u093f\u0902\u0915", + "Make ID unique": "ID \u0915\u094b \u0905\u0926\u094d\u0935\u093f\u0924\u0940\u092f \u092c\u0928\u093e\u090f\u0902", + "Mark as decorative": "\u0938\u091c\u093e\u0935\u091f\u0940 \u0915\u0947 \u0924\u094c\u0930 \u092a\u0930 \u092e\u093e\u0930\u094d\u0915 \u0915\u0930\u0947\u0902", + "More info": "\u0905\u0927\u093f\u0915 \u091c\u093e\u0928\u0915\u093e\u0930\u0940", + "Next issue": "\u0905\u0917\u0932\u0940 \u0938\u092e\u0938\u094d\u092f\u093e", + "No accessibility issues detected": "\u0915\u094b\u0908 \u092a\u0939\u0941\u0902\u091a \u0915\u094d\u0937\u092e\u0924\u093e \u0938\u092e\u0938\u094d\u092f\u093e \u0928\u0939\u0940\u0902 \u092e\u093f\u0932\u0940", + "Or add a text description": "\u092f\u093e \u091f\u0947\u0915\u094d\u0938\u094d\u091f \u0935\u093f\u0935\u0930\u0923 \u091c\u094b\u0921\u093c\u0947\u0902", + "Previous issue": "\u092a\u093f\u091b\u0932\u0940 \u0938\u092e\u0938\u094d\u092f\u093e", + "Provide caption": "\u0915\u0948\u092a\u094d\u0936\u0928 \u092a\u094d\u0930\u0926\u093e\u0928 \u0915\u0930\u0947\u0902", + "Provide table summary": "\u0924\u093e\u0932\u093f\u0915\u093e \u0938\u093e\u0930\u093e\u0902\u0936 \u092a\u094d\u0930\u0926\u093e\u0928 \u0915\u0930\u0947\u0902", + "Remove all IDs": "\u0938\u092d\u0940 ID \u0915\u094b \u0928\u093f\u0915\u093e\u0932\u0947\u0902", + "Remove this ID": "\u092f\u0939 ID \u0915\u094b \u0928\u093f\u0915\u093e\u0932\u0947\u0902", + "Repair": "\u092e\u0930\u092e\u094d\u092e\u0924 \u0915\u0930\u0947\u0902", + "Repair issue": "\u0938\u092e\u0938\u094d\u092f\u093e \u0915\u0940 \u092e\u0930\u092e\u094d\u092e\u0924 \u0915\u0930\u0947\u0902", + "Replace filename with a meaningful description": "\u092b\u093c\u093e\u0907\u0932\u0928\u0947\u092e \u0915\u094b \u0905\u0930\u094d\u0925\u092a\u0942\u0930\u094d\u0923 \u0935\u093f\u0935\u0930\u0923 \u0938\u0947 \u092c\u0926\u0932\u0947\u0902", + "Row": "\u092a\u0902\u0915\u094d\u0924\u093f", + "Row group": "\u092a\u0902\u0915\u094d\u0924\u093f \u0938\u092e\u0942\u0939", + "Select a heading level": "\u090f\u0915 \u0936\u0940\u0930\u094d\u0937\u0915 \u0938\u094d\u0924\u0930 \u091a\u0941\u0928\u0947\u0902", + "Select header scope": "\u0939\u0947\u0921\u0930 \u0938\u094d\u0915\u094b\u092a \u091a\u0941\u0928\u0947\u0902", + "Shorten the text description": "\u091f\u0947\u0915\u094d\u0938\u094d\u091f \u0935\u093f\u0935\u0930\u0923 \u0915\u094b \u091b\u094b\u091f\u093e \u0915\u0930\u0947\u0902", + "Solution": "\u0938\u092e\u093e\u0927\u093e\u0928", + "Success": "\u0938\u092b\u0932", + "Summary cannot be empty": "\u0938\u093e\u0930\u093e\u0902\u0936 \u0916\u093e\u0932\u0940 \u0928\u0939\u0940\u0902 \u0939\u094b \u0938\u0915\u0924\u093e", + "Table": "\u0924\u093e\u0932\u093f\u0915\u093e", + "Table caption and summary cannot have the same value": "\u0924\u093e\u0932\u093f\u0915\u093e \u0915\u093e \u0915\u0948\u092a\u094d\u0936\u0928 \u0914\u0930 \u0938\u093e\u0930\u093e\u0902\u0936 \u0915\u093e \u092e\u093e\u0928 \u0938\u092e\u093e\u0928 \u0928\u0939\u0940\u0902 \u0939\u094b \u0938\u0915\u0924\u093e", + "Table caption cannot be the same as the table summary": "\u0924\u093e\u0932\u093f\u0915\u093e \u0915\u093e \u0915\u0948\u092a\u094d\u0936\u0928, \u0924\u093e\u0932\u093f\u0915\u093e \u0915\u0947 \u0938\u093e\u0930\u093e\u0902\u0936 \u0915\u0947 \u0938\u092e\u093e\u0928 \u0928\u0939\u0940\u0902 \u0939\u094b \u0938\u0915\u0924\u093e", + "Table elements must contain TR and TD tags": "\u0924\u093e\u0932\u093f\u0915\u093e \u0924\u0924\u094d\u0935\u094b\u0902 \u092e\u0947\u0902 TR \u0914\u0930 TD \u091f\u0948\u0917 \u0939\u094b\u0928\u0947 \u091a\u093e\u0939\u093f\u090f", + "Table headers must be applied to a row or a column": "\u0924\u093e\u0932\u093f\u0915\u093e \u0936\u0940\u0930\u094d\u0937\u0932\u0947\u0916 \u0915\u093f\u0938\u0940 \u092a\u0902\u0915\u094d\u0924\u093f \u092f\u093e \u0915\u0949\u0932\u092e \u092a\u0930 \u0932\u093e\u0917\u0942 \u0939\u094b\u0928\u0947 \u091a\u093e\u0939\u093f\u090f", + "Table summary cannot be the same as the table caption": "\u0924\u093e\u0932\u093f\u0915\u093e \u0938\u093e\u0930\u093e\u0902\u0936 \u0924\u093e\u0932\u093f\u0915\u093e \u0915\u0948\u092a\u094d\u0936\u0928 \u0915\u0947 \u0938\u092e\u093e\u0928 \u0928\u0939\u0940\u0902 \u0939\u094b \u0938\u0915\u0924\u093e", + "Tables must have at least one header cell": "\u0924\u093e\u0932\u093f\u0915\u093e\u0913\u0902 \u092e\u0947\u0902 \u0915\u092e \u0938\u0947 \u0915\u092e \u090f\u0915 \u0936\u0940\u0930\u094d\u0937\u0932\u0947\u0916 \u0938\u0947\u0932 \u0939\u094b\u0928\u093e \u091a\u093e\u0939\u093f\u090f", + "Tables must have captions": "\u0924\u093e\u0932\u093f\u0915\u093e\u0913\u0902 \u092e\u0947\u0902 \u0915\u0948\u092a\u094d\u0936\u0928 \u0939\u094b\u0928\u093e \u091a\u093e\u0939\u093f\u090f", + "Text": "\u091f\u0947\u0915\u094d\u0938\u094d\u091f", + "Text description cannot be empty": "\u091f\u0947\u0915\u094d\u0938\u094d\u091f \u0935\u093f\u0935\u0930\u0923 \u0916\u093e\u0932\u0940 \u0928\u0939\u0940\u0902 \u0939\u094b \u0938\u0915\u0924\u093e \u0939\u0948", + "Text description is too long": "\u091f\u0947\u0915\u094d\u0938\u094d\u091f \u0935\u093f\u0935\u0930\u0923 \u092c\u0939\u0941\u0924 \u0932\u0902\u092c\u093e \u0939\u0948", + "Text description should describe the image, not the filename": "\u0935\u093f\u0935\u0930\u0923 \u091f\u0947\u0915\u094d\u0938\u094d\u091f \u092e\u0947\u0902 \u0907\u092e\u0947\u091c \u0915\u093e \u0935\u0930\u094d\u0923\u0928 \u0939\u094b\u0928\u093e \u091a\u093e\u0939\u093f\u090f \u092b\u093c\u093e\u0907\u0932\u0928\u0947\u092e \u0915\u093e \u0928\u0939\u0940\u0902", + "Text description should not be the image filename": "\u0935\u093f\u0935\u0930\u0923 \u091f\u0947\u0915\u094d\u0938\u094d\u091f \u0907\u092e\u0947\u091c \u092b\u093c\u093e\u0907\u0932\u0928\u0947\u092e \u0928\u0939\u0940\u0902 \u0939\u094b\u0928\u093e \u091a\u093e\u0939\u093f\u090f", + "Text must have a contrast ratio of at least 4.5:1": "\u091f\u0947\u0915\u094d\u0938\u094d\u091f \u0915\u093e \u0915\u0902\u091f\u094d\u0930\u093e\u0938\u094d\u091f \u0905\u0928\u0941\u092a\u093e\u0924 \u0915\u092e \u0938\u0947 \u0915\u092e 4.5:1 \u0939\u094b\u0928\u093e \u091a\u093e\u0939\u093f\u090f", + "Text must have a contrast ratio of at least 7:1": "\u091f\u0947\u0915\u094d\u0938\u094d\u091f \u0915\u093e \u0915\u0902\u091f\u094d\u0930\u093e\u0938\u094d\u091f \u0905\u0928\u0941\u092a\u093e\u0924 \u0915\u092e \u0938\u0947 \u0915\u092e 7:1 \u0939\u094b\u0928\u093e \u091a\u093e\u0939\u093f\u090f", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u091a\u092f\u0928\u093f\u0924 \u092a\u093e\u0920 \u090f\u0915 \u0938\u0942\u091a\u0940 \u092a\u094d\u0930\u0924\u0940\u0924 \u0939\u094b\u0924\u093e \u0939\u0948\u0964\u0938\u0942\u091a\u0940 \u091f\u0948\u0917 \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0915\u0947 \u0938\u0942\u091a\u093f\u092f\u094b\u0902 \u0915\u094b \u0938\u094d\u0935\u0930\u0942\u092a\u093f\u0924 \u0915\u093f\u092f\u093e \u091c\u093e\u0928\u093e \u091a\u093e\u0939\u093f\u090f\u0964", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u0907\u0938 \u0907\u092e\u0947\u091c \u092e\u0947\u0902 \u0906\u092a\u0938 \u092e\u0947\u0902 \u092e\u0947\u0932 \u0928 \u0916\u093e\u0928\u0947 \u0935\u093e\u0932\u0940 \u091c\u093e\u0928\u0915\u093e\u0930\u0940 \u0939\u0948\u0964 \u0907\u0938\u0947 \u0906\u0915\u0930\u094d\u0937\u0915 \u092c\u0928\u093e\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u091f\u0947\u0915\u094d\u0938\u094d\u091f \u0935\u093f\u0935\u0930\u0923 \u0939\u091f\u093e\u090f\u0902 \u092f\u093e \u0938\u091c\u093e\u0935\u091f\u0940 \u092e\u093e\u0930\u094d\u0915\u093f\u0902\u0917 \u0939\u091f\u093e\u090f\u0902\u0964", + "This image is decorative": "\u092f\u0939 \u0907\u092e\u0947\u091c \u0938\u091c\u093e\u0935\u091f\u0940 \u0939\u0948", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u092f\u0939 \u0905\u0928\u0941\u091a\u094d\u091b\u0947\u0926 \u090f\u0915 \u0936\u0940\u0930\u094d\u0937\u0915 \u0915\u0940 \u0924\u0930\u0939 \u0926\u093f\u0916\u0924\u093e \u0939\u0948\u0964\u092f\u0926\u093f \u092f\u0939 \u090f\u0915 \u0936\u0940\u0930\u094d\u0937\u0915 \u0939\u0948, \u0924\u094b \u0915\u0943\u092a\u092f\u093e \u090f\u0915 \u0936\u0940\u0930\u094d\u0937\u0915 \u0938\u094d\u0924\u0930 \u091a\u0941\u0928\u0947\u0902\u0964", + "Warning": "\u091a\u0947\u0924\u093e\u0935\u0928\u0940", + "{0} characters (maximum {1} allowed)": "{0} \u0915\u0948\u0930\u0947\u0915\u094d\u091f\u0930 (\u0905\u0927\u093f\u0915\u0924\u092e {1} \u0915\u0940 \u0905\u0928\u0941\u092e\u0924\u093f \u0939\u0948)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/hr.js b/plugins/a11ychecker/langs/hr.js new file mode 100644 index 00000000..b821e8cf --- /dev/null +++ b/plugins/a11ychecker/langs/hr.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("hr", { + '"{0}"': "\u201e{0}\u201c", + "Accessibility Checker": "Provjeravanje pristupa\u010dnosti", + "Accessibility checker...": "Provjeravanje pristupa\u010dnosti...", + "Add a text description": "Dodajte tekstualni opis", + "Add a text description for this image": "Dodajte tekstualni opis za ovu sliku", + "Adjacent links with the same URL should be merged into one link": "Susjedne veze s istim URL-om trebaju se spojiti u jednu vezu", + "Caption cannot be empty": "Natpis ne mo\u017ee biti prazan", + "Choose table header": "Odaberite zaglavlje tablice", + "Click for more info": "Kliknite za vi\u0161e informacija", + "Column": "Stupac", + "Column group": "Grupa stupaca", + "Complex tables should have summaries": "Slo\u017eene tablice moraju imati sa\u017eetke", + "Decorative images are not allowed. Please add a text description.": "Ukrasne slike nisu dozvoljene. Dodajte tekstualni opis.", + "Error": "Pogre\u0161ka", + "Header column": "Stupac zaglavlja", + "Header row": "Redak zaglavlja", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Zaglavlja se moraju primjenjivati uzastopnim redoslijedom. Primjerice: Zaglavlje 1 trebalo bi do\u0107i nakon Zaglavlja 2, a ne Zaglavlja 3.", + "ID attribute must be unique": "ID atribut mora biti jedinstven", + "Ignore": "Zanemari", + "Image": "Slika", + "Image must be marked as decorative or have an alternative text description": "Slika mora biti ozna\u010dena kao ukrasna ili imati alternativni tekstualni opis", + "Image needs a text description": "Slika treba imati tekstualni opis", + "Info": "Informacije", + "Issue {0} of {1}": "Problem {0} od {1}", + "Keep this ID and remove all others": "Zadr\u017ei ovaj ID i ukloni ostale", + "Large text must have a contrast ratio of at least 3:1": "Veliki tekst mora imati omjer kontrasta najmanje 3:1", + "Link": "Veza", + "Make ID unique": "U\u010dinite ID jedinstvenim", + "Mark as decorative": "Ozna\u010di kao ukrasna", + "More info": "Vi\u0161e informacija", + "Next issue": "Sljede\u0107i problem", + "No accessibility issues detected": "Nisu prepoznati problemi pristupa\u010dnosti", + "Or add a text description": "Ili dodajte tekstualni opis", + "Previous issue": "Prethodni problem", + "Provide caption": "Unesite opis", + "Provide table summary": "Unesite sa\u017eetak tablice", + "Remove all IDs": "Ukloni sve ID-je", + "Remove this ID": "Ukloni ovaj ID", + "Repair": "Popravi", + "Repair issue": "Popravljanje problema", + "Replace filename with a meaningful description": "Zamijenite naziv datoteke smislenim opisom", + "Row": "Redak", + "Row group": "Grupa redaka", + "Select a heading level": "Odaberite razinu zaglavlja", + "Select header scope": "Odaberite doseg zaglavlja", + "Shorten the text description": "Skratite tekstualni opis", + "Solution": "Rje\u0161enje", + "Success": "Uspje\u0161no", + "Summary cannot be empty": "Sa\u017eetak ne mo\u017ee biti prazan", + "Table": "Tablica", + "Table caption and summary cannot have the same value": "Natpis tablice i sa\u017eetak ne smiju imati istu vrijednost", + "Table caption cannot be the same as the table summary": "Natpis tablice ne mo\u017ee biti isti kao i sa\u017eetak tablice", + "Table elements must contain TR and TD tags": "Elementi tablice moraju sadr\u017eavati oznake TR i TD", + "Table headers must be applied to a row or a column": "Zaglavlja tablice moraju se upotrijebiti na red ili stupac", + "Table summary cannot be the same as the table caption": "Sa\u017eetak tablice ne mo\u017ee biti isti kao i natpis tablice", + "Tables must have at least one header cell": "Tablice moraju imati najmanje jednu \u0107eliju zaglavlja", + "Tables must have captions": "Tablice moraju imati natpise", + "Text": "Tekst", + "Text description cannot be empty": "Polje tekstualnog opisa ne mo\u017ee biti prazno", + "Text description is too long": "Tekstualni opis je predug", + "Text description should describe the image, not the filename": "Tekstualni opis treba opisivati sliku, a ne naziv datoteke", + "Text description should not be the image filename": "Tekstualni opis ne smije biti naziv datoteke slike", + "Text must have a contrast ratio of at least 4.5:1": "Tekst mora imati omjer kontrasta najmanje 4,5:1", + "Text must have a contrast ratio of at least 7:1": "Tekst mora imati omjer kontrasta najmanje 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Odabrani je tekst popis. Popisi se moraju formatirati s pomo\u0107u oznake popisa.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Ova slika ima informacije u sukobu. Uklonite tekstualni opis da bi bila ukrasna ili uklonite oznaku ukrasna.", + "This image is decorative": "Ova je slika ukrasna", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Ovaj odlomak izgleda kao zaglavlje. Ako je zaglavlje, odaberite razinu zaglavlja.", + "Warning": "Upozorenje", + "{0} characters (maximum {1} allowed)": "Znakova: {0} (najvi\u0161e dozvoljeno: {1})" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/hu-HU.js b/plugins/a11ychecker/langs/hu-HU.js new file mode 100644 index 00000000..bc744099 --- /dev/null +++ b/plugins/a11ychecker/langs/hu-HU.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("hu-HU", { + '"{0}"': '"{0}"', + "Accessibility Checker": "Hozz\xe1f\xe9rhet\u0151s\xe9g-ellen\u0151rz\u0151", + "Accessibility checker...": "Akad\xe1lymentess\xe9g-ellen\u0151rz\u0151...", + "Add a text description": "Sz\xf6veges le\xedr\xe1s hozz\xe1ad\xe1sa", + "Add a text description for this image": "Adj meg egy sz\xf6veges le\xedr\xe1st ehhez a k\xe9phez", + "Adjacent links with the same URL should be merged into one link": "Az azonos URL-c\xedmmel rendelkez\u0151 szomsz\xe9dos hivatkoz\xe1sokat egyetlen, k\xf6z\xf6s hivatkoz\xe1ss\xe1 kell egyes\xedteni", + "Caption cannot be empty": "A felirat nem lehet \xfcres", + "Choose table header": "V\xe1lassza ki a t\xe1bl\xe1zat fejl\xe9c\xe9t", + "Click for more info": "Kattintson tov\xe1bbi inform\xe1ci\xf3\xe9rt", + "Column": "Oszlop", + "Column group": "Oszlopcsoport", + "Complex tables should have summaries": "A komplex t\xe1bl\xe1zatokhoz tartoznia kell \xf6sszefoglal\xf3nak", + "Decorative images are not allowed. Please add a text description.": "A dekorat\xedv k\xe9pek haszn\xe1lata nem enged\xe9lyezett. Adj meg egy sz\xf6veges le\xedr\xe1st.", + "Error": "Hiba", + "Header column": "Fejl\xe9coszlop", + "Header row": "Fejl\xe9csor", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "A fejl\xe9ceket sorrendben kell hozz\xe1rendelni. P\xe9ld\xe1ul: az 1. fejl\xe9cet a 2. fejl\xe9cnek kell k\xf6vetnie, nem a 3. fejl\xe9cnek.", + "ID attribute must be unique": "Az azonos\xedt\xf3 attrib\xfatum\xe1nak egyedinek kell lennie", + "Ignore": "Mell\u0151z", + "Image": "K\xe9p", + "Image must be marked as decorative or have an alternative text description": "A k\xe9pet d\xedsz\xedt\u0151elemk\xe9nt kell megjel\xf6lni vagy helyettes\xedt\u0151 sz\xf6veges le\xedr\xe1ssal kell rendelkeznie", + "Image needs a text description": "A k\xe9phez sz\xf6veges le\xedr\xe1s sz\xfcks\xe9ges", + "Info": "Inform\xe1ci\xf3", + "Issue {0} of {1}": "Hiba: {0} / {1}", + "Keep this ID and remove all others": "Az azonos\xedt\xf3 megtart\xe1sa \xe9s az \xf6sszes t\xf6bbi elt\xe1vol\xedt\xe1sa", + "Large text must have a contrast ratio of at least 3:1": "A nagyobb sz\xf6veg kontrasztar\xe1ny\xe1nak legal\xe1bb 3:1 \xe9rt\xe9k\u0171nek kell lennie", + "Link": "Hivatkoz\xe1s", + "Make ID unique": "Egyedi azonos\xedt\xf3 l\xe9trehoz\xe1sa", + "Mark as decorative": "Megjel\xf6l\xe9s d\xedsz\xedt\u0151elemk\xe9nt", + "More info": "Tov\xe1bbi inform\xe1ci\xf3k", + "Next issue": "K\xf6vetkez\u0151 probl\xe9ma", + "No accessibility issues detected": "Nincs probl\xe9ma a hozz\xe1f\xe9rhet\u0151s\xe9ggel", + "Or add a text description": "Vagy adj meg egy sz\xf6veges le\xedr\xe1st", + "Previous issue": "El\u0151z\u0151 probl\xe9ma", + "Provide caption": "Adja meg a feliratot", + "Provide table summary": "Adjon meg \xf6sszefoglal\xf3t a t\xe1bl\xe1zathoz", + "Remove all IDs": "T\xe1vol\xedtsa el az \xf6sszes azonos\xedt\xf3t", + "Remove this ID": "Azonos\xedt\xf3 elt\xe1vol\xedt\xe1sa", + "Repair": "Jav\xedt\xe1s", + "Repair issue": "Probl\xe9ma kijav\xedt\xe1sa", + "Replace filename with a meaningful description": "Helyettes\xedtse a f\xe1jlnevet egy \xe9rdemi le\xedr\xe1ssal", + "Row": "Sor", + "Row group": "Sorcsoport", + "Select a heading level": "V\xe1lassza ki a fejl\xe9c szintj\xe9t", + "Select header scope": "V\xe1lassza ki a fejl\xe9c tartom\xe1ny\xe1t", + "Shorten the text description": "R\xf6vid\xedtsd le a sz\xf6veges le\xedr\xe1st", + "Solution": "Megold\xe1s", + "Success": "Siker", + "Summary cannot be empty": "Az \xf6sszefoglal\xf3 nem lehet \xfcres", + "Table": "T\xe1bl\xe1zat", + "Table caption and summary cannot have the same value": "A t\xe1bl\xe1zatfelirat \xe9s az \xf6sszefoglal\xf3 \xe9rt\xe9ke nem lehet azonos", + "Table caption cannot be the same as the table summary": "A t\xe1bl\xe1zatfelirat nem lehet azonos a t\xe1bl\xe1zat \xf6sszefoglal\xf3j\xe1val", + "Table elements must contain TR and TD tags": "A t\xe1bl\xe1zat elemeinek TR- \xe9s TD-c\xedmk\xe9vel kell rendelkezni\xfck", + "Table headers must be applied to a row or a column": "A sorokhoz vagy oszlopokhoz fejl\xe9ceket kell rendelni", + "Table summary cannot be the same as the table caption": "A t\xe1bl\xe1zat \xf6sszefoglal\xf3ja nem lehet azonos a t\xe1bl\xe1zat felirat\xe1val", + "Tables must have at least one header cell": "A t\xe1bl\xe1zatoknak legal\xe1bb egy fejl\xe9ccell\xe1val kell rendelkezni\xfck", + "Tables must have captions": "A t\xe1bl\xe1zatoknak felirattal kell rendelkezni\xfck", + "Text": "Sz\xf6veg", + "Text description cannot be empty": "A sz\xf6veges le\xedr\xe1s nem lehet \xfcres", + "Text description is too long": "A sz\xf6veges le\xedr\xe1s t\xfal hossz\xfa", + "Text description should describe the image, not the filename": "A f\xe1jln\xe9vnek nem kell a k\xe9p le\xedr\xe1s\xe1t tartalmaznia", + "Text description should not be the image filename": "A le\xedr\xf3 sz\xf6veg nem lehet a k\xe9p f\xe1jlneve", + "Text must have a contrast ratio of at least 4.5:1": "A sz\xf6veg kontrasztar\xe1ny\xe1nak legal\xe1bb 4,5:1 \xe9rt\xe9k\u0171nek kell lennie", + "Text must have a contrast ratio of at least 7:1": "A sz\xf6veg kontrasztar\xe1ny\xe1nak legal\xe1bb 7:1 \xe9rt\xe9k\u0171nek kell lennie", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "A kijel\xf6lt sz\xf6veg list\xe1nak t\u0171nik. A list\xe1kat listac\xedmk\xe9vel kell form\xe1zni.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Enn\xe9l a k\xe9pn\xe9l ellentmond\xf3 inform\xe1ci\xf3k vannak. T\xe1vol\xedtsd el a sz\xf6veges le\xedr\xe1st, hogy d\xedsz\xedt\u0151elem legyen, vagy t\xe1vol\xedtsd el a d\xedsz\xedt\u0151elemk\xe9nt val\xf3 megjel\xf6l\xe9st.", + "This image is decorative": "Ez a k\xe9p csak d\xedsz\xedt\u0151elemk\xe9nt szolg\xe1l", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Ez a bekezd\xe9s fejl\xe9cnek t\u0171nik. Ha ez egy fejl\xe9c, v\xe1lassza ki a fejl\xe9c szintj\xe9t.", + "Warning": "Figyelmeztet\xe9s", + "{0} characters (maximum {1} allowed)": "{0} karakter (maximum {1} enged\xe9lyezett)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/hu_HU.js b/plugins/a11ychecker/langs/hu_HU.js new file mode 100644 index 00000000..1dd2015f --- /dev/null +++ b/plugins/a11ychecker/langs/hu_HU.js @@ -0,0 +1,80 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("hu-HU", { + '"{0}"': '"{0}"', + "Accessibility Checker": "Hozz\xe1f\xe9rhet\u0151s\xe9g-ellen\u0151rz\u0151", + "Accessibility checker...": "Akad\xe1lymentess\xe9g-ellen\u0151rz\u0151...", + "Add a text description": "Sz\xf6veges le\xedr\xe1s hozz\xe1ad\xe1sa", + "Add a text description for this image": "Adj meg egy sz\xf6veges le\xedr\xe1st ehhez a k\xe9phez", + "Adjacent links with the same URL should be merged into one link": "Az azonos URL-c\xedmmel rendelkez\u0151 szomsz\xe9dos hivatkoz\xe1sokat egyetlen, k\xf6z\xf6s hivatkoz\xe1ss\xe1 kell egyes\xedteni", + "Caption cannot be empty": "A felirat nem lehet \xfcres", + "Choose table header": "V\xe1lassza ki a t\xe1bl\xe1zat fejl\xe9c\xe9t", + "Click for more info": "Kattintson tov\xe1bbi inform\xe1ci\xf3\xe9rt", + "Column": "Oszlop", + "Column group": "Oszlopcsoport", + "Complex tables should have summaries": "A komplex t\xe1bl\xe1zatokhoz tartoznia kell \xf6sszefoglal\xf3nak", + "Decorative images are not allowed. Please add a text description.": "A dekorat\xedv k\xe9pek haszn\xe1lata nem enged\xe9lyezett. Adj meg egy sz\xf6veges le\xedr\xe1st.", + "Error": "Hiba", + "Header column": "Fejl\xe9coszlop", + "Header row": "Fejl\xe9csor", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "A fejl\xe9ceket sorrendben kell hozz\xe1rendelni. P\xe9ld\xe1ul: az 1. fejl\xe9cet a 2. fejl\xe9cnek kell k\xf6vetnie, nem a 3. fejl\xe9cnek.", + "ID attribute must be unique": "Az azonos\xedt\xf3 attrib\xfatum\xe1nak egyedinek kell lennie", + "Ignore": "Mell\u0151z", + "Image": "K\xe9p", + "Image must be marked as decorative or have an alternative text description": "A k\xe9pet d\xedsz\xedt\u0151elemk\xe9nt kell megjel\xf6lni vagy helyettes\xedt\u0151 sz\xf6veges le\xedr\xe1ssal kell rendelkeznie", + "Image needs a text description": "A k\xe9phez sz\xf6veges le\xedr\xe1s sz\xfcks\xe9ges", + "Info": "Inform\xe1ci\xf3", + "Issue {0} of {1}": "Hiba: {0} / {1}", + "Keep this ID and remove all others": "Az azonos\xedt\xf3 megtart\xe1sa \xe9s az \xf6sszes t\xf6bbi elt\xe1vol\xedt\xe1sa", + "Large text must have a contrast ratio of at least 3:1": "A nagyobb sz\xf6veg kontrasztar\xe1ny\xe1nak legal\xe1bb 3:1 \xe9rt\xe9k\u0171nek kell lennie", + "Link": "Hivatkoz\xe1s", + "Make ID unique": "Egyedi azonos\xedt\xf3 l\xe9trehoz\xe1sa", + "Mark as decorative": "Megjel\xf6l\xe9s d\xedsz\xedt\u0151elemk\xe9nt", + "More info": "Tov\xe1bbi inform\xe1ci\xf3k", + "Next issue": "K\xf6vetkez\u0151 probl\xe9ma", + "No accessibility issues detected": "Nincs probl\xe9ma a hozz\xe1f\xe9rhet\u0151s\xe9ggel", + "Or add a text description": "Vagy adj meg egy sz\xf6veges le\xedr\xe1st", + "Previous issue": "El\u0151z\u0151 probl\xe9ma", + "Provide caption": "Adja meg a feliratot", + "Provide table summary": "Adjon meg \xf6sszefoglal\xf3t a t\xe1bl\xe1zathoz", + "Remove all IDs": "T\xe1vol\xedtsa el az \xf6sszes azonos\xedt\xf3t", + "Remove this ID": "Azonos\xedt\xf3 elt\xe1vol\xedt\xe1sa", + "Repair": "Jav\xedt\xe1s", + "Repair issue": "Probl\xe9ma kijav\xedt\xe1sa", + "Replace filename with a meaningful description": "Helyettes\xedtse a f\xe1jlnevet egy \xe9rdemi le\xedr\xe1ssal", + "Row": "Sor", + "Row group": "Sorcsoport", + "Select a heading level": "V\xe1lassza ki a fejl\xe9c szintj\xe9t", + "Select header scope": "V\xe1lassza ki a fejl\xe9c tartom\xe1ny\xe1t", + "Shorten the text description": "R\xf6vid\xedtsd le a sz\xf6veges le\xedr\xe1st", + "Solution": "Megold\xe1s", + "Success": "Siker", + "Summary cannot be empty": "Az \xf6sszefoglal\xf3 nem lehet \xfcres", + "Table": "T\xe1bl\xe1zat", + "Table caption and summary cannot have the same value": "A t\xe1bl\xe1zatfelirat \xe9s az \xf6sszefoglal\xf3 \xe9rt\xe9ke nem lehet azonos", + "Table caption cannot be the same as the table summary": "A t\xe1bl\xe1zatfelirat nem lehet azonos a t\xe1bl\xe1zat \xf6sszefoglal\xf3j\xe1val", + "Table elements must contain TR and TD tags": "A t\xe1bl\xe1zat elemeinek TR- \xe9s TD-c\xedmk\xe9vel kell rendelkezni\xfck", + "Table headers must be applied to a row or a column": "A sorokhoz vagy oszlopokhoz fejl\xe9ceket kell rendelni", + "Table summary cannot be the same as the table caption": "A t\xe1bl\xe1zat \xf6sszefoglal\xf3ja nem lehet azonos a t\xe1bl\xe1zat felirat\xe1val", + "Tables must have at least one header cell": "A t\xe1bl\xe1zatoknak legal\xe1bb egy fejl\xe9ccell\xe1val kell rendelkezni\xfck", + "Tables must have captions": "A t\xe1bl\xe1zatoknak felirattal kell rendelkezni\xfck", + "Text": "Sz\xf6veg", + "Text description cannot be empty": "A sz\xf6veges le\xedr\xe1s nem lehet \xfcres", + "Text description is too long": "A sz\xf6veges le\xedr\xe1s t\xfal hossz\xfa", + "Text description should describe the image, not the filename": "A f\xe1jln\xe9vnek nem kell a k\xe9p le\xedr\xe1s\xe1t tartalmaznia", + "Text description should not be the image filename": "A le\xedr\xf3 sz\xf6veg nem lehet a k\xe9p f\xe1jlneve", + "Text must have a contrast ratio of at least 4.5:1": "A sz\xf6veg kontrasztar\xe1ny\xe1nak legal\xe1bb 4,5:1 \xe9rt\xe9k\u0171nek kell lennie", + "Text must have a contrast ratio of at least 7:1": "A sz\xf6veg kontrasztar\xe1ny\xe1nak legal\xe1bb 7:1 \xe9rt\xe9k\u0171nek kell lennie", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "A kijel\xf6lt sz\xf6veg list\xe1nak t\u0171nik. A list\xe1kat listac\xedmk\xe9vel kell form\xe1zni.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Enn\xe9l a k\xe9pn\xe9l ellentmond\xf3 inform\xe1ci\xf3k vannak. T\xe1vol\xedtsd el a sz\xf6veges le\xedr\xe1st, hogy d\xedsz\xedt\u0151elem legyen, vagy t\xe1vol\xedtsd el a d\xedsz\xedt\u0151elemk\xe9nt val\xf3 megjel\xf6l\xe9st.", + "This image is decorative": "Ez a k\xe9p csak d\xedsz\xedt\u0151elemk\xe9nt szolg\xe1l", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Ez a bekezd\xe9s fejl\xe9cnek t\u0171nik. Ha ez egy fejl\xe9c, v\xe1lassza ki a fejl\xe9c szintj\xe9t.", + "Warning": "Figyelmeztet\xe9s", + "{0} characters (maximum {1} allowed)": "{0} karakter (maximum {1} enged\xe9lyezett)" +}); + +console.warn('TinyMCE language code "hu_HU" is deprecated, please use "hu-HU" instead.'); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/id.js b/plugins/a11ychecker/langs/id.js new file mode 100644 index 00000000..43440056 --- /dev/null +++ b/plugins/a11ychecker/langs/id.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("id", { + '"{0}"': '"{0}"', + "Accessibility Checker": "Pemeriksa Aksesibilitas", + "Accessibility checker...": "Pemeriksa aksesibilitas...", + "Add a text description": "Tambahkan deskripsi teks", + "Add a text description for this image": "Tambahkan deskripsi teks untuk gambar ini", + "Adjacent links with the same URL should be merged into one link": "Tautan yang berdekatan dengan URL yang sama dapat digabungkan jadi satu tautan.", + "Caption cannot be empty": "Keterangan tidak boleh kosong", + "Choose table header": "Pilih header tabel", + "Click for more info": "Klik untuk info selengkapnya", + "Column": "Kolom", + "Column group": "Grup kolom", + "Complex tables should have summaries": "Tabel kompleks harus disertai ringkasan", + "Decorative images are not allowed. Please add a text description.": "Gambar dekoratif tidak diperbolehkan. Silakan tambahkan deskripsi teks.", + "Error": "Kesalahan", + "Header column": "Kolom header", + "Header row": "Baris header", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Kepala harus diterapkan secara berurutan. Contohnya: Kepala 1 harus diikuti oleh Kepala 2, bukan Kepala 3.", + "ID attribute must be unique": "Atribut ID harus unik", + "Ignore": "Abaikan", + "Image": "Gambar", + "Image must be marked as decorative or have an alternative text description": "Gambar harus ditandai sebagai dekoratif atau memiliki deskripsi teks alternatif", + "Image needs a text description": "Gambar membutuhkan deskripsi teks", + "Info": "Info", + "Issue {0} of {1}": "Masalah {0} dari {1}", + "Keep this ID and remove all others": "Simpan ID ini dan hapus yang lain", + "Large text must have a contrast ratio of at least 3:1": "Teks besar harus memiliki rasio kontras setidaknya 3:1", + "Link": "Tautan", + "Make ID unique": "Buat ID menjadi unik", + "Mark as decorative": "Tandai sebagai dekoratif", + "More info": "Info lebih lanjut", + "Next issue": "Masalah Selanjutnya", + "No accessibility issues detected": "Masalah aksesibilitas tidak terdeteksi", + "Or add a text description": "Atau tambahkan deskripsi teks", + "Previous issue": "Masalah Sebelumnya", + "Provide caption": "Berikan keterangan", + "Provide table summary": "Berikan ringkasan tabel", + "Remove all IDs": "Hapus semua ID", + "Remove this ID": "Hapus ID ini", + "Repair": "Perbaiki", + "Repair issue": "Perbaiki Masalah", + "Replace filename with a meaningful description": "Ganti nama file dengan deskripsi yang bermakna", + "Row": "Baris", + "Row group": "Grup baris", + "Select a heading level": "Pilih level judul", + "Select header scope": "Pilih cakupan header", + "Shorten the text description": "Persingkat deskripsi teks", + "Solution": "Solusi", + "Success": "Berhasil", + "Summary cannot be empty": "Ringkasan tidak boleh kosong", + "Table": "Tabel", + "Table caption and summary cannot have the same value": "Keterangan dan ringkasan tabel tidak boleh sama", + "Table caption cannot be the same as the table summary": "Keterangan tabel tidak boleh sama dengan ringkasan tabel", + "Table elements must contain TR and TD tags": "Elemen tabel harus berisi tag TR dan TD", + "Table headers must be applied to a row or a column": "Kepala tabel harus diterapkan ke suatu baris atau kolom", + "Table summary cannot be the same as the table caption": "Ringkasan tabel tidak boleh sama dengan keterangan tabel", + "Tables must have at least one header cell": "Tabel harus terdiri atas minimal satu sel kepala", + "Tables must have captions": "Tabel harus disertai keterangan", + "Text": "Teks", + "Text description cannot be empty": "Deskripsi teks tidak boleh kosong", + "Text description is too long": "Deskripsi teks terlalu panjang", + "Text description should describe the image, not the filename": "Deskripsi teks yang harus mendeskripsikan gambar, bukan nama file", + "Text description should not be the image filename": "Teks deskripsi tidak boleh menjadi nama file gambar", + "Text must have a contrast ratio of at least 4.5:1": "Teks harus memiliki rasio kontras setidaknya 4,5:1", + "Text must have a contrast ratio of at least 7:1": "Teks harus memiliki rasio kontras setidaknya 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Teks dipilih tampaknya adalah daftar. Daftar harus diformat menggunakan tag daftar.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Gambar ini memiliki informasi yang bertentangan. Hapus deskripsi teks untuk membuatnya dekoratif, atau hapus tanda dekoratifnya.", + "This image is decorative": "Gambar ini dekoratif", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Paragraf ini tampak seperti bagian kepala. Jika ini adalah kepala, pilih level kepala.", + "Warning": "Peringatan", + "{0} characters (maximum {1} allowed)": "{0} karakter (maksimum {1} yang diizinkan)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/it.js b/plugins/a11ychecker/langs/it.js new file mode 100644 index 00000000..5d9f6cc6 --- /dev/null +++ b/plugins/a11ychecker/langs/it.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("it", { + '"{0}"': '"{0}"', + "Accessibility Checker": "Verifica accessibilit\xe0", + "Accessibility checker...": "Verifica accessibilit\xe0...", + "Add a text description": "Aggiungi una descrizione testuale", + "Add a text description for this image": "Aggiungi una descrizione testuale per questa immagine", + "Adjacent links with the same URL should be merged into one link": "I collegamenti adiacenti con lo stesso URL devono essere uniti in un unico collegamento", + "Caption cannot be empty": "La didascalia non pu\xf2 essere vuota", + "Choose table header": "Scegli intestazione tabella", + "Click for more info": "Fai clic per altre informazioni", + "Column": "Colonna", + "Column group": "Gruppo di colonne", + "Complex tables should have summaries": "Le tabelle complesse devono avere i riepiloghi", + "Decorative images are not allowed. Please add a text description.": "Non sono ammesse immagini decorative. Aggiungi una descrizione testuale.", + "Error": "Errore", + "Header column": "Colonna di intestazione", + "Header row": "Riga di intestazione", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Le intestazioni devono essere applicate in ordine sequenziale. Per esempio: Intestazione 1 deve essere seguita da Intestazione 2 e non da Intestazione 3.", + "ID attribute must be unique": "L'attributo ID deve essere univoco", + "Ignore": "Ignora", + "Image": "Immagine", + "Image must be marked as decorative or have an alternative text description": "L'immagine deve essere contrassegnata come decorativa o avere una descrizione di testo alternativa", + "Image needs a text description": "L'immagine necessita di una descrizione testuale", + "Info": "Informazioni", + "Issue {0} of {1}": "Problema {0} di {1}", + "Keep this ID and remove all others": "Mantieni questo ID e rimuovi tutti gli altri", + "Large text must have a contrast ratio of at least 3:1": "Il testo di grandi dimensioni deve avere un rapporto di contrasto di almeno 3:1", + "Link": "Collegamento", + "Make ID unique": "Crea ID univoco", + "Mark as decorative": "Contrassegna come decorativa", + "More info": "Maggiori informazioni", + "Next issue": "Problema successivo", + "No accessibility issues detected": "Nessun problema di accessibilit\xe0 rilevato", + "Or add a text description": "O aggiungi una descrizione testuale", + "Previous issue": "Problema precedente", + "Provide caption": "Fornisci una didascalia", + "Provide table summary": "Fornisci un riepilogo tabella", + "Remove all IDs": "Rimuovi tutti gli ID", + "Remove this ID": "Rimuovi questo ID", + "Repair": "Ripara", + "Repair issue": "Problema di ripristino", + "Replace filename with a meaningful description": "Sostituisci il nome del file con una descrizione significativa", + "Row": "Riga", + "Row group": "Gruppo di righe", + "Select a heading level": "Seleziona un livello intestazione", + "Select header scope": "Seleziona ambito intestazione", + "Shorten the text description": "Abbrevia il testo della descrizione", + "Solution": "Soluzione", + "Success": "Operazione riuscita", + "Summary cannot be empty": "Il riepilogo non pu\xf2 essere vuoto", + "Table": "Tabella", + "Table caption and summary cannot have the same value": "La didascalia e il riepilogo della tabella non possono avere lo stesso valore", + "Table caption cannot be the same as the table summary": "La didascalia della tabella non pu\xf2 essere la stessa del riepilogo tabella", + "Table elements must contain TR and TD tags": "Gli elementi di tabella devono contenere tag TR e TD", + "Table headers must be applied to a row or a column": "Le intestazioni tabella devono essere applicate a una riga o a una colonna", + "Table summary cannot be the same as the table caption": "Il riepilogo tabella non pu\xf2 essere uguale alla didascalia tabella", + "Tables must have at least one header cell": "Le tabelle devono contenere almeno una cella di intestazione", + "Tables must have captions": "Le tabelle devono avere didascalie", + "Text": "Testo", + "Text description cannot be empty": "Il testo della descrizione non pu\xf2 essere vuoto", + "Text description is too long": "Il testo della descrizione \xe8 troppo lungo", + "Text description should describe the image, not the filename": "Il testo della descrizione dovrebbe descrivere l'immagine, non il nome del file", + "Text description should not be the image filename": "Il testo della descrizione non dovrebbe essere il nome del file dell'immagine", + "Text must have a contrast ratio of at least 4.5:1": "Il testo deve avere un rapporto di contrasto di almeno 4,5:1", + "Text must have a contrast ratio of at least 7:1": "Il testo deve avere un rapporto di contrasto di almeno 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Il testo selezionato sembra un elenco. Gli elenchi devono essere formattati utilizzando un tag elenco.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Questa immagine contiene informazioni contrastanti. Rimuovi la descrizione testuale per renderla pi\xf9 decorativa, oppure rimuovi il contrassegno decorativo.", + "This image is decorative": "Questa immagine \xe8 decorativa", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Questo paragrafo sembra un'intestazione. Se si tratta di un'intestazione, seleziona un livello intestazione.", + "Warning": "Attenzione", + "{0} characters (maximum {1} allowed)": "{0} caratteri (massimo {1} consentiti)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/ja.js b/plugins/a11ychecker/langs/ja.js new file mode 100644 index 00000000..64c8fc6e --- /dev/null +++ b/plugins/a11ychecker/langs/ja.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ja", { + '"{0}"': '"{0}"', + "Accessibility Checker": "\u30a2\u30af\u30bb\u30b7\u30d3\u30ea\u30c6\u30a3\u78ba\u8a8d\u30c4\u30fc\u30eb", + "Accessibility checker...": "\u30a2\u30af\u30bb\u30b7\u30d3\u30ea\u30c6\u30a3\u78ba\u8a8d\u30c4\u30fc\u30eb...", + "Add a text description": "\u8aac\u660e\u30c6\u30ad\u30b9\u30c8\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044", + "Add a text description for this image": "\u3053\u306e\u753b\u50cf\u306e\u8aac\u660e\u30c6\u30ad\u30b9\u30c8\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044", + "Adjacent links with the same URL should be merged into one link": "URL\u304c\u540c\u4e00\u306e\u96a3\u63a5\u3057\u305f\u30cf\u30a4\u30d1\u30fc\u30ea\u30f3\u30af\u306f\u3001\u7d71\u5408\u3057\u3066\u5358\u4e00\u306e\u30ea\u30f3\u30af\u306b\u3057\u3066\u304f\u3060\u3055\u3044", + "Caption cannot be empty": "\u30e3\u30d7\u30b7\u30e7\u30f3\u306f\u7a7a\u767d\u306b\u3067\u304d\u307e\u305b\u3093", + "Choose table header": "\u30c6\u30fc\u30d6\u30eb\u30d8\u30c3\u30c0\u30fc\u3092\u9078\u629e", + "Click for more info": "\u8a73\u7d30\u306f\u3053\u3061\u3089\u3092\u30af\u30ea\u30c3\u30af", + "Column": "\u5217", + "Column group": "\u5217\u30b0\u30eb\u30fc\u30d7", + "Complex tables should have summaries": "\u8907\u96d1\u306a\u30c6\u30fc\u30d6\u30eb\u306b\u306f\u8981\u7d04\u3092\u4ed8\u3051\u3066\u304f\u3060\u3055\u3044", + "Decorative images are not allowed. Please add a text description.": "\u88c5\u98fe\u7528\u753b\u50cf\u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002\u8aac\u660e\u30c6\u30ad\u30b9\u30c8\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002", + "Error": "\u30a8\u30e9\u30fc", + "Header column": "\u30d8\u30c3\u30c0\u30fc\u5217", + "Header row": "\u30d8\u30c3\u30c0\u30fc\u884c", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u898b\u51fa\u3057\u306f\u756a\u53f7\u9806\u306b\u9069\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002 \u4f8b\u3048\u3070\u3001\uff3b\u898b\u51fa\u30571\uff3d\u306e\u6b21\u306f\uff3b\u898b\u51fa\u30572\uff3d\u3067\u3042\u308a\u3001\uff3b\u898b\u51fa\u30573\uff3d\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002", + "ID attribute must be unique": "ID\u5c5e\u6027\u306f\u4e00\u610f\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059", + "Ignore": "\u7121\u8996", + "Image": "\u753b\u50cf", + "Image must be marked as decorative or have an alternative text description": "\u753b\u50cf\u306f\u88c5\u98fe\u7528\u306b\u6307\u5b9a\u3059\u308b\u304b\u3001\u4ee3\u66ff\u306e\u8aac\u660e\u30c6\u30ad\u30b9\u30c8\u304c\u5fc5\u8981\u3067\u3059", + "Image needs a text description": "\u753b\u50cf\u306b\u306f\u8aac\u660e\u30c6\u30ad\u30b9\u30c8\u304c\u5fc5\u8981\u3067\u3059", + "Info": "\u60c5\u5831", + "Issue {0} of {1}": "{0}\u306e\u554f\u984c{1}", + "Keep this ID and remove all others": "\u3053\u306eID\u3092\u4fdd\u6301\u3057\u3001\u4ed6\u306e\u3059\u3079\u3066\u3092\u524a\u9664\u3059\u308b", + "Large text must have a contrast ratio of at least 3:1": "\u5927\u304d\u306a\u6587\u5b57\u306e\u30c6\u30ad\u30b9\u30c8\u306e\u30b3\u30f3\u30c8\u30e9\u30b9\u30c8\u6bd4\u306f\u6700\u4f4e3:1\u306b\u3057\u3066\u304f\u3060\u3055\u3044", + "Link": "\u30ea\u30f3\u30af", + "Make ID unique": "ID\u3092\u4e00\u610f\u306b\u3059\u308b", + "Mark as decorative": "\u88c5\u98fe\u7528\u306b\u6307\u5b9a", + "More info": "\u8a73\u7d30\u60c5\u5831", + "Next issue": "\u6b21\u306e\u554f\u984c", + "No accessibility issues detected": "\u30a2\u30af\u30bb\u30b7\u30d3\u30ea\u30c6\u30a3\u306e\u554f\u984c\u306f\u691c\u51fa\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f", + "Or add a text description": "\u307e\u305f\u306f\u8aac\u660e\u30c6\u30ad\u30b9\u30c8\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044", + "Previous issue": "\u524d\u306e\u554f\u984c", + "Provide caption": "\u898b\u51fa\u3057\u3092\u5165\u529b", + "Provide table summary": "\u30c6\u30fc\u30d6\u30eb\u306e\u8981\u7d04\u3092\u5165\u529b", + "Remove all IDs": "\u3059\u3079\u3066\u306eID\u3092\u524a\u9664", + "Remove this ID": "\u3053\u306eID\u3092\u524a\u9664", + "Repair": "\u4fee\u6b63", + "Repair issue": "\u554f\u984c\u306e\u4fee\u5fa9", + "Replace filename with a meaningful description": "\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u610f\u5473\u306e\u3042\u308b\u8aac\u660e\u306b\u7f6e\u63db\u3057\u3066\u304f\u3060\u3055\u3044", + "Row": "\u884c", + "Row group": "\u884c\u30b0\u30eb\u30fc\u30d7", + "Select a heading level": "\u898b\u51fa\u3057\u30ec\u30d9\u30eb\u3092\u9078\u629e", + "Select header scope": "\u30d8\u30c3\u30c0\u30fc\u306e\u30b9\u30b3\u30fc\u30d7\u3092\u9078\u629e", + "Shorten the text description": "\u8aac\u660e\u30c6\u30ad\u30b9\u30c8\u3092\u77ed\u304f\u3057\u3066\u304f\u3060\u3055\u3044", + "Solution": "\u89e3\u6c7a\u7b56", + "Success": "\u6210\u529f", + "Summary cannot be empty": "\u8981\u7d04\u306f\u7a7a\u767d\u306b\u3067\u304d\u307e\u305b\u3093", + "Table": "\u30c6\u30fc\u30d6\u30eb", + "Table caption and summary cannot have the same value": "\u30c6\u30fc\u30d6\u30eb\u306e\u30ad\u30e3\u30d7\u30b7\u30e7\u30f3\u3068\u8981\u7d04\u306f\u540c\u4e00\u306e\u5024\u306b\u3067\u304d\u307e\u305b\u3093", + "Table caption cannot be the same as the table summary": "\u30c6\u30fc\u30d6\u30eb\u306e\u30ad\u30e3\u30d7\u30b7\u30e7\u30f3\u306f\u8981\u7d04\u3068\u540c\u4e00\u306b\u3067\u304d\u307e\u305b\u3093", + "Table elements must contain TR and TD tags": "\u30c6\u30fc\u30d6\u30eb\u306e\u8981\u7d20\u306bTR\u30bf\u30b0\u3068TD\u30bf\u30b0\u3092\u542b\u3081\u3066\u304f\u3060\u3055\u3044", + "Table headers must be applied to a row or a column": "\u30c6\u30fc\u30d6\u30eb\u30d8\u30c3\u30c0\u30fc\u3092\u884c\u304b\u5217\u306b\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044", + "Table summary cannot be the same as the table caption": "\u30c6\u30fc\u30d6\u30eb\u306e\u8981\u7d04\u306f\u30ad\u30e3\u30d7\u30b7\u30e7\u30f3\u3068\u540c\u4e00\u306b\u3067\u304d\u307e\u305b\u3093", + "Tables must have at least one header cell": "\u30c6\u30fc\u30d6\u30eb\u306b\u306f1\u500b\u4ee5\u4e0a\u306e\u30d8\u30c3\u30c0\u30fc\u30bb\u30eb\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044", + "Tables must have captions": "\u30c6\u30fc\u30d6\u30eb\u306b\u306f\u30ad\u30e3\u30d7\u30b7\u30e7\u30f3\u3092\u4ed8\u3051\u3066\u304f\u3060\u3055\u3044", + "Text": "\u30c6\u30ad\u30b9\u30c8", + "Text description cannot be empty": "\u8aac\u660e\u30c6\u30ad\u30b9\u30c8\u306f\u7a7a\u306b\u3067\u304d\u307e\u305b\u3093", + "Text description is too long": "\u8aac\u660e\u30c6\u30ad\u30b9\u30c8\u304c\u9577\u3059\u304e\u307e\u3059", + "Text description should describe the image, not the filename": "\u8aac\u660e\u30c6\u30ad\u30b9\u30c8\u306f\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u540d\u3067\u306f\u306a\u304f\u3001\u753b\u50cf\u3092\u8aac\u660e\u3059\u308b\u3082\u306e\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059", + "Text description should not be the image filename": "\u8aac\u660e\u30c6\u30ad\u30b9\u30c8\u306f\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u540d\u3068\u540c\u3058\u306b\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093", + "Text must have a contrast ratio of at least 4.5:1": "\u30c6\u30ad\u30b9\u30c8\u306e\u30b3\u30f3\u30c8\u30e9\u30b9\u30c8\u6bd4\u306f\u6700\u4f4e4.5:1\u306b\u3057\u3066\u304f\u3060\u3055\u3044", + "Text must have a contrast ratio of at least 7:1": "\u30c6\u30ad\u30b9\u30c8\u306e\u30b3\u30f3\u30c8\u30e9\u30b9\u30c8\u6bd4\u306f\u6700\u4f4e7:1\u306b\u3057\u3066\u304f\u3060\u3055\u3044", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u9078\u629e\u3055\u308c\u305f\u30c6\u30ad\u30b9\u30c8\u306f\u30ea\u30b9\u30c8\u306e\u3088\u3046\u3067\u3059\u3002 \u30ea\u30b9\u30c8\u306f\u30ea\u30b9\u30c8\u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u66f8\u5f0f\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u3053\u306e\u753b\u50cf\u306b\u306f\u77db\u76fe\u3059\u308b\u60c5\u5831\u304c\u3042\u308a\u307e\u3059\u3002\u8aac\u660e\u30c6\u30ad\u30b9\u30c8\u3092\u524a\u9664\u3057\u3066\u88c5\u98fe\u7528\u306b\u6307\u5b9a\u3059\u308b\u304b\u3001\u88c5\u98fe\u7528\u306e\u6307\u5b9a\u3092\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002", + "This image is decorative": "\u3053\u306e\u753b\u50cf\u306f\u88c5\u98fe\u7528\u3067\u3059", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u3053\u306e\u6bb5\u843d\u306f\u898b\u51fa\u3057\u306e\u3088\u3046\u3067\u3059\u3002 \u898b\u51fa\u3057\u306e\u5834\u5408\u306f\u898b\u51fa\u3057\u30ec\u30d9\u30eb\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002", + "Warning": "\u8b66\u544a", + "{0} characters (maximum {1} allowed)": "{0} \u6587\u5b57 (\u6700\u5927\u6587\u5b57\u6570\u306f {1} \u6587\u5b57\u3067\u3059)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/kk.js b/plugins/a11ychecker/langs/kk.js new file mode 100644 index 00000000..946bcd7b --- /dev/null +++ b/plugins/a11ychecker/langs/kk.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("kk", { + '"{0}"': "\xab{0}\xbb", + "Accessibility Checker": "\u049a\u043e\u043b\u0436\u0435\u0442\u0456\u043c\u0434\u0456\u043b\u0456\u043a\u0442\u0456 \u0442\u0435\u043a\u0441\u0435\u0440\u0433\u0456\u0448", + "Accessibility checker...": "\u049a\u043e\u043b\u0436\u0435\u0442\u0456\u043c\u0434\u0456\u043b\u0456\u043a\u0442\u0456 \u0442\u0435\u043a\u0441\u0435\u0440\u0433\u0456\u0448...", + "Add a text description": "\u041c\u04d9\u0442\u0456\u043d\u0434\u0456\u043a \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430 \u049b\u043e\u0441\u044b\u04a3\u044b\u0437", + "Add a text description for this image": "\u0421\u0443\u0440\u0435\u0442\u043a\u0435 \u043c\u04d9\u0442\u0456\u043d\u0434\u0456\u043a \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430 \u049b\u043e\u0441\u044b\u04a3\u044b\u0437", + "Adjacent links with the same URL should be merged into one link": "\u0411\u0456\u0440\u0434\u0435\u0439 URL \u043c\u0435\u043a\u0435\u043d\u0436\u0430\u0439\u043b\u044b \u049b\u043e\u0441\u044b\u043c\u0448\u0430 \u0441\u0456\u043b\u0442\u0435\u043c\u0435\u043b\u0435\u0440 \u0431\u0456\u0440 \u0441\u0456\u043b\u0442\u0435\u043c\u0435\u0433\u0435 \u0431\u0456\u0440\u0456\u043a\u0442\u0456\u0440\u0456\u043b\u0443\u0456 \u043a\u0435\u0440\u0435\u043a", + "Caption cannot be empty": "\u0416\u0430\u0437\u0431\u0430 \u0431\u043e\u0441 \u0431\u043e\u043b\u043c\u0430\u0439\u0434\u044b", + "Choose table header": "\u041a\u0435\u0441\u0442\u0435 \u0442\u0430\u049b\u044b\u0440\u044b\u0431\u044b\u043d \u0442\u0430\u04a3\u0434\u0430\u04a3\u044b\u0437", + "Click for more info": "\u049a\u043e\u0441\u044b\u043c\u0448\u0430 \u0430\u049b\u043f\u0430\u0440\u0430\u0442 \u0430\u043b\u0443 \u04af\u0448\u0456\u043d \u0431\u0430\u0441\u044b\u04a3\u044b\u0437", + "Column": "\u0411\u0430\u0493\u0430\u043d", + "Column group": "\u0411\u0430\u0493\u0430\u043d\u0434\u0430\u0440 \u0442\u043e\u0431\u044b", + "Complex tables should have summaries": "\u0416\u0438\u044b\u043d\u0442\u044b\u049b \u043a\u0435\u0441\u0442\u0435\u043b\u0435\u0440\u0434\u0435 \u049b\u043e\u0440\u044b\u0442\u044b\u043d\u0434\u044b\u043b\u0430\u0440 \u0431\u043e\u043b\u0443\u044b \u043a\u0435\u0440\u0435\u043a", + "Decorative images are not allowed. Please add a text description.": "\u0414\u0435\u043a\u043e\u0440\u0442\u0438\u0432\u0442\u0456 \u043a\u0435\u0441\u043a\u0456\u043d\u0434\u0435\u0440\u0433\u0435 \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0456\u043b\u043c\u0435\u0439\u0434\u0456. \u041c\u04d9\u0442\u0456\u043d\u0434\u0456\u043a \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430 \u049b\u043e\u0441\u044b\u04a3\u044b\u0437.", + "Error": "\u049a\u0430\u0442\u0435", + "Header column": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f \u0431\u0430\u0493\u0430\u043d\u044b", + "Header row": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f \u0436\u043e\u043b\u044b", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0442\u0430\u0440 \u0436\u04af\u0439\u0435\u043b\u0456 \u0440\u0435\u0442\u043f\u0435\u043d \u049b\u043e\u043b\u0434\u0430\u043d\u044b\u043b\u0443\u044b \u049b\u0430\u0436\u0435\u0442. \u041c\u044b\u0441\u0430\u043b\u044b: 1-\u0442\u0430\u049b\u044b\u0440\u044b\u043f\u0442\u0430\u043d \u043a\u0435\u0439\u0456\u043d 3-\u0442\u0430\u049b\u044b\u0440\u044b\u043f \u0435\u043c\u0435\u0441 2-\u0442\u0430\u049b\u044b\u0440\u044b\u043f \u0431\u043e\u043b\u0443\u044b \u043a\u0435\u0440\u0435\u043a.", + "ID attribute must be unique": "\u0418\u0414 \u0442\u04e9\u043b\u0441\u0438\u043f\u0430\u0442\u044b \u0431\u0456\u0440\u0435\u0433\u0435\u0439 \u0431\u043e\u043b\u0443\u044b \u049b\u0430\u0436\u0435\u0442", + "Ignore": "\u0415\u043b\u0435\u043c\u0435\u0443", + "Image": "\u041a\u0435\u0441\u043a\u0456\u043d", + "Image must be marked as decorative or have an alternative text description": "\u0421\u0443\u0440\u0435\u0442 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u0442\u0456 \u0434\u0435\u043f \u0431\u0435\u043b\u0433\u0456\u043b\u0435\u043d\u0443\u0456 \u043a\u0435\u0440\u0435\u043a \u043d\u0435\u043c\u0435\u0441\u0435 \u0431\u0430\u043b\u0430\u043c\u0430 \u043c\u04d9\u0442\u0456\u043d\u0434\u0456\u043a \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430\u0441\u044b \u0431\u043e\u043b\u0443\u044b \u043a\u0435\u0440\u0435\u043a", + "Image needs a text description": "\u0421\u0443\u0440\u0435\u0442\u043a\u0435 \u043c\u04d9\u0442\u0456\u043d\u0434\u0456\u043a \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430 \u043a\u04e9\u0440\u0441\u0435\u0442\u0443 \u043a\u0435\u0440\u0435\u043a", + "Info": "\u0410\u049b\u043f\u0430\u0440\u0430\u0442", + "Issue {0} of {1}": "{0}/{1} \u043c\u04d9\u0441\u0435\u043b\u0435\u0441\u0456", + "Keep this ID and remove all others": "\u0411\u04b1\u043b \u0418\u0414-\u043d\u044b \u0441\u0430\u049b\u0442\u0430\u0443 \u0436\u04d9\u043d\u0435 \u0431\u0430\u0440\u043b\u044b\u049b \u0431\u0430\u0441\u049b\u0430\u043b\u0430\u0440\u044b\u043d \u0436\u043e\u044e", + "Large text must have a contrast ratio of at least 3:1": "\u04ae\u043b\u043a\u0435\u043d \u043c\u04d9\u0442\u0456\u043d \u043a\u0435\u043c\u0456\u043d\u0434\u0435 3:1 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442 \u049b\u0430\u0442\u044b\u043d\u0430\u0441\u044b\u043d\u0430 \u0438\u0435 \u0431\u043e\u043b\u0443\u044b \u049b\u0430\u0436\u0435\u0442", + "Link": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435", + "Make ID unique": "\u0418\u0414-\u043d\u044b \u0431\u0456\u0440\u0435\u0433\u0435\u0439 \u0435\u0442\u0443", + "Mark as decorative": "\u0414\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u0442\u0456 \u0434\u0435\u043f \u0431\u0435\u043b\u0433\u0456\u043b\u0435\u0443", + "More info": "\u049a\u043e\u0441\u044b\u043c\u0448\u0430 \u0430\u049b\u043f\u0430\u0440\u0430\u0442", + "Next issue": "\u041a\u0435\u043b\u0435\u0441\u0456 \u043c\u04d9\u0441\u0435\u043b\u0435", + "No accessibility issues detected": "\u049a\u043e\u043b\u0436\u0435\u0442\u0456\u043c\u0434\u0456\u043b\u0456\u043a \u043c\u04d9\u0441\u0435\u043b\u0435\u043b\u0435\u0440\u0456 \u0430\u043d\u044b\u049b\u0442\u0430\u043b\u043c\u0430\u0434\u044b", + "Or add a text description": "\u041d\u0435\u043c\u0435\u0441\u0435 \u043c\u04d9\u0442\u0456\u043d\u0434\u0456\u043a \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430 \u049b\u043e\u0441\u044b\u04a3\u044b\u0437", + "Previous issue": "\u0410\u043b\u0434\u044b\u04a3\u0493\u044b \u043c\u04d9\u0441\u0435\u043b\u0435", + "Provide caption": "\u0416\u0430\u0437\u0431\u0430 \u0431\u0435\u0440\u0456\u04a3\u0456\u0437", + "Provide table summary": "\u041a\u0435\u0441\u0442\u0435 \u049b\u043e\u0440\u044b\u0442\u044b\u043d\u0434\u044b\u0441\u044b\u043d \u0431\u0435\u0440\u0456\u04a3\u0456\u0437", + "Remove all IDs": "\u0411\u0430\u0440\u043b\u044b\u049b \u0418\u0414-\u043b\u0430\u0440\u0434\u044b \u0436\u043e\u044e", + "Remove this ID": "\u0411\u04b1\u043b \u0418\u0414-\u043d\u044b \u0436\u043e\u044e", + "Repair": "\u0416\u04e9\u043d\u0434\u0435\u0443", + "Repair issue": "\u041c\u04d9\u0441\u0435\u043b\u0435\u043d\u0456 \u0448\u0435\u0448\u0443", + "Replace filename with a meaningful description": "\u0421\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430\u0434\u0430\u0493\u044b \u0444\u0430\u0439\u043b \u0430\u0442\u044b\u043d \u043c\u0430\u0493\u044b\u043d\u0430\u043b\u044b \u043c\u04d9\u0442\u0456\u043d\u0433\u0435 \u0430\u0443\u044b\u0441\u0442\u044b\u0440\u044b\u04a3\u044b\u0437", + "Row": "\u049a\u0430\u0442\u0430\u0440", + "Row group": "\u0416\u043e\u043b\u0434\u0430\u0440 \u0442\u043e\u0431\u044b", + "Select a heading level": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f \u0434\u0435\u04a3\u0433\u0435\u0439\u0456\u043d \u0442\u0430\u04a3\u0434\u0430\u04a3\u044b\u0437", + "Select header scope": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f \u0430\u0439\u043c\u0430\u0493\u044b\u043d \u0442\u0430\u04a3\u0434\u0430\u04a3\u044b\u0437", + "Shorten the text description": "\u041c\u04d9\u0442\u0456\u043d\u0434\u0456\u043a \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430\u043d\u044b \u049b\u044b\u0441\u049b\u0430\u0440\u0442\u044b\u04a3\u044b\u0437", + "Solution": "\u0428\u0435\u0448\u0456\u043c", + "Success": "\u0421\u04d9\u0442\u0442\u0456", + "Summary cannot be empty": "\u049a\u043e\u0440\u044b\u0442\u044b\u043d\u0434\u044b \u0431\u043e\u0441 \u0431\u043e\u043b\u043c\u0430\u0439\u0434\u044b", + "Table": "\u041a\u0435\u0441\u0442\u0435", + "Table caption and summary cannot have the same value": "\u041a\u0435\u0441\u0442\u0435 \u0436\u0430\u0437\u0431\u0430\u0441\u044b \u0436\u04d9\u043d\u0435 \u049b\u043e\u0440\u044b\u0442\u044b\u043d\u0434\u044b \u0431\u0456\u0440 \u043c\u04d9\u043d\u043d\u0435\u043d \u0442\u04b1\u0440\u0443\u044b \u043c\u04af\u043c\u043a\u0456\u043d \u0435\u043c\u0435\u0441", + "Table caption cannot be the same as the table summary": "\u041a\u0435\u0441\u0442\u0435 \u0436\u0430\u0437\u0431\u0430\u0441\u044b \u043a\u0435\u0441\u0442\u0435 \u049b\u043e\u0440\u044b\u0442\u044b\u043d\u0434\u044b\u0441\u044b\u043c\u0435\u043d \u0431\u0456\u0440\u0434\u0435\u0439 \u0431\u043e\u043b\u043c\u0430\u0439\u0434\u044b", + "Table elements must contain TR and TD tags": "\u041a\u0435\u0441\u0442\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0442\u0435\u0440\u0456\u043d\u0434\u0435 TR \u0436\u04d9\u043d\u0435 TD \u0442\u0435\u0433\u0442\u0435\u0440\u0456 \u0431\u043e\u043b\u0443\u044b \u049b\u0430\u0436\u0435\u0442", + "Table headers must be applied to a row or a column": "\u041a\u0435\u0441\u0442\u0435 \u0442\u0430\u049b\u044b\u0440\u044b\u043f\u0442\u0430\u0440\u044b \u049b\u0430\u0442\u0430\u0440\u0493\u0430 \u043d\u0435\u043c\u0435\u0441\u0435 \u0431\u0430\u0493\u0430\u043d\u0493\u0430 \u049b\u043e\u043b\u0434\u0430\u043d\u044b\u043b\u0443\u044b \u049b\u0430\u0436\u0435\u0442", + "Table summary cannot be the same as the table caption": "\u041a\u0435\u0441\u0442\u0435 \u049b\u043e\u0440\u044b\u0442\u044b\u043d\u0434\u044b\u0441\u044b \u043a\u0435\u0441\u0442\u0435 \u0436\u0430\u0437\u0431\u0430\u0441\u044b\u043c\u0435\u043d \u0431\u0456\u0440\u0434\u0435\u0439 \u0431\u043e\u043b\u043c\u0430\u0439\u0434\u044b", + "Tables must have at least one header cell": "\u041a\u0435\u0441\u0442\u0435\u043b\u0435\u0440\u0434\u0435 \u043a\u0435\u043c\u0456\u043d\u0434\u0435 \u0431\u0456\u0440 \u0442\u0430\u049b\u044b\u0440\u044b\u043f \u04b1\u044f\u0448\u044b\u0493\u044b \u0431\u043e\u043b\u0443\u044b \u049b\u0430\u0436\u0435\u0442", + "Tables must have captions": "\u041a\u0435\u0441\u0442\u0435\u043b\u0435\u0440\u0434\u0435 \u0436\u0430\u0437\u0431\u0430\u043b\u0430\u0440 \u0431\u043e\u043b\u0443\u044b \u049b\u0430\u0436\u0435\u0442", + "Text": "\u041c\u04d9\u0442\u0456\u043d", + "Text description cannot be empty": "\u041c\u04d9\u0442\u0456\u043d\u0434\u0456\u043a \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430 \u0431\u043e\u0441 \u0431\u043e\u043b\u043c\u0430\u0443\u044b \u0442\u0438\u0456\u0441", + "Text description is too long": "\u041c\u04d9\u0442\u0456\u043d\u0434\u0456\u043a \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430 \u0442\u044b\u043c \u04b1\u0437\u044b\u043d", + "Text description should describe the image, not the filename": "\u041c\u04d9\u0442\u0456\u043d\u0434\u0456\u043a \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430 \u0444\u0430\u0439\u043b\u0434\u044b\u04a3 \u0430\u0442\u044b\u043d \u0435\u043c\u0435\u0441, \u0441\u0443\u0440\u0435\u0442\u0442\u0456 \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u0443\u044b \u043a\u0435\u0440\u0435\u043a", + "Text description should not be the image filename": "\u041c\u04d9\u0442\u0456\u043d\u0434\u0456\u043a \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430 \u0441\u0443\u0440\u0435\u0442 \u0444\u0430\u0439\u043b\u044b\u043d\u044b\u04a3 \u0430\u0442\u044b\u043c\u0435\u043d \u0441\u04d9\u0439\u043a\u0435\u0441 \u043a\u0435\u043b\u043c\u0435\u0443\u0456 \u043a\u0435\u0440\u0435\u043a", + "Text must have a contrast ratio of at least 4.5:1": "\u041c\u04d9\u0442\u0456\u043d \u043a\u0435\u043c\u0456\u043d\u0434\u0435 4,5:1 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442 \u049b\u0430\u0442\u044b\u043d\u0430\u0441\u044b\u043d\u0430 \u0438\u0435 \u0431\u043e\u043b\u0443\u044b \u049b\u0430\u0436\u0435\u0442", + "Text must have a contrast ratio of at least 7:1": "\u041c\u04d9\u0442\u0456\u043d \u043a\u0435\u043c\u0456\u043d\u0434\u0435 7:1 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442 \u049b\u0430\u0442\u044b\u043d\u0430\u0441\u044b\u043d\u0430 \u0438\u0435 \u0431\u043e\u043b\u0443\u044b \u049b\u0430\u0436\u0435\u0442", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u0422\u0430\u04a3\u0434\u0430\u043b\u0493\u0430\u043d \u043c\u04d9\u0442\u0456\u043d \u0442\u0456\u0437\u0456\u043c \u0440\u0435\u0442\u0456\u043d\u0434\u0435 \u043f\u0430\u0439\u0434\u0430 \u0431\u043e\u043b\u0430\u0434\u044b. \u0422\u0456\u0437\u0456\u043c\u0434\u0435\u0440 \u0442\u0456\u0437\u0456\u043c \u0442\u0435\u0433\u0456 \u0440\u0435\u0442\u0456\u043d\u0434\u0435 \u043f\u0456\u0448\u0456\u043c\u0434\u0435\u043b\u0443\u0456 \u043a\u0435\u0440\u0435\u043a.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u0421\u0443\u0440\u0435\u0442\u0442\u0435 \u049b\u0430\u0440\u0430\u043c\u0430-\u049b\u0430\u0439\u0448\u044b \u0430\u049b\u043f\u0430\u0440\u0430\u0442 \u0431\u0430\u0440. \u041d\u0435 \u043c\u04d9\u0442\u0456\u043d\u0434\u0456\u043a \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430\u043d\u044b \u04e9\u0448\u0456\u0440\u0456\u043f, \u0441\u0443\u0440\u0435\u0442\u0442\u0456 \u0441\u04d9\u043d\u0434\u0456\u043a\u043a\u0435 \u0430\u0439\u043d\u0430\u043b\u0434\u044b\u0440\u044b\u04a3\u044b\u0437, \u043d\u0435 \xab\u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u0442\u0456\xbb \u0431\u0435\u043b\u0433\u0456\u0441\u0456\u043d \u04e9\u0448\u0456\u0440\u0456\u04a3\u0456\u0437.", + "This image is decorative": "\u0411\u04b1\u043b \u043a\u0435\u0441\u043a\u0456\u043d \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u0442\u0456 \u043a\u0435\u0441\u043a\u0456\u043d", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u0411\u04b1\u043b \u043f\u0430\u0440\u0430\u0433\u0440\u0430\u0444 \u0442\u0430\u049b\u044b\u0440\u044b\u043f\u049b\u0430 \u04b1\u049b\u0441\u0430\u0441. \u0415\u0433\u0435\u0440 \u0431\u04b1\u043b \u0442\u0430\u049b\u044b\u0440\u044b\u043f \u0431\u043e\u043b\u0441\u0430, \u0442\u0430\u049b\u044b\u0440\u044b\u043f \u0434\u0435\u04a3\u0433\u0435\u0439\u0456\u043d \u0442\u0430\u04a3\u0434\u0430\u04a3\u044b\u0437.", + "Warning": "\u0415\u0441\u043a\u0435\u0440\u0442\u0443", + "{0} characters (maximum {1} allowed)": "{0} \u0442\u0430\u04a3\u0431\u0430 (\u043a\u04e9\u043f \u0434\u0435\u0433\u0435\u043d\u0434\u0435 {1} \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0456\u043b\u0435\u0434\u0456)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/ko-KR.js b/plugins/a11ychecker/langs/ko-KR.js new file mode 100644 index 00000000..cad94cf1 --- /dev/null +++ b/plugins/a11ychecker/langs/ko-KR.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ko-KR", { + '"{0}"': '"{0}"', + "Accessibility Checker": "\uc811\uadfc\uc131 \uac80\uc0ac\uae30", + "Accessibility checker...": "\uc811\uadfc\uc131 \uac80\uc0ac\uae30...", + "Add a text description": "\ud14d\uc2a4\ud2b8 \uc124\uba85\uc744 \ucd94\uac00\ud558\uc138\uc694", + "Add a text description for this image": "\uc774 \uc774\ubbf8\uc9c0\uc758 \ud14d\uc2a4\ud2b8 \uc124\uba85\uc744 \ucd94\uac00\ud558\uc138\uc694", + "Adjacent links with the same URL should be merged into one link": "\uac19\uc740 URL\uc744 \uac00\uc9c4 \uc778\uc811 \ub9c1\ud06c\ub294 \ud558\ub098\uc758 \ub9c1\ud06c\ub85c \ubcd1\ud569\ud574\uc57c \ud569\ub2c8\ub2e4", + "Caption cannot be empty": "\ucea1\uc158\uc740 \uacf5\ubc31\uc774 \uc544\ub2c8\uc5b4\uc57c \ud569\ub2c8\ub2e4", + "Choose table header": "\ud14c\uc774\ube14 \ud5e4\ub354 \uc120\ud0dd", + "Click for more info": "\uc790\uc138\ud55c \uc815\ubcf4\ub97c \ud655\uc778\ud558\ub824\uba74 \ud074\ub9ad\ud569\ub2c8\ub2e4.", + "Column": "\uc5f4", + "Column group": "\uc5f4 \uadf8\ub8f9", + "Complex tables should have summaries": "\ubcf5\uc7a1\ud55c \ud14c\uc774\ube14\uc5d0\ub294 \uc694\uc57d\uc774 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4", + "Decorative images are not allowed. Please add a text description.": "\uc7a5\uc2dd \uc774\ubbf8\uc9c0\ub294 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ud14d\uc2a4\ud2b8 \uc124\uba85\uc744 \ucd94\uac00\ud558\uc138\uc694.", + "Error": "\uc624\ub958", + "Header column": "\ud5e4\ub354 \uc5f4", + "Header row": "\ud5e4\ub354 \ud589", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\uc81c\ubaa9\uc740 \uc21c\uc11c\ub300\ub85c \ubd80\uc5ec\ud574\uc57c \ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 \uc81c\ubaa9 1 \ub2e4\uc74c\uc5d0\ub294 \uc81c\ubaa9 3\uc774 \uc544\ub2cc \uc81c\ubaa9 2\uac00 \uc640\uc57c \ud569\ub2c8\ub2e4.", + "ID attribute must be unique": "ID \uc18d\uc131\uc740 \uace0\uc720\ud574\uc57c \ud569\ub2c8\ub2e4.", + "Ignore": "\ubb34\uc2dc", + "Image": "\uc774\ubbf8\uc9c0", + "Image must be marked as decorative or have an alternative text description": "\uc774\ubbf8\uc9c0\ub294 \uc7a5\uc2dd\uc73c\ub85c \ud45c\uc2dc\ub418\uac70\ub098 \ub300\uccb4 \ud14d\uc2a4\ud2b8 \uc124\uba85\uc744 \ud3ec\ud568\ud574\uc57c \ud569\ub2c8\ub2e4", + "Image needs a text description": "\uc774\ubbf8\uc9c0\uc5d0\ub294 \ud14d\uc2a4\ud2b8 \uc124\uba85\uc774 \ud544\uc694\ud569\ub2c8\ub2e4", + "Info": "\uc815\ubcf4", + "Issue {0} of {1}": "{1}\uc758 {0} \ubb38\uc81c", + "Keep this ID and remove all others": "\uc774 ID\ub97c \uc720\uc9c0\ud558\uace0 \ub098\uba38\uc9c0\ub294 \ubaa8\ub450 \uc81c\uac70\ud569\ub2c8\ub2e4.", + "Large text must have a contrast ratio of at least 3:1": "\ud070 \ud14d\uc2a4\ud2b8\ub294 \ucd5c\uc18c\ud55c 3:1\uc758 \uba85\uc554\ube44\ub97c \uac00\uc838\uc57c \ud569\ub2c8\ub2e4.", + "Link": "\ub9c1\ud06c", + "Make ID unique": "\uace0\uc720 ID\ub97c \uc0dd\uc131\ud558\uc2ed\uc2dc\uc624.", + "Mark as decorative": "\uc7a5\uc2dd\uc73c\ub85c \ud45c\uc2dc", + "More info": "\uc790\uc138\ud55c \uc815\ubcf4", + "Next issue": "\ub2e4\uc74c \ubb38\uc81c", + "No accessibility issues detected": "\uc811\uadfc\uc131\uc5d0 \ubb38\uc81c\uac00 \uc5c6\uc2b5\ub2c8\ub2e4", + "Or add a text description": "\ub610\ub294 \ud14d\uc2a4\ud2b8 \uc124\uba85\uc744 \ucd94\uac00\ud558\uc138\uc694", + "Previous issue": "\uc774\uc804 \ubb38\uc81c", + "Provide caption": "\ucea1\uc158 \uc81c\uacf5", + "Provide table summary": "\ud14c\uc774\ube14 \uc694\uc57d \uc81c\uacf5", + "Remove all IDs": "\ubaa8\ub4e0 ID\ub97c \uc0ad\uc81c\ud569\ub2c8\ub2e4.", + "Remove this ID": "\uc774 ID\ub97c \uc81c\uac70\ud569\ub2c8\ub2e4.", + "Repair": "\ubcf5\uad6c", + "Repair issue": "\ubb38\uc81c \ubcf5\uad6c", + "Replace filename with a meaningful description": "\ud30c\uc77c \uc774\ub984\uc744 \uc758\ubbf8 \uc788\ub294 \uc124\uba85\uc73c\ub85c \ubc14\uafb8\uc138\uc694", + "Row": "\ud589", + "Row group": "\ud589 \uadf8\ub8f9", + "Select a heading level": "\uc81c\ubaa9 \uc218\uc900 \uc120\ud0dd", + "Select header scope": "\ud5e4\ub354 \ubc94\uc704 \uc120\ud0dd", + "Shorten the text description": "\ud14d\uc2a4\ud2b8 \uc124\uba85\uc744 \uc904\uc5ec\uc8fc\uc138\uc694", + "Solution": "\ud574\uacb0 \ubc29\ubc95", + "Success": "\uc131\uacf5", + "Summary cannot be empty": "\uc694\uc57d\uc740 \uacf5\ubc31\uc774 \uc544\ub2c8\uc5b4\uc57c \ud569\ub2c8\ub2e4", + "Table": "\ud14c\uc774\ube14", + "Table caption and summary cannot have the same value": "\ud14c\uc774\ube14 \ucea1\uc158\uacfc \uc694\uc57d\uc758 \uac12\uc774 \uac19\uc9c0 \uc54a\uc544\uc57c \ud569\ub2c8\ub2e4", + "Table caption cannot be the same as the table summary": "\ud14c\uc774\ube14 \ucea1\uc158\uacfc \ud14c\uc774\ube14 \uc694\uc57d\uc774 \uac19\uc9c0 \uc54a\uc544\uc57c \ud569\ub2c8\ub2e4", + "Table elements must contain TR and TD tags": "\ud14c\uc774\ube14 \uc694\uc18c\uc5d0\ub294 TR \ubc0f TD \ud0dc\uadf8\uac00 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4", + "Table headers must be applied to a row or a column": "\ud14c\uc774\ube14 \ud5e4\ub354\ub97c \ud589 \ub610\ub294 \uc5f4\uc5d0 \uc801\uc6a9\ud574\uc57c \ud569\ub2c8\ub2e4.", + "Table summary cannot be the same as the table caption": "\ud14c\uc774\ube14 \uc694\uc57d\uacfc \ud14c\uc774\ube14 \ucea1\uc158\uc774 \uac19\uc9c0 \uc54a\uc544\uc57c \ud569\ub2c8\ub2e4", + "Tables must have at least one header cell": "\ud14c\uc774\ube14\uc5d0\ub294 \ucd5c\uc18c\ud55c \ud558\ub098\uc758 \ud5e4\ub354 \uc140\uc774 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4", + "Tables must have captions": "\ud14c\uc774\ube14\uc5d0 \ucea1\uc158\uc774 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4", + "Text": "\ud14d\uc2a4\ud2b8", + "Text description cannot be empty": "\ud14d\uc2a4\ud2b8 \uc124\uba85\uc740 \ube44\uc6cc\ub458 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4", + "Text description is too long": "\ud14d\uc2a4\ud2b8 \uc124\uba85\uc774 \ub108\ubb34 \uae41\ub2c8\ub2e4", + "Text description should describe the image, not the filename": "\ud14d\uc2a4\ud2b8 \uc124\uba85\uc740 \ud30c\uc77c \uc774\ub984\uc774 \uc544\ub2c8\uc5ec\uc57c \ud558\uba70, \uc774\ubbf8\uc9c0\ub97c \uc124\uba85\ud574\uc57c \ud569\ub2c8\ub2e4", + "Text description should not be the image filename": "\uc124\uba85 \ud14d\uc2a4\ud2b8\ub294 \uc774\ubbf8\uc9c0 \ud30c\uc77c \uc774\ub984\uc774\uc5b4\uc11c\ub294 \uc548 \ub429\ub2c8\ub2e4", + "Text must have a contrast ratio of at least 4.5:1": "\ud14d\uc2a4\ud2b8\ub294 \ucd5c\uc18c\ud55c 4.5:1\uc758 \uba85\uc554\ube44\ub97c \uac00\uc838\uc57c \ud569\ub2c8\ub2e4.", + "Text must have a contrast ratio of at least 7:1": "\ud14d\uc2a4\ud2b8\ub294 \ucd5c\uc18c\ud55c 7:1\uc758 \uba85\uc554\ube44\ub97c \uac00\uc838\uc57c \ud569\ub2c8\ub2e4.", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\uc120\ud0dd\ud55c \ud14d\uc2a4\ud2b8\ub294 \ubaa9\ub85d\uc778 \uac83 \uac19\uc2b5\ub2c8\ub2e4. \ubaa9\ub85d\uc740 \ubaa9\ub85d \ud0dc\uadf8\ub97c \uc0ac\uc6a9\ud574 \ud615\uc2dd\uc744 \ud45c\uc2dc\ud574\uc57c \ud569\ub2c8\ub2e4.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\uc774 \uc774\ubbf8\uc9c0\uc5d0\ub294 \uc0c1\ucda9\ub418\ub294 \uc815\ubcf4\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ud14d\uc2a4\ud2b8 \uc124\uba85\uc744 \uc81c\uac70\ud558\uc5ec \uc7a5\uc2dd\uc73c\ub85c \uc9c0\uc815\ud558\uac70\ub098 \uc7a5\uc2dd \ud45c\uc2dc\ub97c \uc81c\uac70\ud558\uc138\uc694.", + "This image is decorative": "\uc774 \uc774\ubbf8\uc9c0\ub294 \uc7a5\uc2dd\uc785\ub2c8\ub2e4", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\uc774 \ub2e8\ub77d\uc740 \uc81c\ubaa9\ucc98\ub7fc \ubcf4\uc785\ub2c8\ub2e4. \uc81c\ubaa9\uc774\uba74 \uc81c\ubaa9 \uc218\uc900\uc744 \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624.", + "Warning": "\uacbd\uace0", + "{0} characters (maximum {1} allowed)": "{0}\uc790(\ucd5c\ub300 {1}\uc790 \ud5c8\uc6a9\ub428)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/ko_KR.js b/plugins/a11ychecker/langs/ko_KR.js new file mode 100644 index 00000000..20ed01f2 --- /dev/null +++ b/plugins/a11ychecker/langs/ko_KR.js @@ -0,0 +1,80 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ko-KR", { + '"{0}"': '"{0}"', + "Accessibility Checker": "\uc811\uadfc\uc131 \uac80\uc0ac\uae30", + "Accessibility checker...": "\uc811\uadfc\uc131 \uac80\uc0ac\uae30...", + "Add a text description": "\ud14d\uc2a4\ud2b8 \uc124\uba85\uc744 \ucd94\uac00\ud558\uc138\uc694", + "Add a text description for this image": "\uc774 \uc774\ubbf8\uc9c0\uc758 \ud14d\uc2a4\ud2b8 \uc124\uba85\uc744 \ucd94\uac00\ud558\uc138\uc694", + "Adjacent links with the same URL should be merged into one link": "\uac19\uc740 URL\uc744 \uac00\uc9c4 \uc778\uc811 \ub9c1\ud06c\ub294 \ud558\ub098\uc758 \ub9c1\ud06c\ub85c \ubcd1\ud569\ud574\uc57c \ud569\ub2c8\ub2e4", + "Caption cannot be empty": "\ucea1\uc158\uc740 \uacf5\ubc31\uc774 \uc544\ub2c8\uc5b4\uc57c \ud569\ub2c8\ub2e4", + "Choose table header": "\ud14c\uc774\ube14 \ud5e4\ub354 \uc120\ud0dd", + "Click for more info": "\uc790\uc138\ud55c \uc815\ubcf4\ub97c \ud655\uc778\ud558\ub824\uba74 \ud074\ub9ad\ud569\ub2c8\ub2e4.", + "Column": "\uc5f4", + "Column group": "\uc5f4 \uadf8\ub8f9", + "Complex tables should have summaries": "\ubcf5\uc7a1\ud55c \ud14c\uc774\ube14\uc5d0\ub294 \uc694\uc57d\uc774 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4", + "Decorative images are not allowed. Please add a text description.": "\uc7a5\uc2dd \uc774\ubbf8\uc9c0\ub294 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ud14d\uc2a4\ud2b8 \uc124\uba85\uc744 \ucd94\uac00\ud558\uc138\uc694.", + "Error": "\uc624\ub958", + "Header column": "\ud5e4\ub354 \uc5f4", + "Header row": "\ud5e4\ub354 \ud589", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\uc81c\ubaa9\uc740 \uc21c\uc11c\ub300\ub85c \ubd80\uc5ec\ud574\uc57c \ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 \uc81c\ubaa9 1 \ub2e4\uc74c\uc5d0\ub294 \uc81c\ubaa9 3\uc774 \uc544\ub2cc \uc81c\ubaa9 2\uac00 \uc640\uc57c \ud569\ub2c8\ub2e4.", + "ID attribute must be unique": "ID \uc18d\uc131\uc740 \uace0\uc720\ud574\uc57c \ud569\ub2c8\ub2e4.", + "Ignore": "\ubb34\uc2dc", + "Image": "\uc774\ubbf8\uc9c0", + "Image must be marked as decorative or have an alternative text description": "\uc774\ubbf8\uc9c0\ub294 \uc7a5\uc2dd\uc73c\ub85c \ud45c\uc2dc\ub418\uac70\ub098 \ub300\uccb4 \ud14d\uc2a4\ud2b8 \uc124\uba85\uc744 \ud3ec\ud568\ud574\uc57c \ud569\ub2c8\ub2e4", + "Image needs a text description": "\uc774\ubbf8\uc9c0\uc5d0\ub294 \ud14d\uc2a4\ud2b8 \uc124\uba85\uc774 \ud544\uc694\ud569\ub2c8\ub2e4", + "Info": "\uc815\ubcf4", + "Issue {0} of {1}": "{1}\uc758 {0} \ubb38\uc81c", + "Keep this ID and remove all others": "\uc774 ID\ub97c \uc720\uc9c0\ud558\uace0 \ub098\uba38\uc9c0\ub294 \ubaa8\ub450 \uc81c\uac70\ud569\ub2c8\ub2e4.", + "Large text must have a contrast ratio of at least 3:1": "\ud070 \ud14d\uc2a4\ud2b8\ub294 \ucd5c\uc18c\ud55c 3:1\uc758 \uba85\uc554\ube44\ub97c \uac00\uc838\uc57c \ud569\ub2c8\ub2e4.", + "Link": "\ub9c1\ud06c", + "Make ID unique": "\uace0\uc720 ID\ub97c \uc0dd\uc131\ud558\uc2ed\uc2dc\uc624.", + "Mark as decorative": "\uc7a5\uc2dd\uc73c\ub85c \ud45c\uc2dc", + "More info": "\uc790\uc138\ud55c \uc815\ubcf4", + "Next issue": "\ub2e4\uc74c \ubb38\uc81c", + "No accessibility issues detected": "\uc811\uadfc\uc131\uc5d0 \ubb38\uc81c\uac00 \uc5c6\uc2b5\ub2c8\ub2e4", + "Or add a text description": "\ub610\ub294 \ud14d\uc2a4\ud2b8 \uc124\uba85\uc744 \ucd94\uac00\ud558\uc138\uc694", + "Previous issue": "\uc774\uc804 \ubb38\uc81c", + "Provide caption": "\ucea1\uc158 \uc81c\uacf5", + "Provide table summary": "\ud14c\uc774\ube14 \uc694\uc57d \uc81c\uacf5", + "Remove all IDs": "\ubaa8\ub4e0 ID\ub97c \uc0ad\uc81c\ud569\ub2c8\ub2e4.", + "Remove this ID": "\uc774 ID\ub97c \uc81c\uac70\ud569\ub2c8\ub2e4.", + "Repair": "\ubcf5\uad6c", + "Repair issue": "\ubb38\uc81c \ubcf5\uad6c", + "Replace filename with a meaningful description": "\ud30c\uc77c \uc774\ub984\uc744 \uc758\ubbf8 \uc788\ub294 \uc124\uba85\uc73c\ub85c \ubc14\uafb8\uc138\uc694", + "Row": "\ud589", + "Row group": "\ud589 \uadf8\ub8f9", + "Select a heading level": "\uc81c\ubaa9 \uc218\uc900 \uc120\ud0dd", + "Select header scope": "\ud5e4\ub354 \ubc94\uc704 \uc120\ud0dd", + "Shorten the text description": "\ud14d\uc2a4\ud2b8 \uc124\uba85\uc744 \uc904\uc5ec\uc8fc\uc138\uc694", + "Solution": "\ud574\uacb0 \ubc29\ubc95", + "Success": "\uc131\uacf5", + "Summary cannot be empty": "\uc694\uc57d\uc740 \uacf5\ubc31\uc774 \uc544\ub2c8\uc5b4\uc57c \ud569\ub2c8\ub2e4", + "Table": "\ud14c\uc774\ube14", + "Table caption and summary cannot have the same value": "\ud14c\uc774\ube14 \ucea1\uc158\uacfc \uc694\uc57d\uc758 \uac12\uc774 \uac19\uc9c0 \uc54a\uc544\uc57c \ud569\ub2c8\ub2e4", + "Table caption cannot be the same as the table summary": "\ud14c\uc774\ube14 \ucea1\uc158\uacfc \ud14c\uc774\ube14 \uc694\uc57d\uc774 \uac19\uc9c0 \uc54a\uc544\uc57c \ud569\ub2c8\ub2e4", + "Table elements must contain TR and TD tags": "\ud14c\uc774\ube14 \uc694\uc18c\uc5d0\ub294 TR \ubc0f TD \ud0dc\uadf8\uac00 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4", + "Table headers must be applied to a row or a column": "\ud14c\uc774\ube14 \ud5e4\ub354\ub97c \ud589 \ub610\ub294 \uc5f4\uc5d0 \uc801\uc6a9\ud574\uc57c \ud569\ub2c8\ub2e4.", + "Table summary cannot be the same as the table caption": "\ud14c\uc774\ube14 \uc694\uc57d\uacfc \ud14c\uc774\ube14 \ucea1\uc158\uc774 \uac19\uc9c0 \uc54a\uc544\uc57c \ud569\ub2c8\ub2e4", + "Tables must have at least one header cell": "\ud14c\uc774\ube14\uc5d0\ub294 \ucd5c\uc18c\ud55c \ud558\ub098\uc758 \ud5e4\ub354 \uc140\uc774 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4", + "Tables must have captions": "\ud14c\uc774\ube14\uc5d0 \ucea1\uc158\uc774 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4", + "Text": "\ud14d\uc2a4\ud2b8", + "Text description cannot be empty": "\ud14d\uc2a4\ud2b8 \uc124\uba85\uc740 \ube44\uc6cc\ub458 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4", + "Text description is too long": "\ud14d\uc2a4\ud2b8 \uc124\uba85\uc774 \ub108\ubb34 \uae41\ub2c8\ub2e4", + "Text description should describe the image, not the filename": "\ud14d\uc2a4\ud2b8 \uc124\uba85\uc740 \ud30c\uc77c \uc774\ub984\uc774 \uc544\ub2c8\uc5ec\uc57c \ud558\uba70, \uc774\ubbf8\uc9c0\ub97c \uc124\uba85\ud574\uc57c \ud569\ub2c8\ub2e4", + "Text description should not be the image filename": "\uc124\uba85 \ud14d\uc2a4\ud2b8\ub294 \uc774\ubbf8\uc9c0 \ud30c\uc77c \uc774\ub984\uc774\uc5b4\uc11c\ub294 \uc548 \ub429\ub2c8\ub2e4", + "Text must have a contrast ratio of at least 4.5:1": "\ud14d\uc2a4\ud2b8\ub294 \ucd5c\uc18c\ud55c 4.5:1\uc758 \uba85\uc554\ube44\ub97c \uac00\uc838\uc57c \ud569\ub2c8\ub2e4.", + "Text must have a contrast ratio of at least 7:1": "\ud14d\uc2a4\ud2b8\ub294 \ucd5c\uc18c\ud55c 7:1\uc758 \uba85\uc554\ube44\ub97c \uac00\uc838\uc57c \ud569\ub2c8\ub2e4.", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\uc120\ud0dd\ud55c \ud14d\uc2a4\ud2b8\ub294 \ubaa9\ub85d\uc778 \uac83 \uac19\uc2b5\ub2c8\ub2e4. \ubaa9\ub85d\uc740 \ubaa9\ub85d \ud0dc\uadf8\ub97c \uc0ac\uc6a9\ud574 \ud615\uc2dd\uc744 \ud45c\uc2dc\ud574\uc57c \ud569\ub2c8\ub2e4.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\uc774 \uc774\ubbf8\uc9c0\uc5d0\ub294 \uc0c1\ucda9\ub418\ub294 \uc815\ubcf4\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ud14d\uc2a4\ud2b8 \uc124\uba85\uc744 \uc81c\uac70\ud558\uc5ec \uc7a5\uc2dd\uc73c\ub85c \uc9c0\uc815\ud558\uac70\ub098 \uc7a5\uc2dd \ud45c\uc2dc\ub97c \uc81c\uac70\ud558\uc138\uc694.", + "This image is decorative": "\uc774 \uc774\ubbf8\uc9c0\ub294 \uc7a5\uc2dd\uc785\ub2c8\ub2e4", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\uc774 \ub2e8\ub77d\uc740 \uc81c\ubaa9\ucc98\ub7fc \ubcf4\uc785\ub2c8\ub2e4. \uc81c\ubaa9\uc774\uba74 \uc81c\ubaa9 \uc218\uc900\uc744 \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624.", + "Warning": "\uacbd\uace0", + "{0} characters (maximum {1} allowed)": "{0}\uc790(\ucd5c\ub300 {1}\uc790 \ud5c8\uc6a9\ub428)" +}); + +console.warn('TinyMCE language code "ko_KR" is deprecated, please use "ko-KR" instead.'); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/ms.js b/plugins/a11ychecker/langs/ms.js new file mode 100644 index 00000000..ed86122b --- /dev/null +++ b/plugins/a11ychecker/langs/ms.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ms", { + '"{0}"': '"{0}"', + "Accessibility Checker": "Penyemak Kebolehcapaian", + "Accessibility checker...": "Penyemak kebolehcapaian...", + "Add a text description": "Tambah keterangan teks", + "Add a text description for this image": "Tambah keterangan teks untuk imej ini", + "Adjacent links with the same URL should be merged into one link": "Pautan bersebelahan dengan URL yang sama hendaklah digabungkan menjadi satu pautan", + "Caption cannot be empty": "Kapsyen tidak boleh kosong", + "Choose table header": "Pilih pengepala jadual", + "Click for more info": "Klik untuk info lanjut", + "Column": "Lajur", + "Column group": "Kumpulan lajur", + "Complex tables should have summaries": "Jadual kompleks hendaklah mengandungi ringkasan", + "Decorative images are not allowed. Please add a text description.": "Imej hiasan tidak dibenarkan. Sila tambah keterangan teks.", + "Error": "Ralat", + "Header column": "Lajur pengepala", + "Header row": "Baris pengepala", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Tajuk mesti digunakan mengikut tertib berjujukan.Sebagai contoh: Tajuk 1 hendaklah diikuti Tajuk 2 bukan Tajuk 3.", + "ID attribute must be unique": "Atribut ID mestilah unik", + "Ignore": "Abaikan", + "Image": "Imej", + "Image must be marked as decorative or have an alternative text description": "Imej mestilah ditandakan sebagai hiasan atau mengandungi keterangan teks alternatif", + "Image needs a text description": "Imej memerlukan keterangan teks", + "Info": "Info", + "Issue {0} of {1}": "Isu {0} daripada {1}", + "Keep this ID and remove all others": "Simpan ID ini dan alih keluar semua yang lain", + "Large text must have a contrast ratio of at least 3:1": "Teks besar mesti memiliki nisbah kontras sekurang-kurangnya 3:1", + "Link": "Pautan", + "Make ID unique": "Jadikan ID unik", + "Mark as decorative": "Tandakan sebagai hiasan", + "More info": "Maklumat lanjut", + "Next issue": "Isu seterusnya", + "No accessibility issues detected": "Tiada masalah kebolehcapaian dikesan", + "Or add a text description": "Atau tambah keterangan teks", + "Previous issue": "Isu terdahulu", + "Provide caption": "Berikan kapsyen", + "Provide table summary": "Berikan ringkasan jadual", + "Remove all IDs": "Alih keluar semua ID", + "Remove this ID": "Alih keluar ID ini", + "Repair": "Baiki", + "Repair issue": "Baiki isu", + "Replace filename with a meaningful description": "Gantikan nama fail dengan keterangan yang penuh bermakna", + "Row": "Baris", + "Row group": "Kumpulan baris", + "Select a heading level": "Pilih aras tajuk", + "Select header scope": "Pilih skop pengepala", + "Shorten the text description": "Singkatkan keterangan teks", + "Solution": "Penyelesaian", + "Success": "Berjaya", + "Summary cannot be empty": "Ringkasan tidak boleh kosong", + "Table": "Jadual", + "Table caption and summary cannot have the same value": "Kapsyen dan ringkasan jadual tidak boleh mengandungi nilai yang sama", + "Table caption cannot be the same as the table summary": "Kapsyen jadual tidak boleh sama dengan ringkasan jadual", + "Table elements must contain TR and TD tags": "Elemen jadual mesti mengandungi tag TR dan TD", + "Table headers must be applied to a row or a column": "Pengepala jadual mesti digunakan pada baris atau lajur", + "Table summary cannot be the same as the table caption": "Ringkasan jadual tidak boleh sama dengan kapsyen jadual", + "Tables must have at least one header cell": "Jadual mesti mengandungi sekurang-kurangnya satu sel pengepala", + "Tables must have captions": "Jadual mesti mengandungi kapsyen", + "Text": "Teks", + "Text description cannot be empty": "Keterangan teks tidak boleh kosong", + "Text description is too long": "Keterangan teks adalah terlalu panjang", + "Text description should describe the image, not the filename": "Keterangan teks harus menerangkan imej, bukan nama fail", + "Text description should not be the image filename": "Keterangan teks tidak seharusnya nama fail imej", + "Text must have a contrast ratio of at least 4.5:1": "Teks mesti memiliki nisbah kontras sekurang-kurangnya 4.5:1", + "Text must have a contrast ratio of at least 7:1": "Teks mesti memiliki nisbah kontras sekurang-kurangnya 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Teks yang dipilih muncul sebagai senarai.Senarai hendaklah diformat menggunakan tag senarai.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Imej ini mempunyai maklumat yang bertentangan. Sama ada singkirkan keterangan teks untuk membuatnya hiasan atau singkirkan penanda hiasan.", + "This image is decorative": "Imej ini ialah hiasan", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Perenggan ini kelihatan seperti tajuk.Jika ini ialah tajuk sila pilih aras tajuk.", + "Warning": "Amaran", + "{0} characters (maximum {1} allowed)": "{0} aksara (maksimum {1} dibenarkan)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/nb-NO.js b/plugins/a11ychecker/langs/nb-NO.js new file mode 100644 index 00000000..c8f08508 --- /dev/null +++ b/plugins/a11ychecker/langs/nb-NO.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("nb-NO", { + '"{0}"': "\xab{0}\xbb", + "Accessibility Checker": "Tilgjengelighetssjekker", + "Accessibility checker...": "Tilgjengelighetssjekker ...", + "Add a text description": "Legg til en teksbeskrivelse", + "Add a text description for this image": "Legg til en tekstbeskrivelse for bildet", + "Adjacent links with the same URL should be merged into one link": "Tilst\xf8tende koblinger med samme nettadresse skal flettes sammen til \xe9n kobling.", + "Caption cannot be empty": "Bildetekst kan ikke v\xe6re tom.", + "Choose table header": "Velg tabelloverskrift", + "Click for more info": "Klikk for mer informasjon", + "Column": "Kolonne", + "Column group": "Kolonnegruppe", + "Complex tables should have summaries": "Komplekse tabeller b\xf8r ha sammendrag", + "Decorative images are not allowed. Please add a text description.": "Dekorative bilder er ikke tillatt. Legg til en tekstbeskrivelse.", + "Error": "Feil", + "Header column": "Overskriftskolonne", + "Header row": "Overskriftsrad", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Overskrifter m\xe5 brukes i sekvensiell rekkef\xf8lge. For eksempel: Overskrift 1 skal etterf\xf8lges av overskrift 2, ikke overskrift 3.", + "ID attribute must be unique": "ID-attributt m\xe5 v\xe6re unik", + "Ignore": "Ignorer", + "Image": "Bilde", + "Image must be marked as decorative or have an alternative text description": "Bildet m\xe5 v\xe6re markert som dekorativt eller ha en alternativ tekstbeskrivelse", + "Image needs a text description": "Bildet trenger en tekstbeskrivelse", + "Info": "Informasjon", + "Issue {0} of {1}": "Utgave {0} av {1}", + "Keep this ID and remove all others": "Behold denne ID-en og fjern alle andre", + "Large text must have a contrast ratio of at least 3:1": "St\xf8rre tekst m\xe5 ha et kontrastforhold p\xe5 minst 3:1", + "Link": "Lenke", + "Make ID unique": "Gj\xf8r ID unik", + "Mark as decorative": "Marker som dekorativt", + "More info": "Mer info", + "Next issue": "Neste problem", + "No accessibility issues detected": "Ingen problemer med tilgjengelighet funnet", + "Or add a text description": "Eller legg til en tekstbeskrivelse", + "Previous issue": "Forrige problem", + "Provide caption": "Angi bildetekst", + "Provide table summary": "Angi tabellsammendrag", + "Remove all IDs": "Fjern alle ID-er", + "Remove this ID": "Fjern denne ID-en", + "Repair": "Reparer", + "Repair issue": "Reparer problem", + "Replace filename with a meaningful description": "Erstatt filnavnet med en meningsfull beskrivelse", + "Row": "Rad", + "Row group": "Radgruppe", + "Select a heading level": "Velg et overskriftsniv\xe5", + "Select header scope": "Velg overskriftsomfang", + "Shorten the text description": "Forkort tekstbeskrivelsen", + "Solution": "L\xf8sning", + "Success": "Fullf\xf8rt", + "Summary cannot be empty": "Sammendrag kan ikke v\xe6re tom", + "Table": "Tabell", + "Table caption and summary cannot have the same value": "Tabellens bildetekst og sammendrag kan ikke ha samme verdi", + "Table caption cannot be the same as the table summary": "Tabellens bildetekst kan ikke v\xe6re lik tabellens sammendrag.", + "Table elements must contain TR and TD tags": "Tabellelementer m\xe5 inneholde TR- og TD-tagger", + "Table headers must be applied to a row or a column": "Det m\xe5 angis tabelloverskrifter i en rad eller kolonne", + "Table summary cannot be the same as the table caption": "Tabellens sammendrag kan ikke v\xe6re lik tabellens bildetekst", + "Tables must have at least one header cell": "Tabeller m\xe5 ha minst \xe9n overskriftscelle", + "Tables must have captions": "Tabeller m\xe5 ha bildetekst", + "Text": "Tekst", + "Text description cannot be empty": "Tekstbeskrivelse kan ikke v\xe6re tom", + "Text description is too long": "Tekstbeskrivelsen er for lang", + "Text description should describe the image, not the filename": "Beskrivelsesteksten burde beskrive bildet, ikke filnavnet", + "Text description should not be the image filename": "Beskrivelsesteksten m\xe5 ikke v\xe6re bildefilnavnet", + "Text must have a contrast ratio of at least 4.5:1": "Tekst m\xe5 ha et kontrastforhold p\xe5 minst 4,5:1", + "Text must have a contrast ratio of at least 7:1": "Tekst m\xe5 ha et kontrastforhold p\xe5 minst 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Den valgte teksten ser ut som en liste. Lister skal formateres med bruk av en liste-tagg.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Dette bildet har motstridende informasjon. Enten fjern tekstbeskrivelsen for \xe5 gj\xf8re den dekorativ, eller fjern dekorasjonsmarkeringen.", + "This image is decorative": "Bildet er dekorativt", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Denne paragrafen ser ut som en overskrift. Hvis det er en overskrift, m\xe5 du velge et overskriftsniv\xe5.", + "Warning": "Advarsel", + "{0} characters (maximum {1} allowed)": "{0} tegn (maks {1} tillatt)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/nb_NO.js b/plugins/a11ychecker/langs/nb_NO.js new file mode 100644 index 00000000..76d9d81d --- /dev/null +++ b/plugins/a11ychecker/langs/nb_NO.js @@ -0,0 +1,80 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("nb-NO", { + '"{0}"': "\xab{0}\xbb", + "Accessibility Checker": "Tilgjengelighetssjekker", + "Accessibility checker...": "Tilgjengelighetssjekker ...", + "Add a text description": "Legg til en teksbeskrivelse", + "Add a text description for this image": "Legg til en tekstbeskrivelse for bildet", + "Adjacent links with the same URL should be merged into one link": "Tilst\xf8tende koblinger med samme nettadresse skal flettes sammen til \xe9n kobling.", + "Caption cannot be empty": "Bildetekst kan ikke v\xe6re tom.", + "Choose table header": "Velg tabelloverskrift", + "Click for more info": "Klikk for mer informasjon", + "Column": "Kolonne", + "Column group": "Kolonnegruppe", + "Complex tables should have summaries": "Komplekse tabeller b\xf8r ha sammendrag", + "Decorative images are not allowed. Please add a text description.": "Dekorative bilder er ikke tillatt. Legg til en tekstbeskrivelse.", + "Error": "Feil", + "Header column": "Overskriftskolonne", + "Header row": "Overskriftsrad", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Overskrifter m\xe5 brukes i sekvensiell rekkef\xf8lge. For eksempel: Overskrift 1 skal etterf\xf8lges av overskrift 2, ikke overskrift 3.", + "ID attribute must be unique": "ID-attributt m\xe5 v\xe6re unik", + "Ignore": "Ignorer", + "Image": "Bilde", + "Image must be marked as decorative or have an alternative text description": "Bildet m\xe5 v\xe6re markert som dekorativt eller ha en alternativ tekstbeskrivelse", + "Image needs a text description": "Bildet trenger en tekstbeskrivelse", + "Info": "Informasjon", + "Issue {0} of {1}": "Utgave {0} av {1}", + "Keep this ID and remove all others": "Behold denne ID-en og fjern alle andre", + "Large text must have a contrast ratio of at least 3:1": "St\xf8rre tekst m\xe5 ha et kontrastforhold p\xe5 minst 3:1", + "Link": "Lenke", + "Make ID unique": "Gj\xf8r ID unik", + "Mark as decorative": "Marker som dekorativt", + "More info": "Mer info", + "Next issue": "Neste problem", + "No accessibility issues detected": "Ingen problemer med tilgjengelighet funnet", + "Or add a text description": "Eller legg til en tekstbeskrivelse", + "Previous issue": "Forrige problem", + "Provide caption": "Angi bildetekst", + "Provide table summary": "Angi tabellsammendrag", + "Remove all IDs": "Fjern alle ID-er", + "Remove this ID": "Fjern denne ID-en", + "Repair": "Reparer", + "Repair issue": "Reparer problem", + "Replace filename with a meaningful description": "Erstatt filnavnet med en meningsfull beskrivelse", + "Row": "Rad", + "Row group": "Radgruppe", + "Select a heading level": "Velg et overskriftsniv\xe5", + "Select header scope": "Velg overskriftsomfang", + "Shorten the text description": "Forkort tekstbeskrivelsen", + "Solution": "L\xf8sning", + "Success": "Fullf\xf8rt", + "Summary cannot be empty": "Sammendrag kan ikke v\xe6re tom", + "Table": "Tabell", + "Table caption and summary cannot have the same value": "Tabellens bildetekst og sammendrag kan ikke ha samme verdi", + "Table caption cannot be the same as the table summary": "Tabellens bildetekst kan ikke v\xe6re lik tabellens sammendrag.", + "Table elements must contain TR and TD tags": "Tabellelementer m\xe5 inneholde TR- og TD-tagger", + "Table headers must be applied to a row or a column": "Det m\xe5 angis tabelloverskrifter i en rad eller kolonne", + "Table summary cannot be the same as the table caption": "Tabellens sammendrag kan ikke v\xe6re lik tabellens bildetekst", + "Tables must have at least one header cell": "Tabeller m\xe5 ha minst \xe9n overskriftscelle", + "Tables must have captions": "Tabeller m\xe5 ha bildetekst", + "Text": "Tekst", + "Text description cannot be empty": "Tekstbeskrivelse kan ikke v\xe6re tom", + "Text description is too long": "Tekstbeskrivelsen er for lang", + "Text description should describe the image, not the filename": "Beskrivelsesteksten burde beskrive bildet, ikke filnavnet", + "Text description should not be the image filename": "Beskrivelsesteksten m\xe5 ikke v\xe6re bildefilnavnet", + "Text must have a contrast ratio of at least 4.5:1": "Tekst m\xe5 ha et kontrastforhold p\xe5 minst 4,5:1", + "Text must have a contrast ratio of at least 7:1": "Tekst m\xe5 ha et kontrastforhold p\xe5 minst 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Den valgte teksten ser ut som en liste. Lister skal formateres med bruk av en liste-tagg.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Dette bildet har motstridende informasjon. Enten fjern tekstbeskrivelsen for \xe5 gj\xf8re den dekorativ, eller fjern dekorasjonsmarkeringen.", + "This image is decorative": "Bildet er dekorativt", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Denne paragrafen ser ut som en overskrift. Hvis det er en overskrift, m\xe5 du velge et overskriftsniv\xe5.", + "Warning": "Advarsel", + "{0} characters (maximum {1} allowed)": "{0} tegn (maks {1} tillatt)" +}); + +console.warn('TinyMCE language code "nb_NO" is deprecated, please use "nb-NO" instead.'); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/nl.js b/plugins/a11ychecker/langs/nl.js new file mode 100644 index 00000000..b7c87e65 --- /dev/null +++ b/plugins/a11ychecker/langs/nl.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("nl", { + '"{0}"': '"{0}"', + "Accessibility Checker": "Toegankelijkheidscontrole", + "Accessibility checker...": "Toegankelijkheidscontrole...", + "Add a text description": "Voeg een tekstbeschrijving toe", + "Add a text description for this image": "Voeg een tekstbeschrijving toe voor deze afbeelding", + "Adjacent links with the same URL should be merged into one link": "Naast elkaar staande links met dezelfde url moeten worden samengevoegd tot \xe9\xe9n hyperlink.", + "Caption cannot be empty": "Bijschrift mag niet leeg zijn", + "Choose table header": "Kies een tabelkop", + "Click for more info": "Klik voor meer informatie", + "Column": "Kolom", + "Column group": "Kolomgroep", + "Complex tables should have summaries": "Complexe tabellen moeten een samenvatting hebben", + "Decorative images are not allowed. Please add a text description.": "Decoratieve afbeeldingen zijn niet toegestaan. Voeg een tekstbeschrijving toe.", + "Error": "Fout", + "Header column": "Kolomkop", + "Header row": "Kolomrij", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Koppen moeten opeenvolgend worden toegepast. Bijvoorbeeld: kop 1 moet worden gevolgd door kop 2, niet door kop 3.", + "ID attribute must be unique": "ID-kenmerk moet uniek zijn", + "Ignore": "Negeren", + "Image": "Afbeelding", + "Image must be marked as decorative or have an alternative text description": "Afbeelding moet als decoratief gemarkeerd zijn of een alternatieve tekstbeschrijving hebben", + "Image needs a text description": "Afbeelding heeft een tekstbeschrijving nodig", + "Info": "Informatie", + "Issue {0} of {1}": "Probleem {0} van {1}", + "Keep this ID and remove all others": "Behoud deze ID en verwijder alle andere", + "Large text must have a contrast ratio of at least 3:1": "Grote tekst moet een contrastverhouding van 3:1 of hoger hebben", + "Link": "Link", + "Make ID unique": "Maak ID uniek", + "Mark as decorative": "Als decoratief markeren", + "More info": "Meer informatie", + "Next issue": "Volgend probleem", + "No accessibility issues detected": "Geen toegankelijkheidsproblemen gedetecteerd", + "Or add a text description": "Of voeg een tekstbeschrijving toe", + "Previous issue": "Vorig probleem", + "Provide caption": "Geef een bijschrift op", + "Provide table summary": "Geef een tabelsamenvatting op", + "Remove all IDs": "Verwijder alle ID's", + "Remove this ID": "Verwijder deze ID", + "Repair": "Herstellen", + "Repair issue": "Probleem oplossen", + "Replace filename with a meaningful description": "Vervang de bestandsnaam door een betekenisvolle beschrijving", + "Row": "Rij", + "Row group": "Rijgroep", + "Select a heading level": "Selecteer een kopniveau", + "Select header scope": "Selecteer bereik kop", + "Shorten the text description": "Maak de tekstbeschrijving korter", + "Solution": "Oplossing", + "Success": "Succes", + "Summary cannot be empty": "Samenvatting mag niet leeg zijn", + "Table": "Tabel", + "Table caption and summary cannot have the same value": "Bijschrift en samenvatting van tabel kunnen niet dezelfde waarde hebben", + "Table caption cannot be the same as the table summary": "Tabelbijschrift mag niet gelijk aan de samenvatting zijn", + "Table elements must contain TR and TD tags": "Tabelelementen moeten en tags bevatten", + "Table headers must be applied to a row or a column": "Tabelkoppen moeten op een rij of kolom worden toegepast", + "Table summary cannot be the same as the table caption": "Samenvatting tabel mag niet gelijk aan het bijschrift zijn", + "Tables must have at least one header cell": "Tabellen moeten minstens \xe9\xe9n kopcel bevatten", + "Tables must have captions": "Tabellen moeten een bijschrift hebben", + "Text": "Tekst", + "Text description cannot be empty": "Tekstbeschrijving mag niet leeg zijn", + "Text description is too long": "Tekstbeschrijving is te lang", + "Text description should describe the image, not the filename": "Tekstbeschrijving moet de afbeelding beschrijving, niet de bestandsnaam bevatten", + "Text description should not be the image filename": "Tekstbeschrijving moet niet de bestandsnaam van de afbeelding zijn", + "Text must have a contrast ratio of at least 4.5:1": "Tekst moet een contrastverhouding van 4,5:1 of hoger hebben", + "Text must have a contrast ratio of at least 7:1": "Tekst moet een contrastverhouding van 7:1 of hoger hebben", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "De geselecteerde tekst lijkt op een lijst Lijsten moeten worden opgemaakt met een lijst-tag.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Deze afbeelding heeft tegenstrijdige informatie. Verwijder de tekstbeschrijving om hem decoratief te maken, of verwijder de markering als decoratief.", + "This image is decorative": "Deze afbeelding is decoratief", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Deze paragraaf lijkt op een kop. Selecteer een kopniveau als het een kop is.", + "Warning": "Waarschuwing", + "{0} characters (maximum {1} allowed)": "{0} tekens (maximaal {1} toegestaan)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/pl.js b/plugins/a11ychecker/langs/pl.js new file mode 100644 index 00000000..9b299688 --- /dev/null +++ b/plugins/a11ychecker/langs/pl.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pl", { + '"{0}"': "\u201e{0}\u201d", + "Accessibility Checker": "Narz\u0119dzie do sprawdzania u\u0142atwie\u0144 dost\u0119pu", + "Accessibility checker...": "Narz\u0119dzie do sprawdzania u\u0142atwie\u0144 dost\u0119pu...", + "Add a text description": "Dodaj opis tekstowy", + "Add a text description for this image": "Dodaj opis tekstowy do tego obrazu", + "Adjacent links with the same URL should be merged into one link": "\u0141\u0105cza s\u0105siaduj\u0105ce o takim samym adresie URL powinny by\u0107 scalane w jedno \u0142\u0105cze", + "Caption cannot be empty": "Podpis nie mo\u017ce by\u0107 pusty", + "Choose table header": "Wybierz nag\u0142\xf3wek tabeli", + "Click for more info": "Kliknij, by uzyska\u0107 wi\u0119cej informacji", + "Column": "Kolumna", + "Column group": "Grupa kolumn", + "Complex tables should have summaries": "Tabela z\u0142o\u017cona powinna mie\u0107 podsumowanie zawarto\u015bci", + "Decorative images are not allowed. Please add a text description.": "Obrazy dekoracyjne s\u0105 niedozwolone. Dodaj opis tekstowy.", + "Error": "B\u0142\u0105d", + "Header column": "Kolumna nag\u0142\xf3wka", + "Header row": "Wiersz nag\u0142\xf3wka", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Nag\u0142\xf3wki musz\u0105 by\u0107 stosowane kolejno. Na przyk\u0142ad: po Nag\u0142\xf3wku 1 powinien nast\u0119powa\u0107 Nag\u0142\xf3wek 2, a nie Nag\u0142\xf3wek 3.", + "ID attribute must be unique": "Atrybut identyfikacyjny musi by\u0107 unikalny", + "Ignore": "Ignoruj", + "Image": "Obraz", + "Image must be marked as decorative or have an alternative text description": "Obraz musi by\u0107 oznaczony jako dekoracyjny lub mie\u0107 alternatywne opisy tekstowe", + "Image needs a text description": "Obraz wymaga opisu tekstowego", + "Info": "Informacje", + "Issue {0} of {1}": "Problem {0} z {1}", + "Keep this ID and remove all others": "Zachowaj ten identyfikator i usu\u0144 wszystkie pozosta\u0142e", + "Large text must have a contrast ratio of at least 3:1": "Du\u017cy tekst musi si\u0119 charakteryzowa\u0107 wsp\xf3\u0142czynnikiem kontrastu 3:1", + "Link": "\u0141\u0105cze", + "Make ID unique": "Zapewnij unikalno\u015b\u0107 identyfikatora", + "Mark as decorative": "Oznacz jako dekoracyjny", + "More info": "Wi\u0119cej informacji", + "Next issue": "Nast\u0119pny problem", + "No accessibility issues detected": "Nie wykryto \u017cadnych problem\xf3w z u\u0142atwieniami dost\u0119pu", + "Or add a text description": "Lub dodaj opis tekstowy", + "Previous issue": "Poprzedni problem", + "Provide caption": "Podaj podpis", + "Provide table summary": "Podaj podsumowanie tabeli", + "Remove all IDs": "Usu\u0144 wszystkie identyfikatory", + "Remove this ID": "Usu\u0144 ten identyfikator", + "Repair": "Napraw", + "Repair issue": "Wyeliminuj problem", + "Replace filename with a meaningful description": "Zast\u0105p nazw\u0119 pliku opisem", + "Row": "Wiersz", + "Row group": "Grupa wierszy", + "Select a heading level": "Wybierz poziom nag\u0142\xf3wka", + "Select header scope": "Wybierz zakres nag\u0142\xf3wka", + "Shorten the text description": "Skr\xf3\u0107 opis tekstowy", + "Solution": "Rozwi\u0105zanie", + "Success": "Powodzenie", + "Summary cannot be empty": "Podsumowanie nie mo\u017ce by\u0107 puste", + "Table": "Tabela", + "Table caption and summary cannot have the same value": "Podpis tabeli nie mo\u017ce mie\u0107 tej samej warto\u015bci, co podsumowanie", + "Table caption cannot be the same as the table summary": "Podpis tabeli nie mo\u017ce by\u0107 taki sam, jak podsumowanie tabeli", + "Table elements must contain TR and TD tags": "Elementy tabeli musz\u0105 zawiera\u0107 znaczniki TR i TD", + "Table headers must be applied to a row or a column": "Nag\u0142\xf3wki tabel musz\u0105 dotyczy\u0107 wierszy lub kolumn", + "Table summary cannot be the same as the table caption": "Podsumowanie tabeli nie mo\u017ce by\u0107 takie samo, jak podpis tabeli", + "Tables must have at least one header cell": "Tabela musi zawiera\u0107 co najmniej jedn\u0105 kom\xf3rk\u0119 nag\u0142\xf3wka", + "Tables must have captions": "Tabele musz\u0105 mie\u0107 podpisy", + "Text": "Tekst", + "Text description cannot be empty": "Opis tekstowy nie mo\u017ce by\u0107 pusty", + "Text description is too long": "Opis tekstowy jest zbyt d\u0142ugi", + "Text description should describe the image, not the filename": "Tekst opisu powinien opisywa\u0107 obraz, nie nazw\u0119 pliku", + "Text description should not be the image filename": "Tekst opisu nie powinien by\u0107 nazw\u0105 pliku obrazu", + "Text must have a contrast ratio of at least 4.5:1": "Tekst musi si\u0119 charakteryzowa\u0107 wsp\xf3\u0142czynnikiem kontrastu co najmniej 4,5:1", + "Text must have a contrast ratio of at least 7:1": "Tekst musi si\u0119 charakteryzowa\u0107 wsp\xf3\u0142czynnikiem kontrastu co najmniej 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Wybrany tekst wygl\u0105da jak lista. Listy powinny by\u0107 sformatowane z u\u017cyciem znacznika listy.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Ten obraz zawiera sprzeczne informacje. Usu\u0144 opis tekstowy, aby przekszta\u0142ci\u0107 w dekoracj\u0119 albo usu\u0144 oznaczenia dekoracji.", + "This image is decorative": "Ten obraz jest dekoracyjny", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Ten akapit wygl\u0105da jak nag\u0142\xf3wek. Je\u015bli jest to nag\u0142\xf3wek, nale\u017cy wybra\u0107 poziom nag\u0142\xf3wka.", + "Warning": "Ostrze\u017cenie", + "{0} characters (maximum {1} allowed)": "{0} znak\xf3w (maksymalna dozwolona liczba: {1})" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/pt-BR.js b/plugins/a11ychecker/langs/pt-BR.js new file mode 100644 index 00000000..05f993a8 --- /dev/null +++ b/plugins/a11ychecker/langs/pt-BR.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pt-BR", { + '"{0}"': '"{0}"', + "Accessibility Checker": "Verificador de Acessibilidade", + "Accessibility checker...": "Verificador de acessibilidade...", + "Add a text description": "Adicione um texto de descri\xe7\xe3o", + "Add a text description for this image": "Adicione um texto de descri\xe7\xe3o para esta imagem", + "Adjacent links with the same URL should be merged into one link": "Os links adjacentes com o mesmo URL devem ser mesclados em um s\xf3 link", + "Caption cannot be empty": "A legenda n\xe3o pode ficar em branco", + "Choose table header": "Escolha o cabe\xe7alho da tabela", + "Click for more info": "Clique para obter mais informa\xe7\xf5es", + "Column": "Coluna", + "Column group": "Grupo de colunas", + "Complex tables should have summaries": "As tabelas complexas devem ter resumos", + "Decorative images are not allowed. Please add a text description.": "Imagens decorativas n\xe3o s\xe3o permitidas. Por favor, adicione um texto de descri\xe7\xe3o.", + "Error": "Erro", + "Header column": "Coluna de cabe\xe7alho", + "Header row": "Linha de cabe\xe7alho", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Os t\xedtulos devem ser aplicados sequencialmente. Exemplo: o T\xedtulo 1 deve ser seguido do T\xedtulo 2, e n\xe3o do T\xedtulo 3.", + "ID attribute must be unique": "O atributo de ID deve ser \xfanico", + "Ignore": "Ignorar", + "Image": "Imagem", + "Image must be marked as decorative or have an alternative text description": "A imagem deve ser marcada como decorativa ou ter um texto de descri\xe7\xe3o alternativo", + "Image needs a text description": "A imagem precisa de um texto de descri\xe7\xe3o", + "Info": "Info", + "Issue {0} of {1}": "Problema {0} de {1}", + "Keep this ID and remove all others": "Manter este ID e remover todos os outros", + "Large text must have a contrast ratio of at least 3:1": "O texto grande deve ter uma rela\xe7\xe3o de contraste m\xednima de 3:1", + "Link": "Link", + "Make ID unique": "Tornar o ID \xfanico", + "Mark as decorative": "Marcar como decorativa", + "More info": "Mais informa\xe7\xf5es", + "Next issue": "Problema seguinte", + "No accessibility issues detected": "N\xe3o foi detectado nenhum problema de acessibilidade", + "Or add a text description": "Ou adicione um texto de descri\xe7\xe3o", + "Previous issue": "Problema anterior", + "Provide caption": "Forne\xe7a a legenda", + "Provide table summary": "Forne\xe7a um resumo para a tabela", + "Remove all IDs": "Remover todos os IDs", + "Remove this ID": "Remover este ID", + "Repair": "Reparar", + "Repair issue": "Reparar problema", + "Replace filename with a meaningful description": "Substitua o nome do arquivo por uma descri\xe7\xe3o \xfatil", + "Row": "Linha", + "Row group": "Grupo de linhas", + "Select a heading level": "Selecione um n\xedvel de t\xedtulo", + "Select header scope": "Selecione o escopo do cabe\xe7alho", + "Shorten the text description": "Diminua o texto de descri\xe7\xe3o", + "Solution": "Solu\xe7\xe3o", + "Success": "\xcaxito", + "Summary cannot be empty": "O resumo n\xe3o pode ficar em branco", + "Table": "Tabela", + "Table caption and summary cannot have the same value": "A legenda e o resumo da tabela n\xe3o podem ter o mesmo valor", + "Table caption cannot be the same as the table summary": "A legenda n\xe3o pode ser igual ao resumo da tabela", + "Table elements must contain TR and TD tags": "Os elementos da tabela devem conter tags tr e td", + "Table headers must be applied to a row or a column": "Os cabe\xe7alhos de tabela devem ser aplicados a uma linha ou coluna", + "Table summary cannot be the same as the table caption": "O resumo n\xe3o pode ser igual \xe0 legenda da tabela", + "Tables must have at least one header cell": "As tabelas devem ter pelo menos uma c\xe9lula de cabe\xe7alho", + "Tables must have captions": "As tabelas devem ter legendas", + "Text": "Texto", + "Text description cannot be empty": "O texto de descri\xe7\xe3o n\xe3o pode ficar em branco", + "Text description is too long": "O texto de descri\xe7\xe3o \xe9 muito longo", + "Text description should describe the image, not the filename": "O texto de descri\xe7\xe3o deve descrever a imagem, e n\xe3o o nome do arquivo", + "Text description should not be the image filename": "O texto de descri\xe7\xe3o n\xe3o deve ser o nome do arquivo de imagem", + "Text must have a contrast ratio of at least 4.5:1": "O texto deve ter uma rela\xe7\xe3o de contraste m\xednima de 4,5:1", + "Text must have a contrast ratio of at least 7:1": "O texto deve ter uma rela\xe7\xe3o de contraste de pelo menos 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "O texto selecionado parece ser uma lista. As listas devem ser formatadas usando-se uma tag de lista.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Esta imagem tem informa\xe7\xf5es conflitantes. Remova o texto de descri\xe7\xe3o para torn\xe1-la decorativa ou remova a marca\xe7\xe3o decorativa.", + "This image is decorative": "Esta imagem \xe9 decorativa", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Este par\xe1grafo parece ser um t\xedtulo. Se for um t\xedtulo, selecione um n\xedvel de t\xedtulo.", + "Warning": "Aviso", + "{0} characters (maximum {1} allowed)": "{0} caracteres (m\xe1ximo de {1})" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/pt-PT.js b/plugins/a11ychecker/langs/pt-PT.js new file mode 100644 index 00000000..d1b2ee2d --- /dev/null +++ b/plugins/a11ychecker/langs/pt-PT.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pt-PT", { + '"{0}"': '"{0}"', + "Accessibility Checker": "Verificador de Acessibilidade", + "Accessibility checker...": "Verificador de acessibilidade...", + "Add a text description": "Adicione um texto descritivo", + "Add a text description for this image": "Adicione um texto descritivo para esta imagem", + "Adjacent links with the same URL should be merged into one link": "As liga\xe7\xf5es adjacentes com o mesmo URL devem ser unidas numa s\xf3 liga\xe7\xe3o", + "Caption cannot be empty": "A legenda n\xe3o pode ficar em branco", + "Choose table header": "Escolha o cabe\xe7alho da tabela", + "Click for more info": "Clique para obter mais informa\xe7\xf5es", + "Column": "Coluna", + "Column group": "Grupo de colunas", + "Complex tables should have summaries": "As tabelas complexas devem ter resumos", + "Decorative images are not allowed. Please add a text description.": "N\xe3o s\xe3o permitidas imagens decorativas. Adicione um texto descritivo.", + "Error": "Erro", + "Header column": "Coluna do cabe\xe7alho", + "Header row": "Linha do cabe\xe7alho", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Os cabe\xe7alhos devem ser aplicados por ordem sequencial. Por exemplo: Cabe\xe7alho 1 deve ser seguido de Cabe\xe7alho 2, n\xe3o de Cabe\xe7alho 3.", + "ID attribute must be unique": "O atributo de ID tem de ser \xfanico", + "Ignore": "Ignorar", + "Image": "Imagem", + "Image must be marked as decorative or have an alternative text description": "A imagem deve ser assinalada como decorativa ou ter um texto descritivo alternativo", + "Image needs a text description": "A imagem requer um texto descritivo", + "Info": "Informa\xe7\xf5es", + "Issue {0} of {1}": "Edi\xe7\xe3o {0} de {1}", + "Keep this ID and remove all others": "Manter este ID e remover todos os outros", + "Large text must have a contrast ratio of at least 3:1": "O texto grande deve ter uma rela\xe7\xe3o de contraste m\xednima de 3:1", + "Link": "Liga\xe7\xe3o", + "Make ID unique": "Tornar o ID \xfanico", + "Mark as decorative": "Marcar como decorativa", + "More info": "Mais informa\xe7\xf5es", + "Next issue": "Problema seguinte", + "No accessibility issues detected": "N\xe3o foi detetado nenhum problema de acessibilidade", + "Or add a text description": "Ou adicione um texto descritivo", + "Previous issue": "Problema anterior", + "Provide caption": "Forne\xe7a a legenda", + "Provide table summary": "Forne\xe7a um resumo para a tabela", + "Remove all IDs": "Remover todos os ID", + "Remove this ID": "Remover este ID", + "Repair": "Repara\xe7\xe3o", + "Repair issue": "Reparar problema", + "Replace filename with a meaningful description": "Substitua o nome do ficheiro por uma descri\xe7\xe3o mais significativa", + "Row": "Linha", + "Row group": "Grupo de linhas", + "Select a heading level": "Selecione um n\xedvel de cabe\xe7alho", + "Select header scope": "Selecionar \xe2mbito do cabe\xe7alho", + "Shorten the text description": "Encurte o texto descritivo", + "Solution": "Solu\xe7\xe3o", + "Success": "\xcaxito", + "Summary cannot be empty": "O resumo n\xe3o pode ficar em branco", + "Table": "Tabela", + "Table caption and summary cannot have the same value": "A legenda e o resumo da tabela n\xe3o podem ter o mesmo valor", + "Table caption cannot be the same as the table summary": "A legenda da tabela n\xe3o pode ser igual ao resumo da tabela", + "Table elements must contain TR and TD tags": "Os elementos da tabela devem conter etiquetas TR e TD", + "Table headers must be applied to a row or a column": "Os cabe\xe7alhos da tabela t\xeam de ser aplicados numa linha ou numa coluna", + "Table summary cannot be the same as the table caption": "O resumo da tabela n\xe3o pode ser igual \xe0 legenda da tabela", + "Tables must have at least one header cell": "As tabelas devem ter pelo menos uma c\xe9lula de cabe\xe7alho", + "Tables must have captions": "As tabelas devem ter legendas", + "Text": "Texto", + "Text description cannot be empty": "O texto descritivo n\xe3o pode ficar em branco", + "Text description is too long": "O texto descritivo \xe9 demasiado longo", + "Text description should describe the image, not the filename": "O texto descritivo e n\xe3o o nome do ficheiro deve descrever a imagem", + "Text description should not be the image filename": "O texto descritivo n\xe3o deve ser o nome do ficheiro de imagem", + "Text must have a contrast ratio of at least 4.5:1": "O texto deve ter uma rela\xe7\xe3o de contraste m\xednima de 4.5:1", + "Text must have a contrast ratio of at least 7:1": "O texto deve ter uma rela\xe7\xe3o de contraste m\xednima de 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "O texto selecionado parece ser uma lista. As listas devem ser formatadas usando uma etiqueta de lista.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Esta imagem tem informa\xe7\xf5es conflituosas. Remova o texto descritivo para o tornar decorativo, ou remova a marca\xe7\xe3o de decorativo.", + "This image is decorative": "Esta imagem \xe9 decorativa", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Este par\xe1grafo parece um cabe\xe7alho. Se for um cabe\xe7alho, selecione um n\xedvel de cabe\xe7alho.", + "Warning": "Aviso", + "{0} characters (maximum {1} allowed)": "{0} caracteres (\xe9 permitido um m\xe1ximo de {1})" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/pt_BR.js b/plugins/a11ychecker/langs/pt_BR.js new file mode 100644 index 00000000..0b9d912d --- /dev/null +++ b/plugins/a11ychecker/langs/pt_BR.js @@ -0,0 +1,80 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pt-BR", { + '"{0}"': '"{0}"', + "Accessibility Checker": "Verificador de Acessibilidade", + "Accessibility checker...": "Verificador de acessibilidade...", + "Add a text description": "Adicione um texto de descri\xe7\xe3o", + "Add a text description for this image": "Adicione um texto de descri\xe7\xe3o para esta imagem", + "Adjacent links with the same URL should be merged into one link": "Os links adjacentes com o mesmo URL devem ser mesclados em um s\xf3 link", + "Caption cannot be empty": "A legenda n\xe3o pode ficar em branco", + "Choose table header": "Escolha o cabe\xe7alho da tabela", + "Click for more info": "Clique para obter mais informa\xe7\xf5es", + "Column": "Coluna", + "Column group": "Grupo de colunas", + "Complex tables should have summaries": "As tabelas complexas devem ter resumos", + "Decorative images are not allowed. Please add a text description.": "Imagens decorativas n\xe3o s\xe3o permitidas. Por favor, adicione um texto de descri\xe7\xe3o.", + "Error": "Erro", + "Header column": "Coluna de cabe\xe7alho", + "Header row": "Linha de cabe\xe7alho", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Os t\xedtulos devem ser aplicados sequencialmente. Exemplo: o T\xedtulo 1 deve ser seguido do T\xedtulo 2, e n\xe3o do T\xedtulo 3.", + "ID attribute must be unique": "O atributo de ID deve ser \xfanico", + "Ignore": "Ignorar", + "Image": "Imagem", + "Image must be marked as decorative or have an alternative text description": "A imagem deve ser marcada como decorativa ou ter um texto de descri\xe7\xe3o alternativo", + "Image needs a text description": "A imagem precisa de um texto de descri\xe7\xe3o", + "Info": "Info", + "Issue {0} of {1}": "Problema {0} de {1}", + "Keep this ID and remove all others": "Manter este ID e remover todos os outros", + "Large text must have a contrast ratio of at least 3:1": "O texto grande deve ter uma rela\xe7\xe3o de contraste m\xednima de 3:1", + "Link": "Link", + "Make ID unique": "Tornar o ID \xfanico", + "Mark as decorative": "Marcar como decorativa", + "More info": "Mais informa\xe7\xf5es", + "Next issue": "Problema seguinte", + "No accessibility issues detected": "N\xe3o foi detectado nenhum problema de acessibilidade", + "Or add a text description": "Ou adicione um texto de descri\xe7\xe3o", + "Previous issue": "Problema anterior", + "Provide caption": "Forne\xe7a a legenda", + "Provide table summary": "Forne\xe7a um resumo para a tabela", + "Remove all IDs": "Remover todos os IDs", + "Remove this ID": "Remover este ID", + "Repair": "Reparar", + "Repair issue": "Reparar problema", + "Replace filename with a meaningful description": "Substitua o nome do arquivo por uma descri\xe7\xe3o \xfatil", + "Row": "Linha", + "Row group": "Grupo de linhas", + "Select a heading level": "Selecione um n\xedvel de t\xedtulo", + "Select header scope": "Selecione o escopo do cabe\xe7alho", + "Shorten the text description": "Diminua o texto de descri\xe7\xe3o", + "Solution": "Solu\xe7\xe3o", + "Success": "\xcaxito", + "Summary cannot be empty": "O resumo n\xe3o pode ficar em branco", + "Table": "Tabela", + "Table caption and summary cannot have the same value": "A legenda e o resumo da tabela n\xe3o podem ter o mesmo valor", + "Table caption cannot be the same as the table summary": "A legenda n\xe3o pode ser igual ao resumo da tabela", + "Table elements must contain TR and TD tags": "Os elementos da tabela devem conter tags tr e td", + "Table headers must be applied to a row or a column": "Os cabe\xe7alhos de tabela devem ser aplicados a uma linha ou coluna", + "Table summary cannot be the same as the table caption": "O resumo n\xe3o pode ser igual \xe0 legenda da tabela", + "Tables must have at least one header cell": "As tabelas devem ter pelo menos uma c\xe9lula de cabe\xe7alho", + "Tables must have captions": "As tabelas devem ter legendas", + "Text": "Texto", + "Text description cannot be empty": "O texto de descri\xe7\xe3o n\xe3o pode ficar em branco", + "Text description is too long": "O texto de descri\xe7\xe3o \xe9 muito longo", + "Text description should describe the image, not the filename": "O texto de descri\xe7\xe3o deve descrever a imagem, e n\xe3o o nome do arquivo", + "Text description should not be the image filename": "O texto de descri\xe7\xe3o n\xe3o deve ser o nome do arquivo de imagem", + "Text must have a contrast ratio of at least 4.5:1": "O texto deve ter uma rela\xe7\xe3o de contraste m\xednima de 4,5:1", + "Text must have a contrast ratio of at least 7:1": "O texto deve ter uma rela\xe7\xe3o de contraste de pelo menos 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "O texto selecionado parece ser uma lista. As listas devem ser formatadas usando-se uma tag de lista.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Esta imagem tem informa\xe7\xf5es conflitantes. Remova o texto de descri\xe7\xe3o para torn\xe1-la decorativa ou remova a marca\xe7\xe3o decorativa.", + "This image is decorative": "Esta imagem \xe9 decorativa", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Este par\xe1grafo parece ser um t\xedtulo. Se for um t\xedtulo, selecione um n\xedvel de t\xedtulo.", + "Warning": "Aviso", + "{0} characters (maximum {1} allowed)": "{0} caracteres (m\xe1ximo de {1})" +}); + +console.warn('TinyMCE language code "pt_BR" is deprecated, please use "pt-BR" instead.'); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/pt_PT.js b/plugins/a11ychecker/langs/pt_PT.js new file mode 100644 index 00000000..931f457c --- /dev/null +++ b/plugins/a11ychecker/langs/pt_PT.js @@ -0,0 +1,80 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pt-PT", { + '"{0}"': '"{0}"', + "Accessibility Checker": "Verificador de Acessibilidade", + "Accessibility checker...": "Verificador de acessibilidade...", + "Add a text description": "Adicione um texto descritivo", + "Add a text description for this image": "Adicione um texto descritivo para esta imagem", + "Adjacent links with the same URL should be merged into one link": "As liga\xe7\xf5es adjacentes com o mesmo URL devem ser unidas numa s\xf3 liga\xe7\xe3o", + "Caption cannot be empty": "A legenda n\xe3o pode ficar em branco", + "Choose table header": "Escolha o cabe\xe7alho da tabela", + "Click for more info": "Clique para obter mais informa\xe7\xf5es", + "Column": "Coluna", + "Column group": "Grupo de colunas", + "Complex tables should have summaries": "As tabelas complexas devem ter resumos", + "Decorative images are not allowed. Please add a text description.": "N\xe3o s\xe3o permitidas imagens decorativas. Adicione um texto descritivo.", + "Error": "Erro", + "Header column": "Coluna do cabe\xe7alho", + "Header row": "Linha do cabe\xe7alho", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Os cabe\xe7alhos devem ser aplicados por ordem sequencial. Por exemplo: Cabe\xe7alho 1 deve ser seguido de Cabe\xe7alho 2, n\xe3o de Cabe\xe7alho 3.", + "ID attribute must be unique": "O atributo de ID tem de ser \xfanico", + "Ignore": "Ignorar", + "Image": "Imagem", + "Image must be marked as decorative or have an alternative text description": "A imagem deve ser assinalada como decorativa ou ter um texto descritivo alternativo", + "Image needs a text description": "A imagem requer um texto descritivo", + "Info": "Informa\xe7\xf5es", + "Issue {0} of {1}": "Edi\xe7\xe3o {0} de {1}", + "Keep this ID and remove all others": "Manter este ID e remover todos os outros", + "Large text must have a contrast ratio of at least 3:1": "O texto grande deve ter uma rela\xe7\xe3o de contraste m\xednima de 3:1", + "Link": "Liga\xe7\xe3o", + "Make ID unique": "Tornar o ID \xfanico", + "Mark as decorative": "Marcar como decorativa", + "More info": "Mais informa\xe7\xf5es", + "Next issue": "Problema seguinte", + "No accessibility issues detected": "N\xe3o foi detetado nenhum problema de acessibilidade", + "Or add a text description": "Ou adicione um texto descritivo", + "Previous issue": "Problema anterior", + "Provide caption": "Forne\xe7a a legenda", + "Provide table summary": "Forne\xe7a um resumo para a tabela", + "Remove all IDs": "Remover todos os ID", + "Remove this ID": "Remover este ID", + "Repair": "Repara\xe7\xe3o", + "Repair issue": "Reparar problema", + "Replace filename with a meaningful description": "Substitua o nome do ficheiro por uma descri\xe7\xe3o mais significativa", + "Row": "Linha", + "Row group": "Grupo de linhas", + "Select a heading level": "Selecione um n\xedvel de cabe\xe7alho", + "Select header scope": "Selecionar \xe2mbito do cabe\xe7alho", + "Shorten the text description": "Encurte o texto descritivo", + "Solution": "Solu\xe7\xe3o", + "Success": "\xcaxito", + "Summary cannot be empty": "O resumo n\xe3o pode ficar em branco", + "Table": "Tabela", + "Table caption and summary cannot have the same value": "A legenda e o resumo da tabela n\xe3o podem ter o mesmo valor", + "Table caption cannot be the same as the table summary": "A legenda da tabela n\xe3o pode ser igual ao resumo da tabela", + "Table elements must contain TR and TD tags": "Os elementos da tabela devem conter etiquetas TR e TD", + "Table headers must be applied to a row or a column": "Os cabe\xe7alhos da tabela t\xeam de ser aplicados numa linha ou numa coluna", + "Table summary cannot be the same as the table caption": "O resumo da tabela n\xe3o pode ser igual \xe0 legenda da tabela", + "Tables must have at least one header cell": "As tabelas devem ter pelo menos uma c\xe9lula de cabe\xe7alho", + "Tables must have captions": "As tabelas devem ter legendas", + "Text": "Texto", + "Text description cannot be empty": "O texto descritivo n\xe3o pode ficar em branco", + "Text description is too long": "O texto descritivo \xe9 demasiado longo", + "Text description should describe the image, not the filename": "O texto descritivo e n\xe3o o nome do ficheiro deve descrever a imagem", + "Text description should not be the image filename": "O texto descritivo n\xe3o deve ser o nome do ficheiro de imagem", + "Text must have a contrast ratio of at least 4.5:1": "O texto deve ter uma rela\xe7\xe3o de contraste m\xednima de 4.5:1", + "Text must have a contrast ratio of at least 7:1": "O texto deve ter uma rela\xe7\xe3o de contraste m\xednima de 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "O texto selecionado parece ser uma lista. As listas devem ser formatadas usando uma etiqueta de lista.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Esta imagem tem informa\xe7\xf5es conflituosas. Remova o texto descritivo para o tornar decorativo, ou remova a marca\xe7\xe3o de decorativo.", + "This image is decorative": "Esta imagem \xe9 decorativa", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Este par\xe1grafo parece um cabe\xe7alho. Se for um cabe\xe7alho, selecione um n\xedvel de cabe\xe7alho.", + "Warning": "Aviso", + "{0} characters (maximum {1} allowed)": "{0} caracteres (\xe9 permitido um m\xe1ximo de {1})" +}); + +console.warn('TinyMCE language code "pt_PT" is deprecated, please use "pt-PT" instead.'); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/ro.js b/plugins/a11ychecker/langs/ro.js new file mode 100644 index 00000000..39a3fe55 --- /dev/null +++ b/plugins/a11ychecker/langs/ro.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ro", { + '"{0}"': '"{0}"', + "Accessibility Checker": "Verificator accesibilitate", + "Accessibility checker...": "Verificator accesibilitate...", + "Add a text description": "Ad\u0103uga\u021bi o descriere text", + "Add a text description for this image": "Ad\u0103uga\u021bi o descriere text pentru aceast\u0103 imagine", + "Adjacent links with the same URL should be merged into one link": "Link-urile adiacente cu aceea\u0219i adres\u0103 URL ar trebui s\u0103 fie grupate \xeentr-un singur link", + "Caption cannot be empty": "C\xe2mpul cu legenda este obligatoriu", + "Choose table header": "Alege\u021bi antetul tabelului", + "Click for more info": "Click aici pentru mai multe informa\u021bii", + "Column": "Coloan\u0103", + "Column group": "Grup de coloane", + "Complex tables should have summaries": "Tabelele complexe ar trebui s\u0103 aib\u0103 rezumate", + "Decorative images are not allowed. Please add a text description.": "Imaginile decorative nu sunt permise. Ad\u0103uga\u021bi o descriere text.", + "Error": "Eroare", + "Header column": "Coloan\u0103 antet", + "Header row": "R\xe2nd antet", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Anteturile trebuie s\u0103 fie aplicate \xeen ordine secven\u021bial\u0103. Spre exemplu: Antetul 1 ar trebui s\u0103 fie urmat de Antetul 2 \u0219i nu de Antetul 3.", + "ID attribute must be unique": "Atributul ID trebuie s\u0103 fie unic", + "Ignore": "Ignorare", + "Image": "Imagine", + "Image must be marked as decorative or have an alternative text description": "Imaginea trebuie marcat\u0103 ca decorativ\u0103 sau trebuie s\u0103 aib\u0103 o descriere text alternativ\u0103", + "Image needs a text description": "Imaginea necesit\u0103 o descriere text", + "Info": "Info", + "Issue {0} of {1}": "Problema {0} din {1}", + "Keep this ID and remove all others": "P\u0103stra\u021bi acest ID \u0219i elimina\u021bi-le pe celelalte", + "Large text must have a contrast ratio of at least 3:1": "Textul scris cu font mare trebuie s\u0103 aib\u0103 un raport de contrast de cel pu\u021bin 3:1", + "Link": "Link", + "Make ID unique": "Face\u021bi ID-ul unic", + "Mark as decorative": "Marca\u021bi imaginea ca decorativ\u0103", + "More info": "Mai multe informa\u021bii", + "Next issue": "Problema urm\u0103toare", + "No accessibility issues detected": "Nu au fost detectate probleme de accesibilitate", + "Or add a text description": "Sau ad\u0103uga\u021bi o descriere text", + "Previous issue": "Problema anterioar\u0103", + "Provide caption": "Introduce\u021bi titlul", + "Provide table summary": "Introduce\u021bi rezumatul tabelului", + "Remove all IDs": "Elimina\u021bi toate ID-urile", + "Remove this ID": "Elimina\u021bi acest ID", + "Repair": "Reparare", + "Repair issue": "Rezolva\u021bi problema", + "Replace filename with a meaningful description": "\xcenlocui\u021bi numele fi\u0219ierului cu o descriere sugestiv\u0103", + "Row": "R\xe2nd", + "Row group": "Grup de r\xe2nduri", + "Select a heading level": "Selecta\u021bi un nivel de titlu", + "Select header scope": "Selecta\u021bi domeniul antetului", + "Shorten the text description": "Scurta\u021bi descrierea \ntext", + "Solution": "Solu\u021bie", + "Success": "A\u021bi reu\u0219it", + "Summary cannot be empty": "C\xe2mpul cu rezumatul tabelului este obligatoriu", + "Table": "Tabel", + "Table caption and summary cannot have the same value": "Legenda \u0219i rezumatul tabelului nu pot avea aceea\u0219i valoare", + "Table caption cannot be the same as the table summary": "Legenda tabelului nu poate fi aceea\u0219i cu rezumatul tabelului", + "Table elements must contain TR and TD tags": "Elementele tabelului trebuie s\u0103 con\u021bin\u0103 etichete TR \u0219i TD", + "Table headers must be applied to a row or a column": "Anteturile tabelului trebuie s\u0103 fie aplicate unui r\xe2nd sau unei coloane", + "Table summary cannot be the same as the table caption": "Rezumatul tabelului nu poate fi acela\u0219i cu legenda tabelului", + "Tables must have at least one header cell": "Tabelele trebuie s\u0103 aib\u0103 cel pu\u021bin o celul\u0103 tip antet", + "Tables must have captions": "Tabelele trebuie s\u0103 aib\u0103 legende", + "Text": "Text", + "Text description cannot be empty": "Descrierea text nu poate fi necompletat\u0103", + "Text description is too long": "Descrierea text este prea lung\u0103", + "Text description should describe the image, not the filename": "Descrierea text trebuie s\u0103 descrie imaginea, nu numele fi\u0219ierului", + "Text description should not be the image filename": "Descrierea text nu trebuie s\u0103 coincid\u0103 cu numele fi\u0219ierului", + "Text must have a contrast ratio of at least 4.5:1": "Textul trebuie s\u0103 aib\u0103 un raport de contrast de cel pu\u021bin 4,5:1", + "Text must have a contrast ratio of at least 7:1": "Textul trebuie s\u0103 aib\u0103 un raport de contrast de cel pu\u021bin 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Textul selectat pare s\u0103 fie o list\u0103. Listele trebuie formatate folosind o etichet\u0103 de list\u0103.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Imaginea are informa\u021bii conflictuale. Elimina\u021bi descrierea text pentru a o transforma \xeen imagine decorativ\u0103 sau elimina\u021bi marcajul de imagine decorativ\u0103.", + "This image is decorative": "Aceast\u0103 imagine este decorativ\u0103", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Acest paragraf arat\u0103 ca un antet. Dac\u0103 este un antet, v\u0103 rug\u0103m s\u0103 selecta\u021bi un nivel de antet.", + "Warning": "Avertisment", + "{0} characters (maximum {1} allowed)": "{0} caractere (maxim {1} permise)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/ru.js b/plugins/a11ychecker/langs/ru.js new file mode 100644 index 00000000..acedd009 --- /dev/null +++ b/plugins/a11ychecker/langs/ru.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ru", { + '"{0}"': "\xab{0}\xbb", + "Accessibility Checker": "\u0421\u0440\u0435\u0434\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438", + "Accessibility checker...": "\u0421\u0440\u0435\u0434\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438", + "Add a text description": "\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0442\u0435\u043a\u0441\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f", + "Add a text description for this image": "\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0442\u0435\u043a\u0441\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f", + "Adjacent links with the same URL should be merged into one link": "\u0421\u043c\u0435\u0436\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0441 \u043e\u0434\u043d\u0438\u043c URL \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u0432 \u043e\u0434\u043d\u0443 \u0441\u0441\u044b\u043b\u043a\u0443", + "Caption cannot be empty": "\u041f\u043e\u043b\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c", + "Choose table header": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0442\u0430\u0431\u043b\u0438\u0446\u044b", + "Click for more info": "\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438", + "Column": "\u0421\u0442\u043e\u043b\u0431\u0435\u0446", + "Column group": "\u0413\u0440\u0443\u043f\u043f\u0430 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432", + "Complex tables should have summaries": "\u0421\u043b\u043e\u0436\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0442\u044c\u0441\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c\u0438", + "Decorative images are not allowed. Please add a text description.": "\u0414\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u044b. \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0442\u0435\u043a\u0441\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f.", + "Error": "\u041e\u0448\u0438\u0431\u043a\u0430", + "Header column": "\u0421\u0442\u043e\u043b\u0431\u0435\u0446 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430", + "Header row": "\u0421\u0442\u0440\u043e\u043a\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 1 \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u0434\u0442\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 2, \u043d\u043e \u043d\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3.", + "ID attribute must be unique": "\u0410\u0442\u0440\u0438\u0431\u0443\u0442 ID \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c", + "Ignore": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c", + "Image": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435", + "Image must be marked as decorative or have an alternative text description": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043e \u043a\u0430\u043a \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u0438\u043b\u0438 \u0438\u043c\u0435\u0442\u044c \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f", + "Image needs a text description": "\u0414\u043b\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f", + "Info": "\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f", + "Issue {0} of {1}": "\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 {0} \u0438\u0437 {1}", + "Keep this ID and remove all others": "\u041e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u043e\u0442 ID \u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435", + "Large text must have a contrast ratio of at least 3:1": "\u041a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u043a\u0440\u0443\u043f\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 3:1", + "Link": "\u0421\u0441\u044b\u043b\u043a\u0430", + "Make ID unique": "\u0421\u0434\u0435\u043b\u0430\u0442\u044c ID \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c", + "Mark as decorative": "\u041f\u043e\u043c\u0435\u0442\u0438\u0442\u044c \u043a\u0430\u043a \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0435", + "More info": "\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435", + "Next issue": "\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430", + "No accessibility issues detected": "\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e", + "Or add a text description": "\u0418\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0442\u0435\u043a\u0441\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f", + "Previous issue": "\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430", + "Provide caption": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u044c", + "Provide table summary": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b", + "Remove all IDs": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 ID", + "Remove this ID": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 ID", + "Repair": "\u0418\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c", + "Repair issue": "\u0418\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443", + "Replace filename with a meaningful description": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u0435 \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u043c", + "Row": "\u0421\u0442\u0440\u043e\u043a\u0430", + "Row group": "\u0413\u0440\u0443\u043f\u043f\u0430 \u0441\u0442\u0440\u043e\u043a", + "Select a heading level": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430", + "Select header scope": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430", + "Shorten the text description": "\u0421\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u0435 \u0442\u0435\u043a\u0441\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f", + "Solution": "\u0420\u0435\u0448\u0435\u043d\u0438\u0435", + "Success": "\u0423\u0441\u043f\u0435\u0448\u043d\u043e", + "Summary cannot be empty": "\u041f\u043e\u043b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c", + "Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430", + "Table caption and summary cannot have the same value": "\u041f\u043e\u0434\u043f\u0438\u0441\u044c \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435", + "Table caption cannot be the same as the table summary": "\u041f\u043e\u0434\u043f\u0438\u0441\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u044b", + "Table elements must contain TR and TD tags": "\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u044d\u0433\u0438 TR \u0438 TD", + "Table headers must be applied to a row or a column": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u0438\u043b\u0438 \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435", + "Table summary cannot be the same as the table caption": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u043f\u043e\u0434\u043f\u0438\u0441\u044c\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u044b", + "Tables must have at least one header cell": "\u0422\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043c\u0435\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u0443 \u044f\u0447\u0435\u0439\u043a\u0443 \u0441 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u043c", + "Tables must have captions": "\u0422\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043c\u0435\u0442\u044c \u043f\u043e\u0434\u043f\u0438\u0441\u0438", + "Text": "\u0422\u0435\u043a\u0441\u0442", + "Text description cannot be empty": "\u0422\u0435\u043a\u0441\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c", + "Text description is too long": "\u0422\u0435\u043a\u0441\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043b\u0438\u043d\u043d\u044b\u0439", + "Text description should describe the image, not the filename": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u0430 \u043d\u0435 \u0432 \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430", + "Text description should not be the image filename": "\u0422\u0435\u043a\u0441\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \u0444\u0430\u0439\u043b\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f", + "Text must have a contrast ratio of at least 4.5:1": "\u041a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 4,5:1", + "Text must have a contrast ratio of at least 7:1": "\u041a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u0412\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043f\u0438\u0441\u043a\u043e\u043c. \u0421\u043f\u0438\u0441\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0442\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0442\u044d\u0433\u0430 \u0441\u043f\u0438\u0441\u043a\u0430.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0432\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e. \u041b\u0438\u0431\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u0442\u0435\u043a\u0441\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0438 \u0441\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c, \u043b\u0438\u0431\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u043f\u043e\u043c\u0435\u0442\u043a\u0443 \xab\u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0435\xbb.", + "This image is decorative": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u042d\u0442\u043e\u0442 \u0430\u0431\u0437\u0430\u0446 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u043c. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0442\u0430\u043a, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430.", + "Warning": "\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435", + "{0} characters (maximum {1} allowed)": "{0} \u0441\u0438\u043c\u0432. (\u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c {1})" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/sk.js b/plugins/a11ychecker/langs/sk.js new file mode 100644 index 00000000..65cc3d3c --- /dev/null +++ b/plugins/a11ychecker/langs/sk.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sk", { + '"{0}"': "\u201e{0}\u201c", + "Accessibility Checker": "Kontrola zjednodu\u0161enia ovl\xe1dania", + "Accessibility checker...": "Kontrola dostupnosti...", + "Add a text description": "Pridajte textov\xfd opis", + "Add a text description for this image": "Prida\u0165 textov\xfd opis tohto obr\xe1zka", + "Adjacent links with the same URL should be merged into one link": "Susedn\xe9 prepojenia s\xa0rovnakou adresou URL treba zl\xfa\u010di\u0165 do jedn\xe9ho prepojenia", + "Caption cannot be empty": "Titulok nem\xf4\u017ee by\u0165 pr\xe1zdny", + "Choose table header": "Vyberte hlavi\u010dku tabu\u013eky", + "Click for more info": "Kliknut\xedm zobraz\xedte \u010fal\u0161ie inform\xe1cie", + "Column": "St\u013apec", + "Column group": "Skupina st\u013apcov", + "Complex tables should have summaries": "Zlo\u017eit\xe9 tabu\u013eky maj\xfa obsahova\u0165 zhrnutia", + "Decorative images are not allowed. Please add a text description.": "Dekorat\xedvne obr\xe1zky nie s\xfa povolen\xe9. Pridajte textov\xfd opis.", + "Error": "Chyba", + "Header column": "Z\xe1hlavie st\u013apca", + "Header row": "Riadok st\u013apca", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Nadpisy musia by\u0165 pou\u017eit\xe9 v\xa0postupnom porad\xed. Napr\xedklad: po Nadpise 1 m\xe1 nasledova\u0165 Nadpis 2, nie nadpis 3.", + "ID attribute must be unique": "Atrib\xfat ID mus\xed by\u0165 jedine\u010dn\xfd", + "Ignore": "Ignorova\u0165", + "Image": "Obr\xe1zok", + "Image must be marked as decorative or have an alternative text description": "Obr\xe1zok mus\xed by\u0165 ozna\u010den\xfd ako dekorat\xedvny alebo mus\xed ma\u0165 alternat\xedvny textov\xfd opis", + "Image needs a text description": "Obr\xe1zok potrebuje textov\xfd opis", + "Info": "Inform\xe1cie", + "Issue {0} of {1}": "Probl\xe9m {0} z {1}", + "Keep this ID and remove all others": "Ponecha\u0165 toto ID a odstr\xe1ni\u0165 v\u0161etky ostatn\xe9", + "Large text must have a contrast ratio of at least 3:1": "Ve\u013ek\xfd text mus\xed ma\u0165 kontrastn\xfd pomer aspo\u0148 3 : 1", + "Link": "Odkaz", + "Make ID unique": "Vytvori\u0165 jedine\u010dn\xe9 ID", + "Mark as decorative": "Ozna\u010di\u0165 ako dekorat\xedvny", + "More info": "Viac inform\xe1ci\xed", + "Next issue": "Nasleduj\xfaci probl\xe9m", + "No accessibility issues detected": "Nezistili sa \u017eiadne probl\xe9my so zjednodu\u0161en\xedm ovl\xe1dania", + "Or add a text description": "Alebo pridajte textov\xfd popis", + "Previous issue": "Predch\xe1dzaj\xfaci probl\xe9m", + "Provide caption": "Uve\u010fte titulok", + "Provide table summary": "Uve\u010fte zhrnutie tabu\u013eky", + "Remove all IDs": "Odstr\xe1ni\u0165 v\u0161etky ID", + "Remove this ID": "Odstr\xe1ni\u0165 toto ID", + "Repair": "Opravi\u0165", + "Repair issue": "Opravi\u0165 probl\xe9m", + "Replace filename with a meaningful description": "Nahra\u010fte n\xe1zov s\xfaboru zmyslupln\xfdm popisom", + "Row": "Riadok", + "Row group": "Skupina riadkov", + "Select a heading level": "Zvo\u013ete \xfarove\u0148 nadpisu", + "Select header scope": "Vyberte rozsah hlavi\u010dky", + "Shorten the text description": "Skr\xe1\u0165te textov\xfd opis", + "Solution": "Rie\u0161enie", + "Success": "\xdaspech", + "Summary cannot be empty": "Zhrnutie nem\xf4\u017ee by\u0165 pr\xe1zdne", + "Table": "Tabu\u013eka", + "Table caption and summary cannot have the same value": "Titulok tabu\u013eky a\xa0zhrnutie nem\xf4\u017eu ma\u0165 rovnak\xfa hodnotu", + "Table caption cannot be the same as the table summary": "Titulok tabu\u013eky nem\xf4\u017ee by\u0165 rovnak\xfd ako zhrnutie tabu\u013eky", + "Table elements must contain TR and TD tags": "Prvky tabu\u013eky musia obsahova\u0165 zna\u010dky TR a TD", + "Table headers must be applied to a row or a column": "Hlavi\u010dky tabu\u013eky treba aplikova\u0165 na riadok alebo st\u013apec", + "Table summary cannot be the same as the table caption": "Zhrnutie tabu\u013eky nem\xf4\u017ee by\u0165 rovnak\xe9 ako titulok tabu\u013eky", + "Tables must have at least one header cell": "Tabu\u013eky musia ma\u0165 aspo\u0148 jednu hlavi\u010dkov\xfa bunku", + "Tables must have captions": "Tabu\u013eky nesm\xfa ma\u0165 titulky", + "Text": "Text", + "Text description cannot be empty": "Textov\xfd popis nem\xf4\u017ee by\u0165 pr\xe1zdny", + "Text description is too long": "Textov\xfd popis je pr\xedli\u0161 dlh\xfd", + "Text description should describe the image, not the filename": "Textov\xfd popis by mal opisova\u0165 obr\xe1zok, nie n\xe1zov s\xfaboru", + "Text description should not be the image filename": "Textov\xfd popis by nemal by\u0165 n\xe1zvom s\xfaboru obr\xe1zka", + "Text must have a contrast ratio of at least 4.5:1": "Text mus\xed ma\u0165 kontrastn\xfd pomer aspo\u0148 4,5 : 1", + "Text must have a contrast ratio of at least 7:1": "Text mus\xed ma\u0165 kontrastn\xfd pomer aspo\u0148 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Zvolen\xfd text sa zd\xe1 by\u0165 zoznamom. Zoznamy treba form\xe1tova\u0165 pomocou zna\u010dky zoznamu.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Tento obr\xe1zok obsahuje protichodn\xe9 inform\xe1cie. Bu\u010f odstr\xe1\u0148te textov\xfd popis, aby bol dekorat\xedvny, alebo odstr\xe1\u0148te dekorat\xedvne ozna\u010denie.", + "This image is decorative": "Tento obr\xe1zok je dekorat\xedvny", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Tento odsek vyzer\xe1 ako nadpis. Ak je to nadpis, zvo\u013ete \xfarove\u0148 nadpisu.", + "Warning": "Upozornenie", + "{0} characters (maximum {1} allowed)": "po\u010det znakov: {0} (max. po\u010det znakov: {1})" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/sl-SI.js b/plugins/a11ychecker/langs/sl-SI.js new file mode 100644 index 00000000..f1f716c8 --- /dev/null +++ b/plugins/a11ychecker/langs/sl-SI.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sl-SI", { + '"{0}"': "\xbb{0}\xab", + "Accessibility Checker": "Pregledovalnik dostopnosti", + "Accessibility checker...": "Pregledovalnik dostopnosti ...", + "Add a text description": "Dodajte besedilni opis", + "Add a text description for this image": "Dodajte besedilni opis za to sliko", + "Adjacent links with the same URL should be merged into one link": "Sosednje povezave z istim URL-jem morajo biti zdru\u017eene v eno povezavo", + "Caption cannot be empty": "Napis ne more biti prazen", + "Choose table header": "Izberite glavo razpredelnice", + "Click for more info": "Kliknite za ve\u010d informacij.", + "Column": "Stolpec", + "Column group": "Skupina stolpcev", + "Complex tables should have summaries": "Kompleksne tabele morajo imeti povzetke", + "Decorative images are not allowed. Please add a text description.": "Okrasne slike niso dovoljene. Dodajte besedilni opis.", + "Error": "Napaka", + "Header column": "Stolpec z glavo", + "Header row": "Vrstica z glavo", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Glave morajo biti uporabljene po vrstnem redu. Na primer: Naslovu 1 naj sledi Naslov 2 in ne Naslov 3.", + "ID attribute must be unique": "Atribut ID-ja mora biti enoli\u010den.", + "Ignore": "Prezri", + "Image": "Slika", + "Image must be marked as decorative or have an alternative text description": "Slika mora biti ozna\u010dena kot okrasna oziroma imeti opis nadomestnega besedila", + "Image needs a text description": "Slika potrebuje besedilni opis", + "Info": "Informacije", + "Issue {0} of {1}": "Te\u017eava {0} od {1}", + "Keep this ID and remove all others": "Ohrani ta ID in odstrani vse druge", + "Large text must have a contrast ratio of at least 3:1": "Veliko besedilo mora imeti kontrastno razmerje vsaj 3 : 1", + "Link": "Povezava", + "Make ID unique": "Ustvarite enoli\u010dni ID", + "Mark as decorative": "Ozna\u010di kot okrasno", + "More info": "Ve\u010d informacij", + "Next issue": "Naslednja te\u017eava", + "No accessibility issues detected": "Ni bilo zaznanih te\u017eav z dostopom", + "Or add a text description": "Ali dodajte besedilni opis", + "Previous issue": "Prej\u0161nja te\u017eava", + "Provide caption": "Vnesite napis", + "Provide table summary": "Vnesite povzetek razpredelnice", + "Remove all IDs": "Odstrani vse ID-je", + "Remove this ID": "Odstrani ta ID", + "Repair": "Popravi", + "Repair issue": "Popravi te\u017eavo", + "Replace filename with a meaningful description": "Zamenjajte ime datoteke s smiselnim opisom", + "Row": "Vrstica", + "Row group": "Skupina vrstic", + "Select a heading level": "Izberite raven naslova", + "Select header scope": "Izberite obseg glave", + "Shorten the text description": "Skraj\u0161ajte besedilni opis", + "Solution": "Re\u0161itev", + "Success": "Uspe\u0161no", + "Summary cannot be empty": "Povzetek ne more biti prazen", + "Table": "Razpredelnica", + "Table caption and summary cannot have the same value": "Napis tabele in povzetek ne moreta imeti enake vrednosti", + "Table caption cannot be the same as the table summary": "Napis tabele ne more biti enak kot povzetek tabele", + "Table elements must contain TR and TD tags": "Elementi tabele morajo vsebovati oznaki TR in TD", + "Table headers must be applied to a row or a column": "Glave tabel je treba uporabiti v vrstici ali stolpcu", + "Table summary cannot be the same as the table caption": "Povzetek tabele ne more biti enak kot napis tabele", + "Tables must have at least one header cell": "Tabele morajo imeti vsaj eno glavo celic", + "Tables must have captions": "Tabele morajo imeti napise", + "Text": "Besedilo", + "Text description cannot be empty": "Besedilni opis ne sme biti prazen", + "Text description is too long": "Besedilni opis je predolg", + "Text description should describe the image, not the filename": "Besedilni opis mora opisovati sliko, ne imena datoteke", + "Text description should not be the image filename": "Besedilni opis ne sme biti ime slikovne datoteke", + "Text must have a contrast ratio of at least 4.5:1": "Besedilo mora imeti kontrastno razmerje vsaj 4,5 : 1", + "Text must have a contrast ratio of at least 7:1": "Besedilo mora imeti kontrastno razmerje vsaj 7 : 1.", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Izbrano besedilo je videti kot seznam. Sezname je treba oblikovati s pomo\u010djo oznake za seznam.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Ta slika vklju\u010duje nasprotujo\u010de si informacije. Odstranite besedilni opis, da bo okrasna, ali odstranite okrasno oznako.", + "This image is decorative": "Ta slika je okrasna", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Ta odstavek je videti kot naslov. \u010ce je naslov, izberite nivo naslova.", + "Warning": "Opozorilo", + "{0} characters (maximum {1} allowed)": "\u0160t. znakov: {0} (najve\u010d: {1})" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/sl_SI.js b/plugins/a11ychecker/langs/sl_SI.js new file mode 100644 index 00000000..a92e6a29 --- /dev/null +++ b/plugins/a11ychecker/langs/sl_SI.js @@ -0,0 +1,80 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sl-SI", { + '"{0}"': "\xbb{0}\xab", + "Accessibility Checker": "Pregledovalnik dostopnosti", + "Accessibility checker...": "Pregledovalnik dostopnosti ...", + "Add a text description": "Dodajte besedilni opis", + "Add a text description for this image": "Dodajte besedilni opis za to sliko", + "Adjacent links with the same URL should be merged into one link": "Sosednje povezave z istim URL-jem morajo biti zdru\u017eene v eno povezavo", + "Caption cannot be empty": "Napis ne more biti prazen", + "Choose table header": "Izberite glavo razpredelnice", + "Click for more info": "Kliknite za ve\u010d informacij.", + "Column": "Stolpec", + "Column group": "Skupina stolpcev", + "Complex tables should have summaries": "Kompleksne tabele morajo imeti povzetke", + "Decorative images are not allowed. Please add a text description.": "Okrasne slike niso dovoljene. Dodajte besedilni opis.", + "Error": "Napaka", + "Header column": "Stolpec z glavo", + "Header row": "Vrstica z glavo", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Glave morajo biti uporabljene po vrstnem redu. Na primer: Naslovu 1 naj sledi Naslov 2 in ne Naslov 3.", + "ID attribute must be unique": "Atribut ID-ja mora biti enoli\u010den.", + "Ignore": "Prezri", + "Image": "Slika", + "Image must be marked as decorative or have an alternative text description": "Slika mora biti ozna\u010dena kot okrasna oziroma imeti opis nadomestnega besedila", + "Image needs a text description": "Slika potrebuje besedilni opis", + "Info": "Informacije", + "Issue {0} of {1}": "Te\u017eava {0} od {1}", + "Keep this ID and remove all others": "Ohrani ta ID in odstrani vse druge", + "Large text must have a contrast ratio of at least 3:1": "Veliko besedilo mora imeti kontrastno razmerje vsaj 3 : 1", + "Link": "Povezava", + "Make ID unique": "Ustvarite enoli\u010dni ID", + "Mark as decorative": "Ozna\u010di kot okrasno", + "More info": "Ve\u010d informacij", + "Next issue": "Naslednja te\u017eava", + "No accessibility issues detected": "Ni bilo zaznanih te\u017eav z dostopom", + "Or add a text description": "Ali dodajte besedilni opis", + "Previous issue": "Prej\u0161nja te\u017eava", + "Provide caption": "Vnesite napis", + "Provide table summary": "Vnesite povzetek razpredelnice", + "Remove all IDs": "Odstrani vse ID-je", + "Remove this ID": "Odstrani ta ID", + "Repair": "Popravi", + "Repair issue": "Popravi te\u017eavo", + "Replace filename with a meaningful description": "Zamenjajte ime datoteke s smiselnim opisom", + "Row": "Vrstica", + "Row group": "Skupina vrstic", + "Select a heading level": "Izberite raven naslova", + "Select header scope": "Izberite obseg glave", + "Shorten the text description": "Skraj\u0161ajte besedilni opis", + "Solution": "Re\u0161itev", + "Success": "Uspe\u0161no", + "Summary cannot be empty": "Povzetek ne more biti prazen", + "Table": "Razpredelnica", + "Table caption and summary cannot have the same value": "Napis tabele in povzetek ne moreta imeti enake vrednosti", + "Table caption cannot be the same as the table summary": "Napis tabele ne more biti enak kot povzetek tabele", + "Table elements must contain TR and TD tags": "Elementi tabele morajo vsebovati oznaki TR in TD", + "Table headers must be applied to a row or a column": "Glave tabel je treba uporabiti v vrstici ali stolpcu", + "Table summary cannot be the same as the table caption": "Povzetek tabele ne more biti enak kot napis tabele", + "Tables must have at least one header cell": "Tabele morajo imeti vsaj eno glavo celic", + "Tables must have captions": "Tabele morajo imeti napise", + "Text": "Besedilo", + "Text description cannot be empty": "Besedilni opis ne sme biti prazen", + "Text description is too long": "Besedilni opis je predolg", + "Text description should describe the image, not the filename": "Besedilni opis mora opisovati sliko, ne imena datoteke", + "Text description should not be the image filename": "Besedilni opis ne sme biti ime slikovne datoteke", + "Text must have a contrast ratio of at least 4.5:1": "Besedilo mora imeti kontrastno razmerje vsaj 4,5 : 1", + "Text must have a contrast ratio of at least 7:1": "Besedilo mora imeti kontrastno razmerje vsaj 7 : 1.", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Izbrano besedilo je videti kot seznam. Sezname je treba oblikovati s pomo\u010djo oznake za seznam.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Ta slika vklju\u010duje nasprotujo\u010de si informacije. Odstranite besedilni opis, da bo okrasna, ali odstranite okrasno oznako.", + "This image is decorative": "Ta slika je okrasna", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Ta odstavek je videti kot naslov. \u010ce je naslov, izberite nivo naslova.", + "Warning": "Opozorilo", + "{0} characters (maximum {1} allowed)": "\u0160t. znakov: {0} (najve\u010d: {1})" +}); + +console.warn('TinyMCE language code "sl_SI" is deprecated, please use "sl-SI" instead.'); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/sv-SE.js b/plugins/a11ychecker/langs/sv-SE.js new file mode 100644 index 00000000..b344a57f --- /dev/null +++ b/plugins/a11ychecker/langs/sv-SE.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sv-SE", { + '"{0}"': '"{0}"', + "Accessibility Checker": "Tillg\xe4nglighetskontroll", + "Accessibility checker...": "Tillg\xe4nglighetskontroll\xa0\u2026", + "Add a text description": "L\xe4gg till en beskrivningstext", + "Add a text description for this image": "L\xe4gg till en beskrivningstext f\xf6r bilden", + "Adjacent links with the same URL should be merged into one link": "Intilliggande l\xe4nkar som leder till samma URL ska sl\xe5s samman till en enda l\xe4nk", + "Caption cannot be empty": "Bildtexten f\xe5r inte vara tom", + "Choose table header": "V\xe4lj tabellrubrik", + "Click for more info": "Klicka f\xf6r mer information", + "Column": "Kolumn", + "Column group": "Kolumngrupp", + "Complex tables should have summaries": "Invecklade tabeller ska ha en sammanfattning", + "Decorative images are not allowed. Please add a text description.": "Dekorativa bilder till\xe5ts inte. L\xe4gg till en beskrivningstext.", + "Error": "Fel", + "Header column": "Rubrikkolumn", + "Header row": "Rubrikrad", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Rubriker m\xe5ste till\xe4mpas i ordningsf\xf6ljd. Till exempel: Rubrik 1 ska f\xf6ljas av Rubrik 2 och inte av Rubrik 3.", + "ID attribute must be unique": "ID-attributet m\xe5ste vara unikt", + "Ignore": "Ignorera", + "Image": "Bild", + "Image must be marked as decorative or have an alternative text description": "Bilden m\xe5ste markeras som dekorativ eller ha en alternativ beskrivningstext", + "Image needs a text description": "Bilden beh\xf6ver en beskrivningstext", + "Info": "Information", + "Issue {0} of {1}": "Problem {0} av {1}", + "Keep this ID and remove all others": "Beh\xe5ll detta ID och ta bort alla andra", + "Large text must have a contrast ratio of at least 3:1": "Stor text m\xe5ste ha ett kontrastf\xf6rh\xe5llande p\xe5 minst 3:1", + "Link": "L\xe4nk", + "Make ID unique": "G\xf6r ID unikt", + "Mark as decorative": "Markera som dekorativ", + "More info": "Mer info", + "Next issue": "N\xe4sta problem", + "No accessibility issues detected": "Inga tillg\xe4nglighetsproblem hittades", + "Or add a text description": "Eller l\xe4gg till en beskrivningstext", + "Previous issue": "F\xf6reg\xe5ende problem", + "Provide caption": "Ange bildtext", + "Provide table summary": "Ange sammanfattning f\xf6r tabellen", + "Remove all IDs": "Ta bort alla ID", + "Remove this ID": "Ta bort detta ID", + "Repair": "Reparera", + "Repair issue": "Reparera problem", + "Replace filename with a meaningful description": "Ers\xe4tt filnamnet med en meningsfull beskrivning", + "Row": "Rad", + "Row group": "Radgrupp", + "Select a heading level": "V\xe4lj en rubrikniv\xe5", + "Select header scope": "V\xe4lj rubrikomfattning", + "Shorten the text description": "G\xf6r beskrivningstexten kortare", + "Solution": "L\xf6sning", + "Success": "Lyckades", + "Summary cannot be empty": "Sammanfattningen f\xe5r inte vara tom", + "Table": "Tabell", + "Table caption and summary cannot have the same value": "Tabellens bildtext och sammanfattning kan inte ha samma v\xe4rde", + "Table caption cannot be the same as the table summary": "Tabellbeskrivningstexten f\xe5r inte vara samma som tabellens sammanfattning", + "Table elements must contain TR and TD tags": "Tabellelement m\xe5ste inneh\xe5lla TR- och TD-taggar", + "Table headers must be applied to a row or a column": "Tabellrubriker m\xe5ste till\xe4mpas p\xe5 en rad eller en kolumn", + "Table summary cannot be the same as the table caption": "Tabellsammanfattningen f\xe5r inte vara samma som tabellens beskrivning", + "Tables must have at least one header cell": "Tabeller m\xe5ste ha minst en rubrikcell", + "Tables must have captions": "Tabeller m\xe5ste ha en bildtext", + "Text": "Text", + "Text description cannot be empty": "Beskrivningstexten f\xe5r inte vara tom", + "Text description is too long": "Beskrivningstexten \xe4r f\xf6r l\xe5ng", + "Text description should describe the image, not the filename": "Beskrivningstexten, och inte filnamnet, ska beskriva bilden", + "Text description should not be the image filename": "Beskrivningstexten f\xe5r inte inneh\xe5lla bildens filnamn", + "Text must have a contrast ratio of at least 4.5:1": "Text m\xe5ste ha ett kontrastf\xf6rh\xe5llande p\xe5 minst 4,5:1", + "Text must have a contrast ratio of at least 7:1": "Texten m\xe5ste ha ett kontrastf\xf6rh\xe5llande p\xe5 minst 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Den markerade texten verkar vara en lista. Listor ska formateras med hj\xe4lp av en listtagg.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Bilden har motstridig information. Ta bort beskrivningstexten f\xf6r att g\xf6ra den dekorativ, eller ta bort den dekorativa markeringen.", + "This image is decorative": "Bilden \xe4r dekorativ", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Detta stycke verkar vara en rubrik. Om det \xe4r en rubrik ska du v\xe4lja en rubrikniv\xe5.", + "Warning": "Varning", + "{0} characters (maximum {1} allowed)": "{0} tecken (maximalt {1} till\xe5ts)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/sv_SE.js b/plugins/a11ychecker/langs/sv_SE.js new file mode 100644 index 00000000..79d7c610 --- /dev/null +++ b/plugins/a11ychecker/langs/sv_SE.js @@ -0,0 +1,80 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sv-SE", { + '"{0}"': '"{0}"', + "Accessibility Checker": "Tillg\xe4nglighetskontroll", + "Accessibility checker...": "Tillg\xe4nglighetskontroll\xa0\u2026", + "Add a text description": "L\xe4gg till en beskrivningstext", + "Add a text description for this image": "L\xe4gg till en beskrivningstext f\xf6r bilden", + "Adjacent links with the same URL should be merged into one link": "Intilliggande l\xe4nkar som leder till samma URL ska sl\xe5s samman till en enda l\xe4nk", + "Caption cannot be empty": "Bildtexten f\xe5r inte vara tom", + "Choose table header": "V\xe4lj tabellrubrik", + "Click for more info": "Klicka f\xf6r mer information", + "Column": "Kolumn", + "Column group": "Kolumngrupp", + "Complex tables should have summaries": "Invecklade tabeller ska ha en sammanfattning", + "Decorative images are not allowed. Please add a text description.": "Dekorativa bilder till\xe5ts inte. L\xe4gg till en beskrivningstext.", + "Error": "Fel", + "Header column": "Rubrikkolumn", + "Header row": "Rubrikrad", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Rubriker m\xe5ste till\xe4mpas i ordningsf\xf6ljd. Till exempel: Rubrik 1 ska f\xf6ljas av Rubrik 2 och inte av Rubrik 3.", + "ID attribute must be unique": "ID-attributet m\xe5ste vara unikt", + "Ignore": "Ignorera", + "Image": "Bild", + "Image must be marked as decorative or have an alternative text description": "Bilden m\xe5ste markeras som dekorativ eller ha en alternativ beskrivningstext", + "Image needs a text description": "Bilden beh\xf6ver en beskrivningstext", + "Info": "Information", + "Issue {0} of {1}": "Problem {0} av {1}", + "Keep this ID and remove all others": "Beh\xe5ll detta ID och ta bort alla andra", + "Large text must have a contrast ratio of at least 3:1": "Stor text m\xe5ste ha ett kontrastf\xf6rh\xe5llande p\xe5 minst 3:1", + "Link": "L\xe4nk", + "Make ID unique": "G\xf6r ID unikt", + "Mark as decorative": "Markera som dekorativ", + "More info": "Mer info", + "Next issue": "N\xe4sta problem", + "No accessibility issues detected": "Inga tillg\xe4nglighetsproblem hittades", + "Or add a text description": "Eller l\xe4gg till en beskrivningstext", + "Previous issue": "F\xf6reg\xe5ende problem", + "Provide caption": "Ange bildtext", + "Provide table summary": "Ange sammanfattning f\xf6r tabellen", + "Remove all IDs": "Ta bort alla ID", + "Remove this ID": "Ta bort detta ID", + "Repair": "Reparera", + "Repair issue": "Reparera problem", + "Replace filename with a meaningful description": "Ers\xe4tt filnamnet med en meningsfull beskrivning", + "Row": "Rad", + "Row group": "Radgrupp", + "Select a heading level": "V\xe4lj en rubrikniv\xe5", + "Select header scope": "V\xe4lj rubrikomfattning", + "Shorten the text description": "G\xf6r beskrivningstexten kortare", + "Solution": "L\xf6sning", + "Success": "Lyckades", + "Summary cannot be empty": "Sammanfattningen f\xe5r inte vara tom", + "Table": "Tabell", + "Table caption and summary cannot have the same value": "Tabellens bildtext och sammanfattning kan inte ha samma v\xe4rde", + "Table caption cannot be the same as the table summary": "Tabellbeskrivningstexten f\xe5r inte vara samma som tabellens sammanfattning", + "Table elements must contain TR and TD tags": "Tabellelement m\xe5ste inneh\xe5lla TR- och TD-taggar", + "Table headers must be applied to a row or a column": "Tabellrubriker m\xe5ste till\xe4mpas p\xe5 en rad eller en kolumn", + "Table summary cannot be the same as the table caption": "Tabellsammanfattningen f\xe5r inte vara samma som tabellens beskrivning", + "Tables must have at least one header cell": "Tabeller m\xe5ste ha minst en rubrikcell", + "Tables must have captions": "Tabeller m\xe5ste ha en bildtext", + "Text": "Text", + "Text description cannot be empty": "Beskrivningstexten f\xe5r inte vara tom", + "Text description is too long": "Beskrivningstexten \xe4r f\xf6r l\xe5ng", + "Text description should describe the image, not the filename": "Beskrivningstexten, och inte filnamnet, ska beskriva bilden", + "Text description should not be the image filename": "Beskrivningstexten f\xe5r inte inneh\xe5lla bildens filnamn", + "Text must have a contrast ratio of at least 4.5:1": "Text m\xe5ste ha ett kontrastf\xf6rh\xe5llande p\xe5 minst 4,5:1", + "Text must have a contrast ratio of at least 7:1": "Texten m\xe5ste ha ett kontrastf\xf6rh\xe5llande p\xe5 minst 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Den markerade texten verkar vara en lista. Listor ska formateras med hj\xe4lp av en listtagg.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Bilden har motstridig information. Ta bort beskrivningstexten f\xf6r att g\xf6ra den dekorativ, eller ta bort den dekorativa markeringen.", + "This image is decorative": "Bilden \xe4r dekorativ", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Detta stycke verkar vara en rubrik. Om det \xe4r en rubrik ska du v\xe4lja en rubrikniv\xe5.", + "Warning": "Varning", + "{0} characters (maximum {1} allowed)": "{0} tecken (maximalt {1} till\xe5ts)" +}); + +console.warn('TinyMCE language code "sv_SE" is deprecated, please use "sv-SE" instead.'); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/th-TH.js b/plugins/a11ychecker/langs/th-TH.js new file mode 100644 index 00000000..4074d962 --- /dev/null +++ b/plugins/a11ychecker/langs/th-TH.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("th-TH", { + '"{0}"': '"{0}"', + "Accessibility Checker": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07", + "Accessibility checker...": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07...", + "Add a text description": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21", + "Add a text description for this image": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e20\u0e32\u0e1e\u0e19\u0e35\u0e49", + "Adjacent links with the same URL should be merged into one link": "\u0e25\u0e34\u0e07\u0e04\u0e4c\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e15\u0e34\u0e14\u0e01\u0e31\u0e19\u0e42\u0e14\u0e22\u0e21\u0e35 URL \u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19 \u0e04\u0e27\u0e23\u0e23\u0e27\u0e21\u0e01\u0e31\u0e19\u0e40\u0e02\u0e49\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e25\u0e34\u0e07\u0e04\u0e4c\u0e40\u0e14\u0e35\u0e22\u0e27", + "Caption cannot be empty": "\u0e04\u0e33\u0e1a\u0e23\u0e23\u0e22\u0e32\u0e22\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e07", + "Choose table header": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2b\u0e31\u0e27\u0e15\u0e32\u0e23\u0e32\u0e07", + "Click for more info": "\u0e04\u0e25\u0e34\u0e01\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e39\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21", + "Column": "\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c", + "Column group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c", + "Complex tables should have summaries": "\u0e15\u0e32\u0e23\u0e32\u0e07\u0e0b\u0e31\u0e1a\u0e0b\u0e49\u0e2d\u0e19\u0e04\u0e27\u0e23\u0e21\u0e35\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e23\u0e38\u0e1b\u0e02\u0e2d\u0e07\u0e15\u0e32\u0e23\u0e32\u0e07", + "Decorative images are not allowed. Please add a text description.": "\u0e44\u0e21\u0e48\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e43\u0e0a\u0e49\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e\u0e15\u0e01\u0e41\u0e15\u0e48\u0e07 \u0e42\u0e1b\u0e23\u0e14\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21", + "Error": "\u0e04\u0e27\u0e32\u0e21\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14", + "Header column": "\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27", + "Header row": "\u0e41\u0e16\u0e27\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e01\u0e48\u0e2d\u0e19\u0e2b\u0e25\u0e31\u0e07 \u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e0a\u0e48\u0e19 \u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e17\u0e35\u0e48 1 \u0e15\u0e49\u0e2d\u0e07\u0e15\u0e32\u0e21\u0e14\u0e49\u0e27\u0e22 \u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e17\u0e35\u0e48 2 \u0e44\u0e21\u0e48\u0e43\u0e0a\u0e48 \u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e17\u0e35\u0e48 3", + "ID attribute must be unique": "\u0e41\u0e2d\u0e15\u0e17\u0e23\u0e34\u0e1a\u0e34\u0e27\u0e15\u0e4c ID \u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e0b\u0e49\u0e33\u0e01\u0e31\u0e19", + "Ignore": "\u0e40\u0e1e\u0e34\u0e01\u0e40\u0e09\u0e22", + "Image": "\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e", + "Image must be marked as decorative or have an alternative text description": "\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e\u0e15\u0e49\u0e2d\u0e07\u0e17\u0e33\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2b\u0e21\u0e32\u0e22\u0e27\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e15\u0e01\u0e41\u0e15\u0e48\u0e07\u0e2b\u0e23\u0e37\u0e2d\u0e21\u0e35\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e41\u0e17\u0e19", + "Image needs a text description": "\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21", + "Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25", + "Issue {0} of {1}": "\u0e1b\u0e31\u0e0d\u0e2b\u0e32 {0} \u0e08\u0e32\u0e01 {1}", + "Keep this ID and remove all others": "\u0e40\u0e01\u0e47\u0e1a ID \u0e19\u0e35\u0e49\u0e41\u0e25\u0e30\u0e19\u0e33 ID \u0e2d\u0e37\u0e48\u0e19\u0e46 \u0e2d\u0e2d\u0e01\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14", + "Large text must have a contrast ratio of at least 3:1": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e02\u0e19\u0e32\u0e14\u0e43\u0e2b\u0e0d\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e2a\u0e31\u0e14\u0e2a\u0e48\u0e27\u0e19\u0e04\u0e2d\u0e19\u0e17\u0e23\u0e32\u0e2a\u0e15\u0e4c\u0e40\u0e23\u0e42\u0e0a\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e19\u0e49\u0e2d\u0e22 3: 1", + "Link": "\u0e25\u0e34\u0e07\u0e01\u0e4c", + "Make ID unique": "\u0e17\u0e33\u0e43\u0e2b\u0e49 ID \u0e44\u0e21\u0e48\u0e0b\u0e49\u0e33\u0e01\u0e31\u0e19", + "Mark as decorative": "\u0e17\u0e33\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2b\u0e21\u0e32\u0e22\u0e27\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e15\u0e01\u0e41\u0e15\u0e48\u0e07", + "More info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21", + "Next issue": "\u0e1b\u0e23\u0e30\u0e40\u0e14\u0e47\u0e19\u0e15\u0e48\u0e2d\u0e44\u0e1b", + "No accessibility issues detected": "\u0e44\u0e21\u0e48\u0e1e\u0e1a\u0e1b\u0e23\u0e30\u0e40\u0e14\u0e47\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07", + "Or add a text description": "\u0e2b\u0e23\u0e37\u0e2d\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21", + "Previous issue": "\u0e1b\u0e23\u0e30\u0e40\u0e14\u0e47\u0e19\u0e17\u0e35\u0e48\u0e1c\u0e48\u0e32\u0e19\u0e21\u0e32", + "Provide caption": "\u0e43\u0e2a\u0e48\u0e04\u0e33\u0e1a\u0e23\u0e23\u0e22\u0e32\u0e22", + "Provide table summary": "\u0e43\u0e2a\u0e48\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e23\u0e38\u0e1b\u0e02\u0e2d\u0e07\u0e15\u0e32\u0e23\u0e32\u0e07", + "Remove all IDs": "\u0e19\u0e33 ID \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e2d\u0e2d\u0e01", + "Remove this ID": "\u0e19\u0e33 ID \u0e19\u0e35\u0e49\u0e2d\u0e2d\u0e01", + "Repair": "\u0e0b\u0e48\u0e2d\u0e21\u0e41\u0e0b\u0e21", + "Repair issue": "\u0e1b\u0e23\u0e30\u0e40\u0e14\u0e47\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e48\u0e2d\u0e21", + "Replace filename with a meaningful description": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c\u0e14\u0e49\u0e27\u0e22\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e17\u0e35\u0e48\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e2b\u0e21\u0e32\u0e22", + "Row": "\u0e41\u0e16\u0e27", + "Row group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e41\u0e16\u0e27", + "Select a heading level": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e02\u0e2d\u0e07\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07", + "Select header scope": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e02\u0e2d\u0e1a\u0e40\u0e02\u0e15\u0e02\u0e2d\u0e07\u0e2b\u0e31\u0e27\u0e15\u0e32\u0e23\u0e32\u0e07", + "Shorten the text description": "\u0e22\u0e48\u0e2d\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21", + "Solution": "\u0e42\u0e0b\u0e25\u0e39\u0e0a\u0e31\u0e19", + "Success": "\u0e2a\u0e33\u0e40\u0e23\u0e47\u0e08", + "Summary cannot be empty": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e23\u0e38\u0e1b\u0e02\u0e2d\u0e07\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e07", + "Table": "\u0e15\u0e32\u0e23\u0e32\u0e07", + "Table caption and summary cannot have the same value": "\u0e04\u0e33\u0e1a\u0e23\u0e23\u0e22\u0e32\u0e22\u0e15\u0e32\u0e23\u0e32\u0e07\u0e41\u0e25\u0e30\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e23\u0e38\u0e1b\u0e02\u0e2d\u0e07\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e43\u0e0a\u0e49\u0e04\u0e48\u0e32\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19", + "Table caption cannot be the same as the table summary": "\u0e04\u0e33\u0e1a\u0e23\u0e23\u0e22\u0e32\u0e22\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e0b\u0e49\u0e33\u0e01\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e23\u0e38\u0e1b\u0e15\u0e32\u0e23\u0e32\u0e07", + "Table elements must contain TR and TD tags": "\u0e2d\u0e07\u0e04\u0e4c\u0e1b\u0e23\u0e30\u0e01\u0e2d\u0e1a\u0e02\u0e2d\u0e07\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e1b\u0e49\u0e32\u0e22 TR \u0e41\u0e25\u0e30 TD", + "Table headers must be applied to a row or a column": "\u0e2b\u0e31\u0e27\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e41\u0e16\u0e27\u0e2b\u0e23\u0e37\u0e2d\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c", + "Table summary cannot be the same as the table caption": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e23\u0e38\u0e1b\u0e02\u0e2d\u0e07\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e0b\u0e49\u0e33\u0e01\u0e31\u0e1a\u0e04\u0e33\u0e1a\u0e23\u0e23\u0e22\u0e32\u0e22\u0e15\u0e32\u0e23\u0e32\u0e07", + "Tables must have at least one header cell": "\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e40\u0e0b\u0e25\u0e25\u0e4c\u0e2b\u0e31\u0e27\u0e15\u0e32\u0e23\u0e32\u0e07\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e19\u0e49\u0e2d\u0e22 1 \u0e40\u0e0b\u0e25\u0e25\u0e4c", + "Tables must have captions": "\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e04\u0e33\u0e1a\u0e23\u0e23\u0e22\u0e32\u0e22\u0e15\u0e32\u0e23\u0e32\u0e07", + "Text": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21", + "Text description cannot be empty": "\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2b\u0e49\u0e32\u0e21\u0e27\u0e48\u0e32\u0e07\u0e40\u0e1b\u0e25\u0e48\u0e32", + "Text description is too long": "\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e22\u0e32\u0e27\u0e40\u0e01\u0e34\u0e19\u0e44\u0e1b", + "Text description should describe the image, not the filename": "\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e04\u0e27\u0e23\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e20\u0e32\u0e1e \u0e44\u0e21\u0e48\u0e43\u0e0a\u0e48\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c", + "Text description should not be the image filename": "\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e44\u0e21\u0e48\u0e04\u0e27\u0e23\u0e40\u0e1b\u0e47\u0e19\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c\u0e20\u0e32\u0e1e", + "Text must have a contrast ratio of at least 4.5:1": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e2a\u0e31\u0e14\u0e2a\u0e48\u0e27\u0e19\u0e04\u0e2d\u0e19\u0e17\u0e23\u0e32\u0e2a\u0e15\u0e4c\u0e40\u0e23\u0e42\u0e0a\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e19\u0e49\u0e2d\u0e22 4.5:1", + "Text must have a contrast ratio of at least 7:1": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e2a\u0e31\u0e14\u0e2a\u0e48\u0e27\u0e19\u0e04\u0e2d\u0e19\u0e17\u0e23\u0e32\u0e2a\u0e15\u0e4c\u0e40\u0e23\u0e42\u0e0a\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e19\u0e49\u0e2d\u0e22 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e44\u0e27\u0e49\u0e14\u0e39\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e27\u0e48\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 \u0e04\u0e27\u0e23\u0e08\u0e31\u0e14\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e42\u0e14\u0e22\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e1b\u0e49\u0e32\u0e22 \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e\u0e19\u0e35\u0e49\u0e21\u0e35\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e35\u0e48\u0e02\u0e31\u0e14\u0e41\u0e22\u0e49\u0e07\u0e01\u0e31\u0e19 \u0e42\u0e1b\u0e23\u0e14\u0e25\u0e1a\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2d\u0e2d\u0e01\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e20\u0e32\u0e1e\u0e14\u0e39\u0e2a\u0e27\u0e22\u0e07\u0e32\u0e21 \u0e2b\u0e23\u0e37\u0e2d\u0e25\u0e1a\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2b\u0e21\u0e32\u0e22\u0e15\u0e01\u0e41\u0e15\u0e48\u0e07\u0e2d\u0e2d\u0e01", + "This image is decorative": "\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e\u0e43\u0e0a\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e15\u0e01\u0e41\u0e15\u0e48\u0e07", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u0e22\u0e48\u0e2d\u0e2b\u0e19\u0e49\u0e32\u0e19\u0e35\u0e49\u0e14\u0e39\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e01\u0e31\u0e1a\u0e27\u0e48\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 \u0e16\u0e49\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 \u0e01\u0e23\u0e38\u0e13\u0e32\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e02\u0e2d\u0e07\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07", + "Warning": "\u0e04\u0e33\u0e40\u0e15\u0e37\u0e2d\u0e19", + "{0} characters (maximum {1} allowed)": "{0} \u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23 (\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14 {1} \u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/th_TH.js b/plugins/a11ychecker/langs/th_TH.js new file mode 100644 index 00000000..83418a78 --- /dev/null +++ b/plugins/a11ychecker/langs/th_TH.js @@ -0,0 +1,80 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("th-TH", { + '"{0}"': '"{0}"', + "Accessibility Checker": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07", + "Accessibility checker...": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07...", + "Add a text description": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21", + "Add a text description for this image": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e20\u0e32\u0e1e\u0e19\u0e35\u0e49", + "Adjacent links with the same URL should be merged into one link": "\u0e25\u0e34\u0e07\u0e04\u0e4c\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e15\u0e34\u0e14\u0e01\u0e31\u0e19\u0e42\u0e14\u0e22\u0e21\u0e35 URL \u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19 \u0e04\u0e27\u0e23\u0e23\u0e27\u0e21\u0e01\u0e31\u0e19\u0e40\u0e02\u0e49\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e25\u0e34\u0e07\u0e04\u0e4c\u0e40\u0e14\u0e35\u0e22\u0e27", + "Caption cannot be empty": "\u0e04\u0e33\u0e1a\u0e23\u0e23\u0e22\u0e32\u0e22\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e07", + "Choose table header": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2b\u0e31\u0e27\u0e15\u0e32\u0e23\u0e32\u0e07", + "Click for more info": "\u0e04\u0e25\u0e34\u0e01\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e39\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21", + "Column": "\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c", + "Column group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c", + "Complex tables should have summaries": "\u0e15\u0e32\u0e23\u0e32\u0e07\u0e0b\u0e31\u0e1a\u0e0b\u0e49\u0e2d\u0e19\u0e04\u0e27\u0e23\u0e21\u0e35\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e23\u0e38\u0e1b\u0e02\u0e2d\u0e07\u0e15\u0e32\u0e23\u0e32\u0e07", + "Decorative images are not allowed. Please add a text description.": "\u0e44\u0e21\u0e48\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e43\u0e0a\u0e49\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e\u0e15\u0e01\u0e41\u0e15\u0e48\u0e07 \u0e42\u0e1b\u0e23\u0e14\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21", + "Error": "\u0e04\u0e27\u0e32\u0e21\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14", + "Header column": "\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27", + "Header row": "\u0e41\u0e16\u0e27\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e01\u0e48\u0e2d\u0e19\u0e2b\u0e25\u0e31\u0e07 \u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e0a\u0e48\u0e19 \u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e17\u0e35\u0e48 1 \u0e15\u0e49\u0e2d\u0e07\u0e15\u0e32\u0e21\u0e14\u0e49\u0e27\u0e22 \u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e17\u0e35\u0e48 2 \u0e44\u0e21\u0e48\u0e43\u0e0a\u0e48 \u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e17\u0e35\u0e48 3", + "ID attribute must be unique": "\u0e41\u0e2d\u0e15\u0e17\u0e23\u0e34\u0e1a\u0e34\u0e27\u0e15\u0e4c ID \u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e0b\u0e49\u0e33\u0e01\u0e31\u0e19", + "Ignore": "\u0e40\u0e1e\u0e34\u0e01\u0e40\u0e09\u0e22", + "Image": "\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e", + "Image must be marked as decorative or have an alternative text description": "\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e\u0e15\u0e49\u0e2d\u0e07\u0e17\u0e33\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2b\u0e21\u0e32\u0e22\u0e27\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e15\u0e01\u0e41\u0e15\u0e48\u0e07\u0e2b\u0e23\u0e37\u0e2d\u0e21\u0e35\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e41\u0e17\u0e19", + "Image needs a text description": "\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21", + "Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25", + "Issue {0} of {1}": "\u0e1b\u0e31\u0e0d\u0e2b\u0e32 {0} \u0e08\u0e32\u0e01 {1}", + "Keep this ID and remove all others": "\u0e40\u0e01\u0e47\u0e1a ID \u0e19\u0e35\u0e49\u0e41\u0e25\u0e30\u0e19\u0e33 ID \u0e2d\u0e37\u0e48\u0e19\u0e46 \u0e2d\u0e2d\u0e01\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14", + "Large text must have a contrast ratio of at least 3:1": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e02\u0e19\u0e32\u0e14\u0e43\u0e2b\u0e0d\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e2a\u0e31\u0e14\u0e2a\u0e48\u0e27\u0e19\u0e04\u0e2d\u0e19\u0e17\u0e23\u0e32\u0e2a\u0e15\u0e4c\u0e40\u0e23\u0e42\u0e0a\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e19\u0e49\u0e2d\u0e22 3: 1", + "Link": "\u0e25\u0e34\u0e07\u0e01\u0e4c", + "Make ID unique": "\u0e17\u0e33\u0e43\u0e2b\u0e49 ID \u0e44\u0e21\u0e48\u0e0b\u0e49\u0e33\u0e01\u0e31\u0e19", + "Mark as decorative": "\u0e17\u0e33\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2b\u0e21\u0e32\u0e22\u0e27\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e15\u0e01\u0e41\u0e15\u0e48\u0e07", + "More info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21", + "Next issue": "\u0e1b\u0e23\u0e30\u0e40\u0e14\u0e47\u0e19\u0e15\u0e48\u0e2d\u0e44\u0e1b", + "No accessibility issues detected": "\u0e44\u0e21\u0e48\u0e1e\u0e1a\u0e1b\u0e23\u0e30\u0e40\u0e14\u0e47\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07", + "Or add a text description": "\u0e2b\u0e23\u0e37\u0e2d\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21", + "Previous issue": "\u0e1b\u0e23\u0e30\u0e40\u0e14\u0e47\u0e19\u0e17\u0e35\u0e48\u0e1c\u0e48\u0e32\u0e19\u0e21\u0e32", + "Provide caption": "\u0e43\u0e2a\u0e48\u0e04\u0e33\u0e1a\u0e23\u0e23\u0e22\u0e32\u0e22", + "Provide table summary": "\u0e43\u0e2a\u0e48\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e23\u0e38\u0e1b\u0e02\u0e2d\u0e07\u0e15\u0e32\u0e23\u0e32\u0e07", + "Remove all IDs": "\u0e19\u0e33 ID \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e2d\u0e2d\u0e01", + "Remove this ID": "\u0e19\u0e33 ID \u0e19\u0e35\u0e49\u0e2d\u0e2d\u0e01", + "Repair": "\u0e0b\u0e48\u0e2d\u0e21\u0e41\u0e0b\u0e21", + "Repair issue": "\u0e1b\u0e23\u0e30\u0e40\u0e14\u0e47\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e48\u0e2d\u0e21", + "Replace filename with a meaningful description": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c\u0e14\u0e49\u0e27\u0e22\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e17\u0e35\u0e48\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e2b\u0e21\u0e32\u0e22", + "Row": "\u0e41\u0e16\u0e27", + "Row group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e41\u0e16\u0e27", + "Select a heading level": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e02\u0e2d\u0e07\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07", + "Select header scope": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e02\u0e2d\u0e1a\u0e40\u0e02\u0e15\u0e02\u0e2d\u0e07\u0e2b\u0e31\u0e27\u0e15\u0e32\u0e23\u0e32\u0e07", + "Shorten the text description": "\u0e22\u0e48\u0e2d\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21", + "Solution": "\u0e42\u0e0b\u0e25\u0e39\u0e0a\u0e31\u0e19", + "Success": "\u0e2a\u0e33\u0e40\u0e23\u0e47\u0e08", + "Summary cannot be empty": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e23\u0e38\u0e1b\u0e02\u0e2d\u0e07\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e07", + "Table": "\u0e15\u0e32\u0e23\u0e32\u0e07", + "Table caption and summary cannot have the same value": "\u0e04\u0e33\u0e1a\u0e23\u0e23\u0e22\u0e32\u0e22\u0e15\u0e32\u0e23\u0e32\u0e07\u0e41\u0e25\u0e30\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e23\u0e38\u0e1b\u0e02\u0e2d\u0e07\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e43\u0e0a\u0e49\u0e04\u0e48\u0e32\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19", + "Table caption cannot be the same as the table summary": "\u0e04\u0e33\u0e1a\u0e23\u0e23\u0e22\u0e32\u0e22\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e0b\u0e49\u0e33\u0e01\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e23\u0e38\u0e1b\u0e15\u0e32\u0e23\u0e32\u0e07", + "Table elements must contain TR and TD tags": "\u0e2d\u0e07\u0e04\u0e4c\u0e1b\u0e23\u0e30\u0e01\u0e2d\u0e1a\u0e02\u0e2d\u0e07\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e1b\u0e49\u0e32\u0e22 TR \u0e41\u0e25\u0e30 TD", + "Table headers must be applied to a row or a column": "\u0e2b\u0e31\u0e27\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e41\u0e16\u0e27\u0e2b\u0e23\u0e37\u0e2d\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c", + "Table summary cannot be the same as the table caption": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e23\u0e38\u0e1b\u0e02\u0e2d\u0e07\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e0b\u0e49\u0e33\u0e01\u0e31\u0e1a\u0e04\u0e33\u0e1a\u0e23\u0e23\u0e22\u0e32\u0e22\u0e15\u0e32\u0e23\u0e32\u0e07", + "Tables must have at least one header cell": "\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e40\u0e0b\u0e25\u0e25\u0e4c\u0e2b\u0e31\u0e27\u0e15\u0e32\u0e23\u0e32\u0e07\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e19\u0e49\u0e2d\u0e22 1 \u0e40\u0e0b\u0e25\u0e25\u0e4c", + "Tables must have captions": "\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e04\u0e33\u0e1a\u0e23\u0e23\u0e22\u0e32\u0e22\u0e15\u0e32\u0e23\u0e32\u0e07", + "Text": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21", + "Text description cannot be empty": "\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2b\u0e49\u0e32\u0e21\u0e27\u0e48\u0e32\u0e07\u0e40\u0e1b\u0e25\u0e48\u0e32", + "Text description is too long": "\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e22\u0e32\u0e27\u0e40\u0e01\u0e34\u0e19\u0e44\u0e1b", + "Text description should describe the image, not the filename": "\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e04\u0e27\u0e23\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e20\u0e32\u0e1e \u0e44\u0e21\u0e48\u0e43\u0e0a\u0e48\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c", + "Text description should not be the image filename": "\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e44\u0e21\u0e48\u0e04\u0e27\u0e23\u0e40\u0e1b\u0e47\u0e19\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c\u0e20\u0e32\u0e1e", + "Text must have a contrast ratio of at least 4.5:1": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e2a\u0e31\u0e14\u0e2a\u0e48\u0e27\u0e19\u0e04\u0e2d\u0e19\u0e17\u0e23\u0e32\u0e2a\u0e15\u0e4c\u0e40\u0e23\u0e42\u0e0a\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e19\u0e49\u0e2d\u0e22 4.5:1", + "Text must have a contrast ratio of at least 7:1": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e2a\u0e31\u0e14\u0e2a\u0e48\u0e27\u0e19\u0e04\u0e2d\u0e19\u0e17\u0e23\u0e32\u0e2a\u0e15\u0e4c\u0e40\u0e23\u0e42\u0e0a\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e19\u0e49\u0e2d\u0e22 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e44\u0e27\u0e49\u0e14\u0e39\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e27\u0e48\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 \u0e04\u0e27\u0e23\u0e08\u0e31\u0e14\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e42\u0e14\u0e22\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e1b\u0e49\u0e32\u0e22 \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e\u0e19\u0e35\u0e49\u0e21\u0e35\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e35\u0e48\u0e02\u0e31\u0e14\u0e41\u0e22\u0e49\u0e07\u0e01\u0e31\u0e19 \u0e42\u0e1b\u0e23\u0e14\u0e25\u0e1a\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2d\u0e2d\u0e01\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e20\u0e32\u0e1e\u0e14\u0e39\u0e2a\u0e27\u0e22\u0e07\u0e32\u0e21 \u0e2b\u0e23\u0e37\u0e2d\u0e25\u0e1a\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2b\u0e21\u0e32\u0e22\u0e15\u0e01\u0e41\u0e15\u0e48\u0e07\u0e2d\u0e2d\u0e01", + "This image is decorative": "\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e\u0e43\u0e0a\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e15\u0e01\u0e41\u0e15\u0e48\u0e07", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u0e22\u0e48\u0e2d\u0e2b\u0e19\u0e49\u0e32\u0e19\u0e35\u0e49\u0e14\u0e39\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e01\u0e31\u0e1a\u0e27\u0e48\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 \u0e16\u0e49\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 \u0e01\u0e23\u0e38\u0e13\u0e32\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e02\u0e2d\u0e07\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07", + "Warning": "\u0e04\u0e33\u0e40\u0e15\u0e37\u0e2d\u0e19", + "{0} characters (maximum {1} allowed)": "{0} \u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23 (\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14 {1} \u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23)" +}); + +console.warn('TinyMCE language code "th_TH" is deprecated, please use "th-TH" instead.'); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/tr.js b/plugins/a11ychecker/langs/tr.js new file mode 100644 index 00000000..d317ea05 --- /dev/null +++ b/plugins/a11ychecker/langs/tr.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("tr", { + '"{0}"': '"{0}"', + "Accessibility Checker": "Eri\u015filebilirlik Denetleyicisi", + "Accessibility checker...": "Eri\u015filebilirlik denetleyicisi...", + "Add a text description": "Metin a\xe7\u0131klamas\u0131 ekleyin", + "Add a text description for this image": "Bu resim i\xe7in bir metin a\xe7\u0131klamas\u0131 ekleyin", + "Adjacent links with the same URL should be merged into one link": "Ayn\u0131 URL'ye sahip biti\u015fik ba\u011flant\u0131lar tek bir ba\u011flant\u0131 olarak birle\u015ftirilmelidir", + "Caption cannot be empty": "Ba\u015fl\u0131k bo\u015f olamaz", + "Choose table header": "Tablo ba\u015fl\u0131\u011f\u0131 se\xe7in", + "Click for more info": "Daha fazla bilgi i\xe7in t\u0131kla", + "Column": "S\xfctun", + "Column group": "S\xfctun grubu", + "Complex tables should have summaries": "Karma\u015f\u0131k tablolar\u0131n \xf6zetleri olmal\u0131d\u0131r", + "Decorative images are not allowed. Please add a text description.": "Dekoratif resimlere izin verilmiyor. L\xfctfen bir metin a\xe7\u0131klamas\u0131 ekleyin.", + "Error": "Hata", + "Header column": "\xdcst bilgi s\xfctunu", + "Header row": "\xdcst bilgi sat\u0131r\u0131", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Ba\u015fl\u0131klar s\u0131ral\u0131 d\xfczene g\xf6re uygulanmal\u0131d\u0131r. \xd6rne\u011fin: Ba\u015fl\u0131k 1'den sonra Ba\u015fl\u0131k 3 de\u011fil Ba\u015fl\u0131k 2 gelmelidir.", + "ID attribute must be unique": "ID \xf6zniteli\u011fi benzersiz olmal\u0131", + "Ignore": "Yoksay", + "Image": "Resim", + "Image must be marked as decorative or have an alternative text description": "Resim, dekor olarak i\u015faretlenmeli veya alternatif metin a\xe7\u0131klamas\u0131 bulunmal\u0131d\u0131r", + "Image needs a text description": "Resmin bir metin a\xe7\u0131klamas\u0131na ihtiyac\u0131 var", + "Info": "Bilgi", + "Issue {0} of {1}": "Say\u0131 {0} / {1}", + "Keep this ID and remove all others": "Bu ID'yi koru ve di\u011fer t\xfcm ID'leri sil", + "Large text must have a contrast ratio of at least 3:1": "B\xfcy\xfck metnin kontrast oran\u0131 en az 3:1 olmal\u0131d\u0131r", + "Link": "Ba\u011flant\u0131", + "Make ID unique": "ID'yi benzersiz yap", + "Mark as decorative": "Dekoratif olarak i\u015faretle", + "More info": "Daha fazla bilgi", + "Next issue": "Sonraki Sorun", + "No accessibility issues detected": "Hi\xe7bir eri\u015filebilirlik sorunu tespit edilmedi", + "Or add a text description": "Veya metin a\xe7\u0131klamas\u0131 ekleyin", + "Previous issue": "\xd6nceki Sorun", + "Provide caption": "Alt yaz\u0131 sa\u011flay\u0131n", + "Provide table summary": "Tablo \xf6zeti sa\u011flay\u0131n", + "Remove all IDs": "T\xfcm ID'leri sil", + "Remove this ID": "Bu ID'yi sil", + "Repair": "Onar", + "Repair issue": "Onar\u0131m Sorunu", + "Replace filename with a meaningful description": "Dosya ad\u0131n\u0131 anlaml\u0131 bir a\xe7\u0131klama ile de\u011fi\u015ftirin", + "Row": "Sat\u0131r", + "Row group": "Sat\u0131r grubu", + "Select a heading level": "Ba\u015fl\u0131k seviyesi se\xe7in", + "Select header scope": "Ba\u015fl\u0131k kapsam\u0131 se\xe7in", + "Shorten the text description": "Metin a\xe7\u0131klamas\u0131n\u0131 k\u0131salt\u0131n", + "Solution": "\xc7\xf6z\xfcm", + "Success": "Ba\u015far\u0131", + "Summary cannot be empty": "\xd6zet bo\u015f olamaz", + "Table": "Tablo", + "Table caption and summary cannot have the same value": "Tablo ba\u015fl\u0131\u011f\u0131 ve \xf6zet ayn\u0131 de\u011fere sahip olamaz", + "Table caption cannot be the same as the table summary": "Tablo ba\u015fl\u0131\u011f\u0131 tablo \xf6zeti ile ayn\u0131 olamaz", + "Table elements must contain TR and TD tags": "Tablo elemanlar\u0131 TR ve TD etiketlerini i\xe7ermelidir", + "Table headers must be applied to a row or a column": "Tablo ba\u015fl\u0131klar\u0131 bir sat\u0131r veya s\xfctuna uygulanmal\u0131d\u0131r", + "Table summary cannot be the same as the table caption": "Tablo \xf6zeti tablo ba\u015fl\u0131\u011f\u0131 ile ayn\u0131 olamaz", + "Tables must have at least one header cell": "Tablolarda en az bir ba\u015fl\u0131k h\xfccresi bulunmal\u0131d\u0131r", + "Tables must have captions": "Tablolar\u0131n ba\u015fl\u0131klar\u0131 olmal\u0131d\u0131r", + "Text": "Metin", + "Text description cannot be empty": "Metin a\xe7\u0131klamas\u0131 bo\u015f olamaz", + "Text description is too long": "Metin a\xe7\u0131klamas\u0131 \xe7ok uzun", + "Text description should describe the image, not the filename": "Metin a\xe7\u0131klamas\u0131, dosya ad\u0131n\u0131 de\u011fil, resmi tan\u0131mlamal\u0131d\u0131r", + "Text description should not be the image filename": "Metin a\xe7\u0131klamas\u0131, resim dosya ad\u0131 olmamal\u0131d\u0131r", + "Text must have a contrast ratio of at least 4.5:1": "Metnin kontrast oran\u0131 en az 4.5:1 olmal\u0131d\u0131r", + "Text must have a contrast ratio of at least 7:1": "Metnin kontrast oran\u0131 en az 7:1 olmal\u0131d\u0131r", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "Se\xe7ilen metin bir liste olarak g\xf6r\xfcn\xfcyor. Listeler bir liste etiketi kullan\u0131larak bi\xe7imlendirilmelidir.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "Bu resimde \xe7eli\u015fkili bilgiler var. Dekoratif h\xe2le getirmek i\xe7in ya metin a\xe7\u0131klamas\u0131n\u0131 kald\u0131r\u0131n ya da dekoratif i\u015faretini kald\u0131r\u0131n.", + "This image is decorative": "Bu resim dekoratiftir", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "Bu paragraf bir ba\u015fl\u0131k gibi g\xf6r\xfcn\xfcyor. E\u011fer ba\u015fl\u0131k ise, l\xfctfen bir ba\u015fl\u0131k seviyesi se\xe7in.", + "Warning": "Uyar\u0131", + "{0} characters (maximum {1} allowed)": "{0} karakter (maksimum {1} olabilir)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/uk.js b/plugins/a11ychecker/langs/uk.js new file mode 100644 index 00000000..7b4a20c3 --- /dev/null +++ b/plugins/a11ychecker/langs/uk.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("uk", { + '"{0}"': '"{0}"', + "Accessibility Checker": "\u0417\u0430\u0441\u0456\u0431 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u043a\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0456", + "Accessibility checker...": "\u0417\u0430\u0441\u0456\u0431 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u043a\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0456...", + "Add a text description": "\u0414\u043e\u0434\u0430\u0439\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0438\u0439 \u043e\u043f\u0438\u0441", + "Add a text description for this image": "\u0414\u043e\u0434\u0430\u0439\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0438\u0439 \u043e\u043f\u0438\u0441 \u0434\u043b\u044f \u0446\u044c\u043e\u0433\u043e \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f", + "Adjacent links with the same URL should be merged into one link": "\u0421\u0443\u043c\u0456\u0436\u043d\u0456 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u0437 \u043e\u0434\u043d\u0438\u043c URL \u043f\u043e\u0432\u0438\u043d\u043d\u0456 \u0431\u0443\u0442\u0438 \u043e\u0431'\u0454\u0434\u043d\u0430\u043d\u0456 \u0432 \u043e\u0434\u043d\u0435 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f", + "Caption cannot be empty": "\u041f\u043e\u043b\u0435 \u043f\u0456\u0434\u043f\u0438\u0441\u0443 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0431\u0443\u0442\u0438 \u043f\u043e\u0440\u043e\u0436\u043d\u0456\u043c", + "Choose table header": "\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0456", + "Click for more info": "\u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c \u0434\u043b\u044f \u043e\u0442\u0440\u0438\u043c\u0430\u043d\u043d\u044f \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0457 \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u0457", + "Column": "\u0421\u0442\u043e\u0432\u043f\u0435\u0446\u044c", + "Column group": "\u0413\u0440\u0443\u043f\u0430 \u0441\u0442\u043e\u0432\u043f\u0446\u0456\u0432", + "Complex tables should have summaries": "\u0421\u043a\u043b\u0430\u0434\u043d\u0456 \u0442\u0430\u0431\u043b\u0438\u0446\u0456 \u043f\u043e\u0432\u0438\u043d\u043d\u0456 \u043c\u0430\u0442\u0438 \u043e\u043f\u0438\u0441\u0438", + "Decorative images are not allowed. Please add a text description.": "\u0414\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u0456 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f \u043d\u0435 \u0434\u043e\u0437\u0432\u043e\u043b\u0435\u043d\u043e. \u0414\u043e\u0434\u0430\u0439\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0438\u0439 \u043e\u043f\u0438\u0441.", + "Error": "\u041f\u043e\u043c\u0438\u043b\u043a\u0430", + "Header column": "\u0421\u0442\u043e\u0432\u043f\u0435\u0446\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0456\u0432", + "Header row": "\u0420\u044f\u0434\u043e\u043a \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0456\u0432", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u043c\u0430\u044e\u0442\u044c \u0437\u0430\u0441\u0442\u043e\u0441\u043e\u0432\u0443\u0432\u0430\u0442\u0438\u0441\u044c \u0443 \u043f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u043e\u043c\u0443 \u043f\u043e\u0440\u044f\u0434\u043a\u0443. \u041d\u0430\u043f\u0440\u0438\u043a\u043b\u0430\u0434: \u0437\u0430 \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u043c 1 \u043c\u0430\u0454 \u0441\u043b\u0456\u0434\u0443\u0432\u0430\u0442\u0438 \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 2, \u0430\u043b\u0435 \u043d\u0435 \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3.", + "ID attribute must be unique": "\u0410\u0442\u0440\u0438\u0431\u0443\u0442 ID \u043c\u0430\u0454 \u0431\u0443\u0442\u0438 \u0443\u043d\u0456\u043a\u0430\u043b\u044c\u043d\u0438\u043c", + "Ignore": "\u041d\u0435 \u0437\u0432\u0430\u0436\u0430\u0442\u0438", + "Image": "\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f", + "Image must be marked as decorative or have an alternative text description": "\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f \u043f\u043e\u0432\u0438\u043d\u043d\u0456 \u0431\u0443\u0442\u0438 \u043f\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0456 \u044f\u043a \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u0456 \u0430\u0431\u043e \u043c\u0430\u0442\u0438 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u0438\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0438\u0439 \u043e\u043f\u0438\u0441", + "Image needs a text description": "\u0414\u043b\u044f \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u0434\u043e\u0434\u0430\u0442\u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0438\u0439 \u043e\u043f\u0438\u0441", + "Info": "\u0406\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u044f", + "Issue {0} of {1}": "\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 {0} \u0437 {1}", + "Keep this ID and remove all others": "\u0417\u0430\u043b\u0438\u0448\u0438\u0442\u0438 \u0446\u0435\u0439 ID \u0456 \u0432\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0432\u0441\u0456 \u0456\u043d\u0448\u0456", + "Large text must have a contrast ratio of at least 3:1": "\u0412\u0435\u043b\u0438\u043a\u0438\u0439 \u0442\u0435\u043a\u0441\u0442 \u043f\u043e\u0432\u0438\u043d\u043d\u0438\u0439 \u043c\u0430\u0442\u0438 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u043d\u0456\u0441\u0442\u044c \u0449\u043e\u043d\u0430\u0439\u043c\u0435\u043d\u0448\u0435 3:1", + "Link": "\u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f", + "Make ID unique": "\u0417\u0440\u043e\u0431\u0438\u0442\u0438 ID \u0443\u043d\u0456\u043a\u0430\u043b\u044c\u043d\u0438\u043c", + "Mark as decorative": "\u041f\u043e\u0437\u043d\u0430\u0447\u0438\u0442\u0438 \u044f\u043a \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u0435", + "More info": "\u0414\u043e\u043a\u043b\u0430\u0434\u043d\u0456\u0448\u0435", + "Next issue": "\u041d\u0430\u0441\u0442\u0443\u043f\u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430", + "No accessibility issues detected": "\u041f\u0440\u043e\u0431\u043b\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0456 \u043d\u0435 \u0432\u0438\u044f\u0432\u043b\u0435\u043d\u043e", + "Or add a text description": "\u0410\u0431\u043e \u0434\u043e\u0434\u0430\u0439\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0438\u0439 \u043e\u043f\u0438\u0441", + "Previous issue": "\u041f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430", + "Provide caption": "\u0412\u043f\u0438\u0448\u0456\u0442\u044c \u043f\u0456\u0434\u043f\u0438\u0441", + "Provide table summary": "\u0412\u043f\u0438\u0448\u0456\u0442\u044c \u043e\u043f\u0438\u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u0456", + "Remove all IDs": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0432\u0441\u0456 ID", + "Remove this ID": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0446\u0435\u0439 ID", + "Repair": "\u0412\u0438\u043f\u0440\u0430\u0432\u0438\u0442\u0438", + "Repair issue": "\u0412\u0438\u043f\u0440\u0430\u0432\u0438\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443", + "Replace filename with a meaningful description": "\u0417\u0430\u043c\u0456\u0441\u0442\u044c \u043d\u0430\u0437\u0432\u0438 \u0444\u0430\u0439\u043b\u0443 \u0432\u0432\u0435\u0434\u0456\u0442\u044c \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u0438\u0439 \u043e\u043f\u0438\u0441", + "Row": "\u0420\u044f\u0434\u043e\u043a", + "Row group": "\u0413\u0440\u0443\u043f\u0430 \u0440\u044f\u0434\u043a\u0456\u0432", + "Select a heading level": "\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044c \u0440\u0456\u0432\u0435\u043d\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430", + "Select header scope": "\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044c \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430", + "Shorten the text description": "\u0421\u043a\u043e\u0440\u043e\u0442\u0456\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0438\u0439 \u043e\u043f\u0438\u0441", + "Solution": "\u0412\u0438\u0440\u0456\u0448\u0435\u043d\u043d\u044f", + "Success": "\u0423\u0441\u043f\u0456\u0448\u043d\u043e", + "Summary cannot be empty": "\u041f\u043e\u043b\u0435 \u043e\u043f\u0438\u0441\u0443 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0431\u0443\u0442\u0438 \u043f\u043e\u0440\u043e\u0436\u043d\u0456\u043c", + "Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u044f", + "Table caption and summary cannot have the same value": "\u041f\u0456\u0434\u043f\u0438\u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u0456 \u0442\u0430 \u0457\u0457 \u043e\u043f\u0438\u0441 \u043d\u0435 \u043c\u043e\u0436\u0443\u0442\u044c \u043c\u0430\u0442\u0438 \u043e\u0434\u043d\u0430\u043a\u043e\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f", + "Table caption cannot be the same as the table summary": "\u041f\u0456\u0434\u043f\u0438\u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u0456 \u043d\u0435 \u043f\u043e\u0432\u0438\u043d\u043d\u0438\u0439 \u0441\u043f\u0456\u0432\u043f\u0430\u0434\u0430\u0442\u0438 \u0437 \u0457\u0457 \u043e\u043f\u0438\u0441\u043e\u043c", + "Table elements must contain TR and TD tags": "\u0415\u043b\u0435\u043c\u0435\u043d\u0442\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0456 \u043f\u043e\u0432\u0438\u043d\u043d\u0456 \u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u0442\u0435\u0433\u0438 TR \u0442\u0430 TD", + "Table headers must be applied to a row or a column": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0456 \u043f\u043e\u0432\u0438\u043d\u043d\u0456 \u0437\u0430\u0441\u0442\u043e\u0441\u043e\u0432\u0443\u0432\u0430\u0442\u0438\u0441\u044c \u0434\u043e \u0440\u044f\u0434\u043a\u0430 \u0430\u0431\u043e \u0441\u0442\u043e\u0432\u043f\u0446\u044f", + "Table summary cannot be the same as the table caption": "\u041e\u043f\u0438\u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u0456 \u043d\u0435 \u043f\u043e\u0432\u0438\u043d\u043d\u0438\u0439 \u0441\u043f\u0456\u0432\u043f\u0430\u0434\u0430\u0442\u0438 \u0437 \u0457\u0457 \u043f\u0456\u0434\u043f\u0438\u0441\u043e\u043c", + "Tables must have at least one header cell": "\u0422\u0430\u0431\u043b\u0438\u0446\u0456 \u043f\u043e\u0432\u0438\u043d\u043d\u0456 \u043c\u0430\u0442\u0438 \u0449\u043e\u043d\u0430\u0439\u043c\u0435\u043d\u0448\u0435 \u043e\u0434\u043d\u0443 \u043a\u043b\u0456\u0442\u0438\u043d\u043a\u0443 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430", + "Tables must have captions": "\u0422\u0430\u0431\u043b\u0438\u0446\u0456 \u043f\u043e\u0432\u0438\u043d\u043d\u0456 \u043c\u0430\u0442\u0438 \u043f\u0456\u0434\u043f\u0438\u0441\u0438", + "Text": "\u0422\u0435\u043a\u0441\u0442", + "Text description cannot be empty": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0438\u0439 \u043e\u043f\u0438\u0441 \u043d\u0435 \u043c\u043e\u0436\u0435 \u0431\u0443\u0442\u0438 \u043f\u043e\u0440\u043e\u0436\u043d\u0456\u043c", + "Text description is too long": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0438\u0439 \u043e\u043f\u0438\u0441 \u0437\u0430\u043d\u0430\u0434\u0442\u043e \u0434\u043e\u0432\u0433\u0438\u0439", + "Text description should describe the image, not the filename": "\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f \u043c\u0430\u0454 \u043e\u043f\u0438\u0441\u0443\u0432\u0430\u0442\u0438\u0441\u044c \u0443 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c\u0443 \u043e\u043f\u0438\u0441\u0456, \u0430 \u043d\u0435 \u0432 \u043d\u0430\u0437\u0432\u0456 \u0444\u0430\u0439\u043b\u0443", + "Text description should not be the image filename": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0438\u0439 \u043e\u043f\u0438\u0441 \u043d\u0435 \u043f\u043e\u0432\u0438\u043d\u0435\u043d \u0437\u0431\u0456\u0433\u0430\u0442\u0438\u0441\u044f \u0437 \u043d\u0430\u0437\u0432\u043e\u044e \u0444\u0430\u0439\u043b\u0443 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f", + "Text must have a contrast ratio of at least 4.5:1": "\u0422\u0435\u043a\u0441\u0442 \u043f\u043e\u0432\u0438\u043d\u043d\u0438\u0439 \u043c\u0430\u0442\u0438 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u043d\u0456\u0441\u0442\u044c \u0449\u043e\u043d\u0430\u0439\u043c\u0435\u043d\u0448\u0435 4,5:1", + "Text must have a contrast ratio of at least 7:1": "\u0422\u0435\u043a\u0441\u0442 \u043f\u043e\u0432\u0438\u043d\u043d\u0438\u0439 \u043c\u0430\u0442\u0438 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u043d\u0456\u0441\u0442\u044c \u0449\u043e\u043d\u0430\u0439\u043c\u0435\u043d\u0448\u0435 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u041e\u0431\u0440\u0430\u043d\u0438\u0439 \u0442\u0435\u043a\u0441\u0442 \u043c\u043e\u0436\u0435 \u0431\u0443\u0442\u0438 \u0441\u043f\u0438\u0441\u043a\u043e\u043c. \u0421\u043f\u0438\u0441\u043a\u0438 \u043f\u043e\u0432\u0438\u043d\u043d\u0456 \u0444\u043e\u0440\u043c\u0430\u0442\u0443\u0432\u0430\u0442\u0438\u0441\u044f \u0437 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f\u043c \u0442\u0435\u0433\u0443 \u0441\u043f\u0438\u0441\u043a\u0443.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f \u043c\u0456\u0441\u0442\u0438\u0442\u044c \u0441\u0443\u043f\u0435\u0440\u0435\u0447\u043b\u0438\u0432\u0443 \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u044e. \u0412\u0438\u0434\u0430\u043b\u0456\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0438\u0439 \u043e\u043f\u0438\u0441, \u0449\u043e\u0431 \u043f\u043e\u0437\u043d\u0430\u0447\u0438\u0442\u0438 \u0439\u043e\u0433\u043e \u044f\u043a \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u0435, \u0430\u0431\u043e \u0432\u0438\u0434\u0430\u043b\u0456\u0442\u044c \u043f\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \xab\u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u0435\xbb.", + "This image is decorative": "\u0426\u0435 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u0435", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u0426\u0435\u0439 \u0430\u0431\u0437\u0430\u0446 \u043c\u043e\u0436\u0435 \u0431\u0443\u0442\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u043c. \u042f\u043a\u0449\u043e \u0446\u0435 \u0456 \u0454 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u043e\u0431\u0435\u0440\u0456\u0442\u044c \u0440\u0456\u0432\u0435\u043d\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430.", + "Warning": "\u041f\u043e\u043f\u0435\u0440\u0435\u0434\u0436\u0435\u043d\u043d\u044f", + "{0} characters (maximum {1} allowed)": "{0} \u0441\u0438\u043c\u0432\u043e\u043b. (\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u0437\u0432\u043e\u043b\u0435\u043d\u043e: {1})" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/vi.js b/plugins/a11ychecker/langs/vi.js new file mode 100644 index 00000000..d6a72603 --- /dev/null +++ b/plugins/a11ychecker/langs/vi.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("vi", { + '"{0}"': '"{0}"', + "Accessibility Checker": "B\u1ed9 ki\u1ec3m tra Tr\u1ee3 n\u0103ng", + "Accessibility checker...": "B\u1ed9 ki\u1ec3m tra tr\u1ee3 n\u0103ng...", + "Add a text description": "Th\xeam m\u1ed9t v\u0103n b\u1ea3n m\xf4 t\u1ea3", + "Add a text description for this image": "Th\xeam m\u1ed9t v\u0103n b\u1ea3n m\xf4 t\u1ea3 cho \u1ea3nh n\xe0y", + "Adjacent links with the same URL should be merged into one link": "Ph\u1ea3i h\u1ee3p nh\u1ea5t c\xe1c li\xean k\u1ebft li\u1ec1n k\u1ec1 c\xf3 c\xf9ng m\u1ed9t URL th\xe0nh m\u1ed9t li\xean k\u1ebft", + "Caption cannot be empty": "Kh\xf4ng \u0111\u01b0\u01a1\u0323c \u0111\u1ec3 tr\u1ed1ng ch\xfa th\xedch", + "Choose table header": "Ch\u1ecdn \u0111\u1ea7u \u0111\u1ec1 b\u1ea3ng", + "Click for more info": "Nh\u1ea5p \u0111\u1ec3 bi\u1ebft th\xeam th\xf4ng tin", + "Column": "C\xf4\u0323t", + "Column group": "Nh\xf3m c\u1ed9t", + "Complex tables should have summaries": "C\xe1c b\u1ea3ng ph\u1ee9c h\u1ee3p ph\u1ea3i c\xf3 t\xf3m t\u1eaft", + "Decorative images are not allowed. Please add a text description.": "Kh\xf4ng cho ph\xe9p \u1ea3nh trang tr\xed. Vui l\xf2ng b\u1ed5 sung m\u1ed9t v\u0103n b\u1ea3n m\xf4 t\u1ea3.", + "Error": "L\u1ed7i", + "Header column": "C\u1ed9t ti\xeau \u0111\u1ec1", + "Header row": "H\xe0ng ti\xeau \u0111\u1ec1", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "Ph\u1ea3i \xe1p d\u1ee5ng c\xe1c ti\xeau \u0111\u1ec1 theo th\u1ee9 t\u1ef1 l\u1ea7n l\u01b0\u1ee3t.V\xed d\u1ee5: Theo sau Ti\xeau \u0111\u1ec1 1 ph\u1ea3i l\xe0 Ti\xeau \u0111\u1ec1 2, ch\u1ee9 kh\xf4ng \u0111\u01b0\u01a1\u0323c l\xe0 Ti\xeau \u0111\u1ec1 3.", + "ID attribute must be unique": "Thu\u1ed9c t\xednh ID ph\u1ea3i kh\xf4ng tr\xf9ng l\u1eb7p", + "Ignore": "B\u1ecf qua", + "Image": "H\xecnh \u1ea3nh", + "Image must be marked as decorative or have an alternative text description": "\u1ea2nh ph\u1ea3i \u0111\u01b0\u1ee3c \u0111\xe1nh d\u1ea5u l\xe0 mang t\xednh ch\u1ea5t trang tr\xed ho\u1eb7c c\xf3 n\xf4\u0323i dung m\xf4 t\u1ea3 b\u0103\u0300ng v\u0103n b\u1ea3n thay th\u1ebf", + "Image needs a text description": "\u1ea2nh c\u1ea7n m\u1ed9t v\u0103n b\u1ea3n m\xf4 t\u1ea3", + "Info": "Th\xf4ng tin", + "Issue {0} of {1}": "S\u1ef1 c\u1ed1 {0} / {1}", + "Keep this ID and remove all others": "Gi\u1eef l\u1ea1i ID n\xe0y v\xe0 x\xf3a t\u1ea5t c\u1ea3 c\xe1c ID kh\xe1c", + "Large text must have a contrast ratio of at least 3:1": "V\u0103n b\u1ea3n l\u1edbn ph\u1ea3i c\xf3 t\u1ef7 l\u1ec7 t\u01b0\u01a1ng ph\u1ea3n \xedt nh\u1ea5t l\xe0 3:1", + "Link": "Li\xean k\u1ebft", + "Make ID unique": "\u0110\u1eb7t ID kh\xf4ng tr\xf9ng l\u1eb7p", + "Mark as decorative": "\u0110\xe1nh d\u1ea5u l\xe0 \u1ea3nh trang tr\xed", + "More info": "Th\xf4ng tin b\u1ed5 sung", + "Next issue": "S\u1ef1 c\u1ed1 ti\u1ebfp theo", + "No accessibility issues detected": "Kh\xf4ng ph\xe1t hi\u1ec7n th\xe2\u0301y s\u1ef1 c\u1ed1 tr\u1ee3 n\u0103ng n\xe0o", + "Or add a text description": "Ho\u1eb7c th\xeam m\u1ed9t v\u0103n b\u1ea3n m\xf4 t\u1ea3", + "Previous issue": "S\u1ef1 c\u1ed1 tr\u01b0\u1edbc \u0111\xf3", + "Provide caption": "Cung c\u1ea5p ch\xfa th\xedch", + "Provide table summary": "Cung c\u1ea5p n\u1ed9i dung t\xf3m t\u1eaft b\u1ea3ng", + "Remove all IDs": "X\xf3a t\u1ea5t c\u1ea3 c\xe1c ID", + "Remove this ID": "X\xf3a ID n\xe0y", + "Repair": "Kh\u1eafc ph\u1ee5c", + "Repair issue": "Kh\u1eafc ph\u1ee5c s\u1ef1 c\u1ed1", + "Replace filename with a meaningful description": "Thay t\xean t\u1eadp tin b\u1eb1ng m\u1ed9t m\xf4 t\u1ea3 c\xf3 \xfd ngh\u0129a", + "Row": "H\xe0ng", + "Row group": "Nh\xf3m h\xe0ng", + "Select a heading level": "Ch\u1ecdn m\u1ed9t c\u1ea5p \u0111\u1ed9 \u0111\u1ea7u \u0111\u1ec1", + "Select header scope": "Ch\u1ecdn ph\u1ea1m vi \u0111\u1ea7u m\u1ee5c", + "Shorten the text description": "R\xfat ng\u1eafn v\u0103n b\u1ea3n m\xf4 t\u1ea3", + "Solution": "Gi\u1ea3i ph\xe1p", + "Success": "Th\xe0nh c\xf4ng", + "Summary cannot be empty": "Kh\xf4ng \u0111\u01b0\u01a1\u0323c \u0111\u1ec3 tr\u1ed1ng t\xf3m t\u1eaft", + "Table": "Ba\u0309ng", + "Table caption and summary cannot have the same value": "Ch\xfa th\xedch v\xe0 t\xf3m t\u1eaft b\u1ea3ng kh\xf4ng \u0111\u01b0\u01a1\u0323c c\xf3 c\xf9ng gi\xe1 tr\u1ecb", + "Table caption cannot be the same as the table summary": "Ch\xfa th\xedch b\u1ea3ng kh\xf4ng \u0111\u01b0\u01a1\u0323c gi\xf4\u0301ng v\u01a1\u0301i t\xf3m t\u1eaft b\u1ea3ng", + "Table elements must contain TR and TD tags": "C\xe1c th\xe0nh ph\u1ea7n b\u1ea3ng ph\u1ea3i c\xf3 ch\u1ee9a th\u1ebb TR v\xe0 TD", + "Table headers must be applied to a row or a column": "Ph\u1ea3i \xe1p d\u1ee5ng ti\xeau \u0111\u1ec1 b\u1ea3ng cho m\u1ed9t h\xe0ng ho\u1eb7c m\u1ed9t c\u1ed9t", + "Table summary cannot be the same as the table caption": "T\xf3m t\u1eaft b\u1ea3ng kh\xf4ng \u0111\u01b0\u01a1\u0323c gi\u1ed1ng v\u1edbi ch\xfa th\xedch b\u1ea3ng", + "Tables must have at least one header cell": "B\u1ea3ng ph\u1ea3i c\xf3 \xedt nh\u1ea5t m\u1ed9t \xf4 ti\xeau \u0111\u1ec1", + "Tables must have captions": "B\u1ea3ng ph\u1ea3i c\xf3 ch\xfa th\xedch", + "Text": "V\u0103n b\u1ea3n", + "Text description cannot be empty": "Kh\xf4ng \u0111\u01b0\u1ee3c \u0111\u1ec3 tr\u1ed1ng v\u0103n b\u1ea3n m\xf4 t\u1ea3", + "Text description is too long": "V\u0103n b\u1ea3n m\xf4 t\u1ea3 qu\xe1 d\xe0i", + "Text description should describe the image, not the filename": "V\u0103n b\u1ea3n m\xf4 t\u1ea3 ph\u1ea3i m\xf4 t\u1ea3 \u1ea3nh, kh\xf4ng ph\u1ea3i l\xe0 t\xean t\u1eadp tin", + "Text description should not be the image filename": "V\u0103n b\u1ea3n m\xf4 t\u1ea3 kh\xf4ng \u0111\u01b0\u1ee3c l\xe0 t\xean t\u1eadp tin \u1ea3nh", + "Text must have a contrast ratio of at least 4.5:1": "V\u0103n b\u1ea3n ph\u1ea3i c\xf3 t\u1ef7 l\u1ec7 t\u01b0\u01a1ng ph\u1ea3n \xedt nh\u1ea5t l\xe0 4,5: 1", + "Text must have a contrast ratio of at least 7:1": "V\u0103n b\u1ea3n ph\u1ea3i c\xf3 t\u1ef7 l\u1ec7 t\u01b0\u01a1ng ph\u1ea3n \xedt nh\u1ea5t l\xe0 7:1", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "V\u0103n b\u1ea3n \u0111\xe3 ch\u1ecdn c\xf3 v\u1ebb l\xe0 m\u1ed9t danh s\xe1ch.Ph\u1ea3i \u0111\u1ecbnh d\u1ea1ng danh s\xe1ch b\u1eb1ng th\u1ebb danh s\xe1ch.", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u1ea2nh n\xe0y ch\u1ee9a th\xf4ng tin m\xe2u thu\u1eabn. H\xe3y x\xf3a v\u0103n b\u1ea3n m\xf4 t\u1ea3 \u0111\u1ec3 \u0111\u1eb7t \u1ea3nh l\xe0m trang tr\xed, ho\u1eb7c x\xf3a \u0111\xe1nh d\u1ea5u trang tr\xed.", + "This image is decorative": "\u1ea2nh mang t\xednh ch\u1ea5t trang tr\xed", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u0110o\u1ea1n n\xe0y tr\xf4ng gi\u1ed1ng nh\u01b0 m\u1ed9t ti\xeau \u0111\u1ec1.N\u1ebfu \u0111\xe2y l\xe0 ti\xeau \u0111\u1ec1, vui l\xf2ng ch\u1ecdn m\u1ed9t c\u1ea5p \u0111\u1ed9 cho ti\xeau \u0111\u1ec1.", + "Warning": "C\u1ea3nh b\xe1o", + "{0} characters (maximum {1} allowed)": "{0} k\xfd t\u1ef1 (t\u1ed1i \u0111a {1} \u0111\u01b0\u1ee3c cho ph\xe9p)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/zh-CN.js b/plugins/a11ychecker/langs/zh-CN.js new file mode 100644 index 00000000..e227d898 --- /dev/null +++ b/plugins/a11ychecker/langs/zh-CN.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("zh-CN", { + '"{0}"': "\u201c{0}\u201d", + "Accessibility Checker": "\u8fdb\u5165\u68c0\u67e5\u5668", + "Accessibility checker...": "\u8f85\u52a9\u529f\u80fd\u68c0\u67e5\u5668...", + "Add a text description": "\u6dfb\u52a0\u63cf\u8ff0\u6587\u672c", + "Add a text description for this image": "\u4e3a\u6b64\u56fe\u50cf\u6dfb\u52a0\u63cf\u8ff0\u6587\u672c", + "Adjacent links with the same URL should be merged into one link": "\u6709\u76f8\u540cURL\u7684\u76f8\u90bb\u94fe\u63a5\u5e94\u8be5\u5408\u5e76\u5230\u4e00\u4e2a\u94fe\u63a5\u5185", + "Caption cannot be empty": "\u8bf4\u660e\u6587\u5b57\u4e0d\u80fd\u4e3a\u7a7a", + "Choose table header": "\u9009\u62e9\u8868\u683c\u6807\u9898", + "Click for more info": "\u70b9\u51fb\u67e5\u770b\u66f4\u591a\u4fe1\u606f", + "Column": "\u680f\u76ee", + "Column group": "\u5217\u7ec4", + "Complex tables should have summaries": "\u590d\u6742\u7684\u56fe\u8868\u5e94\u8be5\u6709\u6982\u62ec\u8bf4\u660e", + "Decorative images are not allowed. Please add a text description.": "\u4e0d\u5141\u8bb8\u4f7f\u7528\u88c5\u9970\u6027\u56fe\u50cf\u3002\u8bf7\u6dfb\u52a0\u63cf\u8ff0\u6587\u672c\u3002", + "Error": "\u9519\u8bef", + "Header column": "\u6807\u9898\u5217", + "Header row": "\u6807\u9898\u884c", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u6807\u9898\u5fc5\u987b\u6309\u987a\u5e8f\u5e94\u7528\u3002 \u4f8b\u5982\ufe30\u6807\u98981\u540e\u9762\u5e94\u8be5\u662f\u6807\u98982\uff0c\u800c\u4e0d\u662f\u6807\u98983\u3002", + "ID attribute must be unique": "ID\u5c5e\u6027\u5fc5\u987b\u662f\u552f\u4e00\u7684", + "Ignore": "\u5ffd\u7565", + "Image": "\u56fe\u50cf", + "Image must be marked as decorative or have an alternative text description": "\u56fe\u50cf\u5fc5\u987b\u6807\u8bb0\u4e3a\u88c5\u9970\u6027\u56fe\u50cf\u6216\u5177\u6709\u53ef\u66ff\u4ee3\u7684\u63cf\u8ff0\u6587\u672c", + "Image needs a text description": "\u56fe\u50cf\u9700\u8981\u5177\u6709\u63cf\u8ff0\u6587\u672c", + "Info": "\u4fe1\u606f", + "Issue {0} of {1}": "\u7b2c {0} \u671f\uff0c\u5171 {1} \u671f", + "Keep this ID and remove all others": "\u4fdd\u7559\u6b64ID\u5e76\u5220\u9664\u6240\u6709\u5176\u4ed6ID", + "Large text must have a contrast ratio of at least 3:1": "\u5927\u53f7\u6587\u5b57\u5fc5\u987b\u81f3\u5c11\u67093:1\u7684\u5bf9\u6bd4\u5ea6", + "Link": "\u94fe\u63a5", + "Make ID unique": "\u786e\u4fddID\u552f\u4e00", + "Mark as decorative": "\u6807\u8bb0\u4e3a\u88c5\u9970", + "More info": "\u66f4\u591a\u4fe1\u606f", + "Next issue": "\u4e0b\u4e00\u4e2a\u95ee\u9898", + "No accessibility issues detected": "\u6ca1\u6709\u68c0\u6d4b\u5230\u8fdb\u5165\u95ee\u9898", + "Or add a text description": "\u6216\u6dfb\u52a0\u63cf\u8ff0\u6587\u672c", + "Previous issue": "\u4ee5\u524d\u7684\u95ee\u9898", + "Provide caption": "\u63d0\u4f9b\u9898\u6ce8", + "Provide table summary": "\u63d0\u4f9b\u8868\u683c\u6458\u8981", + "Remove all IDs": "\u5220\u9664\u6240\u6709ID", + "Remove this ID": "\u5220\u9664\u6b64ID", + "Repair": "\u4fee\u590d", + "Repair issue": "\u4fee\u590d\u95ee\u9898", + "Replace filename with a meaningful description": "\u5c06\u6587\u4ef6\u540d\u66ff\u6362\u4e3a\u6709\u610f\u4e49\u7684\u63cf\u8ff0", + "Row": "\u884c", + "Row group": "\u884c\u7ec4", + "Select a heading level": "\u9009\u62e9\u4e00\u4e2a\u6807\u9898\u7ea7\u522b", + "Select header scope": "\u9009\u62e9\u6807\u9898\u8303\u56f4", + "Shorten the text description": "\u8bf7\u7f29\u77ed\u63cf\u8ff0\u6587\u672c", + "Solution": "\u89e3\u51b3\u65b9\u6848", + "Success": "\u6210\u529f", + "Summary cannot be empty": "\u6982\u62ec\u8bf4\u660e\u4e0d\u80fd\u4e3a\u7a7a", + "Table": "\u8868\u683c", + "Table caption and summary cannot have the same value": "\u56fe\u8868\u8bf4\u660e\u6587\u5b57\u4e0d\u80fd\u6709\u76f8\u540c\u7684\u503c", + "Table caption cannot be the same as the table summary": "\u56fe\u8868\u8bf4\u660e\u6587\u5b57\u4e0d\u80fd\u4e0e\u56fe\u8868\u6982\u62ec\u8bf4\u660e\u76f8\u540c", + "Table elements must contain TR and TD tags": "\u56fe\u8868\u5143\u7d20\u5fc5\u987b\u5305\u542bTR\u548cTDtag\u952e", + "Table headers must be applied to a row or a column": "\u56fe\u8868\u6807\u9898\u5fc5\u987b\u5e94\u7528\u5230\u884c\u6216\u5217", + "Table summary cannot be the same as the table caption": "\u56fe\u8868\u6982\u62ec\u8bf4\u660e\u4e0d\u80fd\u4e0e\u56fe\u8868\u8bf4\u660e\u6587\u5b57\u76f8\u540c", + "Tables must have at least one header cell": "\u56fe\u8868\u5fc5\u987b\u81f3\u5c11\u6709\u4e00\u4e2a\u6807\u9898\u50a8\u5b58\u683c", + "Tables must have captions": "\u56fe\u8868\u5fc5\u987b\u6709\u8bf4\u660e\u6587\u5b57", + "Text": "\u6587\u672c", + "Text description cannot be empty": "\u63cf\u8ff0\u6587\u672c\u4e0d\u80fd\u4e3a\u7a7a", + "Text description is too long": "\u63cf\u8ff0\u6587\u672c\u8fc7\u957f", + "Text description should describe the image, not the filename": "\u63cf\u8ff0\u6587\u672c\u5e94\u5f53\u5bf9\u56fe\u50cf\u800c\u975e\u6587\u4ef6\u540d\u8fdb\u884c\u63cf\u8ff0", + "Text description should not be the image filename": "\u63cf\u8ff0\u6587\u672c\u4e0d\u5e94\u5f53\u662f\u56fe\u50cf\u6587\u4ef6\u540d", + "Text must have a contrast ratio of at least 4.5:1": "\u6587\u5b57\u5fc5\u987b\u81f3\u5c11\u67094.5:1\u7684\u5bf9\u6bd4\u5ea6", + "Text must have a contrast ratio of at least 7:1": "\u6587\u5b57\u5fc5\u987b\u81f3\u5c11\u67097:1\u7684\u5bf9\u6bd4\u5ea6", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u9009\u5b9a\u7684\u6587\u5b57\u4f3c\u4e4e\u662f\u4e00\u4e2a\u5217\u8868\u3002 \u5e94\u4f7f\u7528\u5217\u8868tag\u952e\u683c\u5f0f\u5316\u5217\u8868\u3002", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u6b64\u56fe\u50cf\u5177\u6709\u51b2\u7a81\u7684\u4fe1\u606f\u3002\u8bf7\u79fb\u9664\u63cf\u8ff0\u6587\u672c\uff0c\u4f7f\u5176\u6210\u4e3a\u88c5\u9970\u6027\u56fe\u50cf\uff0c\u6216\u8005\u79fb\u9664\u88c5\u9970\u6027\u6807\u8bb0\u3002", + "This image is decorative": "\u6b64\u56fe\u50cf\u662f\u88c5\u9970\u6027\u56fe\u50cf", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u8fd9\u4e00\u6bb5\u770b\u8d77\u6765\u50cf\u4e00\u4e2a\u6807\u9898\u3002 \u5982\u679c\u662f\u6807\u9898\uff0c\u8bf7\u9009\u62e9\u6807\u9898\u7ea7\u522b\u3002", + "Warning": "\u8b66\u544a", + "{0} characters (maximum {1} allowed)": "{0} \u4e2a\u5b57\u7b26\uff08\u6700\u591a\u5141\u8bb8 {1} \u4e2a\uff09" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/zh-TW.js b/plugins/a11ychecker/langs/zh-TW.js new file mode 100644 index 00000000..f3564759 --- /dev/null +++ b/plugins/a11ychecker/langs/zh-TW.js @@ -0,0 +1,78 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("zh-TW", { + '"{0}"': '"{0}"', + "Accessibility Checker": "\u9032\u5165\u6aa2\u67e5\u5668", + "Accessibility checker...": "\u9032\u5165\u6aa2\u67e5\u5668...", + "Add a text description": "\u8acb\u65b0\u589e\u6587\u5b57\u8aaa\u660e", + "Add a text description for this image": "\u8acb\u70ba\u6b64\u5716\u7247\u65b0\u589e\u6587\u5b57\u8aaa\u660e", + "Adjacent links with the same URL should be merged into one link": "\u6709\u76f8\u540cURL\u7684\u76f8\u9130\u93c8\u63a5\u61c9\u8a72\u5408\u4f75\u5230\u4e00\u500b\u93c8\u63a5\u5185", + "Caption cannot be empty": "\u8aac\u660e\u6587\u5b57\u4e0d\u80fd\u70ba\u7a7a", + "Choose table header": "\u9078\u64c7\u5716\u8868\u6a19\u984c", + "Click for more info": "\u9ede\u64ca\u53d6\u5f97\u66f4\u591a\u8cc7\u8a0a", + "Column": "\u6b04\u76ee", + "Column group": "\u6b04\u7fa4\u7956", + "Complex tables should have summaries": "\u8907\u96dc\u7684\u5716\u8868\u61c9\u8a72\u6709\u6982\u62ec\u8aac\u660e", + "Decorative images are not allowed. Please add a text description.": "\u4e0d\u5141\u8a31\u4f7f\u7528\u88dd\u98fe\u6027\u5716\u7247\u3002\u8acb\u65b0\u589e\u6587\u5b57\u8aaa\u660e\u3002", + "Error": "\u932f\u8aa4", + "Header column": "\u6a19\u984c\u6b04", + "Header row": "\u6a19\u984c\u5217", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u6a19\u984c\u5fc5\u9808\u6309\u9806\u5e8f\u61c9\u7528\u3002 \u4f8b\u5982\uff1a\u6a19\u984c 1 \u61c9\u4f9d\u5e8f\u8ddf\u96a8\u6a19\u984c 2\uff0c\u800c\u4e0d\u662f\u6a19\u984c 3\u3002", + "ID attribute must be unique": "ID \u5c6c\u6027\u5fc5\u9808\u662f\u552f\u4e00\u7684", + "Ignore": "\u5ffd\u7565", + "Image": "\u5716\u7247", + "Image must be marked as decorative or have an alternative text description": "\u5716\u7247\u5fc5\u9808\u6a19\u793a\u70ba\u88dd\u98fe\u6027\uff0c\u6216\u63d0\u4f9b\u66ff\u4ee3\u6587\u5b57\u8aaa\u660e", + "Image needs a text description": "\u5716\u7247\u9700\u8981\u6587\u5b57\u8aaa\u660e", + "Info": "\u8cc7\u8a0a", + "Issue {0} of {1}": "\u7b2c{0}\u500b\u554f\u984c\uff0c\u5171{1}\u500b\u554f\u984c", + "Keep this ID and remove all others": "\u4fdd\u7559\u6b64 ID \u4e26\u79fb\u9664\u6240\u6709\u5176\u4ed6 ID", + "Large text must have a contrast ratio of at least 3:1": "\u5927\u865f\u6587\u5b57\u81f3\u5c11\u8981\u67093:1\u7684\u5c0d\u6bd4\u5ea6", + "Link": "\u9023\u7d50", + "Make ID unique": "\u5c07 ID \u8b8a\u6210\u552f\u4e00\u7684", + "Mark as decorative": "\u6a19\u8a18\u70ba\u88dd\u98fe\u6027", + "More info": "\u66f4\u591a\u8cc7\u8a0a", + "Next issue": "\u4e0b\u4e00\u500b\u554f\u984c", + "No accessibility issues detected": "\u6c92\u6709\u6aa2\u6e2c\u5230\u9032\u5165\u554f\u984c", + "Or add a text description": "\u6216\u65b0\u589e\u6587\u5b57\u8aaa\u660e", + "Previous issue": "\u4ee5\u524d\u7684\u554f\u984c", + "Provide caption": "\u63d0\u4f9b\u8aac\u660e\u6587\u5b57", + "Provide table summary": "\u63d0\u4f9b\u5716\u8868\u6982\u62ec\u8aac\u660e", + "Remove all IDs": "\u79fb\u9664\u6240\u6709 ID", + "Remove this ID": "\u79fb\u9664\u6b64 ID", + "Repair": "\u4fee\u5fa9", + "Repair issue": "\u4fee\u5fa9\u554f\u984c", + "Replace filename with a meaningful description": "\u8acb\u7528\u5177\u63cf\u8ff0\u6027\u7684\u6587\u5b57\u53d6\u4ee3\u6a94\u540d", + "Row": "\u884c", + "Row group": "\u5217\u7fa4\u7d44", + "Select a heading level": "\u9078\u64c7\u4e00\u500b\u6a19\u984c\u7d1a\u5225", + "Select header scope": "\u9078\u64c7\u6a19\u984c\u7bc4\u570d", + "Shorten the text description": "\u8acb\u7e2e\u77ed\u6587\u5b57\u8aaa\u660e", + "Solution": "\u89e3\u6c7a\u65b9\u6848", + "Success": "\u6210\u529f", + "Summary cannot be empty": "\u6982\u62ec\u8aac\u660e\u4e0d\u80fd\u70ba\u7a7a", + "Table": "\u8868\u683c", + "Table caption and summary cannot have the same value": "\u5716\u8868\u8aac\u660e\u6587\u5b57\u4e0d\u80fd\u6709\u76f8\u540c\u7684\u503c", + "Table caption cannot be the same as the table summary": "\u5716\u8868\u8aac\u660e\u6587\u5b57\u4e0d\u80fd\u8207\u5716\u8868\u6982\u62ec\u8aac\u660e\u76f8\u540c", + "Table elements must contain TR and TD tags": "\u5716\u8868\u5143\u7d20\u5fc5\u9808\u5305\u542bTR\u548cTDtag\u9375", + "Table headers must be applied to a row or a column": "\u5716\u8868\u6a19\u984c\u5fc5\u9808\u61c9\u7528\u5230\u884c\u6216\u5217", + "Table summary cannot be the same as the table caption": "\u5716\u8868\u6982\u62ec\u8aac\u660e\u4e0d\u80fd\u8207\u5716\u8868\u8aac\u660e\u6587\u5b57\u76f8\u540c", + "Tables must have at least one header cell": "\u5716\u8868\u5fc5\u9808\u81f3\u5c11\u6709\u4e00\u500b\u6a19\u984c\u5132\u5b58\u683c", + "Tables must have captions": "\u5716\u8868\u5fc5\u9808\u5177\u6709\u8aac\u660e\u6587\u5b57", + "Text": "\u6587\u5b57", + "Text description cannot be empty": "\u6587\u5b57\u8aaa\u660e\u4e0d\u53ef\u7559\u7a7a", + "Text description is too long": "\u6587\u5b57\u8aaa\u660e\u904e\u9577", + "Text description should describe the image, not the filename": "\u61c9\u4f7f\u7528\u6587\u5b57\u8aaa\u660e\u4f86\u63cf\u8ff0\u5716\u7247\u5167\u5bb9\uff0c\u800c\u975e\u4f7f\u7528\u6a94\u540d", + "Text description should not be the image filename": "\u8acb\u52ff\u4f7f\u7528\u6a94\u540d\u4f5c\u70ba\u8aaa\u660e\u6587\u5b57", + "Text must have a contrast ratio of at least 4.5:1": "\u6587\u5b57\u81f3\u5c11\u8981\u67094.5:1\u7684\u5c0d\u6bd4\u5ea6", + "Text must have a contrast ratio of at least 7:1": "\u6587\u5b57\u81f3\u5c11\u8981\u6709 7:1 \u7684\u5c0d\u6bd4\u5ea6", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u9078\u5b9a\u7684\u6587\u5b57\u4f3c\u4e4e\u662f\u4e00\u500b\u5217\u8868\u3002 \u61c9\u4f7f\u7528\u5217\u8868\u9375\u683c\u5f0f\u5316\u5217\u8868\u3002", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u6b64\u5716\u7247\u8cc7\u8a0a\u6709\u885d\u7a81\u3002\u8acb\u79fb\u9664\u6587\u5b57\u8aaa\u660e\u4ee5\u6a19\u8a18\u70ba\u88dd\u98fe\u6027\u5716\u7247\uff0c\u6216\u8005\u79fb\u9664\u88dd\u98fe\u6027\u6a19\u8a18\u3002", + "This image is decorative": "\u6b64\u70ba\u88dd\u98fe\u6027\u5716\u7247", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u9019\u4e00\u6bb5\u770b\u8d77\u4f86\u50cf\u4e00\u500b\u6a19\u984c\u3002 \u5982\u679c\u6b64\u70ba\u4e00\u500b\u6a19\u984c\uff0c\u8acb\u9078\u64c7\u4e00\u500b\u6a19\u984c\u7d1a\u5225\u3002", + "Warning": "\u8b66\u544a", + "{0} characters (maximum {1} allowed)": "{0} \u500b\u5b57\u5143 (\u6700\u591a\u5141\u8a31 {1} \u500b)" +}); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/zh_CN.js b/plugins/a11ychecker/langs/zh_CN.js new file mode 100644 index 00000000..ed00cd4d --- /dev/null +++ b/plugins/a11ychecker/langs/zh_CN.js @@ -0,0 +1,80 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("zh-CN", { + '"{0}"': "\u201c{0}\u201d", + "Accessibility Checker": "\u8fdb\u5165\u68c0\u67e5\u5668", + "Accessibility checker...": "\u8f85\u52a9\u529f\u80fd\u68c0\u67e5\u5668...", + "Add a text description": "\u6dfb\u52a0\u63cf\u8ff0\u6587\u672c", + "Add a text description for this image": "\u4e3a\u6b64\u56fe\u50cf\u6dfb\u52a0\u63cf\u8ff0\u6587\u672c", + "Adjacent links with the same URL should be merged into one link": "\u6709\u76f8\u540cURL\u7684\u76f8\u90bb\u94fe\u63a5\u5e94\u8be5\u5408\u5e76\u5230\u4e00\u4e2a\u94fe\u63a5\u5185", + "Caption cannot be empty": "\u8bf4\u660e\u6587\u5b57\u4e0d\u80fd\u4e3a\u7a7a", + "Choose table header": "\u9009\u62e9\u8868\u683c\u6807\u9898", + "Click for more info": "\u70b9\u51fb\u67e5\u770b\u66f4\u591a\u4fe1\u606f", + "Column": "\u680f\u76ee", + "Column group": "\u5217\u7ec4", + "Complex tables should have summaries": "\u590d\u6742\u7684\u56fe\u8868\u5e94\u8be5\u6709\u6982\u62ec\u8bf4\u660e", + "Decorative images are not allowed. Please add a text description.": "\u4e0d\u5141\u8bb8\u4f7f\u7528\u88c5\u9970\u6027\u56fe\u50cf\u3002\u8bf7\u6dfb\u52a0\u63cf\u8ff0\u6587\u672c\u3002", + "Error": "\u9519\u8bef", + "Header column": "\u6807\u9898\u5217", + "Header row": "\u6807\u9898\u884c", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u6807\u9898\u5fc5\u987b\u6309\u987a\u5e8f\u5e94\u7528\u3002 \u4f8b\u5982\ufe30\u6807\u98981\u540e\u9762\u5e94\u8be5\u662f\u6807\u98982\uff0c\u800c\u4e0d\u662f\u6807\u98983\u3002", + "ID attribute must be unique": "ID\u5c5e\u6027\u5fc5\u987b\u662f\u552f\u4e00\u7684", + "Ignore": "\u5ffd\u7565", + "Image": "\u56fe\u50cf", + "Image must be marked as decorative or have an alternative text description": "\u56fe\u50cf\u5fc5\u987b\u6807\u8bb0\u4e3a\u88c5\u9970\u6027\u56fe\u50cf\u6216\u5177\u6709\u53ef\u66ff\u4ee3\u7684\u63cf\u8ff0\u6587\u672c", + "Image needs a text description": "\u56fe\u50cf\u9700\u8981\u5177\u6709\u63cf\u8ff0\u6587\u672c", + "Info": "\u4fe1\u606f", + "Issue {0} of {1}": "\u7b2c {0} \u671f\uff0c\u5171 {1} \u671f", + "Keep this ID and remove all others": "\u4fdd\u7559\u6b64ID\u5e76\u5220\u9664\u6240\u6709\u5176\u4ed6ID", + "Large text must have a contrast ratio of at least 3:1": "\u5927\u53f7\u6587\u5b57\u5fc5\u987b\u81f3\u5c11\u67093:1\u7684\u5bf9\u6bd4\u5ea6", + "Link": "\u94fe\u63a5", + "Make ID unique": "\u786e\u4fddID\u552f\u4e00", + "Mark as decorative": "\u6807\u8bb0\u4e3a\u88c5\u9970", + "More info": "\u66f4\u591a\u4fe1\u606f", + "Next issue": "\u4e0b\u4e00\u4e2a\u95ee\u9898", + "No accessibility issues detected": "\u6ca1\u6709\u68c0\u6d4b\u5230\u8fdb\u5165\u95ee\u9898", + "Or add a text description": "\u6216\u6dfb\u52a0\u63cf\u8ff0\u6587\u672c", + "Previous issue": "\u4ee5\u524d\u7684\u95ee\u9898", + "Provide caption": "\u63d0\u4f9b\u9898\u6ce8", + "Provide table summary": "\u63d0\u4f9b\u8868\u683c\u6458\u8981", + "Remove all IDs": "\u5220\u9664\u6240\u6709ID", + "Remove this ID": "\u5220\u9664\u6b64ID", + "Repair": "\u4fee\u590d", + "Repair issue": "\u4fee\u590d\u95ee\u9898", + "Replace filename with a meaningful description": "\u5c06\u6587\u4ef6\u540d\u66ff\u6362\u4e3a\u6709\u610f\u4e49\u7684\u63cf\u8ff0", + "Row": "\u884c", + "Row group": "\u884c\u7ec4", + "Select a heading level": "\u9009\u62e9\u4e00\u4e2a\u6807\u9898\u7ea7\u522b", + "Select header scope": "\u9009\u62e9\u6807\u9898\u8303\u56f4", + "Shorten the text description": "\u8bf7\u7f29\u77ed\u63cf\u8ff0\u6587\u672c", + "Solution": "\u89e3\u51b3\u65b9\u6848", + "Success": "\u6210\u529f", + "Summary cannot be empty": "\u6982\u62ec\u8bf4\u660e\u4e0d\u80fd\u4e3a\u7a7a", + "Table": "\u8868\u683c", + "Table caption and summary cannot have the same value": "\u56fe\u8868\u8bf4\u660e\u6587\u5b57\u4e0d\u80fd\u6709\u76f8\u540c\u7684\u503c", + "Table caption cannot be the same as the table summary": "\u56fe\u8868\u8bf4\u660e\u6587\u5b57\u4e0d\u80fd\u4e0e\u56fe\u8868\u6982\u62ec\u8bf4\u660e\u76f8\u540c", + "Table elements must contain TR and TD tags": "\u56fe\u8868\u5143\u7d20\u5fc5\u987b\u5305\u542bTR\u548cTDtag\u952e", + "Table headers must be applied to a row or a column": "\u56fe\u8868\u6807\u9898\u5fc5\u987b\u5e94\u7528\u5230\u884c\u6216\u5217", + "Table summary cannot be the same as the table caption": "\u56fe\u8868\u6982\u62ec\u8bf4\u660e\u4e0d\u80fd\u4e0e\u56fe\u8868\u8bf4\u660e\u6587\u5b57\u76f8\u540c", + "Tables must have at least one header cell": "\u56fe\u8868\u5fc5\u987b\u81f3\u5c11\u6709\u4e00\u4e2a\u6807\u9898\u50a8\u5b58\u683c", + "Tables must have captions": "\u56fe\u8868\u5fc5\u987b\u6709\u8bf4\u660e\u6587\u5b57", + "Text": "\u6587\u672c", + "Text description cannot be empty": "\u63cf\u8ff0\u6587\u672c\u4e0d\u80fd\u4e3a\u7a7a", + "Text description is too long": "\u63cf\u8ff0\u6587\u672c\u8fc7\u957f", + "Text description should describe the image, not the filename": "\u63cf\u8ff0\u6587\u672c\u5e94\u5f53\u5bf9\u56fe\u50cf\u800c\u975e\u6587\u4ef6\u540d\u8fdb\u884c\u63cf\u8ff0", + "Text description should not be the image filename": "\u63cf\u8ff0\u6587\u672c\u4e0d\u5e94\u5f53\u662f\u56fe\u50cf\u6587\u4ef6\u540d", + "Text must have a contrast ratio of at least 4.5:1": "\u6587\u5b57\u5fc5\u987b\u81f3\u5c11\u67094.5:1\u7684\u5bf9\u6bd4\u5ea6", + "Text must have a contrast ratio of at least 7:1": "\u6587\u5b57\u5fc5\u987b\u81f3\u5c11\u67097:1\u7684\u5bf9\u6bd4\u5ea6", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u9009\u5b9a\u7684\u6587\u5b57\u4f3c\u4e4e\u662f\u4e00\u4e2a\u5217\u8868\u3002 \u5e94\u4f7f\u7528\u5217\u8868tag\u952e\u683c\u5f0f\u5316\u5217\u8868\u3002", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u6b64\u56fe\u50cf\u5177\u6709\u51b2\u7a81\u7684\u4fe1\u606f\u3002\u8bf7\u79fb\u9664\u63cf\u8ff0\u6587\u672c\uff0c\u4f7f\u5176\u6210\u4e3a\u88c5\u9970\u6027\u56fe\u50cf\uff0c\u6216\u8005\u79fb\u9664\u88c5\u9970\u6027\u6807\u8bb0\u3002", + "This image is decorative": "\u6b64\u56fe\u50cf\u662f\u88c5\u9970\u6027\u56fe\u50cf", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u8fd9\u4e00\u6bb5\u770b\u8d77\u6765\u50cf\u4e00\u4e2a\u6807\u9898\u3002 \u5982\u679c\u662f\u6807\u9898\uff0c\u8bf7\u9009\u62e9\u6807\u9898\u7ea7\u522b\u3002", + "Warning": "\u8b66\u544a", + "{0} characters (maximum {1} allowed)": "{0} \u4e2a\u5b57\u7b26\uff08\u6700\u591a\u5141\u8bb8 {1} \u4e2a\uff09" +}); + +console.warn('TinyMCE language code "zh_CN" is deprecated, please use "zh-CN" instead.'); \ No newline at end of file diff --git a/plugins/a11ychecker/langs/zh_TW.js b/plugins/a11ychecker/langs/zh_TW.js new file mode 100644 index 00000000..4ee9a1da --- /dev/null +++ b/plugins/a11ychecker/langs/zh_TW.js @@ -0,0 +1,80 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("zh-TW", { + '"{0}"': '"{0}"', + "Accessibility Checker": "\u9032\u5165\u6aa2\u67e5\u5668", + "Accessibility checker...": "\u9032\u5165\u6aa2\u67e5\u5668...", + "Add a text description": "\u8acb\u65b0\u589e\u6587\u5b57\u8aaa\u660e", + "Add a text description for this image": "\u8acb\u70ba\u6b64\u5716\u7247\u65b0\u589e\u6587\u5b57\u8aaa\u660e", + "Adjacent links with the same URL should be merged into one link": "\u6709\u76f8\u540cURL\u7684\u76f8\u9130\u93c8\u63a5\u61c9\u8a72\u5408\u4f75\u5230\u4e00\u500b\u93c8\u63a5\u5185", + "Caption cannot be empty": "\u8aac\u660e\u6587\u5b57\u4e0d\u80fd\u70ba\u7a7a", + "Choose table header": "\u9078\u64c7\u5716\u8868\u6a19\u984c", + "Click for more info": "\u9ede\u64ca\u53d6\u5f97\u66f4\u591a\u8cc7\u8a0a", + "Column": "\u6b04\u76ee", + "Column group": "\u6b04\u7fa4\u7956", + "Complex tables should have summaries": "\u8907\u96dc\u7684\u5716\u8868\u61c9\u8a72\u6709\u6982\u62ec\u8aac\u660e", + "Decorative images are not allowed. Please add a text description.": "\u4e0d\u5141\u8a31\u4f7f\u7528\u88dd\u98fe\u6027\u5716\u7247\u3002\u8acb\u65b0\u589e\u6587\u5b57\u8aaa\u660e\u3002", + "Error": "\u932f\u8aa4", + "Header column": "\u6a19\u984c\u6b04", + "Header row": "\u6a19\u984c\u5217", + "Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.": "\u6a19\u984c\u5fc5\u9808\u6309\u9806\u5e8f\u61c9\u7528\u3002 \u4f8b\u5982\uff1a\u6a19\u984c 1 \u61c9\u4f9d\u5e8f\u8ddf\u96a8\u6a19\u984c 2\uff0c\u800c\u4e0d\u662f\u6a19\u984c 3\u3002", + "ID attribute must be unique": "ID \u5c6c\u6027\u5fc5\u9808\u662f\u552f\u4e00\u7684", + "Ignore": "\u5ffd\u7565", + "Image": "\u5716\u7247", + "Image must be marked as decorative or have an alternative text description": "\u5716\u7247\u5fc5\u9808\u6a19\u793a\u70ba\u88dd\u98fe\u6027\uff0c\u6216\u63d0\u4f9b\u66ff\u4ee3\u6587\u5b57\u8aaa\u660e", + "Image needs a text description": "\u5716\u7247\u9700\u8981\u6587\u5b57\u8aaa\u660e", + "Info": "\u8cc7\u8a0a", + "Issue {0} of {1}": "\u7b2c{0}\u500b\u554f\u984c\uff0c\u5171{1}\u500b\u554f\u984c", + "Keep this ID and remove all others": "\u4fdd\u7559\u6b64 ID \u4e26\u79fb\u9664\u6240\u6709\u5176\u4ed6 ID", + "Large text must have a contrast ratio of at least 3:1": "\u5927\u865f\u6587\u5b57\u81f3\u5c11\u8981\u67093:1\u7684\u5c0d\u6bd4\u5ea6", + "Link": "\u9023\u7d50", + "Make ID unique": "\u5c07 ID \u8b8a\u6210\u552f\u4e00\u7684", + "Mark as decorative": "\u6a19\u8a18\u70ba\u88dd\u98fe\u6027", + "More info": "\u66f4\u591a\u8cc7\u8a0a", + "Next issue": "\u4e0b\u4e00\u500b\u554f\u984c", + "No accessibility issues detected": "\u6c92\u6709\u6aa2\u6e2c\u5230\u9032\u5165\u554f\u984c", + "Or add a text description": "\u6216\u65b0\u589e\u6587\u5b57\u8aaa\u660e", + "Previous issue": "\u4ee5\u524d\u7684\u554f\u984c", + "Provide caption": "\u63d0\u4f9b\u8aac\u660e\u6587\u5b57", + "Provide table summary": "\u63d0\u4f9b\u5716\u8868\u6982\u62ec\u8aac\u660e", + "Remove all IDs": "\u79fb\u9664\u6240\u6709 ID", + "Remove this ID": "\u79fb\u9664\u6b64 ID", + "Repair": "\u4fee\u5fa9", + "Repair issue": "\u4fee\u5fa9\u554f\u984c", + "Replace filename with a meaningful description": "\u8acb\u7528\u5177\u63cf\u8ff0\u6027\u7684\u6587\u5b57\u53d6\u4ee3\u6a94\u540d", + "Row": "\u884c", + "Row group": "\u5217\u7fa4\u7d44", + "Select a heading level": "\u9078\u64c7\u4e00\u500b\u6a19\u984c\u7d1a\u5225", + "Select header scope": "\u9078\u64c7\u6a19\u984c\u7bc4\u570d", + "Shorten the text description": "\u8acb\u7e2e\u77ed\u6587\u5b57\u8aaa\u660e", + "Solution": "\u89e3\u6c7a\u65b9\u6848", + "Success": "\u6210\u529f", + "Summary cannot be empty": "\u6982\u62ec\u8aac\u660e\u4e0d\u80fd\u70ba\u7a7a", + "Table": "\u8868\u683c", + "Table caption and summary cannot have the same value": "\u5716\u8868\u8aac\u660e\u6587\u5b57\u4e0d\u80fd\u6709\u76f8\u540c\u7684\u503c", + "Table caption cannot be the same as the table summary": "\u5716\u8868\u8aac\u660e\u6587\u5b57\u4e0d\u80fd\u8207\u5716\u8868\u6982\u62ec\u8aac\u660e\u76f8\u540c", + "Table elements must contain TR and TD tags": "\u5716\u8868\u5143\u7d20\u5fc5\u9808\u5305\u542bTR\u548cTDtag\u9375", + "Table headers must be applied to a row or a column": "\u5716\u8868\u6a19\u984c\u5fc5\u9808\u61c9\u7528\u5230\u884c\u6216\u5217", + "Table summary cannot be the same as the table caption": "\u5716\u8868\u6982\u62ec\u8aac\u660e\u4e0d\u80fd\u8207\u5716\u8868\u8aac\u660e\u6587\u5b57\u76f8\u540c", + "Tables must have at least one header cell": "\u5716\u8868\u5fc5\u9808\u81f3\u5c11\u6709\u4e00\u500b\u6a19\u984c\u5132\u5b58\u683c", + "Tables must have captions": "\u5716\u8868\u5fc5\u9808\u5177\u6709\u8aac\u660e\u6587\u5b57", + "Text": "\u6587\u5b57", + "Text description cannot be empty": "\u6587\u5b57\u8aaa\u660e\u4e0d\u53ef\u7559\u7a7a", + "Text description is too long": "\u6587\u5b57\u8aaa\u660e\u904e\u9577", + "Text description should describe the image, not the filename": "\u61c9\u4f7f\u7528\u6587\u5b57\u8aaa\u660e\u4f86\u63cf\u8ff0\u5716\u7247\u5167\u5bb9\uff0c\u800c\u975e\u4f7f\u7528\u6a94\u540d", + "Text description should not be the image filename": "\u8acb\u52ff\u4f7f\u7528\u6a94\u540d\u4f5c\u70ba\u8aaa\u660e\u6587\u5b57", + "Text must have a contrast ratio of at least 4.5:1": "\u6587\u5b57\u81f3\u5c11\u8981\u67094.5:1\u7684\u5c0d\u6bd4\u5ea6", + "Text must have a contrast ratio of at least 7:1": "\u6587\u5b57\u81f3\u5c11\u8981\u6709 7:1 \u7684\u5c0d\u6bd4\u5ea6", + "The selected text appears to be a list. Lists should be formatted using a list tag.": "\u9078\u5b9a\u7684\u6587\u5b57\u4f3c\u4e4e\u662f\u4e00\u500b\u5217\u8868\u3002 \u61c9\u4f7f\u7528\u5217\u8868\u9375\u683c\u5f0f\u5316\u5217\u8868\u3002", + "This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.": "\u6b64\u5716\u7247\u8cc7\u8a0a\u6709\u885d\u7a81\u3002\u8acb\u79fb\u9664\u6587\u5b57\u8aaa\u660e\u4ee5\u6a19\u8a18\u70ba\u88dd\u98fe\u6027\u5716\u7247\uff0c\u6216\u8005\u79fb\u9664\u88dd\u98fe\u6027\u6a19\u8a18\u3002", + "This image is decorative": "\u6b64\u70ba\u88dd\u98fe\u6027\u5716\u7247", + "This paragraph looks like a heading. If it is a heading, please select a heading level.": "\u9019\u4e00\u6bb5\u770b\u8d77\u4f86\u50cf\u4e00\u500b\u6a19\u984c\u3002 \u5982\u679c\u6b64\u70ba\u4e00\u500b\u6a19\u984c\uff0c\u8acb\u9078\u64c7\u4e00\u500b\u6a19\u984c\u7d1a\u5225\u3002", + "Warning": "\u8b66\u544a", + "{0} characters (maximum {1} allowed)": "{0} \u500b\u5b57\u5143 (\u6700\u591a\u5141\u8a31 {1} \u500b)" +}); + +console.warn('TinyMCE language code "zh_TW" is deprecated, please use "zh-TW" instead.'); \ No newline at end of file diff --git a/plugins/a11ychecker/plugin.js b/plugins/a11ychecker/plugin.js new file mode 100644 index 00000000..9d688a02 --- /dev/null +++ b/plugins/a11ychecker/plugin.js @@ -0,0 +1,10 @@ +/* ! + * Tiny Accessibility Checker Plugin + * + * Copyright (c) 2023 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + * + * Version: 8.3.0-112 + */ + +!function(){"use strict";const e=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(r=n=e,(o=String).prototype.isPrototypeOf(r)||n.constructor?.name===o.name)?"string":t;var r,n,o})(t)===e,t=e=>t=>typeof t===e,r=e("string"),n=e("object"),o=e("array"),a=t("boolean"),i=e=>undefined===e;const s=e=>null==e,l=e=>!s(e),c=t("function"),d=t("number"),u=()=>{},p=e=>()=>e,m=e=>e;function h(e,...t){return(...r)=>{const n=t.concat(r);return e.apply(null,n)}}const g=e=>e(),y=p(!1),v=p(!0);class f{tag;value;static singletonNone=new f(!1);constructor(e,t){this.tag=e,this.value=t}static some(e){return new f(!0,e)}static none(){return f.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?f.some(e(this.value)):f.none()}bind(e){return this.tag?e(this.value):f.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:f.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(e??"Called getOrDie on None")}static from(e){return l(e)?f.some(e):f.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}const w=Array.prototype.slice,b=Array.prototype.indexOf,x=Array.prototype.push,k=(e,t)=>((e,t)=>b.call(e,t))(e,t)>-1,C=(e,t)=>{for(let r=0,n=e.length;r{const r=e.length,n=new Array(r);for(let o=0;o{for(let r=0,n=e.length;r{const r=[];for(let n=0,o=e.length;n(A(e,((e,n)=>{r=t(r,e,n)})),r),I=(e,t,r)=>{for(let n=0,o=e.length;nI(e,t,y),_=(e,t)=>(e=>{const t=[];for(let r=0,n=e.length;r{const t=w.call(e,0);return t.reverse(),t},E=Object.keys,N=Object.hasOwnProperty,P=(e,t)=>{const r=E(e);for(let n=0,o=r.length;nM(e,((e,r)=>({k:r,v:t(e,r)}))),M=(e,t)=>{const r={};return P(e,((e,n)=>{const o=t(e,n);r[o.k]=o.v})),r},O=e=>(t,r)=>{e[r]=t},H=(e,t)=>N.call(e,t),W=e=>{let t=e;return{get:()=>t,set:e=>{t=e}}},q=e=>{const t=t=>t(e),r=p(e),n=()=>o,o={tag:!0,inner:e,fold:(t,r)=>r(e),isValue:v,isError:y,map:t=>B.value(t(e)),mapError:n,bind:t,exists:t,forall:t,getOr:r,or:n,getOrThunk:r,orThunk:n,getOrDie:r,each:t=>{t(e)},toOptional:()=>f.some(e)};return o},G=e=>{const t=()=>r,r={tag:!1,inner:e,fold:(t,r)=>t(e),isValue:y,isError:v,map:t,mapError:t=>B.error(t(e)),bind:t,exists:y,forall:v,getOr:m,or:m,getOrThunk:g,orThunk:g,getOrDie:(n=String(e),()=>{throw new Error(n)}),each:u,toOptional:f.none};var n;return r},B={value:q,error:G,fromOption:(e,t)=>e.fold((()=>G(t)),q)},V="undefined"!=typeof window?window:Function("return this;")();let j=0;const z=(e,t,r)=>e.isSome()&&t.isSome()?f.some(r(e.getOrDie(),t.getOrDie())):f.none(),U=(e,t)=>((e,t)=>{let r=null!=t?t:V;for(let t=0;t{const e=(e=>{const t=W(f.none()),r=()=>t.get().each(e);return{clear:()=>{r(),t.set(f.none())},isSet:()=>t.get().isSome(),get:()=>t.get(),set:e=>{r(),t.set(f.some(e))}}})(u);return{...e,on:t=>e.get().each(t)}},K=e=>e.length>0,Z=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},Q=(e,t)=>{const r=(t||document).createElement(e);return Z(r)},X=Z,Y=(e,t)=>{const r=e.dom;if(1!==r.nodeType)return!1;{const e=r;if(void 0!==e.matches)return e.matches(t);if(void 0!==e.msMatchesSelector)return e.msMatchesSelector(t);if(void 0!==e.webkitMatchesSelector)return e.webkitMatchesSelector(t);if(void 0!==e.mozMatchesSelector)return e.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")}},J=e=>1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType||0===e.childElementCount,ee=(e,t)=>e.dom===t.dom,te=Object.getPrototypeOf,re=e=>{const t=U("ownerDocument.defaultView",e);return n(e)&&((e=>((e,t)=>{const r=((e,t)=>U(e,t))(e,t);if(null==r)throw new Error(e+" not available on this browser");return r})("HTMLElement",e))(t).prototype.isPrototypeOf(e)||/^HTML\w*Element$/.test(te(e).constructor.name))},ne=e=>t=>(e=>e.dom.nodeType)(t)===e,oe=e=>ae(e)&&re(e.dom),ae=ne(1),ie=ne(3),se=ne(11),le=e=>t=>ae(t)&&t.dom.nodeName.toLowerCase()===e,ce=e=>X(e.dom.ownerDocument),de=e=>f.from(e.dom.parentNode).map(X),ue=e=>f.from(e.dom.previousSibling).map(X),pe=e=>R(((e,t)=>{const r=[],n=e=>(r.push(e),t(e));let o=t(e);do{o=o.bind(n)}while(o.isSome());return r})(e,ue)),me=e=>S(e.dom.childNodes,X),he=e=>(e=>{const t=e.dom.childNodes;return f.from(t[0]).map(X)})(e),ge=e=>X(e.dom.host),ye=e=>{const t=X((e=>{if(l(e.target)){const t=X(e.target);if(ae(t)&&l(t.dom.shadowRoot)&&e.composed&&e.composedPath){const t=e.composedPath();if(t)return(e=>0e.stopPropagation(),n=()=>e.preventDefault(),o=(a=n,i=r,(...e)=>a(i.apply(null,e)));var a,i;return((e,t,r,n,o,a,i)=>({target:e,x:t,y:r,stop:n,prevent:o,kill:a,raw:i}))(t,e.clientX,e.clientY,r,n,o,e)},ve=(e,t,r,n)=>{e.dom.removeEventListener(t,r,n)},fe=v,we=(e,t,r)=>((e,t,r,n)=>((e,t,r,n,o)=>{const a=((e,t)=>r=>{e(r)&&t(ye(r))})(r,n);return e.dom.addEventListener(t,a,o),{unbind:h(ve,e,t,a,o)}})(e,t,r,n,!1))(e,t,fe,r),be=(e,t)=>{de(e).each((r=>{r.dom.insertBefore(t.dom,e.dom)}))},xe=(e,t)=>{const r=(e=>f.from(e.dom.nextSibling).map(X))(e);r.fold((()=>{de(e).each((e=>{ke(e,t)}))}),(e=>{be(e,t)}))},ke=(e,t)=>{e.dom.appendChild(t.dom)},Ce=(e,t)=>{A(t,(t=>{ke(e,t)}))},Se=(e,t,n)=>{((e,t,n)=>{if(!(r(n)||a(n)||d(n)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",n,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,n+"")})(e.dom,t,n)},Ae=(e,t)=>{const r=e.dom.getAttribute(t);return null===r?void 0:r},Te=(e,t)=>f.from(Ae(e,t)),De=(e,t)=>{e.dom.removeAttribute(t)},Ie=e=>{const t=e.dom;null!==t.parentNode&&t.parentNode.removeChild(t)},$e=e=>{const t=me(e);var r,n;t.length>0&&(r=e,A(n=t,((e,t)=>{const o=0===t?r:n[t-1];xe(o,e)}))),Ie(e)},_e=e=>(e=>X(e.dom.cloneNode(!0)))(e),Re=e=>e.dom.innerHTML,Ee=e=>{const t=ie(e)?e.dom.parentNode:e.dom;if(null==t||null===t.ownerDocument)return!1;const r=t.ownerDocument;return(e=>{const t=(e=>X(e.dom.getRootNode()))(e);return se(r=t)&&l(r.dom.host)?f.some(t):f.none();var r})(X(t)).fold((()=>r.body.contains(t)),(n=Ee,o=ge,e=>n(o(e))));var n,o},Ne=e=>{const t=e.dom.body;if(null==t)throw new Error("Body is not available yet");return X(t)},Pe=(e,t)=>{const r=e.dom,n=window.getComputedStyle(r).getPropertyValue(t);return""!==n||Ee(e)?n:Le(r,t)},Le=(e,t)=>(e=>void 0!==e.style&&c(e.style.getPropertyValue))(e)?e.style.getPropertyValue(t):"",Me=(e=>{const t=t=>e(t)?f.from(t.dom.nodeValue):f.none();return{get:r=>{if(!e(r))throw new Error("Can only get text value of a text node");return t(r).getOr("")},getOption:t,set:(t,r)=>{if(!e(t))throw new Error("Can only set raw text value of a text node");t.dom.nodeValue=r}}})(ie),Oe=(e,t,r)=>{let n=e.dom;const o=c(r)?r:y;for(;n.parentNode;){n=n.parentNode;const e=X(n);if(t(e))return f.some(e);if(o(e))break}return f.none()},He=(e,t)=>$(e.dom.childNodes,(e=>t(X(e)))).map(X),We=(e,t,r)=>Oe(e,(e=>Y(e,t)),r),qe=(e,t)=>He(e,(e=>Y(e,t))),Ge=(e,t)=>((e,t)=>{const r=void 0===t?document:t.dom;return J(r)?f.none():f.from(r.querySelector(e)).map(X)})(t,e),Be=(e,t,r)=>((e,t,r,n,o)=>e(r,n)?f.some(r):c(o)&&o(r)?f.none():t(r,n,o))(((e,t)=>Y(e,t)),We,e,t,r),Ve=(e,t=!1)=>{return Ee(e)?e.dom.isContentEditable:(r=e,Be(r,"[contenteditable]")).fold(p(t),(e=>"true"===je(e)));var r},je=e=>e.dom.contentEditable,ze=e=>e.dom.textContent,Ue=(e,t)=>(e=>T(me(e),(e=>Y(e,t))))(e),Fe=(e,t)=>((e,t)=>{const r=void 0===t?document:t.dom;return J(r)?[]:S(r.querySelectorAll(e),X)})(t,e),Ke=(e,t)=>Ge(e,t).isSome(),Ze=(e,t)=>{const{type:r,message:n}=t;e.notificationManager.open({type:r,text:n})},Qe=e=>{(e=>{switch(e){case"error":return console.error;case"info":return console.info;case"warn":return console.warn;default:return console.log}})(e.type)(e.message)},Xe=(e,t)=>{const{protect:r,allowList:n=[],blockList:o=[]}=null!=e?e:{};let a;return a=l(r)?r:n.length>0||o.length>0||t,{protect:a,allowList:n,blockList:o}},Ye=e=>{const{protect:t,allowList:r,blockList:n}=null!=e?e:{};return e=>{const o=e.toLowerCase();return r.length>0?!C(r,(e=>e.toLowerCase()===o)):n.length>0?C(n,(e=>e.toLowerCase()===o)):t}},Je=e=>{const t=Ye(e);return(e,r)=>{const n=((e,t)=>`${e}:${t}`)(r,e.toLowerCase());return t(n)}},et=(e,t,r,n)=>{const o=Reflect.get(e,"on"),a={protectedEventHandlers:[],cleanupScheduled:!1},i=(e,t)=>{n&&console.log(`[EventsProxy] ${e}`,t||"")},s=t=>{"invalid"===t&&a.protectedEventHandlers.length>0&&(i("Removing event handlers",a.protectedEventHandlers),A(a.protectedEventHandlers,(t=>{e.off(t.name,t.callback)})),a.protectedEventHandlers=[])},l=t.onStatusChange(s);return e.on("remove",l),(n,l,c)=>{i(`Adding event listener: ${n}`,{shouldProtect:r(n)});const d=((e,n)=>{const o=r(e),i=t.getStatus(),s=o&&"invalid"===i?u:n;return o&&a.protectedEventHandlers.push({name:e,callback:s}),s})(n,l);return a.cleanupScheduled||(a.cleanupScheduled=!0,window.setTimeout((()=>{s(t.getStatus()),a.cleanupScheduled=!1}),0)),Reflect.apply(o,e,[n,d,c])}},tt=(e,t,r)=>n=>{const o="invalid"!==t.getStatus()&&l(r)?r(n):u,a=((e,t,r)=>{const n=e=>{"invalid"===e&&r.setEnabled(!1)},o=()=>n(t.getStatus());n(t.getStatus()),e.on("NodeChange",o);const a=t.onStatusChange(n);return()=>{e.off("NodeChange",o),a()}})(e,t,n);return e=>{null==o||o(e),a()}},rt=(e,t,r)=>(...n)=>{var o;return"invalid"===e.getStatus()?r:null!==(o=null==t?void 0:t(...n))&&void 0!==o?o:r},nt=(e,t)=>rt(e,t,Promise.resolve([])),ot=(e,t)=>rt(e,t,[]),at=(e,t)=>rt(e,t,!1),it=(e,t,n,o)=>{const a=t=>{const{command:a,value:i}=t,s=f.from(i).filter(r).map((e=>e.toLowerCase())),l=a.toLowerCase()===o.toLowerCase(),c=s.exists((e=>n.has(e))),d=s.exists((t=>t===e.queryCommandValue(o)));l&&c&&!d&&t.preventDefault()},i=t.onStatusChange((t=>{if("invalid"===t){e.on("BeforeExecCommand",a);const t=()=>{const t=e.queryCommandValue(o);n.has(t.toLowerCase())&&e.execCommand(o,!1,t)};e.initialized?t():e.on("init",t)}}));e.on("remove",(()=>{i(),e.off("BeforeExecCommand",a)}))},st=(e,t,n,o,a,i=!1)=>{const s=new Set,l=new Set,c=(e,t)=>{i&&console.log(`[UiProxy] ${e}`,t||"")};((e,t,r)=>{it(e,t,r,"ToggleView")})(e,n,s),((e,t,r)=>{it(e,t,r,"ToggleSidebar")})(e,n,l);const d=(t,r,i,s)=>{const l=a(t,i);return c(`${s}: ${t}`,{spec:r,context:o,shouldProtect:l}),l?{...r,onSetup:tt(e,n,r.onSetup)}:r};return new Proxy(t,{get:(e,t,i)=>{const u=Reflect.get(e,t,i);if(!r(t))return u;switch(t){case"addButton":case"addGroupToolbarButton":case"addToggleButton":case"addMenuButton":case"addSplitButton":return(...r)=>{const[n,o,...a]=r,i=d(n,o,"button",String(t));return Reflect.apply(u,e,[n,i,...a])};case"addMenuItem":case"addToggleMenuItem":case"addNestedMenuItem":return(...r)=>{const[n,o,...a]=r,i=d(n,o,"menuitem",String(t));return Reflect.apply(u,e,[n,i,...a])};case"addAutocompleter":return(...r)=>{const[i,s,...l]=r,d=a(i,"autocompleter");if(c(`${String(t)}: ${i}`,{spec:s,context:o,shouldProtect:d}),d){const t={...s,fetch:nt(n,s.fetch)};return Reflect.apply(u,e,[i,t,...l])}return Reflect.apply(u,e,[i,s,...l])};case"addSidebar":return(...r)=>{const[n,i,...s]=r,d=a(n,"sidebar");if(c(`${String(t)}: ${n}`,{spec:i,context:o,shouldProtect:d}),d){l.add(n.toLowerCase());const t={...i};return Reflect.apply(u,e,[n,t,...s])}return Reflect.apply(u,e,[n,i,...s])};case"addView":return(...r)=>{const[n,i,...l]=r,d=a(n,"view");if(c(`${String(t)}: ${n}`,{spec:i,context:o,shouldProtect:d}),d){s.add(n.toLowerCase());const t={...i};return Reflect.apply(u,e,[n,t,...l])}return Reflect.apply(u,e,[n,i,...l])};case"addContextMenu":return(...r)=>{const[i,s,...l]=r,d=a(i,"contextmenu");if(c(`${String(t)}: ${i}`,{spec:s,context:o,shouldProtect:d}),d){const t={...s,update:ot(n,s.update)};return Reflect.apply(u,e,[i,t,...l])}return Reflect.apply(u,e,[i,s,...l])};case"addContextToolbar":case"addContextForm":return(...r)=>{const[i,s,...l]=r,d=a(i,"contexttoolbar");if(c(`${String(t)}: ${i}`,{spec:s,context:o,shouldProtect:d}),d){const t={...s,predicate:at(n,s.predicate)};return Reflect.apply(u,e,[i,t,...l])}return Reflect.apply(u,e,[i,s,...l])};case"addIcon":case"getAll":case"addContext":return u}}})},lt=new Set(["addCommand","addCommands","addQueryStateHandler","addQueryValueHandler"]),ct=e=>(t,r)=>{e&&console.log(`[EditorProxy] ${t}`,r||"")},dt=(e,t)=>{const{statusProvider:r,uiContext:n,protection:o,debug:a=!1}=t,{events:i,commands:s,ui:l}=o;ct(a)("Creating enhanced editor with options:",{hasStatusProvider:!!r,uiContext:n,debug:a,protection:o});const{editorUiProxy:d,editorCommandsProxy:p,editorEventListenerProxy:m}=((e,t,r,n,o,a,i)=>{const s=a.protect?{...e.ui,registry:st(e,e.ui.registry,t,r,Je(a),i)}:e.ui,l=n.protect?((e,t,r,n,o)=>{const a={protectedCommands:[],cleanupScheduled:!1},i=(e,t)=>{o&&console.log(`[CommandsProxy] ${e}`,t||"")},s=(e,t)=>{const o=n(e),i=r.getStatus();return o&&a.protectedCommands.push(e),o&&"invalid"===i?u:t},l=t=>{"invalid"===t&&a.protectedCommands.length>0&&(i("Removing commands",a.protectedCommands),A(a.protectedCommands,(t=>{e.editorCommands.removeCommand(t)})),a.protectedCommands=[])},c=()=>{a.cleanupScheduled||(a.cleanupScheduled=!0,window.setTimeout((()=>{l(r.getStatus()),a.cleanupScheduled=!1}),0))},d=r.onStatusChange(l);return e.on("remove",d),new Proxy(t,{get:(e,r,o)=>{if(i(`Accessing property: ${String(r)}`),"addCommand"===r){const a=Reflect.get(e,r,o);return(e,r,...o)=>{i(`Adding command: ${e}`,{shouldProtect:n(e)});const l=s(e,r);return c(),Reflect.apply(a,t,[e,l,...o])}}if("addCommands"===r){const n=Reflect.get(e,r,o);return(e,r="exec")=>{i(`Adding commands (${r})`,{commandCount:Object.keys(e).length,willApplyEnforcement:"exec"===r});const o="exec"!==r?e:L(e,((e,t)=>s(t,e)));return c(),Reflect.apply(n,t,[o,r])}}return Reflect.get(e,r,o)}})})(e,e.editorCommands,t,Ye(n),i):e.editorCommands;return{editorUiProxy:s,editorCommandsProxy:l,editorEventListenerProxy:o.protect?et(e,t,Ye(o),i):e.on.bind(e)}})(e,r,n||"",s,i,l,a),h=((e,t,r,n)=>(o,a,i)=>{const s=String(a);if("on"===a)return ct(n)("on intercepted"),r;if(lt.has(s))return ct(n)(`${s} intercepted`),t[s].bind(t);if("editorCommands"===a)return ct(n)("editorCommands accessed"),t;if("ui"===a)return ct(n)("ui accessed"),e;const l=Reflect.get(o,a,i);return c(l)?l.bind(o):l})(d,p,m,a);return new Proxy(e,{get:h,set:(e,t,r,n)=>Reflect.set(e,t,r,n),has:(e,t)=>Reflect.has(e,t),ownKeys:e=>Reflect.ownKeys(e),getOwnPropertyDescriptor:(e,t)=>Reflect.getOwnPropertyDescriptor(e,t),defineProperty:(e,t,r)=>Reflect.defineProperty(e,t,r),deleteProperty:(e,t)=>Reflect.deleteProperty(e,t),isExtensible:e=>Reflect.isExtensible(e),preventExtensions:e=>Reflect.preventExtensions(e),getPrototypeOf:e=>Reflect.getPrototypeOf(e),setPrototypeOf:(e,t)=>Reflect.setPrototypeOf(e,t)})},ut=e=>parseInt(e,10),pt=(e,t)=>{const r=e-t;return 0===r?0:r>0?1:-1},mt=(e,t,r)=>({major:e,minor:t,patch:r}),ht=e=>{const t=/([0-9]+)\.([0-9]+)\.([0-9]+)(?:(\-.+)?)/.exec(e);return t?mt(ut(t[1]),ut(t[2]),ut(t[3])):mt(0,0,0)},gt=(e,t)=>!!e&&-1===((e,t)=>{const r=pt(e.major,t.major);if(0!==r)return r;const n=pt(e.minor,t.minor);if(0!==n)return n;const o=pt(e.patch,t.patch);return 0!==o?o:0})((e=>ht((e=>[e.majorVersion,e.minorVersion].join(".").split(".").slice(0,3).join("."))(e)))(e),ht(t)),yt=ht("8.3.0"),vt=`${yt.major}.${yt.minor}.0`,ft=`${yt.major+1}.0.0`,wt=(e,t)=>{const{setup:r,protection:n}=t;return(o,a)=>{if(!((e,t)=>gt(e,vt)?(console.error(`The "${t}" plugin requires at least version ${vt} of TinyMCE.`),!1):!!gt(e,ft)||(console.error(`The "${t}" plugin requires at least version ${vt} of TinyMCE but less than ${ft}.`),!1))(tinymce,e)||((e,t)=>!!(e=>{var t;const r=null===(t=e.options.get("license_key"))||void 0===t?void 0:t.toLowerCase(),n=e.options.get("online_license_key");return s(n)&&"gpl"===r})(e)&&(((e,t)=>{const{console:r,editor:n}=t;l(n)&&(e._skinLoaded?Ze(e,n):e.on("SkinLoaded",(()=>{Ze(e,n)}))),l(r)&&Qe(r)})(e,{console:{type:"error",message:[`The "${t}" plugin requires a valid TinyMCE license key.`,"Read more: https://www.tiny.cloud/docs/tinymce/latest/license-key/"].join(" ")}}),!0))(o,e))return{};const i=(e=>{const{protect:t=!0,events:r,commands:n,ui:o,api:a}=null!=e?e:{};return{protect:t,events:Xe(r,false),commands:Xe(n,true),ui:Xe(o,true),api:Xe(a,true)}})(n),d=((e="pre-validation")=>{const t=W(e),r=new Set;let n=!1;const{enableLogging:o=!1}={},a=(e,...t)=>{o&&console.log(`[StatusProvider] ${e}`,...t)};return{setStatus:e=>{const n=t.get();if(n===e)return a("Status unchanged:",e),!1;t.set(e),a("Status changed:",n,"->",e);const o={currentStatus:e,previousStatus:n},i=Array.from(r);return A(i,(e=>{e(o.currentStatus,o.previousStatus)})),!0},onStatusChange:e=>(r.add(e),a("Callback registered, total listeners:",r.size),()=>{r.delete(e)&&a("Callback unregistered, remaining listeners:",r.size)}),getStatus:t.get,hasListeners:()=>r.size>0,destroy:()=>{n||(a("Destroying StatusProvider, clearing",r.size,"listeners"),r.clear(),n=!0)}}})(),u=((e,t,r)=>{const n=`commercial-license-${t}`;return e.ui.registry.addContext(n,(()=>"invalid"!==r.getStatus()&&!e.mode.isReadOnly())),e.licenseKeyManager.validate({plugin:t}).then((e=>{r.setStatus(e?"valid":"invalid")}),(e=>{console.error(e),console.error(`An unknown error occurred when trying to validate "${t}" plugin.`),r.setStatus("invalid")})),{ui:{context:n}}})(o,e,d),p=i.protect?dt(o,{statusProvider:d,uiContext:u.ui.context,debug:t.debug||!1,protection:i}):o,m=((e,t)=>({pluginCode:e,enforcer:{isInvalid:()=>"invalid"===t.getStatus(),onInvalid:e=>t.onStatusChange(((t,r)=>{"invalid"===t&&e(t,r)}))}}))(e,d);return((e,t,r,n)=>{if(t.protect&&t.api.protect&&l(e)){const a=Ye(t.api);return(o=e=>"invalid"===r.getStatus()&&a(e),(e,t)=>L(e,((e,r)=>c(e)?(...n)=>{if(o(r.toLowerCase())){const e=`Method "${l(t)?`${t}.`:""}${r}" is not available due to license key restrictions.`,n=new Error(e);throw console.error(e),n}return e(...n)}:e)))(e,n)}var o;return e})(r(p,a,m),i,d,e)}},bt=p("html4"),xt=p("html5"),kt=p("a"),Ct=p("aa"),St=p("aaa"),At=e=>t=>t.options.get(e),Tt=At("a11ychecker_level"),Dt=At("a11ychecker_html_version"),It=At("a11ychecker_issue_url_callback"),$t=At("a11ychecker_filter_issue"),_t=At("a11ychecker_alt_text_max_length"),Rt=e=>{var t;return null!==(t=e.options.get("a11ychecker_allow_decorative_images"))&&void 0!==t?t:e.options.get("a11y_advanced_options")},Et={"a11y.d1.description":"This paragraph looks like a heading. If it is a heading, please select a heading level.","a11y.d1.repair.block.h1":"Heading 1","a11y.d1.repair.block.h2":"Heading 2","a11y.d1.repair.block.h3":"Heading 3","a11y.d1.repair.block.h4":"Heading 4","a11y.d1.repair.block.h5":"Heading 5","a11y.d1.repair.block.h6":"Heading 6","a11y.d1.repair.info":"Select a heading level","a11y.d2.description":"Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.","a11y.d3.description":"Adjacent links with the same URL should be merged into one link","a11y.d4.description":"The selected text appears to be a list. Lists should be formatted using a list tag.","a11y.d5a.description":"Large text must have a contrast ratio of at least 3:1","a11y.d5b.description":"Text must have a contrast ratio of at least 4.5:1","a11y.d5c.description":"Text must have a contrast ratio of at least 7:1","a11y.h93.description":"ID attribute must be unique","a11y.h93.repair.info":"Make ID unique","a11y.h93.repair.deduplicate.others":"Keep this ID and remove all others","a11y.h93.repair.deduplicate.this":"Remove this ID","a11y.h93.repair.deduplicate.all":"Remove all IDs","a11y.i1.description":"Image must be marked as decorative or have an alternative text description","a11y.i1.description.conflicting":"This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.","a11y.i1.description.decorativeNotAllowed":"Decorative images are not allowed. Please add a text description.","a11y.i1.description.incompleteNoDecorative":"Image needs a text description","a11y.i1.repair.info":"Add a text description","a11y.i1.repair.info.decorativeNotAllowed":"Add a text description for this image","a11y.i1.repair.errors.duplicate":"Text description should not be the image filename","a11y.i1.repair.errors.empty":"Text description cannot be empty","a11y.i1.repair.errors.emptyNoDecorative":"Text description cannot be empty","a11y.i1.repair.info.decorativeAllowed":"Or add a text description","a11y.i1.repair.checkboxlabel":"Mark as decorative","a11y.i1.repair.checkboxtext":"This image is decorative","a11y.i2.description":"Image needs a text description","a11y.i2.repair.info":"Add a text description for this image","a11y.i2.repair.errors.empty":"Text description cannot be empty","a11y.i3.description":"Text description should describe the image, not the filename","a11y.i3.repair.info":"Replace filename with a meaningful description","a11y.i4.description":"Text description is too long","a11y.i4.repair.info":"Shorten the text description","a11y.i4.repair.errors.empty":"Text description cannot be empty","a11y.i4.repair.error":"{0} characters (maximum {1} allowed)","a11y.t1.description":"Tables must have captions","a11y.t1.repair.errors.duplicate":"Table caption cannot be the same as the table summary","a11y.t1.repair.errors.empty":"Caption cannot be empty","a11y.t1.repair.info":"Provide caption","a11y.t2.description":"Complex tables should have summaries","a11y.t2.repair.errors.duplicate":"Table summary cannot be the same as the table caption","a11y.t2.repair.errors.empty":"Summary cannot be empty","a11y.t2.repair.info":"Provide table summary","a11y.t3.description":"Table caption and summary cannot have the same value","a11y.t4a.description":"Table elements must contain TR and TD tags","a11y.t4b.description":"Tables must have at least one header cell","a11y.t4b.repair.info":"Choose table header","a11y.t4c.description":"Table headers must be applied to a row or a column","a11y.t4c.repair.header.col":"Header column","a11y.t4c.repair.header.row":"Header row","a11y.t4c.repair.info":"Select header scope","a11y.t4c.repair.scope.col":"Column","a11y.t4c.repair.scope.colgroup":"Column group","a11y.t4c.repair.scope.row":"Row","a11y.t4c.repair.scope.rowgroup":"Row group","a11y.widget.counter":"Issue {0} of {1}","a11y.widget.ignore":"Ignore","a11y.widget.issue.none":"No accessibility issues detected","a11y.widget.next":"Next issue","a11y.widget.previous":"Previous issue","a11y.widget.legacyrepair":"Repair issue","a11y.widget.repair":"Repair","a11y.widget.title":"Accessibility Checker","a11y.widget.help.title":"Click for more info","a11y.control.tooltip":"Accessibility checker","a11y.control.menutext":"Accessibility checker...","a11y.issue.dialog.tagname.Text":"Text","a11y.issue.dialog.tagname.Image":"Image","a11y.issue.dialog.tagname.Table":"Table","a11y.issue.dialog.tagname.Link":"Link",error:"Error",warning:"Warning",info:"Info",success:"Success",solution:"Solution",moreInfo:"More info",quotation:'"{0}"'},Nt=e=>Et[e],Pt=e=>{const t=tinymce.util.I18n;return Array.isArray(e)?t.translate([Nt(e[0]),...e.slice(1)]):t.translate(Nt(e))},Lt=(()=>{const e="ephox-foam".replace(/\./g,"-");return{resolve:t=>e+"-"+t}})().resolve,Mt=(e,t,r)=>{Se(e,t,r)},Ot=(e,t,r)=>{De(e,t),De(e,r)},Ht=e=>{const t=e.editor;return{start:t=>{((e,t,r,n,o,a)=>{A(e,(e=>{const r=((e,t,r,n)=>{switch(e){case"info":return f.some(t);case"warning":return f.some(r);case"error":return f.some(n);default:return f.none()}})(e.severity,n,o,a).toArray().concat([t]);A(r,(t=>{Se(e.element,t,1)}))})),f.from(e[0]).each((e=>{Mt(e.element,r,e.severity)}))})(t,e.violation,e.current,e.info,e.warn,e.error)},moveTo:(r,n)=>{((e,t,r,n)=>{const o=Fe(e,"["+t+"]");A(o,(e=>{De(e,t)})),Mt(r,t,n)})(X(t.getBody()),e.current,r,n)},stop:()=>{((e,t,r,n,o,a)=>{const i=Fe(e,"["+t+"]");A(i,(e=>{A([t,r,n,o,a],(t=>{De(e,t)})),Ot(e,t,r)}))})(X(t.getBody()),e.violation,e.current,e.info,e.warn,e.error)},exclude:t=>{Ot(t,e.violation,e.current)}}},Wt="data-"+Lt("a11y-current-violation"),qt="data-"+Lt("a11y-violation"),Gt="data-"+Lt("a11y-severity-info"),Bt="data-"+Lt("a11y-severity-warn"),Vt="data-"+Lt("a11y-severity-error"),jt="data-"+Lt("accessibility-ignore"),zt=p(jt),Ut=e=>{const t=(e=>Oe(e,oe).exists(Ve))(e);return t&&oe(e)&&Ve(e)},Ft=(e,t)=>T(e.querySelectorAll(t),(e=>Ut(X(e)))),Kt=e=>Te(e,"aria-labelledby").filter((e=>""!==e.trim())).isSome(),Zt=e=>{const t=Te(e,"alt"),r=Te(e,"role"),n=Te(e,"aria-label"),o=Te(e,"aria-labelledby"),a=Te(e,"title"),i=t.isSome(),s=t.exists((e=>""===e.trim())),l=t.exists((e=>e.trim().length>0)),c=r.exists((e=>{const t=e.toLowerCase();return"presentation"===t||"none"===t})),d=i&&!s&&t.exists((e=>e.trim().length>0)),u=n.exists((e=>e.trim().length>0)),p=Kt(e),m=a.exists((e=>e.trim().length>0)),h=d||u||p||m,g=i||n.isSome()||o.isSome()||a.isSome()||c,y=i&&s||c,v=h&&!y,f=r.exists((e=>""===e.trim())),w=a.exists((e=>e.trim().length>0)),b=y&&(n.isSome()||o.isSome()||w);return{isDecorativePattern:y,isInformativePattern:v,hasConflictingSignals:c&&(l||u||p)||f||b,hasAnyAccessibilityAttribute:g,hasValidTextAlternative:h,isEmpty:!g}},Qt=e=>e.hasConflictingSignals?"mixed_signals":e.isDecorativePattern?"decorative":e.isInformativePattern?"informative":(e.isEmpty,"incomplete");class Xt{constructor(){this.cache=new Map}getAnalysis(e){const t=e.dom;return this.cache.has(t)||this.cache.set(t,Zt(e)),this.cache.get(t)}getIntent(e){const t=this.getAnalysis(e);return Qt(t)}clear(){this.cache.clear()}}const Yt=(e,t,r,n)=>_(t,(t=>["I1","I2","I3","I4"].includes(t.id)?t.check(e,n,r)?[{rule:t,element:e}]:[]:t.check(e,n)?[{rule:t,element:e}]:[])),Jt=(e,t)=>{var r,n;let o=[];const a=new Xt,s=(e=>{const t=[],r=[];for(let o=0,a=e.length;oY(t,e)))&&oe(t)&&Ut(t)){const n={allowDecorative:e.allowDecorative,intentCache:a,altTextMaxLength:e.altTextMaxLength},i=Yt(t.dom,c,n,null!==(r=e.ignoreSelectors)&&void 0!==r?r:[]);o=o.concat(i)}}const p=((e,t,r)=>_(t,(t=>S(t.check(e,r),(e=>({rule:t,element:e}))))))(t,d,null!==(n=e.ignoreSelectors)&&void 0!==n?n:[]);o=o.concat(p),o.sort(((e,t)=>((e,t)=>e===t?0:((e,t)=>((e,t,r)=>!!(e.compareDocumentPosition(t)&r))(e,t,Node.DOCUMENT_POSITION_PRECEDING))(e,t)?1:-1)(e.element,t.element)));const m=(e=>{const t=new Map;A(e,(e=>{var r;const n=e.element;t.has(n)||t.set(n,[]),null===(r=t.get(n))||void 0===r||r.push(e)}));const r=[],n=["I1","I2","I3","I4"];return t.forEach((e=>{let t=null;for(const r of n)if(C(e,(e=>e.rule.id===r))){t=r;break}if(t){const o=T(e,(e=>!n.includes(e.rule.id)||e.rule.id===t));r.push(...o)}else r.push(...e)})),r})(o);return a.clear(),m},er=p("error"),tr=p("warning"),rr=(e,t)=>{const r=e;return r.matches?r.matches(t):r.webkitMatchesSelector?r.webkitMatchesSelector(t):r.mozMatchesSelector?r.mozMatchesSelector(t):!!r.msMatchesSelector&&r.msMatchesSelector(t)},nr=(e,t)=>ir(e,t).isSome(),or=(e,t)=>((e,t)=>C(t,(t=>Y(e,t))))(e,t)?he(e).bind((e=>or(e,t))):f.some(e),ar=e=>{return(t=e,Me.getOption(t)).filter((e=>K(e.trim())));var t},ir=(e,t)=>He(e,(e=>ar(e).orThunk((()=>{const r=or(e,t).getOr(e);return ar(r)})).isSome())),sr="strong,b",lr=(e,t,r)=>ir(e,r).fold((()=>((e,t)=>{for(let r=0,n=e.length;rlr(e,t,r)))),(e=>((e,t)=>We(e,sr,(e=>ee(e,t))).isSome())(e,t))),cr={id:"D1",wcag:"1.3.1",severity:tr(),desckey:"a11y.d1.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H42.html",walkable:!0,check:(e,t)=>{const r=X(e);return!(!rr(e,"p")||!Ke(r,sr))&&lr(r,r,t)},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},dr={id:"D2",wcag:"1.3.1",severity:er(),desckey:"a11y.d2.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G141.html",walkable:!1,check:e=>{const t=Ft(e,"h1,h2,h3,h4,h5,h6");let r;const n=[];return A(t,(e=>{const t=parseInt(e.tagName.slice(1),10);r&&t-r>1&&n.push(e),r=t})),n},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},ur={id:"D3",wcag:"2.4.4",severity:er(),desckey:"a11y.d3.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H2.html",walkable:!1,check:e=>{const t=X(e),r=Fe(t,"a + a"),n=T(r,(e=>{const t=R(pe(e));return I(t,le("a"),(e=>{return!(ie(t=e)&&(r=(e=>Me.get(e))(t).replace(/[\u200B-\u200D\uFEFF]/g,""),!K(r)));var t,r})).exists((t=>t.dom.href===e.dom.href))&&Ut(e)}));return S(n,(e=>e.dom))},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},pr=(e,t)=>{const r=e.nodeName,n=((e,t)=>{let r=e.nextSibling;for(;null!==r&&(t&&"#text"===r.nodeName||"BR"===r.nodeName);)r=r.nextSibling;return r})(e,t);return null!==n&&n.nodeName===r&&n},mr=(e,t,r)=>{const n=[];if(t(e)){n.push(e);let o=pr(e,r);for(;!1!==o&&t(o);)n.push(o),o=pr(o,r)}return n},hr=(e,t)=>{let r=-1;for(let n=0;n{const r=Ft(e,"p,h1,h2,h3,h4,h5,h6"),n=[];let o=0;for(;o1){n.push(e);const t=a[a.length-1],i=hr(r,t);o=-1===i?o+1:i}else l(e.firstChild)?(mr(e.firstChild,t,!1).length>1&&n.push(e),o++):o++}return n},yr=e=>{var t;return l(null===(t=e.textContent)||void 0===t?void 0:t.match(/^\s{0,}([a-z1-9]|i+)\s{0,}[.)-]/gim))},vr={id:"D4o",wcag:"1.3.1",severity:er(),desckey:"a11y.d4.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H48.html",walkable:!1,check:e=>gr(e,yr),levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},fr=e=>{var t;return l(null===(t=e.textContent)||void 0===t?void 0:t.match(/^\s{0,}(\*|-)\s{0,}/gim))},wr={id:"D4u",wcag:"1.3.1",severity:er(),desckey:"a11y.d4.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H48.html",walkable:!1,check:e=>gr(e,fr),levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},br=(e,t,r,n)=>({red:e,green:t,blue:r,alpha:n}),xr=e=>{const t=e=>e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4),r=e.red/255,n=e.green/255,o=e.blue/255;return.2126*t(r)+.7152*t(n)+.0722*t(o)},kr=(e,t)=>{const r=e.alpha+t.alpha*(1-e.alpha),n=(e.red*e.alpha+t.red*t.alpha*(1-e.alpha))/r,o=(e.green*e.alpha+t.green*t.alpha*(1-e.alpha))/r,a=(e.blue*e.alpha+t.blue*t.alpha*(1-e.alpha))/r;return br(Math.ceil(n),Math.ceil(o),Math.ceil(a),r)},Cr=e=>{const t=(e,t,r,n)=>{const o=parseInt(e,10),a=parseInt(t,10),i=parseInt(r,10),s=parseFloat(n);return f.some(br(o,a,i,s))};if("transparent"===e)return t("0","0","0","0");const r=/^rgb\((\d+),\s*(\d+),\s*(\d+)\)/.exec(e);if(null!==r)return t(r[1],r[2],r[3],"1");const n=/^rgba\((\d+),\s*(\d+),\s*(\d+),\s*(\d?(?:\.\d+)?)\)/.exec(e);return null!==n?t(n[1],n[2],n[3],n[4]):f.none()},Sr=(e,t)=>{const r=parseFloat(Pe(e,"opacity"));return r<1?br(t.red,t.green,t.blue,t.alpha*r):t},Ar=(e,t)=>Tr(e).filter((e=>e{const t=(e=>{const t=ce(e),r=Ne(t),n=[e].concat(((e,t)=>{const r=c(t)?t:y;let n=e.dom;const o=[];for(;null!==n.parentNode&&void 0!==n.parentNode;){const e=n.parentNode,t=X(e);if(o.push(t),!0===r(t))break;n=e}return o})(e,(e=>ee(e,r)))),o=D(n,((e,t)=>{if(1===e.alpha)return e;const r=Pe(t,"background-color");return Cr(r).bind((r=>{const n=Sr(t,r);return n.alpha>0?f.some(kr(e,n)):f.none()})).getOr(e)}),br(0,0,0,0));return o.alpha<1?kr(o,br(255,255,255,1)):o})(e);return((e,t)=>{const r=Pe(e,"color");return Cr(r).bind((r=>{const n=Sr(e,r),o=n.alpha<1?kr(n,t):n;return f.some(o)}))})(e,t).map((e=>{const r=xr(t);return((e,t)=>(Math.max(e,t)+.05)/(Math.min(e,t)+.05))(xr(e),r)}))},Dr={id:"D5c",wcag:"1.4.3",severity:er(),desckey:"a11y.d5c.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G17.html",walkable:!0,check:(e,t)=>{const r=X(e);return nr(r,t)&&Ar(r,7)},levels:[St()],htmlversions:[bt(),xt()]},Ir=e=>{const t=Pe(e,"font-size"),r=new RegExp(".*px").test(t),n=/(\d*\.?\d*)(.*)/.exec(t);return r&&null!==n?f.some(Number(n[1])):f.none()},$r=e=>{const t=(e=>{const t=Pe(e,"font-weight");return!("bold"!==t&&"bolder"!==t)||!!/^[0-9]*$/.test(r=t)&&parseInt(r,10)>=700;var r})(e),r=ce(e),n=Ne(r),o=Ir(n);return Ir(e).fold(y,(e=>o.fold((()=>e>=24||t&&e>=19),(r=>e>=1.5*r||t&&e>=1.2*r))))},_r={id:"D5a",wcag:"1.4.3",severity:er(),desckey:"a11y.d5a.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G145.html",walkable:!0,check:(e,t)=>{const r=X(e);return nr(r,t)&&$r(r)&&Ar(r,3)},levels:[Ct()],htmlversions:[bt(),xt()]},Rr={id:"D5b",wcag:"1.4.3",severity:er(),desckey:"a11y.d5b.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G18.html",walkable:!0,check:(e,t)=>{const r=X(e);return nr(r,t)&&!$r(r)&&Ar(r,4.5)},levels:[Ct()],htmlversions:[bt(),xt()]},Er={id:"H93",wcag:"4.1.1",severity:er(),desckey:"a11y.h93.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H93.html",walkable:!1,check:e=>{const t=X(e),r=Fe(t,"*[id]"),n=D(r,((e,t)=>{const r=Ae(t,"id");if(void 0!==r&&Ut(t)){if(H(e.problems,r))return e;if(H(e.ids,r)){const t=e.ids[r];return{...e,problems:{...e.problems,[r]:t}}}return{...e,ids:{...e.ids,[r]:t.dom}}}return e}),{ids:{},problems:{}});return((e,t)=>{const r=[];return P(e,((e,n)=>{r.push(t(e,n))})),r})(n.problems,m)},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},Nr=le("img"),Pr=(e,t)=>{var r,n,o;if(null==e||null==t||""===e.trim()||""===t.trim())return!1;const a=e.match(/(?:[A-Za-z][A-Za-z\d.+-]{0,14}:\/\/(?:[-.~*+=!&;:'%@?^${}(),\w]+@)?|www\.|[-;:&=+$,.\w]+@)[A-Za-z\d-]+(?:\.[A-Za-z\d-]+)*(?::\d+)?(?:\/(?:[-.~*+=!;:'%@$(),\/\w]*[-~*+=%@$()\/\w])?)?(?:\?(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?(?:#(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?/g);let i=null!==(o=null===(n=(null!==(r=null==a?void 0:a[0])&&void 0!==r?r:e).split("/").pop())||void 0===n?void 0:n.split("?")[0])&&void 0!==o?o:"";try{i=decodeURIComponent(i)}catch(e){console.error("Error decoding filename",e)}if(i.toLowerCase()===t.toLowerCase())return!0;const s=i.split(".").slice(0,-1).join(".");return!(!s||s.toLowerCase()!==t.toLowerCase())},Lr=e=>{const t=X(e);return Nr(t)?f.some(t):f.none()},Mr=(e,t)=>t?t.getIntent(e):Qt(Zt(e)),Or=(e,t,r)=>!!t&&"decorative"===Mr(e,r),Hr=e=>e.trim().length>0,Wr=e=>Te(e,"alt").filter(Hr).orThunk((()=>Te(e,"aria-label").filter(Hr))).orThunk((()=>Te(e,"title").filter(Hr))).getOr(""),qr={id:"I1",wcag:"1.1.1",severity:er(),desckey:"a11y.i1.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G95.html",walkable:!0,check:(e,t,r)=>Lr(e).filter((e=>{const t=Mr(e,null==r?void 0:r.intentCache);return"mixed_signals"===t||"incomplete"===t||!(null==r?void 0:r.allowDecorative)&&"decorative"===t})).isSome(),getDescriptionKey:(e,t)=>{const r=X(e),n=Qt(Zt(r)),o=null!=t&&t;return"mixed_signals"===n?o?"a11y.i1.description.conflicting":"a11y.i1.description.decorativeNotAllowed":o||"decorative"!==n?"incomplete"!==n||o?"a11y.i1.description":"a11y.i1.description.incompleteNoDecorative":"a11y.i1.description.decorativeNotAllowed"},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},Gr={id:"I2",wcag:"1.1.1",severity:er(),desckey:"a11y.i2.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/failures/F65.html",walkable:!0,check:(e,t,r)=>Lr(e).filter((e=>{if("decorative"===Mr(e,null==r?void 0:r.intentCache))return!1;if(!(e=>{const t=e.dom;return!(!t||!t.hasAttribute)&&t.hasAttribute("alt")})(e))return!0;const t=Te(e,"alt").exists((e=>e.trim().length>0)),n=Kt(e),o=Te(e,"aria-label").exists((e=>e.trim().length>0)),a=Te(e,"title").exists((e=>e.trim().length>0));return!(t||n||o||a)})).isSome(),levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},Br={id:"I3",wcag:"1.1.1",severity:er(),desckey:"a11y.i3.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G95.html",walkable:!0,check:(e,t,r)=>Lr(e).filter((e=>{if(Or(e,null==r?void 0:r.allowDecorative,null==r?void 0:r.intentCache))return!1;const t=Te(e,"src"),n=Te(e,"alt");return z(t,n,((e,t)=>Pr(e,t))).getOr(!1)})).isSome(),levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},Vr={id:"I4",wcag:"N/A",severity:tr(),desckey:"a11y.i4.description",url:"",walkable:!0,check:(e,t,r)=>Lr(e).filter((e=>{var t;if(Or(e,null==r?void 0:r.allowDecorative,null==r?void 0:r.intentCache))return!1;const n=Te(e,"alt"),o=null!==(t=null==r?void 0:r.altTextMaxLength)&&void 0!==t?t:150;return n.exists((e=>e.trim().length>o))})).isSome(),levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},jr={id:"T1",wcag:"1.3.1",severity:er(),desckey:"a11y.t1.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H39.html",walkable:!0,check:e=>{if(rr(e,"table")){const t=e.querySelector("caption");return!t||rr(t,":empty")}return!1},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},zr={id:"T2",wcag:"1.3.1",severity:tr(),desckey:"a11y.t2.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H73.html",walkable:!0,check:e=>rr(e,"table")&&l(e.querySelector("[rowspan]")||e.querySelector("[colspan]"))&&!e.hasAttribute("summary"),levels:[kt(),Ct(),St()],htmlversions:[bt()]},Ur={id:"T3",wcag:"1.3.1",severity:er(),desckey:"a11y.t3.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H73.html",walkable:!0,check:e=>{if(rr(e,"table")&&e.hasAttribute("summary")){const t=e.querySelectorAll("caption");return t.length>0&&e.getAttribute("summary")===t[0].innerHTML}return!1},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},Fr={id:"T4b",wcag:"1.3.1",severity:er(),desckey:"a11y.t4b.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H51.html",walkable:!0,check:e=>"table"===e.nodeName.toLowerCase()&&0===e.querySelectorAll("th").length,levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},Kr={id:"T4c",wcag:"1.3.1",severity:er(),desckey:"a11y.t4c.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H63.html",walkable:!0,check:e=>{return!("th"!==e.nodeName.toLowerCase()||(t=e).hasAttribute("scope")&&/row|col|rowgroup|colgroup/i.test(t.getAttribute("scope")));var t},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},Zr=(e,t)=>0===e.querySelectorAll(t).length,Qr={id:"T4a",wcag:"1.3.1",severity:er(),desckey:"a11y.t4a.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H51.html",walkable:!0,check:e=>{return"table"===e.nodeName.toLowerCase()&&(Zr(t=e,"tr")||Zr(t,"td"));var t},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},Xr=e=>{var t;const r=null===(t=e.caption)||void 0===t?void 0:t.innerHTML,n=r?`${r}`:"",o=e.rows,a=o.length,i=o[0],s=i?i.cells.length:0;return K(n)?`${n}. ${a}x${s}`:`${a}x${s}`},Yr=e=>({id:e.id.toUpperCase(),severity:e.severity,url:e.url,description:Pt(e.description),element:e.element.dom,contentID:e.contentId}),Jr=e=>{const t=(e=>{const t=(e=>{const t=e.options.get("a11ychecker_ignored_rules");return _(tinymce.explode(t),(e=>e.length>0?[e.toUpperCase()]:[]))})(e),r=Tt(e),n=Dt(e);return{rules:T([cr,dr,ur,vr,wr,_r,Rr,Dr,qr,Gr,Br,Vr,Er,jr,zr,Ur,Kr,Qr,Fr],(e=>!k(t,e.id.toUpperCase())&&k(e.levels,r)&&k(e.htmlversions,n))),allowDecorative:Rt(e),altTextMaxLength:_t(e),ignoreSelectors:["img[data-mce-placeholder]","[data-mce-bogus=all] *","[data-mce-bogus]","[data-mce-mergetag-affix]"]}})(e);(e=>{e.on("init",(()=>{A([jt,qt,Gt,Bt,Vt,Wt],(t=>{e.serializer.addTempAttr(t)}))}))})(e);const r=W(!1),n=(e=>Ht({editor:e,violation:qt,current:Wt,info:Gt,warn:Bt,error:Vt}))(e),o=zt();let a=[],i=0;const s=()=>{const r=Jt(t,e.getBody()),n=((e,t)=>S(t,(t=>{const r=t.rule,n=t.element,o=r.id.toUpperCase(),a=l(r.getDescriptionKey)?r.getDescriptionKey(n,Rt(e)):r.desckey,i=(e=>{const{tagName:t,value:r}=(t=>{const r=t.localName;if("img"===r){const t=e.getAttribute("src")||"";return{tagName:"a11y.issue.dialog.tagname.Image",value:t.startsWith("data:image")?t:t.split("/").pop()||"unknown_image"}}return"table"===r?{tagName:"a11y.issue.dialog.tagname.Table",value:Xr(t)}:"th"===r?{tagName:"a11y.issue.dialog.tagname.Table",value:Xr(t.closest("table"))}:"a"===r?{tagName:"a11y.issue.dialog.tagname.Link",value:e.getAttribute("href")||""}:{tagName:"a11y.issue.dialog.tagname.Text",value:e.textContent||""}})(e),n=(e=>{const t={"<":"<",">":">",'"':""","'":"'"};return e.replace(/[<>"']/g,(e=>t[e]))})(r.length>30?`${r.substring(0,30)}...`:r);return r?`
${Pt(t)}: ${Pt(["quotation",n])}
`:`
${Pt(t)}
`})(n);return{id:o,description:a,element:X(n),url:r.url,severity:r.severity,contentId:i}})))(e,r);return T(n,(t=>{const r=(a=t.element,Te(a,o).map((e=>e.split(" "))).getOr([])),n=$t(e);var a;return!k(r,t.id)&&n(Yr(t))}))},c=t=>(i+=t,i=i<0?i+a.length:i%a.length,n.moveTo(a[i].element,a[i].severity),e.selection.scrollIntoView(a[i].element.dom),{summaryLabel:Pt(["a11y.widget.counter",i+1,a.length]),issue:a[i],index:i+1}),d=()=>a.length>0?f.some(c(0)):f.none(),u=()=>{r.set(!0),a=s(),i=0},p=()=>{n.stop(),r.set(!1),i=0,a=[]};return{scan:()=>((e=>{e.dispatch("A11ycheckStart")})(e),u(),n.start(a),d()),stepIssue:c,getIssues:()=>a.slice(0),getCurrent:d,getReport:()=>{const e=r.get();try{return e||u(),S(a,Yr)}finally{e||p()}},resolveCurrent:t=>(t&&(((e,t,r)=>{const n=Te(e,t).map((e=>e.concat(" ",r))).getOr(r);Se(e,t,n)})(a[i].element,o,a[i].id),(e=>{e.dispatch("A11ycheckIgnore")})(e)),a=s(),d()),clear:p,isAuditing:()=>r.get()}},en=(e,t)=>{const r=t.ui.registry.getAll().icons;return f.from(r[e]).orThunk((()=>f.from(r["temporary-placeholder"]))).getOr("!not found!")},tn={success:"checkmark",info:"info",warning:"notice",error:"warning"},rn=(e,t,r,n,o,a,i,s)=>{const c=Pt(r),d=Pt(t),u=tn[r],p=s?`${(e=>{const t=(new Date).getTime(),r=Math.floor(window.crypto.getRandomValues(new Uint32Array(1))[0]/4294967295*1e9);return j++,e+"_"+r+j+String(t)})("announcement-live-region")}`:"announcement-live-region",m=`
${en(u,e)}

${c.toUpperCase()}

${a||""}

${d}

`+((e,t,r)=>{const n=Pt("a11y.widget.help.title"),o=Pt("moreInfo");return"help"===e?`${o}`:`
${en(e,t)}
`})(n,e,i)+"
";return setTimeout((()=>{const e=document.getElementById(p);if(l(e)){const t=o?`${o}, `:"",r=a?`: ${a}`:"";e.innerHTML=`${t}${c}${r}, ${d}`}}),100),m},nn=(e,t,r,n)=>({type:"listbox",label:t,name:e,items:S(r,(e=>({text:n(e.text),value:e.value})))}),on=(e,t)=>({type:"input",name:e,label:t}),an=(e,t,r)=>({type:"label",label:t,items:[{type:"checkbox",name:e,label:r}]}),sn=(e,t)=>({title:Pt("a11y.widget.title"),body:{type:"panel",items:[{type:"panel",classes:["tox-accessibility-issue","accessibility-issue--success"],items:[{type:"htmlpanel",html:rn(e,"a11y.widget.issue.none","success","checkmark"),presets:"presentation"}]}]},buttons:[{type:"submit",name:"ok",text:"OK",primary:!0}],onSubmit:e=>e.close(),onClose:t}),ln=(e,t,r)=>{e.redial(t),e.focus(r)};var cn;!function(e){e.Next="next",e.Prev="prev",e.Ignore="ignore",e.Ok="ok",e.Repair="repair"}(cn||(cn={}));const dn=({issue:e,summaryLabel:t},r,n,o,a,i)=>{const s=It(a),l=e=>dn(e,r,n,f.none(),a,i),c=o=>(s,{name:c})=>{if(c===cn.Next||c===cn.Prev){const e=r.stepIssue(c===cn.Next?1:-1);ln(s,l(e),c)}else c===cn.Ignore?r.resolveCurrent(!0).fold((()=>ln(s,sn(a,i),cn.Ok)),(e=>ln(s,l(e),cn.Ignore))):c===cn.Repair&&((o,s)=>{const c=s=>{ln(o,dn({issue:e,summaryLabel:t},r,n,f.some(s),a,i),cn.Repair)},d=()=>r.resolveCurrent(!1).fold((()=>r.scan().fold((()=>ln(o,sn(a,i),cn.Ok)),(e=>ln(o,l(e),cn.Ignore)))),(e=>ln(o,l(e),cn.Ignore)));s.each((t=>{t.repair(e.element,e.id,((e,t)=>{const r={},n={};return((e,t,r,n)=>{P(e,((e,o)=>{(t(e,o)?r:n)(e,o)}))})(e,t,O(r),O(n)),{t:r,f:n}})(o.getData(),((t,r)=>{return n=r,""===(o=e.id)||n.length>=o.length&&n.substr(0,0+o.length)===o;var n,o})).t,(e=>e.fold(c,d)))}))})(s,o)},d=t=>r=>t.each((t=>{t.onChange.each((t=>t(r,r.getData(),e))),t.shouldDisableRepair.each((t=>{const n=t(r.getData(),e);r.setEnabled(cn.Repair,!n)}))})),u=(r,n,o)=>{const l="warning"===(u=e.severity)?"warn":u;var u;const p=n.map((()=>({type:"panel",classes:["accessibility-issue__repair"],items:[{type:"panel",classes:["accessibility-issue__header"],items:[{type:"htmlpanel",html:`

${Pt("solution")}

`,presets:"presentation"}]},...n.map((e=>e.items)).getOr([])]}))).toArray();return{title:Pt("a11y.widget.title"),body:{type:"panel",classes:["tox-accessibility-issue",`accessibility-issue--${l}`],items:[{type:"panel",classes:["accessibility-issue__header"],items:[{type:"htmlpanel",html:`

${t}

`,presets:"presentation"},{type:"button",name:cn.Prev,text:Pt("a11y.widget.previous"),icon:"action-prev",borderless:!0},{type:"button",name:cn.Next,text:Pt("a11y.widget.next"),icon:"action-next",borderless:!0}]},{type:"htmlpanel",html:rn(a,e.description,e.severity,"help",t,e.contentId,s(e.id),!0),presets:"presentation"},...p]},buttons:[{type:"custom",name:cn.Ignore,text:Pt("a11y.widget.ignore")},{type:"custom",name:cn.Repair,text:Pt("a11y.widget.repair"),enabled:!o,primary:!0}],initialData:{...n.map((e=>e.initialData)).getOr({})},onAction:c(r),onChange:d(r),onClose:i}};return n(e.id).fold((()=>u(f.none(),f.none(),!0)),(t=>{const r=((e,t,r)=>{const n=t.element;return r.fold((()=>e.ui.map((e=>e(t.id,n)))),(r=>e.ui.map((e=>{const o=e(t.id,n);return{items:o.items.concat([(a=r.errorMessage,{type:"htmlpanel",html:`
${a}
`})]),initialData:{...o.initialData,...r.repairErrorData}};var a}))))})(t,e,o),n=z(t.shouldDisableRepair,r,((t,r)=>t(r.initialData,e))).getOr(!1);return u(f.some(t),r,n)}))},un=(e,t,r)=>B.error({errorMessage:t(e),repairErrorData:r}),pn=(e,t,r,n,o,a)=>0===t.trim().length?un(n,a,{}):mn(e,t,r,o,a),mn=(e,t,r,n,o)=>t===r?un(n,o,{}):B.value(e),hn=(e,t,r,n,o,a,i,s=150)=>((e,t,r,n,o)=>{const a=Te(e,"src").getOr(""),i=r[`${t}_textinput`];return r[`${t}_checkbox`]?gn(e):((e,t,r,n)=>0===t.trim().length?un(r,n,{}):B.value(e))(e,i,n.emptyMessage,o).bind((e=>((e,t,r,n,o)=>Pr(r,t)?un(n,o,{}):B.value(e))(e,i,a,n.clashMessage,o).bind((e=>n.lengthCheck?((e,t,r,n,o,a)=>{const i=`${t}_textinput`;return r.length>a?un([n,r.length,a],o,{[i]:r}):B.value(e)})(e,t,i,n.lengthCheck.errorMessage,o,n.lengthCheck.maxLength).map((()=>vn(e,i))):B.value(vn(e,i))))))})(e,t,r,{emptyMessage:n,clashMessage:o,lengthCheck:{errorMessage:a,maxLength:s}},i),gn=e=>(Se(e,"alt",""),Se(e,"role","presentation"),De(e,"title"),De(e,"aria-label"),De(e,"aria-labelledby"),De(e,"aria-describedby"),B.value(e)),yn=e=>{Te(e,"role").exists((e=>{const t=e.trim().toLowerCase();return"presentation"===t||"none"===t||""===t}))&&De(e,"role")},vn=(e,t)=>(Se(e,"alt",t),yn(e),e),fn=(e,t,r,n,o,a)=>{const i=Ae(e,"summary");return pn(e,r[t],i,n,o,a).map((n=>{const o=qe(e,"caption").fold((()=>Q("caption")),(e=>{var t;return(t=e).dom.textContent="",A(me(t),(e=>{Ie(e)})),e}));return((e,t)=>{e.dom.textContent=t})(o,r[t]),((e,t)=>{he(e).fold((()=>{ke(e,t)}),(r=>{e.dom.insertBefore(t.dom,r.dom)}))})(n,o),n}))},wn=e=>`${e}_checkbox`,bn=e=>`${e}_textinput`,xn=(e,t)=>{const r=on(bn(t),Pt(e?"a11y.i1.repair.info.decorativeAllowed":"a11y.i1.repair.info"));return e?[an(wn(t),Pt("a11y.i1.repair.checkboxlabel"),Pt("a11y.i1.repair.checkboxtext")),r]:[r]},kn=(e,t,r)=>{const n=Wr(e),o=t?{[wn(r)]:!1}:{};return{[bn(r)]:n,...o}},Cn=e=>e?f.some(((e,t)=>{var r;const n=null===(r=Ae(t.element,"role"))||void 0===r?void 0:r.toLowerCase().trim(),o="presentation"===n||"none"===n,a=""===n,i=Te(t.element,"alt").exists((e=>e.trim().length>0));return!(o&&i||a)&&((e,t)=>{const r=t.id,n=!0===e[wn(r)],o=e[bn(r)].length>0;return!n&&!o})(e,t)})):f.none(),Sn=e=>e?f.some(((e,t,r)=>{var n;const o=null===(n=Ae(r.element,"role"))||void 0===n?void 0:n.toLowerCase().trim(),a="presentation"===o||"none"===o,i=""===o,s=Te(r.element,"alt").exists((e=>e.trim().length>0));a&&s||i?e.setEnabled(cn.Repair,!0):((e,t,r)=>{const n=r.id,o=wn(n),a=bn(n);!0===t[o]?(e.setEnabled(a,!1),e.setEnabled(cn.Repair,!0)):(e.setEnabled(a,!0),t[a].length>0?(e.setEnabled(cn.Repair,!0),e.setEnabled(o,!0)):(e.setEnabled(o,!0),e.setEnabled(cn.Repair,!1)))})(e,t,r)})):f.none(),An=()=>Fe(Ne(X(document)),".tox-dialog"),Tn=(e,t)=>{const r=F(),n=F(),o=()=>{(e=>{e.dispatch("A11ycheckStop")})(e),n.get().each((e=>e.unbind())),n.clear(),r.clear(),t.clear()},a=()=>{const a=((e,t,r,n,o)=>t.scan().fold((()=>e(sn(n,o))),(a=>e(dn(a,t,r,f.none(),n,o)))))((t=>{const r=An(),o=e.windowManager.open(t,{inline:"toolbar"});var a,i;return(a=r,i=An(),$(i,(e=>!C(a,(t=>ee(t,e)))))).each((t=>{(t=>{n.set(we(t,"click",(t=>{Be(t.target,"a.tox-button--more-info-a11ychecker-link").each((t=>{(e=>{e.dispatch("A11ycheckShowDetails")})(e)}))})))})(t)})),o}),t,(e=>{const t=Rt(e),r=_t(e),n=(t,r)=>{e.undoManager.transact((()=>{const n=r();n.isValue()&&(e=>{e.dispatch("A11ycheckRepair")})(e),t(n)}))},o={H93:f.some({ui:f.some(((e,t)=>({items:[nn(e,Pt("a11y.h93.repair.info"),[{text:"a11y.h93.repair.deduplicate.others",value:"others"},{text:"a11y.h93.repair.deduplicate.this",value:"this"},{text:"a11y.h93.repair.deduplicate.all",value:"all"}],Pt)],initialData:{[e]:""}}))),repair:(t,r,o,a)=>{n(a,(()=>((e,t,r,n)=>{const o=r[t],a="all"===o||"this"===o;if("all"===o||"others"===o){const t=Ae(e,"id"),r=n.getBody(),o=X(r),a=Fe(o,`*[id="${t}"]`),i=T(a,(t=>!ee(t,e)));A(i,(e=>{De(e,"id")}))}return a&&De(e,"id"),B.value(e)})(t,r,o,e)))},shouldDisableRepair:f.none(),onChange:f.none()}),I1:f.some({ui:f.some(((e,r)=>{const n=Zt(r),o=Qt(n);return t||"decorative"!==o?{items:xn(t,e),initialData:kn(r,t,e)}:{items:[on(`${e}_textinput`,Pt("a11y.i1.repair.info.decorativeNotAllowed"))],initialData:{[`${e}_textinput`]:Wr(r)}}})),repair:(e,o,a,i)=>{const s=Zt(e),l=Qt(s);if("mixed_signals"===l){const t=a[wn(o)];n(i,(()=>t?gn(e):hn(e,o,a,"a11y.i1.repair.errors.empty","a11y.i1.repair.errors.duplicate","a11y.i4.repair.error",Pt,r).map((e=>{return yn(t=e),t;var t}))))}else n(i,t||"decorative"!==l?()=>hn(e,o,a,"a11y.i1.repair.errors.empty","a11y.i1.repair.errors.duplicate","a11y.i4.repair.error",Pt,r):()=>hn(e,o,a,"a11y.i1.repair.errors.emptyNoDecorative","a11y.i1.repair.errors.duplicate","a11y.i4.repair.error",Pt,r).map((e=>(yn(e),e))))},shouldDisableRepair:Cn(t),onChange:Sn(t)}),T1:f.some({ui:f.some(((e,t)=>({items:[on(e,Pt("a11y.t1.repair.info"))],initialData:{[e]:""}}))),repair:(e,t,r,o)=>{n(o,(()=>fn(e,t,r,"a11y.t1.repair.errors.empty","a11y.t1.repair.errors.duplicate",Pt)))},shouldDisableRepair:f.none(),onChange:f.none()}),T2:f.some({ui:f.some(((e,t)=>({items:[on(e,Pt("a11y.t2.repair.info"))],initialData:{[e]:""}}))),repair:(e,t,r,o)=>{n(o,(()=>((e,t,r,n,o,a)=>{const i=Ge(e,"caption").filter(oe).map(ze).getOr("");return pn(e,r[t],i,"a11y.t2.repair.errors.empty","a11y.t2.repair.errors.duplicate",a).map((n=>(Se(e,"summary",r[t]),n)))})(e,t,r,0,0,Pt)))},shouldDisableRepair:f.none(),onChange:f.none()}),T3:f.some({ui:f.some(((e,t)=>{const r=qe(t,"caption").fold(p(""),Re);return{items:[on(e,Pt("a11y.t1.repair.info"))],initialData:{[e]:r}}})),repair:(e,t,r,o)=>{n(o,(()=>fn(e,t,r,"a11y.t1.repair.errors.empty","a11y.t1.repair.errors.duplicate",Pt)))},shouldDisableRepair:f.none(),onChange:f.none()}),T4A:f.none(),T4B:f.some({ui:f.some(((e,t)=>({items:[nn(e,Pt("a11y.t4b.repair.info"),[{text:"a11y.t4c.repair.header.row",value:"row"},{text:"a11y.t4c.repair.header.col",value:"col"}],Pt)],initialData:{[e]:""}}))),repair:(e,t,r,o)=>{n(o,(()=>((e,t,r)=>{let n=[];if("row"===r[t]){const t=X(e.dom.rows[0]);n=Ue(t,"td")}else"col"===r[t]&&A(e.dom.rows,(e=>{qe(X(e),"td").each((e=>{n.push(e)}))}));return A(n,(e=>{const t=Q("th");A(e.dom.attributes,(r=>{Te(e,r.name).each((e=>Se(t,r.name,e)))})),t.dom.innerHTML=e.dom.innerHTML,xe(e,t),Ie(e)})),B.value(e)})(e,t,r)))},shouldDisableRepair:f.some(((e,t)=>!Ke(t.element,"td"))),onChange:f.none()}),T4C:f.some({ui:f.some(((e,t)=>({items:[nn(e,Pt("a11y.t4c.repair.info"),[{text:"a11y.t4c.repair.scope.row",value:"row"},{text:"a11y.t4c.repair.scope.col",value:"col"},{text:"a11y.t4c.repair.scope.rowgroup",value:"rowgroup"},{text:"a11y.t4c.repair.scope.colgroup",value:"colgroup"}],Pt)],initialData:{[e]:""}}))),repair:(e,t,r,o)=>{n(o,(()=>((e,t,r)=>(Se(e,"scope",r[t]),B.value(e)))(e,t,r)))},shouldDisableRepair:f.none(),onChange:f.none()}),D1:f.some({ui:f.some(((e,t)=>({items:[nn(e,Pt("a11y.d1.repair.info"),[{text:"a11y.d1.repair.block.h1",value:"h1"},{text:"a11y.d1.repair.block.h2",value:"h2"},{text:"a11y.d1.repair.block.h3",value:"h3"},{text:"a11y.d1.repair.block.h4",value:"h4"},{text:"a11y.d1.repair.block.h5",value:"h5"},{text:"a11y.d1.repair.block.h6",value:"h6"}],Pt)],initialData:{[e]:""}}))),repair:(e,t,r,o)=>{n(o,(()=>((e,t,r)=>{const n=ce(e),o=Q(r[t],n.dom),a=me(e),i=S(a,_e);Ce(o,i);const s=Fe(o,"b,strong");return A(s,$e),be(e,o),Ie(e),B.value(o)})(e,t,r)))},shouldDisableRepair:f.none(),onChange:f.none()}),D2:f.none(),D3:f.some({ui:f.none(),repair:(e,t,r,o)=>{n(o,(()=>(e=>{const t=R(pe(e));return $(t,le("a")).fold((()=>B.error({errorMessage:"Failed to find previous link",repairErrorData:{}})),(r=>{for(const e of t){if(ee(e,r))break;ie(e)&&Ie(e)}const n=me(e);return Ce(r,n),Ie(e),B.value(r)}))})(e)))},shouldDisableRepair:f.none(),onChange:f.none()}),I2:f.some({ui:f.some(((e,t)=>({items:[on(`${e}_textinput`,Pt("a11y.i2.repair.info"))],initialData:{[`${e}_textinput`]:Wr(t)}}))),repair:(e,t,o,a)=>{n(a,(()=>hn(e,t,o,"a11y.i2.repair.errors.empty","a11y.i1.repair.errors.duplicate","a11y.i4.repair.error",Pt,r)))},shouldDisableRepair:f.none(),onChange:f.none()}),I3:f.some({ui:f.some(((e,t)=>({items:[on(`${e}_textinput`,Pt("a11y.i3.repair.info"))],initialData:{[`${e}_textinput`]:Wr(t)}}))),repair:(e,t,o,a)=>{n(a,(()=>hn(e,t,o,"a11y.i1.repair.errors.empty","a11y.i1.repair.errors.duplicate","a11y.i4.repair.error",Pt,r)))},shouldDisableRepair:f.none(),onChange:f.none()}),I4:f.some({ui:f.some(((e,t)=>({items:[on(`${e}_textinput`,Pt("a11y.i4.repair.info"))],initialData:{[`${e}_textinput`]:Wr(t)}}))),repair:(e,t,o,a)=>{n(a,(()=>hn(e,t,o,"a11y.i4.repair.errors.empty","a11y.i1.repair.errors.duplicate","a11y.i4.repair.error",Pt,r)))},shouldDisableRepair:f.none(),onChange:f.none()})};return e=>o.hasOwnProperty(e)?o[e]:f.none()})(e),e,o);r.set(a)},i=e=>e.close();return e.ui.registry.addButton("a11ycheck",{tooltip:Pt("a11y.control.tooltip"),icon:"accessibility-check",onAction:a}),e.ui.registry.addMenuItem("a11ycheck",{icon:"accessibility-check",text:Pt("a11y.control.menutext"),onAction:a}),()=>r.get().fold(a,i)};((e,t)=>{const{i18n:r=!0}=t;r&&tinymce.PluginManager.requireLangPack(e,"ar,bg-BG,ca,cs,da,de,el,es,eu,fa,fi,fr-FR,he-IL,hi,hr,hu-HU,id,it,ja,kk,ko-KR,ms,nb-NO,nl,pl,pt-BR,pt-PT,ro,ru,sk,sl-SI,sv-SE,th-TH,tr,uk,vi,zh-CN,zh-TW"),tinymce.PluginManager.add(e,wt(e,t))})("a11ychecker",{setup:e=>{(e=>{const t=e.options.register;t("a11ychecker_allow_decorative_images",{processor:"boolean"});const n=[kt(),Ct(),St()];t("a11ychecker_level",{processor:e=>r(e)&&k(n,e),default:Ct()});const o=[bt(),xt()];t("a11ychecker_html_version",{processor:e=>r(e)&&k(o,e),default:xt()}),t("a11ychecker_issue_url_callback",{processor:"function",default:e=>`https://www.tiny.cloud/docs/tinymce/${tinymce.majorVersion}/a11ychecker/#${e}`}),t("a11ychecker_ignored_rules",{processor:"string",default:""}),t("a11ychecker_filter_issue",{processor:"function",default:v}),t("a11ychecker_alt_text_max_length",{processor:"number",default:150})})(e);const t=Jr(e),n=Tn(e,t);return{getReport:t.getReport,toggleaudit:n}}})}(); \ No newline at end of file diff --git a/plugins/a11ychecker/plugin.min.js b/plugins/a11ychecker/plugin.min.js index 6c3f76d1..9d688a02 100644 --- a/plugins/a11ychecker/plugin.min.js +++ b/plugins/a11ychecker/plugin.min.js @@ -4,7 +4,7 @@ * Copyright (c) 2023 Ephox Corporation DBA Tiny Technologies, Inc. * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ * - * Version: 7.0.0-22 + * Version: 8.3.0-112 */ -!function(){"use strict";const e=e=>{let t=e;return{get:()=>t,set:e=>{t=e}}},t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(r=o=e,(a=String).prototype.isPrototypeOf(r)||(null===(n=o.constructor)||void 0===n?void 0:n.name)===a.name)?"string":t;var r,o,a,n})(t)===e,r=e=>t=>typeof t===e,o=t("string"),a=t("object"),n=t("array"),i=r("boolean"),s=(void 0,e=>undefined===e);const l=e=>!(e=>null==e)(e),c=r("function"),u=r("number"),d=()=>{},p=e=>()=>e,h=e=>e,m=(e,t)=>e===t,y=e=>e(),g=p(!1),v=p(!0);class w{constructor(e,t){this.tag=e,this.value=t}static some(e){return new w(!0,e)}static none(){return w.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?w.some(e(this.value)):w.none()}bind(e){return this.tag?e(this.value):w.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:w.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return l(e)?w.some(e):w.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}w.singletonNone=new w(!1);const b=e=>parseInt(e,10),f=(e,t)=>{const r=e-t;return 0===r?0:r>0?1:-1},k=(e,t,r)=>({major:e,minor:t,patch:r}),x=e=>{const t=/([0-9]+)\.([0-9]+)\.([0-9]+)(?:(\-.+)?)/.exec(e);return t?k(b(t[1]),b(t[2]),b(t[3])):k(0,0,0)},A=Array.prototype.slice,C=Array.prototype.indexOf,T=Array.prototype.push,D=(e,t)=>((e,t)=>C.call(e,t))(e,t)>-1,I=(e,t)=>{for(let r=0,o=e.length;r{const r=e.length,o=new Array(r);for(let a=0;a{for(let r=0,o=e.length;r{const r=[];for(let o=0,a=e.length;o(S(e,((e,o)=>{r=t(r,e,o)})),r),O=(e,t,r)=>{for(let o=0,a=e.length;oO(e,t,g),R=(e,t)=>(e=>{const t=[];for(let r=0,o=e.length;r{const t=A.call(e,0);return t.reverse(),t},H=p("html4"),q=p("html5"),$=p("a"),G=p("aa"),P=p("aaa"),L=e=>t=>t.options.get(e),j=L("a11ychecker_css_url"),B=L("a11ychecker_level"),V=L("a11ychecker_html_version"),F=L("a11ychecker_issue_url_callback"),z=L("a11ychecker_filter_issue"),U=e=>{var t;return null!==(t=e.options.get("a11ychecker_allow_decorative_images"))&&void 0!==t?t:e.options.get("a11y_advanced_options")},K=tinymce.util.I18n,J={"a11y.d1.description":"This paragraph looks like a heading. If it is a heading, please select a heading level.","a11y.d1.repair.block.h1":"Heading 1","a11y.d1.repair.block.h2":"Heading 2","a11y.d1.repair.block.h3":"Heading 3","a11y.d1.repair.block.h4":"Heading 4","a11y.d1.repair.block.h5":"Heading 5","a11y.d1.repair.block.h6":"Heading 6","a11y.d1.repair.info":"Select a heading level:","a11y.d2.description":"Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.","a11y.d3.description":"Adjacent links with the same URL should be merged into one link","a11y.d4.description":"The selected text appears to be a list. Lists should be formatted using a list tag.","a11y.d5a.description":"Large text must have a contrast ratio of at least 3:1","a11y.d5b.description":"Text must have a contrast ratio of at least 4.5:1","a11y.d5c.description":"Text must have a contrast ratio of at least 7:1","a11y.h93.description":"ID attribute must be unique","a11y.h93.repair.info":"Make ID unique","a11y.h93.repair.deduplicate.others":"Keep this ID and remove all others","a11y.h93.repair.deduplicate.this":"Remove this ID","a11y.h93.repair.deduplicate.all":"Remove all IDs","a11y.i1.description.decorativeAllowed":"Images must be marked as decorative or have an alternative text description","a11y.i1.description.decorativeNotAllowed":"Images must have an alternative text description. Decorative images are not allowed.","a11y.i1.repair.errors.duplicate":"Alternative text cannot be the same as the filename","a11y.i1.repair.errors.empty":"Alternative text cannot be empty","a11y.i1.repair.info.decorativeAllowed":"Or provide alternative text:","a11y.i1.repair.info.decorativeNotAllowed":"Provide alternative text:","a11y.i1.repair.checkboxlabel":"Make image decorative:","a11y.i1.repair.checkboxtext":"Image is decorative","a11y.i2.description":"Alternative text must not be the same as the image filename","a11y.i2.repair.info":"Provide alternative text:","a11y.i3.description":"Image alternative text should be less than 100 characters","a11y.i3.repair.error":"Alternative text is {0} characters","a11y.t1.description":"Tables must have captions","a11y.t1.repair.errors.duplicate":"Table caption cannot be the same as the table summary","a11y.t1.repair.errors.empty":"Caption cannot be empty","a11y.t1.repair.info":"Provide caption:","a11y.t2.description":"Complex tables should have summaries","a11y.t2.repair.errors.duplicate":"Table summary cannot be the same as the table caption","a11y.t2.repair.errors.empty":"Summary cannot be empty","a11y.t2.repair.info":"Provide table summary:","a11y.t3.description":"Table caption and summary cannot have the same value","a11y.t4a.description":"Table elements must contain TR and TD tags","a11y.t4b.description":"Tables must have at least one header cell","a11y.t4b.repair.info":"Choose table header:","a11y.t4c.description":"Table headers must be applied to a row or a column","a11y.t4c.repair.header.col":"Header column","a11y.t4c.repair.header.row":"Header row","a11y.t4c.repair.info":"Select header scope:","a11y.t4c.repair.scope.col":"Column","a11y.t4c.repair.scope.colgroup":"Column group","a11y.t4c.repair.scope.row":"Row","a11y.t4c.repair.scope.rowgroup":"Row group","a11y.widget.counter":"Issue {0} of {1}","a11y.widget.ignore":"Ignore","a11y.widget.issue.none":"No accessibility issues detected","a11y.widget.next":"Next issue","a11y.widget.previous":"Previous issue","a11y.widget.legacyrepair":"Repair issue","a11y.widget.repair":"Repair","a11y.widget.title":"Accessibility Checker","a11y.widget.help.title":"Click for more info","a11y.control.tooltip":"Accessibility checker","a11y.control.menutext":"Accessibility checker...",error:"Error",warning:"Warning",info:"Info",success:"Success"},Q=e=>J[e],X=e=>Array.isArray(e)?K.translate([Q(e[0]),...e.slice(1)]):K.translate(Q(e)),Y=Object.keys,Z=Object.hasOwnProperty,ee=(e,t)=>{const r=Y(e);for(let o=0,a=r.length;o(t,r)=>{e[r]=t},re=(e,t)=>Z.call(e,t),oe="undefined"!=typeof window?window:Function("return this;")(),ae=(e,t)=>((e,t)=>{let r=null!=t?t:oe;for(let t=0;t{const t=ae("ownerDocument.defaultView",e);return a(e)&&((e=>((e,t)=>{const r=((e,t)=>ae(e,t))(e,t);if(null==r)throw new Error(e+" not available on this browser");return r})("HTMLElement",e))(t).prototype.isPrototypeOf(e)||/^HTML\w*Element$/.test(ne(e).constructor.name))},se=e=>t=>(e=>e.dom.nodeType)(t)===e,le=e=>ce(e)&&ie(e.dom),ce=se(1),ue=se(3),de=se(9),pe=se(11),he=e=>t=>ce(t)&&t.dom.nodeName.toLowerCase()===e,me=(e,t,r)=>{((e,t,r)=>{if(!(o(r)||i(r)||u(r)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",r,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,r+"")})(e.dom,t,r)},ye=(e,t)=>{const r=e.dom.getAttribute(t);return null===r?void 0:r},ge=(e,t)=>w.from(ye(e,t)),ve=(e,t)=>{e.dom.removeAttribute(t)},we=(e=>{const t="ephox-foam".replace(/\./g,"-");return{resolve:e=>t+"-"+e}})().resolve,be=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},fe=(e,t)=>{const r=(t||document).createElement(e);return be(r)},ke=be,xe=(e,t)=>{const r=e.dom;if(1!==r.nodeType)return!1;{const e=r;if(void 0!==e.matches)return e.matches(t);if(void 0!==e.msMatchesSelector)return e.msMatchesSelector(t);if(void 0!==e.webkitMatchesSelector)return e.webkitMatchesSelector(t);if(void 0!==e.mozMatchesSelector)return e.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")}},Ae=e=>1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType||0===e.childElementCount,Ce=(e,t)=>e.dom===t.dom,Te=e=>ke(e.dom.ownerDocument),De=e=>w.from(e.dom.parentNode).map(ke),Ie=e=>w.from(e.dom.previousSibling).map(ke),_e=e=>W(((e,t)=>{const r=[],o=e=>(r.push(e),t(e));let a=t(e);do{a=a.bind(o)}while(a.isSome());return r})(e,Ie)),Se=e=>_(e.dom.childNodes,ke),Ne=c(Element.prototype.attachShadow)&&c(Node.prototype.getRootNode)?e=>ke(e.dom.getRootNode()):e=>de(e)?e:Te(e),Me=e=>ke(e.dom.host),Oe=e=>{const t=ue(e)?e.dom.parentNode:e.dom;if(null==t||null===t.ownerDocument)return!1;const r=t.ownerDocument;return(e=>{const t=Ne(e);return pe(r=t)&&l(r.dom.host)?w.some(t):w.none();var r})(ke(t)).fold((()=>r.body.contains(t)),(o=Oe,a=Me,e=>o(a(e))));var o,a},Ee=e=>{const t=e.dom.body;if(null==t)throw new Error("Body is not available yet");return ke(t)},Re=(e,t)=>((e,r)=>N(Se(e),(e=>xe(e,t))))(e),We=(e,t)=>((e,t)=>{const r=void 0===t?document:t.dom;return Ae(r)?[]:_(r.querySelectorAll(e),ke)})(t,e),He=(e,t,r)=>{me(e,t,r)},qe=(e,t,r)=>{ve(e,t),ve(e,r)},$e=e=>{const t=e.editor;return{start:t=>{((e,t,r,o,a,n)=>{S(e,(e=>{const r=((e,t,r,o)=>{switch(e){case"info":return w.some(t);case"warning":return w.some(r);case"error":return w.some(o);default:return w.none()}})(e.severity,o,a,n).toArray().concat([t]);S(r,(t=>{me(e.element,t,1)}))})),w.from(e[0]).each((e=>{He(e.element,r,e.severity)}))})(t,e.violation,e.current,e.info,e.warn,e.error)},moveTo:(r,o)=>{((e,t,r,o)=>{const a=We(e,"["+t+"]");S(a,(e=>{ve(e,t)})),He(r,t,o)})(ke(t.getBody()),e.current,r,o)},stop:()=>{((e,t,r,o,a,n)=>{const i=We(e,"["+t+"]");S(i,(e=>{S([t,r,o,a,n],(t=>{ve(e,t)})),qe(e,t,r)}))})(ke(t.getBody()),e.violation,e.current,e.info,e.warn,e.error)},exclude:t=>{qe(t,e.violation,e.current)}}},Ge="data-"+we("a11y-current-violation"),Pe="data-"+we("a11y-violation"),Le="data-"+we("a11y-severity-info"),je="data-"+we("a11y-severity-warn"),Be="data-"+we("a11y-severity-error"),Ve="data-"+we("accessibility-ignore"),Fe=p(Ve),ze=(e,t,r)=>{let o=e.dom;const a=c(r)?r:g;for(;o.parentNode;){o=o.parentNode;const e=ke(o);if(t(e))return w.some(e);if(a(e))break}return w.none()},Ue=(e,t)=>E(e.dom.childNodes,(e=>t(ke(e)))).map(ke),Ke=(e,t,r)=>ze(e,(e=>xe(e,t)),r),Je=(e,t)=>Ue(e,(e=>xe(e,t))),Qe=(e,t)=>((e,t)=>{const r=void 0===t?document:t.dom;return Ae(r)?w.none():w.from(r.querySelector(e)).map(ke)})(t,e),Xe=(e,t,r)=>((e,t,r,o,a)=>((e,t)=>xe(e,t))(r,o)?w.some(r):c(a)&&a(r)?w.none():t(r,o,a))(0,Ke,e,t,r),Ye=(e,t=!1)=>{return Oe(e)?e.dom.isContentEditable:(r=e,Xe(r,"[contenteditable]")).fold(p(t),(e=>"true"===Ze(e)));var r},Ze=e=>e.dom.contentEditable,et=e=>{const t=(e=>ze(e,le).exists(Ye))(e);return t&&le(e)&&Ye(e)},tt=(e,t)=>N(e.querySelectorAll(t),(e=>et(ke(e)))),rt=(e,t,r)=>R(t,(t=>"I1"===t.id?t.check(e,r)?[{rule:t,element:e}]:[]:t.check(e)?[{rule:t,element:e}]:[])),ot=(e,t)=>{let r=[];const o=((e,t)=>{const r=[],o=[];for(let t=0,n=e.length;txe(t,e)))&&le(t)&&et(t)){const o=rt(t.dom,n,e.allowDecorativeImages);r=r.concat(o)}}const c=((e,t)=>R(t,(t=>_(t.check(e),(e=>({rule:t,element:e}))))))(t,i);return r=r.concat(c),r.sort(((e,t)=>((e,t)=>e===t?0:((e,t)=>((e,t,r)=>0!=(e.compareDocumentPosition(t)&r))(e,t,Node.DOCUMENT_POSITION_PRECEDING))(e,t)?1:-1)(e.element,t.element))),r},at=(e,t)=>Qe(e,t).isSome(),nt=p("error"),it=p("warning"),st=(e,t)=>{const r=e;return r.matches?r.matches(t):r.webkitMatchesSelector?r.webkitMatchesSelector(t):r.mozMatchesSelector?r.mozMatchesSelector(t):!!r.msMatchesSelector&&r.msMatchesSelector(t)},lt=e=>e.length>0,ct=((e,t)=>{const r=t=>e(t)?w.from(t.dom.nodeValue):w.none();return{get:t=>{if(!e(t))throw new Error("Can only get text value of a text node");return r(t).getOr("")},getOption:r,set:(t,r)=>{if(!e(t))throw new Error("Can only set raw text value of a text node");t.dom.nodeValue=r}}})(ue),ut=e=>ct.get(e),dt=e=>pt(e).isSome(),pt=e=>Ue(e,(e=>ue(e)&<(ut(e).trim()))),ht="strong,b",mt=(e,t)=>pt(e).fold((()=>((e,t)=>{for(let r=0,o=e.length;rmt(e,t)))),(e=>((e,t)=>Ke(e,ht,(e=>Ce(e,t))).isSome())(e,t))),yt={id:"D1",wcag:"1.3.1",severity:it(),desckey:"a11y.d1.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H42.html",walkable:!0,check:e=>{const t=ke(e);return!(!st(e,"p")||!at(t,ht))&&mt(t,t)},levels:[$(),G(),P()],htmlversions:[H(),q()]},gt={id:"D2",wcag:"1.3.1",severity:nt(),desckey:"a11y.d2.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G141.html",walkable:!1,check:e=>{const t=tt(e,"h1,h2,h3,h4,h5,h6");let r;const o=[];return S(t,(e=>{const t=parseInt(e.tagName.slice(1),10);r&&t-r>1&&o.push(e),r=t})),o},levels:[$(),G(),P()],htmlversions:[H(),q()]},vt={id:"D3",wcag:"2.4.4",severity:nt(),desckey:"a11y.d3.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H2.html",walkable:!1,check:e=>{const t=ke(e),r=We(t,"a + a"),o=N(r,(e=>{const t=W(_e(e));return O(t,he("a"),(e=>{return!(ue(t=e)&&(r=ut(t).replace(/[\u200B-\u200D\uFEFF]/g,""),!lt(r)));var t,r})).exists((t=>t.dom.href===e.dom.href))&&et(e)}));return _(o,(e=>e.dom))},levels:[$(),G(),P()],htmlversions:[H(),q()]},wt=(e,t)=>{const r=e.nodeName,o=((e,t)=>{let r=e.nextSibling;for(;null!==r&&(t&&"#text"===r.nodeName||"BR"===r.nodeName);)r=r.nextSibling;return r})(e,t);return null!==o&&o.nodeName===r&&o},bt=(e,t,r)=>{const o=[];if(t(e)){o.push(e);let a=wt(e,r);for(;!1!==a&&t(a);)o.push(a),a=wt(a,r)}return o},ft=(e,t)=>{let r=-1;for(let o=0;o{const r=tt(e,"p,h1,h2,h3,h4,h5,h6"),o=[];let a=0;for(;a1){o.push(e);const t=n[n.length-1],i=ft(r,t);a=-1===i?a+1:i}else l(e.firstChild)?(bt(e.firstChild,t,!1).length>1&&o.push(e),a++):a++}return o},xt=e=>{var t;return l(null===(t=e.textContent)||void 0===t?void 0:t.match(/^\s{0,}([a-z1-9]|i+)\s{0,}[.)-]/gim))},At={id:"D4o",wcag:"1.3.1",severity:nt(),desckey:"a11y.d4.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H48.html",walkable:!1,check:e=>kt(e,xt),levels:[$(),G(),P()],htmlversions:[H(),q()]},Ct=e=>{var t;return l(null===(t=e.textContent)||void 0===t?void 0:t.match(/^\s{0,}(\*|-)\s{0,}/gim))},Tt={id:"D4u",wcag:"1.3.1",severity:nt(),desckey:"a11y.d4.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H48.html",walkable:!1,check:e=>kt(e,Ct),levels:[$(),G(),P()],htmlversions:[H(),q()]},Dt=(e,t)=>{const r=e.dom,o=window.getComputedStyle(r).getPropertyValue(t);return""!==o||Oe(e)?o:It(r,t)},It=(e,t)=>(e=>void 0!==e.style&&c(e.style.getPropertyValue))(e)?e.style.getPropertyValue(t):"",_t=(e,t,r,o)=>({red:e,green:t,blue:r,alpha:o}),St=e=>{const t=e=>e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4),r=e.red/255,o=e.green/255,a=e.blue/255;return.2126*t(r)+.7152*t(o)+.0722*t(a)},Nt=(e,t)=>{const r=e.alpha+t.alpha*(1-e.alpha),o=(e.red*e.alpha+t.red*t.alpha*(1-e.alpha))/r,a=(e.green*e.alpha+t.green*t.alpha*(1-e.alpha))/r,n=(e.blue*e.alpha+t.blue*t.alpha*(1-e.alpha))/r;return _t(Math.ceil(o),Math.ceil(a),Math.ceil(n),r)},Mt=e=>{const t=(e,t,r,o)=>{const a=parseInt(e,10),n=parseInt(t,10),i=parseInt(r,10),s=parseFloat(o);return w.some(_t(a,n,i,s))};if("transparent"===e)return t("0","0","0","0");const r=/^rgb\((\d+),\s*(\d+),\s*(\d+)\)/.exec(e);if(null!==r)return t(r[1],r[2],r[3],"1");const o=/^rgba\((\d+),\s*(\d+),\s*(\d+),\s*(\d?(?:\.\d+)?)\)/.exec(e);return null!==o?t(o[1],o[2],o[3],o[4]):w.none()},Ot=(e,t)=>{const r=parseFloat(Dt(e,"opacity"));return r<1?_t(t.red,t.green,t.blue,t.alpha*r):t},Et=(e,t)=>Rt(e).filter((e=>e{const t=(e=>{const t=Te(e),r=Ee(t),o=[e].concat(((e,t)=>{const r=c(t)?t:g;let o=e.dom;const a=[];for(;null!==o.parentNode&&void 0!==o.parentNode;){const e=o.parentNode,t=ke(e);if(a.push(t),!0===r(t))break;o=e}return a})(e,(e=>Ce(e,r)))),a=M(o,((e,t)=>{if(1===e.alpha)return e;const r=Dt(t,"background-color");return Mt(r).bind((r=>{const o=Ot(t,r);return o.alpha>0?w.some(Nt(e,o)):w.none()})).getOr(e)}),_t(0,0,0,0));return a.alpha<1?Nt(a,_t(255,255,255,1)):a})(e);return((e,t)=>{const r=Dt(e,"color");return Mt(r).bind((r=>{const o=Ot(e,r),a=o.alpha<1?Nt(o,t):o;return w.some(a)}))})(e,t).map((e=>{const r=St(t);return((e,t)=>(Math.max(e,t)+.05)/(Math.min(e,t)+.05))(St(e),r)}))},Wt={id:"D5c",wcag:"1.4.3",severity:nt(),desckey:"a11y.d5c.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G17.html",walkable:!0,check:e=>{const t=ke(e);return dt(t)&&Et(t,7)},levels:[P()],htmlversions:[H(),q()]},Ht=e=>{const t=Dt(e,"font-size"),r=new RegExp(".*px").test(t),o=/(\d*\.?\d*)(.*)/.exec(t);return r&&null!==o?w.some(Number(o[1])):w.none()},qt=e=>{const t=(e=>{const t=Dt(e,"font-weight");return!("bold"!==t&&"bolder"!==t)||!!/^[0-9]*$/.test(r=t)&&parseInt(r,10)>=700;var r})(e),r=Te(e),o=Ee(r),a=Ht(o);return Ht(e).fold(g,(e=>a.fold((()=>e>=24||t&&e>=19),(r=>e>=1.5*r||t&&e>=1.2*r))))},$t={id:"D5a",wcag:"1.4.3",severity:nt(),desckey:"a11y.d5a.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G145.html",walkable:!0,check:e=>{const t=ke(e);return dt(t)&&qt(t)&&Et(t,3)},levels:[G()],htmlversions:[H(),q()]},Gt={id:"D5b",wcag:"1.4.3",severity:nt(),desckey:"a11y.d5b.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G18.html",walkable:!0,check:e=>{const t=ke(e);return dt(t)&&!qt(t)&&Et(t,4.5)},levels:[G()],htmlversions:[H(),q()]},Pt={id:"H93",wcag:"4.1.1",severity:nt(),desckey:"a11y.h93.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H93.html",walkable:!1,check:e=>{const t=ke(e),r=We(t,"*[id]"),o=M(r,((e,t)=>{const r=ye(t,"id");if(void 0!==r&&et(t)){if(re(e.problems,r))return e;if(re(e.ids,r)){const t=e.ids[r];return{...e,problems:{...e.problems,[r]:t}}}return{...e,ids:{...e.ids,[r]:t.dom}}}return e}),{ids:{},problems:{}});return((e,t)=>{const r=[];return ee(e,((e,o)=>{r.push(t(e,o))})),r})(o.problems,h)},levels:[$(),G(),P()],htmlversions:[H(),q()]},Lt=he("img"),jt={id:"I1",wcag:"1.1.1",severity:nt(),desckey:"a11y.i1.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G95.html",walkable:!0,check:(e,t)=>{const r=ke(e);if(!Lt(r))return!1;const o=ge(r,"alt"),a=o.isSome(),n=o.exists((e=>""===e.trim())),i=((e,t,r=m)=>e.exists((e=>r(e,t))))(ge(r,"role"),"presentation");return!a||(t?a&&n&&!i||a&&!n&&i:n||i)},levels:[$(),G(),P()],htmlversions:[H(),q()]},Bt={id:"I2",wcag:"1.1.1",severity:nt(),desckey:"a11y.i2.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G95.html",walkable:!0,check:e=>(e=>st(e,"img[alt][src]"))(e)&&e.src.split("/").pop()===e.alt.split("/").pop(),levels:[$(),G(),P()],htmlversions:[H(),q()]},Vt={id:"I3",wcag:"N/A",severity:it(),desckey:"a11y.i3.description",url:"",walkable:!0,check:e=>{const t=ke(e);return!!Lt(t)&&ge(t,"alt").exists((e=>e.length>100))},levels:[$(),G(),P()],htmlversions:[H(),q()]},Ft={id:"T1",wcag:"1.3.1",severity:nt(),desckey:"a11y.t1.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H39.html",walkable:!0,check:e=>{if(st(e,"table")){const t=e.querySelector("caption");return!t||st(t,":empty")}return!1},levels:[$(),G(),P()],htmlversions:[H(),q()]},zt={id:"T2",wcag:"1.3.1",severity:it(),desckey:"a11y.t2.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H73.html",walkable:!0,check:e=>st(e,"table")&&l(e.querySelector("[rowspan]")||e.querySelector("[colspan]"))&&!e.hasAttribute("summary"),levels:[$(),G(),P()],htmlversions:[H()]},Ut={id:"T3",wcag:"1.3.1",severity:nt(),desckey:"a11y.t3.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H73.html",walkable:!0,check:e=>{if(st(e,"table")&&e.hasAttribute("summary")){const t=e.querySelectorAll("caption");return t.length>0&&e.getAttribute("summary")===t[0].innerHTML}return!1},levels:[$(),G(),P()],htmlversions:[H(),q()]},Kt={id:"T4b",wcag:"1.3.1",severity:nt(),desckey:"a11y.t4b.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H51.html",walkable:!0,check:e=>"table"===e.nodeName.toLowerCase()&&0===e.querySelectorAll("th").length,levels:[$(),G(),P()],htmlversions:[H(),q()]},Jt={id:"T4c",wcag:"1.3.1",severity:nt(),desckey:"a11y.t4c.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H63.html",walkable:!0,check:e=>{return!("th"!==e.nodeName.toLowerCase()||(t=e).hasAttribute("scope")&&/row|col|rowgroup|colgroup/i.test(t.getAttribute("scope")));var t},levels:[$(),G(),P()],htmlversions:[H(),q()]},Qt=(e,t)=>0===e.querySelectorAll(t).length,Xt={id:"T4a",wcag:"1.3.1",severity:nt(),desckey:"a11y.t4a.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H51.html",walkable:!0,check:e=>{return"table"===e.nodeName.toLowerCase()&&(Qt(t=e,"tr")||Qt(t,"td"));var t},levels:[$(),G(),P()],htmlversions:[H(),q()]},Yt=e=>({id:e.id.toUpperCase(),severity:e.severity,url:e.url,description:X(e.description),element:e.element.dom}),Zt=t=>{const r=(e=>{const t=(e=>{const t=e.options.get("a11ychecker_ignored_rules");return R(tinymce.explode(t),(e=>e.length>0?[e.toUpperCase()]:[]))})(e),r=B(e),o=V(e);return{rules:N([yt,gt,vt,At,Tt,$t,Gt,Wt,Pt,jt,Bt,Vt,Ft,zt,Ut,Jt,Xt,Kt],(e=>!D(t,e.id.toUpperCase())&&D(e.levels,r)&&D(e.htmlversions,o))),allowDecorativeImages:U(e),ignoreSelectors:["img[data-mce-placeholder]","[data-mce-bogus=all] *","[data-mce-bogus]","[data-mce-mergetag-affix]"]}})(t);(e=>{e.on("init",(()=>{S([Ve,Pe,Le,je,Be,Ge],(t=>{e.serializer.addTempAttr(t)}))}))})(t);const o=e(!1),a=(e=>$e({editor:e,violation:Pe,current:Ge,info:Le,warn:je,error:Be}))(t),n=Fe();let i=[],s=0;const l=()=>{const e=ot(r,t.getBody()),o=((e,t)=>_(t,(t=>{const r=t.rule;return{id:r.id.toUpperCase(),description:"I1"!==r.id?r.desckey:U(e)?`${r.desckey}.decorativeAllowed`:`${r.desckey}.decorativeNotAllowed`,element:ke(t.element),url:r.url,severity:r.severity}})))(t,e);return N(o,(e=>{const r=(a=e.element,ge(a,n).map((e=>e.split(" "))).getOr([])),o=z(t);var a;return!D(r,e.id)&&o(Yt(e))}))},c=e=>(s+=e,s=s<0?s+i.length:s%i.length,a.moveTo(i[s].element,i[s].severity),t.selection.scrollIntoView(i[s].element.dom),{summaryLabel:X(["a11y.widget.counter",s+1,i.length]),issue:i[s],index:s+1}),u=()=>i.length>0?w.some(c(0)):w.none(),d=()=>{o.set(!0),i=l(),s=0},p=()=>{a.stop(),o.set(!1),s=0,i=[]};return{scan:()=>(d(),a.start(i),u()),stepIssue:c,getIssues:()=>i.slice(0),getCurrent:u,getReport:()=>{const e=o.get();try{return e||d(),_(i,Yt)}finally{e||p()}},resolveCurrent:e=>(e&&((e,t,r)=>{const o=ge(e,t).map((e=>e.concat(" ",r))).getOr(r);me(e,t,o)})(i[s].element,n,i[s].id),i=l(),u()),clear:p,isAuditing:()=>o.get()}},er=(e,t)=>{const r=t.ui.registry.getAll().icons;return w.from(r[e]).orThunk((()=>w.from(r["temporary-placeholder"]))).getOr("!not found!")},tr={success:"checkmark",info:"info",warning:"notice",error:"warning"},rr=(e,t,r,o,a)=>{const n=X(r),i=X(t);return`
${er(tr[r],e)}

${n}

${i}

`+((e,t,r)=>{const o=`
${er(e,t)}
`;return"help"===e?o:`
${er(e,t)}
`})(o,e,a)+"
"},or=(e,t,r,o)=>({type:"listbox",label:t,name:e,items:_(r,(e=>({text:o(e.text),value:e.value})))}),ar=(e,t)=>({type:"input",name:e,label:t}),nr=(e,t,r)=>({type:"label",label:t,items:[{type:"checkbox",name:e,label:r}]}),ir=(e,t)=>({title:X("a11y.widget.title"),body:{type:"panel",items:[{type:"panel",classes:["tox-accessibility-issue","accessibility-issue--success"],items:[{type:"htmlpanel",html:rr(e,"a11y.widget.issue.none","success","checkmark"),presets:"presentation"}]}]},buttons:[{type:"submit",name:"ok",text:"OK",primary:!0}],onSubmit:e=>e.close(),onClose:t}),sr=(e,t,r)=>{e.redial(t),e.focus(r)};var lr;!function(e){e.Next="next",e.Prev="prev",e.Ignore="ignore",e.Ok="ok",e.Repair="repair"}(lr||(lr={}));const cr=({issue:e,summaryLabel:t},r,o,a,n,i)=>{const s=F(n),l=e=>cr(e,r,o,w.none(),n,i),c=a=>(s,{name:c})=>{if(c===lr.Next||c===lr.Prev){const e=r.stepIssue(c===lr.Next?1:-1);sr(s,l(e),c)}else c===lr.Ignore?r.resolveCurrent(!0).fold((()=>sr(s,ir(n,i),lr.Ok)),(e=>sr(s,l(e),lr.Ignore))):c===lr.Repair&&((a,s)=>{const c=s=>{sr(a,cr({issue:e,summaryLabel:t},r,o,w.some(s),n,i),lr.Repair)},u=()=>r.resolveCurrent(!1).fold((()=>r.scan().fold((()=>sr(a,ir(n,i),lr.Ok)),(e=>sr(a,l(e),lr.Ignore)))),(e=>sr(a,l(e),lr.Ignore)));s.each((t=>{t.repair(e.element,e.id,((e,t)=>{const r={},o={};return((e,t,r,o)=>{ee(e,((e,a)=>{(t(e,a)?r:o)(e,a)}))})(e,t,te(r),te(o)),{t:r,f:o}})(a.getData(),((t,r)=>{return o=r,""===(a=e.id)||o.length>=a.length&&o.substr(0,0+a.length)===a;var o,a})).t,(e=>e.fold(c,u)))}))})(s,a)},u=t=>r=>t.each((t=>{t.onChange.each((t=>t(r,r.getData(),e))),t.shouldDisableRepair.each((t=>{const o=t(r.getData(),e);r.setEnabled(lr.Repair,!o)}))})),d=(r,o,a)=>{const l="warning"===(d=e.severity)?"warn":d;var d;const p=o.map((()=>({type:"panel",classes:["accessibility-issue__repair"],items:o.map((e=>e.items)).getOr([])}))).toArray();return{title:X("a11y.widget.title"),body:{type:"panel",classes:["tox-accessibility-issue",`accessibility-issue--${l}`],items:[{type:"panel",classes:["accessibility-issue__header"],items:[{type:"htmlpanel",html:`

${t}

`,presets:"presentation"},{type:"button",name:lr.Prev,text:X("a11y.widget.previous"),icon:"action-prev",borderless:!0},{type:"button",name:lr.Next,text:X("a11y.widget.next"),icon:"action-next",borderless:!0}]},{type:"htmlpanel",html:rr(n,e.description,e.severity,"help",s(e.id)),presets:"presentation"},...p]},buttons:[{type:"custom",name:lr.Ignore,text:X("a11y.widget.ignore")},{type:"custom",name:lr.Repair,text:X("a11y.widget.repair"),enabled:!a,primary:!0}],initialData:{...o.map((e=>e.initialData)).getOr({})},onAction:c(r),onChange:u(r),onClose:i}};return o(e.id).fold((()=>d(w.none(),w.none(),!0)),(t=>{const r=((e,t,r)=>{const o=t.element;return r.fold((()=>e.ui.map((e=>e(t.id,o)))),(r=>e.ui.map((e=>{const a=e(t.id,o);return{items:a.items.concat([(n=r.errorMessage,{type:"htmlpanel",html:`
${n}
`})]),initialData:{...a.initialData,...r.repairErrorData}};var n}))))})(t,e,a),o=t.shouldDisableRepair.bind((t=>r.map((r=>t(r.initialData,e))))).getOr(!1);return d(w.some(t),r,o)}))},ur=(e,t)=>{De(e).each((r=>{r.dom.insertBefore(t.dom,e.dom)}))},dr=(e,t)=>{const r=(e=>w.from(e.dom.nextSibling).map(ke))(e);r.fold((()=>{De(e).each((e=>{pr(e,t)}))}),(e=>{ur(e,t)}))},pr=(e,t)=>{e.dom.appendChild(t.dom)},hr=(e,t)=>{S(t,(t=>{pr(e,t)}))},mr=e=>{const t=e.dom;null!==t.parentNode&&t.parentNode.removeChild(t)},yr=e=>{const t=Se(e);var r,o;t.length>0&&(r=e,S(o=t,((e,t)=>{const a=0===t?r:o[t-1];dr(a,e)}))),mr(e)},gr=e=>e.dom.innerHTML,vr=e=>{const t=t=>t(e),r=p(e),o=()=>a,a={tag:!0,inner:e,fold:(t,r)=>r(e),isValue:v,isError:g,map:t=>br.value(t(e)),mapError:o,bind:t,exists:t,forall:t,getOr:r,or:o,getOrThunk:r,orThunk:o,getOrDie:r,each:t=>{t(e)},toOptional:()=>w.some(e)};return a},wr=e=>{const t=()=>r,r={tag:!1,inner:e,fold:(t,r)=>t(e),isValue:g,isError:v,map:t,mapError:t=>br.error(t(e)),bind:t,exists:g,forall:v,getOr:h,or:h,getOrThunk:y,orThunk:y,getOrDie:(o=String(e),()=>{throw new Error(o)}),each:d,toOptional:w.none};var o;return r},br={value:vr,error:wr,fromOption:(e,t)=>e.fold((()=>wr(t)),vr)},fr=e=>((e,t)=>ke(e.dom.cloneNode(!0)))(e),kr=(e,t,r)=>br.error({errorMessage:t(e),repairErrorData:r}),xr=(e,t,r,o,a,n)=>0===t.length?kr(o,n,{}):Ar(e,t,r,a,n),Ar=(e,t,r,o,a)=>t===r?kr(o,a,{}):br.value(e),Cr=e=>{const t=e.split("/");return w.from(t.pop())},Tr=(e,t,r,o,a,n)=>{const i=ge(e,"src").bind(Cr).getOr(""),s=r[`${t}_textinput`];return r[`${t}_checkbox`]?(e=>(me(e,"alt",""),me(e,"role","presentation"),br.value(e)))(e):xr(e,s,i,o,a,n).map((e=>(me(e,"alt",s),"presentation"===ye(e,"role")&&ve(e,"role"),e)))},Dr=e=>e.dom.textContent,Ir=(e,t,r,o,a,n)=>{const i=ye(e,"summary");return xr(e,r[t],i,o,a,n).map((o=>{const a=Je(e,"caption").fold((()=>fe("caption")),(e=>{var t;return(t=e).dom.textContent="",S(Se(t),(e=>{mr(e)})),e}));return((e,t)=>{e.dom.textContent=t})(a,r[t]),((e,t)=>{(e=>((e,t)=>{const r=e.dom.childNodes;return w.from(r[0]).map(ke)})(e))(e).fold((()=>{pr(e,t)}),(r=>{e.dom.insertBefore(t.dom,r.dom)}))})(o,a),o}))},_r=e=>`${e}_checkbox`,Sr=e=>`${e}_textinput`,Nr=(e,t)=>{const r=t.id,o=!0===e[_r(r)],a=e[Sr(r)].length>0;return!o&&!a},Mr=(e,t,r)=>{const o=r.id,a=_r(o),n=Sr(o);!0===t[a]?(e.setEnabled(n,!1),e.setEnabled(lr.Repair,!0)):(e.setEnabled(n,!0),t[n].length>0?(e.setEnabled(lr.Repair,!0),e.setEnabled(a,!0)):(e.setEnabled(a,!0),e.setEnabled(lr.Repair,!1)))},Or=(e,t)=>{const r=ar(Sr(t),X((o="a11y.i1.repair.info",e?`${o}.decorativeAllowed`:`${o}.decorativeNotAllowed`)));var o;return e?[nr(_r(t),X("a11y.i1.repair.checkboxlabel"),X("a11y.i1.repair.checkboxtext")),r]:[r]},Er=(e,t,r)=>{const o=ye(e,"alt"),a=t?{[_r(r)]:!1}:{};return{[Sr(r)]:o||"",...a}},Rr=e=>{const t=U(e),r={H93:w.some({ui:w.some(((e,t)=>({items:[or(e,X("a11y.h93.repair.info"),[{text:"a11y.h93.repair.deduplicate.others",value:"others"},{text:"a11y.h93.repair.deduplicate.this",value:"this"},{text:"a11y.h93.repair.deduplicate.all",value:"all"}],X)],initialData:{[e]:""}}))),repair:(t,r,o,a)=>{e.undoManager.transact((()=>{a(((e,t,r,o)=>{const a=r[t],n="all"===a||"this"===a;if("all"===a||"others"===a){const t=ye(e,"id"),r=o.getBody(),a=ke(r),n=We(a,`*[id="${t}"]`),i=N(n,(t=>!Ce(t,e)));S(i,(e=>{ve(e,"id")}))}return n&&ve(e,"id"),br.value(e)})(t,r,o,e))}))},shouldDisableRepair:w.none(),onChange:w.none()}),I1:w.some({ui:w.some(((e,r)=>({items:Or(t,e),initialData:Er(r,t,e)}))),repair:(t,r,o,a)=>{e.undoManager.transact((()=>{a(Tr(t,r,o,"a11y.i1.repair.errors.empty","a11y.i1.repair.errors.duplicate",X))}))},shouldDisableRepair:t?w.some(Nr):w.none(),onChange:t?w.some(Mr):w.none()}),I2:w.some({ui:w.some(((e,r)=>({items:Or(t,e),initialData:Er(r,t,e)}))),repair:(t,r,o,a)=>{e.undoManager.transact((()=>{a(Tr(t,r,o,"a11y.i1.repair.errors.empty","a11y.i1.repair.errors.duplicate",X))}))},shouldDisableRepair:t?w.some(Nr):w.none(),onChange:t?w.some(Mr):w.none()}),I3:w.some({ui:w.some(((e,t)=>({items:Or(!1,e),initialData:Er(t,!1,e)}))),repair:(t,r,o,a)=>{e.undoManager.transact((()=>{a(((e,t,r,o,a)=>{const n=r[`${t}_textinput`];return((e,t,r,o,a,n=100)=>{const i=`${t}_textinput`;return r.length>n?kr([o,r.length],a,{[i]:r}):br.value(e)})(e,t,n,o,a,100).map((e=>(me(e,"alt",n),e)))})(t,r,o,"a11y.i3.repair.error",X))}))},shouldDisableRepair:w.none(),onChange:w.none()}),T1:w.some({ui:w.some(((e,t)=>({items:[ar(e,X("a11y.t1.repair.info"))],initialData:{[e]:""}}))),repair:(t,r,o,a)=>{e.undoManager.transact((()=>{a(Ir(t,r,o,"a11y.t1.repair.errors.empty","a11y.t1.repair.errors.duplicate",X))}))},shouldDisableRepair:w.none(),onChange:w.none()}),T2:w.some({ui:w.some(((e,t)=>({items:[ar(e,X("a11y.t2.repair.info"))],initialData:{[e]:""}}))),repair:(t,r,o,a)=>{e.undoManager.transact((()=>{a(((e,t,r,o,a,n)=>{const i=Qe(e,"caption").filter(le).map(Dr).getOr("");return xr(e,r[t],i,"a11y.t2.repair.errors.empty","a11y.t2.repair.errors.duplicate",n).map((o=>(me(e,"summary",r[t]),o)))})(t,r,o,0,0,X))}))},shouldDisableRepair:w.none(),onChange:w.none()}),T3:w.some({ui:w.some(((e,t)=>{const r=Je(t,"caption").fold(p(""),gr);return{items:[ar(e,X("a11y.t1.repair.info"))],initialData:{[e]:r}}})),repair:(t,r,o,a)=>{e.undoManager.transact((()=>{a(Ir(t,r,o,"a11y.t1.repair.errors.empty","a11y.t1.repair.errors.duplicate",X))}))},shouldDisableRepair:w.none(),onChange:w.none()}),T4A:w.none(),T4B:w.some({ui:w.some(((e,t)=>({items:[or(e,X("a11y.t4b.repair.info"),[{text:"a11y.t4c.repair.header.row",value:"row"},{text:"a11y.t4c.repair.header.col",value:"col"}],X)],initialData:{[e]:""}}))),repair:(t,r,o,a)=>{e.undoManager.transact((()=>{a(((e,t,r)=>{let o=[];if("row"===r[t]){const t=ke(e.dom.rows[0]);o=Re(t,"td")}else"col"===r[t]&&S(e.dom.rows,(e=>{Je(ke(e),"td").each((e=>{o.push(e)}))}));return S(o,(e=>{const t=fe("th");S(e.dom.attributes,(r=>{ge(e,r.name).each((e=>me(t,r.name,e)))})),t.dom.innerHTML=e.dom.innerHTML,dr(e,t),mr(e)})),br.value(e)})(t,r,o))}))},shouldDisableRepair:w.some(((e,t)=>!at(t.element,"td"))),onChange:w.none()}),T4C:w.some({ui:w.some(((e,t)=>({items:[or(e,X("a11y.t4c.repair.info"),[{text:"a11y.t4c.repair.scope.row",value:"row"},{text:"a11y.t4c.repair.scope.col",value:"col"},{text:"a11y.t4c.repair.scope.rowgroup",value:"rowgroup"},{text:"a11y.t4c.repair.scope.colgroup",value:"colgroup"}],X)],initialData:{[e]:""}}))),repair:(t,r,o,a)=>{e.undoManager.transact((()=>{a(((e,t,r)=>(me(e,"scope",r[t]),br.value(e)))(t,r,o))}))},shouldDisableRepair:w.none(),onChange:w.none()}),D1:w.some({ui:w.some(((e,t)=>({items:[or(e,X("a11y.d1.repair.info"),[{text:"a11y.d1.repair.block.h1",value:"h1"},{text:"a11y.d1.repair.block.h2",value:"h2"},{text:"a11y.d1.repair.block.h3",value:"h3"},{text:"a11y.d1.repair.block.h4",value:"h4"},{text:"a11y.d1.repair.block.h5",value:"h5"},{text:"a11y.d1.repair.block.h6",value:"h6"}],X)],initialData:{[e]:""}}))),repair:(t,r,o,a)=>{e.undoManager.transact((()=>{a(((e,t,r)=>{const o=Te(e),a=fe(r[t],o.dom),n=Se(e),i=_(n,fr);hr(a,i);const s=We(a,"b,strong");return S(s,yr),ur(e,a),mr(e),br.value(a)})(t,r,o))}))},shouldDisableRepair:w.none(),onChange:w.none()}),D2:w.none(),D3:w.some({ui:w.none(),repair:(t,r,o,a)=>{e.undoManager.transact((()=>{a((e=>{const t=W(_e(e));return E(t,he("a")).fold((()=>br.error({errorMessage:"Failed to find previous link",repairErrorData:{}})),(r=>{for(const e of t){if(Ce(e,r))break;ue(e)&&mr(e)}const o=Se(e);return hr(r,o),mr(e),br.value(r)}))})(t))}))},shouldDisableRepair:w.none(),onChange:w.none()})};return e=>r.hasOwnProperty(e)?r[e]:w.none()},Wr=(t,r)=>{const o=(()=>{const t=(t=>{const r=e(w.none()),o=()=>r.get().each(t);return{clear:()=>{o(),r.set(w.none())},isSet:()=>r.get().isSome(),get:()=>r.get(),set:e=>{o(),r.set(w.some(e))}}})(d);return{...t,on:e=>t.get().each(e)}})(),a=()=>{o.clear(),r.clear()},n=()=>{const e=((e,t,r,o,a)=>t.scan().fold((()=>e(ir(o,a))),(n=>e(cr(n,t,r,w.none(),o,a)))))((e=>t.windowManager.open(e,{inline:"toolbar",ariaAttrs:!0})),r,Rr(t),t,a);o.set(e)},i=e=>e.close();return t.ui.registry.addButton("a11ycheck",{tooltip:X("a11y.control.tooltip"),icon:"accessibility-check",onAction:n}),t.ui.registry.addMenuItem("a11ycheck",{icon:"accessibility-check",text:X("a11y.control.menutext"),onAction:n}),()=>o.get().fold(n,i)};tinymce.PluginManager.requireLangPack("a11ychecker","ar,bg_BG,ca,cs,da,de,el,es,eu,fa,fi,fr_FR,he_IL,hi,hr,hu_HU,id,it,ja,kk,ko_KR,ms,nb_NO,nl,pl,pt_PT,pt_BR,ro,ru,sk,sl_SI,sv_SE,th_TH,tr,uk,vi,zh_TW,zh_CN"),tinymce.PluginManager.add("a11ychecker",((e,t)=>{if(((e,t)=>!!e&&-1===((e,t)=>{const r=f(e.major,t.major);if(0!==r)return r;const o=f(e.minor,t.minor);if(0!==o)return o;const a=f(e.patch,t.patch);return 0!==a?a:0})((e=>x((e=>[e.majorVersion,e.minorVersion].join(".").split(".").slice(0,3).join("."))(e)))(e),x(t)))(tinymce,"6.8.0"))return console.error('The "a11ychecker" plugin requires at least version 6.8.0 of TinyMCE.'),{};((e,t)=>{const r=e.options.register;r("a11ychecker_css_url",{processor:"string",default:t+"/css/annotations.css"}),r("a11ychecker_allow_decorative_images",{processor:"boolean"});const a=[$(),G(),P()];r("a11ychecker_level",{processor:e=>o(e)&&D(a,e),default:G()});const n=[H(),q()];r("a11ychecker_html_version",{processor:e=>o(e)&&D(n,e),default:q()}),r("a11ychecker_issue_url_callback",{processor:"function",default:e=>`https://www.tiny.cloud/docs/tinymce/${tinymce.majorVersion}/a11ychecker/#${e}`}),r("a11ychecker_ignored_rules",{processor:"string",default:""}),r("a11ychecker_filter_issue",{processor:"function",default:v})})(e,t);const r=Zt(e),a=j(e),n=Wr(e,r);return e.on("init",(()=>{const t="a11ychecker/css/annotations.css";if(tinymce.Resource.has(t)){const r=tinymce.Resource.get(t);e.dom.styleSheetLoader.loadRawCss(t,r)}else e.dom.loadCSS(a)})),{getReport:r.getReport,toggleaudit:n}}))}(); \ No newline at end of file +!function(){"use strict";const e=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(r=n=e,(o=String).prototype.isPrototypeOf(r)||n.constructor?.name===o.name)?"string":t;var r,n,o})(t)===e,t=e=>t=>typeof t===e,r=e("string"),n=e("object"),o=e("array"),a=t("boolean"),i=e=>undefined===e;const s=e=>null==e,l=e=>!s(e),c=t("function"),d=t("number"),u=()=>{},p=e=>()=>e,m=e=>e;function h(e,...t){return(...r)=>{const n=t.concat(r);return e.apply(null,n)}}const g=e=>e(),y=p(!1),v=p(!0);class f{tag;value;static singletonNone=new f(!1);constructor(e,t){this.tag=e,this.value=t}static some(e){return new f(!0,e)}static none(){return f.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?f.some(e(this.value)):f.none()}bind(e){return this.tag?e(this.value):f.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:f.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(e??"Called getOrDie on None")}static from(e){return l(e)?f.some(e):f.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}const w=Array.prototype.slice,b=Array.prototype.indexOf,x=Array.prototype.push,k=(e,t)=>((e,t)=>b.call(e,t))(e,t)>-1,C=(e,t)=>{for(let r=0,n=e.length;r{const r=e.length,n=new Array(r);for(let o=0;o{for(let r=0,n=e.length;r{const r=[];for(let n=0,o=e.length;n(A(e,((e,n)=>{r=t(r,e,n)})),r),I=(e,t,r)=>{for(let n=0,o=e.length;nI(e,t,y),_=(e,t)=>(e=>{const t=[];for(let r=0,n=e.length;r{const t=w.call(e,0);return t.reverse(),t},E=Object.keys,N=Object.hasOwnProperty,P=(e,t)=>{const r=E(e);for(let n=0,o=r.length;nM(e,((e,r)=>({k:r,v:t(e,r)}))),M=(e,t)=>{const r={};return P(e,((e,n)=>{const o=t(e,n);r[o.k]=o.v})),r},O=e=>(t,r)=>{e[r]=t},H=(e,t)=>N.call(e,t),W=e=>{let t=e;return{get:()=>t,set:e=>{t=e}}},q=e=>{const t=t=>t(e),r=p(e),n=()=>o,o={tag:!0,inner:e,fold:(t,r)=>r(e),isValue:v,isError:y,map:t=>B.value(t(e)),mapError:n,bind:t,exists:t,forall:t,getOr:r,or:n,getOrThunk:r,orThunk:n,getOrDie:r,each:t=>{t(e)},toOptional:()=>f.some(e)};return o},G=e=>{const t=()=>r,r={tag:!1,inner:e,fold:(t,r)=>t(e),isValue:y,isError:v,map:t,mapError:t=>B.error(t(e)),bind:t,exists:y,forall:v,getOr:m,or:m,getOrThunk:g,orThunk:g,getOrDie:(n=String(e),()=>{throw new Error(n)}),each:u,toOptional:f.none};var n;return r},B={value:q,error:G,fromOption:(e,t)=>e.fold((()=>G(t)),q)},V="undefined"!=typeof window?window:Function("return this;")();let j=0;const z=(e,t,r)=>e.isSome()&&t.isSome()?f.some(r(e.getOrDie(),t.getOrDie())):f.none(),U=(e,t)=>((e,t)=>{let r=null!=t?t:V;for(let t=0;t{const e=(e=>{const t=W(f.none()),r=()=>t.get().each(e);return{clear:()=>{r(),t.set(f.none())},isSet:()=>t.get().isSome(),get:()=>t.get(),set:e=>{r(),t.set(f.some(e))}}})(u);return{...e,on:t=>e.get().each(t)}},K=e=>e.length>0,Z=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},Q=(e,t)=>{const r=(t||document).createElement(e);return Z(r)},X=Z,Y=(e,t)=>{const r=e.dom;if(1!==r.nodeType)return!1;{const e=r;if(void 0!==e.matches)return e.matches(t);if(void 0!==e.msMatchesSelector)return e.msMatchesSelector(t);if(void 0!==e.webkitMatchesSelector)return e.webkitMatchesSelector(t);if(void 0!==e.mozMatchesSelector)return e.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")}},J=e=>1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType||0===e.childElementCount,ee=(e,t)=>e.dom===t.dom,te=Object.getPrototypeOf,re=e=>{const t=U("ownerDocument.defaultView",e);return n(e)&&((e=>((e,t)=>{const r=((e,t)=>U(e,t))(e,t);if(null==r)throw new Error(e+" not available on this browser");return r})("HTMLElement",e))(t).prototype.isPrototypeOf(e)||/^HTML\w*Element$/.test(te(e).constructor.name))},ne=e=>t=>(e=>e.dom.nodeType)(t)===e,oe=e=>ae(e)&&re(e.dom),ae=ne(1),ie=ne(3),se=ne(11),le=e=>t=>ae(t)&&t.dom.nodeName.toLowerCase()===e,ce=e=>X(e.dom.ownerDocument),de=e=>f.from(e.dom.parentNode).map(X),ue=e=>f.from(e.dom.previousSibling).map(X),pe=e=>R(((e,t)=>{const r=[],n=e=>(r.push(e),t(e));let o=t(e);do{o=o.bind(n)}while(o.isSome());return r})(e,ue)),me=e=>S(e.dom.childNodes,X),he=e=>(e=>{const t=e.dom.childNodes;return f.from(t[0]).map(X)})(e),ge=e=>X(e.dom.host),ye=e=>{const t=X((e=>{if(l(e.target)){const t=X(e.target);if(ae(t)&&l(t.dom.shadowRoot)&&e.composed&&e.composedPath){const t=e.composedPath();if(t)return(e=>0e.stopPropagation(),n=()=>e.preventDefault(),o=(a=n,i=r,(...e)=>a(i.apply(null,e)));var a,i;return((e,t,r,n,o,a,i)=>({target:e,x:t,y:r,stop:n,prevent:o,kill:a,raw:i}))(t,e.clientX,e.clientY,r,n,o,e)},ve=(e,t,r,n)=>{e.dom.removeEventListener(t,r,n)},fe=v,we=(e,t,r)=>((e,t,r,n)=>((e,t,r,n,o)=>{const a=((e,t)=>r=>{e(r)&&t(ye(r))})(r,n);return e.dom.addEventListener(t,a,o),{unbind:h(ve,e,t,a,o)}})(e,t,r,n,!1))(e,t,fe,r),be=(e,t)=>{de(e).each((r=>{r.dom.insertBefore(t.dom,e.dom)}))},xe=(e,t)=>{const r=(e=>f.from(e.dom.nextSibling).map(X))(e);r.fold((()=>{de(e).each((e=>{ke(e,t)}))}),(e=>{be(e,t)}))},ke=(e,t)=>{e.dom.appendChild(t.dom)},Ce=(e,t)=>{A(t,(t=>{ke(e,t)}))},Se=(e,t,n)=>{((e,t,n)=>{if(!(r(n)||a(n)||d(n)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",n,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,n+"")})(e.dom,t,n)},Ae=(e,t)=>{const r=e.dom.getAttribute(t);return null===r?void 0:r},Te=(e,t)=>f.from(Ae(e,t)),De=(e,t)=>{e.dom.removeAttribute(t)},Ie=e=>{const t=e.dom;null!==t.parentNode&&t.parentNode.removeChild(t)},$e=e=>{const t=me(e);var r,n;t.length>0&&(r=e,A(n=t,((e,t)=>{const o=0===t?r:n[t-1];xe(o,e)}))),Ie(e)},_e=e=>(e=>X(e.dom.cloneNode(!0)))(e),Re=e=>e.dom.innerHTML,Ee=e=>{const t=ie(e)?e.dom.parentNode:e.dom;if(null==t||null===t.ownerDocument)return!1;const r=t.ownerDocument;return(e=>{const t=(e=>X(e.dom.getRootNode()))(e);return se(r=t)&&l(r.dom.host)?f.some(t):f.none();var r})(X(t)).fold((()=>r.body.contains(t)),(n=Ee,o=ge,e=>n(o(e))));var n,o},Ne=e=>{const t=e.dom.body;if(null==t)throw new Error("Body is not available yet");return X(t)},Pe=(e,t)=>{const r=e.dom,n=window.getComputedStyle(r).getPropertyValue(t);return""!==n||Ee(e)?n:Le(r,t)},Le=(e,t)=>(e=>void 0!==e.style&&c(e.style.getPropertyValue))(e)?e.style.getPropertyValue(t):"",Me=(e=>{const t=t=>e(t)?f.from(t.dom.nodeValue):f.none();return{get:r=>{if(!e(r))throw new Error("Can only get text value of a text node");return t(r).getOr("")},getOption:t,set:(t,r)=>{if(!e(t))throw new Error("Can only set raw text value of a text node");t.dom.nodeValue=r}}})(ie),Oe=(e,t,r)=>{let n=e.dom;const o=c(r)?r:y;for(;n.parentNode;){n=n.parentNode;const e=X(n);if(t(e))return f.some(e);if(o(e))break}return f.none()},He=(e,t)=>$(e.dom.childNodes,(e=>t(X(e)))).map(X),We=(e,t,r)=>Oe(e,(e=>Y(e,t)),r),qe=(e,t)=>He(e,(e=>Y(e,t))),Ge=(e,t)=>((e,t)=>{const r=void 0===t?document:t.dom;return J(r)?f.none():f.from(r.querySelector(e)).map(X)})(t,e),Be=(e,t,r)=>((e,t,r,n,o)=>e(r,n)?f.some(r):c(o)&&o(r)?f.none():t(r,n,o))(((e,t)=>Y(e,t)),We,e,t,r),Ve=(e,t=!1)=>{return Ee(e)?e.dom.isContentEditable:(r=e,Be(r,"[contenteditable]")).fold(p(t),(e=>"true"===je(e)));var r},je=e=>e.dom.contentEditable,ze=e=>e.dom.textContent,Ue=(e,t)=>(e=>T(me(e),(e=>Y(e,t))))(e),Fe=(e,t)=>((e,t)=>{const r=void 0===t?document:t.dom;return J(r)?[]:S(r.querySelectorAll(e),X)})(t,e),Ke=(e,t)=>Ge(e,t).isSome(),Ze=(e,t)=>{const{type:r,message:n}=t;e.notificationManager.open({type:r,text:n})},Qe=e=>{(e=>{switch(e){case"error":return console.error;case"info":return console.info;case"warn":return console.warn;default:return console.log}})(e.type)(e.message)},Xe=(e,t)=>{const{protect:r,allowList:n=[],blockList:o=[]}=null!=e?e:{};let a;return a=l(r)?r:n.length>0||o.length>0||t,{protect:a,allowList:n,blockList:o}},Ye=e=>{const{protect:t,allowList:r,blockList:n}=null!=e?e:{};return e=>{const o=e.toLowerCase();return r.length>0?!C(r,(e=>e.toLowerCase()===o)):n.length>0?C(n,(e=>e.toLowerCase()===o)):t}},Je=e=>{const t=Ye(e);return(e,r)=>{const n=((e,t)=>`${e}:${t}`)(r,e.toLowerCase());return t(n)}},et=(e,t,r,n)=>{const o=Reflect.get(e,"on"),a={protectedEventHandlers:[],cleanupScheduled:!1},i=(e,t)=>{n&&console.log(`[EventsProxy] ${e}`,t||"")},s=t=>{"invalid"===t&&a.protectedEventHandlers.length>0&&(i("Removing event handlers",a.protectedEventHandlers),A(a.protectedEventHandlers,(t=>{e.off(t.name,t.callback)})),a.protectedEventHandlers=[])},l=t.onStatusChange(s);return e.on("remove",l),(n,l,c)=>{i(`Adding event listener: ${n}`,{shouldProtect:r(n)});const d=((e,n)=>{const o=r(e),i=t.getStatus(),s=o&&"invalid"===i?u:n;return o&&a.protectedEventHandlers.push({name:e,callback:s}),s})(n,l);return a.cleanupScheduled||(a.cleanupScheduled=!0,window.setTimeout((()=>{s(t.getStatus()),a.cleanupScheduled=!1}),0)),Reflect.apply(o,e,[n,d,c])}},tt=(e,t,r)=>n=>{const o="invalid"!==t.getStatus()&&l(r)?r(n):u,a=((e,t,r)=>{const n=e=>{"invalid"===e&&r.setEnabled(!1)},o=()=>n(t.getStatus());n(t.getStatus()),e.on("NodeChange",o);const a=t.onStatusChange(n);return()=>{e.off("NodeChange",o),a()}})(e,t,n);return e=>{null==o||o(e),a()}},rt=(e,t,r)=>(...n)=>{var o;return"invalid"===e.getStatus()?r:null!==(o=null==t?void 0:t(...n))&&void 0!==o?o:r},nt=(e,t)=>rt(e,t,Promise.resolve([])),ot=(e,t)=>rt(e,t,[]),at=(e,t)=>rt(e,t,!1),it=(e,t,n,o)=>{const a=t=>{const{command:a,value:i}=t,s=f.from(i).filter(r).map((e=>e.toLowerCase())),l=a.toLowerCase()===o.toLowerCase(),c=s.exists((e=>n.has(e))),d=s.exists((t=>t===e.queryCommandValue(o)));l&&c&&!d&&t.preventDefault()},i=t.onStatusChange((t=>{if("invalid"===t){e.on("BeforeExecCommand",a);const t=()=>{const t=e.queryCommandValue(o);n.has(t.toLowerCase())&&e.execCommand(o,!1,t)};e.initialized?t():e.on("init",t)}}));e.on("remove",(()=>{i(),e.off("BeforeExecCommand",a)}))},st=(e,t,n,o,a,i=!1)=>{const s=new Set,l=new Set,c=(e,t)=>{i&&console.log(`[UiProxy] ${e}`,t||"")};((e,t,r)=>{it(e,t,r,"ToggleView")})(e,n,s),((e,t,r)=>{it(e,t,r,"ToggleSidebar")})(e,n,l);const d=(t,r,i,s)=>{const l=a(t,i);return c(`${s}: ${t}`,{spec:r,context:o,shouldProtect:l}),l?{...r,onSetup:tt(e,n,r.onSetup)}:r};return new Proxy(t,{get:(e,t,i)=>{const u=Reflect.get(e,t,i);if(!r(t))return u;switch(t){case"addButton":case"addGroupToolbarButton":case"addToggleButton":case"addMenuButton":case"addSplitButton":return(...r)=>{const[n,o,...a]=r,i=d(n,o,"button",String(t));return Reflect.apply(u,e,[n,i,...a])};case"addMenuItem":case"addToggleMenuItem":case"addNestedMenuItem":return(...r)=>{const[n,o,...a]=r,i=d(n,o,"menuitem",String(t));return Reflect.apply(u,e,[n,i,...a])};case"addAutocompleter":return(...r)=>{const[i,s,...l]=r,d=a(i,"autocompleter");if(c(`${String(t)}: ${i}`,{spec:s,context:o,shouldProtect:d}),d){const t={...s,fetch:nt(n,s.fetch)};return Reflect.apply(u,e,[i,t,...l])}return Reflect.apply(u,e,[i,s,...l])};case"addSidebar":return(...r)=>{const[n,i,...s]=r,d=a(n,"sidebar");if(c(`${String(t)}: ${n}`,{spec:i,context:o,shouldProtect:d}),d){l.add(n.toLowerCase());const t={...i};return Reflect.apply(u,e,[n,t,...s])}return Reflect.apply(u,e,[n,i,...s])};case"addView":return(...r)=>{const[n,i,...l]=r,d=a(n,"view");if(c(`${String(t)}: ${n}`,{spec:i,context:o,shouldProtect:d}),d){s.add(n.toLowerCase());const t={...i};return Reflect.apply(u,e,[n,t,...l])}return Reflect.apply(u,e,[n,i,...l])};case"addContextMenu":return(...r)=>{const[i,s,...l]=r,d=a(i,"contextmenu");if(c(`${String(t)}: ${i}`,{spec:s,context:o,shouldProtect:d}),d){const t={...s,update:ot(n,s.update)};return Reflect.apply(u,e,[i,t,...l])}return Reflect.apply(u,e,[i,s,...l])};case"addContextToolbar":case"addContextForm":return(...r)=>{const[i,s,...l]=r,d=a(i,"contexttoolbar");if(c(`${String(t)}: ${i}`,{spec:s,context:o,shouldProtect:d}),d){const t={...s,predicate:at(n,s.predicate)};return Reflect.apply(u,e,[i,t,...l])}return Reflect.apply(u,e,[i,s,...l])};case"addIcon":case"getAll":case"addContext":return u}}})},lt=new Set(["addCommand","addCommands","addQueryStateHandler","addQueryValueHandler"]),ct=e=>(t,r)=>{e&&console.log(`[EditorProxy] ${t}`,r||"")},dt=(e,t)=>{const{statusProvider:r,uiContext:n,protection:o,debug:a=!1}=t,{events:i,commands:s,ui:l}=o;ct(a)("Creating enhanced editor with options:",{hasStatusProvider:!!r,uiContext:n,debug:a,protection:o});const{editorUiProxy:d,editorCommandsProxy:p,editorEventListenerProxy:m}=((e,t,r,n,o,a,i)=>{const s=a.protect?{...e.ui,registry:st(e,e.ui.registry,t,r,Je(a),i)}:e.ui,l=n.protect?((e,t,r,n,o)=>{const a={protectedCommands:[],cleanupScheduled:!1},i=(e,t)=>{o&&console.log(`[CommandsProxy] ${e}`,t||"")},s=(e,t)=>{const o=n(e),i=r.getStatus();return o&&a.protectedCommands.push(e),o&&"invalid"===i?u:t},l=t=>{"invalid"===t&&a.protectedCommands.length>0&&(i("Removing commands",a.protectedCommands),A(a.protectedCommands,(t=>{e.editorCommands.removeCommand(t)})),a.protectedCommands=[])},c=()=>{a.cleanupScheduled||(a.cleanupScheduled=!0,window.setTimeout((()=>{l(r.getStatus()),a.cleanupScheduled=!1}),0))},d=r.onStatusChange(l);return e.on("remove",d),new Proxy(t,{get:(e,r,o)=>{if(i(`Accessing property: ${String(r)}`),"addCommand"===r){const a=Reflect.get(e,r,o);return(e,r,...o)=>{i(`Adding command: ${e}`,{shouldProtect:n(e)});const l=s(e,r);return c(),Reflect.apply(a,t,[e,l,...o])}}if("addCommands"===r){const n=Reflect.get(e,r,o);return(e,r="exec")=>{i(`Adding commands (${r})`,{commandCount:Object.keys(e).length,willApplyEnforcement:"exec"===r});const o="exec"!==r?e:L(e,((e,t)=>s(t,e)));return c(),Reflect.apply(n,t,[o,r])}}return Reflect.get(e,r,o)}})})(e,e.editorCommands,t,Ye(n),i):e.editorCommands;return{editorUiProxy:s,editorCommandsProxy:l,editorEventListenerProxy:o.protect?et(e,t,Ye(o),i):e.on.bind(e)}})(e,r,n||"",s,i,l,a),h=((e,t,r,n)=>(o,a,i)=>{const s=String(a);if("on"===a)return ct(n)("on intercepted"),r;if(lt.has(s))return ct(n)(`${s} intercepted`),t[s].bind(t);if("editorCommands"===a)return ct(n)("editorCommands accessed"),t;if("ui"===a)return ct(n)("ui accessed"),e;const l=Reflect.get(o,a,i);return c(l)?l.bind(o):l})(d,p,m,a);return new Proxy(e,{get:h,set:(e,t,r,n)=>Reflect.set(e,t,r,n),has:(e,t)=>Reflect.has(e,t),ownKeys:e=>Reflect.ownKeys(e),getOwnPropertyDescriptor:(e,t)=>Reflect.getOwnPropertyDescriptor(e,t),defineProperty:(e,t,r)=>Reflect.defineProperty(e,t,r),deleteProperty:(e,t)=>Reflect.deleteProperty(e,t),isExtensible:e=>Reflect.isExtensible(e),preventExtensions:e=>Reflect.preventExtensions(e),getPrototypeOf:e=>Reflect.getPrototypeOf(e),setPrototypeOf:(e,t)=>Reflect.setPrototypeOf(e,t)})},ut=e=>parseInt(e,10),pt=(e,t)=>{const r=e-t;return 0===r?0:r>0?1:-1},mt=(e,t,r)=>({major:e,minor:t,patch:r}),ht=e=>{const t=/([0-9]+)\.([0-9]+)\.([0-9]+)(?:(\-.+)?)/.exec(e);return t?mt(ut(t[1]),ut(t[2]),ut(t[3])):mt(0,0,0)},gt=(e,t)=>!!e&&-1===((e,t)=>{const r=pt(e.major,t.major);if(0!==r)return r;const n=pt(e.minor,t.minor);if(0!==n)return n;const o=pt(e.patch,t.patch);return 0!==o?o:0})((e=>ht((e=>[e.majorVersion,e.minorVersion].join(".").split(".").slice(0,3).join("."))(e)))(e),ht(t)),yt=ht("8.3.0"),vt=`${yt.major}.${yt.minor}.0`,ft=`${yt.major+1}.0.0`,wt=(e,t)=>{const{setup:r,protection:n}=t;return(o,a)=>{if(!((e,t)=>gt(e,vt)?(console.error(`The "${t}" plugin requires at least version ${vt} of TinyMCE.`),!1):!!gt(e,ft)||(console.error(`The "${t}" plugin requires at least version ${vt} of TinyMCE but less than ${ft}.`),!1))(tinymce,e)||((e,t)=>!!(e=>{var t;const r=null===(t=e.options.get("license_key"))||void 0===t?void 0:t.toLowerCase(),n=e.options.get("online_license_key");return s(n)&&"gpl"===r})(e)&&(((e,t)=>{const{console:r,editor:n}=t;l(n)&&(e._skinLoaded?Ze(e,n):e.on("SkinLoaded",(()=>{Ze(e,n)}))),l(r)&&Qe(r)})(e,{console:{type:"error",message:[`The "${t}" plugin requires a valid TinyMCE license key.`,"Read more: https://www.tiny.cloud/docs/tinymce/latest/license-key/"].join(" ")}}),!0))(o,e))return{};const i=(e=>{const{protect:t=!0,events:r,commands:n,ui:o,api:a}=null!=e?e:{};return{protect:t,events:Xe(r,false),commands:Xe(n,true),ui:Xe(o,true),api:Xe(a,true)}})(n),d=((e="pre-validation")=>{const t=W(e),r=new Set;let n=!1;const{enableLogging:o=!1}={},a=(e,...t)=>{o&&console.log(`[StatusProvider] ${e}`,...t)};return{setStatus:e=>{const n=t.get();if(n===e)return a("Status unchanged:",e),!1;t.set(e),a("Status changed:",n,"->",e);const o={currentStatus:e,previousStatus:n},i=Array.from(r);return A(i,(e=>{e(o.currentStatus,o.previousStatus)})),!0},onStatusChange:e=>(r.add(e),a("Callback registered, total listeners:",r.size),()=>{r.delete(e)&&a("Callback unregistered, remaining listeners:",r.size)}),getStatus:t.get,hasListeners:()=>r.size>0,destroy:()=>{n||(a("Destroying StatusProvider, clearing",r.size,"listeners"),r.clear(),n=!0)}}})(),u=((e,t,r)=>{const n=`commercial-license-${t}`;return e.ui.registry.addContext(n,(()=>"invalid"!==r.getStatus()&&!e.mode.isReadOnly())),e.licenseKeyManager.validate({plugin:t}).then((e=>{r.setStatus(e?"valid":"invalid")}),(e=>{console.error(e),console.error(`An unknown error occurred when trying to validate "${t}" plugin.`),r.setStatus("invalid")})),{ui:{context:n}}})(o,e,d),p=i.protect?dt(o,{statusProvider:d,uiContext:u.ui.context,debug:t.debug||!1,protection:i}):o,m=((e,t)=>({pluginCode:e,enforcer:{isInvalid:()=>"invalid"===t.getStatus(),onInvalid:e=>t.onStatusChange(((t,r)=>{"invalid"===t&&e(t,r)}))}}))(e,d);return((e,t,r,n)=>{if(t.protect&&t.api.protect&&l(e)){const a=Ye(t.api);return(o=e=>"invalid"===r.getStatus()&&a(e),(e,t)=>L(e,((e,r)=>c(e)?(...n)=>{if(o(r.toLowerCase())){const e=`Method "${l(t)?`${t}.`:""}${r}" is not available due to license key restrictions.`,n=new Error(e);throw console.error(e),n}return e(...n)}:e)))(e,n)}var o;return e})(r(p,a,m),i,d,e)}},bt=p("html4"),xt=p("html5"),kt=p("a"),Ct=p("aa"),St=p("aaa"),At=e=>t=>t.options.get(e),Tt=At("a11ychecker_level"),Dt=At("a11ychecker_html_version"),It=At("a11ychecker_issue_url_callback"),$t=At("a11ychecker_filter_issue"),_t=At("a11ychecker_alt_text_max_length"),Rt=e=>{var t;return null!==(t=e.options.get("a11ychecker_allow_decorative_images"))&&void 0!==t?t:e.options.get("a11y_advanced_options")},Et={"a11y.d1.description":"This paragraph looks like a heading. If it is a heading, please select a heading level.","a11y.d1.repair.block.h1":"Heading 1","a11y.d1.repair.block.h2":"Heading 2","a11y.d1.repair.block.h3":"Heading 3","a11y.d1.repair.block.h4":"Heading 4","a11y.d1.repair.block.h5":"Heading 5","a11y.d1.repair.block.h6":"Heading 6","a11y.d1.repair.info":"Select a heading level","a11y.d2.description":"Headings must be applied in sequential order. For example: Heading 1 should be followed by Heading 2, not Heading 3.","a11y.d3.description":"Adjacent links with the same URL should be merged into one link","a11y.d4.description":"The selected text appears to be a list. Lists should be formatted using a list tag.","a11y.d5a.description":"Large text must have a contrast ratio of at least 3:1","a11y.d5b.description":"Text must have a contrast ratio of at least 4.5:1","a11y.d5c.description":"Text must have a contrast ratio of at least 7:1","a11y.h93.description":"ID attribute must be unique","a11y.h93.repair.info":"Make ID unique","a11y.h93.repair.deduplicate.others":"Keep this ID and remove all others","a11y.h93.repair.deduplicate.this":"Remove this ID","a11y.h93.repair.deduplicate.all":"Remove all IDs","a11y.i1.description":"Image must be marked as decorative or have an alternative text description","a11y.i1.description.conflicting":"This image has conflicting information. Either remove the text description to make it decorative, or remove the decorative marking.","a11y.i1.description.decorativeNotAllowed":"Decorative images are not allowed. Please add a text description.","a11y.i1.description.incompleteNoDecorative":"Image needs a text description","a11y.i1.repair.info":"Add a text description","a11y.i1.repair.info.decorativeNotAllowed":"Add a text description for this image","a11y.i1.repair.errors.duplicate":"Text description should not be the image filename","a11y.i1.repair.errors.empty":"Text description cannot be empty","a11y.i1.repair.errors.emptyNoDecorative":"Text description cannot be empty","a11y.i1.repair.info.decorativeAllowed":"Or add a text description","a11y.i1.repair.checkboxlabel":"Mark as decorative","a11y.i1.repair.checkboxtext":"This image is decorative","a11y.i2.description":"Image needs a text description","a11y.i2.repair.info":"Add a text description for this image","a11y.i2.repair.errors.empty":"Text description cannot be empty","a11y.i3.description":"Text description should describe the image, not the filename","a11y.i3.repair.info":"Replace filename with a meaningful description","a11y.i4.description":"Text description is too long","a11y.i4.repair.info":"Shorten the text description","a11y.i4.repair.errors.empty":"Text description cannot be empty","a11y.i4.repair.error":"{0} characters (maximum {1} allowed)","a11y.t1.description":"Tables must have captions","a11y.t1.repair.errors.duplicate":"Table caption cannot be the same as the table summary","a11y.t1.repair.errors.empty":"Caption cannot be empty","a11y.t1.repair.info":"Provide caption","a11y.t2.description":"Complex tables should have summaries","a11y.t2.repair.errors.duplicate":"Table summary cannot be the same as the table caption","a11y.t2.repair.errors.empty":"Summary cannot be empty","a11y.t2.repair.info":"Provide table summary","a11y.t3.description":"Table caption and summary cannot have the same value","a11y.t4a.description":"Table elements must contain TR and TD tags","a11y.t4b.description":"Tables must have at least one header cell","a11y.t4b.repair.info":"Choose table header","a11y.t4c.description":"Table headers must be applied to a row or a column","a11y.t4c.repair.header.col":"Header column","a11y.t4c.repair.header.row":"Header row","a11y.t4c.repair.info":"Select header scope","a11y.t4c.repair.scope.col":"Column","a11y.t4c.repair.scope.colgroup":"Column group","a11y.t4c.repair.scope.row":"Row","a11y.t4c.repair.scope.rowgroup":"Row group","a11y.widget.counter":"Issue {0} of {1}","a11y.widget.ignore":"Ignore","a11y.widget.issue.none":"No accessibility issues detected","a11y.widget.next":"Next issue","a11y.widget.previous":"Previous issue","a11y.widget.legacyrepair":"Repair issue","a11y.widget.repair":"Repair","a11y.widget.title":"Accessibility Checker","a11y.widget.help.title":"Click for more info","a11y.control.tooltip":"Accessibility checker","a11y.control.menutext":"Accessibility checker...","a11y.issue.dialog.tagname.Text":"Text","a11y.issue.dialog.tagname.Image":"Image","a11y.issue.dialog.tagname.Table":"Table","a11y.issue.dialog.tagname.Link":"Link",error:"Error",warning:"Warning",info:"Info",success:"Success",solution:"Solution",moreInfo:"More info",quotation:'"{0}"'},Nt=e=>Et[e],Pt=e=>{const t=tinymce.util.I18n;return Array.isArray(e)?t.translate([Nt(e[0]),...e.slice(1)]):t.translate(Nt(e))},Lt=(()=>{const e="ephox-foam".replace(/\./g,"-");return{resolve:t=>e+"-"+t}})().resolve,Mt=(e,t,r)=>{Se(e,t,r)},Ot=(e,t,r)=>{De(e,t),De(e,r)},Ht=e=>{const t=e.editor;return{start:t=>{((e,t,r,n,o,a)=>{A(e,(e=>{const r=((e,t,r,n)=>{switch(e){case"info":return f.some(t);case"warning":return f.some(r);case"error":return f.some(n);default:return f.none()}})(e.severity,n,o,a).toArray().concat([t]);A(r,(t=>{Se(e.element,t,1)}))})),f.from(e[0]).each((e=>{Mt(e.element,r,e.severity)}))})(t,e.violation,e.current,e.info,e.warn,e.error)},moveTo:(r,n)=>{((e,t,r,n)=>{const o=Fe(e,"["+t+"]");A(o,(e=>{De(e,t)})),Mt(r,t,n)})(X(t.getBody()),e.current,r,n)},stop:()=>{((e,t,r,n,o,a)=>{const i=Fe(e,"["+t+"]");A(i,(e=>{A([t,r,n,o,a],(t=>{De(e,t)})),Ot(e,t,r)}))})(X(t.getBody()),e.violation,e.current,e.info,e.warn,e.error)},exclude:t=>{Ot(t,e.violation,e.current)}}},Wt="data-"+Lt("a11y-current-violation"),qt="data-"+Lt("a11y-violation"),Gt="data-"+Lt("a11y-severity-info"),Bt="data-"+Lt("a11y-severity-warn"),Vt="data-"+Lt("a11y-severity-error"),jt="data-"+Lt("accessibility-ignore"),zt=p(jt),Ut=e=>{const t=(e=>Oe(e,oe).exists(Ve))(e);return t&&oe(e)&&Ve(e)},Ft=(e,t)=>T(e.querySelectorAll(t),(e=>Ut(X(e)))),Kt=e=>Te(e,"aria-labelledby").filter((e=>""!==e.trim())).isSome(),Zt=e=>{const t=Te(e,"alt"),r=Te(e,"role"),n=Te(e,"aria-label"),o=Te(e,"aria-labelledby"),a=Te(e,"title"),i=t.isSome(),s=t.exists((e=>""===e.trim())),l=t.exists((e=>e.trim().length>0)),c=r.exists((e=>{const t=e.toLowerCase();return"presentation"===t||"none"===t})),d=i&&!s&&t.exists((e=>e.trim().length>0)),u=n.exists((e=>e.trim().length>0)),p=Kt(e),m=a.exists((e=>e.trim().length>0)),h=d||u||p||m,g=i||n.isSome()||o.isSome()||a.isSome()||c,y=i&&s||c,v=h&&!y,f=r.exists((e=>""===e.trim())),w=a.exists((e=>e.trim().length>0)),b=y&&(n.isSome()||o.isSome()||w);return{isDecorativePattern:y,isInformativePattern:v,hasConflictingSignals:c&&(l||u||p)||f||b,hasAnyAccessibilityAttribute:g,hasValidTextAlternative:h,isEmpty:!g}},Qt=e=>e.hasConflictingSignals?"mixed_signals":e.isDecorativePattern?"decorative":e.isInformativePattern?"informative":(e.isEmpty,"incomplete");class Xt{constructor(){this.cache=new Map}getAnalysis(e){const t=e.dom;return this.cache.has(t)||this.cache.set(t,Zt(e)),this.cache.get(t)}getIntent(e){const t=this.getAnalysis(e);return Qt(t)}clear(){this.cache.clear()}}const Yt=(e,t,r,n)=>_(t,(t=>["I1","I2","I3","I4"].includes(t.id)?t.check(e,n,r)?[{rule:t,element:e}]:[]:t.check(e,n)?[{rule:t,element:e}]:[])),Jt=(e,t)=>{var r,n;let o=[];const a=new Xt,s=(e=>{const t=[],r=[];for(let o=0,a=e.length;oY(t,e)))&&oe(t)&&Ut(t)){const n={allowDecorative:e.allowDecorative,intentCache:a,altTextMaxLength:e.altTextMaxLength},i=Yt(t.dom,c,n,null!==(r=e.ignoreSelectors)&&void 0!==r?r:[]);o=o.concat(i)}}const p=((e,t,r)=>_(t,(t=>S(t.check(e,r),(e=>({rule:t,element:e}))))))(t,d,null!==(n=e.ignoreSelectors)&&void 0!==n?n:[]);o=o.concat(p),o.sort(((e,t)=>((e,t)=>e===t?0:((e,t)=>((e,t,r)=>!!(e.compareDocumentPosition(t)&r))(e,t,Node.DOCUMENT_POSITION_PRECEDING))(e,t)?1:-1)(e.element,t.element)));const m=(e=>{const t=new Map;A(e,(e=>{var r;const n=e.element;t.has(n)||t.set(n,[]),null===(r=t.get(n))||void 0===r||r.push(e)}));const r=[],n=["I1","I2","I3","I4"];return t.forEach((e=>{let t=null;for(const r of n)if(C(e,(e=>e.rule.id===r))){t=r;break}if(t){const o=T(e,(e=>!n.includes(e.rule.id)||e.rule.id===t));r.push(...o)}else r.push(...e)})),r})(o);return a.clear(),m},er=p("error"),tr=p("warning"),rr=(e,t)=>{const r=e;return r.matches?r.matches(t):r.webkitMatchesSelector?r.webkitMatchesSelector(t):r.mozMatchesSelector?r.mozMatchesSelector(t):!!r.msMatchesSelector&&r.msMatchesSelector(t)},nr=(e,t)=>ir(e,t).isSome(),or=(e,t)=>((e,t)=>C(t,(t=>Y(e,t))))(e,t)?he(e).bind((e=>or(e,t))):f.some(e),ar=e=>{return(t=e,Me.getOption(t)).filter((e=>K(e.trim())));var t},ir=(e,t)=>He(e,(e=>ar(e).orThunk((()=>{const r=or(e,t).getOr(e);return ar(r)})).isSome())),sr="strong,b",lr=(e,t,r)=>ir(e,r).fold((()=>((e,t)=>{for(let r=0,n=e.length;rlr(e,t,r)))),(e=>((e,t)=>We(e,sr,(e=>ee(e,t))).isSome())(e,t))),cr={id:"D1",wcag:"1.3.1",severity:tr(),desckey:"a11y.d1.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H42.html",walkable:!0,check:(e,t)=>{const r=X(e);return!(!rr(e,"p")||!Ke(r,sr))&&lr(r,r,t)},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},dr={id:"D2",wcag:"1.3.1",severity:er(),desckey:"a11y.d2.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G141.html",walkable:!1,check:e=>{const t=Ft(e,"h1,h2,h3,h4,h5,h6");let r;const n=[];return A(t,(e=>{const t=parseInt(e.tagName.slice(1),10);r&&t-r>1&&n.push(e),r=t})),n},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},ur={id:"D3",wcag:"2.4.4",severity:er(),desckey:"a11y.d3.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H2.html",walkable:!1,check:e=>{const t=X(e),r=Fe(t,"a + a"),n=T(r,(e=>{const t=R(pe(e));return I(t,le("a"),(e=>{return!(ie(t=e)&&(r=(e=>Me.get(e))(t).replace(/[\u200B-\u200D\uFEFF]/g,""),!K(r)));var t,r})).exists((t=>t.dom.href===e.dom.href))&&Ut(e)}));return S(n,(e=>e.dom))},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},pr=(e,t)=>{const r=e.nodeName,n=((e,t)=>{let r=e.nextSibling;for(;null!==r&&(t&&"#text"===r.nodeName||"BR"===r.nodeName);)r=r.nextSibling;return r})(e,t);return null!==n&&n.nodeName===r&&n},mr=(e,t,r)=>{const n=[];if(t(e)){n.push(e);let o=pr(e,r);for(;!1!==o&&t(o);)n.push(o),o=pr(o,r)}return n},hr=(e,t)=>{let r=-1;for(let n=0;n{const r=Ft(e,"p,h1,h2,h3,h4,h5,h6"),n=[];let o=0;for(;o1){n.push(e);const t=a[a.length-1],i=hr(r,t);o=-1===i?o+1:i}else l(e.firstChild)?(mr(e.firstChild,t,!1).length>1&&n.push(e),o++):o++}return n},yr=e=>{var t;return l(null===(t=e.textContent)||void 0===t?void 0:t.match(/^\s{0,}([a-z1-9]|i+)\s{0,}[.)-]/gim))},vr={id:"D4o",wcag:"1.3.1",severity:er(),desckey:"a11y.d4.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H48.html",walkable:!1,check:e=>gr(e,yr),levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},fr=e=>{var t;return l(null===(t=e.textContent)||void 0===t?void 0:t.match(/^\s{0,}(\*|-)\s{0,}/gim))},wr={id:"D4u",wcag:"1.3.1",severity:er(),desckey:"a11y.d4.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H48.html",walkable:!1,check:e=>gr(e,fr),levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},br=(e,t,r,n)=>({red:e,green:t,blue:r,alpha:n}),xr=e=>{const t=e=>e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4),r=e.red/255,n=e.green/255,o=e.blue/255;return.2126*t(r)+.7152*t(n)+.0722*t(o)},kr=(e,t)=>{const r=e.alpha+t.alpha*(1-e.alpha),n=(e.red*e.alpha+t.red*t.alpha*(1-e.alpha))/r,o=(e.green*e.alpha+t.green*t.alpha*(1-e.alpha))/r,a=(e.blue*e.alpha+t.blue*t.alpha*(1-e.alpha))/r;return br(Math.ceil(n),Math.ceil(o),Math.ceil(a),r)},Cr=e=>{const t=(e,t,r,n)=>{const o=parseInt(e,10),a=parseInt(t,10),i=parseInt(r,10),s=parseFloat(n);return f.some(br(o,a,i,s))};if("transparent"===e)return t("0","0","0","0");const r=/^rgb\((\d+),\s*(\d+),\s*(\d+)\)/.exec(e);if(null!==r)return t(r[1],r[2],r[3],"1");const n=/^rgba\((\d+),\s*(\d+),\s*(\d+),\s*(\d?(?:\.\d+)?)\)/.exec(e);return null!==n?t(n[1],n[2],n[3],n[4]):f.none()},Sr=(e,t)=>{const r=parseFloat(Pe(e,"opacity"));return r<1?br(t.red,t.green,t.blue,t.alpha*r):t},Ar=(e,t)=>Tr(e).filter((e=>e{const t=(e=>{const t=ce(e),r=Ne(t),n=[e].concat(((e,t)=>{const r=c(t)?t:y;let n=e.dom;const o=[];for(;null!==n.parentNode&&void 0!==n.parentNode;){const e=n.parentNode,t=X(e);if(o.push(t),!0===r(t))break;n=e}return o})(e,(e=>ee(e,r)))),o=D(n,((e,t)=>{if(1===e.alpha)return e;const r=Pe(t,"background-color");return Cr(r).bind((r=>{const n=Sr(t,r);return n.alpha>0?f.some(kr(e,n)):f.none()})).getOr(e)}),br(0,0,0,0));return o.alpha<1?kr(o,br(255,255,255,1)):o})(e);return((e,t)=>{const r=Pe(e,"color");return Cr(r).bind((r=>{const n=Sr(e,r),o=n.alpha<1?kr(n,t):n;return f.some(o)}))})(e,t).map((e=>{const r=xr(t);return((e,t)=>(Math.max(e,t)+.05)/(Math.min(e,t)+.05))(xr(e),r)}))},Dr={id:"D5c",wcag:"1.4.3",severity:er(),desckey:"a11y.d5c.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G17.html",walkable:!0,check:(e,t)=>{const r=X(e);return nr(r,t)&&Ar(r,7)},levels:[St()],htmlversions:[bt(),xt()]},Ir=e=>{const t=Pe(e,"font-size"),r=new RegExp(".*px").test(t),n=/(\d*\.?\d*)(.*)/.exec(t);return r&&null!==n?f.some(Number(n[1])):f.none()},$r=e=>{const t=(e=>{const t=Pe(e,"font-weight");return!("bold"!==t&&"bolder"!==t)||!!/^[0-9]*$/.test(r=t)&&parseInt(r,10)>=700;var r})(e),r=ce(e),n=Ne(r),o=Ir(n);return Ir(e).fold(y,(e=>o.fold((()=>e>=24||t&&e>=19),(r=>e>=1.5*r||t&&e>=1.2*r))))},_r={id:"D5a",wcag:"1.4.3",severity:er(),desckey:"a11y.d5a.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G145.html",walkable:!0,check:(e,t)=>{const r=X(e);return nr(r,t)&&$r(r)&&Ar(r,3)},levels:[Ct()],htmlversions:[bt(),xt()]},Rr={id:"D5b",wcag:"1.4.3",severity:er(),desckey:"a11y.d5b.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G18.html",walkable:!0,check:(e,t)=>{const r=X(e);return nr(r,t)&&!$r(r)&&Ar(r,4.5)},levels:[Ct()],htmlversions:[bt(),xt()]},Er={id:"H93",wcag:"4.1.1",severity:er(),desckey:"a11y.h93.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H93.html",walkable:!1,check:e=>{const t=X(e),r=Fe(t,"*[id]"),n=D(r,((e,t)=>{const r=Ae(t,"id");if(void 0!==r&&Ut(t)){if(H(e.problems,r))return e;if(H(e.ids,r)){const t=e.ids[r];return{...e,problems:{...e.problems,[r]:t}}}return{...e,ids:{...e.ids,[r]:t.dom}}}return e}),{ids:{},problems:{}});return((e,t)=>{const r=[];return P(e,((e,n)=>{r.push(t(e,n))})),r})(n.problems,m)},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},Nr=le("img"),Pr=(e,t)=>{var r,n,o;if(null==e||null==t||""===e.trim()||""===t.trim())return!1;const a=e.match(/(?:[A-Za-z][A-Za-z\d.+-]{0,14}:\/\/(?:[-.~*+=!&;:'%@?^${}(),\w]+@)?|www\.|[-;:&=+$,.\w]+@)[A-Za-z\d-]+(?:\.[A-Za-z\d-]+)*(?::\d+)?(?:\/(?:[-.~*+=!;:'%@$(),\/\w]*[-~*+=%@$()\/\w])?)?(?:\?(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?(?:#(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?/g);let i=null!==(o=null===(n=(null!==(r=null==a?void 0:a[0])&&void 0!==r?r:e).split("/").pop())||void 0===n?void 0:n.split("?")[0])&&void 0!==o?o:"";try{i=decodeURIComponent(i)}catch(e){console.error("Error decoding filename",e)}if(i.toLowerCase()===t.toLowerCase())return!0;const s=i.split(".").slice(0,-1).join(".");return!(!s||s.toLowerCase()!==t.toLowerCase())},Lr=e=>{const t=X(e);return Nr(t)?f.some(t):f.none()},Mr=(e,t)=>t?t.getIntent(e):Qt(Zt(e)),Or=(e,t,r)=>!!t&&"decorative"===Mr(e,r),Hr=e=>e.trim().length>0,Wr=e=>Te(e,"alt").filter(Hr).orThunk((()=>Te(e,"aria-label").filter(Hr))).orThunk((()=>Te(e,"title").filter(Hr))).getOr(""),qr={id:"I1",wcag:"1.1.1",severity:er(),desckey:"a11y.i1.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G95.html",walkable:!0,check:(e,t,r)=>Lr(e).filter((e=>{const t=Mr(e,null==r?void 0:r.intentCache);return"mixed_signals"===t||"incomplete"===t||!(null==r?void 0:r.allowDecorative)&&"decorative"===t})).isSome(),getDescriptionKey:(e,t)=>{const r=X(e),n=Qt(Zt(r)),o=null!=t&&t;return"mixed_signals"===n?o?"a11y.i1.description.conflicting":"a11y.i1.description.decorativeNotAllowed":o||"decorative"!==n?"incomplete"!==n||o?"a11y.i1.description":"a11y.i1.description.incompleteNoDecorative":"a11y.i1.description.decorativeNotAllowed"},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},Gr={id:"I2",wcag:"1.1.1",severity:er(),desckey:"a11y.i2.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/failures/F65.html",walkable:!0,check:(e,t,r)=>Lr(e).filter((e=>{if("decorative"===Mr(e,null==r?void 0:r.intentCache))return!1;if(!(e=>{const t=e.dom;return!(!t||!t.hasAttribute)&&t.hasAttribute("alt")})(e))return!0;const t=Te(e,"alt").exists((e=>e.trim().length>0)),n=Kt(e),o=Te(e,"aria-label").exists((e=>e.trim().length>0)),a=Te(e,"title").exists((e=>e.trim().length>0));return!(t||n||o||a)})).isSome(),levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},Br={id:"I3",wcag:"1.1.1",severity:er(),desckey:"a11y.i3.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/general/G95.html",walkable:!0,check:(e,t,r)=>Lr(e).filter((e=>{if(Or(e,null==r?void 0:r.allowDecorative,null==r?void 0:r.intentCache))return!1;const t=Te(e,"src"),n=Te(e,"alt");return z(t,n,((e,t)=>Pr(e,t))).getOr(!1)})).isSome(),levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},Vr={id:"I4",wcag:"N/A",severity:tr(),desckey:"a11y.i4.description",url:"",walkable:!0,check:(e,t,r)=>Lr(e).filter((e=>{var t;if(Or(e,null==r?void 0:r.allowDecorative,null==r?void 0:r.intentCache))return!1;const n=Te(e,"alt"),o=null!==(t=null==r?void 0:r.altTextMaxLength)&&void 0!==t?t:150;return n.exists((e=>e.trim().length>o))})).isSome(),levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},jr={id:"T1",wcag:"1.3.1",severity:er(),desckey:"a11y.t1.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H39.html",walkable:!0,check:e=>{if(rr(e,"table")){const t=e.querySelector("caption");return!t||rr(t,":empty")}return!1},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},zr={id:"T2",wcag:"1.3.1",severity:tr(),desckey:"a11y.t2.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H73.html",walkable:!0,check:e=>rr(e,"table")&&l(e.querySelector("[rowspan]")||e.querySelector("[colspan]"))&&!e.hasAttribute("summary"),levels:[kt(),Ct(),St()],htmlversions:[bt()]},Ur={id:"T3",wcag:"1.3.1",severity:er(),desckey:"a11y.t3.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H73.html",walkable:!0,check:e=>{if(rr(e,"table")&&e.hasAttribute("summary")){const t=e.querySelectorAll("caption");return t.length>0&&e.getAttribute("summary")===t[0].innerHTML}return!1},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},Fr={id:"T4b",wcag:"1.3.1",severity:er(),desckey:"a11y.t4b.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H51.html",walkable:!0,check:e=>"table"===e.nodeName.toLowerCase()&&0===e.querySelectorAll("th").length,levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},Kr={id:"T4c",wcag:"1.3.1",severity:er(),desckey:"a11y.t4c.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H63.html",walkable:!0,check:e=>{return!("th"!==e.nodeName.toLowerCase()||(t=e).hasAttribute("scope")&&/row|col|rowgroup|colgroup/i.test(t.getAttribute("scope")));var t},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},Zr=(e,t)=>0===e.querySelectorAll(t).length,Qr={id:"T4a",wcag:"1.3.1",severity:er(),desckey:"a11y.t4a.description",url:"https://www.w3.org/WAI/WCAG21/Techniques/html/H51.html",walkable:!0,check:e=>{return"table"===e.nodeName.toLowerCase()&&(Zr(t=e,"tr")||Zr(t,"td"));var t},levels:[kt(),Ct(),St()],htmlversions:[bt(),xt()]},Xr=e=>{var t;const r=null===(t=e.caption)||void 0===t?void 0:t.innerHTML,n=r?`${r}`:"",o=e.rows,a=o.length,i=o[0],s=i?i.cells.length:0;return K(n)?`${n}. ${a}x${s}`:`${a}x${s}`},Yr=e=>({id:e.id.toUpperCase(),severity:e.severity,url:e.url,description:Pt(e.description),element:e.element.dom,contentID:e.contentId}),Jr=e=>{const t=(e=>{const t=(e=>{const t=e.options.get("a11ychecker_ignored_rules");return _(tinymce.explode(t),(e=>e.length>0?[e.toUpperCase()]:[]))})(e),r=Tt(e),n=Dt(e);return{rules:T([cr,dr,ur,vr,wr,_r,Rr,Dr,qr,Gr,Br,Vr,Er,jr,zr,Ur,Kr,Qr,Fr],(e=>!k(t,e.id.toUpperCase())&&k(e.levels,r)&&k(e.htmlversions,n))),allowDecorative:Rt(e),altTextMaxLength:_t(e),ignoreSelectors:["img[data-mce-placeholder]","[data-mce-bogus=all] *","[data-mce-bogus]","[data-mce-mergetag-affix]"]}})(e);(e=>{e.on("init",(()=>{A([jt,qt,Gt,Bt,Vt,Wt],(t=>{e.serializer.addTempAttr(t)}))}))})(e);const r=W(!1),n=(e=>Ht({editor:e,violation:qt,current:Wt,info:Gt,warn:Bt,error:Vt}))(e),o=zt();let a=[],i=0;const s=()=>{const r=Jt(t,e.getBody()),n=((e,t)=>S(t,(t=>{const r=t.rule,n=t.element,o=r.id.toUpperCase(),a=l(r.getDescriptionKey)?r.getDescriptionKey(n,Rt(e)):r.desckey,i=(e=>{const{tagName:t,value:r}=(t=>{const r=t.localName;if("img"===r){const t=e.getAttribute("src")||"";return{tagName:"a11y.issue.dialog.tagname.Image",value:t.startsWith("data:image")?t:t.split("/").pop()||"unknown_image"}}return"table"===r?{tagName:"a11y.issue.dialog.tagname.Table",value:Xr(t)}:"th"===r?{tagName:"a11y.issue.dialog.tagname.Table",value:Xr(t.closest("table"))}:"a"===r?{tagName:"a11y.issue.dialog.tagname.Link",value:e.getAttribute("href")||""}:{tagName:"a11y.issue.dialog.tagname.Text",value:e.textContent||""}})(e),n=(e=>{const t={"<":"<",">":">",'"':""","'":"'"};return e.replace(/[<>"']/g,(e=>t[e]))})(r.length>30?`${r.substring(0,30)}...`:r);return r?`
${Pt(t)}: ${Pt(["quotation",n])}
`:`
${Pt(t)}
`})(n);return{id:o,description:a,element:X(n),url:r.url,severity:r.severity,contentId:i}})))(e,r);return T(n,(t=>{const r=(a=t.element,Te(a,o).map((e=>e.split(" "))).getOr([])),n=$t(e);var a;return!k(r,t.id)&&n(Yr(t))}))},c=t=>(i+=t,i=i<0?i+a.length:i%a.length,n.moveTo(a[i].element,a[i].severity),e.selection.scrollIntoView(a[i].element.dom),{summaryLabel:Pt(["a11y.widget.counter",i+1,a.length]),issue:a[i],index:i+1}),d=()=>a.length>0?f.some(c(0)):f.none(),u=()=>{r.set(!0),a=s(),i=0},p=()=>{n.stop(),r.set(!1),i=0,a=[]};return{scan:()=>((e=>{e.dispatch("A11ycheckStart")})(e),u(),n.start(a),d()),stepIssue:c,getIssues:()=>a.slice(0),getCurrent:d,getReport:()=>{const e=r.get();try{return e||u(),S(a,Yr)}finally{e||p()}},resolveCurrent:t=>(t&&(((e,t,r)=>{const n=Te(e,t).map((e=>e.concat(" ",r))).getOr(r);Se(e,t,n)})(a[i].element,o,a[i].id),(e=>{e.dispatch("A11ycheckIgnore")})(e)),a=s(),d()),clear:p,isAuditing:()=>r.get()}},en=(e,t)=>{const r=t.ui.registry.getAll().icons;return f.from(r[e]).orThunk((()=>f.from(r["temporary-placeholder"]))).getOr("!not found!")},tn={success:"checkmark",info:"info",warning:"notice",error:"warning"},rn=(e,t,r,n,o,a,i,s)=>{const c=Pt(r),d=Pt(t),u=tn[r],p=s?`${(e=>{const t=(new Date).getTime(),r=Math.floor(window.crypto.getRandomValues(new Uint32Array(1))[0]/4294967295*1e9);return j++,e+"_"+r+j+String(t)})("announcement-live-region")}`:"announcement-live-region",m=`
${en(u,e)}

${c.toUpperCase()}

${a||""}

${d}

`+((e,t,r)=>{const n=Pt("a11y.widget.help.title"),o=Pt("moreInfo");return"help"===e?`${o}`:`
${en(e,t)}
`})(n,e,i)+"
";return setTimeout((()=>{const e=document.getElementById(p);if(l(e)){const t=o?`${o}, `:"",r=a?`: ${a}`:"";e.innerHTML=`${t}${c}${r}, ${d}`}}),100),m},nn=(e,t,r,n)=>({type:"listbox",label:t,name:e,items:S(r,(e=>({text:n(e.text),value:e.value})))}),on=(e,t)=>({type:"input",name:e,label:t}),an=(e,t,r)=>({type:"label",label:t,items:[{type:"checkbox",name:e,label:r}]}),sn=(e,t)=>({title:Pt("a11y.widget.title"),body:{type:"panel",items:[{type:"panel",classes:["tox-accessibility-issue","accessibility-issue--success"],items:[{type:"htmlpanel",html:rn(e,"a11y.widget.issue.none","success","checkmark"),presets:"presentation"}]}]},buttons:[{type:"submit",name:"ok",text:"OK",primary:!0}],onSubmit:e=>e.close(),onClose:t}),ln=(e,t,r)=>{e.redial(t),e.focus(r)};var cn;!function(e){e.Next="next",e.Prev="prev",e.Ignore="ignore",e.Ok="ok",e.Repair="repair"}(cn||(cn={}));const dn=({issue:e,summaryLabel:t},r,n,o,a,i)=>{const s=It(a),l=e=>dn(e,r,n,f.none(),a,i),c=o=>(s,{name:c})=>{if(c===cn.Next||c===cn.Prev){const e=r.stepIssue(c===cn.Next?1:-1);ln(s,l(e),c)}else c===cn.Ignore?r.resolveCurrent(!0).fold((()=>ln(s,sn(a,i),cn.Ok)),(e=>ln(s,l(e),cn.Ignore))):c===cn.Repair&&((o,s)=>{const c=s=>{ln(o,dn({issue:e,summaryLabel:t},r,n,f.some(s),a,i),cn.Repair)},d=()=>r.resolveCurrent(!1).fold((()=>r.scan().fold((()=>ln(o,sn(a,i),cn.Ok)),(e=>ln(o,l(e),cn.Ignore)))),(e=>ln(o,l(e),cn.Ignore)));s.each((t=>{t.repair(e.element,e.id,((e,t)=>{const r={},n={};return((e,t,r,n)=>{P(e,((e,o)=>{(t(e,o)?r:n)(e,o)}))})(e,t,O(r),O(n)),{t:r,f:n}})(o.getData(),((t,r)=>{return n=r,""===(o=e.id)||n.length>=o.length&&n.substr(0,0+o.length)===o;var n,o})).t,(e=>e.fold(c,d)))}))})(s,o)},d=t=>r=>t.each((t=>{t.onChange.each((t=>t(r,r.getData(),e))),t.shouldDisableRepair.each((t=>{const n=t(r.getData(),e);r.setEnabled(cn.Repair,!n)}))})),u=(r,n,o)=>{const l="warning"===(u=e.severity)?"warn":u;var u;const p=n.map((()=>({type:"panel",classes:["accessibility-issue__repair"],items:[{type:"panel",classes:["accessibility-issue__header"],items:[{type:"htmlpanel",html:`

${Pt("solution")}

`,presets:"presentation"}]},...n.map((e=>e.items)).getOr([])]}))).toArray();return{title:Pt("a11y.widget.title"),body:{type:"panel",classes:["tox-accessibility-issue",`accessibility-issue--${l}`],items:[{type:"panel",classes:["accessibility-issue__header"],items:[{type:"htmlpanel",html:`

${t}

`,presets:"presentation"},{type:"button",name:cn.Prev,text:Pt("a11y.widget.previous"),icon:"action-prev",borderless:!0},{type:"button",name:cn.Next,text:Pt("a11y.widget.next"),icon:"action-next",borderless:!0}]},{type:"htmlpanel",html:rn(a,e.description,e.severity,"help",t,e.contentId,s(e.id),!0),presets:"presentation"},...p]},buttons:[{type:"custom",name:cn.Ignore,text:Pt("a11y.widget.ignore")},{type:"custom",name:cn.Repair,text:Pt("a11y.widget.repair"),enabled:!o,primary:!0}],initialData:{...n.map((e=>e.initialData)).getOr({})},onAction:c(r),onChange:d(r),onClose:i}};return n(e.id).fold((()=>u(f.none(),f.none(),!0)),(t=>{const r=((e,t,r)=>{const n=t.element;return r.fold((()=>e.ui.map((e=>e(t.id,n)))),(r=>e.ui.map((e=>{const o=e(t.id,n);return{items:o.items.concat([(a=r.errorMessage,{type:"htmlpanel",html:`
${a}
`})]),initialData:{...o.initialData,...r.repairErrorData}};var a}))))})(t,e,o),n=z(t.shouldDisableRepair,r,((t,r)=>t(r.initialData,e))).getOr(!1);return u(f.some(t),r,n)}))},un=(e,t,r)=>B.error({errorMessage:t(e),repairErrorData:r}),pn=(e,t,r,n,o,a)=>0===t.trim().length?un(n,a,{}):mn(e,t,r,o,a),mn=(e,t,r,n,o)=>t===r?un(n,o,{}):B.value(e),hn=(e,t,r,n,o,a,i,s=150)=>((e,t,r,n,o)=>{const a=Te(e,"src").getOr(""),i=r[`${t}_textinput`];return r[`${t}_checkbox`]?gn(e):((e,t,r,n)=>0===t.trim().length?un(r,n,{}):B.value(e))(e,i,n.emptyMessage,o).bind((e=>((e,t,r,n,o)=>Pr(r,t)?un(n,o,{}):B.value(e))(e,i,a,n.clashMessage,o).bind((e=>n.lengthCheck?((e,t,r,n,o,a)=>{const i=`${t}_textinput`;return r.length>a?un([n,r.length,a],o,{[i]:r}):B.value(e)})(e,t,i,n.lengthCheck.errorMessage,o,n.lengthCheck.maxLength).map((()=>vn(e,i))):B.value(vn(e,i))))))})(e,t,r,{emptyMessage:n,clashMessage:o,lengthCheck:{errorMessage:a,maxLength:s}},i),gn=e=>(Se(e,"alt",""),Se(e,"role","presentation"),De(e,"title"),De(e,"aria-label"),De(e,"aria-labelledby"),De(e,"aria-describedby"),B.value(e)),yn=e=>{Te(e,"role").exists((e=>{const t=e.trim().toLowerCase();return"presentation"===t||"none"===t||""===t}))&&De(e,"role")},vn=(e,t)=>(Se(e,"alt",t),yn(e),e),fn=(e,t,r,n,o,a)=>{const i=Ae(e,"summary");return pn(e,r[t],i,n,o,a).map((n=>{const o=qe(e,"caption").fold((()=>Q("caption")),(e=>{var t;return(t=e).dom.textContent="",A(me(t),(e=>{Ie(e)})),e}));return((e,t)=>{e.dom.textContent=t})(o,r[t]),((e,t)=>{he(e).fold((()=>{ke(e,t)}),(r=>{e.dom.insertBefore(t.dom,r.dom)}))})(n,o),n}))},wn=e=>`${e}_checkbox`,bn=e=>`${e}_textinput`,xn=(e,t)=>{const r=on(bn(t),Pt(e?"a11y.i1.repair.info.decorativeAllowed":"a11y.i1.repair.info"));return e?[an(wn(t),Pt("a11y.i1.repair.checkboxlabel"),Pt("a11y.i1.repair.checkboxtext")),r]:[r]},kn=(e,t,r)=>{const n=Wr(e),o=t?{[wn(r)]:!1}:{};return{[bn(r)]:n,...o}},Cn=e=>e?f.some(((e,t)=>{var r;const n=null===(r=Ae(t.element,"role"))||void 0===r?void 0:r.toLowerCase().trim(),o="presentation"===n||"none"===n,a=""===n,i=Te(t.element,"alt").exists((e=>e.trim().length>0));return!(o&&i||a)&&((e,t)=>{const r=t.id,n=!0===e[wn(r)],o=e[bn(r)].length>0;return!n&&!o})(e,t)})):f.none(),Sn=e=>e?f.some(((e,t,r)=>{var n;const o=null===(n=Ae(r.element,"role"))||void 0===n?void 0:n.toLowerCase().trim(),a="presentation"===o||"none"===o,i=""===o,s=Te(r.element,"alt").exists((e=>e.trim().length>0));a&&s||i?e.setEnabled(cn.Repair,!0):((e,t,r)=>{const n=r.id,o=wn(n),a=bn(n);!0===t[o]?(e.setEnabled(a,!1),e.setEnabled(cn.Repair,!0)):(e.setEnabled(a,!0),t[a].length>0?(e.setEnabled(cn.Repair,!0),e.setEnabled(o,!0)):(e.setEnabled(o,!0),e.setEnabled(cn.Repair,!1)))})(e,t,r)})):f.none(),An=()=>Fe(Ne(X(document)),".tox-dialog"),Tn=(e,t)=>{const r=F(),n=F(),o=()=>{(e=>{e.dispatch("A11ycheckStop")})(e),n.get().each((e=>e.unbind())),n.clear(),r.clear(),t.clear()},a=()=>{const a=((e,t,r,n,o)=>t.scan().fold((()=>e(sn(n,o))),(a=>e(dn(a,t,r,f.none(),n,o)))))((t=>{const r=An(),o=e.windowManager.open(t,{inline:"toolbar"});var a,i;return(a=r,i=An(),$(i,(e=>!C(a,(t=>ee(t,e)))))).each((t=>{(t=>{n.set(we(t,"click",(t=>{Be(t.target,"a.tox-button--more-info-a11ychecker-link").each((t=>{(e=>{e.dispatch("A11ycheckShowDetails")})(e)}))})))})(t)})),o}),t,(e=>{const t=Rt(e),r=_t(e),n=(t,r)=>{e.undoManager.transact((()=>{const n=r();n.isValue()&&(e=>{e.dispatch("A11ycheckRepair")})(e),t(n)}))},o={H93:f.some({ui:f.some(((e,t)=>({items:[nn(e,Pt("a11y.h93.repair.info"),[{text:"a11y.h93.repair.deduplicate.others",value:"others"},{text:"a11y.h93.repair.deduplicate.this",value:"this"},{text:"a11y.h93.repair.deduplicate.all",value:"all"}],Pt)],initialData:{[e]:""}}))),repair:(t,r,o,a)=>{n(a,(()=>((e,t,r,n)=>{const o=r[t],a="all"===o||"this"===o;if("all"===o||"others"===o){const t=Ae(e,"id"),r=n.getBody(),o=X(r),a=Fe(o,`*[id="${t}"]`),i=T(a,(t=>!ee(t,e)));A(i,(e=>{De(e,"id")}))}return a&&De(e,"id"),B.value(e)})(t,r,o,e)))},shouldDisableRepair:f.none(),onChange:f.none()}),I1:f.some({ui:f.some(((e,r)=>{const n=Zt(r),o=Qt(n);return t||"decorative"!==o?{items:xn(t,e),initialData:kn(r,t,e)}:{items:[on(`${e}_textinput`,Pt("a11y.i1.repair.info.decorativeNotAllowed"))],initialData:{[`${e}_textinput`]:Wr(r)}}})),repair:(e,o,a,i)=>{const s=Zt(e),l=Qt(s);if("mixed_signals"===l){const t=a[wn(o)];n(i,(()=>t?gn(e):hn(e,o,a,"a11y.i1.repair.errors.empty","a11y.i1.repair.errors.duplicate","a11y.i4.repair.error",Pt,r).map((e=>{return yn(t=e),t;var t}))))}else n(i,t||"decorative"!==l?()=>hn(e,o,a,"a11y.i1.repair.errors.empty","a11y.i1.repair.errors.duplicate","a11y.i4.repair.error",Pt,r):()=>hn(e,o,a,"a11y.i1.repair.errors.emptyNoDecorative","a11y.i1.repair.errors.duplicate","a11y.i4.repair.error",Pt,r).map((e=>(yn(e),e))))},shouldDisableRepair:Cn(t),onChange:Sn(t)}),T1:f.some({ui:f.some(((e,t)=>({items:[on(e,Pt("a11y.t1.repair.info"))],initialData:{[e]:""}}))),repair:(e,t,r,o)=>{n(o,(()=>fn(e,t,r,"a11y.t1.repair.errors.empty","a11y.t1.repair.errors.duplicate",Pt)))},shouldDisableRepair:f.none(),onChange:f.none()}),T2:f.some({ui:f.some(((e,t)=>({items:[on(e,Pt("a11y.t2.repair.info"))],initialData:{[e]:""}}))),repair:(e,t,r,o)=>{n(o,(()=>((e,t,r,n,o,a)=>{const i=Ge(e,"caption").filter(oe).map(ze).getOr("");return pn(e,r[t],i,"a11y.t2.repair.errors.empty","a11y.t2.repair.errors.duplicate",a).map((n=>(Se(e,"summary",r[t]),n)))})(e,t,r,0,0,Pt)))},shouldDisableRepair:f.none(),onChange:f.none()}),T3:f.some({ui:f.some(((e,t)=>{const r=qe(t,"caption").fold(p(""),Re);return{items:[on(e,Pt("a11y.t1.repair.info"))],initialData:{[e]:r}}})),repair:(e,t,r,o)=>{n(o,(()=>fn(e,t,r,"a11y.t1.repair.errors.empty","a11y.t1.repair.errors.duplicate",Pt)))},shouldDisableRepair:f.none(),onChange:f.none()}),T4A:f.none(),T4B:f.some({ui:f.some(((e,t)=>({items:[nn(e,Pt("a11y.t4b.repair.info"),[{text:"a11y.t4c.repair.header.row",value:"row"},{text:"a11y.t4c.repair.header.col",value:"col"}],Pt)],initialData:{[e]:""}}))),repair:(e,t,r,o)=>{n(o,(()=>((e,t,r)=>{let n=[];if("row"===r[t]){const t=X(e.dom.rows[0]);n=Ue(t,"td")}else"col"===r[t]&&A(e.dom.rows,(e=>{qe(X(e),"td").each((e=>{n.push(e)}))}));return A(n,(e=>{const t=Q("th");A(e.dom.attributes,(r=>{Te(e,r.name).each((e=>Se(t,r.name,e)))})),t.dom.innerHTML=e.dom.innerHTML,xe(e,t),Ie(e)})),B.value(e)})(e,t,r)))},shouldDisableRepair:f.some(((e,t)=>!Ke(t.element,"td"))),onChange:f.none()}),T4C:f.some({ui:f.some(((e,t)=>({items:[nn(e,Pt("a11y.t4c.repair.info"),[{text:"a11y.t4c.repair.scope.row",value:"row"},{text:"a11y.t4c.repair.scope.col",value:"col"},{text:"a11y.t4c.repair.scope.rowgroup",value:"rowgroup"},{text:"a11y.t4c.repair.scope.colgroup",value:"colgroup"}],Pt)],initialData:{[e]:""}}))),repair:(e,t,r,o)=>{n(o,(()=>((e,t,r)=>(Se(e,"scope",r[t]),B.value(e)))(e,t,r)))},shouldDisableRepair:f.none(),onChange:f.none()}),D1:f.some({ui:f.some(((e,t)=>({items:[nn(e,Pt("a11y.d1.repair.info"),[{text:"a11y.d1.repair.block.h1",value:"h1"},{text:"a11y.d1.repair.block.h2",value:"h2"},{text:"a11y.d1.repair.block.h3",value:"h3"},{text:"a11y.d1.repair.block.h4",value:"h4"},{text:"a11y.d1.repair.block.h5",value:"h5"},{text:"a11y.d1.repair.block.h6",value:"h6"}],Pt)],initialData:{[e]:""}}))),repair:(e,t,r,o)=>{n(o,(()=>((e,t,r)=>{const n=ce(e),o=Q(r[t],n.dom),a=me(e),i=S(a,_e);Ce(o,i);const s=Fe(o,"b,strong");return A(s,$e),be(e,o),Ie(e),B.value(o)})(e,t,r)))},shouldDisableRepair:f.none(),onChange:f.none()}),D2:f.none(),D3:f.some({ui:f.none(),repair:(e,t,r,o)=>{n(o,(()=>(e=>{const t=R(pe(e));return $(t,le("a")).fold((()=>B.error({errorMessage:"Failed to find previous link",repairErrorData:{}})),(r=>{for(const e of t){if(ee(e,r))break;ie(e)&&Ie(e)}const n=me(e);return Ce(r,n),Ie(e),B.value(r)}))})(e)))},shouldDisableRepair:f.none(),onChange:f.none()}),I2:f.some({ui:f.some(((e,t)=>({items:[on(`${e}_textinput`,Pt("a11y.i2.repair.info"))],initialData:{[`${e}_textinput`]:Wr(t)}}))),repair:(e,t,o,a)=>{n(a,(()=>hn(e,t,o,"a11y.i2.repair.errors.empty","a11y.i1.repair.errors.duplicate","a11y.i4.repair.error",Pt,r)))},shouldDisableRepair:f.none(),onChange:f.none()}),I3:f.some({ui:f.some(((e,t)=>({items:[on(`${e}_textinput`,Pt("a11y.i3.repair.info"))],initialData:{[`${e}_textinput`]:Wr(t)}}))),repair:(e,t,o,a)=>{n(a,(()=>hn(e,t,o,"a11y.i1.repair.errors.empty","a11y.i1.repair.errors.duplicate","a11y.i4.repair.error",Pt,r)))},shouldDisableRepair:f.none(),onChange:f.none()}),I4:f.some({ui:f.some(((e,t)=>({items:[on(`${e}_textinput`,Pt("a11y.i4.repair.info"))],initialData:{[`${e}_textinput`]:Wr(t)}}))),repair:(e,t,o,a)=>{n(a,(()=>hn(e,t,o,"a11y.i4.repair.errors.empty","a11y.i1.repair.errors.duplicate","a11y.i4.repair.error",Pt,r)))},shouldDisableRepair:f.none(),onChange:f.none()})};return e=>o.hasOwnProperty(e)?o[e]:f.none()})(e),e,o);r.set(a)},i=e=>e.close();return e.ui.registry.addButton("a11ycheck",{tooltip:Pt("a11y.control.tooltip"),icon:"accessibility-check",onAction:a}),e.ui.registry.addMenuItem("a11ycheck",{icon:"accessibility-check",text:Pt("a11y.control.menutext"),onAction:a}),()=>r.get().fold(a,i)};((e,t)=>{const{i18n:r=!0}=t;r&&tinymce.PluginManager.requireLangPack(e,"ar,bg-BG,ca,cs,da,de,el,es,eu,fa,fi,fr-FR,he-IL,hi,hr,hu-HU,id,it,ja,kk,ko-KR,ms,nb-NO,nl,pl,pt-BR,pt-PT,ro,ru,sk,sl-SI,sv-SE,th-TH,tr,uk,vi,zh-CN,zh-TW"),tinymce.PluginManager.add(e,wt(e,t))})("a11ychecker",{setup:e=>{(e=>{const t=e.options.register;t("a11ychecker_allow_decorative_images",{processor:"boolean"});const n=[kt(),Ct(),St()];t("a11ychecker_level",{processor:e=>r(e)&&k(n,e),default:Ct()});const o=[bt(),xt()];t("a11ychecker_html_version",{processor:e=>r(e)&&k(o,e),default:xt()}),t("a11ychecker_issue_url_callback",{processor:"function",default:e=>`https://www.tiny.cloud/docs/tinymce/${tinymce.majorVersion}/a11ychecker/#${e}`}),t("a11ychecker_ignored_rules",{processor:"string",default:""}),t("a11ychecker_filter_issue",{processor:"function",default:v}),t("a11ychecker_alt_text_max_length",{processor:"number",default:150})})(e);const t=Jr(e),n=Tn(e,t);return{getReport:t.getReport,toggleaudit:n}}})}(); \ No newline at end of file diff --git a/plugins/advcode/codemirror.min.js b/plugins/advcode/codemirror.min.js new file mode 100644 index 00000000..91e728f8 --- /dev/null +++ b/plugins/advcode/codemirror.min.js @@ -0,0 +1,13 @@ +/*! + * Tiny Enhanced Code Editor plugin + * + * Copyright (c) 2023 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + * + * This resource uses JavaScript from the codemirror package, licensed under the MIT License. + * https://github.com/codemirror/CodeMirror + * + * Version: 8.3.0-112 + */ + +!function(){"use strict";class t{lineAt(t){if(t<0||t>this.length)throw new RangeError(`Invalid position ${t} in document of length ${this.length}`);return this.lineInner(t,!1,1,0)}line(t){if(t<1||t>this.lines)throw new RangeError(`Invalid line number ${t} in ${this.lines}-line document`);return this.lineInner(t,!0,1,0)}replace(t,e,n){[t,e]=h(this,t,e);let r=[];return this.decompose(0,t,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(e,this.length,r,1),i.from(r,this.length-(e-t)+n.length)}append(t){return this.replace(this.length,this.length,t)}slice(t,e=this.length){[t,e]=h(this,t,e);let n=[];return this.decompose(t,e,n,0),i.from(n,e-t)}eq(t){if(t==this)return!0;if(t.length!=this.length||t.lines!=this.lines)return!1;let e=this.scanIdentical(t,1),i=this.length-this.scanIdentical(t,-1),n=new s(this),r=new s(t);for(let t=e,s=e;;){if(n.next(t),r.next(t),t=0,n.lineBreak!=r.lineBreak||n.done!=r.done||n.value!=r.value)return!1;if(s+=n.value.length,n.done||s>=i)return!0}}iter(t=1){return new s(this,t)}iterRange(t,e=this.length){return new o(this,t,e)}iterLines(t,e){let i;if(null==t)i=this.iter();else{null==e&&(e=this.lines+1);let n=this.line(t).from;i=this.iterRange(n,Math.max(n,e==this.lines+1?this.length:e<=1?0:this.line(e-1).to))}return new a(i)}toString(){return this.sliceString(0)}toJSON(){let t=[];return this.flatten(t),t}constructor(){}static of(n){if(0==n.length)throw new RangeError("A document must have at least one line");return 1!=n.length||n[0]?n.length<=32?new e(n):i.from(e.split(n,[])):t.empty}}class e extends t{constructor(t,e=function(t){let e=-1;for(let i of t)e+=i.length+1;return e}(t)){super(),this.text=t,this.length=e}get lines(){return this.text.length}get children(){return null}lineInner(t,e,i,n){for(let r=0;;r++){let s=this.text[r],o=n+s.length;if((e?i:o)>=t)return new l(n,o,i,s);n=o+1,i++}}decompose(t,i,s,o){let a=t<=0&&i>=this.length?this:new e(r(this.text,t,i),Math.min(i,this.length)-Math.max(0,t));if(1&o){let t=s.pop(),i=n(a.text,t.text.slice(),0,a.length);if(i.length<=32)s.push(new e(i,t.length+a.length));else{let t=i.length>>1;s.push(new e(i.slice(0,t)),new e(i.slice(t)))}}else s.push(a)}replace(t,s,o){if(!(o instanceof e))return super.replace(t,s,o);[t,s]=h(this,t,s);let a=n(this.text,n(o.text,r(this.text,0,t)),s),l=this.length+o.length-(s-t);return a.length<=32?new e(a,l):i.from(e.split(a,[]),l)}sliceString(t,e=this.length,i="\n"){[t,e]=h(this,t,e);let n="";for(let r=0,s=0;r<=e&&st&&s&&(n+=i),tr&&(n+=o.slice(Math.max(0,t-r),e-r)),r=a+1}return n}flatten(t){for(let e of this.text)t.push(e)}scanIdentical(){return 0}static split(t,i){let n=[],r=-1;for(let s of t)n.push(s),r+=s.length+1,32==n.length&&(i.push(new e(n,r)),n=[],r=-1);return r>-1&&i.push(new e(n,r)),i}}class i extends t{constructor(t,e){super(),this.children=t,this.length=e,this.lines=0;for(let e of t)this.lines+=e.lines}lineInner(t,e,i,n){for(let r=0;;r++){let s=this.children[r],o=n+s.length,a=i+s.lines-1;if((e?a:o)>=t)return s.lineInner(t,e,i,n);n=o+1,i=a+1}}decompose(t,e,i,n){for(let r=0,s=0;s<=e&&r=s){let r=n&((s<=t?1:0)|(a>=e?2:0));s>=t&&a<=e&&!r?i.push(o):o.decompose(t-s,e-s,i,r)}s=a+1}}replace(t,e,n){if([t,e]=h(this,t,e),n.lines=s&&e<=a){let l=o.replace(t-s,e-s,n),h=this.lines-o.lines+l.lines;if(l.lines>4&&l.lines>h>>6){let s=this.children.slice();return s[r]=l,new i(s,this.length-(e-t)+n.length)}return super.replace(s,a,l)}s=a+1}return super.replace(t,e,n)}sliceString(t,e=this.length,i="\n"){[t,e]=h(this,t,e);let n="";for(let r=0,s=0;rt&&r&&(n+=i),ts&&(n+=o.sliceString(t-s,e-s,i)),s=a+1}return n}flatten(t){for(let e of this.children)e.flatten(t)}scanIdentical(t,e){if(!(t instanceof i))return 0;let n=0,[r,s,o,a]=e>0?[0,0,this.children.length,t.children.length]:[this.children.length-1,t.children.length-1,-1,-1];for(;;r+=e,s+=e){if(r==o||s==a)return n;let i=this.children[r],l=t.children[s];if(i!=l)return n+i.scanIdentical(l,e);n+=i.length+1}}static from(t,n=t.reduce(((t,e)=>t+e.length+1),-1)){let r=0;for(let e of t)r+=e.lines;if(r<32){let i=[];for(let e of t)e.flatten(i);return new e(i,n)}let s=Math.max(32,r>>5),o=s<<1,a=s>>1,l=[],h=0,c=-1,u=[];function d(t){let n;if(t.lines>o&&t instanceof i)for(let e of t.children)d(e);else t.lines>a&&(h>a||!h)?(p(),l.push(t)):t instanceof e&&h&&(n=u[u.length-1])instanceof e&&t.lines+n.lines<=32?(h+=t.lines,c+=t.length+1,u[u.length-1]=new e(n.text.concat(t.text),n.length+1+t.length)):(h+t.lines>s&&p(),h+=t.lines,c+=t.length+1,u.push(t))}function p(){0!=h&&(l.push(1==u.length?u[0]:i.from(u,c)),c=-1,h=u.length=0)}for(let e of t)d(e);return p(),1==l.length?l[0]:new i(l,n)}}function n(t,e,i=0,n=1e9){for(let r=0,s=0,o=!0;s=i&&(l>n&&(a=a.slice(0,n-r)),r0?1:(t instanceof e?t.text.length:t.children.length)<<1]}nextInner(t,i){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,r=this.nodes[n],s=this.offsets[n],o=s>>1,a=r instanceof e?r.text.length:r.children.length;if(o==(i>0?a:0)){if(0==n)return this.done=!0,this.value="",this;i>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((1&s)==(i>0?0:1)){if(this.offsets[n]+=i,0==t)return this.lineBreak=!0,this.value="\n",this;t--}else if(r instanceof e){let e=r.text[o+(i<0?-1:0)];if(this.offsets[n]+=i,e.length>Math.max(0,t))return this.value=0==t?e:i>0?e.slice(t):e.slice(0,e.length-t),this;t-=e.length}else{let s=r.children[o+(i<0?-1:0)];t>s.length?(t-=s.length,this.offsets[n]+=i):(i<0&&this.offsets[n]--,this.nodes.push(s),this.offsets.push(i>0?1:(s instanceof e?s.text.length:s.children.length)<<1))}}}next(t=0){return t<0&&(this.nextInner(-t,-this.dir),t=this.value.length),this.nextInner(t,this.dir)}}class o{constructor(t,e,i){this.value="",this.done=!1,this.cursor=new s(t,e>i?-1:1),this.pos=e>i?t.length:0,this.from=Math.min(e,i),this.to=Math.max(e,i)}nextInner(t,e){if(e<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;t+=Math.max(0,e<0?this.pos-this.to:this.from-this.pos);let i=e<0?this.pos-this.from:this.to-this.pos;t>i&&(t=i),i-=t;let{value:n}=this.cursor.next(t);return this.pos+=(n.length+t)*e,this.value=n.length<=i?n:e<0?n.slice(n.length-i):n.slice(0,i),this.done=!this.value,this}next(t=0){return t<0?t=Math.max(t,this.from-this.pos):t>0&&(t=Math.min(t,this.to-this.pos)),this.nextInner(t,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&""!=this.value}}class a{constructor(t){this.inner=t,this.afterBreak=!0,this.value="",this.done=!1}next(t=0){let{done:e,lineBreak:i,value:n}=this.inner.next(t);return e&&this.afterBreak?(this.value="",this.afterBreak=!1):e?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}}"undefined"!=typeof Symbol&&(t.prototype[Symbol.iterator]=function(){return this.iter()},s.prototype[Symbol.iterator]=o.prototype[Symbol.iterator]=a.prototype[Symbol.iterator]=function(){return this});class l{constructor(t,e,i,n){this.from=t,this.to=e,this.number=i,this.text=n}get length(){return this.to-this.from}}function h(t,e,i){return[e=Math.max(0,Math.min(t.length,e)),Math.max(e,Math.min(t.length,i))]}let c="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map((t=>t?parseInt(t,36):1));for(let t=1;tt)return c[e-1]<=t;return!1}function d(t){return t>=127462&&t<=127487}function p(t,e,i=!0,n=!0){return(i?f:O)(t,e,n)}function f(t,e,i){if(e==t.length)return e;e&&m(t.charCodeAt(e))&&g(t.charCodeAt(e-1))&&e--;let n=_(t,e);for(e+=w(n);e=0&&d(_(t,n));)i++,n-=2;if(i%2==0)break;e+=2}}}return e}function O(t,e,i){for(;e>0;){let n=f(t,e-2,i);if(n=56320&&t<57344}function g(t){return t>=55296&&t<56320}function _(t,e){let i=t.charCodeAt(e);if(!g(i)||e+1==t.length)return i;let n=t.charCodeAt(e+1);return m(n)?n-56320+(i-55296<<10)+65536:i}function b(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))}function w(t){return t<65536?1:2}const S=/\r\n?|\n/;var v=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(v||(v={}));class y{constructor(t){this.sections=t}get length(){let t=0;for(let e=0;et)return r+(t-n);r+=o}else{if(i!=v.Simple&&l>=t&&(i==v.TrackDel&&nt||i==v.TrackBefore&&nt))return null;if(l>t||l==t&&e<0&&!o)return t==n||e<0?r:r+a;r+=a}n=l}if(t>n)throw new RangeError(`Position ${t} is out of range for changeset of length ${n}`);return r}touchesRange(t,e=t){for(let i=0,n=0;i=0&&n<=e&&r>=t)return!(ne)||"cover";n=r}return!1}toString(){let t="";for(let e=0;e=0?":"+n:"")}return t}toJSON(){return this.sections}static fromJSON(t){if(!Array.isArray(t)||t.length%2||t.some((t=>"number"!=typeof t)))throw new RangeError("Invalid JSON representation of ChangeDesc");return new y(t)}static create(t){return new y(t)}}class Q extends y{constructor(t,e){super(t),this.inserted=e}apply(t){if(this.length!=t.length)throw new RangeError("Applying change set to a document with the wrong length");return $(this,((e,i,n,r,s)=>t=t.replace(n,n+(i-e),s)),!1),t}mapDesc(t,e=!1){return P(this,t,e,!0)}invert(e){let i=this.sections.slice(),n=[];for(let r=0,s=0;r=0){i[r]=a,i[r+1]=o;let l=r>>1;for(;n.length0&&k(i,e,r.text),r.forward(t),o+=t}let l=t[s++];for(;o>1].toJSON()))}return t}static of(e,i,n){let r=[],s=[],o=0,a=null;function l(t=!1){if(!t&&!r.length)return;oa||e<0||a>i)throw new RangeError(`Invalid change range ${e} to ${a} (in doc of length ${i})`);let u=c?"string"==typeof c?t.of(c.split(n||S)):c:t.empty,d=u.length;if(e==a&&0==d)return;eo&&x(r,e-o,-1),x(r,a-e,d),k(s,r,u),o=a}}(e),l(!a),a}static empty(t){return new Q(t?[t,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let i=[],n=[];for(let r=0;re&&"string"!=typeof t)))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==s.length)i.push(s[0],0);else{for(;n.length=0&&i<=0&&i==t[r+1]?t[r]+=e:0==e&&0==t[r]?t[r+1]+=i:n?(t[r]+=e,t[r+1]+=i):t.push(e,i)}function k(e,i,n){if(0==n.length)return;let r=i.length-2>>1;if(r>1])),!(n||a==e.sections.length||e.sections[a+1]<0);)l=e.sections[a++],h=e.sections[a++];i(s,c,o,u,d),s=c,o=u}}}function P(t,e,i,n=!1){let r=[],s=n?[]:null,o=new T(t),a=new T(e);for(let t=-1;;)if(-1==o.ins&&-1==a.ins){let t=Math.min(o.len,a.len);x(r,t,-1),o.forward(t),a.forward(t)}else if(a.ins>=0&&(o.ins<0||t==o.i||0==o.off&&(a.len=0&&t=0)){if(o.done&&a.done)return s?Q.createSet(r,s):y.create(r);throw new Error("Mismatched change set lengths")}{let e=0,i=o.len;for(;i;)if(-1==a.ins){let t=Math.min(i,a.len);e+=t,i-=t,a.forward(t)}else{if(!(0==a.ins&&a.lene||o.ins>=0&&o.len>e)&&(t||n.length>i),s.forward2(e),o.forward(e)}}else x(n,0,o.ins,t),r&&k(r,n,o.text),o.next()}}class T{constructor(t){this.set=t,this.i=0,this.next()}next(){let{sections:t}=this.set;this.i>1;return i>=e.length?t.empty:e[i]}textBit(e){let{inserted:i}=this.set,n=this.i-2>>1;return n>=i.length&&!e?t.empty:i[n].slice(this.off,null==e?void 0:this.off+e)}forward(t){t==this.len?this.next():(this.len-=t,this.off+=t)}forward2(t){-1==this.ins?this.forward(t):t==this.ins?this.next():(this.ins-=t,this.off+=t)}}class C{constructor(t,e,i){this.from=t,this.to=e,this.flags=i}get anchor(){return 32&this.flags?this.to:this.from}get head(){return 32&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 8&this.flags?-1:16&this.flags?1:0}get bidiLevel(){let t=7&this.flags;return 7==t?null:t}get goalColumn(){let t=this.flags>>6;return 16777215==t?void 0:t}map(t,e=-1){let i,n;return this.empty?i=n=t.mapPos(this.from,e):(i=t.mapPos(this.from,1),n=t.mapPos(this.to,-1)),i==this.from&&n==this.to?this:new C(i,n,this.flags)}extend(t,e=t){if(t<=this.anchor&&e>=this.anchor)return X.range(t,e);let i=Math.abs(t-this.anchor)>Math.abs(e-this.anchor)?t:e;return X.range(this.anchor,i)}eq(t,e=!1){return!(this.anchor!=t.anchor||this.head!=t.head||e&&this.empty&&this.assoc!=t.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(t){if(!t||"number"!=typeof t.anchor||"number"!=typeof t.head)throw new RangeError("Invalid JSON representation for SelectionRange");return X.range(t.anchor,t.head)}static create(t,e,i){return new C(t,e,i)}}class X{constructor(t,e){this.ranges=t,this.mainIndex=e}map(t,e=-1){return t.empty?this:X.create(this.ranges.map((i=>i.map(t,e))),this.mainIndex)}eq(t,e=!1){if(this.ranges.length!=t.ranges.length||this.mainIndex!=t.mainIndex)return!1;for(let i=0;it.toJSON())),main:this.mainIndex}}static fromJSON(t){if(!t||!Array.isArray(t.ranges)||"number"!=typeof t.main||t.main>=t.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new X(t.ranges.map((t=>C.fromJSON(t))),t.main)}static single(t,e=t){return new X([X.range(t,e)],0)}static create(t,e=0){if(0==t.length)throw new RangeError("A selection needs at least one range");for(let i=0,n=0;nt?8:0)|r)}static normalized(t,e=0){let i=t[e];t.sort(((t,e)=>t.from-e.from)),e=t.indexOf(i);for(let i=1;in.head?X.range(o,s):X.range(s,o))}}return new X(t,e)}}function Y(t,e){for(let i of t.ranges)if(i.to>e)throw new RangeError("Selection points outside of document")}let A=0;class W{constructor(t,e,i,n,r){this.combine=t,this.compareInput=e,this.compare=i,this.isStatic=n,this.id=A++,this.default=t([]),this.extensions="function"==typeof r?r(this):r}get reader(){return this}static define(t={}){return new W(t.combine||(t=>t),t.compareInput||((t,e)=>t===e),t.compare||(t.combine?(t,e)=>t===e:R),!!t.static,t.enables)}of(t){return new E([],this,0,t)}compute(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new E(t,this,1,e)}computeN(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new E(t,this,2,e)}from(t,e){return e||(e=t=>t),this.compute([t],(i=>e(i.field(t))))}}function R(t,e){return t==e||t.length==e.length&&t.every(((t,i)=>t===e[i]))}class E{constructor(t,e,i,n){this.dependencies=t,this.facet=e,this.type=i,this.value=n,this.id=A++}dynamicSlot(t){var e;let i=this.value,n=this.facet.compareInput,r=this.id,s=t[r]>>1,o=2==this.type,a=!1,l=!1,h=[];for(let i of this.dependencies)"doc"==i?a=!0:"selection"==i?l=!0:1&(null!==(e=t[i.id])&&void 0!==e?e:1)||h.push(t[i.id]);return{create:t=>(t.values[s]=i(t),1),update(t,e){if(a&&e.docChanged||l&&(e.docChanged||e.selection)||M(t,h)){let e=i(t);if(o?!z(e,t.values[s],n):!n(e,t.values[s]))return t.values[s]=e,1}return 0},reconfigure:(t,e)=>{let a,l=e.config.address[r];if(null!=l){let r=F(e,l);if(this.dependencies.every((i=>i instanceof W?e.facet(i)===t.facet(i):!(i instanceof V)||e.field(i,!1)==t.field(i,!1)))||(o?z(a=i(t),r,n):n(a=i(t),r)))return t.values[s]=r,0}else a=i(t);return t.values[s]=a,1}}}}function z(t,e,i){if(t.length!=e.length)return!1;for(let n=0;nt[e.id])),r=i.map((t=>t.type)),s=n.filter((t=>!(1&t))),o=t[e.id]>>1;function a(t){let i=[];for(let e=0;et===e),t);return t.provide&&(e.provides=t.provide(e)),e}create(t){let e=t.facet(q).find((t=>t.field==this));return((null==e?void 0:e.create)||this.createF)(t)}slot(t){let e=t[this.id]>>1;return{create:t=>(t.values[e]=this.create(t),1),update:(t,i)=>{let n=t.values[e],r=this.updateF(n,i);return this.compareF(n,r)?0:(t.values[e]=r,1)},reconfigure:(t,i)=>null!=i.config.address[this.id]?(t.values[e]=i.field(this),0):(t.values[e]=this.create(t),1)}}init(t){return[this,q.of({field:this,create:t})]}get extension(){return this}}function j(t){return e=>new I(e,t)}const D={highest:j(0),high:j(1),default:j(2),low:j(3),lowest:j(4)};class I{constructor(t,e){this.inner=t,this.prec=e}}class N{of(t){return new G(this,t)}reconfigure(t){return N.reconfigure.of({compartment:this,extension:t})}get(t){return t.config.compartments.get(this)}}class G{constructor(t,e){this.compartment=t,this.inner=e}}class B{constructor(t,e,i,n,r,s){for(this.base=t,this.compartments=e,this.dynamicSlots=i,this.address=n,this.staticValues=r,this.facets=s,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(t,e,i){let n=[],r=Object.create(null),s=new Map;for(let i of function(t,e,i){let n=[[],[],[],[],[]],r=new Map;return function t(s,o){let a=r.get(s);if(null!=a){if(a<=o)return;let t=n[a].indexOf(s);t>-1&&n[a].splice(t,1),s instanceof G&&i.delete(s.compartment)}if(r.set(s,o),Array.isArray(s))for(let e of s)t(e,o);else if(s instanceof G){if(i.has(s.compartment))throw new RangeError("Duplicate use of compartment in extensions");let n=e.get(s.compartment)||s.inner;i.set(s.compartment,n),t(n,o)}else if(s instanceof I)t(s.inner,s.prec);else if(s instanceof V)n[o].push(s),s.provides&&t(s.provides,o);else if(s instanceof E)n[o].push(s),s.facet.extensions&&t(s.facet.extensions,2);else{let e=s.extension;if(!e)throw new Error(`Unrecognized extension value in extension set (${s}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);t(e,o)}}(t,2),n.reduce(((t,e)=>t.concat(e)))}(t,e,s))i instanceof V?n.push(i):(r[i.facet.id]||(r[i.facet.id]=[])).push(i);let o=Object.create(null),a=[],l=[];for(let t of n)o[t.id]=l.length<<1,l.push((e=>t.slot(e)));let h=null==i?void 0:i.config.facets;for(let t in r){let e=r[t],n=e[0].facet,s=h&&h[t]||[];if(e.every((t=>0==t.type)))if(o[n.id]=a.length<<1|1,R(s,e))a.push(i.facet(n));else{let t=n.combine(e.map((t=>t.value)));a.push(i&&n.compare(t,i.facet(n))?i.facet(n):t)}else{for(let t of e)0==t.type?(o[t.id]=a.length<<1|1,a.push(t.value)):(o[t.id]=l.length<<1,l.push((e=>t.dynamicSlot(e))));o[n.id]=l.length<<1,l.push((t=>U(t,n,e)))}}let c=l.map((t=>t(o)));return new B(t,s,c,o,a,r)}}function L(t,e){if(1&e)return 2;let i=e>>1,n=t.status[i];if(4==n)throw new Error("Cyclic dependency between fields and/or facets");if(2&n)return n;t.status[i]=4;let r=t.computeSlot(t,t.config.dynamicSlots[i]);return t.status[i]=2|r}function F(t,e){return 1&e?t.config.staticValues[e>>1]:t.values[e>>1]}const H=W.define(),K=W.define({combine:t=>t.some((t=>t)),static:!0}),J=W.define({combine:t=>t.length?t[0]:void 0,static:!0}),tt=W.define(),et=W.define(),it=W.define(),nt=W.define({combine:t=>!!t.length&&t[0]});class rt{constructor(t,e){this.type=t,this.value=e}static define(){return new st}}class st{of(t){return new rt(this,t)}}class ot{constructor(t){this.map=t}of(t){return new at(this,t)}}class at{constructor(t,e){this.type=t,this.value=e}map(t){let e=this.type.map(this.value,t);return void 0===e?void 0:e==this.value?this:new at(this.type,e)}is(t){return this.type==t}static define(t={}){return new ot(t.map||(t=>t))}static mapEffects(t,e){if(!t.length)return t;let i=[];for(let n of t){let t=n.map(e);t&&i.push(t)}return i}}at.reconfigure=at.define(),at.appendConfig=at.define();class lt{constructor(t,e,i,n,r,s){this.startState=t,this.changes=e,this.selection=i,this.effects=n,this.annotations=r,this.scrollIntoView=s,this._doc=null,this._state=null,i&&Y(i,e.newLength),r.some((t=>t.type==lt.time))||(this.annotations=r.concat(lt.time.of(Date.now())))}static create(t,e,i,n,r,s){return new lt(t,e,i,n,r,s)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(t){for(let e of this.annotations)if(e.type==t)return e.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(t){let e=this.annotation(lt.userEvent);return!(!e||!(e==t||e.length>t.length&&e.slice(0,t.length)==t&&"."==e[t.length]))}}function ht(t,e){let i=[];for(let n=0,r=0;;){let s,o;if(n=t[n]))s=t[n++],o=t[n++];else{if(!(r=0;r--){let s=i[r](t);s&&Object.keys(s).length&&(n=ct(n,ut(e,s,t.changes.newLength),!0))}return n==t?t:lt.create(e,t.changes,t.selection,n.effects,n.annotations,n.scrollIntoView)}(i?function(t){let e=t.startState,i=!0;for(let n of e.facet(tt)){let e=n(t);if(!1===e){i=!1;break}Array.isArray(e)&&(i=!0===i?e:ht(i,e))}if(!0!==i){let n,r;if(!1===i)r=t.changes.invertedDesc,n=Q.empty(e.doc.length);else{let e=t.changes.filter(i);n=e.changes,r=e.filtered.mapDesc(e.changes).invertedDesc}t=lt.create(e,n,t.selection&&t.selection.map(r),at.mapEffects(t.effects,r),t.annotations,t.scrollIntoView)}let n=e.facet(et);for(let i=n.length-1;i>=0;i--){let r=n[i](t);t=r instanceof lt?r:Array.isArray(r)&&1==r.length&&r[0]instanceof lt?r[0]:dt(e,ft(r),!1)}return t}(r):r)}lt.time=rt.define(),lt.userEvent=rt.define(),lt.addToHistory=rt.define(),lt.remote=rt.define();const pt=[];function ft(t){return null==t?pt:Array.isArray(t)?t:[t]}var Ot=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(Ot||(Ot={}));const mt=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let gt;try{gt=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(t){}class _t{constructor(t,e,i,n,r,s){this.config=t,this.doc=e,this.selection=i,this.values=n,this.status=t.statusTemplate.slice(),this.computeSlot=r,s&&(s._state=this);for(let t=0;tr.set(e,t))),i=null),r.set(e.value.compartment,e.value.extension)):e.is(at.reconfigure)?(i=null,n=e.value):e.is(at.appendConfig)&&(i=null,n=ft(n).concat(e.value));i?e=t.startState.values.slice():(i=B.resolve(n,r,this),e=new _t(i,this.doc,this.selection,i.dynamicSlots.map((()=>null)),((t,e)=>e.reconfigure(t,this)),null).values);let s=t.startState.facet(K)?t.newSelection:t.newSelection.asSingle();new _t(i,t.newDoc,s,e,((e,i)=>i.update(e,t)),t)}replaceSelection(t){return"string"==typeof t&&(t=this.toText(t)),this.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:t},range:X.cursor(e.from+t.length)})))}changeByRange(t){let e=this.selection,i=t(e.ranges[0]),n=this.changes(i.changes),r=[i.range],s=ft(i.effects);for(let i=1;ir.spec.fromJSON(s,t))))}return _t.create({doc:t.doc,selection:X.fromJSON(t.selection),extensions:e.extensions?n.concat([e.extensions]):n})}static create(e={}){let i=B.resolve(e.extensions||[],new Map),n=e.doc instanceof t?e.doc:t.of((e.doc||"").split(i.staticFacet(_t.lineSeparator)||S)),r=e.selection?e.selection instanceof X?e.selection:X.single(e.selection.anchor,e.selection.head):X.single(0);return Y(r,n.length),i.staticFacet(K)||(r=r.asSingle()),new _t(i,n,r,i.dynamicSlots.map((()=>null)),((t,e)=>e.create(t)),null)}get tabSize(){return this.facet(_t.tabSize)}get lineBreak(){return this.facet(_t.lineSeparator)||"\n"}get readOnly(){return this.facet(nt)}phrase(t,...e){for(let e of this.facet(_t.phrases))if(Object.prototype.hasOwnProperty.call(e,t)){t=e[t];break}return e.length&&(t=t.replace(/\$(\$|\d*)/g,((t,i)=>{if("$"==i)return"$";let n=+(i||1);return!n||n>e.length?t:e[n-1]}))),t}languageDataAt(t,e,i=-1){let n=[];for(let r of this.facet(H))for(let s of r(this,e,i))Object.prototype.hasOwnProperty.call(s,t)&&n.push(s[t]);return n}charCategorizer(t){return e=this.languageDataAt("wordChars",t).join(""),t=>{if(!/\S/.test(t))return Ot.Space;if(function(t){if(gt)return gt.test(t);for(let e=0;e"\x80"&&(i.toUpperCase()!=i.toLowerCase()||mt.test(i)))return!0}return!1}(t))return Ot.Word;for(let i=0;i-1)return Ot.Word;return Ot.Other};var e}wordAt(t){let{text:e,from:i,length:n}=this.doc.lineAt(t),r=this.charCategorizer(t),s=t-i,o=t-i;for(;s>0;){let t=p(e,s,!1);if(r(e.slice(t,s))!=Ot.Word)break;s=t}for(;ot.length?t[0]:4}),_t.lineSeparator=J,_t.readOnly=nt,_t.phrases=W.define({compare(t,e){let i=Object.keys(t),n=Object.keys(e);return i.length==n.length&&i.every((i=>t[i]==e[i]))}}),_t.languageData=H,_t.changeFilter=tt,_t.transactionFilter=et,_t.transactionExtender=it,N.reconfigure=at.define();class wt{eq(t){return this==t}range(t,e=t){return St.create(t,e,this)}}wt.prototype.startSide=wt.prototype.endSide=0,wt.prototype.point=!1,wt.prototype.mapMode=v.TrackDel;let St=class t{constructor(t,e,i){this.from=t,this.to=e,this.value=i}static create(e,i,n){return new t(e,i,n)}};function vt(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}class yt{constructor(t,e,i,n){this.from=t,this.to=e,this.value=i,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(t,e,i,n=0){let r=i?this.to:this.from;for(let s=n,o=r.length;;){if(s==o)return s;let n=s+o>>1,a=r[n]-t||(i?this.value[n].endSide:this.value[n].startSide)-e;if(n==s)return a>=0?s:o;a>=0?o=n:s=n+1}}between(t,e,i,n){for(let r=this.findIndex(e,-1e9,!0),s=this.findIndex(i,1e9,!1,r);rh||l==h&&c.startSide>0&&c.endSide<=0)continue;(h-l||c.endSide-c.startSide)<0||(s<0&&(s=l),c.point&&(o=Math.max(o,h-l)),i.push(c),n.push(l-s),r.push(h-s))}return{mapped:i.length?new yt(n,r,i,o):null,pos:s}}}class Qt{constructor(t,e,i,n){this.chunkPos=t,this.chunk=e,this.nextLayer=i,this.maxPoint=n}static create(t,e,i,n){return new Qt(t,e,i,n)}get length(){let t=this.chunk.length-1;return t<0?0:Math.max(this.chunkEnd(t),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let t=this.nextLayer.size;for(let e of this.chunk)t+=e.value.length;return t}chunkEnd(t){return this.chunkPos[t]+this.chunk[t].length}update(t){let{add:e=[],sort:i=!1,filterFrom:n=0,filterTo:r=this.length}=t,s=t.filter;if(0==e.length&&!s)return this;if(i&&(e=e.slice().sort(vt)),this.isEmpty)return e.length?Qt.of(e):this;let o=new $t(this,null,-1).goto(0),a=0,l=[],h=new xt;for(;o.value||a=0){let t=e[a++];h.addInner(t.from,t.to,t.value)||l.push(t)}else 1==o.rangeIndex&&o.chunkIndexthis.chunkEnd(o.chunkIndex)||ro.to||r=r&&t<=r+s.length&&!1===s.between(r,t-r,e-r,i))return}this.nextLayer.between(t,e,i)}}iter(t=0){return Pt.from([this]).goto(t)}get isEmpty(){return this.nextLayer==this}static iter(t,e=0){return Pt.from(t).goto(e)}static compare(t,e,i,n,r=-1){let s=t.filter((t=>t.maxPoint>0||!t.isEmpty&&t.maxPoint>=r)),o=e.filter((t=>t.maxPoint>0||!t.isEmpty&&t.maxPoint>=r)),a=kt(s,o,i),l=new Tt(s,a,r),h=new Tt(o,a,r);i.iterGaps(((t,e,i)=>Ct(l,t,h,e,i,n))),i.empty&&0==i.length&&Ct(l,0,h,0,0,n)}static eq(t,e,i=0,n){null==n&&(n=999999999);let r=t.filter((t=>!t.isEmpty&&e.indexOf(t)<0)),s=e.filter((e=>!e.isEmpty&&t.indexOf(e)<0));if(r.length!=s.length)return!1;if(!r.length)return!0;let o=kt(r,s),a=new Tt(r,o,0).goto(i),l=new Tt(s,o,0).goto(i);for(;;){if(a.to!=l.to||!Xt(a.active,l.active)||a.point&&(!l.point||!a.point.eq(l.point)))return!1;if(a.to>n)return!0;a.next(),l.next()}}static spans(t,e,i,n,r=-1){let s=new Tt(t,null,r).goto(e),o=e,a=s.openStart;for(;;){let t=Math.min(s.to,i);if(s.point){let i=s.activeForPoint(s.to),r=s.pointFromo&&(n.span(o,t,s.active,a),a=s.openEnd(t));if(s.to>i)return a+(s.point&&s.to>i?1:0);o=s.to,s.next()}}static of(t,e=!1){let i=new xt;for(let n of t instanceof St?[t]:e?function(t){if(t.length>1)for(let e=t[0],i=1;i0)return t.slice().sort(vt);e=n}return t}(t):t)i.add(n.from,n.to,n.value);return i.finish()}static join(t){if(!t.length)return Qt.empty;let e=t[t.length-1];for(let i=t.length-2;i>=0;i--)for(let n=t[i];n!=Qt.empty;n=n.nextLayer)e=new Qt(n.chunkPos,n.chunk,e,Math.max(n.maxPoint,e.maxPoint));return e}}Qt.empty=new Qt([],[],null,-1),Qt.empty.nextLayer=Qt.empty;class xt{finishChunk(t){this.chunks.push(new yt(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,t&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(t,e,i){this.addInner(t,e,i)||(this.nextLayer||(this.nextLayer=new xt)).add(t,e,i)}addInner(t,e,i){let n=t-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(t-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(n<0||(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=t),this.from.push(t-this.chunkStart),this.to.push(e-this.chunkStart),this.last=i,this.lastFrom=t,this.lastTo=e,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,e-t)),0))}addChunk(t,e){if((t-this.lastTo||e.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,e.maxPoint),this.chunks.push(e),this.chunkPos.push(t);let i=e.value.length-1;return this.last=e.value[i],this.lastFrom=e.from[i]+t,this.lastTo=e.to[i]+t,!0}finish(){return this.finishInner(Qt.empty)}finishInner(t){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return t;let e=Qt.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(t):t,this.setMaxPoint);return this.from=null,e}}function kt(t,e,i){let n=new Map;for(let e of t)for(let t=0;t=this.minPoint)break}}}setRangeIndex(t){if(t==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&n.push(new $t(s,e,i,r));return 1==n.length?n[0]:new Pt(n)}get startSide(){return this.value?this.value.startSide:0}goto(t,e=-1e9){for(let i of this.heap)i.goto(t,e);for(let t=this.heap.length>>1;t>=0;t--)Zt(this.heap,t);return this.next(),this}forward(t,e){for(let i of this.heap)i.forward(t,e);for(let t=this.heap.length>>1;t>=0;t--)Zt(this.heap,t);(this.to-t||this.value.endSide-e)<0&&this.next()}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let t=this.heap[0];this.from=t.from,this.to=t.to,this.value=t.value,this.rank=t.rank,t.value&&t.next(),Zt(this.heap,0)}}}function Zt(t,e){for(let i=t[e];;){let n=1+(e<<1);if(n>=t.length)break;let r=t[n];if(n+1=0&&(r=t[n+1],n++),i.compare(r)<0)break;t[n]=i,t[e]=r,e=n}}class Tt{constructor(t,e,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Pt.from(t,e,i)}goto(t,e=-1e9){return this.cursor.goto(t,e),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=t,this.endSide=e,this.openStart=-1,this.next(),this}forward(t,e){for(;this.minActive>-1&&(this.activeTo[this.minActive]-t||this.active[this.minActive].endSide-e)<0;)this.removeActive(this.minActive);this.cursor.forward(t,e)}removeActive(t){Yt(this.active,t),Yt(this.activeTo,t),Yt(this.activeRank,t),this.minActive=Wt(this.active,this.activeTo)}addActive(t){let e=0,{value:i,to:n,rank:r}=this.cursor;for(;e0;)e++;At(this.active,e,i),At(this.activeTo,e,n),At(this.activeRank,e,r),t&&At(t,e,this.cursor.from),this.minActive=Wt(this.active,this.activeTo)}next(){let t=this.to,e=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let n=this.minActive;if(n>-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>t){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),i&&Yt(i,n)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>t){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}{let t=this.cursor.value;if(t.point){if(!(e&&this.cursor.to==this.to&&this.cursor.from=0&&i[e]=0&&!(this.activeRank[i]t||this.activeTo[i]==t&&this.active[i].endSide>=this.point.endSide)&&e.push(this.active[i]);return e.reverse()}openEnd(t){let e=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>t;i--)e++;return e}}function Ct(t,e,i,n,r,s){t.goto(e),i.goto(n);let o=n+r,a=n,l=n-e;for(;;){let e=t.to+l-i.to||t.endSide-i.endSide,n=e<0?t.to+l:i.to,r=Math.min(n,o);if(t.point||i.point?t.point&&i.point&&(t.point==i.point||t.point.eq(i.point))&&Xt(t.activeForPoint(t.to),i.activeForPoint(i.to))||s.comparePoint(a,r,t.point,i.point):r>a&&!Xt(t.active,i.active)&&s.compareRange(a,r,t.active,i.active),n>o)break;a=n,e<=0&&t.next(),e>=0&&i.next()}}function Xt(t,e){if(t.length!=e.length)return!1;for(let i=0;i=e;i--)t[i+1]=t[i];t[e]=i}function Wt(t,e){let i=-1,n=1e9;for(let r=0;rt.map((t=>e.replace(/&/,t))))).reduce(((t,e)=>t.concat(e))),o,s);else if(o&&"object"==typeof o){if(!l)throw new RangeError("The value of a property ("+i+") should be a primitive value.");r(n(i),o,a,h)}else null!=o&&a.push(i.replace(/_.*/,"").replace(/[A-Z]/g,(t=>"-"+t.toLowerCase()))+": "+o+";")}(a.length||h)&&s.push((!i||l||o?t:t.map(i)).join(", ")+" {"+a.join(" ")+"}")}for(let e in t)r(n(e),t[e],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let t=Mt[Et]||1;return Mt[Et]=t+1,"\u037c"+t.toString(36)}static mount(t,e,i){let n=t[zt],r=i&&i.nonce;n?r&&n.setNonce(r):n=new Vt(t,r),n.mount(Array.isArray(e)?e:[e])}}let qt=new Map;class Vt{constructor(t,e){let i=t.ownerDocument||t,n=i.defaultView;if(!t.head&&t.adoptedStyleSheets&&n.CSSStyleSheet){let e=qt.get(i);if(e)return t.adoptedStyleSheets=[e.sheet,...t.adoptedStyleSheets],t[zt]=e;this.sheet=new n.CSSStyleSheet,t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets],qt.set(i,this)}else{this.styleTag=i.createElement("style"),e&&this.styleTag.setAttribute("nonce",e);let n=t.head||t;n.insertBefore(this.styleTag,n.firstChild)}this.modules=[],t[zt]=this}mount(t){let e=this.sheet,i=0,n=0;for(let r=0;r-1&&(this.modules.splice(o,1),n--,o=-1),-1==o){if(this.modules.splice(n++,0,s),e)for(let t=0;t",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},It="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),Nt="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),Gt=0;Gt<10;Gt++)jt[48+Gt]=jt[96+Gt]=String(Gt);for(Gt=1;Gt<=24;Gt++)jt[Gt+111]="F"+Gt;for(Gt=65;Gt<=90;Gt++)jt[Gt]=String.fromCharCode(Gt+32),Dt[Gt]=String.fromCharCode(Gt);for(var Bt in jt)Dt.hasOwnProperty(Bt)||(Dt[Bt]=jt[Bt]);function Lt(t){let e;return e=11==t.nodeType?t.getSelection?t:t.ownerDocument:t,e.getSelection()}function Ft(t,e){return!!e&&(t==e||t.contains(1!=e.nodeType?e.parentNode:e))}function Ht(t,e){if(!e.anchorNode)return!1;try{return Ft(t,e.anchorNode)}catch(t){return!1}}function Kt(t){return 3==t.nodeType?ce(t,0,t.nodeValue.length).getClientRects():1==t.nodeType?t.getClientRects():[]}function Jt(t,e,i,n){return!!i&&(ee(t,e,i,n,-1)||ee(t,e,i,n,1))}function te(t){for(var e=0;;e++)if(!(t=t.previousSibling))return e}function ee(t,e,i,n,r){for(;;){if(t==i&&e==n)return!0;if(e==(r<0?0:ie(t))){if("DIV"==t.nodeName)return!1;let i=t.parentNode;if(!i||1!=i.nodeType)return!1;e=te(t)+(r<0?0:1),t=i}else{if(1!=t.nodeType)return!1;if(1==(t=t.childNodes[e+(r<0?-1:0)]).nodeType&&"false"==t.contentEditable)return!1;e=r<0?ie(t):0}}}function ie(t){return 3==t.nodeType?t.nodeValue.length:t.childNodes.length}function ne(t,e){let i=e?t.left:t.right;return{left:i,right:i,top:t.top,bottom:t.bottom}}function re(t){return{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight}}function se(t,e){let i=e.width/t.offsetWidth,n=e.height/t.offsetHeight;return(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.width-t.offsetWidth)<1)&&(i=1),(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.height-t.offsetHeight)<1)&&(n=1),{scaleX:i,scaleY:n}}class oe{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(t){return this.anchorNode==t.anchorNode&&this.anchorOffset==t.anchorOffset&&this.focusNode==t.focusNode&&this.focusOffset==t.focusOffset}setRange(t){let{anchorNode:e,focusNode:i}=t;this.set(e,Math.min(t.anchorOffset,e?ie(e):0),i,Math.min(t.focusOffset,i?ie(i):0))}set(t,e,i,n){this.anchorNode=t,this.anchorOffset=e,this.focusNode=i,this.focusOffset=n}}let ae,le=null;function he(t){if(t.setActive)return t.setActive();if(le)return t.focus(le);let e=[];for(let i=t;i&&(e.push(i,i.scrollTop,i.scrollLeft),i!=i.ownerDocument);i=i.parentNode);if(t.focus(null==le?{get preventScroll(){return le={preventScroll:!0},!0}}:void 0),!le){le=!1;for(let t=0;tMath.max(1,t.scrollHeight-t.clientHeight-4)}class fe{constructor(t,e,i=!0){this.node=t,this.offset=e,this.precise=i}static before(t,e){return new fe(t.parentNode,te(t),e)}static after(t,e){return new fe(t.parentNode,te(t)+1,e)}}const Oe=[];class me{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(t){let e=this.posAtStart;for(let i of this.children){if(i==t)return e;e+=i.length+i.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(t){return this.posBefore(t)+t.length}sync(t,e){if(2&this.flags){let i,n=this.dom,r=null;for(let s of this.children){if(7&s.flags){if(!s.dom&&(i=r?r.nextSibling:n.firstChild)){let t=me.get(i);(!t||!t.parent&&t.canReuseDOM(s))&&s.reuseDOM(i)}s.sync(t,e),s.flags&=-8}if(i=r?r.nextSibling:n.firstChild,e&&!e.written&&e.node==n&&i!=s.dom&&(e.written=!0),s.dom.parentNode==n)for(;i&&i!=s.dom;)i=ge(i);else n.insertBefore(s.dom,i);r=s.dom}for(i=r?r.nextSibling:n.firstChild,i&&e&&e.node==n&&(e.written=!0);i;)i=ge(i)}else if(1&this.flags)for(let i of this.children)7&i.flags&&(i.sync(t,e),i.flags&=-8)}reuseDOM(t){}localPosFromDOM(t,e){let i;if(t==this.dom)i=this.dom.childNodes[e];else{let n=0==ie(t)?0:0==e?-1:1;for(;;){let e=t.parentNode;if(e==this.dom)break;0==n&&e.firstChild!=e.lastChild&&(n=t==e.firstChild?-1:1),t=e}i=n<0?t:t.nextSibling}if(i==this.dom.firstChild)return 0;for(;i&&!me.get(i);)i=i.nextSibling;if(!i)return this.length;for(let t=0,e=0;;t++){let n=this.children[t];if(n.dom==i)return e;e+=n.length+n.breakAfter}}domBoundsAround(t,e,i=0){let n=-1,r=-1,s=-1,o=-1;for(let a=0,l=i,h=i;ae)return i.domBoundsAround(t,e,l);if(c>=t&&-1==n&&(n=a,r=l),l>e&&i.dom.parentNode==this.dom){s=a,o=h;break}h=c,l=c+i.breakAfter}return{from:r,to:o<0?i+this.length:o,startDOM:(n?this.children[n-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:s=0?this.children[s].dom:null}}markDirty(t=!1){this.flags|=2,this.markParentsDirty(t)}markParentsDirty(t){for(let e=this.parent;e;e=e.parent){if(t&&(e.flags|=2),1&e.flags)return;e.flags|=1,t=!1}}setParent(t){this.parent!=t&&(this.parent=t,7&this.flags&&this.markParentsDirty(!0))}setDOM(t){this.dom!=t&&(this.dom&&(this.dom.cmView=null),this.dom=t,t.cmView=this)}get rootView(){for(let t=this;;){let e=t.parent;if(!e)return t;t=e}}replaceChildren(t,e,i=Oe){this.markDirty();for(let n=t;nthis.pos||t==this.pos&&(e>0||0==this.i||this.children[this.i-1].breakAfter))return this.off=t-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}}function be(t,e,i,n,r,s,o,a,l){let{children:h}=t,c=h.length?h[e]:null,u=s.length?s[s.length-1]:null,d=u?u.breakAfter:o;if(!(e==n&&c&&!o&&!d&&s.length<2&&c.merge(i,r,s.length?u:null,0==i,a,l))){if(n0&&(!o&&s.length&&c.merge(i,c.length,s[0],!1,a,0)?c.breakAfter=s.shift().breakAfter:(i2);var Xe={mac:Ce||/Mac/.test(Se.platform),windows:/Win/.test(Se.platform),linux:/Linux|X11/.test(Se.platform),ie:ke,ie_version:Qe?ve.documentMode||6:xe?+xe[1]:ye?+ye[1]:0,gecko:$e,gecko_version:$e?+(/Firefox\/(\d+)/.exec(Se.userAgent)||[0,0])[1]:0,chrome:!!Pe,chrome_version:Pe?+Pe[1]:0,ios:Ce,android:/Android\b/.test(Se.userAgent),safari:Te,webkit_version:Ze?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=ve.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};class Ye extends me{constructor(t){super(),this.text=t}get length(){return this.text.length}createDOM(t){this.setDOM(t||document.createTextNode(this.text))}sync(t,e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}reuseDOM(t){3==t.nodeType&&this.createDOM(t)}merge(t,e,i){return!(8&this.flags||i&&(!(i instanceof Ye)||this.length-(e-t)+i.length>256||8&i.flags)||(this.text=this.text.slice(0,t)+(i?i.text:"")+this.text.slice(e),this.markDirty(),0))}split(t){let e=new Ye(this.text.slice(t));return this.text=this.text.slice(0,t),this.markDirty(),e.flags|=8&this.flags,e}localPosFromDOM(t,e){return t==this.dom?e:e?this.text.length:0}domAtPos(t){return new fe(this.dom,t)}domBoundsAround(t,e,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(t,e){return function(t,e,i){let n=t.nodeValue.length;e>n&&(e=n);let r=e,s=e,o=0;0==e&&i<0||e==n&&i>=0?Xe.chrome||Xe.gecko||(e?(r--,o=1):s=0)?0:a.length-1];return Xe.safari&&!o&&0==l.width&&(l=Array.prototype.find.call(a,(t=>t.width))||l),o?ne(l,o<0):l||null}(this.dom,t,e)}}class Ae extends me{constructor(t,e=[],i=0){super(),this.mark=t,this.children=e,this.length=i;for(let t of e)t.setParent(this)}setAttrs(t){if(de(t),this.mark.class&&(t.className=this.mark.class),this.mark.attrs)for(let e in this.mark.attrs)t.setAttribute(e,this.mark.attrs[e]);return t}canReuseDOM(t){return super.canReuseDOM(t)&&!(8&(this.flags|t.flags))}reuseDOM(t){t.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(t),this.flags|=6)}sync(t,e){this.dom?4&this.flags&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(t,e)}merge(t,e,i,n,r,s){return!(i&&(!(i instanceof Ae&&i.mark.eq(this.mark))||t&&r<=0||et&&e.push(i=t&&(n=r),i=o,r++}let s=this.length-t;return this.length=t,n>-1&&(this.children.length=n,this.markDirty()),new Ae(this.mark,e,s)}domAtPos(t){return Ee(this,t)}coordsAt(t,e){return Me(this,t,e)}}class We extends me{static create(t,e,i){return new We(t,e,i)}constructor(t,e,i){super(),this.widget=t,this.length=e,this.side=i,this.prevWidget=null}split(t){let e=We.create(this.widget,this.length-t,this.side);return this.length-=t,e}sync(t){this.dom&&this.widget.updateDOM(this.dom,t)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(t)),this.dom.contentEditable="false")}getSide(){return this.side}merge(t,e,i,n,r,s){return!(i&&(!(i instanceof We&&this.widget.compare(i.widget))||t>0&&r<=0||e0)?fe.before(this.dom):fe.after(this.dom,t==this.length)}domBoundsAround(){return null}coordsAt(t,e){let i=this.widget.coordsAt(this.dom,t,e);if(i)return i;let n=this.dom.getClientRects(),r=null;if(!n.length)return null;let s=this.side?this.side<0:t>0;for(let e=s?n.length-1:0;r=n[e],!(t>0?0==e:e==n.length-1||r.top0?fe.before(this.dom):fe.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(t){return this.dom.getBoundingClientRect()}get overrideDOMText(){return t.empty}get isHidden(){return!0}}function Ee(t,e){let i=t.dom,{children:n}=t,r=0;for(let t=0;rt&&e0;t--){let e=n[t-1];if(e.dom.parentNode==i)return e.domAtPos(e.length)}for(let t=r;t0&&e instanceof Ae&&r.length&&(n=r[r.length-1])instanceof Ae&&n.mark.eq(e.mark)?ze(n,e.children[0],i-1):(r.push(e),e.setParent(t)),t.length+=e.length}function Me(t,e,i){let n=null,r=-1,s=null,o=-1;!function t(e,a){for(let l=0,h=0;l=a&&(c.children.length?t(c,a-h):(!s||s.isHidden&&i>0)&&(u>a||h==u&&c.getSide()>0)?(s=c,o=a-h):(h-1?1:0)!=r.length-(i&&r.indexOf(i)>-1?1:0))return!1;for(let s of n)if(s!=i&&(-1==r.indexOf(s)||t[s]!==e[s]))return!1;return!0}function je(t,e,i){let n=!1;if(e)for(let r in e)i&&r in i||(n=!0,"style"==r?t.style.cssText="":t.removeAttribute(r));if(i)for(let r in i)e&&e[r]==i[r]||(n=!0,"style"==r?t.style.cssText=i[r]:t.setAttribute(r,i[r]));return n}function De(t){let e=Object.create(null);for(let i=0;i0&&0==this.children[i-1].length;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=t,e}transferDOM(t){this.dom&&(this.markDirty(),t.setDOM(this.dom),t.prevAttrs=void 0===this.prevAttrs?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(t){Ve(this.attrs,t)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=t)}append(t,e){ze(this,t,e)}addLineDeco(t){let e=t.spec.attributes,i=t.spec.class;e&&(this.attrs=Ue(e,this.attrs||{})),i&&(this.attrs=Ue({class:i},this.attrs||{}))}domAtPos(t){return Ee(this,t)}reuseDOM(t){"DIV"==t.nodeName&&(this.setDOM(t),this.flags|=6)}sync(t,e){var i;this.dom?4&this.flags&&(de(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),void 0!==this.prevAttrs&&(je(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(t,e);let n=this.dom.lastChild;for(;n&&me.get(n)instanceof Ae;)n=n.lastChild;if(!(n&&this.length&&("BR"==n.nodeName||0!=(null===(i=me.get(n))||void 0===i?void 0:i.isEditable)||Xe.ios&&this.children.some((t=>t instanceof Ye))))){let t=document.createElement("BR");t.cmIgnore=!0,this.dom.appendChild(t)}}measureTextSize(){if(0==this.children.length||this.length>20)return null;let t,e=0;for(let i of this.children){if(!(i instanceof Ye)||/[^ -~]/.test(i.text))return null;let n=Kt(i.dom);if(1!=n.length)return null;e+=n[0].width,t=n[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:t}:null}coordsAt(t,e){let i=Me(this,t,e);if(!this.children.length&&i&&this.parent){let{heightOracle:t}=this.parent.view.viewState,e=i.bottom-i.top;if(Math.abs(e-t.lineHeight)<2&&t.textHeight=e){if(r instanceof Ie)return r;if(s>e)break}n=s+r.breakAfter}return null}}class Ne extends me{constructor(t,e,i){super(),this.widget=t,this.length=e,this.deco=i,this.breakAfter=0,this.prevWidget=null}merge(t,e,i,n,r,s){return!(i&&(!(i instanceof Ne&&this.widget.compare(i.widget))||t>0&&r<=0||e0)}}class Ge{eq(t){return!1}updateDOM(t,e){return!1}compare(t){return this==t||this.constructor==t.constructor&&this.eq(t)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(t){return!0}coordsAt(t,e,i){return null}get isHidden(){return!1}destroy(t){}}var Be=function(t){return t[t.Text=0]="Text",t[t.WidgetBefore=1]="WidgetBefore",t[t.WidgetAfter=2]="WidgetAfter",t[t.WidgetRange=3]="WidgetRange",t}(Be||(Be={}));class Le extends wt{constructor(t,e,i,n){super(),this.startSide=t,this.endSide=e,this.widget=i,this.spec=n}get heightRelevant(){return!1}static mark(t){return new Fe(t)}static widget(t){let e=Math.max(-1e4,Math.min(1e4,t.side||0)),i=!!t.block;return e+=i&&!t.inlineOrder?e>0?3e8:-4e8:e>0?1e8:-1e8,new Ke(t,e,e,i,t.widget||null,!1)}static replace(t){let e,i,n=!!t.block;if(t.isBlockGap)e=-5e8,i=4e8;else{let{start:r,end:s}=Je(t,n);e=(r?n?-3e8:-1:5e8)-1,i=1+(s?n?2e8:1:-6e8)}return new Ke(t,e,i,n,t.widget||null,!0)}static line(t){return new He(t)}static set(t,e=!1){return Qt.of(t,e)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}Le.none=Qt.empty;class Fe extends Le{constructor(t){let{start:e,end:i}=Je(t);super(e?-1:5e8,i?1:-6e8,null,t),this.tagName=t.tagName||"span",this.class=t.class||"",this.attrs=t.attributes||null}eq(t){var e,i;return this==t||t instanceof Fe&&this.tagName==t.tagName&&(this.class||(null===(e=this.attrs)||void 0===e?void 0:e.class))==(t.class||(null===(i=t.attrs)||void 0===i?void 0:i.class))&&Ve(this.attrs,t.attrs,"class")}range(t,e=t){if(t>=e)throw new RangeError("Mark decorations may not be empty");return super.range(t,e)}}Fe.prototype.point=!1;class He extends Le{constructor(t){super(-2e8,-2e8,null,t)}eq(t){return t instanceof He&&this.spec.class==t.spec.class&&Ve(this.spec.attributes,t.spec.attributes)}range(t,e=t){if(e!=t)throw new RangeError("Line decoration ranges must be zero-length");return super.range(t,e)}}He.prototype.mapMode=v.TrackBefore,He.prototype.point=!0;class Ke extends Le{constructor(t,e,i,n,r,s){super(e,i,r,t),this.block=n,this.isReplace=s,this.mapMode=n?e<=0?v.TrackBefore:v.TrackAfter:v.TrackDel}get type(){return this.startSide!=this.endSide?Be.WidgetRange:this.startSide<=0?Be.WidgetBefore:Be.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(t){return t instanceof Ke&&((e=this.widget)==(i=t.widget)||!!(e&&i&&e.compare(i)))&&this.block==t.block&&this.startSide==t.startSide&&this.endSide==t.endSide;var e,i}range(t,e=t){if(this.isReplace&&(t>e||t==e&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&e!=t)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(t,e)}}function Je(t,e=!1){let{inclusiveStart:i,inclusiveEnd:n}=t;return null==i&&(i=t.inclusive),null==n&&(n=t.inclusive),{start:null!=i?i:e,end:null!=n?n:e}}function ti(t,e,i,n=0){let r=i.length-1;r>=0&&i[r]+n>=t?i[r]=Math.max(i[r],e):i.push(t,e)}Ke.prototype.point=!0;class ei{constructor(t,e,i,n){this.doc=t,this.pos=e,this.end=i,this.disallowBlockEffectsFor=n,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=t.iter(),this.skip=e}posCovered(){if(0==this.content.length)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let t=this.content[this.content.length-1];return!(t.breakAfter||t instanceof Ne&&t.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new Ie),this.atCursorPos=!0),this.curLine}flushBuffer(t=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(ii(new Re(-1),t),t.length),this.pendingBuffer=0)}addBlockWidget(t){this.flushBuffer(),this.curLine=null,this.content.push(t)}finish(t){this.pendingBuffer&&t<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,this.posCovered()||t&&this.content.length&&this.content[this.content.length-1]instanceof Ne||this.getLine()}buildText(t,e,i){for(;t>0;){if(this.textOff==this.text.length){let{value:e,lineBreak:i,done:n}=this.cursor.next(this.skip);if(this.skip=0,n)throw new Error("Ran out of text content when drawing inline views");if(i){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,t--;continue}this.text=e,this.textOff=0}let n=Math.min(this.text.length-this.textOff,t,512);this.flushBuffer(e.slice(e.length-i)),this.getLine().append(ii(new Ye(this.text.slice(this.textOff,this.textOff+n)),e),i),this.atCursorPos=!0,this.textOff+=n,t-=n,i=0}}span(t,e,i,n){this.buildText(e-t,i,n),this.pos=e,this.openStart<0&&(this.openStart=n)}point(t,e,i,n,r,s){if(this.disallowBlockEffectsFor[s]&&i instanceof Ke){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(e>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let o=e-t;if(i instanceof Ke)if(i.block)i.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new Ne(i.widget||new ni("div"),o,i));else{let s=We.create(i.widget||new ni("span"),o,o?0:i.startSide),a=this.atCursorPos&&!s.isEditable&&r<=n.length&&(t0),l=!s.isEditable&&(tn.length||i.startSide<=0),h=this.getLine();2!=this.pendingBuffer||a||s.isEditable||(this.pendingBuffer=0),this.flushBuffer(n),a&&(h.append(ii(new Re(1),n),r),r=n.length+Math.max(0,r-n.length)),h.append(ii(s,n),r),this.atCursorPos=l,this.pendingBuffer=l?tn.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=n.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);o&&(this.textOff+o<=this.text.length?this.textOff+=o:(this.skip+=o-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=e),this.openStart<0&&(this.openStart=r)}static build(t,e,i,n,r){let s=new ei(t,e,i,r);return s.openEnd=Qt.spans(n,e,i,s),s.openStart<0&&(s.openStart=s.openEnd),s.finish(s.openEnd),s}}function ii(t,e){for(let i of e)t=new Ae(i,[t],t.length);return t}class ni extends Ge{constructor(t){super(),this.tag=t}eq(t){return t.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(t){return t.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}const ri=W.define(),si=W.define(),oi=W.define(),ai=W.define(),li=W.define(),hi=W.define(),ci=W.define(),ui=W.define({combine:t=>t.some((t=>t))}),di=W.define({combine:t=>t.some((t=>t))});class pi{constructor(t,e="nearest",i="nearest",n=5,r=5,s=!1){this.range=t,this.y=e,this.x=i,this.yMargin=n,this.xMargin=r,this.isSnapshot=s}map(t){return t.empty?this:new pi(this.range.map(t),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(t){return this.range.to<=t.doc.length?this:new pi(X.cursor(t.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const fi=at.define({map:(t,e)=>t.map(e)});function Oi(t,e,i){let n=t.facet(ai);n.length?n[0](e):window.onerror?window.onerror(String(e),i,void 0,void 0,e):i?console.error(i+":",e):console.error(e)}const mi=W.define({combine:t=>!t.length||t[0]});let gi=0;const _i=W.define();class bi{constructor(t,e,i,n,r){this.id=t,this.create=e,this.domEventHandlers=i,this.domEventObservers=n,this.extension=r(this)}static define(t,e){const{eventHandlers:i,eventObservers:n,provide:r,decorations:s}=e||{};return new bi(gi++,t,i,n,(t=>{let e=[_i.of(t)];return s&&e.push(yi.of((e=>{let i=e.plugin(t);return i?s(i):Le.none}))),r&&e.push(r(t)),e}))}static fromClass(t,e){return bi.define((e=>new t(e)),e)}}class wi{constructor(t){this.spec=t,this.mustUpdate=null,this.value=null}update(t){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(e){if(Oi(t.state,e,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(t){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(t)}catch(e){Oi(t.state,e,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(t){var e;if(null===(e=this.value)||void 0===e?void 0:e.destroy)try{this.value.destroy()}catch(e){Oi(t.state,e,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const Si=W.define(),vi=W.define(),yi=W.define(),Qi=W.define(),xi=W.define();function ki(t,e,i){let n=t.state.facet(xi);if(!n.length)return n;let r=n.map((e=>e instanceof Function?e(t):e)),s=[];return Qt.spans(r,e,i,{point(){},span(t,e,i,n){let r=s;for(let s=i.length-1;s>=0;s--,n--){let o,a=i[s].spec.bidiIsolate;if(null!=a)if(n>0&&r.length&&(o=r[r.length-1]).to==t&&o.direction==a)o.to=e,r=o.inner;else{let i={from:t,to:e,direction:a,inner:[]};r.push(i),r=i.inner}}}}),s}const $i=W.define();function Pi(t){let e=0,i=0,n=0,r=0;for(let s of t.state.facet($i)){let o=s(t);o&&(null!=o.left&&(e=Math.max(e,o.left)),null!=o.right&&(i=Math.max(i,o.right)),null!=o.top&&(n=Math.max(n,o.top)),null!=o.bottom&&(r=Math.max(r,o.bottom)))}return{left:e,right:i,top:n,bottom:r}}const Zi=W.define();class Ti{constructor(t,e,i,n){this.fromA=t,this.toA=e,this.fromB=i,this.toB=n}join(t){return new Ti(Math.min(this.fromA,t.fromA),Math.max(this.toA,t.toA),Math.min(this.fromB,t.fromB),Math.max(this.toB,t.toB))}addToSet(t){let e=t.length,i=this;for(;e>0;e--){let n=t[e-1];if(!(n.fromA>i.toA)){if(n.toAh)break;r+=2}if(!a)return i;new Ti(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),s=a.toA,o=a.toB}}}class Ci{constructor(t,e,i){this.view=t,this.state=e,this.transactions=i,this.flags=0,this.startState=t.state,this.changes=Q.empty(this.startState.doc.length);for(let t of i)this.changes=this.changes.compose(t.changes);let n=[];this.changes.iterChangedRanges(((t,e,i,r)=>n.push(new Ti(t,e,i,r)))),this.changedRanges=n}static create(t,e,i){return new Ci(t,e,i)}get viewportChanged(){return(4&this.flags)>0}get heightChanged(){return(2&this.flags)>0}get geometryChanged(){return this.docChanged||(10&this.flags)>0}get focusChanged(){return(1&this.flags)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some((t=>t.selection))}get empty(){return 0==this.flags&&0==this.transactions.length}}var Xi=function(t){return t[t.LTR=0]="LTR",t[t.RTL=1]="RTL",t}(Xi||(Xi={}));const Yi=Xi.LTR,Ai=Xi.RTL;function Wi(t){let e=[];for(let i=0;i=e){if(o.level==i)return s;(r<0||(0!=n?n<0?o.frome:t[r].level>o.level))&&(r=s)}}if(r<0)throw new RangeError("Index out of range");return r}}function Vi(t,e){if(t.length!=e.length)return!1;for(let i=0;il&&o.push(new qi(l,f.from,d)),Ii(t,f.direction==Yi!=!(d%2)?n+1:n,r,f.inner,f.from,f.to,o),l=f.to),p=f.to}else{if(p==i||(e?ji[p]!=a:ji[p]==a))break;p++}u?Di(t,l,p,n+1,r,u,o):le;){let i=!0,c=!1;if(!h||l>s[h-1].to){let t=ji[l-1];t!=a&&(i=!1,c=16==t)}let u=i||1!=a?null:[],d=i?n:n+1,p=l;t:for(;;)if(h&&p==s[h-1].to){if(c)break t;let f=s[--h];if(!i)for(let t=f.from,i=h;;){if(t==e)break t;if(!i||s[i-1].to!=t){if(ji[t-1]==a)break t;break}t=s[--i].from}u?u.push(f):(f.to=0;t-=3)if(Mi[t+1]==-i){let e=Mi[t+2],i=2&e?r:4&e?1&e?s:r:0;i&&(ji[o]=ji[Mi[t]]=i),a=t;break}}else{if(189==Mi.length)break;Mi[a++]=o,Mi[a++]=e,Mi[a++]=l}else if(2==(n=ji[o])||1==n){let t=n==r;l=t?0:1;for(let e=a-3;e>=0;e-=3){let i=Mi[e+2];if(2&i)break;if(t)Mi[e+2]|=2;else{if(4&i)break;Mi[e+2]|=4}}}}}(t,r,s,n,a),function(t,e,i,n){for(let r=0,s=n;r<=i.length;r++){let o=r?i[r-1].to:t,a=rl;)e==s&&(e=i[--n].from,s=n?i[n-1].to:t),ji[--e]=c;l=o}else s=o,l++}}}(r,s,n,a),Di(t,r,s,e,i,n,o)}function Ni(t){return[new qi(0,t,0)]}let Gi="";function Bi(t,e,i,n,r){var s;let o=n.head-t.from,a=-1;if(0==o){if(!r||!t.length)return null;e[0].level!=i&&(o=e[0].side(!1,i),a=0)}else if(o==t.length){if(r)return null;let t=e[e.length-1];t.level!=i&&(o=t.side(!0,i),a=e.length-1)}a<0&&(a=qi.find(e,o,null!==(s=n.bidiLevel)&&void 0!==s?s:-1,n.assoc));let l=e[a];o==l.side(r,i)&&(l=e[a+=r?1:-1],o=l.side(!r,i));let h=r==(l.dir==i),c=p(t.text,o,h);if(Gi=t.text.slice(Math.min(o,c),Math.max(o,c)),c>l.from&&c0&&i.length&&(i.every((({fromA:t,toA:e})=>ethis.minWidthTo))?(this.minWidthFrom=t.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=t.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let n=-1;this.view.inputState.composing>=0&&((null===(e=this.domChanged)||void 0===e?void 0:e.newSel)?n=this.domChanged.newSel.head:function(t,e){let i=!1;return e&&t.iterChangedRanges(((t,n)=>{te.from&&(i=!0)})),i}(t.changes,this.hasComposition)||t.selectionSet||(n=t.state.selection.main.head));let r=n>-1?function(t,e,i){let n=Hi(t,i);if(!n)return null;let{node:r,from:s,to:o}=n,a=r.nodeValue;if(/[\n\r]/.test(a))return null;if(t.state.doc.sliceString(n.from,n.to)!=a)return null;let l=e.invertedDesc,h=new Ti(l.mapPos(s),l.mapPos(o),s,o),c=[];for(let e=r.parentNode;;e=e.parentNode){let i=me.get(e);if(i instanceof Ae)c.push({node:e,deco:i.mark});else{if(i instanceof Ie||"DIV"==e.nodeName&&e.parentNode==t.contentDOM)return{range:h,text:r,marks:c,line:e};if(e==t.contentDOM)return null;c.push({node:e,deco:new Fe({inclusive:!0,attributes:De(e),tagName:e.tagName.toLowerCase()})})}}}(this.view,t.changes,n):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:e,to:n}=this.hasComposition;i=new Ti(e,n,t.changes.mapPos(e,-1),t.changes.mapPos(n,1)).addToSet(i.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,(Xe.ie||Xe.chrome)&&!r&&t&&t.state.doc.lines!=t.startState.doc.lines&&(this.forceSelection=!0);let s=function(t,e,i){let n=new Ji;return Qt.compare(t,e,i,n),n.changes}(this.decorations,this.updateDeco(),t.changes);return i=Ti.extendWithRanges(i,s),!!(7&this.flags||0!=i.length)&&(this.updateInner(i,t.startState.doc.length,r),t.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(t,e,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(t,e,i);let{observer:n}=this.view;n.ignore((()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let t=Xe.chrome||Xe.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,t),this.flags&=-8,t&&(t.written||n.selectionRange.focusNode!=t.node)&&(this.forceSelection=!0),this.dom.style.height=""})),this.markedForComposition.forEach((t=>t.flags&=-9));let r=[];if(this.view.viewport.from||this.view.viewport.to=0?n[t]:null;if(!e)break;let s,o,a,l,{fromA:h,toA:c,fromB:u,toB:d}=e;if(i&&i.range.fromBu){let t=ei.build(this.view.state.doc,u,i.range.fromB,this.decorations,this.dynamicDecorationMap),e=ei.build(this.view.state.doc,i.range.toB,d,this.decorations,this.dynamicDecorationMap);o=t.breakAtStart,a=t.openStart,l=e.openEnd;let n=this.compositionView(i);e.breakAtStart?n.breakAfter=1:e.content.length&&n.merge(n.length,n.length,e.content[0],!1,e.openStart,0)&&(n.breakAfter=e.content[0].breakAfter,e.content.shift()),t.content.length&&n.merge(0,0,t.content[t.content.length-1],!0,0,t.openEnd)&&t.content.pop(),s=t.content.concat(n).concat(e.content)}else({content:s,breakAtStart:o,openStart:a,openEnd:l}=ei.build(this.view.state.doc,u,d,this.decorations,this.dynamicDecorationMap));let{i:p,off:f}=r.findPos(c,1),{i:O,off:m}=r.findPos(h,-1);be(this,O,m,p,f,s,o,a,l)}i&&this.fixCompositionDOM(i)}compositionView(t){let e=new Ye(t.text.nodeValue);e.flags|=8;for(let{deco:i}of t.marks)e=new Ae(i,[e],e.length);let i=new Ie;return i.append(e,0),i}fixCompositionDOM(t){let e=(t,e)=>{e.flags|=8|(e.children.some((t=>7&t.flags))?1:0),this.markedForComposition.add(e);let i=me.get(t);i&&i!=e&&(i.dom=null),e.setDOM(t)},i=this.childPos(t.range.fromB,1),n=this.children[i.i];e(t.line,n);for(let r=t.marks.length-1;r>=-1;r--)i=n.childPos(i.off,1),n=n.children[i.i],e(r>=0?t.marks[r].node:t.text,n)}updateSelection(t=!1,e=!1){!t&&this.view.observer.selectionRange.focusNode||this.view.observer.readSelectionRange();let i=this.view.root.activeElement,n=i==this.dom,r=!n&&Ht(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(n||e||r))return;let s=this.forceSelection;this.forceSelection=!1;let o=this.view.state.selection.main,a=this.moveToLine(this.domAtPos(o.anchor)),l=o.empty?a:this.moveToLine(this.domAtPos(o.head));if(Xe.gecko&&o.empty&&!this.hasComposition&&1==(h=a).node.nodeType&&h.node.firstChild&&(0==h.offset||"false"==h.node.childNodes[h.offset-1].contentEditable)&&(h.offset==h.node.childNodes.length||"false"==h.node.childNodes[h.offset].contentEditable)){let t=document.createTextNode("");this.view.observer.ignore((()=>a.node.insertBefore(t,a.node.childNodes[a.offset]||null))),a=l=new fe(t,0),s=!0}var h;let c=this.view.observer.selectionRange;!s&&c.focusNode&&Jt(a.node,a.offset,c.anchorNode,c.anchorOffset)&&Jt(l.node,l.offset,c.focusNode,c.focusOffset)||(this.view.observer.ignore((()=>{Xe.android&&Xe.chrome&&this.dom.contains(c.focusNode)&&function(t,e){for(let i=t;i&&i!=e;i=i.assignedSlot||i.parentNode)if(1==i.nodeType&&"false"==i.contentEditable)return!0;return!1}(c.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let t=Lt(this.view.root);if(t)if(o.empty){if(Xe.gecko){let t=(e=a.node,n=a.offset,1!=e.nodeType?0:(n&&"false"==e.childNodes[n-1].contentEditable?1:0)|(no.head&&([a,l]=[l,a]),e.setEnd(l.node,l.offset),e.setStart(a.node,a.offset),t.removeAllRanges(),t.addRange(e)}var e,n;r&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())})),this.view.observer.setSelectionRange(a,l)),this.impreciseAnchor=a.precise?null:new fe(c.anchorNode,c.anchorOffset),this.impreciseHead=l.precise?null:new fe(c.focusNode,c.focusOffset)}enforceCursorAssoc(){if(this.hasComposition)return;let{view:t}=this,e=t.state.selection.main,i=Lt(t.root),{anchorNode:n,anchorOffset:r}=t.observer.selectionRange;if(!(i&&e.empty&&e.assoc&&i.modify))return;let s=Ie.find(this,e.head);if(!s)return;let o=s.posAtStart;if(e.head==o||e.head==o+s.length)return;let a=this.coordsAt(e.head,-1),l=this.coordsAt(e.head,1);if(!a||!l||a.bottom>l.top)return;let h=this.domAtPos(e.head+e.assoc);i.collapse(h.node,h.offset),i.modify("move",e.assoc<0?"forward":"backward","lineboundary"),t.observer.readSelectionRange();let c=t.observer.selectionRange;t.docView.posFromDOM(c.anchorNode,c.anchorOffset)!=e.from&&i.collapse(n,r)}moveToLine(t){let e,i=this.dom;if(t.node!=i)return t;for(let n=t.offset;!e&&n=0;n--){let t=me.get(i.childNodes[n]);t instanceof Ie&&(e=t.domAtPos(t.length))}return e?new fe(e.node,e.offset,!0):t}nearest(t){for(let e=t;e;){let t=me.get(e);if(t&&t.rootView==this)return t;e=e.parentNode}return null}posFromDOM(t,e){let i=this.nearest(t);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(t,e)+i.posAtStart}domAtPos(t){let{i:e,off:i}=this.childCursor().findPos(t,-1);for(;e=0;s--){let o=this.children[s],a=r-o.breakAfter,l=a-o.length;if(at||o.covers(1))&&(!i||o instanceof Ie&&!(i instanceof Ie&&e>=0))&&(i=o,n=l),r=l}return i?i.coordsAt(t-n,e):null}coordsForChar(t){let{i:e,off:i}=this.childPos(t,1),n=this.children[e];if(!(n instanceof Ie))return null;for(;n.children.length;){let{i:t,off:e}=n.childPos(i,1);for(;;t++){if(t==n.children.length)return null;if((n=n.children[t]).length)break}i=e}if(!(n instanceof Ye))return null;let r=p(n.text,i);if(r==i)return null;let s=ce(n.dom,i,r).getClientRects();for(let t=0;tMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,o=-1,a=this.view.textDirection==Xi.LTR;for(let t=0,l=0;ln)break;if(t>=i){let i=h.dom.getBoundingClientRect();if(e.push(i.height),s){let e=h.dom.lastChild,n=e?Kt(e):[];if(n.length){let e=n[n.length-1],s=a?e.right-i.left:i.right-e.left;s>o&&(o=s,this.minWidth=r,this.minWidthFrom=t,this.minWidthTo=c)}}}t=c+h.breakAfter}return e}textDirectionAt(t){let{i:e}=this.childPos(t,1);return"rtl"==getComputedStyle(this.children[e].dom).direction?Xi.RTL:Xi.LTR}measureTextSize(){for(let t of this.children)if(t instanceof Ie){let e=t.measureTextSize();if(e)return e}let t,e,i,n=document.createElement("div");return n.className="cm-line",n.style.width="99999px",n.style.position="absolute",n.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((()=>{this.dom.appendChild(n);let r=Kt(n.firstChild)[0];t=n.getBoundingClientRect().height,e=r?r.width/27:7,i=r?r.height:t,n.remove()})),{lineHeight:t,charWidth:e,textHeight:i}}childCursor(t=this.length){let e=this.children.length;return e&&(t-=this.children[--e].length),new _e(this.children,t,e)}computeBlockGapDeco(){let t=[],e=this.view.viewState;for(let i=0,n=0;;n++){let r=n==e.viewports.length?null:e.viewports[n],s=r?r.from-1:this.length;if(s>i){let n=(e.lineBlockAt(s).bottom-e.lineBlockAt(i).top)/this.view.scaleY;t.push(Le.replace({widget:new Fi(n),block:!0,inclusive:!0,isBlockGap:!0}).range(i,s))}if(!r)break;i=r.to+1}return Le.set(t)}updateDeco(){let t=this.view.state.facet(yi).map(((t,e)=>(this.dynamicDecorationMap[e]="function"==typeof t)?t(this.view):t));for(let e=t.length;ei.anchor?-1:1);if(!n)return;!i.empty&&(e=this.coordsAt(i.anchor,i.anchor>i.head?-1:1))&&(n={left:Math.min(n.left,e.left),top:Math.min(n.top,e.top),right:Math.max(n.right,e.right),bottom:Math.max(n.bottom,e.bottom)});let r=Pi(this.view),s={left:n.left-r.left,top:n.top-r.top,right:n.right+r.right,bottom:n.bottom+r.bottom},{offsetWidth:o,offsetHeight:a}=this.view.scrollDOM;!function(t,e,i,n,r,s,o,a){let l=t.ownerDocument,h=l.defaultView||window;for(let c=t,u=!1;c&&!u;)if(1==c.nodeType){let t,d=c==l.body,p=1,f=1;if(d)t=re(h);else{if(/^(fixed|sticky)$/.test(getComputedStyle(c).position)&&(u=!0),c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let e=c.getBoundingClientRect();({scaleX:p,scaleY:f}=se(c,e)),t={left:e.left,right:e.left+c.clientWidth*p,top:e.top,bottom:e.top+c.clientHeight*f}}let O=0,m=0;if("nearest"==r)e.top0&&e.bottom>t.bottom+m&&(m=e.bottom-t.bottom+m+o)):e.bottom>t.bottom&&(m=e.bottom-t.bottom+o,i<0&&e.top-m0&&e.right>t.right+O&&(O=e.right-t.right+O+s)):e.right>t.right&&(O=e.right-t.right+s,i<0&&e.left0))break;i=i.childNodes[n-1],n=ie(i)}if(i>=0)for(let n=t,r=e;;){if(3==n.nodeType)return{node:n,offset:r};if(!(1==n.nodeType&&r=0))break;n=n.childNodes[r],r=0}return null}let Ji=class{constructor(){this.changes=[]}compareRange(t,e){ti(t,e,this.changes)}comparePoint(t,e){ti(t,e,this.changes)}};function tn(t,e){return e.left>t?e.left-t:Math.max(0,t-e.right)}function en(t,e){return e.top>t?e.top-t:Math.max(0,t-e.bottom)}function nn(t,e){return t.tope.top+1}function rn(t,e){return et.bottom?{top:t.top,left:t.left,right:t.right,bottom:e}:t}function on(t,e,i){let n,r,s,o,a,l,h,c,u=!1;for(let d=t.firstChild;d;d=d.nextSibling){let t=Kt(d);for(let p=0;pm||o==m&&s>O){n=d,r=f,s=O,o=m;let a=m?i0?p0)}0==O?i>f.bottom&&(!h||h.bottomf.top)&&(l=d,c=f):h&&nn(h,f)?h=sn(h,f.bottom):c&&nn(c,f)&&(c=rn(c,f.top))}}if(h&&h.bottom>=i?(n=a,r=h):c&&c.top<=i&&(n=l,r=c),!n)return{node:t,offset:0};let d=Math.max(r.left,Math.min(r.right,e));return 3==n.nodeType?an(n,d,i):u&&"false"!=n.contentEditable?on(n,d,i):{node:t,offset:Array.prototype.indexOf.call(t.childNodes,n)+(e>=(r.left+r.right)/2?1:0)}}function an(t,e,i){let n=t.nodeValue.length,r=-1,s=1e9,o=0;for(let a=0;ai?h.top-i:i-h.bottom)-1;if(h.left-1<=e&&h.right+1>=e&&c=(h.left+h.right)/2,n=i;if((Xe.chrome||Xe.gecko)&&ce(t,a).getBoundingClientRect().left==h.right&&(n=!i),c<=0)return{node:t,offset:a+(n?1:0)};r=a+(n?1:0),s=c}}}return{node:t,offset:r>-1?r:o>0?t.nodeValue.length:0}}function ln(t,e,i,n=-1){var r,s;let o,a=t.contentDOM.getBoundingClientRect(),l=a.top+t.viewState.paddingTop,{docHeight:h}=t.viewState,{x:c,y:u}=e,d=u-l;if(d<0)return 0;if(d>h)return t.state.doc.length;for(let e=t.viewState.heightOracle.textHeight/2,r=!1;o=t.elementAtHeight(d),o.type!=Be.Text;)for(;d=n>0?o.bottom+e:o.top-e,!(d>=0&&d<=h);){if(r)return i?null:0;r=!0,n=-n}u=l+d;let p=o.from;if(pt.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:i?null:hn(t,a,o,c,u);let f=t.dom.ownerDocument,O=t.root.elementFromPoint?t.root:f,m=O.elementFromPoint(c,u);m&&!t.contentDOM.contains(m)&&(m=null),m||(c=Math.max(a.left+1,Math.min(a.right-1,c)),m=O.elementFromPoint(c,u),m&&!t.contentDOM.contains(m)&&(m=null));let g,_=-1;if(m&&0!=(null===(r=t.docView.nearest(m))||void 0===r?void 0:r.isEditable))if(f.caretPositionFromPoint){let t=f.caretPositionFromPoint(c,u);t&&({offsetNode:g,offset:_}=t)}else if(f.caretRangeFromPoint){let e=f.caretRangeFromPoint(c,u);e&&(({startContainer:g,startOffset:_}=e),(!t.contentDOM.contains(g)||Xe.safari&&function(t,e,i){let n;if(3!=t.nodeType||e!=(n=t.nodeValue.length))return!1;for(let e=t.nextSibling;e;e=e.nextSibling)if(1!=e.nodeType||"BR"!=e.nodeName)return!1;return ce(t,n-1,n).getBoundingClientRect().left>i}(g,_,c)||Xe.chrome&&function(t,e,i){if(0!=e)return!1;for(let e=t;;){let t=e.parentNode;if(!t||1!=t.nodeType||t.firstChild!=e)return!1;if(t.classList.contains("cm-line"))break;e=t}return i-(1==t.nodeType?t.getBoundingClientRect():ce(t,0,Math.max(t.nodeValue.length,1)).getBoundingClientRect()).left>5}(g,_,c))&&(g=void 0))}if(!g||!t.docView.dom.contains(g)){let e=Ie.find(t.docView,p);if(!e)return d>o.top+o.height/2?o.to:o.from;({node:g,offset:_}=on(e.dom,c,u))}let b=t.docView.nearest(g);if(!b)return null;if(b.isWidget&&1==(null===(s=b.dom)||void 0===s?void 0:s.nodeType)){let t=b.dom.getBoundingClientRect();return e.y1.5*t.defaultLineHeight){let e=t.viewState.heightOracle.textHeight;s+=Math.floor((r-i.top-.5*(t.defaultLineHeight-e))/e)*t.viewState.heightOracle.lineLength}let o=t.state.sliceDoc(i.from,i.to);return i.from+function(t,e,i){for(let n=0,r=0;;){if(r>=e)return n;if(n==t.length)break;r+=9==t.charCodeAt(n)?i-r%i:1,n=p(t,n)}return t.length}(o,s,t.state.tabSize)}function cn(t,e){let i=t.lineBlockAt(e);if(Array.isArray(i.type))for(let t of i.type)if(t.to>e||t.to==e&&(t.to==i.to||t.type==Be.Text))return t;return i}function un(t,e,i,n){let r=t.state.doc.lineAt(e.head),s=t.bidiSpans(r),o=t.textDirectionAt(r.from);for(let a=e,l=null;;){let e=Bi(r,s,o,a,i),h=Gi;if(!e){if(r.number==(i?t.state.doc.lines:1))return a;h="\n",r=t.state.doc.line(r.number+(i?1:-1)),s=t.bidiSpans(r),e=X.cursor(i?r.from:r.to)}if(l){if(!l(h))return a}else{if(!n)return e;l=n(h)}a=e}}function dn(t,e,i){for(;;){let n=0;for(let r of t)r.between(e-1,e+1,((t,r,s)=>{if(e>t&&ee(t))),i.from,e.head>i.from?-1:1);return n==i.from?i:X.cursor(n,nnull)),Xe.gecko&&function(t){qn.has(t)||(qn.add(t),t.addEventListener("copy",(()=>{})),t.addEventListener("cut",(()=>{})))}(t.contentDOM.ownerDocument)}handleEvent(t){(function(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let i,n=e.target;n!=t.contentDOM;n=n.parentNode)if(!n||11==n.nodeType||(i=me.get(n))&&i.ignoreEvent(e))return!1;return!0})(this.view,t)&&!this.ignoreDuringComposition(t)&&("keydown"==t.type&&this.keydown(t)||this.runHandlers(t.type,t))}runHandlers(t,e){let i=this.handlers[t];if(i){for(let t of i.observers)t(this.view,e);for(let t of i.handlers){if(e.defaultPrevented)break;if(t(this.view,e)){e.preventDefault();break}}}}ensureHandlers(t){let e=mn(t),i=this.handlers,n=this.view.contentDOM;for(let t in e)if("scroll"!=t){let r=!e[t].handlers.length,s=i[t];s&&r!=!s.handlers.length&&(n.removeEventListener(t,this.handleEvent),s=null),s||n.addEventListener(t,this.handleEvent,{passive:r})}for(let t in i)"scroll"==t||e[t]||n.removeEventListener(t,this.handleEvent);this.handlers=e}keydown(t){if(this.lastKeyCode=t.keyCode,this.lastKeyTime=Date.now(),9==t.keyCode&&Date.now()e.keyCode==t.keyCode)))&&!t.ctrlKey||_n.indexOf(t.key)>-1&&t.ctrlKey&&!t.shiftKey)?(229!=t.keyCode&&this.view.observer.forceFlush(),!1):(this.pendingIOSKey=e||t,setTimeout((()=>this.flushIOSKey()),250),!0)}flushIOSKey(){let t=this.pendingIOSKey;return!!t&&(this.pendingIOSKey=void 0,ue(this.view.contentDOM,t.key,t.keyCode))}ignoreDuringComposition(t){return!!/^key/.test(t.type)&&(this.composing>0||!!(Xe.safari&&!Xe.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100)&&(this.compositionPendingKey=!1,!0))}startMouseSelection(t){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=t}update(t){this.mouseSelection&&this.mouseSelection.update(t),this.draggedContent&&t.docChanged&&(this.draggedContent=this.draggedContent.map(t.changes)),t.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function On(t,e){return(i,n)=>{try{return e.call(t,n,i)}catch(t){Oi(i.state,t)}}}function mn(t){let e=Object.create(null);function i(t){return e[t]||(e[t]={observers:[],handlers:[]})}for(let e of t){let t=e.spec;if(t&&t.domEventHandlers)for(let n in t.domEventHandlers){let r=t.domEventHandlers[n];r&&i(n).handlers.push(On(e.value,r))}if(t&&t.domEventObservers)for(let n in t.domEventObservers){let r=t.domEventObservers[n];r&&i(n).observers.push(On(e.value,r))}}for(let t in vn)i(t).handlers.push(vn[t]);for(let t in yn)i(t).observers.push(yn[t]);return e}const gn=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],_n="dthko",bn=[16,17,18,20,91,92,224,225];function wn(t){return.7*Math.max(0,t)+8}class Sn{constructor(t,e,i,n){this.view=t,this.startEvent=e,this.style=i,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=e,this.scrollParent=function(t){let e=t.ownerDocument;for(let i=t.parentNode;i&&i!=e.body;)if(1==i.nodeType){if(i.scrollHeight>i.clientHeight||i.scrollWidth>i.clientWidth)return i;i=i.assignedSlot||i.parentNode}else{if(11!=i.nodeType)break;i=i.host}return null}(t.contentDOM),this.atoms=t.state.facet(Qi).map((e=>e(t)));let r=t.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=e.shiftKey,this.multiple=t.state.facet(_t.allowMultipleSelections)&&function(t,e){let i=t.state.facet(ri);return i.length?i[0](e):Xe.mac?e.metaKey:e.ctrlKey}(t,e),this.dragging=!(!function(t,e){let{main:i}=t.state.selection;if(i.empty)return!1;let n=Lt(t.root);if(!n||0==n.rangeCount)return!0;let r=n.getRangeAt(0).getClientRects();for(let t=0;t=e.clientX&&i.top<=e.clientY&&i.bottom>=e.clientY)return!0}return!1}(t,e)||1!=Wn(e))&&null}start(t){!1===this.dragging&&this.select(t)}move(t){var e,i,n;if(0==t.buttons)return this.destroy();if(this.dragging||null==this.dragging&&(i=this.startEvent,n=t,Math.max(Math.abs(i.clientX-n.clientX),Math.abs(i.clientY-n.clientY))<10))return;this.select(this.lastEvent=t);let r=0,s=0,o=(null===(e=this.scrollParent)||void 0===e?void 0:e.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},a=Pi(this.view);t.clientX-a.left<=o.left+6?r=-wn(o.left-t.clientX):t.clientX+a.right>=o.right-6&&(r=wn(t.clientX-o.right)),t.clientY-a.top<=o.top+6?s=-wn(o.top-t.clientY):t.clientY+a.bottom>=o.bottom-6&&(s=wn(t.clientY-o.bottom)),this.setScrollSpeed(r,s)}up(t){null==this.dragging&&this.select(this.lastEvent),this.dragging||t.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let t=this.view.contentDOM.ownerDocument;t.removeEventListener("mousemove",this.move),t.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(t,e){this.scrollSpeed={x:t,y:e},t||e?this.scrolling<0&&(this.scrolling=setInterval((()=>this.scroll()),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),!1===this.dragging&&this.select(this.lastEvent)}skipAtoms(t){let e=null;for(let i=0;ithis.select(this.lastEvent)),20)}}const vn=Object.create(null),yn=Object.create(null),Qn=Xe.ie&&Xe.ie_version<15||Xe.ios&&Xe.webkit_version<604;function xn(t,e){let i,{state:n}=t,r=1,s=n.toText(e),o=s.lines==n.selection.ranges.length;if(null!=En&&n.selection.ranges.every((t=>t.empty))&&En==s.toString()){let t=-1;i=n.changeByRange((i=>{let a=n.doc.lineAt(i.from);if(a.from==t)return{range:i};t=a.from;let l=n.toText((o?s.line(r++).text:e)+n.lineBreak);return{changes:{from:a.from,insert:l},range:X.cursor(i.from+l.length)}}))}else i=o?n.changeByRange((t=>{let e=s.line(r++);return{changes:{from:t.from,to:t.to,insert:e.text},range:X.cursor(t.from+e.length)}})):n.replaceSelection(s);t.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}function kn(t,e,i,n){if(1==n)return X.cursor(e,i);if(2==n)return function(t,e,i=1){let n=t.charCategorizer(e),r=t.doc.lineAt(e),s=e-r.from;if(0==r.length)return X.cursor(e);0==s?i=1:s==r.length&&(i=-1);let o=s,a=s;i<0?o=p(r.text,s,!1):a=p(r.text,s);let l=n(r.text.slice(o,a));for(;o>0;){let t=p(r.text,o,!1);if(n(r.text.slice(t,o))!=l)break;o=t}for(;a{t.inputState.lastScrollTop=t.scrollDOM.scrollTop,t.inputState.lastScrollLeft=t.scrollDOM.scrollLeft},vn.keydown=(t,e)=>(t.inputState.setSelectionOrigin("select"),27==e.keyCode&&(t.inputState.lastEscPress=Date.now()),!1),yn.touchstart=(t,e)=>{t.inputState.lastTouchTime=Date.now(),t.inputState.setSelectionOrigin("select.pointer")},yn.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")},vn.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return!1;let i=null;for(let n of t.state.facet(oi))if(i=n(t,e),i)break;if(i||0!=e.button||(i=function(t,e){let i=Tn(t,e),n=Wn(e),r=t.state.selection;return{update(t){t.docChanged&&(i.pos=t.changes.mapPos(i.pos),r=r.map(t.changes))},get(e,s,o){let a,l=Tn(t,e),h=kn(t,l.pos,l.bias,n);if(i.pos!=l.pos&&!s){let e=kn(t,i.pos,i.bias,n),r=Math.min(e.from,h.from),s=Math.max(e.to,h.to);h=r1&&(a=function(t,e){for(let i=0;i=e)return X.create(t.ranges.slice(0,i).concat(t.ranges.slice(i+1)),t.mainIndex==i?0:t.mainIndex-(t.mainIndex>i?1:0))}return null}(r,l.pos))?a:o?r.addRange(h):X.create([h])}}}(t,e)),i){let n=!t.hasFocus;t.inputState.startMouseSelection(new Sn(t,e,i,n)),n&&t.observer.ignore((()=>he(t.contentDOM)));let r=t.inputState.mouseSelection;if(r)return r.start(e),!1===r.dragging}return!1};let $n=(t,e)=>t>=e.top&&t<=e.bottom,Pn=(t,e,i)=>$n(e,i)&&t>=i.left&&t<=i.right;function Zn(t,e,i,n){let r=Ie.find(t.docView,e);if(!r)return 1;let s=e-r.posAtStart;if(0==s)return 1;if(s==r.length)return-1;let o=r.coordsAt(s,-1);if(o&&Pn(i,n,o))return-1;let a=r.coordsAt(s,1);return a&&Pn(i,n,a)?1:o&&$n(n,o)?-1:1}function Tn(t,e){let i=t.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:i,bias:Zn(t,i,e.clientX,e.clientY)}}const Cn=Xe.ie&&Xe.ie_version<=11;let Xn=null,Yn=0,An=0;function Wn(t){if(!Cn)return t.detail;let e=Xn,i=An;return Xn=t,An=Date.now(),Yn=!e||i>Date.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(Yn+1)%3:1}function Rn(t,e,i,n){if(!i)return;let r=t.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=t.inputState,o=n&&s&&function(t,e){let i=t.state.facet(si);return i.length?i[0](e):Xe.mac?!e.altKey:!e.ctrlKey}(t,e)?{from:s.from,to:s.to}:null,a={from:r,insert:i},l=t.state.changes(o?[o,a]:a);t.focus(),t.dispatch({changes:l,selection:{anchor:l.mapPos(r,-1),head:l.mapPos(r,1)},userEvent:o?"move.drop":"input.drop"}),t.inputState.draggedContent=null}vn.dragstart=(t,e)=>{let{selection:{main:i}}=t.state;if(e.target.draggable){let n=t.docView.nearest(e.target);if(n&&n.isWidget){let t=n.posAtStart,e=t+n.length;(t>=i.to||e<=i.from)&&(i=X.range(t,e))}}let{inputState:n}=t;return n.mouseSelection&&(n.mouseSelection.dragging=!0),n.draggedContent=i,e.dataTransfer&&(e.dataTransfer.setData("Text",t.state.sliceDoc(i.from,i.to)),e.dataTransfer.effectAllowed="copyMove"),!1},vn.dragend=t=>(t.inputState.draggedContent=null,!1),vn.drop=(t,e)=>{if(!e.dataTransfer)return!1;if(t.state.readOnly)return!0;let i=e.dataTransfer.files;if(i&&i.length){let n=Array(i.length),r=0,s=()=>{++r==i.length&&Rn(t,e,n.filter((t=>null!=t)).join(t.state.lineBreak),!1)};for(let t=0;t{/[\x00-\x08\x0e-\x1f]{2}/.test(e.result)||(n[t]=e.result),s()},e.readAsText(i[t])}return!0}{let i=e.dataTransfer.getData("Text");if(i)return Rn(t,e,i,!0),!0}return!1},vn.paste=(t,e)=>{if(t.state.readOnly)return!0;t.observer.flush();let i=Qn?null:e.clipboardData;return i?(xn(t,i.getData("text/plain")||i.getData("text/uri-text")),!0):(function(t){let e=t.dom.parentNode;if(!e)return;let i=e.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.focus(),setTimeout((()=>{t.focus(),i.remove(),xn(t,i.value)}),50)}(t),!1)};let En=null;vn.copy=vn.cut=(t,e)=>{let{text:i,ranges:n,linewise:r}=function(t){let e=[],i=[],n=!1;for(let n of t.selection.ranges)n.empty||(e.push(t.sliceDoc(n.from,n.to)),i.push(n));if(!e.length){let r=-1;for(let{from:n}of t.selection.ranges){let s=t.doc.lineAt(n);s.number>r&&(e.push(s.text),i.push({from:s.from,to:Math.min(t.doc.length,s.to+1)})),r=s.number}n=!0}return{text:e.join(t.lineBreak),ranges:i,linewise:n}}(t.state);if(!i&&!r)return!1;En=r?i:null,"cut"!=e.type||t.state.readOnly||t.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"});let s=Qn?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",i),!0):(function(t,e){let i=t.dom.parentNode;if(!i)return;let n=i.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.value=e,n.focus(),n.selectionEnd=e.length,n.selectionStart=0,setTimeout((()=>{n.remove(),t.focus()}),50)}(t,i),!1)};const zn=rt.define();function Mn(t,e){let i=[];for(let n of t.facet(ci)){let r=n(t,e);r&&i.push(r)}return i?t.update({effects:i,annotations:zn.of(!0)}):null}function Un(t){setTimeout((()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let i=Mn(t.state,e);i?t.dispatch(i):t.update([])}}),10)}yn.focus=t=>{t.inputState.lastFocusTime=Date.now(),t.scrollDOM.scrollTop||!t.inputState.lastScrollTop&&!t.inputState.lastScrollLeft||(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),Un(t)},yn.blur=t=>{t.observer.clearSelectionRange(),Un(t)},yn.compositionstart=yn.compositionupdate=t=>{null==t.inputState.compositionFirstChange&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0)},yn.compositionend=t=>{t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,Xe.chrome&&Xe.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then((()=>t.observer.flush())):setTimeout((()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])}),50)},yn.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()},vn.beforeinput=(t,e)=>{var i;let n;if(Xe.chrome&&Xe.android&&(n=gn.find((t=>t.inputType==e.inputType)))&&(t.observer.delayAndroidKey(n.key,n.keyCode),"Backspace"==n.key||"Delete"==n.key)){let e=(null===(i=window.visualViewport)||void 0===i?void 0:i.height)||0;setTimeout((()=>{var i;((null===(i=window.visualViewport)||void 0===i?void 0:i.height)||0)>e+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())}),100)}return!1};const qn=new Set,Vn=["pre-wrap","normal","pre-line","break-spaces"];class jn{constructor(e){this.lineWrapping=e,this.doc=t.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(t,e){let i=this.doc.lineAt(e).number-this.doc.lineAt(t).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((e-t-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(t){return this.lineWrapping?(1+Math.max(0,Math.ceil((t-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(t){return this.doc=t,this}mustRefreshForWrapping(t){return Vn.indexOf(t)>-1!=this.lineWrapping}mustRefreshForHeights(t){let e=!1;for(let i=0;i-1,a=Math.round(e)!=Math.round(this.lineHeight)||this.lineWrapping!=o;if(this.lineWrapping=o,this.lineHeight=e,this.charWidth=i,this.textHeight=n,this.lineLength=r,a){this.heightSamples={};for(let t=0;t0}set outdated(t){this.flags=(t?2:0)|-3&this.flags}setHeight(t,e){this.height!=e&&(Math.abs(this.height-e)>Gn&&(t.heightChanged=!0),this.height=e)}replace(t,e,i){return Bn.of(i)}decomposeLeft(t,e){e.push(this)}decomposeRight(t,e){e.push(this)}applyChanges(t,e,i,n){let r=this,s=i.doc;for(let o=n.length-1;o>=0;o--){let{fromA:a,toA:l,fromB:h,toB:c}=n[o],u=r.lineAt(a,Nn.ByPosNoHeight,i.setDoc(e),0,0),d=u.to>=l?u:r.lineAt(l,Nn.ByPosNoHeight,i,0,0);for(c+=d.to-l,l=d.to;o>0&&u.from<=n[o-1].toA;)a=n[o-1].fromA,h=n[o-1].fromB,o--,a2*r){let r=t[e-1];r.break?t.splice(--e,1,r.left,null,r.right):t.splice(--e,1,r.left,r.right),i+=1+r.break,n-=r.size}else{if(!(r>2*n))break;{let e=t[i];e.break?t.splice(i,1,e.left,null,e.right):t.splice(i,1,e.left,e.right),i+=2+e.break,r-=e.size}}else if(n=r&&s(this.blockAt(0,i,n,r))}updateHeight(t,e=0,i=!1,n){return n&&n.from<=e&&n.more&&this.setHeight(t,n.heights[n.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class Fn extends Ln{constructor(t,e){super(t,e,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(t,e,i,n){return new In(n,this.length,i,this.height,this.breaks)}replace(t,e,i){let n=i[0];return 1==i.length&&(n instanceof Fn||n instanceof Hn&&4&n.flags)&&Math.abs(this.length-n.length)<10?(n instanceof Hn?n=new Fn(n.length,this.height):n.height=this.height,this.outdated||(n.outdated=!1),n):Bn.of(i)}updateHeight(t,e=0,i=!1,n){return n&&n.from<=e&&n.more?this.setHeight(t,n.heights[n.index++]):(i||this.outdated)&&this.setHeight(t,Math.max(this.widgetHeight,t.heightForLine(this.length-this.collapsed))+this.breaks*t.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Hn extends Bn{constructor(t){super(t,0)}heightMetrics(t,e){let i,n=t.doc.lineAt(e).number,r=t.doc.lineAt(e+this.length).number,s=r-n+1,o=0;if(t.lineWrapping){let e=Math.min(this.height,t.lineHeight*s);i=e/s,this.length>s+1&&(o=(this.height-e)/(this.length-s-1))}else i=this.height/s;return{firstLine:n,lastLine:r,perLine:i,perChar:o}}blockAt(t,e,i,n){let{firstLine:r,lastLine:s,perLine:o,perChar:a}=this.heightMetrics(e,n);if(e.lineWrapping){let r=n+Math.round(Math.max(0,Math.min(1,(t-i)/this.height))*this.length),s=e.doc.lineAt(r),l=o+s.length*a,h=Math.max(i,t-l/2);return new In(s.from,s.length,h,l,0)}{let n=Math.max(0,Math.min(s-r,Math.floor((t-i)/o))),{from:a,length:l}=e.doc.line(r+n);return new In(a,l,i+o*n,o,0)}}lineAt(t,e,i,n,r){if(e==Nn.ByHeight)return this.blockAt(t,i,n,r);if(e==Nn.ByPosNoHeight){let{from:e,to:n}=i.doc.lineAt(t);return new In(e,n-e,0,0,0)}let{firstLine:s,perLine:o,perChar:a}=this.heightMetrics(i,r),l=i.doc.lineAt(t),h=o+l.length*a,c=l.number-s,u=n+o*c+a*(l.from-r-c);return new In(l.from,l.length,Math.max(n,Math.min(u,n+this.height-h)),h,0)}forEachLine(t,e,i,n,r,s){t=Math.max(t,r),e=Math.min(e,r+this.length);let{firstLine:o,perLine:a,perChar:l}=this.heightMetrics(i,r);for(let h=t,c=n;h<=e;){let e=i.doc.lineAt(h);if(h==t){let i=e.number-o;c+=a*i+l*(t-r-i)}let n=a+l*e.length;s(new In(e.from,e.length,c,n,0)),c+=n,h=e.to+1}}replace(t,e,i){let n=this.length-e;if(n>0){let t=i[i.length-1];t instanceof Hn?i[i.length-1]=new Hn(t.length+n):i.push(null,new Hn(n-1))}if(t>0){let e=i[0];e instanceof Hn?i[0]=new Hn(t+e.length):i.unshift(new Hn(t-1),null)}return Bn.of(i)}decomposeLeft(t,e){e.push(new Hn(t-1),null)}decomposeRight(t,e){e.push(null,new Hn(this.length-t-1))}updateHeight(t,e=0,i=!1,n){let r=e+this.length;if(n&&n.from<=e+this.length&&n.more){let i=[],s=Math.max(e,n.from),o=-1;for(n.from>e&&i.push(new Hn(n.from-e-1).updateHeight(t,e));s<=r&&n.more;){let e=t.doc.lineAt(s).length;i.length&&i.push(null);let r=n.heights[n.index++];-1==o?o=r:Math.abs(r-o)>=Gn&&(o=-2);let a=new Fn(e,r);a.outdated=!1,i.push(a),s+=e+1}s<=r&&i.push(null,new Hn(r-s).updateHeight(t,s));let a=Bn.of(i);return(o<0||Math.abs(a.height-this.height)>=Gn||Math.abs(o-this.heightMetrics(t,e).perLine)>=Gn)&&(t.heightChanged=!0),a}return(i||this.outdated)&&(this.setHeight(t,t.heightForGap(e,e+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class Kn extends Bn{constructor(t,e,i){super(t.length+e+i.length,t.height+i.height,e|(t.outdated||i.outdated?2:0)),this.left=t,this.right=i,this.size=t.size+i.size}get break(){return 1&this.flags}blockAt(t,e,i,n){let r=i+this.left.height;return to))return l;let h=e==Nn.ByPosNoHeight?Nn.ByPosNoHeight:Nn.ByPos;return a?l.join(this.right.lineAt(o,h,i,s,o)):this.left.lineAt(o,h,i,n,r).join(l)}forEachLine(t,e,i,n,r,s){let o=n+this.left.height,a=r+this.left.length+this.break;if(this.break)t=a&&this.right.forEachLine(t,e,i,o,a,s);else{let l=this.lineAt(a,Nn.ByPos,i,n,r);t=t&&l.from<=e&&s(l),e>l.to&&this.right.forEachLine(l.to+1,e,i,o,a,s)}}replace(t,e,i){let n=this.left.length+this.break;if(ethis.left.length)return this.balanced(this.left,this.right.replace(t-n,e-n,i));let r=[];t>0&&this.decomposeLeft(t,r);let s=r.length;for(let t of i)r.push(t);if(t>0&&Jn(r,s-1),e=i&&e.push(null)),t>i&&this.right.decomposeLeft(t-i,e)}decomposeRight(t,e){let i=this.left.length,n=i+this.break;if(t>=n)return this.right.decomposeRight(t-n,e);t2*e.size||e.size>2*t.size?Bn.of(this.break?[t,null,e]:[t,e]):(this.left=t,this.right=e,this.height=t.height+e.height,this.outdated=t.outdated||e.outdated,this.size=t.size+e.size,this.length=t.length+this.break+e.length,this)}updateHeight(t,e=0,i=!1,n){let{left:r,right:s}=this,o=e+r.length+this.break,a=null;return n&&n.from<=e+r.length&&n.more?a=r=r.updateHeight(t,e,i,n):r.updateHeight(t,e,i),n&&n.from<=o+s.length&&n.more?a=s=s.updateHeight(t,o,i,n):s.updateHeight(t,o,i),a?this.balanced(r,s):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function Jn(t,e){let i,n;null==t[e]&&(i=t[e-1])instanceof Hn&&(n=t[e+1])instanceof Hn&&t.splice(e-1,3,new Hn(i.length+1+n.length))}class tr{constructor(t,e){this.pos=t,this.oracle=e,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=t}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(t,e){if(this.lineStart>-1){let t=Math.min(e,this.lineEnd),i=this.nodes[this.nodes.length-1];i instanceof Fn?i.length+=t-this.pos:(t>this.pos||!this.isCovered)&&this.nodes.push(new Fn(t-this.pos,-1)),this.writtenTo=t,e>t&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=e}point(t,e,i){if(t=5)&&this.addLineDeco(n,r,s)}else e>t&&this.span(t,e);this.lineEnd>-1&&this.lineEnd-1)return;let{from:t,to:e}=this.oracle.doc.lineAt(this.pos);this.lineStart=t,this.lineEnd=e,this.writtenTot&&this.nodes.push(new Fn(this.pos-t,-1)),this.writtenTo=this.pos}blankContent(t,e){let i=new Hn(e-t);return this.oracle.doc.lineAt(t).to==e&&(i.flags|=4),i}ensureLine(){this.enterLine();let t=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(t instanceof Fn)return t;let e=new Fn(0,-1);return this.nodes.push(e),e}addBlock(t){this.enterLine();let e=t.deco;e&&e.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(t),this.writtenTo=this.pos=this.pos+t.length,e&&e.endSide>0&&(this.covering=t)}addLineDeco(t,e,i){let n=this.ensureLine();n.length+=i,n.collapsed+=i,n.widgetHeight=Math.max(n.widgetHeight,t),n.breaks+=e,this.writtenTo=this.pos=this.pos+i}finish(t){let e=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||e instanceof Fn||this.isCovered?(this.writtenToi.clientHeight||i.scrollWidth>i.clientWidth)&&"visible"!=n.overflow){let n=i.getBoundingClientRect();s=Math.max(s,n.left),o=Math.min(o,n.right),a=Math.max(a,n.top),l=e==t.parentNode?n.bottom:Math.min(l,n.bottom)}e="absolute"==n.position||"fixed"==n.position?i.offsetParent:i.parentNode}else{if(11!=e.nodeType)break;e=e.host}return{left:s-i.left,right:Math.max(s,o)-i.left,top:a-(i.top+e),bottom:Math.max(a,l)-(i.top+e)}}function nr(t,e){let i=t.getBoundingClientRect();return{left:0,right:i.right-i.left,top:e,bottom:i.bottom-(i.top+e)}}class rr{constructor(t,e,i){this.from=t,this.to=e,this.size=i}static same(t,e){if(t.length!=e.length)return!1;for(let i=0;i"function"!=typeof t&&"cm-lineWrapping"==t.class));this.heightOracle=new jn(i),this.stateDeco=e.facet(yi).filter((t=>"function"!=typeof t)),this.heightMap=Bn.empty().applyChanges(this.stateDeco,t.empty,this.heightOracle.setDoc(e.doc),[new Ti(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Le.set(this.lineGaps.map((t=>t.draw(this,!1)))),this.computeVisibleRanges()}updateForViewport(){let t=[this.viewport],{main:e}=this.state.selection;for(let i=0;i<=1;i++){let n=i?e.head:e.anchor;if(!t.some((({from:t,to:e})=>n>=t&&n<=e))){let{from:e,to:i}=this.lineBlockAt(n);t.push(new ar(e,i))}}this.viewports=t.sort(((t,e)=>t.from-e.from)),this.scaler=this.heightMap.height<=7e6?ur:new dr(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,(t=>{this.viewportLines.push(1==this.scaler.scale?t:pr(t,this.scaler))}))}update(t,e=null){this.state=t.state;let i=this.stateDeco;this.stateDeco=this.state.facet(yi).filter((t=>"function"!=typeof t));let n=t.changedRanges,r=Ti.extendWithRanges(n,function(t,e,i){let n=new er;return Qt.compare(t,e,i,n,0),n.changes}(i,this.stateDeco,t?t.changes:Q.empty(this.state.doc.length))),s=this.heightMap.height,o=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,t.startState.doc,this.heightOracle.setDoc(this.state.doc),r),this.heightMap.height!=s&&(t.flags|=2),o?(this.scrollAnchorPos=t.changes.mapPos(o.from,-1),this.scrollAnchorHeight=o.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let a=r.length?this.mapViewport(this.viewport,t.changes):this.viewport;(e&&(e.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,e));let l=!t.changes.empty||2&t.flags||a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,this.updateForViewport(),l&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,t.changes))),t.flags|=this.computeVisibleRanges(),e&&(this.scrollTarget=e),!this.mustEnforceCursorAssoc&&t.selectionSet&&t.view.lineWrapping&&t.state.selection.main.empty&&t.state.selection.main.assoc&&!t.state.facet(di)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let i=e.contentDOM,n=window.getComputedStyle(i),r=this.heightOracle,s=n.whiteSpace;this.defaultTextDirection="rtl"==n.direction?Xi.RTL:Xi.LTR;let o=this.heightOracle.mustRefreshForWrapping(s),a=i.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=a.height;this.contentDOMHeight=a.height,this.mustMeasureContent=!1;let h=0,c=0;if(a.width&&a.height){let{scaleX:t,scaleY:e}=se(i,a);this.scaleX==t&&this.scaleY==e||(this.scaleX=t,this.scaleY=e,h|=8,o=l=!0)}let u=(parseInt(n.paddingTop)||0)*this.scaleY,d=(parseInt(n.paddingBottom)||0)*this.scaleY;this.paddingTop==u&&this.paddingBottom==d||(this.paddingTop=u,this.paddingBottom=d,h|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,h|=8);let p=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=p&&(this.scrollAnchorHeight=-1,this.scrollTop=p),this.scrolledToBottom=pe(e.scrollDOM);let f=(this.printing?nr:ir)(i,this.paddingTop),O=f.top-this.pixelViewport.top,m=f.bottom-this.pixelViewport.bottom;this.pixelViewport=f;let g=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(g!=this.inView&&(this.inView=g,g&&(l=!0)),!this.inView&&!this.scrollTarget)return 0;let _=a.width;if(this.contentDOMWidth==_&&this.editorHeight==e.scrollDOM.clientHeight||(this.contentDOMWidth=a.width,this.editorHeight=e.scrollDOM.clientHeight,h|=8),l){let i=e.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(i)&&(o=!0),o||r.lineWrapping&&Math.abs(_-this.contentDOMWidth)>r.charWidth){let{lineHeight:t,charWidth:n,textHeight:a}=e.docView.measureTextSize();o=t>0&&r.refresh(s,t,n,a,_/n,i),o&&(e.docView.minWidth=0,h|=8)}O>0&&m>0?c=Math.max(O,m):O<0&&m<0&&(c=Math.min(O,m)),r.heightChanged=!1;for(let n of this.viewports){let s=n.from==this.viewport.from?i:e.docView.measureVisibleLineHeights(n);this.heightMap=(o?Bn.empty().applyChanges(this.stateDeco,t.empty,this.heightOracle,[new Ti(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,o,new Dn(n.from,s))}r.heightChanged&&(h|=2)}let b=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return b&&(this.viewport=this.getViewport(c,this.scrollTarget)),this.updateForViewport(),(2&h||b)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),h|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),h}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(t,e){let i=.5-Math.max(-.5,Math.min(.5,t/1e3/2)),n=this.heightMap,r=this.heightOracle,{visibleTop:s,visibleBottom:o}=this,a=new ar(n.lineAt(s-1e3*i,Nn.ByHeight,r,0,0).from,n.lineAt(o+1e3*(1-i),Nn.ByHeight,r,0,0).to);if(e){let{head:t}=e.range;if(ta.to){let i,s=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),o=n.lineAt(t,Nn.ByPos,r,0,0);i="center"==e.y?(o.top+o.bottom)/2-s/2:"start"==e.y||"nearest"==e.y&&t=o+Math.max(10,Math.min(i,250)))&&n>s-2e3&&r>1,s=n<<1;if(this.defaultTextDirection!=Xi.LTR&&!i)return[];let o=[],a=(n,s,l,h)=>{if(s-nn&&tt.from>=l.from&&t.to<=l.to&&Math.abs(t.from-n)t.frome))));if(!d){if(st.from<=s&&t.to>=s))){let t=e.moveToLineBoundary(X.cursor(s),!1,!0).head;t>n&&(s=t)}d=new rr(n,s,this.gapSize(l,n,s,h))}o.push(d)};for(let t of this.viewportLines){if(t.lengtht.from&&a(t.from,r,t,e),ot.draw(this,this.heightOracle.lineWrapping)))))}computeVisibleRanges(){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let e=[];Qt.spans(t,this.viewport.from,this.viewport.to,{span(t,i){e.push({from:t,to:i})},point(){}},20);let i=e.length!=this.visibleRanges.length||this.visibleRanges.some(((t,i)=>t.from!=e[i].from||t.to!=e[i].to));return this.visibleRanges=e,i?4:0}lineBlockAt(t){return t>=this.viewport.from&&t<=this.viewport.to&&this.viewportLines.find((e=>e.from<=t&&e.to>=t))||pr(this.heightMap.lineAt(t,Nn.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(t){return pr(this.heightMap.lineAt(this.scaler.fromDOM(t),Nn.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(t){let e=this.lineBlockAtHeight(t+8);return e.from>=this.viewport.from||this.viewportLines[0].top-t>200?e:this.viewportLines[0]}elementAtHeight(t){return pr(this.heightMap.blockAt(this.scaler.fromDOM(t),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class ar{constructor(t,e){this.from=t,this.to=e}}function lr(t,e,i){let n=[],r=t,s=0;return Qt.spans(i,t,e,{span(){},point(t,e){t>r&&(n.push({from:r,to:t}),s+=t-r),r=e}},20),r=1)return e[e.length-1].to;let n=Math.floor(t*i);for(let t=0;;t++){let{from:i,to:r}=e[t],s=r-i;if(n<=s)return i+n;n-=s}}function cr(t,e){let i=0;for(let{from:n,to:r}of t.ranges){if(e<=r){i+=e-n;break}i+=r-n}return i/t.total}const ur={toDOM:t=>t,fromDOM:t=>t,scale:1};class dr{constructor(t,e,i){let n=0,r=0,s=0;this.viewports=i.map((({from:i,to:r})=>{let s=e.lineAt(i,Nn.ByPos,t,0,0).top,o=e.lineAt(r,Nn.ByPos,t,0,0).bottom;return n+=o-s,{from:i,to:r,top:s,bottom:o,domTop:0,domBottom:0}})),this.scale=(7e6-n)/(e.height-n);for(let t of this.viewports)t.domTop=s+(t.top-r)*this.scale,s=t.domBottom=t.domTop+(t.bottom-t.top),r=t.bottom}toDOM(t){for(let e=0,i=0,n=0;;e++){let r=epr(t,e))):t._content)}const fr=W.define({combine:t=>t.join(" ")}),Or=W.define({combine:t=>t.indexOf(!0)>-1}),mr=Ut.newName(),gr=Ut.newName(),_r=Ut.newName(),br={"&light":"."+gr,"&dark":"."+_r};function wr(t,e,i){return new Ut(e,{finish:e=>/&/.test(e)?e.replace(/&\w*/,(e=>{if("&"==e)return t;if(!i||!i[e])throw new RangeError(`Unsupported selector: ${e}`);return i[e]})):t+" "+e})}const Sr=wr("."+mr,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:'url(\'data:image/svg+xml,\')',backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},br),vr="\uffff";class yr{constructor(t,e){this.points=t,this.text="",this.lineSeparator=e.facet(_t.lineSeparator)}append(t){this.text+=t}lineBreak(){this.text+=vr}readRange(t,e){if(!t)return this;let i=t.parentNode;for(let n=t;;){this.findPointBefore(i,n);let t=this.text.length;this.readNode(n);let r=n.nextSibling;if(r==e)break;let s=me.get(n),o=me.get(r);(s&&o?s.breakAfter:(s?s.breakAfter:xr(n))||xr(r)&&("BR"!=n.nodeName||n.cmIgnore)&&this.text.length>t)&&this.lineBreak(),n=r}return this.findPointBefore(i,e),this}readTextNode(t){let e=t.nodeValue;for(let i of this.points)i.node==t&&(i.pos=this.text.length+Math.min(i.offset,e.length));for(let i=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let r,s=-1,o=1;if(this.lineSeparator?(s=e.indexOf(this.lineSeparator,i),o=this.lineSeparator.length):(r=n.exec(e))&&(s=r.index,o=r[0].length),this.append(e.slice(i,s<0?e.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let e of this.points)e.node==t&&e.pos>this.text.length&&(e.pos-=o-1);i=s+o}}readNode(t){if(t.cmIgnore)return;let e=me.get(t),i=e&&e.overrideDOMText;if(null!=i){this.findPointInside(t,i.length);for(let t=i.iter();!t.next().done;)t.lineBreak?this.lineBreak():this.append(t.value)}else 3==t.nodeType?this.readTextNode(t):"BR"==t.nodeName?t.nextSibling&&this.lineBreak():1==t.nodeType&&this.readRange(t.firstChild,null)}findPointBefore(t,e){for(let i of this.points)i.node==t&&t.childNodes[i.offset]==e&&(i.pos=this.text.length)}findPointInside(t,e){for(let i of this.points)(3==t.nodeType?i.node==t:t.contains(i.node))&&(i.pos=this.text.length+(Qr(t,i.node,i.offset)?e:0))}}function Qr(t,e,i){for(;;){if(!e||i-1)this.newSel=null;else if(e>-1&&(this.bounds=t.docView.domBoundsAround(e,i,0))){let e=r||s?[]:function(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:i,anchorOffset:n,focusNode:r,focusOffset:s}=t.observer.selectionRange;return i&&(e.push(new kr(i,n)),r==i&&s==n||e.push(new kr(r,s))),e}(t),i=new yr(e,t.state);i.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=i.text,this.newSel=function(t,e){if(0==t.length)return null;let i=t[0].pos,n=2==t.length?t[1].pos:i;return i>-1&&n>-1?X.single(i+e,n+e):null}(e,this.bounds.from)}else{let e=t.observer.selectionRange,i=r&&r.node==e.focusNode&&r.offset==e.focusOffset||!Ft(t.contentDOM,e.focusNode)?t.state.selection.main.head:t.docView.posFromDOM(e.focusNode,e.focusOffset),n=s&&s.node==e.anchorNode&&s.offset==e.anchorOffset||!Ft(t.contentDOM,e.anchorNode)?t.state.selection.main.anchor:t.docView.posFromDOM(e.anchorNode,e.anchorOffset);this.newSel=X.single(n,i)}}}function Pr(e,i){let n,{newSel:r}=i,s=e.state.selection.main,o=e.inputState.lastKeyTime>Date.now()-100?e.inputState.lastKeyCode:-1;if(i.bounds){let{from:r,to:a}=i.bounds,l=s.from,h=null;(8===o||Xe.android&&i.text.length0&&a>0&&t.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;return"end"==n&&(i-=o+Math.max(0,s-Math.min(o,a))-s),o=o?s-i:0,a=s+(a-o),o=s):a=a?s-i:0,o=s+(o-a),a=s),{from:s,toA:o,toB:a}}(e.state.doc.sliceString(r,a,vr),i.text,l-r,h);c&&(Xe.chrome&&13==o&&c.toB==c.from+2&&i.text.slice(c.from,c.toB)==vr+vr&&c.toB--,n={from:r+c.from,to:r+c.toA,insert:t.of(i.text.slice(c.from,c.toB).split(vr))})}else r&&(!e.hasFocus&&e.state.facet(mi)||r.main.eq(s))&&(r=null);if(!n&&!r)return!1;if(!n&&i.typeOver&&!s.empty&&r&&r.main.empty?n={from:s.from,to:s.to,insert:e.state.doc.slice(s.from,s.to)}:n&&n.from>=s.from&&n.to<=s.to&&(n.from!=s.from||n.to!=s.to)&&s.to-s.from-(n.to-n.from)<=4?n={from:s.from,to:s.to,insert:e.state.doc.slice(s.from,n.from).append(n.insert).append(e.state.doc.slice(n.to,s.to))}:(Xe.mac||Xe.android)&&n&&n.from==n.to&&n.from==s.head-1&&/^\. ?$/.test(n.insert.toString())&&"off"==e.contentDOM.getAttribute("autocorrect")?(r&&2==n.insert.length&&(r=X.single(r.main.anchor-1,r.main.head-1)),n={from:s.from,to:s.to,insert:t.of([" "])}):Xe.chrome&&n&&n.from==n.to&&n.from==s.head&&"\n "==n.insert.toString()&&e.lineWrapping&&(r&&(r=X.single(r.main.anchor-1,r.main.head-1)),n={from:s.from,to:s.to,insert:t.of([" "])}),n){if(Xe.ios&&e.inputState.flushIOSKey())return!0;if(Xe.android&&(n.from==s.from&&n.to==s.to&&1==n.insert.length&&2==n.insert.lines&&ue(e.contentDOM,"Enter",13)||(n.from==s.from-1&&n.to==s.to&&0==n.insert.length||8==o&&n.insert.lengths.head)&&ue(e.contentDOM,"Backspace",8)||n.from==s.from&&n.to==s.to+1&&0==n.insert.length&&ue(e.contentDOM,"Delete",46)))return!0;let t,i=n.insert.toString();e.inputState.composing>=0&&e.inputState.composing++;let a=()=>t||(t=function(t,e,i){let n,r=t.state,s=r.selection.main;if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!i||i.main.empty&&i.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let i=s.frome.to?r.sliceDoc(e.to,s.to):"";n=r.replaceSelection(t.state.toText(i+e.insert.sliceString(0,void 0,t.state.lineBreak)+o))}else{let o=r.changes(e),a=i&&i.main.to<=o.newLength?i.main:void 0;if(r.selection.ranges.length>1&&t.inputState.composing>=0&&e.to<=s.to&&e.to>=s.to-10){let l,h=t.state.sliceDoc(e.from,e.to),c=i&&Hi(t,i.main.head);if(c){let t=e.insert.length-(e.to-e.from);l={from:c.from,to:c.to-t}}else l=t.state.doc.lineAt(s.head);let u=s.to-e.to,d=s.to-s.from;n=r.changeByRange((i=>{if(i.from==s.from&&i.to==s.to)return{changes:o,range:a||i.map(o)};let n=i.to-u,c=n-h.length;if(i.to-i.from!=d||t.state.sliceDoc(c,n)!=h||i.to>=l.from&&i.from<=l.to)return{range:i};let p=r.changes({from:c,to:n,insert:e.insert}),f=i.to-s.to;return{changes:p,range:a?X.range(Math.max(0,a.anchor+f),Math.max(0,a.head+f)):i.map(p)}}))}else n={changes:o,selection:a&&r.selection.replaceRange(a)}}let o="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,o+=".compose",t.inputState.compositionFirstChange&&(o+=".start",t.inputState.compositionFirstChange=!1)),r.update(n,{userEvent:o,scrollIntoView:!0})}(e,n,r));return e.state.facet(hi).some((t=>t(e,n.from,n.to,i,a)))||e.dispatch(a()),!0}if(r&&!r.main.eq(s)){let t=!1,i="select";return e.inputState.lastSelectionTime>Date.now()-50&&("select"==e.inputState.lastSelectionOrigin&&(t=!0),i=e.inputState.lastSelectionOrigin),e.dispatch({selection:r,scrollIntoView:t,userEvent:i}),!0}return!1}const Zr={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Tr=Xe.ie&&Xe.ie_version<=11;class Cr{constructor(t){this.view=t,this.active=!1,this.selectionRange=new oe,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=t.contentDOM,this.observer=new MutationObserver((e=>{for(let t of e)this.queue.push(t);(Xe.ie&&Xe.ie_version<=11||Xe.ios&&t.composing)&&e.some((t=>"childList"==t.type&&t.removedNodes.length||"characterData"==t.type&&t.oldValue.length>t.target.nodeValue.length))?this.flushSoon():this.flush()})),Tr&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),"function"==typeof ResizeObserver&&(this.resizeScroll=new ResizeObserver((()=>{var t;(null===(t=this.view.docView)||void 0===t?void 0:t.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))}),{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver((t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))}),{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(t){this.view.inputState.runHandlers("scroll",t),this.intersecting&&this.view.measure()}onScroll(t){this.intersecting&&this.flush(!1),this.onScrollChanged(t)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout((()=>{this.resizeTimeout=-1,this.view.requestMeasure()}),50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout((()=>{this.view.viewState.printing=!1,this.view.requestMeasure()}),500)}updateGaps(t){if(this.gapIntersection&&(t.length!=this.gaps.length||this.gaps.some(((e,i)=>e!=t[i])))){this.gapIntersection.disconnect();for(let e of t)this.gapIntersection.observe(e);this.gaps=t}}onSelectionChange(t){let e=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,n=this.selectionRange;if(i.state.facet(mi)?i.root.activeElement!=this.dom:!Ht(i.dom,n))return;let r=n.anchorNode&&i.docView.nearest(n.anchorNode);r&&r.ignoreEvent(t)?e||(this.selectionChanged=!1):(Xe.ie&&Xe.ie_version<=11||Xe.android&&Xe.chrome)&&!i.state.selection.main.empty&&n.focusNode&&Jt(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:t}=this,e=Xe.safari&&11==t.root.nodeType&&function(t){let e=t.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}(this.dom.ownerDocument)==this.dom&&function(t){let e=null;function i(t){t.preventDefault(),t.stopImmediatePropagation(),e=t.getTargetRanges()[0]}if(t.contentDOM.addEventListener("beforeinput",i,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",i,!0),!e)return null;let n=e.startContainer,r=e.startOffset,s=e.endContainer,o=e.endOffset,a=t.docView.domAtPos(t.state.selection.main.anchor);return Jt(a.node,a.offset,s,o)&&([n,r,s,o]=[s,o,n,r]),{anchorNode:n,anchorOffset:r,focusNode:s,focusOffset:o}}(this.view)||Lt(t.root);if(!e||this.selectionRange.eq(e))return!1;let i=Ht(this.dom,e);return i&&!this.selectionChanged&&t.inputState.lastFocusTime>Date.now()-200&&t.inputState.lastTouchTime{let t=this.delayedAndroidKey;t&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=t.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&t.force&&ue(this.dom,t.key,t.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(t)}this.delayedAndroidKey&&"Enter"!=t||(this.delayedAndroidKey={key:t,keyCode:e,force:this.lastChange{this.delayedFlush=-1,this.flush()})))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let t of this.observer.takeRecords())this.queue.push(t);return this.queue}processRecords(){let t=this.pendingRecords();t.length&&(this.queue=[]);let e=-1,i=-1,n=!1;for(let r of t){let t=this.readMutation(r);t&&(t.typeOver&&(n=!0),-1==e?({from:e,to:i}=t):(e=Math.min(t.from,e),i=Math.max(t.to,i)))}return{from:e,to:i,typeOver:n}}readChange(){let{from:t,to:e,typeOver:i}=this.processRecords(),n=this.selectionChanged&&Ht(this.dom,this.selectionRange);if(t<0&&!n)return null;t>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let r=new $r(this.view,t,e,i);return this.view.docView.domChanged={newSel:r.newSel?r.newSel.main:null},r}flush(t=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;t&&this.readSelectionRange();let e=this.readChange();if(!e)return this.view.requestMeasure(),!1;let i=this.view.state,n=Pr(this.view,e);return this.view.state==i&&this.view.update([]),n}readMutation(t){let e=this.view.docView.nearest(t.target);if(!e||e.ignoreMutation(t))return null;if(e.markDirty("attributes"==t.type),"attributes"==t.type&&(e.flags|=4),"childList"==t.type){let i=Xr(e,t.previousSibling||t.target.previousSibling,-1),n=Xr(e,t.nextSibling||t.target.nextSibling,1);return{from:i?e.posAfter(i):e.posAtStart,to:n?e.posBefore(n):e.posAtEnd,typeOver:!1}}return"characterData"==t.type?{from:e.posAtStart,to:e.posAtEnd,typeOver:t.target.nodeValue==t.oldValue}:null}setWindow(t){t!=this.win&&(this.removeWindowListeners(this.win),this.win=t,this.addWindowListeners(this.win))}addWindowListeners(t){t.addEventListener("resize",this.onResize),t.addEventListener("beforeprint",this.onPrint),t.addEventListener("scroll",this.onScroll),t.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(t){t.removeEventListener("scroll",this.onScroll),t.removeEventListener("resize",this.onResize),t.removeEventListener("beforeprint",this.onPrint),t.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var t,e,i;this.stop(),null===(t=this.intersection)||void 0===t||t.disconnect(),null===(e=this.gapIntersection)||void 0===e||e.disconnect(),null===(i=this.resizeScroll)||void 0===i||i.disconnect();for(let t of this.scrollTargets)t.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}}function Xr(t,e,i){for(;e;){let n=me.get(e);if(n&&n.parent==t)return n;let r=e.parentNode;e=r!=t.dom?r:i>0?e.nextSibling:e.previousSibling}return null}class Yr{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(t={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),t.parent&&t.parent.appendChild(this.dom);let{dispatch:e}=t;this.dispatchTransactions=t.dispatchTransactions||e&&(t=>t.forEach((t=>e(t,this))))||(t=>this.update(t)),this.dispatch=this.dispatch.bind(this),this._root=t.root||function(t){for(;t;){if(t&&(9==t.nodeType||11==t.nodeType&&t.host))return t;t=t.assignedSlot||t.parentNode}return null}(t.parent)||document,this.viewState=new or(t.state||_t.create(t)),t.scrollTo&&t.scrollTo.is(fi)&&(this.viewState.scrollTarget=t.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(_i).map((t=>new wi(t)));for(let t of this.plugins)t.update(this);this.observer=new Cr(this),this.inputState=new fn(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Li(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure()}dispatch(...t){let e=1==t.length&&t[0]instanceof lt?t:1==t.length&&Array.isArray(t[0])?t[0]:[this.state.update(...t)];this.dispatchTransactions(e,this)}update(t){if(0!=this.updateState)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let e,i=!1,n=!1,r=this.state;for(let e of t){if(e.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=e.state}if(this.destroyed)return void(this.viewState.state=r);let s=this.hasFocus,o=0,a=null;t.some((t=>t.annotation(zn)))?(this.inputState.notifiedFocused=s,o=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,a=Mn(r,s),a||(o=1));let l=this.observer.delayedAndroidKey,h=null;if(l?(this.observer.clearDelayedAndroidKey(),h=this.observer.readChange(),(h&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(h=null)):this.observer.clear(),r.facet(_t.phrases)!=this.state.facet(_t.phrases))return this.setState(r);e=Ci.create(this,r,t),e.flags|=o;let c=this.viewState.scrollTarget;try{this.updateState=2;for(let e of t){if(c&&(c=c.map(e.changes)),e.scrollIntoView){let{main:t}=e.state.selection;c=new pi(t.empty?t:X.cursor(t.head,t.head>t.anchor?-1:1))}for(let t of e.effects)t.is(fi)&&(c=t.value.clip(this.state))}this.viewState.update(e,c),this.bidiCache=Rr.update(this.bidiCache,e.changes),e.empty||(this.updatePlugins(e),this.inputState.update(e)),i=this.docView.update(e),this.state.facet(Zi)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(t),this.docView.updateSelection(i,t.some((t=>t.isUserEvent("select.pointer"))))}finally{this.updateState=0}if(e.startState.facet(fr)!=e.state.facet(fr)&&(this.viewState.mustMeasureContent=!0),(i||n||c||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!e.empty)for(let t of this.state.facet(li))try{t(e)}catch(t){Oi(this.state,t,"update listener")}(a||h)&&Promise.resolve().then((()=>{a&&this.state==a.startState&&this.dispatch(a),h&&!Pr(this,h)&&l.force&&ue(this.contentDOM,l.key,l.keyCode)}))}setState(t){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed)return void(this.viewState.state=t);this.updateState=2;let e=this.hasFocus;try{for(let t of this.plugins)t.destroy(this);this.viewState=new or(t),this.plugins=t.facet(_i).map((t=>new wi(t))),this.pluginMap.clear();for(let t of this.plugins)t.update(this);this.docView.destroy(),this.docView=new Li(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}e&&this.focus(),this.requestMeasure()}updatePlugins(t){let e=t.startState.facet(_i),i=t.state.facet(_i);if(e!=i){let n=[];for(let r of i){let i=e.indexOf(r);if(i<0)n.push(new wi(r));else{let e=this.plugins[i];e.mustUpdate=t,n.push(e)}}for(let e of this.plugins)e.mustUpdate!=t&&e.destroy(this);this.plugins=n,this.pluginMap.clear()}else for(let e of this.plugins)e.mustUpdate=t;for(let t=0;t-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey)return this.measureScheduled=-1,void this.requestMeasure();this.measureScheduled=0,t&&this.observer.forceFlush();let e=null,i=this.scrollDOM,n=i.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:s}=this.viewState;Math.abs(n-this.viewState.scrollTop)>1&&(s=-1),this.viewState.scrollAnchorHeight=-1;try{for(let t=0;;t++){if(s<0)if(pe(i))r=-1,s=this.viewState.heightMap.height;else{let t=this.viewState.scrollAnchorAt(n);r=t.from,s=t.top}this.updateState=1;let o=this.viewState.measure(this);if(!o&&!this.measureRequests.length&&null==this.viewState.scrollTarget)break;if(t>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let a=[];4&o||([this.measureRequests,a]=[a,this.measureRequests]);let l=a.map((t=>{try{return t.read(this)}catch(t){return Oi(this.state,t),Wr}})),h=Ci.create(this,this.state,[]),c=!1;h.flags|=o,e?e.flags|=o:e=h,this.updateState=2,h.empty||(this.updatePlugins(h),this.inputState.update(h),this.updateAttrs(),c=this.docView.update(h));for(let t=0;t1||t<-1){n+=t,i.scrollTop=n/this.scaleY,s=-1;continue}}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(e&&!e.empty)for(let t of this.state.facet(li))t(e)}get themeClasses(){return mr+" "+(this.state.facet(Or)?_r:gr)+" "+this.state.facet(fr)}updateAttrs(){let t=Er(this,Si,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),e={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(mi)?"true":"false",class:"cm-content",style:`${Xe.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(e["aria-readonly"]="true"),Er(this,vi,e);let i=this.observer.ignore((()=>{let i=je(this.contentDOM,this.contentAttrs,e),n=je(this.dom,this.editorAttrs,t);return i||n}));return this.editorAttrs=t,this.contentAttrs=e,i}showAnnouncements(t){let e=!0;for(let i of t)for(let t of i.effects)t.is(Yr.announce)&&(e&&(this.announceDOM.textContent=""),e=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=t.value)}mountStyles(){this.styleModules=this.state.facet(Zi);let t=this.state.facet(Yr.cspNonce);Ut.mount(this.root,this.styleModules.concat(Sr).reverse(),t?{nonce:t}:void 0)}readMeasured(){if(2==this.updateState)throw new Error("Reading the editor layout isn't allowed during an update");0==this.updateState&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(t){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame((()=>this.measure()))),t){if(this.measureRequests.indexOf(t)>-1)return;if(null!=t.key)for(let e=0;ee.spec==t))||null),e&&e.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(t){return this.readMeasured(),this.viewState.elementAtHeight(t)}lineBlockAtHeight(t){return this.readMeasured(),this.viewState.lineBlockAtHeight(t)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(t){return this.viewState.lineBlockAt(t)}get contentHeight(){return this.viewState.contentHeight}moveByChar(t,e,i){return pn(this,t,un(this,t,e,i))}moveByGroup(t,e){return pn(this,t,un(this,t,e,(e=>function(t,e,i){let n=t.state.charCategorizer(e),r=n(i);return t=>{let e=n(t);return r==Ot.Space&&(r=e),r==e}}(this,t.head,e))))}moveToLineBoundary(t,e,i=!0){return function(t,e,i,n){let r=cn(t,e.head),s=n&&r.type==Be.Text&&(t.lineWrapping||r.widgetLineBreaks)?t.coordsAtPos(e.assoc<0&&e.head>r.from?e.head-1:e.head):null;if(s){let e=t.dom.getBoundingClientRect(),n=t.textDirectionAt(r.from),o=t.posAtCoords({x:i==(n==Xi.LTR)?e.right-1:e.left+1,y:(s.top+s.bottom)/2});if(null!=o)return X.cursor(o,i?-1:1)}return X.cursor(i?r.to:r.from,i?-1:1)}(this,t,e,i)}moveVertically(t,e,i){return pn(this,t,function(t,e,i,n){let r=e.head,s=i?1:-1;if(r==(i?t.state.doc.length:0))return X.cursor(r,e.assoc);let o,a=e.goalColumn,l=t.contentDOM.getBoundingClientRect(),h=t.coordsAtPos(r,e.assoc||-1),c=t.documentTop;if(h)null==a&&(a=h.left-l.left),o=s<0?h.top:h.bottom;else{let e=t.viewState.lineBlockAt(r);null==a&&(a=Math.min(l.right-l.left,t.defaultCharacterWidth*(r-e.from))),o=(s<0?e.top:e.bottom)+c}let u=l.left+a,d=null!=n?n:t.viewState.heightOracle.textHeight>>1;for(let e=0;;e+=10){let i=o+(d+e)*s,n=ln(t,{x:u,y:i},!1,s);if(il.bottom||(s<0?nr)){let e=t.docView.coordsForChar(n),r=!e||i0)}coordsForChar(t){return this.readMeasured(),this.docView.coordsForChar(t)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(t){return!this.state.facet(ui)||tthis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(t))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(t){if(t.length>Ar)return Ni(t.length);let e,i=this.textDirectionAt(t.from);for(let n of this.bidiCache)if(n.from==t.from&&n.dir==i&&(n.fresh||Vi(n.isolates,e=ki(this,t.from,t.to))))return n.order;e||(e=ki(this,t.from,t.to));let n=function(t,e,i){if(!t)return[new qi(0,0,e==Ai?1:0)];if(e==Yi&&!i.length&&!Ui.test(t))return Ni(t.length);if(i.length)for(;t.length>ji.length;)ji[ji.length]=256;let n=[],r=e==Yi?0:1;return Ii(t,r,r,i,0,t.length,n),n}(t.text,i,e);return this.bidiCache.push(new Rr(t.from,t.to,i,e,!0,n)),n}get hasFocus(){var t;return(this.dom.ownerDocument.hasFocus()||Xe.safari&&(null===(t=this.inputState)||void 0===t?void 0:t.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{he(this.contentDOM),this.docView.updateSelection()}))}setRoot(t){this._root!=t&&(this._root=t,this.observer.setWindow((9==t.nodeType?t:t.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let t of this.plugins)t.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(t,e={}){return fi.of(new pi("number"==typeof t?X.cursor(t):t,e.y,e.x,e.yMargin,e.xMargin))}scrollSnapshot(){let{scrollTop:t,scrollLeft:e}=this.scrollDOM,i=this.viewState.scrollAnchorAt(t);return fi.of(new pi(X.cursor(i.from),"start","start",i.top-t,e,!0))}static domEventHandlers(t){return bi.define((()=>({})),{eventHandlers:t})}static domEventObservers(t){return bi.define((()=>({})),{eventObservers:t})}static theme(t,e){let i=Ut.newName(),n=[fr.of(i),Zi.of(wr(`.${i}`,t))];return e&&e.dark&&n.push(Or.of(!0)),n}static baseTheme(t){return D.lowest(Zi.of(wr("."+mr,t,br)))}static findFromDOM(t){var e;let i=t.querySelector(".cm-content"),n=i&&me.get(i)||me.get(t);return(null===(e=null==n?void 0:n.rootView)||void 0===e?void 0:e.view)||null}}Yr.styleModule=Zi,Yr.inputHandler=hi,Yr.focusChangeEffect=ci,Yr.perLineTextDirection=ui,Yr.exceptionSink=ai,Yr.updateListener=li,Yr.editable=mi,Yr.mouseSelectionStyle=oi,Yr.dragMovesSelection=si,Yr.clickAddsSelectionRange=ri,Yr.decorations=yi,Yr.atomicRanges=Qi,Yr.bidiIsolatedRanges=xi,Yr.scrollMargins=$i,Yr.darkTheme=Or,Yr.cspNonce=W.define({combine:t=>t.length?t[0]:""}),Yr.contentAttributes=vi,Yr.editorAttributes=Si,Yr.lineWrapping=Yr.contentAttributes.of({class:"cm-lineWrapping"}),Yr.announce=at.define();const Ar=4096,Wr={};class Rr{constructor(t,e,i,n,r,s){this.from=t,this.to=e,this.dir=i,this.isolates=n,this.fresh=r,this.order=s}static update(t,e){if(e.empty&&!t.some((t=>t.fresh)))return t;let i=[],n=t.length?t[t.length-1].dir:Xi.LTR;for(let r=Math.max(0,t.length-10);r=0;r--){let e=n[r],s="function"==typeof e?e(t):e;s&&Ue(s,i)}return i}const zr=Xe.mac?"mac":Xe.windows?"win":Xe.linux?"linux":"key";function Mr(t,e,i){return e.altKey&&(t="Alt-"+t),e.ctrlKey&&(t="Ctrl-"+t),e.metaKey&&(t="Meta-"+t),!1!==i&&e.shiftKey&&(t="Shift-"+t),t}const Ur=D.default(Yr.domEventHandlers({keydown:(t,e)=>Nr(jr(e.state),t,e,"editor")})),qr=W.define({enables:Ur}),Vr=new WeakMap;function jr(t){let e=t.facet(qr),i=Vr.get(e);return i||Vr.set(e,i=function(t,e=zr){let i=Object.create(null),n=Object.create(null),r=(t,e)=>{let i=n[t];if(null==i)n[t]=e;else if(i!=e)throw new Error("Key binding "+t+" is used both as a regular binding and as a multi-stroke prefix")},s=(t,n,s,o,a)=>{var l,h;let c=i[t]||(i[t]=Object.create(null)),u=n.split(/ (?!$)/).map((t=>function(t,e){const i=t.split(/-(?!$)/);let n,r,s,o,a=i[i.length-1];"Space"==a&&(a=" ");for(let t=0;t{let n=Dr={view:e,prefix:i,scope:t};return setTimeout((()=>{Dr==n&&(Dr=null)}),Ir),!0}]})}let d=u.join(" ");r(d,!1);let p=c[d]||(c[d]={preventDefault:!1,stopPropagation:!1,run:(null===(h=null===(l=c._any)||void 0===l?void 0:l.run)||void 0===h?void 0:h.slice())||[]});s&&p.run.push(s),o&&(p.preventDefault=!0),a&&(p.stopPropagation=!0)};for(let n of t){let t=n.scope?n.scope.split(" "):["editor"];if(n.any)for(let e of t){let t=i[e]||(i[e]=Object.create(null));t._any||(t._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let e in t)t[e].run.push(n.any)}let r=n[e]||n.key;if(r)for(let e of t)s(e,r,n.run,n.preventDefault,n.stopPropagation),n.shift&&s(e,"Shift-"+r,n.shift,n.preventDefault,n.stopPropagation)}return i}(e.reduce(((t,e)=>t.concat(e)),[]))),i}let Dr=null;const Ir=4e3;function Nr(t,e,i,n){let r=function(t){var e=!(It&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||Nt&&t.shiftKey&&t.key&&1==t.key.length||"Unidentified"==t.key)&&t.key||(t.shiftKey?Dt:jt)[t.keyCode]||t.key||"Unidentified";return"Esc"==e&&(e="Escape"),"Del"==e&&(e="Delete"),"Left"==e&&(e="ArrowLeft"),"Up"==e&&(e="ArrowUp"),"Right"==e&&(e="ArrowRight"),"Down"==e&&(e="ArrowDown"),e}(e),s=w(_(r,0))==r.length&&" "!=r,o="",a=!1,l=!1,h=!1;Dr&&Dr.view==i&&Dr.scope==n&&(o=Dr.prefix+" ",bn.indexOf(e.keyCode)<0&&(l=!0,Dr=null));let c,u,d=new Set,p=t=>{if(t){for(let n of t.run)if(!d.has(n)&&(d.add(n),n(i,e)))return t.stopPropagation&&(h=!0),!0;t.preventDefault&&(t.stopPropagation&&(h=!0),l=!0)}return!1},f=t[n];return f&&(p(f[o+Mr(r,e,!s)])?a=!0:s&&(e.altKey||e.metaKey||e.ctrlKey)&&!(Xe.windows&&e.ctrlKey&&e.altKey)&&(c=jt[e.keyCode])&&c!=r?(p(f[o+Mr(c,e,!0)])||e.shiftKey&&(u=Dt[e.keyCode])!=r&&u!=c&&p(f[o+Mr(u,e,!1)]))&&(a=!0):s&&e.shiftKey&&p(f[o+Mr(r,e,!0)])&&(a=!0),!a&&p(f._any)&&(a=!0)),l&&(a=!0),a&&h&&e.stopPropagation(),a}class Gr{constructor(t,e,i,n,r){this.className=t,this.left=e,this.top=i,this.width=n,this.height=r}draw(){let t=document.createElement("div");return t.className=this.className,this.adjust(t),t}update(t,e){return e.className==this.className&&(this.adjust(t),!0)}adjust(t){t.style.left=this.left+"px",t.style.top=this.top+"px",null!=this.width&&(t.style.width=this.width+"px"),t.style.height=this.height+"px"}eq(t){return this.left==t.left&&this.top==t.top&&this.width==t.width&&this.height==t.height&&this.className==t.className}static forRange(t,e,i){if(i.empty){let n=t.coordsAtPos(i.head,i.assoc||1);if(!n)return[];let r=Br(t);return[new Gr(e,n.left-r.left,n.top-r.top,null,n.bottom-n.top)]}return function(t,e,i){if(i.to<=t.viewport.from||i.from>=t.viewport.to)return[];let n=Math.max(i.from,t.viewport.from),r=Math.min(i.to,t.viewport.to),s=t.textDirection==Xi.LTR,o=t.contentDOM,a=o.getBoundingClientRect(),l=Br(t),h=o.querySelector(".cm-line"),c=h&&window.getComputedStyle(h),u=a.left+(c?parseInt(c.paddingLeft)+Math.min(0,parseInt(c.textIndent)):0),d=a.right-(c?parseInt(c.paddingRight):0),p=cn(t,n),f=cn(t,r),O=p.type==Be.Text?p:null,m=f.type==Be.Text?f:null;if(O&&(t.lineWrapping||p.widgetLineBreaks)&&(O=Lr(t,n,O)),m&&(t.lineWrapping||f.widgetLineBreaks)&&(m=Lr(t,r,m)),O&&m&&O.from==m.from)return _(b(i.from,i.to,O));{let e=O?b(i.from,null,O):w(p,!1),n=m?b(null,i.to,m):w(f,!0),r=[];return(O||p).to<(m||f).from-(O&&m?1:0)||p.widgetLineBreaks>1&&e.bottom+t.defaultLineHeight/2h&&n.from=s)break;a>r&&l(Math.max(t,r),null==e&&t<=h,Math.min(a,s),null==i&&a>=c,o.dir)}if(r=n.to+1,r>=s)break}return 0==a.length&&l(h,null==e,c,null==i,t.textDirection),{top:r,bottom:o,horizontal:a}}function w(t,e){let i=a.top+(e?t.top:t.bottom);return{top:i,bottom:i,horizontal:[]}}}(t,e,i)}}function Br(t){let e=t.scrollDOM.getBoundingClientRect();return{left:(t.textDirection==Xi.LTR?e.left:e.right-t.scrollDOM.clientWidth*t.scaleX)-t.scrollDOM.scrollLeft*t.scaleX,top:e.top-t.scrollDOM.scrollTop*t.scaleY}}function Lr(t,e,i){let n=X.cursor(e);return{from:Math.max(i.from,t.moveToLineBoundary(n,!1,!0).from),to:Math.min(i.to,t.moveToLineBoundary(n,!0,!0).from),type:Be.Text}}class Fr{constructor(t,e){this.view=t,this.layer=e,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=t.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),e.above&&this.dom.classList.add("cm-layer-above"),e.class&&this.dom.classList.add(e.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(t.state),t.requestMeasure(this.measureReq),e.mount&&e.mount(this.dom,t)}update(t){t.startState.facet(Hr)!=t.state.facet(Hr)&&this.setOrder(t.state),(this.layer.update(t,this.dom)||t.geometryChanged)&&(this.scale(),t.view.requestMeasure(this.measureReq))}setOrder(t){let e=0,i=t.facet(Hr);for(;e{return i=t,n=this.drawn[e],!(i.constructor==n.constructor&&i.eq(n));var i,n}))){let e=this.dom.firstChild,i=0;for(let n of t)n.update&&e&&n.constructor&&this.drawn[i].constructor&&n.update(e,this.drawn[i])?(e=e.nextSibling,i++):this.dom.insertBefore(n.draw(),e);for(;e;){let t=e.nextSibling;e.remove(),e=t}this.drawn=t}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const Hr=W.define();function Kr(t){return[bi.define((e=>new Fr(e,t))),Hr.of(t)]}const Jr=!Xe.ios,ts=W.define({combine:t=>bt(t,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(t,e)=>Math.min(t,e),drawRangeCursor:(t,e)=>t||e})});function es(t={}){return[ts.of(t),ns,ss,as,di.of(!0)]}function is(t){return t.startState.facet(ts)!=t.state.facet(ts)}const ns=Kr({above:!0,markers(t){let{state:e}=t,i=e.facet(ts),n=[];for(let r of e.selection.ranges){let s=r==e.selection.main;if(r.empty?!s||Jr:i.drawRangeCursor){let e=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",i=r.empty?r:X.cursor(r.head,r.head>r.anchor?-1:1);for(let r of Gr.forRange(t,e,i))n.push(r)}}return n},update(t,e){t.transactions.some((t=>t.selection))&&(e.style.animationName="cm-blink"==e.style.animationName?"cm-blink2":"cm-blink");let i=is(t);return i&&rs(t.state,e),t.docChanged||t.selectionSet||i},mount(t,e){rs(e.state,t)},class:"cm-cursorLayer"});function rs(t,e){e.style.animationDuration=t.facet(ts).cursorBlinkRate+"ms"}const ss=Kr({above:!1,markers:t=>t.state.selection.ranges.map((e=>e.empty?[]:Gr.forRange(t,"cm-selectionBackground",e))).reduce(((t,e)=>t.concat(e))),update:(t,e)=>t.docChanged||t.selectionSet||t.viewportChanged||is(t),class:"cm-selectionLayer"}),os={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};Jr&&(os[".cm-line"].caretColor="transparent !important",os[".cm-content"]={caretColor:"transparent !important"});const as=D.highest(Yr.theme(os));function ls(t,e,i,n,r){e.lastIndex=0;for(let s,o=t.iterRange(i,n),a=i;!o.next().done;a+=o.value.length)if(!o.lineBreak)for(;s=e.exec(o.value);)r(a+s.index,s)}class hs{constructor(t){const{regexp:e,decoration:i,decorate:n,boundary:r,maxLength:s=1e3}=t;if(!e.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=e,n)this.addMatch=(t,e,i,r)=>n(r,i,i+t[0].length,t,e);else if("function"==typeof i)this.addMatch=(t,e,n,r)=>{let s=i(t,e,n);s&&r(n,n+t[0].length,s)};else{if(!i)throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.addMatch=(t,e,n,r)=>r(n,n+t[0].length,i)}this.boundary=r,this.maxLength=s}createDeco(t){let e=new xt,i=e.add.bind(e);for(let{from:e,to:n}of function(t,e){let i=t.visibleRanges;if(1==i.length&&i[0].from==t.viewport.from&&i[0].to==t.viewport.to)return i;let n=[];for(let{from:r,to:s}of i)r=Math.max(t.state.doc.lineAt(r).from,r-e),s=Math.min(t.state.doc.lineAt(s).to,s+e),n.length&&n[n.length-1].to>=r?n[n.length-1].to=s:n.push({from:r,to:s});return n}(t,this.maxLength))ls(t.state.doc,this.regexp,e,n,((e,n)=>this.addMatch(n,t,e,i)));return e.finish()}updateDeco(t,e){let i=1e9,n=-1;return t.docChanged&&t.changes.iterChanges(((e,r,s,o)=>{o>t.view.viewport.from&&s1e3?this.createDeco(t.view):n>-1?this.updateRange(t.view,e.map(t.changes),i,n):e}updateRange(t,e,i,n){for(let r of t.visibleRanges){let s=Math.max(r.from,i),o=Math.min(r.to,n);if(o>s){let i=t.state.doc.lineAt(s),n=i.toi.from;s--)if(this.boundary.test(i.text[s-1-i.from])){a=s;break}for(;oc.push(i.range(t,e));if(i==n)for(this.regexp.lastIndex=a-i.from;(h=this.regexp.exec(i.text))&&h.indexthis.addMatch(i,t,e,u)));e=e.update({filterFrom:a,filterTo:l,filter:(t,e)=>tl,add:c})}}return e}}const cs=null!=/x/.unicode?"gu":"g",us=new RegExp("[\0-\b\n-\x1f\x7f-\x9f\xad\u061c\u200b\u200e\u200f\u2028\u2029\u202d\u202e\u2066\u2067\u2069\ufeff\ufff9-\ufffc]",cs),ds={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let ps=null;const fs=W.define({combine(t){let e=bt(t,{render:null,specialChars:us,addSpecialChars:null});return(e.replaceTabs=!function(){var t;if(null==ps&&"undefined"!=typeof document&&document.body){let e=document.body.style;ps=null!=(null!==(t=e.tabSize)&&void 0!==t?t:e.MozTabSize)}return ps||!1}())&&(e.specialChars=new RegExp("\t|"+e.specialChars.source,cs)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,cs)),e}});function Os(t={}){return[fs.of(t),ms||(ms=bi.fromClass(class{constructor(t){this.view=t,this.decorations=Le.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(t.state.facet(fs)),this.decorations=this.decorator.createDeco(t)}makeDecorator(t){return new hs({regexp:t.specialChars,decoration:(e,i,n)=>{let{doc:r}=i.state,s=_(e[0],0);if(9==s){let t=r.lineAt(n),e=i.state.tabSize,s=Rt(t.text,e,n-t.from);return Le.replace({widget:new _s((e-s%e)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=Le.replace({widget:new gs(t,s)}))},boundary:t.replaceTabs?void 0:/[^]/})}update(t){let e=t.state.facet(fs);t.startState.facet(fs)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(t.view)):this.decorations=this.decorator.updateDeco(t,this.decorations)}},{decorations:t=>t.decorations}))]}let ms=null;class gs extends Ge{constructor(t,e){super(),this.options=t,this.code=e}eq(t){return t.code==this.code}toDOM(t){let e=function(t){return t>=32?"\u2022":10==t?"\u2424":String.fromCharCode(9216+t)}(this.code),i=t.state.phrase("Control character")+" "+(ds[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,i,e);if(n)return n;let r=document.createElement("span");return r.textContent=e,r.title=i,r.setAttribute("aria-label",i),r.className="cm-specialChar",r}ignoreEvent(){return!1}}class _s extends Ge{constructor(t){super(),this.width=t}eq(t){return t.width==this.width}toDOM(){let t=document.createElement("span");return t.textContent="\t",t.className="cm-tab",t.style.width=this.width+"px",t}ignoreEvent(){return!1}}const bs="-10000px";class ws{constructor(t,e,i){this.facet=e,this.createTooltipView=i,this.input=t.state.facet(e),this.tooltips=this.input.filter((t=>t)),this.tooltipViews=this.tooltips.map(i)}update(t,e){var i;let n=t.state.facet(this.facet),r=n.filter((t=>t));if(n===this.input){for(let e of this.tooltipViews)e.update&&e.update(t);return!1}let s=[],o=e?[]:null;for(let i=0;ie[i]=t)),e.length=o.length),this.input=n,this.tooltips=r,this.tooltipViews=s,!0}}function Ss(t){let{win:e}=t;return{top:0,left:0,bottom:e.innerHeight,right:e.innerWidth}}const vs=W.define({combine:t=>{var e,i,n;return{position:Xe.ios?"absolute":(null===(e=t.find((t=>t.position)))||void 0===e?void 0:e.position)||"fixed",parent:(null===(i=t.find((t=>t.parent)))||void 0===i?void 0:i.parent)||null,tooltipSpace:(null===(n=t.find((t=>t.tooltipSpace)))||void 0===n?void 0:n.tooltipSpace)||Ss}}}),ys=new WeakMap,Qs=bi.fromClass(class{constructor(t){this.view=t,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=t.state.facet(vs);this.position=e.position,this.parent=e.parent,this.classes=t.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new ws(t,$s,(t=>this.createTooltip(t))),this.intersectionObserver="function"==typeof IntersectionObserver?new IntersectionObserver((t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()}),{threshold:[1]}):null,this.observeIntersection(),t.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let t of this.manager.tooltipViews)this.intersectionObserver.observe(t.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout((()=>{this.measureTimeout=-1,this.maybeMeasure()}),50))}update(t){t.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(t,this.above);e&&this.observeIntersection();let i=e||t.geometryChanged,n=t.state.facet(vs);if(n.position!=this.position&&!this.madeAbsolute){this.position=n.position;for(let t of this.manager.tooltipViews)t.dom.style.position=this.position;i=!0}if(n.parent!=this.parent){this.parent&&this.container.remove(),this.parent=n.parent,this.createContainer();for(let t of this.manager.tooltipViews)this.container.appendChild(t.dom);i=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);i&&this.maybeMeasure()}createTooltip(t){let e=t.create(this.view);if(e.dom.classList.add("cm-tooltip"),t.arrow&&!e.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let t=document.createElement("div");t.className="cm-tooltip-arrow",e.dom.appendChild(t)}return e.dom.style.position=this.position,e.dom.style.top=bs,e.dom.style.left="0px",this.container.appendChild(e.dom),e.mount&&e.mount(this.view),e}destroy(){var t,e;this.view.win.removeEventListener("resize",this.measureSoon);for(let e of this.manager.tooltipViews)e.dom.remove(),null===(t=e.destroy)||void 0===t||t.call(e);this.parent&&this.container.remove(),null===(e=this.intersectionObserver)||void 0===e||e.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let t=this.view.dom.getBoundingClientRect(),e=1,i=1,n=!1;if("fixed"==this.position&&this.manager.tooltipViews.length){let{dom:t}=this.manager.tooltipViews[0];if(Xe.gecko)n=t.offsetParent!=this.container.ownerDocument.body;else if(t.style.top==bs&&"0px"==t.style.left){let e=t.getBoundingClientRect();n=Math.abs(e.top+1e4)>1||Math.abs(e.left)>1}}if(n||"absolute"==this.position)if(this.parent){let t=this.parent.getBoundingClientRect();t.width&&t.height&&(e=t.width/this.parent.offsetWidth,i=t.height/this.parent.offsetHeight)}else({scaleX:e,scaleY:i}=this.view.viewState);return{editor:t,parent:this.parent?this.container.getBoundingClientRect():t,pos:this.manager.tooltips.map(((t,e)=>{let i=this.manager.tooltipViews[e];return i.getCoords?i.getCoords(t.pos):this.view.coordsAtPos(t.pos)})),size:this.manager.tooltipViews.map((({dom:t})=>t.getBoundingClientRect())),space:this.view.state.facet(vs).tooltipSpace(this.view),scaleX:e,scaleY:i,makeAbsolute:n}}writeMeasure(t){var e;if(t.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let t of this.manager.tooltipViews)t.dom.style.position="absolute"}let{editor:i,space:n,scaleX:r,scaleY:s}=t,o=[];for(let a=0;a=Math.min(i.bottom,n.bottom)||u.rightMath.min(i.right,n.right)+.1){c.style.top=bs;continue}let p=l.arrow?h.dom.querySelector(".cm-tooltip-arrow"):null,f=p?7:0,O=d.right-d.left,m=null!==(e=ys.get(h))&&void 0!==e?e:d.bottom-d.top,g=h.offset||ks,_=this.view.textDirection==Xi.LTR,b=d.width>n.right-n.left?_?n.left:n.right-d.width:_?Math.min(u.left-(p?14:0)+g.x,n.right-O):Math.max(n.left,u.left-O+(p?14:0)-g.x),w=this.above[a];!l.strictSide&&(w?u.top-(d.bottom-d.top)-g.yn.bottom)&&w==n.bottom-u.bottom>u.top-n.top&&(w=this.above[a]=!w);let S=(w?u.top-n.top:n.bottom-u.bottom)-f;if(Sb&&t.topv&&(v=w?t.top-m-2-f:t.bottom+f+2);if("absolute"==this.position?(c.style.top=(v-t.parent.top)/s+"px",c.style.left=(b-t.parent.left)/r+"px"):(c.style.top=v/s+"px",c.style.left=b/r+"px"),p){let t=u.left+(_?g.x:-g.x)-(b+14-7);p.style.left=t/r+"px"}!0!==h.overlap&&o.push({left:b,top:v,right:y,bottom:v+m}),c.classList.toggle("cm-tooltip-above",w),c.classList.toggle("cm-tooltip-below",!w),h.positioned&&h.positioned(t.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let t of this.manager.tooltipViews)t.dom.style.top=bs}},{eventObservers:{scroll(){this.maybeMeasure()}}}),xs=Yr.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),ks={x:0,y:0},$s=W.define({enables:[Qs,xs]});function Ps(t,e){let i=t.plugin(Qs);if(!i)return null;let n=i.manager.tooltips.indexOf(e);return n<0?null:i.manager.tooltipViews[n]}const Zs=W.define({combine(t){let e,i;for(let n of t)e=e||n.topContainer,i=i||n.bottomContainer;return{topContainer:e,bottomContainer:i}}});function Ts(t,e){let i=t.plugin(Cs),n=i?i.specs.indexOf(e):-1;return n>-1?i.panels[n]:null}const Cs=bi.fromClass(class{constructor(t){this.input=t.state.facet(As),this.specs=this.input.filter((t=>t)),this.panels=this.specs.map((e=>e(t)));let e=t.state.facet(Zs);this.top=new Xs(t,!0,e.topContainer),this.bottom=new Xs(t,!1,e.bottomContainer),this.top.sync(this.panels.filter((t=>t.top))),this.bottom.sync(this.panels.filter((t=>!t.top)));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(t){let e=t.state.facet(Zs);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new Xs(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new Xs(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let i=t.state.facet(As);if(i!=this.input){let e=i.filter((t=>t)),n=[],r=[],s=[],o=[];for(let i of e){let e,a=this.specs.indexOf(i);a<0?(e=i(t.view),o.push(e)):(e=this.panels[a],e.update&&e.update(t)),n.push(e),(e.top?r:s).push(e)}this.specs=e,this.panels=n,this.top.sync(r),this.bottom.sync(s);for(let t of o)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}else for(let e of this.panels)e.update&&e.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>Yr.scrollMargins.of((e=>{let i=e.plugin(t);return i&&{top:i.top.scrollMargin(),bottom:i.bottom.scrollMargin()}}))});class Xs{constructor(t,e,i){this.view=t,this.top=e,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(t){for(let e of this.panels)e.destroy&&t.indexOf(e)<0&&e.destroy();this.panels=t,this.syncDOM()}syncDOM(){if(0==this.panels.length)return void(this.dom&&(this.dom.remove(),this.dom=void 0));if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let t=this.dom.firstChild;for(let e of this.panels)if(e.dom.parentNode==this.dom){for(;t!=e.dom;)t=Ys(t);t=t.nextSibling}else this.dom.insertBefore(e.dom,t);for(;t;)t=Ys(t)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(this.container&&this.classes!=this.view.themeClasses){for(let t of this.classes.split(" "))t&&this.container.classList.remove(t);for(let t of(this.classes=this.view.themeClasses).split(" "))t&&this.container.classList.add(t)}}}function Ys(t){let e=t.nextSibling;return t.remove(),e}const As=W.define({enables:Cs});class Ws extends wt{compare(t){return this==t||this.constructor==t.constructor&&this.eq(t)}eq(t){return!1}destroy(t){}}Ws.prototype.elementClass="",Ws.prototype.toDOM=void 0,Ws.prototype.mapMode=v.TrackBefore,Ws.prototype.startSide=Ws.prototype.endSide=-1,Ws.prototype.point=!0;const Rs=W.define(),Es={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>Qt.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},zs=W.define();function Ms(t){return[qs(),zs.of(Object.assign(Object.assign({},Es),t))]}const Us=W.define({combine:t=>t.some((t=>t))});function qs(t){return[Vs]}const Vs=bi.fromClass(class{constructor(t){this.view=t,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(zs).map((e=>new Ns(t,e)));for(let t of this.gutters)this.dom.appendChild(t.dom);this.fixed=!t.state.facet(Us),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}update(t){if(this.updateGutters(t)){let e=this.prevViewport,i=t.view.viewport,n=Math.min(e.to,i.to)-Math.max(e.from,i.from);this.syncGutters(n<.8*(i.to-i.from))}t.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(Us)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&this.dom.remove();let i=Qt.iter(this.view.state.facet(Rs),this.view.viewport.from),n=[],r=this.gutters.map((t=>new Is(t,this.view.viewport,-this.view.documentPadding.top)));for(let t of this.view.viewportLineBlocks)if(n.length&&(n=[]),Array.isArray(t.type)){let e=!0;for(let s of t.type)if(s.type==Be.Text&&e){Ds(i,n,s.from);for(let t of r)t.line(this.view,s,n);e=!1}else if(s.widget)for(let t of r)t.widget(this.view,s)}else if(t.type==Be.Text){Ds(i,n,t.from);for(let e of r)e.line(this.view,t,n)}else if(t.widget)for(let e of r)e.widget(this.view,t);for(let t of r)t.finish();t&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(t){let e=t.startState.facet(zs),i=t.state.facet(zs),n=t.docChanged||t.heightChanged||t.viewportChanged||!Qt.eq(t.startState.facet(Rs),t.state.facet(Rs),t.view.viewport.from,t.view.viewport.to);if(e==i)for(let e of this.gutters)e.update(t)&&(n=!0);else{n=!0;let r=[];for(let n of i){let i=e.indexOf(n);i<0?r.push(new Ns(this.view,n)):(this.gutters[i].update(t),r.push(this.gutters[i]))}for(let t of this.gutters)t.dom.remove(),r.indexOf(t)<0&&t.destroy();for(let t of r)this.dom.appendChild(t.dom);this.gutters=r}return n}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove()}},{provide:t=>Yr.scrollMargins.of((e=>{let i=e.plugin(t);return i&&0!=i.gutters.length&&i.fixed?e.textDirection==Xi.LTR?{left:i.dom.offsetWidth*e.scaleX}:{right:i.dom.offsetWidth*e.scaleX}:null}))});function js(t){return Array.isArray(t)?t:[t]}function Ds(t,e,i){for(;t.value&&t.from<=i;)t.from==i&&e.push(t.value),t.next()}class Is{constructor(t,e,i){this.gutter=t,this.height=i,this.i=0,this.cursor=Qt.iter(t.markers,e.from)}addElement(t,e,i){let{gutter:n}=this,r=(e.top-this.height)/t.scaleY,s=e.height/t.scaleY;if(this.i==n.elements.length){let e=new Gs(t,s,r,i);n.elements.push(e),n.dom.appendChild(e.dom)}else n.elements[this.i].update(t,s,r,i);this.height=e.bottom,this.i++}line(t,e,i){let n=[];Ds(this.cursor,n,e.from),i.length&&(n=n.concat(i));let r=this.gutter.config.lineMarker(t,e,n);r&&n.unshift(r);let s=this.gutter;(0!=n.length||s.config.renderEmptyElements)&&this.addElement(t,e,n)}widget(t,e){let i=this.gutter.config.widgetMarker(t,e.widget,e);i&&this.addElement(t,e,[i])}finish(){let t=this.gutter;for(;t.elements.length>this.i;){let e=t.elements.pop();t.dom.removeChild(e.dom),e.destroy()}}}class Ns{constructor(t,e){this.view=t,this.config=e,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in e.domEventHandlers)this.dom.addEventListener(i,(n=>{let r,s=n.target;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let t=s.getBoundingClientRect();r=(t.top+t.bottom)/2}else r=n.clientY;let o=t.lineBlockAtHeight(r-t.documentTop);e.domEventHandlers[i](t,o,n)&&n.preventDefault()}));this.markers=js(e.markers(t)),e.initialSpacer&&(this.spacer=new Gs(t,0,0,[e.initialSpacer(t)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(t){let e=this.markers;if(this.markers=js(this.config.markers(t.view)),this.spacer&&this.config.updateSpacer){let e=this.config.updateSpacer(this.spacer.markers[0],t);e!=this.spacer.markers[0]&&this.spacer.update(t.view,0,0,[e])}let i=t.view.viewport;return!Qt.eq(this.markers,e,i.from,i.to)||!!this.config.lineMarkerChange&&this.config.lineMarkerChange(t)}destroy(){for(let t of this.elements)t.destroy()}}class Gs{constructor(t,e,i,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(t,e,i,n)}update(t,e,i,n){this.height!=e&&(this.height=e,this.dom.style.height=e+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),function(t,e){if(t.length!=e.length)return!1;for(let i=0;ibt(t,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(t,e){let i=Object.assign({},t);for(let t in e){let n=i[t],r=e[t];i[t]=n?(t,e,i)=>n(t,e,i)||r(t,e,i):r}return i}})});class Fs extends Ws{constructor(t){super(),this.number=t}eq(t){return this.number==t.number}toDOM(){return document.createTextNode(this.number)}}function Hs(t,e){return t.state.facet(Ls).formatNumber(e,t.state)}const Ks=zs.compute([Ls],(t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:t=>t.state.facet(Bs),lineMarker:(t,e,i)=>i.some((t=>t.toDOM))?null:new Fs(Hs(t,t.state.doc.lineAt(e.from).number)),widgetMarker:()=>null,lineMarkerChange:t=>t.startState.facet(Ls)!=t.state.facet(Ls),initialSpacer:t=>new Fs(Hs(t,to(t.state.doc.lines))),updateSpacer(t,e){let i=Hs(e.view,to(e.view.state.doc.lines));return i==t.number?t:new Fs(i)},domEventHandlers:t.facet(Ls).domEventHandlers})));function Js(t={}){return[Ls.of(t),qs(),Ks]}function to(t){let e=9;for(;e{throw new Error("This node type doesn't define a deserialize function")})}add(t){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return"function"!=typeof t&&(t=ao.match(t)),e=>{let i=t(e);return void 0===i?null:[this,i]}}}ro.closedBy=new ro({deserialize:t=>t.split(" ")}),ro.openedBy=new ro({deserialize:t=>t.split(" ")}),ro.group=new ro({deserialize:t=>t.split(" ")}),ro.contextHash=new ro({perNode:!0}),ro.lookAhead=new ro({perNode:!0}),ro.mounted=new ro({perNode:!0});class so{constructor(t,e,i){this.tree=t,this.overlay=e,this.parser=i}static get(t){return t&&t.props&&t.props[ro.mounted.id]}}const oo=Object.create(null);class ao{constructor(t,e,i,n=0){this.name=t,this.props=e,this.id=i,this.flags=n}static define(t){let e=t.props&&t.props.length?Object.create(null):oo,i=(t.top?1:0)|(t.skipped?2:0)|(t.error?4:0)|(null==t.name?8:0),n=new ao(t.name||"",e,t.id,i);if(t.props)for(let i of t.props)if(Array.isArray(i)||(i=i(n)),i){if(i[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");e[i[0].id]=i[1]}return n}prop(t){return this.props[t.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(t){if("string"==typeof t){if(this.name==t)return!0;let e=this.prop(ro.group);return!!e&&e.indexOf(t)>-1}return this.id==t}static match(t){let e=Object.create(null);for(let i in t)for(let n of i.split(" "))e[n]=t[i];return t=>{for(let i=t.prop(ro.group),n=-1;n<(i?i.length:0);n++){let r=e[n<0?t.name:i[n]];if(r)return r}}}}ao.none=new ao("",Object.create(null),0,8);class lo{constructor(t){this.types=t;for(let e=0;e=e){let o=new bo(s.tree,s.overlay[0].from+t.from,-1,t);(r||(r=[n])).push(go(o,e,i,!1))}}return r?Qo(r):n}(this,t,e)}iterate(t){let{enter:e,leave:i,from:n=0,to:r=this.length}=t,s=t.mode||0,o=(s&uo.IncludeAnonymous)>0;for(let t=this.cursor(s|uo.IncludeAnonymous);;){let s=!1;if(t.from<=r&&t.to>=n&&(!o&&t.type.isAnonymous||!1!==e(t))){if(t.firstChild())continue;s=!0}for(;s&&i&&(o||!t.type.isAnonymous)&&i(t),!t.nextSibling();){if(!t.parent())return;s=!0}}}prop(t){return t.perNode?this.props?this.props[t.id]:void 0:this.type.prop(t)}get propValues(){let t=[];if(this.props)for(let e in this.props)t.push([+e,this.props[e]]);return t}balance(t={}){return this.children.length<=8?this:To(ao.none,this.children,this.positions,0,this.children.length,0,this.length,((t,e,i)=>new po(this.type,t,e,i,this.propValues)),t.makeTree||((t,e,i)=>new po(ao.none,t,e,i)))}static build(t){return function(t){var e;let{buffer:i,nodeSet:n,maxBufferLength:r=eo,reused:s=[],minRepeatType:o=n.types.length}=t,a=Array.isArray(i)?new fo(i,i.length):i,l=n.types,h=0,c=0;function u(t,e,i,m,g,_){let{id:b,start:w,end:S,size:v}=a,y=c;for(;v<0;){if(a.next(),-1==v){let e=s[b];return i.push(e),void m.push(w-t)}if(-3==v)return void(h=b);if(-4==v)return void(c=b);throw new RangeError(`Unrecognized record size: ${v}`)}let Q,x,k=l[b],$=w-t;if(S-w<=r&&(x=function(t,e){let i=a.fork(),n=0,s=0,l=0,h=i.end-r,c={size:0,start:0,skip:0};t:for(let r=i.pos-t;i.pos>r;){let t=i.size;if(i.id==e&&t>=0){c.size=n,c.start=s,c.skip=l,l+=4,n+=4,i.next();continue}let a=i.pos-t;if(t<0||a=o?4:0,d=i.start;for(i.next();i.pos>a;){if(i.size<0){if(-3!=i.size)break t;u+=4}else i.id>=o&&(u+=4);i.next()}s=d,n+=t,l+=u}return(e<0||n==t)&&(c.size=n,c.start=s,c.skip=l),c.size>4?c:void 0}(a.pos-e,g))){let e=new Uint16Array(x.size-x.skip),i=a.pos-x.size,r=e.length;for(;a.pos>i;)r=O(x.start,e,r);Q=new Oo(e,S-x.start,n),$=x.start-t}else{let t=a.pos-v;a.next();let e=[],i=[],n=b>=o?b:-1,s=0,l=S;for(;a.pos>t;)n>=0&&a.id==n&&a.size>=0?(a.end<=l-r&&(p(e,i,w,s,a.end,l,n,y),s=e.length,l=a.end),a.next()):_>2500?d(w,t,e,i):u(w,t,e,i,n,_+1);if(n>=0&&s>0&&s-1&&s>0){let t=function(t){return(e,i,n)=>{let r,s,o=0,a=e.length-1;if(a>=0&&(r=e[a])instanceof po){if(!a&&r.type==t&&r.length==n)return r;(s=r.prop(ro.lookAhead))&&(o=i[a]+r.length+s)}return f(t,e,i,n,o)}}(k);Q=To(k,e,i,0,e.length,0,S-w,t,t)}else Q=f(k,e,i,S-w,y-S)}i.push(Q),m.push($)}function d(t,e,i,s){let o=[],l=0,h=-1;for(;a.pos>e;){let{id:t,start:e,end:i,size:n}=a;if(n>4)a.next();else{if(h>-1&&e=0;t-=3)e[i++]=o[t],e[i++]=o[t+1]-r,e[i++]=o[t+2]-r,e[i++]=i;i.push(new Oo(e,o[2]-r,n)),s.push(r-t)}}function p(t,e,i,r,s,o,a,l){let h=[],c=[];for(;t.length>r;)h.push(t.pop()),c.push(e.pop()+i-s);t.push(f(n.types[a],h,c,o-s,l-o)),e.push(s-i)}function f(t,e,i,n,r=0,s){if(h){let t=[ro.contextHash,h];s=s?[t].concat(s):[t]}if(r>25){let t=[ro.lookAhead,r];s=s?[t].concat(s):[t]}return new po(t,e,i,n,s)}function O(t,e,i){let{id:n,start:r,end:s,size:l}=a;if(a.next(),l>=0&&n4){let n=a.pos-(l-4);for(;a.pos>n;)i=O(t,e,i)}e[--i]=o,e[--i]=s-t,e[--i]=r-t,e[--i]=n}else-3==l?h=n:-4==l&&(c=n);return i}let m=[],g=[];for(;a.pos>0;)u(t.start||0,t.bufferStart||0,m,g,-1,0);let _=null!==(e=t.length)&&void 0!==e?e:m.length?g[0]+m[0].length:0;return new po(l[t.topID],m.reverse(),g.reverse(),_)}(t)}}po.empty=new po(ao.none,[],[],0);class fo{constructor(t,e){this.buffer=t,this.index=e}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new fo(this.buffer,this.index)}}class Oo{constructor(t,e,i){this.buffer=t,this.length=e,this.set=i}get type(){return ao.none}toString(){let t=[];for(let e=0;e0));a=s[a+3]);return o}slice(t,e,i){let n=this.buffer,r=new Uint16Array(e-t),s=0;for(let o=t,a=0;o=e&&ie;case 1:return i<=e&&n>e;case 2:return n>e;case 4:return!0}}function go(t,e,i,n){for(var r;t.from==t.to||(i<1?t.from>=e:t.from>e)||(i>-1?t.to<=e:t.to0?o.length:-1;t!=l;t+=e){let l=o[t],h=a[t]+s.from;if(mo(n,i,h,h+l.length))if(l instanceof Oo){if(r&uo.ExcludeBuffers)continue;let o=l.findChild(0,l.buffer.length,e,i-h,n);if(o>-1)return new yo(new vo(s,l,t,h),null,o)}else if(r&uo.IncludeAnonymous||!l.type.isAnonymous||$o(l)){let o;if(!(r&uo.IgnoreMounts)&&(o=so.get(l))&&!o.overlay)return new bo(o.tree,h,t,s);let a=new bo(l,h,t,s);return r&uo.IncludeAnonymous||!a.type.isAnonymous?a:a.nextChild(e<0?l.children.length-1:0,e,i,n)}}if(r&uo.IncludeAnonymous||!s.type.isAnonymous)return null;if(t=s.index>=0?s.index+e:e<0?-1:s._parent._tree.children.length,s=s._parent,!s)return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(t){return this.nextChild(0,1,t,2)}childBefore(t){return this.nextChild(this._tree.children.length-1,-1,t,-2)}enter(t,e,i=0){let n;if(!(i&uo.IgnoreOverlays)&&(n=so.get(this._tree))&&n.overlay){let i=t-this.from;for(let{from:t,to:r}of n.overlay)if((e>0?t<=i:t=i:r>i))return new bo(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,t,e,i)}nextSignificantParent(){let t=this;for(;t.type.isAnonymous&&t._parent;)t=t._parent;return t}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function wo(t,e,i,n){let r=t.cursor(),s=[];if(!r.firstChild())return s;if(null!=i)for(;!r.type.is(i);)if(!r.nextSibling())return s;for(;;){if(null!=n&&r.type.is(n))return s;if(r.type.is(e)&&s.push(r.node),!r.nextSibling())return null==n?s:[]}}function So(t,e,i=e.length-1){for(let n=t.parent;i>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[i]&&e[i]!=n.name)return!1;i--}}return!0}class vo{constructor(t,e,i,n){this.parent=t,this.buffer=e,this.index=i,this.start=n}}class yo extends _o{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(t,e,i){super(),this.context=t,this._parent=e,this.index=i,this.type=t.buffer.set.types[t.buffer.buffer[i]]}child(t,e,i){let{buffer:n}=this.context,r=n.findChild(this.index+4,n.buffer[this.index+3],t,e-this.context.start,i);return r<0?null:new yo(this.context,this,r)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(t){return this.child(1,t,2)}childBefore(t){return this.child(-1,t,-2)}enter(t,e,i=0){if(i&uo.ExcludeBuffers)return null;let{buffer:n}=this.context,r=n.findChild(this.index+4,n.buffer[this.index+3],e>0?1:-1,t-this.context.start,e);return r<0?null:new yo(this.context,this,r)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(t){return this._parent?null:this.context.parent.nextChild(this.context.index+t,t,0,4)}get nextSibling(){let{buffer:t}=this.context,e=t.buffer[this.index+3];return e<(this._parent?t.buffer[this._parent.index+3]:t.buffer.length)?new yo(this.context,this._parent,e):this.externalSibling(1)}get prevSibling(){let{buffer:t}=this.context,e=this._parent?this._parent.index+4:0;return this.index==e?this.externalSibling(-1):new yo(this.context,this._parent,t.findChild(e,this.index,-1,0,4))}get tree(){return null}toTree(){let t=[],e=[],{buffer:i}=this.context,n=this.index+4,r=i.buffer[this.index+3];if(r>n){let s=i.buffer[this.index+1];t.push(i.slice(n,r,s)),e.push(0)}return new po(this.type,t,e,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function Qo(t){if(!t.length)return null;let e=0,i=t[0];for(let n=1;ni.from||r.to0){if(this.index-1)for(let n=e+t,r=t<0?-1:i._tree.children.length;n!=r;n+=t){let t=i._tree.children[n];if(this.mode&uo.IncludeAnonymous||t instanceof Oo||!t.type.isAnonymous||$o(t))return!1}return!0}move(t,e){if(e&&this.enterChild(t,0,4))return!0;for(;;){if(this.sibling(t))return!0;if(this.atLastNode(t)||!this.parent())return!1}}next(t=!0){return this.move(1,t)}prev(t=!0){return this.move(-1,t)}moveTo(t,e=0){for(;(this.from==this.to||(e<1?this.from>=t:this.from>t)||(e>-1?this.to<=t:this.to=0;){for(let s=t;s;s=s._parent)if(s.index==n){if(n==this.index)return s;e=s,i=r+1;break t}n=this.stack[--r]}for(let t=i;t=0;r--){if(r<0)return So(this.node,t,n);let s=i[e.buffer[this.stack[r]]];if(!s.isAnonymous){if(t[n]&&t[n]!=s.name)return!1;n--}}return!0}}function $o(t){return t.children.some((t=>t instanceof Oo||!t.type.isAnonymous||$o(t)))}const Po=new WeakMap;function Zo(t,e){if(!t.isAnonymous||e instanceof Oo||e.type!=t)return 1;let i=Po.get(e);if(null==i){i=1;for(let n of e.children){if(n.type!=t||!(n instanceof po)){i=1;break}i+=Zo(t,n)}Po.set(e,i)}return i}function To(t,e,i,n,r,s,o,a,l){let h=0;for(let i=n;i=c)break;f+=e}if(h==r+1){if(f>c){let t=i[r];e(t.children,t.positions,0,t.children.length,n[r]+a);continue}u.push(i[r])}else{let e=n[h-1]+i[h-1].length-p;u.push(To(t,i,n,r,h,p,e,null,l))}d.push(p+a-s)}}(e,i,n,r,0),(a||l)(u,d,o)}class Co{constructor(){this.map=new WeakMap}setBuffer(t,e,i){let n=this.map.get(t);n||this.map.set(t,n=new Map),n.set(e,i)}getBuffer(t,e){let i=this.map.get(t);return i&&i.get(e)}set(t,e){t instanceof yo?this.setBuffer(t.context.buffer,t.index,e):t instanceof bo&&this.map.set(t.tree,e)}get(t){return t instanceof yo?this.getBuffer(t.context.buffer,t.index):t instanceof bo?this.map.get(t.tree):void 0}cursorSet(t,e){t.buffer?this.setBuffer(t.buffer.buffer,t.index,e):this.map.set(t.tree,e)}cursorGet(t){return t.buffer?this.getBuffer(t.buffer.buffer,t.index):this.map.get(t.tree)}}class Xo{constructor(t,e,i,n,r=!1,s=!1){this.from=t,this.to=e,this.tree=i,this.offset=n,this.open=(r?1:0)|(s?2:0)}get openStart(){return(1&this.open)>0}get openEnd(){return(2&this.open)>0}static addTree(t,e=[],i=!1){let n=[new Xo(0,t.length,t,0,!1,i)];for(let i of e)i.to>t.length&&n.push(i);return n}static applyChanges(t,e,i=128){if(!e.length)return t;let n=[],r=1,s=t.length?t[0]:null;for(let o=0,a=0,l=0;;o++){let h=o=i)for(;s&&s.from=e.from||c<=e.to||l){let t=Math.max(e.from,a)-l,i=Math.min(e.to,c)-l;e=t>=i?null:new Xo(t,i,e.tree,e.offset+l,o>0,!!h)}if(e&&n.push(e),s.to>c)break;s=rnew no(t.from,t.to))):[new no(0,0)]:[new no(0,t.length)],this.createParse(t,e||[],i)}parse(t,e,i){let n=this.startParse(t,e,i);for(;;){let t=n.advance();if(t)return t}}}class Ao{constructor(t){this.string=t}get length(){return this.string.length}chunk(t){return this.string.slice(t)}get lineChunks(){return!1}read(t,e){return this.string.slice(t,e)}}class Wo{constructor(t,e,i,n,r){this.parser=t,this.parse=e,this.overlay=i,this.target=n,this.from=r}}function Ro(t){if(!t.length||t.some((t=>t.from>=t.to)))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(t))}class Eo{constructor(t,e,i,n,r,s,o){this.parser=t,this.predicate=e,this.mounts=i,this.index=n,this.start=r,this.target=s,this.prev=o,this.depth=0,this.ranges=[]}}const zo=new ro({perNode:!0});class Mo{constructor(t,e,i,n,r){this.nest=e,this.input=i,this.fragments=n,this.ranges=r,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=t}advance(){if(this.baseParse){let t=this.baseParse.advance();if(!t)return null;if(this.baseParse=null,this.baseTree=t,this.startInner(),null!=this.stoppedAt)for(let t of this.inner)t.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let t=this.baseTree;return null!=this.stoppedAt&&(t=new po(t.type,t.children,t.positions,t.length,t.propValues.concat([[zo,this.stoppedAt]]))),t}let t=this.inner[this.innerDone],e=t.parse.advance();if(e){this.innerDone++;let i=Object.assign(Object.create(null),t.target.props);i[ro.mounted.id]=new so(e,t.overlay,t.parser),t.target.props=i}return null}get parsedPos(){if(this.baseParse)return 0;let t=this.input.length;for(let e=this.innerDone;e=this.stoppedAt)a=!1;else if(t.hasNode(n)){if(e){let t=e.mounts.find((t=>t.frag.from<=n.from&&t.frag.to>=n.to&&t.mount.overlay));if(t)for(let i of t.mount.overlay){let r=i.from+t.pos,s=i.to+t.pos;r>=n.from&&s<=n.to&&!e.ranges.some((t=>t.fromr))&&e.ranges.push({from:r,to:s})}}a=!1}else if(i&&(s=Uo(i.ranges,n.from,n.to)))a=2!=s;else if(!n.type.isAnonymous&&(r=this.nest(n,this.input))&&(n.fromnew no(t.from-n.from,t.to-n.from))):null,n.tree,t.length?t[0].from:n.from)),r.overlay?t.length&&(i={ranges:t,depth:0,prev:i}):a=!1}}else e&&(o=e.predicate(n))&&(!0===o&&(o=new no(n.from,n.to)),o.fromnew no(t.from-e.start,t.to-e.start))),e.target,t[0].from))),e=e.prev}i&&! --i.depth&&(i=i.prev)}}}}function Uo(t,e,i){for(let n of t){if(n.from>=i)break;if(n.to>e)return n.from<=e&&n.to>=i?2:1}return 0}function qo(t,e,i,n,r,s){if(e=t&&e.enter(i,1,uo.IgnoreOverlays|uo.ExcludeBuffers)||e.next(!1)||(this.done=!0)}hasNode(t){if(this.moveTo(t.from),!this.done&&this.cursor.from+this.offset==t.from&&this.cursor.tree)for(let e=this.cursor.tree;;){if(e==t.tree)return!0;if(!(e.children.length&&0==e.positions[0]&&e.children[0]instanceof po))break;e=e.children[0]}return!1}}let Do=class{constructor(t){var e;if(this.fragments=t,this.curTo=0,this.fragI=0,t.length){let i=this.curFrag=t[0];this.curTo=null!==(e=i.tree.prop(zo))&&void 0!==e?e:i.to,this.inner=new jo(i.tree,-i.offset)}else this.curFrag=this.inner=null}hasNode(t){for(;this.curFrag&&t.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=t.from&&this.curTo>=t.to&&this.inner.hasNode(t)}nextFrag(){var t;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let e=this.curFrag=this.fragments[this.fragI];this.curTo=null!==(t=e.tree.prop(zo))&&void 0!==t?t:e.to,this.inner=new jo(e.tree,-e.offset)}}findMounts(t,e){var i;let n=[];if(this.inner){this.inner.cursor.moveTo(t,1);for(let t=this.inner.cursor.node;t;t=t.parent){let r=null===(i=t.tree)||void 0===i?void 0:i.prop(ro.mounted);if(r&&r.parser==e)for(let e=this.fragI;e=t.to)break;i.tree==this.curFrag.tree&&n.push({frag:i,pos:t.from-i.offset,mount:r})}}}return n}};function Io(t,e){let i=null,n=e;for(let r=1,s=0;r=a)break;t.to<=o||(i||(n=i=e.slice()),t.froma&&i.splice(s+1,0,new no(a,t.to))):t.to>a?i[s--]=new no(a,t.to):i.splice(s--,1))}}return n}function No(t,e,i,n){let r=0,s=0,o=!1,a=!1,l=-1e9,h=[];for(;;){let c=r==t.length?1e9:o?t[r].to:t[r].from,u=s==e.length?1e9:a?e[s].to:e[s].from;if(o!=a){let t=Math.max(l,i),e=Math.min(c,u,n);tnew no(t.from+n,t.to+n))),a,l);for(let e=0,n=a;;e++){let a=e==o.length,h=a?l:o[e].from;if(h>n&&i.push(new Xo(n,h,r.tree,-t,s.from>=n||s.openStart,s.to<=h||s.openEnd)),a)break;n=o[e].to}}else i.push(new Xo(a,l,r.tree,-t,s.from>=t||s.openStart,s.to<=o||s.openEnd))}return i}let Bo=0;class Lo{constructor(t,e,i){this.set=t,this.base=e,this.modified=i,this.id=Bo++}static define(t){if(null==t?void 0:t.base)throw new Error("Can not derive from a modified tag");let e=new Lo([],null,[]);if(e.set.push(e),t)for(let i of t.set)e.set.push(i);return e}static defineModifier(){let t=new Ho;return e=>e.modified.indexOf(t)>-1?e:Ho.get(e.base||e,e.modified.concat(t).sort(((t,e)=>t.id-e.id)))}}let Fo=0;class Ho{constructor(){this.instances=[],this.id=Fo++}static get(t,e){if(!e.length)return t;let i=e[0].instances.find((i=>{return i.base==t&&(n=e,r=i.modified,n.length==r.length&&n.every(((t,e)=>t==r[e])));var n,r}));if(i)return i;let n=[],r=new Lo(n,t,e);for(let t of e)t.instances.push(r);let s=function(t){let e=[[]];for(let i=0;ie.length-t.length))}(e);for(let e of t.set)if(!e.modified.length)for(let t of s)n.push(Ho.get(e,t));return r}}function Ko(t){let e=Object.create(null);for(let i in t){let n=t[i];Array.isArray(n)||(n=[n]);for(let t of i.split(" "))if(t){let i=[],r=2,s=t;for(let e=0;;){if("..."==s&&e>0&&e+3==t.length){r=1;break}let n=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(s);if(!n)throw new RangeError("Invalid path: "+t);if(i.push("*"==n[0]?"":'"'==n[0][0]?JSON.parse(n[0]):n[0]),e+=n[0].length,e==t.length)break;let o=t[e++];if(e==t.length&&"!"==o){r=0;break}if("/"!=o)throw new RangeError("Invalid path: "+t);s=t.slice(e)}let o=i.length-1,a=i[o];if(!a)throw new RangeError("Invalid path: "+t);let l=new ta(n,r,o>0?i.slice(0,o):null);e[a]=l.sort(e[a])}}return Jo.add(e)}const Jo=new ro;class ta{constructor(t,e,i,n){this.tags=t,this.mode=e,this.context=i,this.next=n}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}sort(t){return!t||t.depth{let e=r;for(let n of t)for(let t of n.set){let n=i[t.id];if(n){e=e?e+" "+n:n;break}}return e},scope:n}}function ia(t,e,i,n=0,r=t.length){let s=new na(n,Array.isArray(e)?e:[e],i);s.highlightRange(t.cursor(),n,r,"",s.highlighters),s.flush(r)}ta.empty=new ta([],2,null);class na{constructor(t,e,i){this.at=t,this.highlighters=e,this.span=i,this.class=""}startSpan(t,e){e!=this.class&&(this.flush(t),t>this.at&&(this.at=t),this.class=e)}flush(t){t>this.at&&this.class&&this.span(this.at,t,this.class)}highlightRange(t,e,i,n,r){let{type:s,from:o,to:a}=t;if(o>=i||a<=e)return;s.isTop&&(r=this.highlighters.filter((t=>!t.scope||t.scope(s))));let l=n,h=function(t){let e=t.type.prop(Jo);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}(t)||ta.empty,c=function(t,e){let i=null;for(let n of t){let t=n.style(e);t&&(i=i?i+" "+t:t)}return i}(r,h.tags);if(c&&(l&&(l+=" "),l+=c,1==h.mode&&(n+=(n?" ":"")+c)),this.startSpan(Math.max(e,o),l),h.opaque)return;let u=t.tree&&t.tree.prop(ro.mounted);if(u&&u.overlay){let s=t.node.enter(u.overlay[0].from+o,1),h=this.highlighters.filter((t=>!t.scope||t.scope(u.tree.type))),c=t.firstChild();for(let d=0,p=o;;d++){let f=d=O)&&t.nextSibling()););if(!f||O>i)break;p=f.to+o,p>e&&(this.highlightRange(s.cursor(),Math.max(e,f.from+o),Math.min(i,p),"",h),this.startSpan(Math.min(i,p),l))}c&&t.parent()}else if(t.firstChild()){u&&(n="");do{if(!(t.to<=e)){if(t.from>=i)break;this.highlightRange(t,e,i,n,r),this.startSpan(Math.min(i,t.to),l)}}while(t.nextSibling());t.parent()}}}const ra=Lo.define,sa=ra(),oa=ra(),aa=ra(oa),la=ra(oa),ha=ra(),ca=ra(ha),ua=ra(ha),da=ra(),pa=ra(da),fa=ra(),Oa=ra(),ma=ra(),ga=ra(ma),_a=ra(),ba={comment:sa,lineComment:ra(sa),blockComment:ra(sa),docComment:ra(sa),name:oa,variableName:ra(oa),typeName:aa,tagName:ra(aa),propertyName:la,attributeName:ra(la),className:ra(oa),labelName:ra(oa),namespace:ra(oa),macroName:ra(oa),literal:ha,string:ca,docString:ra(ca),character:ra(ca),attributeValue:ra(ca),number:ua,integer:ra(ua),float:ra(ua),bool:ra(ha),regexp:ra(ha),escape:ra(ha),color:ra(ha),url:ra(ha),keyword:fa,self:ra(fa),null:ra(fa),atom:ra(fa),unit:ra(fa),modifier:ra(fa),operatorKeyword:ra(fa),controlKeyword:ra(fa),definitionKeyword:ra(fa),moduleKeyword:ra(fa),operator:Oa,derefOperator:ra(Oa),arithmeticOperator:ra(Oa),logicOperator:ra(Oa),bitwiseOperator:ra(Oa),compareOperator:ra(Oa),updateOperator:ra(Oa),definitionOperator:ra(Oa),typeOperator:ra(Oa),controlOperator:ra(Oa),punctuation:ma,separator:ra(ma),bracket:ga,angleBracket:ra(ga),squareBracket:ra(ga),paren:ra(ga),brace:ra(ga),content:da,heading:pa,heading1:ra(pa),heading2:ra(pa),heading3:ra(pa),heading4:ra(pa),heading5:ra(pa),heading6:ra(pa),contentSeparator:ra(da),list:ra(da),quote:ra(da),emphasis:ra(da),strong:ra(da),link:ra(da),monospace:ra(da),strikethrough:ra(da),inserted:ra(),deleted:ra(),changed:ra(),invalid:ra(),meta:_a,documentMeta:ra(_a),annotation:ra(_a),processingInstruction:ra(_a),definition:Lo.defineModifier(),constant:Lo.defineModifier(),function:Lo.defineModifier(),standard:Lo.defineModifier(),local:Lo.defineModifier(),special:Lo.defineModifier()};var wa;ea([{tag:ba.link,class:"tok-link"},{tag:ba.heading,class:"tok-heading"},{tag:ba.emphasis,class:"tok-emphasis"},{tag:ba.strong,class:"tok-strong"},{tag:ba.keyword,class:"tok-keyword"},{tag:ba.atom,class:"tok-atom"},{tag:ba.bool,class:"tok-bool"},{tag:ba.url,class:"tok-url"},{tag:ba.labelName,class:"tok-labelName"},{tag:ba.inserted,class:"tok-inserted"},{tag:ba.deleted,class:"tok-deleted"},{tag:ba.literal,class:"tok-literal"},{tag:ba.string,class:"tok-string"},{tag:ba.number,class:"tok-number"},{tag:[ba.regexp,ba.escape,ba.special(ba.string)],class:"tok-string2"},{tag:ba.variableName,class:"tok-variableName"},{tag:ba.local(ba.variableName),class:"tok-variableName tok-local"},{tag:ba.definition(ba.variableName),class:"tok-variableName tok-definition"},{tag:ba.special(ba.variableName),class:"tok-variableName2"},{tag:ba.definition(ba.propertyName),class:"tok-propertyName tok-definition"},{tag:ba.typeName,class:"tok-typeName"},{tag:ba.namespace,class:"tok-namespace"},{tag:ba.className,class:"tok-className"},{tag:ba.macroName,class:"tok-macroName"},{tag:ba.propertyName,class:"tok-propertyName"},{tag:ba.operator,class:"tok-operator"},{tag:ba.comment,class:"tok-comment"},{tag:ba.meta,class:"tok-meta"},{tag:ba.invalid,class:"tok-invalid"},{tag:ba.punctuation,class:"tok-punctuation"}]);const Sa=new ro;function va(t){return W.define({combine:t?e=>e.concat(t):void 0})}const ya=new ro;class Qa{constructor(t,e,i=[],n=""){this.data=t,this.name=n,_t.prototype.hasOwnProperty("tree")||Object.defineProperty(_t.prototype,"tree",{get(){return $a(this)}}),this.parser=e,this.extension=[Ra.of(this),_t.languageData.of(((t,e,i)=>{let n=xa(t,e,i),r=n.type.prop(Sa);if(!r)return[];let s=t.facet(r),o=n.type.prop(ya);if(o){let r=n.resolve(e-n.from,i);for(let e of o)if(e.test(r,t)){let i=t.facet(e.facet);return"replace"==e.type?i:i.concat(s)}}return s}))].concat(i)}isActiveAt(t,e,i=-1){return xa(t,e,i).type.prop(Sa)==this.data}findRegions(t){let e=t.facet(Ra);if((null==e?void 0:e.data)==this.data)return[{from:0,to:t.doc.length}];if(!e||!e.allowsNesting)return[];let i=[],n=(t,e)=>{if(t.prop(Sa)==this.data)return void i.push({from:e,to:e+t.length});let r=t.prop(ro.mounted);if(r){if(r.tree.prop(Sa)==this.data){if(r.overlay)for(let t of r.overlay)i.push({from:t.from+e,to:t.to+e});else i.push({from:e,to:e+t.length});return}if(r.overlay){let t=i.length;if(n(r.tree,r.overlay[0].from+e),i.length>t)return}}for(let i=0;it.isTop?e:void 0))]}),t.name)}configure(t,e){return new ka(this.data,this.parser.configure(t),e||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function $a(t){let e=t.field(Qa.state,!1);return e?e.tree:po.empty}class Pa{constructor(t){this.doc=t,this.cursorPos=0,this.string="",this.cursor=t.iter()}get length(){return this.doc.length}syncTo(t){return this.string=this.cursor.next(t-this.cursorPos).value,this.cursorPos=t+this.string.length,this.cursorPos-this.string.length}chunk(t){return this.syncTo(t),this.string}get lineChunks(){return!0}read(t,e){let i=this.cursorPos-this.string.length;return t=this.cursorPos?this.doc.sliceString(t,e):this.string.slice(t-i,e-i)}}let Za=null;class Ta{constructor(t,e,i=[],n,r,s,o,a){this.parser=t,this.state=e,this.fragments=i,this.tree=n,this.treeLen=r,this.viewport=s,this.skipped=o,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(t,e,i){return new Ta(t,e,[],po.empty,0,i,[],null)}startParse(){return this.parser.startParse(new Pa(this.state.doc),this.fragments)}work(t,e){return null!=e&&e>=this.state.doc.length&&(e=void 0),this.tree!=po.empty&&this.isDone(null!=e?e:this.state.doc.length)?(this.takeTree(),!0):this.withContext((()=>{var i;if("number"==typeof t){let e=Date.now()+t;t=()=>Date.now()>e}for(this.parse||(this.parse=this.startParse()),null!=e&&(null==this.parse.stoppedAt||this.parse.stoppedAt>e)&&e=this.treeLen&&((null==this.parse.stoppedAt||this.parse.stoppedAt>t)&&this.parse.stopAt(t),this.withContext((()=>{for(;!(e=this.parse.advance()););})),this.treeLen=t,this.tree=e,this.fragments=this.withoutTempSkipped(Xo.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(t){let e=Za;Za=this;try{return t()}finally{Za=e}}withoutTempSkipped(t){for(let e;e=this.tempSkipped.pop();)t=Ca(t,e.from,e.to);return t}changes(t,e){let{fragments:i,tree:n,treeLen:r,viewport:s,skipped:o}=this;if(this.takeTree(),!t.empty){let e=[];if(t.iterChangedRanges(((t,i,n,r)=>e.push({fromA:t,toA:i,fromB:n,toB:r}))),i=Xo.applyChanges(i,e),n=po.empty,r=0,s={from:t.mapPos(s.from,-1),to:t.mapPos(s.to,1)},this.skipped.length){o=[];for(let e of this.skipped){let i=t.mapPos(e.from,1),n=t.mapPos(e.to,-1);it.from&&(this.fragments=Ca(this.fragments,i,n),this.skipped.splice(e--,1))}return!(this.skipped.length>=e||(this.reset(),0))}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(t,e){this.skipped.push({from:t,to:e})}static getSkippingParser(t){return new class extends Yo{createParse(e,i,n){let r=n[0].from,s=n[n.length-1].to;return{parsedPos:r,advance(){let e=Za;if(e){for(let t of n)e.tempSkipped.push(t);t&&(e.scheduleOn=e.scheduleOn?Promise.all([e.scheduleOn,t]):t)}return this.parsedPos=s,new po(ao.none,[],[],s-r)},stoppedAt:null,stopAt(){}}}}}isDone(t){t=Math.min(t,this.state.doc.length);let e=this.fragments;return this.treeLen>=t&&e.length&&0==e[0].from&&e[0].to>=t}static get(){return Za}}function Ca(t,e,i){return Xo.applyChanges(t,[{fromA:e,toA:i,fromB:e,toB:i}])}class Xa{constructor(t){this.context=t,this.tree=t.tree}apply(t){if(!t.docChanged&&this.tree==this.context.tree)return this;let e=this.context.changes(t.changes,t.state),i=this.context.treeLen==t.startState.doc.length?void 0:Math.max(t.changes.mapPos(this.context.treeLen),e.viewport.to);return e.work(20,i)||e.takeTree(),new Xa(e)}static init(t){let e=Math.min(3e3,t.doc.length),i=Ta.create(t.facet(Ra).parser,t,{from:0,to:e});return i.work(20,e)||i.takeTree(),new Xa(i)}}Qa.state=V.define({create:Xa.init,update(t,e){for(let t of e.effects)if(t.is(Qa.setState))return t.value;return e.startState.facet(Ra)!=e.state.facet(Ra)?Xa.init(e.state):t.apply(e)}});let Ya=t=>{let e=setTimeout((()=>t()),500);return()=>clearTimeout(e)};"undefined"!=typeof requestIdleCallback&&(Ya=t=>{let e=-1,i=setTimeout((()=>{e=requestIdleCallback(t,{timeout:400})}),100);return()=>e<0?clearTimeout(i):cancelIdleCallback(e)});const Aa="undefined"!=typeof navigator&&(null===(wa=navigator.scheduling)||void 0===wa?void 0:wa.isInputPending)?()=>navigator.scheduling.isInputPending():null,Wa=bi.fromClass(class{constructor(t){this.view=t,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(t){let e=this.view.state.field(Qa.state).context;(e.updateViewport(t.view.viewport)||this.view.viewport.to>e.treeLen)&&this.scheduleWork(),(t.docChanged||t.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(e)}scheduleWork(){if(this.working)return;let{state:t}=this.view,e=t.field(Qa.state);e.tree==e.context.tree&&e.context.isDone(t.doc.length)||(this.working=Ya(this.work))}work(t){this.working=null;let e=Date.now();if(this.chunkEndn+1e3,a=r.context.work((()=>Aa&&Aa()||Date.now()>s),n+(o?0:1e5));this.chunkBudget-=Date.now()-e,(a||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:Qa.setState.of(new Xa(r.context))})),this.chunkBudget>0&&(!a||o)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(t){t.scheduleOn&&(this.workScheduled++,t.scheduleOn.then((()=>this.scheduleWork())).catch((t=>Oi(this.view.state,t))).then((()=>this.workScheduled--)),t.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Ra=W.define({combine:t=>t.length?t[0]:null,enables:t=>[Qa.state,Wa,Yr.contentAttributes.compute([t],(e=>{let i=e.facet(t);return i&&i.name?{"data-language":i.name}:{}}))]});class Ea{constructor(t,e=[]){this.language=t,this.support=e,this.extension=[t,e]}}const za=W.define(),Ma=W.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some((t=>t!=e[0])))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function Ua(t){let e=t.facet(Ma);return 9==e.charCodeAt(0)?t.tabSize*e.length:e.length}function qa(t,e){let i="",n=t.tabSize,r=t.facet(Ma)[0];if("\t"==r){for(;e>=n;)i+="\t",e-=n;r=" "}for(let t=0;t=e?function(t,e,i){let n=e.resolveStack(i),r=n.node.enterUnfinishedNodesBefore(i);if(r!=n.node){let t=[];for(let e=r;e!=n.node;e=e.parent)t.push(e);for(let e=t.length-1;e>=0;e--)n={node:t[e],next:n}}return Ia(n,t,i)}(t,i,e):null}class ja{constructor(t,e={}){this.state=t,this.options=e,this.unit=Ua(t)}lineAt(t,e=1){let i=this.state.doc.lineAt(t),{simulateBreak:n,simulateDoubleBreak:r}=this.options;return null!=n&&n>=i.from&&n<=i.to?r&&n==t?{text:"",from:t}:(e<0?n-1&&(r+=s-this.countColumn(i,i.search(/\S|$/))),r}countColumn(t,e=t.length){return Rt(t,this.state.tabSize,e)}lineIndent(t,e=1){let{text:i,from:n}=this.lineAt(t,e),r=this.options.overrideIndentation;if(r){let t=r(n);if(t>-1)return t}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const Da=new ro;function Ia(t,e,i){for(let n=t;n;n=n.next){let t=Na(n.node);if(t)return t(Ba.create(e,i,n))}return 0}function Na(t){let e=t.type.prop(Da);if(e)return e;let i,n=t.firstChild;if(n&&(i=n.type.prop(ro.closedBy))){let e=t.lastChild,n=e&&i.indexOf(e.name)>-1;return t=>Ha(t,!0,1,void 0,n&&!function(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}(t)?e.from:void 0)}return null==t.parent?Ga:null}function Ga(){return 0}class Ba extends ja{constructor(t,e,i){super(t.state,t.options),this.base=t,this.pos=e,this.context=i}get node(){return this.context.node}static create(t,e,i){return new Ba(t,e,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(t){let e=this.state.doc.lineAt(t.from);for(;;){let i=t.resolve(e.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(La(i,t))break;e=this.state.doc.lineAt(i.from)}return this.lineIndent(e.from)}continue(){return Ia(this.context.next,this.base,this.pos)}}function La(t,e){for(let i=e;i;i=i.parent)if(t==i)return!0;return!1}function Fa({closing:t,align:e=!0,units:i=1}){return n=>Ha(n,e,i,t)}function Ha(t,e,i,n,r){let s=t.textAfter,o=s.match(/^\s*/)[0].length,a=n&&s.slice(o,o+n.length)==n||r==t.pos+o,l=e?function(t){let e=t.node,i=e.childAfter(e.from),n=e.lastChild;if(!i)return null;let r=t.options.simulateBreak,s=t.state.doc.lineAt(i.from),o=null==r||r<=s.from?s.to:Math.min(s.to,r);for(let t=i.to;;){let r=e.childAfter(t);if(!r||r==n)return null;if(!r.type.isSkipped)return r.from{let n=t&&t.test(i.textAfter);return i.baseIndent+(n?0:e*i.unit)}}const Ja=W.define(),tl=new ro;function el(t){let e=t.firstChild,i=t.lastChild;return e&&e.toi)continue;if(r&&o.from=e&&n.to>i&&(r=n)}}return r}(t,e,i)}function rl(t,e){let i=e.mapPos(t.from,1),n=e.mapPos(t.to,-1);return i>=n?void 0:{from:i,to:n}}const sl=at.define({map:rl}),ol=at.define({map:rl});function al(t){let e=[];for(let{head:i}of t.state.selection.ranges)e.some((t=>t.from<=i&&t.to>=i))||e.push(t.lineBlockAt(i));return e}const ll=V.define({create:()=>Le.none,update(t,e){t=t.map(e.changes);for(let i of e.effects)if(i.is(sl)&&!cl(t,i.value.from,i.value.to)){let{preparePlaceholder:n}=e.state.facet(Ol),r=n?Le.replace({widget:new bl(n(e.state,i.value))}):_l;t=t.update({add:[r.range(i.value.from,i.value.to)]})}else i.is(ol)&&(t=t.update({filter:(t,e)=>i.value.from!=t||i.value.to!=e,filterFrom:i.value.from,filterTo:i.value.to}));if(e.selection){let i=!1,{head:n}=e.selection.main;t.between(n,n,((t,e)=>{tn&&(i=!0)})),i&&(t=t.update({filterFrom:n,filterTo:n,filter:(t,e)=>e<=n||t>=n}))}return t},provide:t=>Yr.decorations.from(t),toJSON(t,e){let i=[];return t.between(0,e.doc.length,((t,e)=>{i.push(t,e)})),i},fromJSON(t){if(!Array.isArray(t)||t.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let i=0;i{(!r||r.from>t)&&(r={from:t,to:e})})),r}function cl(t,e,i){let n=!1;return t.between(e,e,((t,r)=>{t==e&&r==i&&(n=!0)})),n}function ul(t,e){return t.field(ll,!1)?e:e.concat(at.appendConfig.of(ml()))}function dl(t,e,i=!0){let n=t.state.doc.lineAt(e.from).number,r=t.state.doc.lineAt(e.to).number;return Yr.announce.of(`${t.state.phrase(i?"Folded lines":"Unfolded lines")} ${n} ${t.state.phrase("to")} ${r}.`)}const pl=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:t=>{for(let e of al(t)){let i=nl(t.state,e.from,e.to);if(i)return t.dispatch({effects:ul(t.state,[sl.of(i),dl(t,i)])}),!0}return!1}},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:t=>{if(!t.state.field(ll,!1))return!1;let e=[];for(let i of al(t)){let n=hl(t.state,i.from,i.to);n&&e.push(ol.of(n),dl(t,n,!1))}return e.length&&t.dispatch({effects:e}),e.length>0}},{key:"Ctrl-Alt-[",run:t=>{let{state:e}=t,i=[];for(let n=0;n{let e=t.state.field(ll,!1);if(!e||!e.size)return!1;let i=[];return e.between(0,t.state.doc.length,((t,e)=>{i.push(ol.of({from:t,to:e}))})),t.dispatch({effects:i}),!0}}],fl={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},Ol=W.define({combine:t=>bt(t,fl)});function ml(t){let e=[ll,yl];return t&&e.push(Ol.of(t)),e}function gl(t,e){let{state:i}=t,n=i.facet(Ol),r=e=>{let i=t.lineBlockAt(t.posAtDOM(e.target)),n=hl(t.state,i.from,i.to);n&&t.dispatch({effects:ol.of(n)}),e.preventDefault()};if(n.placeholderDOM)return n.placeholderDOM(t,r,e);let s=document.createElement("span");return s.textContent=n.placeholderText,s.setAttribute("aria-label",i.phrase("folded code")),s.title=i.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=r,s}const _l=Le.replace({widget:new class extends Ge{toDOM(t){return gl(t,null)}}});class bl extends Ge{constructor(t){super(),this.value=t}eq(t){return this.value==t.value}toDOM(t){return gl(t,this.value)}}const wl={openText:"\u2304",closedText:"\u203a",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class Sl extends Ws{constructor(t,e){super(),this.config=t,this.open=e}eq(t){return this.config==t.config&&this.open==t.open}toDOM(t){if(this.config.markerDOM)return this.config.markerDOM(this.open);let e=document.createElement("span");return e.textContent=this.open?this.config.openText:this.config.closedText,e.title=t.state.phrase(this.open?"Fold line":"Unfold line"),e}}function vl(t={}){let e=Object.assign(Object.assign({},wl),t),i=new Sl(e,!0),n=new Sl(e,!1),r=bi.fromClass(class{constructor(t){this.from=t.viewport.from,this.markers=this.buildMarkers(t)}update(t){(t.docChanged||t.viewportChanged||t.startState.facet(Ra)!=t.state.facet(Ra)||t.startState.field(ll,!1)!=t.state.field(ll,!1)||$a(t.startState)!=$a(t.state)||e.foldingChanged(t))&&(this.markers=this.buildMarkers(t.view))}buildMarkers(t){let e=new xt;for(let r of t.viewportLineBlocks){let s=hl(t.state,r.from,r.to)?n:nl(t.state,r.from,r.to)?i:null;s&&e.add(r.from,r.from,s)}return e.finish()}}),{domEventHandlers:s}=e;return[r,Ms({class:"cm-foldGutter",markers(t){var e;return(null===(e=t.plugin(r))||void 0===e?void 0:e.markers)||Qt.empty},initialSpacer:()=>new Sl(e,!1),domEventHandlers:Object.assign(Object.assign({},s),{click:(t,e,i)=>{if(s.click&&s.click(t,e,i))return!0;let n=hl(t.state,e.from,e.to);if(n)return t.dispatch({effects:ol.of(n)}),!0;let r=nl(t.state,e.from,e.to);return!!r&&(t.dispatch({effects:sl.of(r)}),!0)}})}),ml()]}const yl=Yr.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class Ql{constructor(t,e){let i;function n(t){let e=Ut.newName();return(i||(i=Object.create(null)))["."+e]=t,e}this.specs=t;const r="string"==typeof e.all?e.all:e.all?n(e.all):void 0,s=e.scope;this.scope=s instanceof Qa?t=>t.prop(Sa)==s.data:s?t=>t==s:void 0,this.style=ea(t.map((t=>({tag:t.tag,class:t.class||n(Object.assign({},t,{tag:null}))}))),{all:r}).style,this.module=i?new Ut(i):null,this.themeType=e.themeType}static define(t,e){return new Ql(t,e||{})}}const xl=W.define(),kl=W.define({combine:t=>t.length?[t[0]]:null});function $l(t){let e=t.facet(xl);return e.length?e:t.facet(kl)}function Pl(t,e){let i,n=[Tl];return t instanceof Ql&&(t.module&&n.push(Yr.styleModule.of(t.module)),i=t.themeType),i?n.push(xl.computeN([Yr.darkTheme],(e=>e.facet(Yr.darkTheme)==("dark"==i)?[t]:[]))):n.push(xl.of(t)),n}class Zl{constructor(t){this.markCache=Object.create(null),this.tree=$a(t.state),this.decorations=this.buildDeco(t,$l(t.state))}update(t){let e=$a(t.state),i=$l(t.state),n=i!=$l(t.startState);e.length{i.add(t,e,this.markCache[n]||(this.markCache[n]=Le.mark({class:n})))}),n,r);return i.finish()}}const Tl=D.high(bi.fromClass(Zl,{decorations:t=>t.decorations})),Cl=Ql.define([{tag:ba.meta,color:"#404740"},{tag:ba.link,textDecoration:"underline"},{tag:ba.heading,textDecoration:"underline",fontWeight:"bold"},{tag:ba.emphasis,fontStyle:"italic"},{tag:ba.strong,fontWeight:"bold"},{tag:ba.strikethrough,textDecoration:"line-through"},{tag:ba.keyword,color:"#708"},{tag:[ba.atom,ba.bool,ba.url,ba.contentSeparator,ba.labelName],color:"#219"},{tag:[ba.literal,ba.inserted],color:"#164"},{tag:[ba.string,ba.deleted],color:"#a11"},{tag:[ba.regexp,ba.escape,ba.special(ba.string)],color:"#e40"},{tag:ba.definition(ba.variableName),color:"#00f"},{tag:ba.local(ba.variableName),color:"#30a"},{tag:[ba.typeName,ba.namespace],color:"#085"},{tag:ba.className,color:"#167"},{tag:[ba.special(ba.variableName),ba.macroName],color:"#256"},{tag:ba.definition(ba.propertyName),color:"#00c"},{tag:ba.comment,color:"#940"},{tag:ba.invalid,color:"#f00"}]),Xl=Yr.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Yl="()[]{}",Al=W.define({combine:t=>bt(t,{afterCursor:!0,brackets:Yl,maxScanDistance:1e4,renderMatch:El})}),Wl=Le.mark({class:"cm-matchingBracket"}),Rl=Le.mark({class:"cm-nonmatchingBracket"});function El(t){let e=[],i=t.matched?Wl:Rl;return e.push(i.range(t.start.from,t.start.to)),t.end&&e.push(i.range(t.end.from,t.end.to)),e}const zl=V.define({create:()=>Le.none,update(t,e){if(!e.docChanged&&!e.selection)return t;let i=[],n=e.state.facet(Al);for(let t of e.state.selection.ranges){if(!t.empty)continue;let r=Dl(e.state,t.head,-1,n)||t.head>0&&Dl(e.state,t.head-1,1,n)||n.afterCursor&&(Dl(e.state,t.head,1,n)||t.headYr.decorations.from(t)}),Ml=[zl,Xl];function Ul(t={}){return[Al.of(t),Ml]}const ql=new ro;function Vl(t,e,i){let n=t.prop(e<0?ro.openedBy:ro.closedBy);if(n)return n;if(1==t.name.length){let n=i.indexOf(t.name);if(n>-1&&n%2==(e<0?1:0))return[i[n+e]]}return null}function jl(t){let e=t.type.prop(ql);return e?e(t.node):t}function Dl(t,e,i,n={}){let r=n.maxScanDistance||1e4,s=n.brackets||Yl,o=$a(t),a=o.resolveInner(e,i);for(let t=a;t;t=t.parent){let n=Vl(t.type,i,s);if(n&&t.from0?e>=r.from&&er.from&&e<=r.to))return Il(0,0,i,t,r,n,s)}}return function(t,e,i,n,r,s,o){let a=i<0?t.sliceDoc(e-1,e):t.sliceDoc(e,e+1),l=o.indexOf(a);if(l<0||l%2==0!=i>0)return null;let h={from:i<0?e-1:e,to:i>0?e+1:e},c=t.doc.iterRange(e,i>0?t.doc.length:0),u=0;for(let t=0;!c.next().done&&t<=s;){let s=c.value;i<0&&(t+=s.length);let a=e+t*i;for(let t=i>0?0:s.length-1,e=i>0?s.length:-1;t!=e;t+=i){let e=o.indexOf(s[t]);if(!(e<0||n.resolveInner(a+t,1).type!=r))if(e%2==0==i>0)u++;else{if(1==u)return{start:h,end:{from:a+t,to:a+t+1},matched:e>>1==l>>1};u--}}i>0&&(t+=s.length)}return c.done?{start:h,matched:!1}:null}(t,e,i,o,a.type,r,s)}function Il(t,e,i,n,r,s,o){let a=n.parent,l={from:r.from,to:r.to},h=0,c=null==a?void 0:a.cursor();if(c&&(i<0?c.childBefore(n.from):c.childAfter(n.to)))do{if(i<0?c.to<=n.from:c.from>=n.to){if(0==h&&s.indexOf(c.type.name)>-1&&c.from-1||(Bl.push(t),console.warn(e))}function Kl(t,e){let i=[];for(let n of e.split(" ")){let e=[];for(let i of n.split(".")){let n=t[i]||ba[i];n?"function"==typeof n?e.length?e=e.map(n):Hl(i,`Modifier ${i} used at start of tag`):e.length?Hl(i,`Tag ${i} used as modifier`):e=Array.isArray(n)?n:[n]:Hl(i,`Unknown highlighting tag ${i}`)}for(let t of e)i.push(t)}if(!i.length)return 0;let n=e.replace(/ /g,"_"),r=n+" "+i.map((t=>t.id)),s=Ll[r];if(s)return s.id;let o=Ll[r]=ao.define({id:Gl.length,name:n,props:[Ko({[n]:i})]});return Gl.push(o),o.id}class Jl{constructor(t,e,i){this.state=t,this.pos=e,this.explicit=i,this.abortListeners=[]}tokenBefore(t){let e=$a(this.state).resolveInner(this.pos,-1);for(;e&&t.indexOf(e.name)<0;)e=e.parent;return e?{from:e.from,to:this.pos,text:this.state.sliceDoc(e.from,this.pos),type:e.type}:null}matchBefore(t){let e=this.state.doc.lineAt(this.pos),i=Math.max(e.from,this.pos-250),n=e.text.slice(i-e.from,this.pos-e.from),r=n.search(rh(t,!1));return r<0?null:{from:i+r,to:this.pos,text:n.slice(r)}}get aborted(){return null==this.abortListeners}addEventListener(t,e){"abort"==t&&this.abortListeners&&this.abortListeners.push(e)}}function th(t){let e=Object.keys(t).join(""),i=/\w/.test(e);return i&&(e=e.replace(/\w/g,"")),`[${i?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function eh(t){let e=t.map((t=>"string"==typeof t?{label:t}:t)),[i,n]=e.every((t=>/^\w+$/.test(t.label)))?[/\w*$/,/\w+$/]:function(t){let e=Object.create(null),i=Object.create(null);for(let{label:n}of t){e[n[0]]=!0;for(let t=1;t{let r=t.matchBefore(n);return r||t.explicit?{from:r?r.from:t.pos,options:e,validFor:i}:null}}class ih{constructor(t,e,i,n){this.completion=t,this.source=e,this.match=i,this.score=n}}function nh(t){return t.selection.main.from}function rh(t,e){var i;let{source:n}=t,r=e&&"^"!=n[0],s="$"!=n[n.length-1];return r||s?new RegExp(`${r?"^":""}(?:${n})${s?"$":""}`,null!==(i=t.flags)&&void 0!==i?i:t.ignoreCase?"i":""):t}const sh=rt.define(),oh=new WeakMap;function ah(t){if(!Array.isArray(t))return t;let e=oh.get(t);return e||oh.set(t,e=eh(t)),e}const lh=at.define(),hh=at.define();class ch{constructor(t){this.pattern=t,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let e=0;e=48&&l<=57||l>=97&&l<=122?2:l>=65&&l<=90?1:0:(S=b(l))!=S.toLowerCase()?1:S!=S.toUpperCase()?2:0;(!n||1==v&&O||0==g&&0!=v)&&(e[c]==l||i[c]==l&&(u=!0)?s[c++]=n:s.length&&(m=!1)),g=v,n+=w(l)}return c==a&&0==s[0]&&m?this.result((u?-200:0)-100,s,t):d==a&&0==p?this.ret(-200-t.length+(f==t.length?0:-100),[0,f]):o>-1?this.ret(-700-t.length,[o,o+this.pattern.length]):d==a?this.ret(-900-t.length,[p,f]):c==a?this.result((u?-200:0)-100-700+(m?0:-1100),s,t):2!=e.length&&this.result((n[0]?-700:0)-200-1100,n,t)}result(t,e,i){let n=[],r=0;for(let t of e){let e=t+(this.astral?w(_(i,t)):1);r&&n[r-1]==t?n[r-1]=e:(n[r++]=t,n[r++]=e)}return this.ret(t-i.length,n)}}const uh=W.define({combine:t=>bt(t,{activateOnTyping:!0,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:ph,compareCompletions:(t,e)=>t.label.localeCompare(e.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(t,e)=>t&&e,closeOnBlur:(t,e)=>t&&e,icons:(t,e)=>t&&e,tooltipClass:(t,e)=>i=>dh(t(i),e(i)),optionClass:(t,e)=>i=>dh(t(i),e(i)),addToOptions:(t,e)=>t.concat(e)})});function dh(t,e){return t?e?t+" "+e:t:e}function ph(t,e,i,n,r,s){let o,a,l=t.textDirection==Xi.RTL,h=l,c=!1,u="top",d=e.left-r.left,p=r.right-e.right,f=n.right-n.left,O=n.bottom-n.top;if(h&&d=O||t>e.top?o=i.bottom-e.top:(u="bottom",o=e.bottom-i.top)}return{style:`${u}: ${o/((e.bottom-e.top)/s.offsetHeight)}px; max-width: ${a/((e.right-e.left)/s.offsetWidth)}px`,class:"cm-completionInfo-"+(c?l?"left-narrow":"right-narrow":h?"left":"right")}}function fh(t,e,i){if(t<=i)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let t=Math.floor(e/i);return{from:t*i,to:(t+1)*i}}let n=Math.floor((t-e)/i);return{from:t-(n+1)*i,to:t-n*i}}class Oh{constructor(t,e,i){this.view=t,this.stateField=e,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:t=>this.placeInfo(t),key:this},this.space=null,this.currentClass="";let n=t.state.field(e),{options:r,selected:s}=n.open,o=t.state.facet(uh);this.optionContent=function(t){let e=t.addToOptions.slice();return t.icons&&e.push({render(t){let e=document.createElement("div");return e.classList.add("cm-completionIcon"),t.type&&e.classList.add(...t.type.split(/\s+/g).map((t=>"cm-completionIcon-"+t))),e.setAttribute("aria-hidden","true"),e},position:20}),e.push({render(t,e,i,n){let r=document.createElement("span");r.className="cm-completionLabel";let s=t.displayLabel||t.label,o=0;for(let t=0;to&&r.appendChild(document.createTextNode(s.slice(o,e)));let a=r.appendChild(document.createElement("span"));a.appendChild(document.createTextNode(s.slice(e,i))),a.className="cm-completionMatchedText",o=i}return ot.position-e.position)).map((t=>t.render))}(o),this.optionClass=o.optionClass,this.tooltipClass=o.tooltipClass,this.range=fh(r.length,s,o.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(t.state),this.dom.addEventListener("mousedown",(i=>{let{options:n}=t.state.field(e).open;for(let e,r=i.target;r&&r!=this.dom;r=r.parentNode)if("LI"==r.nodeName&&(e=/-(\d+)$/.exec(r.id))&&+e[1]{let i=t.state.field(this.stateField,!1);i&&i.tooltip&&t.state.facet(uh).closeOnBlur&&e.relatedTarget!=t.contentDOM&&t.dispatch({effects:hh.of(null)})})),this.showOptions(r,n.id)}mount(){this.updateSel()}showOptions(t,e){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(t,e,this.range)),this.list.addEventListener("scroll",(()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)}))}update(t){var e;let i=t.state.field(this.stateField),n=t.startState.field(this.stateField);if(this.updateTooltipClass(t.state),i!=n){let{options:r,selected:s,disabled:o}=i.open;n.open&&n.open.options==r||(this.range=fh(r.length,s,t.state.facet(uh).maxRenderedOptions),this.showOptions(r,i.id)),this.updateSel(),o!=(null===(e=n.open)||void 0===e?void 0:e.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!o)}}updateTooltipClass(t){let e=this.tooltipClass(t);if(e!=this.currentClass){for(let t of this.currentClass.split(" "))t&&this.dom.classList.remove(t);for(let t of e.split(" "))t&&this.dom.classList.add(t);this.currentClass=e}}positioned(t){this.space=t,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let t=this.view.state.field(this.stateField),e=t.open;if((e.selected>-1&&e.selected=this.range.to)&&(this.range=fh(e.options.length,e.selected,this.view.state.facet(uh).maxRenderedOptions),this.showOptions(e.options,t.id)),this.updateSelectedOption(e.selected)){this.destroyInfo();let{completion:i}=e.options[e.selected],{info:n}=i;if(!n)return;let r="string"==typeof n?document.createTextNode(n):n(i);if(!r)return;"then"in r?r.then((e=>{e&&this.view.state.field(this.stateField,!1)==t&&this.addInfoPane(e,i)})).catch((t=>Oi(this.view.state,t,"completion info"))):this.addInfoPane(r,i)}}addInfoPane(t,e){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",null!=t.nodeType)i.appendChild(t),this.infoDestroy=null;else{let{dom:e,destroy:n}=t;i.appendChild(e),this.infoDestroy=n||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(t){let e=null;for(let i=this.list.firstChild,n=this.range.from;i;i=i.nextSibling,n++)"LI"==i.nodeName&&i.id?n==t?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),e=i):i.hasAttribute("aria-selected")&&i.removeAttribute("aria-selected"):n--;return e&&function(t,e){let i=t.getBoundingClientRect(),n=e.getBoundingClientRect(),r=i.height/t.offsetHeight;n.topi.bottom&&(t.scrollTop+=(n.bottom-i.bottom)/r)}(this.list,e),e}measureInfo(){let t=this.dom.querySelector("[aria-selected]");if(!t||!this.info)return null;let e=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),n=t.getBoundingClientRect(),r=this.space;if(!r){let t=this.dom.ownerDocument.defaultView||window;r={left:0,top:0,right:t.innerWidth,bottom:t.innerHeight}}return n.top>Math.min(r.bottom,e.bottom)-10||n.bottomi.from||0==i.from)&&(r=t,"string"!=typeof l&&l.header?n.appendChild(l.header(l)):n.appendChild(document.createElement("completion-section")).textContent=t)}const h=n.appendChild(document.createElement("li"));h.id=e+"-"+s,h.setAttribute("role","option");let c=this.optionClass(o);c&&(h.className=c);for(let t of this.optionContent){let e=t(o,this.view.state,this.view,a);e&&h.appendChild(e)}}return i.from&&n.classList.add("cm-completionListIncompleteTop"),i.tonew Oh(i,t,e)}function gh(t){return 100*(t.boost||0)+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}class _h{constructor(t,e,i,n,r,s){this.options=t,this.attrs=e,this.tooltip=i,this.timestamp=n,this.selected=r,this.disabled=s}setSelected(t,e){return t==this.selected||t>=this.options.length?this:new _h(this.options,Sh(e,t),this.tooltip,this.timestamp,t,this.disabled)}static build(t,e,i,n,r){let s=function(t,e){let i=[],n=null,r=t=>{i.push(t);let{section:e}=t.completion;if(e){n||(n=[]);let t="string"==typeof e?e:e.name;n.some((e=>e.name==t))||n.push("string"==typeof e?{name:t}:e)}};for(let n of t)if(n.hasResult()){let t=n.result.getMatch;if(!1===n.result.filter)for(let e of n.result.options)r(new ih(e,n.source,t?t(e):[],1e9-i.length));else{let i=new ch(e.sliceDoc(n.from,n.to));for(let e of n.result.options)if(i.match(e.label)){let s=e.displayLabel?t?t(e,i.matched):[]:i.matched;r(new ih(e,n.source,s,i.score+(e.boost||0)))}}}if(n){let t=Object.create(null),e=0,r=(t,e)=>{var i,n;return(null!==(i=t.rank)&&void 0!==i?i:1e9)-(null!==(n=e.rank)&&void 0!==n?n:1e9)||(t.namee.score-t.score||a(t.completion,e.completion)))){let e=t.completion;!o||o.label!=e.label||o.detail!=e.detail||null!=o.type&&null!=e.type&&o.type!=e.type||o.apply!=e.apply||o.boost!=e.boost?s.push(t):gh(t.completion)>gh(o)&&(s[s.length-1]=t),o=t.completion}return s}(t,e);if(!s.length)return n&&t.some((t=>1==t.state))?new _h(n.options,n.attrs,n.tooltip,n.timestamp,n.selected,!0):null;let o=e.facet(uh).selectOnOpen?0:-1;if(n&&n.selected!=o&&-1!=n.selected){let t=n.options[n.selected].completion;for(let e=0;ee.hasResult()?Math.min(t,e.from):t),1e8),create:Th,above:r.aboveCursor},n?n.timestamp:Date.now(),o,!1)}map(t){return new _h(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:t.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class bh{constructor(t,e,i){this.active=t,this.id=e,this.open=i}static start(){return new bh(vh,"cm-ac-"+Math.floor(2e6*Math.random()).toString(36),null)}update(t){let{state:e}=t,i=e.facet(uh),n=(i.override||e.languageDataAt("autocomplete",nh(e)).map(ah)).map((e=>(this.active.find((t=>t.source==e))||new Qh(e,this.active.some((t=>0!=t.state))?1:0)).update(t,i)));n.length==this.active.length&&n.every(((t,e)=>t==this.active[e]))&&(n=this.active);let r=this.open;r&&t.docChanged&&(r=r.map(t.changes)),t.selection||n.some((e=>e.hasResult()&&t.changes.touchesRange(e.from,e.to)))||!function(t,e){if(t==e)return!0;for(let i=0,n=0;;){for(;i1==t.state))&&(r=null),!r&&n.every((t=>1!=t.state))&&n.some((t=>t.hasResult()))&&(n=n.map((t=>t.hasResult()?new Qh(t.source,0):t)));for(let e of t.effects)e.is($h)&&(r=r&&r.setSelected(e.value,this.id));return n==this.active&&r==this.open?this:new bh(n,this.id,r)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:wh}}const wh={"aria-autocomplete":"list"};function Sh(t,e){let i={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":t};return e>-1&&(i["aria-activedescendant"]=t+"-"+e),i}const vh=[];function yh(t){return t.isUserEvent("input.type")?"input":t.isUserEvent("delete.backward")?"delete":null}class Qh{constructor(t,e,i=-1){this.source=t,this.state=e,this.explicitPos=i}hasResult(){return!1}update(t,e){let i=yh(t),n=this;i?n=n.handleUserEvent(t,i,e):t.docChanged?n=n.handleChange(t):t.selection&&0!=n.state&&(n=new Qh(n.source,0));for(let e of t.effects)if(e.is(lh))n=new Qh(n.source,1,e.value?nh(t.state):-1);else if(e.is(hh))n=new Qh(n.source,0);else if(e.is(kh))for(let t of e.value)t.source==n.source&&(n=t);return n}handleUserEvent(t,e,i){return"delete"!=e&&i.activateOnTyping?new Qh(this.source,1):this.map(t.changes)}handleChange(t){return t.changes.touchesRange(nh(t.startState))?new Qh(this.source,0):this.map(t.changes)}map(t){return t.empty||this.explicitPos<0?this:new Qh(this.source,this.state,t.mapPos(this.explicitPos))}}class xh extends Qh{constructor(t,e,i,n,r){super(t,2,e),this.result=i,this.from=n,this.to=r}hasResult(){return!0}handleUserEvent(t,e,i){var n;let r=t.changes.mapPos(this.from),s=t.changes.mapPos(this.to,1),o=nh(t.state);if((this.explicitPos<0?o<=r:os||"delete"==e&&nh(t.startState)==this.from)return new Qh(this.source,"input"==e&&i.activateOnTyping?1:0);let a,l=this.explicitPos<0?-1:t.changes.mapPos(this.explicitPos);return function(t,e,i,n){if(!t)return!1;let r=e.sliceDoc(i,n);return"function"==typeof t?t(r,i,n,e):rh(t,!0).test(r)}(this.result.validFor,t.state,r,s)?new xh(this.source,l,this.result,r,s):this.result.update&&(a=this.result.update(this.result,r,s,new Jl(t.state,o,l>=0)))?new xh(this.source,l,a,a.from,null!==(n=a.to)&&void 0!==n?n:nh(t.state)):new Qh(this.source,1,l)}handleChange(t){return t.changes.touchesRange(this.from,this.to)?new Qh(this.source,0):this.map(t.changes)}map(t){return t.empty?this:new xh(this.source,this.explicitPos<0?-1:t.mapPos(this.explicitPos),this.result,t.mapPos(this.from),t.mapPos(this.to,1))}}const kh=at.define({map:(t,e)=>t.map((t=>t.map(e)))}),$h=at.define(),Ph=V.define({create:()=>bh.start(),update:(t,e)=>t.update(e),provide:t=>[$s.from(t,(t=>t.tooltip)),Yr.contentAttributes.from(t,(t=>t.attrs))]});function Zh(t,e){const i=e.completion.apply||e.completion.label;let n=t.state.field(Ph).active.find((t=>t.source==e.source));return n instanceof xh&&("string"==typeof i?t.dispatch(Object.assign(Object.assign({},function(t,e,i,n){let{main:r}=t.selection,s=i-r.from,o=n-r.from;return Object.assign(Object.assign({},t.changeByRange((a=>a!=r&&i!=n&&t.sliceDoc(a.from+s,a.from+o)!=t.sliceDoc(i,n)?{range:a}:{changes:{from:a.from+s,to:n==r.from?a.to:a.from+o,insert:e},range:X.cursor(a.from+s+e.length)}))),{scrollIntoView:!0,userEvent:"input.complete"})}(t.state,i,n.from,n.to)),{annotations:sh.of(e.completion)})):i(t,e.completion,n.from,n.to),!0)}const Th=mh(Ph,Zh);function Ch(t,e="option"){return i=>{let n=i.state.field(Ph,!1);if(!n||!n.open||n.open.disabled||Date.now()-n.open.timestamp-1?n.open.selected+s*(t?1:-1):t?0:o-1;return a<0?a="page"==e?0:o-1:a>=o&&(a="page"==e?o-1:0),i.dispatch({effects:$h.of(a)}),!0}}const Xh=t=>{let e=t.state.field(Ph,!1);return!(t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestamp(t.selection||t.docChanged)&&!yh(t)));for(let e=0;e50&&Date.now()-n.time>1e3){for(let t of n.context.abortListeners)try{t()}catch(t){Oi(this.view.state,t)}n.context.abortListeners=null,this.running.splice(e--,1)}else n.updates.push(...t.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=e.active.some((t=>1==t.state&&!this.running.some((e=>e.active.source==t.source))))?setTimeout((()=>this.startUpdate()),50):-1,0!=this.composing)for(let e of t.transactions)"input"==yh(e)?this.composing=2:2==this.composing&&e.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:t}=this.view,e=t.field(Ph);for(let t of e.active)1!=t.state||this.running.some((e=>e.active.source==t.source))||this.startQuery(t)}startQuery(t){let{state:e}=this.view,i=nh(e),n=new Jl(e,i,t.explicitPos==i),r=new Yh(t,n);this.running.push(r),Promise.resolve(t.source(n)).then((t=>{r.context.aborted||(r.done=t||null,this.scheduleAccept())}),(t=>{this.view.dispatch({effects:hh.of(null)}),Oi(this.view.state,t)}))}scheduleAccept(){this.running.every((t=>void 0!==t.done))?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout((()=>this.accept()),this.view.state.facet(uh).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],i=this.view.state.facet(uh);for(let n=0;nt.source==r.active.source));if(s&&1==s.state)if(null==r.done){let t=new Qh(r.active.source,0);for(let e of r.updates)t=t.update(e,i);1!=t.state&&e.push(t)}else this.startQuery(s)}e.length&&this.view.dispatch({effects:kh.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field(Ph,!1);if(e&&e.tooltip&&this.view.state.facet(uh).closeOnBlur){let i=e.open&&Ps(this.view,e.open.tooltip);i&&i.dom.contains(t.relatedTarget)||this.view.dispatch({effects:hh.of(null)})}},compositionstart(){this.composing=1},compositionend(){3==this.composing&&setTimeout((()=>this.view.dispatch({effects:lh.of(!1)})),20),this.composing=0}}}),Wh=Yr.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xb7\xb7\xb7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25cb'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25cc'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1d465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1d436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1d461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222a'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25a1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1f511}\ufe0e'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25a2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class Rh{constructor(t,e,i,n){this.field=t,this.line=e,this.from=i,this.to=n}}class Eh{constructor(t,e,i){this.field=t,this.from=e,this.to=i}map(t){let e=t.mapPos(this.from,-1,v.TrackDel),i=t.mapPos(this.to,1,v.TrackDel);return null==e||null==i?null:new Eh(this.field,e,i)}}class zh{constructor(t,e){this.lines=t,this.fieldPositions=e}instantiate(t,e){let i=[],n=[e],r=t.doc.lineAt(e),s=/^\s*/.exec(r.text)[0];for(let r of this.lines){if(i.length){let i=s,o=/^\t*/.exec(r)[0].length;for(let e=0;enew Eh(t.field,n[t.line]+t.from,n[t.line]+t.to)));return{text:i,ranges:o}}static parse(t){let e,i=[],n=[],r=[];for(let s of t.split(/\r\n?|\n/)){for(;e=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(s);){let t=e[1]?+e[1]:null,o=e[2]||e[3]||"",a=-1;for(let e=0;e=a&&t.field++}r.push(new Rh(a,n.length,e.index,e.index+o.length)),s=s.slice(0,e.index)+o+s.slice(e.index+e[0].length)}for(let t;t=/\\([{}])/.exec(s);){s=s.slice(0,t.index)+t[1]+s.slice(t.index+t[0].length);for(let e of r)e.line==n.length&&e.from>t.index&&(e.from--,e.to--)}n.push(s)}return new zh(n,r)}}let Mh=Le.widget({widget:new class extends Ge{toDOM(){let t=document.createElement("span");return t.className="cm-snippetFieldPosition",t}ignoreEvent(){return!1}}}),Uh=Le.mark({class:"cm-snippetField"});class qh{constructor(t,e){this.ranges=t,this.active=e,this.deco=Le.set(t.map((t=>(t.from==t.to?Mh:Uh).range(t.from,t.to))))}map(t){let e=[];for(let i of this.ranges){let n=i.map(t);if(!n)return null;e.push(n)}return new qh(e,this.active)}selectionInsideField(t){return t.ranges.every((t=>this.ranges.some((e=>e.field==this.active&&e.from<=t.from&&e.to>=t.to))))}}const Vh=at.define({map:(t,e)=>t&&t.map(e)}),jh=at.define(),Dh=V.define({create:()=>null,update(t,e){for(let i of e.effects){if(i.is(Vh))return i.value;if(i.is(jh)&&t)return new qh(t.ranges,i.value)}return t&&e.docChanged&&(t=t.map(e.changes)),t&&e.selection&&!t.selectionInsideField(e.selection)&&(t=null),t},provide:t=>Yr.decorations.from(t,(t=>t?t.deco:Le.none))});function Ih(t,e){return X.create(t.filter((t=>t.field==e)).map((t=>X.range(t.from,t.to))))}function Nh(e){let i=zh.parse(e);return(e,n,r,s)=>{let{text:o,ranges:a}=i.instantiate(e.state,r),l={changes:{from:r,to:s,insert:t.of(o)},scrollIntoView:!0,annotations:n?sh.of(n):void 0};if(a.length&&(l.selection=Ih(a,0)),a.length>1){let t=new qh(a,0),i=l.effects=[Vh.of(t)];void 0===e.state.field(Dh,!1)&&i.push(at.appendConfig.of([Dh,Fh,Kh,Wh]))}e.dispatch(e.state.update(l))}}function Gh(t){return({state:e,dispatch:i})=>{let n=e.field(Dh,!1);if(!n||t<0&&0==n.active)return!1;let r=n.active+t,s=t>0&&!n.ranges.some((e=>e.field==r+t));return i(e.update({selection:Ih(n.ranges,r),effects:Vh.of(s?null:new qh(n.ranges,r)),scrollIntoView:!0})),!0}}const Bh=[{key:"Tab",run:Gh(1),shift:Gh(-1)},{key:"Escape",run:({state:t,dispatch:e})=>!!t.field(Dh,!1)&&(e(t.update({effects:Vh.of(null)})),!0)}],Lh=W.define({combine:t=>t.length?t[0]:Bh}),Fh=D.highest(qr.compute([Lh],(t=>t.facet(Lh))));function Hh(t,e){return Object.assign(Object.assign({},e),{apply:Nh(t)})}const Kh=Yr.domEventHandlers({mousedown(t,e){let i,n=e.state.field(Dh,!1);if(!n||null==(i=e.posAtCoords({x:t.clientX,y:t.clientY})))return!1;let r=n.ranges.find((t=>t.from<=i&&t.to>=i));return!(!r||r.field==n.active||(e.dispatch({selection:Ih(n.ranges,r.field),effects:Vh.of(n.ranges.some((t=>t.field>r.field))?new qh(n.ranges,r.field):null),scrollIntoView:!0}),0))}}),Jh={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},tc=new class extends wt{};tc.startSide=1,tc.endSide=-1;const ec="()[]{}<>";function ic(t){for(let e=0;e<8;e+=2)if(ec.charCodeAt(e)==t)return ec.charAt(e+1);return b(t<128?t:t+1)}const nc=[{key:"Backspace",run:({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=function(t,e){return t.languageDataAt("closeBrackets",e)[0]||Jh}(t,t.selection.main.head),n=i.brackets||Jh.brackets,r=null,s=t.changeByRange((e=>{if(e.empty){let i=function(t,e){let i=t.sliceString(e-2,e);return w(_(i,0))==i.length?i:i.slice(1)}(t.doc,e.head);for(let r of n)if(r==i&&rc(t.doc,e.head)==ic(_(r,0)))return{changes:{from:e.head-r.length,to:e.head+r.length},range:X.cursor(e.head-r.length)}}return{range:r=e}}));return r||e(t.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!r}}];function rc(t,e){let i=t.sliceString(e,e+2);return i.slice(0,w(_(i,0)))}function sc(t={}){return[Ph,uh.of(t),Ah,ac,Wh]}const oc=[{key:"Ctrl-Space",run:t=>!!t.state.field(Ph,!1)&&(t.dispatch({effects:lh.of(!0)}),!0)},{key:"Escape",run:t=>{let e=t.state.field(Ph,!1);return!(!e||!e.active.some((t=>0!=t.state))||(t.dispatch({effects:hh.of(null)}),0))}},{key:"ArrowDown",run:Ch(!0)},{key:"ArrowUp",run:Ch(!1)},{key:"PageDown",run:Ch(!0,"page")},{key:"PageUp",run:Ch(!1,"page")},{key:"Enter",run:Xh}],ac=D.highest(qr.computeN([uh],(t=>t.facet(uh).defaultKeymap?[oc]:[])));function lc(t,e){return({state:i,dispatch:n})=>{if(i.readOnly)return!1;let r=t(e,i);return!!r&&(n(i.update(r)),!0)}}const hc=lc(Oc,0),cc=lc(fc,0),uc=lc(((t,e)=>fc(t,e,function(t){let e=[];for(let i of t.selection.ranges){let n=t.doc.lineAt(i.from),r=i.to<=n.to?n:t.doc.lineAt(i.to),s=e.length-1;s>=0&&e[s].to>n.from?e[s].to=r.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:r.to})}return e}(e))),0);function dc(t,e){let i=t.languageDataAt("commentTokens",e);return i.length?i[0]:{}}const pc=50;function fc(t,e,i=e.selection.ranges){let n=i.map((t=>dc(e,t.from).block));if(!n.every((t=>t)))return null;let r=i.map(((t,i)=>function(t,{open:e,close:i},n,r){let s,o,a=t.sliceDoc(n-pc,n),l=t.sliceDoc(r,r+pc),h=/\s*$/.exec(a)[0].length,c=/^\s*/.exec(l)[0].length,u=a.length-h;if(a.slice(u-e.length,u)==e&&l.slice(c,c+i.length)==i)return{open:{pos:n-h,margin:h&&1},close:{pos:r+c,margin:c&&1}};r-n<=2*pc?s=o=t.sliceDoc(n,r):(s=t.sliceDoc(n,n+pc),o=t.sliceDoc(r-pc,r));let d=/^\s*/.exec(s)[0].length,p=/\s*$/.exec(o)[0].length,f=o.length-p-i.length;return s.slice(d,d+e.length)==e&&o.slice(f,f+i.length)==i?{open:{pos:n+d+e.length,margin:/\s/.test(s.charAt(d+e.length))?1:0},close:{pos:r-p-i.length,margin:/\s/.test(o.charAt(f-1))?1:0}}:null}(e,n[i],t.from,t.to)));if(2!=t&&!r.every((t=>t)))return{changes:e.changes(i.map(((t,e)=>r[e]?[]:[{from:t.from,insert:n[e].open+" "},{from:t.to,insert:" "+n[e].close}])))};if(1!=t&&r.some((t=>t))){let t=[];for(let e,i=0;ir&&(t==s||s>l.from)){r=l.from;let t=/^\s*/.exec(l.text)[0].length,e=t==l.length,i=l.text.slice(t,t+a.length)==a?t:-1;tt.comment<0&&(!t.empty||t.single)))){let t=[];for(let{line:e,token:i,indent:r,empty:s,single:o}of n)!o&&s||t.push({from:e.from+r,insert:i+" "});let i=e.changes(t);return{changes:i,selection:e.selection.map(i,1)}}if(1!=t&&n.some((t=>t.comment>=0))){let t=[];for(let{line:e,comment:i,token:r}of n)if(i>=0){let n=e.from+i,s=n+r.length;" "==e.text[s-e.from]&&s++,t.push({from:n,to:s})}return{changes:t}}return null}const mc=rt.define(),gc=rt.define(),_c=W.define(),bc=W.define({combine:t=>bt(t,{minDepth:100,newGroupDelay:500,joinToEvent:(t,e)=>e},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(t,e)=>(i,n)=>t(i,n)||e(i,n)})}),wc=V.define({create:()=>Ec.empty,update(t,e){let i=e.state.facet(bc),n=e.annotation(mc);if(n){let r=$c.fromTransaction(e,n.selection),s=n.side,o=0==s?t.undone:t.done;return o=r?Pc(o,o.length,i.minDepth,r):Xc(o,e.startState.selection),new Ec(0==s?n.rest:o,0==s?o:n.rest)}let r=e.annotation(gc);if("full"!=r&&"before"!=r||(t=t.isolate()),!1===e.annotation(lt.addToHistory))return e.changes.empty?t:t.addMapping(e.changes.desc);let s=$c.fromTransaction(e),o=e.annotation(lt.time),a=e.annotation(lt.userEvent);return s?t=t.addChanges(s,o,a,i,e):e.selection&&(t=t.addSelection(e.startState.selection,o,a,i.newGroupDelay)),"full"!=r&&"after"!=r||(t=t.isolate()),t},toJSON:t=>({done:t.done.map((t=>t.toJSON())),undone:t.undone.map((t=>t.toJSON()))}),fromJSON:t=>new Ec(t.done.map($c.fromJSON),t.undone.map($c.fromJSON))});function Sc(t={}){return[wc,bc.of(t),Yr.domEventHandlers({beforeinput(t,e){let i="historyUndo"==t.inputType?yc:"historyRedo"==t.inputType?Qc:null;return!!i&&(t.preventDefault(),i(e))}})]}function vc(t,e){return function({state:i,dispatch:n}){if(!e&&i.readOnly)return!1;let r=i.field(wc,!1);if(!r)return!1;let s=r.pop(t,i,e);return!!s&&(n(s),!0)}}const yc=vc(0,!1),Qc=vc(1,!1),xc=vc(0,!0),kc=vc(1,!0);class $c{constructor(t,e,i,n,r){this.changes=t,this.effects=e,this.mapped=i,this.startSelection=n,this.selectionsAfter=r}setSelAfter(t){return new $c(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){var t,e,i;return{changes:null===(t=this.changes)||void 0===t?void 0:t.toJSON(),mapped:null===(e=this.mapped)||void 0===e?void 0:e.toJSON(),startSelection:null===(i=this.startSelection)||void 0===i?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map((t=>t.toJSON()))}}static fromJSON(t){return new $c(t.changes&&Q.fromJSON(t.changes),[],t.mapped&&y.fromJSON(t.mapped),t.startSelection&&X.fromJSON(t.startSelection),t.selectionsAfter.map(X.fromJSON))}static fromTransaction(t,e){let i=Tc;for(let e of t.startState.facet(_c)){let n=e(t);n.length&&(i=i.concat(n))}return!i.length&&t.changes.empty?null:new $c(t.changes.invert(t.startState.doc),i,void 0,e||t.startState.selection,Tc)}static selection(t){return new $c(void 0,Tc,void 0,void 0,t)}}function Pc(t,e,i,n){let r=e+1>i+20?e-i-1:0,s=t.slice(r,e);return s.push(n),s}function Zc(t,e){return t.length?e.length?t.concat(e):t:e}const Tc=[],Cc=200;function Xc(t,e){if(t.length){let i=t[t.length-1],n=i.selectionsAfter.slice(Math.max(0,i.selectionsAfter.length-Cc));return n.length&&n[n.length-1].eq(e)?t:(n.push(e),Pc(t,t.length-1,1e9,i.setSelAfter(n)))}return[$c.selection([e])]}function Yc(t){let e=t[t.length-1],i=t.slice();return i[t.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),i}function Ac(t,e){if(!t.length)return t;let i=t.length,n=Tc;for(;i;){let r=Wc(t[i-1],e,n);if(r.changes&&!r.changes.empty||r.effects.length){let e=t.slice(0,i);return e[i-1]=r,e}e=r.mapped,i--,n=r.selectionsAfter}return n.length?[$c.selection(n)]:Tc}function Wc(t,e,i){let n=Zc(t.selectionsAfter.length?t.selectionsAfter.map((t=>t.map(e))):Tc,i);if(!t.changes)return $c.selection(n);let r=t.changes.map(e),s=e.mapDesc(t.changes,!0),o=t.mapped?t.mapped.composeDesc(s):s;return new $c(r,at.mapEffects(t.effects,e),o,t.startSelection.map(s),n)}const Rc=/^(input\.type|delete)($|\.)/;class Ec{constructor(t,e,i=0,n=void 0){this.done=t,this.undone=e,this.prevTime=i,this.prevUserEvent=n}isolate(){return this.prevTime?new Ec(this.done,this.undone):this}addChanges(t,e,i,n,r){let s=this.done,o=s[s.length-1];return s=o&&o.changes&&!o.changes.empty&&t.changes&&(!i||Rc.test(i))&&(!o.selectionsAfter.length&&e-this.prevTimei.push(t,e))),e.iterChangedRanges(((t,e,r,s)=>{for(let t=0;t=e&&r<=o&&(n=!0)}})),n}(o.changes,t.changes))||"input.type.compose"==i)?Pc(s,s.length-1,n.minDepth,new $c(t.changes.compose(o.changes),Zc(t.effects,o.effects),o.mapped,o.startSelection,Tc)):Pc(s,s.length,n.minDepth,t),new Ec(s,Tc,e,i)}addSelection(t,e,i,n){let r=this.done.length?this.done[this.done.length-1].selectionsAfter:Tc;return r.length>0&&e-this.prevTimet.empty!=o.ranges[e].empty)).length)?this:new Ec(Xc(this.done,t),this.undone,e,i);var s,o}addMapping(t){return new Ec(Ac(this.done,t),Ac(this.undone,t),this.prevTime,this.prevUserEvent)}pop(t,e,i){let n=0==t?this.done:this.undone;if(0==n.length)return null;let r=n[n.length-1],s=r.selectionsAfter[0]||e.selection;if(i&&r.selectionsAfter.length)return e.update({selection:r.selectionsAfter[r.selectionsAfter.length-1],annotations:mc.of({side:t,rest:Yc(n),selection:s}),userEvent:0==t?"select.undo":"select.redo",scrollIntoView:!0});if(r.changes){let i=1==n.length?Tc:n.slice(0,n.length-1);return r.mapped&&(i=Ac(i,r.mapped)),e.update({changes:r.changes,selection:r.startSelection,effects:r.effects,annotations:mc.of({side:t,rest:i,selection:s}),filter:!1,userEvent:0==t?"undo":"redo",scrollIntoView:!0})}return null}}Ec.empty=new Ec(Tc,Tc);const zc=[{key:"Mod-z",run:yc,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Qc,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Qc,preventDefault:!0},{key:"Mod-u",run:xc,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:kc,preventDefault:!0}];function Mc(t,e){return X.create(t.ranges.map(e),t.mainIndex)}function Uc(t,e){return t.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function qc({state:t,dispatch:e},i){let n=Mc(t.selection,i);return!n.eq(t.selection)&&(e(Uc(t,n)),!0)}function Vc(t,e){return X.cursor(e?t.to:t.from)}function jc(t,e){return qc(t,(i=>i.empty?t.moveByChar(i,e):Vc(i,e)))}function Dc(t){return t.textDirectionAt(t.state.selection.main.head)==Xi.LTR}const Ic=t=>jc(t,!Dc(t)),Nc=t=>jc(t,Dc(t));function Gc(t,e){return qc(t,(i=>i.empty?t.moveByGroup(i,e):Vc(i,e)))}function Bc(t,e,i){if(e.type.prop(i))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function Lc(t,e,i){let n,r,s=$a(t).resolveInner(e.head),o=i?ro.closedBy:ro.openedBy;for(let n=e.head;;){let e=i?s.childAfter(n):s.childBefore(n);if(!e)break;Bc(t,e,o)?s=e:n=i?e.to:e.from}return r=s.type.prop(o)&&(n=i?Dl(t,s.from,1):Dl(t,s.to,-1))&&n.matched?i?n.end.to:n.end.from:i?s.to:s.from,X.cursor(r,i?-1:1)}function Fc(t,e){return qc(t,(i=>{if(!i.empty)return Vc(i,e);let n=t.moveVertically(i,e);return n.head!=i.head?n:t.moveToLineBoundary(i,e)}))}const Hc=t=>Fc(t,!1),Kc=t=>Fc(t,!0);function Jc(t){let e,i=t.scrollDOM.clientHeighti.empty?t.moveVertically(i,e,n.height):Vc(i,e)));if(s.eq(r.selection))return!1;if(n.selfScroll){let e=t.coordsAtPos(r.selection.main.head),o=t.scrollDOM.getBoundingClientRect(),a=o.top+n.marginTop,l=o.bottom-n.marginBottom;e&&e.top>a&&e.bottomtu(t,!1),iu=t=>tu(t,!0);function nu(t,e,i){let n=t.lineBlockAt(e.head),r=t.moveToLineBoundary(e,i);if(r.head==e.head&&r.head!=(i?n.to:n.from)&&(r=t.moveToLineBoundary(e,i,!1)),!i&&r.head==n.from&&n.length){let i=/^\s*/.exec(t.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;i&&e.head!=n.from+i&&(r=X.cursor(n.from+i))}return r}function ru(t,e){let i=Mc(t.state.selection,(t=>{let i=e(t);return X.range(t.anchor,i.head,i.goalColumn,i.bidiLevel||void 0)}));return!i.eq(t.state.selection)&&(t.dispatch(Uc(t.state,i)),!0)}function su(t,e){return ru(t,(i=>t.moveByChar(i,e)))}const ou=t=>su(t,!Dc(t)),au=t=>su(t,Dc(t));function lu(t,e){return ru(t,(i=>t.moveByGroup(i,e)))}function hu(t,e){return ru(t,(i=>t.moveVertically(i,e)))}const cu=t=>hu(t,!1),uu=t=>hu(t,!0);function du(t,e){return ru(t,(i=>t.moveVertically(i,e,Jc(t).height)))}const pu=t=>du(t,!1),fu=t=>du(t,!0),Ou=({state:t,dispatch:e})=>(e(Uc(t,{anchor:0})),!0),mu=({state:t,dispatch:e})=>(e(Uc(t,{anchor:t.doc.length})),!0),gu=({state:t,dispatch:e})=>(e(Uc(t,{anchor:t.selection.main.anchor,head:0})),!0),_u=({state:t,dispatch:e})=>(e(Uc(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0);function bu(t,e){if(t.state.readOnly)return!1;let i="delete.selection",{state:n}=t,r=n.changeByRange((n=>{let{from:r,to:s}=n;if(r==s){let o=e(n);or&&(i="delete.forward",o=wu(t,o,!0)),r=Math.min(r,o),s=Math.max(s,o)}else r=wu(t,r,!1),s=wu(t,s,!0);return r==s?{range:n}:{changes:{from:r,to:s},range:X.cursor(r,re(t))))n.between(e,e,((t,n)=>{te&&(e=i?n:t)}));return e}const Su=(t,e)=>bu(t,(i=>{let n,r,s=i.from,{state:o}=t,a=o.doc.lineAt(s);if(!e&&s>a.from&&sSu(t,!1),yu=t=>Su(t,!0),Qu=(t,e)=>bu(t,(i=>{let n=i.head,{state:r}=t,s=r.doc.lineAt(n),o=r.charCategorizer(n);for(let t=null;;){if(n==(e?s.to:s.from)){n==i.head&&s.number!=(e?r.doc.lines:1)&&(n+=e?1:-1);break}let a=p(s.text,n-s.from,e)+s.from,l=s.text.slice(Math.min(n,a)-s.from,Math.max(n,a)-s.from),h=o(l);if(null!=t&&h!=t)break;" "==l&&n==i.head||(t=h),n=a}return n})),xu=t=>Qu(t,!1);function ku(t){let e=[],i=-1;for(let n of t.selection.ranges){let r=t.doc.lineAt(n.from),s=t.doc.lineAt(n.to);if(n.empty||n.to!=s.from||(s=t.doc.lineAt(n.to-1)),i>=r.number){let t=e[e.length-1];t.to=s.to,t.ranges.push(n)}else e.push({from:r.from,to:s.to,ranges:[n]});i=s.number+1}return e}function $u(t,e,i){if(t.readOnly)return!1;let n=[],r=[];for(let e of ku(t)){if(i?e.to==t.doc.length:0==e.from)continue;let s=t.doc.lineAt(i?e.to+1:e.from-1),o=s.length+1;if(i){n.push({from:e.to,to:s.to},{from:e.from,insert:s.text+t.lineBreak});for(let i of e.ranges)r.push(X.range(Math.min(t.doc.length,i.anchor+o),Math.min(t.doc.length,i.head+o)))}else{n.push({from:s.from,to:e.from},{from:e.to,insert:t.lineBreak+s.text});for(let t of e.ranges)r.push(X.range(t.anchor-o,t.head-o))}}return!!n.length&&(e(t.update({changes:n,scrollIntoView:!0,selection:X.create(r,t.selection.mainIndex),userEvent:"move.line"})),!0)}function Pu(t,e,i){if(t.readOnly)return!1;let n=[];for(let e of ku(t))i?n.push({from:e.from,insert:t.doc.slice(e.from,e.to)+t.lineBreak}):n.push({from:e.to,insert:t.lineBreak+t.doc.slice(e.from,e.to)});return e(t.update({changes:n,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const Zu=Tu(!1);function Tu(e){return({state:i,dispatch:n})=>{if(i.readOnly)return!1;let r=i.changeByRange((n=>{let{from:r,to:s}=n,o=i.doc.lineAt(r),a=!e&&r==s&&function(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let i,n=$a(t).resolveInner(e),r=n.childBefore(e),s=n.childAfter(e);return r&&s&&r.to<=e&&s.from>=e&&(i=r.type.prop(ro.closedBy))&&i.indexOf(s.name)>-1&&t.doc.lineAt(r.to).from==t.doc.lineAt(s.from).from&&!/\S/.test(t.sliceDoc(r.to,s.from))?{from:r.to,to:s.from}:null}(i,r);e&&(r=s=(s<=o.to?o:i.doc.lineAt(s)).to);let l=new ja(i,{simulateBreak:r,simulateDoubleBreak:!!a}),h=Va(l,r);for(null==h&&(h=Rt(/^\s*/.exec(i.doc.lineAt(r).text)[0],i.tabSize));so.from&&r{let r=[];for(let s=n.from;s<=n.to;){let o=t.doc.lineAt(s);o.number>i&&(n.empty||n.to>o.from)&&(e(o,r,n),i=o.number),s=o.to+1}let s=t.changes(r);return{changes:r,range:X.range(s.mapPos(n.anchor,1),s.mapPos(n.head,1))}}))}const Xu=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:t=>qc(t,(e=>Lc(t.state,e,!Dc(t)))),shift:t=>ru(t,(e=>Lc(t.state,e,!Dc(t))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:t=>qc(t,(e=>Lc(t.state,e,Dc(t)))),shift:t=>ru(t,(e=>Lc(t.state,e,Dc(t))))},{key:"Alt-ArrowUp",run:({state:t,dispatch:e})=>$u(t,e,!1)},{key:"Shift-Alt-ArrowUp",run:({state:t,dispatch:e})=>Pu(t,e,!1)},{key:"Alt-ArrowDown",run:({state:t,dispatch:e})=>$u(t,e,!0)},{key:"Shift-Alt-ArrowDown",run:({state:t,dispatch:e})=>Pu(t,e,!0)},{key:"Escape",run:({state:t,dispatch:e})=>{let i=t.selection,n=null;return i.ranges.length>1?n=X.create([i.main]):i.main.empty||(n=X.create([X.cursor(i.main.head)])),!!n&&(e(Uc(t,n)),!0)}},{key:"Mod-Enter",run:Tu(!0)},{key:"Alt-l",mac:"Ctrl-l",run:({state:t,dispatch:e})=>{let i=ku(t).map((({from:e,to:i})=>X.range(e,Math.min(i+1,t.doc.length))));return e(t.update({selection:X.create(i),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:t,dispatch:e})=>{let i=Mc(t.selection,(e=>{var i;for(let n=$a(t).resolveStack(e.from,1);n;n=n.next){let{node:t}=n;if((t.from=e.to||t.to>e.to&&t.from<=e.from)&&(null===(i=t.parent)||void 0===i?void 0:i.parent))return X.range(t.to,t.from)}return e}));return e(Uc(t,i)),!0},preventDefault:!0},{key:"Mod-[",run:({state:t,dispatch:e})=>!t.readOnly&&(e(t.update(Cu(t,((e,i)=>{let n=/^\s*/.exec(e.text)[0];if(!n)return;let r=Rt(n,t.tabSize),s=0,o=qa(t,Math.max(0,r-Ua(t)));for(;s!t.readOnly&&(e(t.update(Cu(t,((e,i)=>{i.push({from:e.from,insert:t.facet(Ma)})})),{userEvent:"input.indent"})),!0)},{key:"Mod-Alt-\\",run:({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=Object.create(null),n=new ja(t,{overrideIndentation:t=>{let e=i[t];return null==e?-1:e}}),r=Cu(t,((e,r,s)=>{let o=Va(n,e.from);if(null==o)return;/\S/.test(e.text)||(o=0);let a=/^\s*/.exec(e.text)[0],l=qa(t,o);(a!=l||s.from{if(t.state.readOnly)return!1;let{state:e}=t,i=e.changes(ku(e).map((({from:t,to:i})=>(t>0?t--:it.moveVertically(e,!0))).map(i);return t.dispatch({changes:i,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:t,dispatch:e})=>function(t,e){let i=!1,n=Mc(t.selection,(e=>{let n=Dl(t,e.head,-1)||Dl(t,e.head,1)||e.head>0&&Dl(t,e.head-1,1)||e.head{let{state:e}=t,i=e.doc.lineAt(e.selection.main.from),n=dc(t.state,i.from);return n.line?hc(t):!!n.block&&uc(t)}},{key:"Alt-A",run:cc}].concat([{key:"ArrowLeft",run:Ic,shift:ou,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:t=>Gc(t,!Dc(t)),shift:t=>lu(t,!Dc(t)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:t=>qc(t,(e=>nu(t,e,!Dc(t)))),shift:t=>ru(t,(e=>nu(t,e,!Dc(t)))),preventDefault:!0},{key:"ArrowRight",run:Nc,shift:au,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:t=>Gc(t,Dc(t)),shift:t=>lu(t,Dc(t)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:t=>qc(t,(e=>nu(t,e,Dc(t)))),shift:t=>ru(t,(e=>nu(t,e,Dc(t)))),preventDefault:!0},{key:"ArrowUp",run:Hc,shift:cu,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Ou,shift:gu},{mac:"Ctrl-ArrowUp",run:eu,shift:pu},{key:"ArrowDown",run:Kc,shift:uu,preventDefault:!0},{mac:"Cmd-ArrowDown",run:mu,shift:_u},{mac:"Ctrl-ArrowDown",run:iu,shift:fu},{key:"PageUp",run:eu,shift:pu},{key:"PageDown",run:iu,shift:fu},{key:"Home",run:t=>qc(t,(e=>nu(t,e,!1))),shift:t=>ru(t,(e=>nu(t,e,!1))),preventDefault:!0},{key:"Mod-Home",run:Ou,shift:gu},{key:"End",run:t=>qc(t,(e=>nu(t,e,!0))),shift:t=>ru(t,(e=>nu(t,e,!0))),preventDefault:!0},{key:"Mod-End",run:mu,shift:_u},{key:"Enter",run:Zu},{key:"Mod-a",run:({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:vu,shift:vu},{key:"Delete",run:yu},{key:"Mod-Backspace",mac:"Alt-Backspace",run:xu},{key:"Mod-Delete",mac:"Alt-Delete",run:t=>Qu(t,!0)},{mac:"Mod-Backspace",run:t=>bu(t,(e=>{let i=t.moveToLineBoundary(e,!1).head;return e.head>i?i:Math.max(0,e.head-1)}))},{mac:"Mod-Delete",run:t=>bu(t,(e=>{let i=t.moveToLineBoundary(e,!0).head;return e.headqc(t,(e=>X.cursor(t.lineBlockAt(e.head).from,1))),shift:t=>ru(t,(e=>X.cursor(t.lineBlockAt(e.head).from)))},{key:"Ctrl-e",run:t=>qc(t,(e=>X.cursor(t.lineBlockAt(e.head).to,-1))),shift:t=>ru(t,(e=>X.cursor(t.lineBlockAt(e.head).to)))},{key:"Ctrl-d",run:yu},{key:"Ctrl-h",run:vu},{key:"Ctrl-k",run:t=>bu(t,(e=>{let i=t.lineBlockAt(e.head).to;return e.head{if(e.readOnly)return!1;let n=e.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:t.of(["",""])},range:X.cursor(e.from)})));return i(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=t.changeByRange((e=>{if(!e.empty||0==e.from||e.from==t.doc.length)return{range:e};let i=e.from,n=t.doc.lineAt(i),r=i==n.from?i-1:p(n.text,i-n.from,!1)+n.from,s=i==n.to?i+1:p(n.text,i-n.from,!0)+n.from;return{changes:{from:r,to:s,insert:t.doc.slice(i,s).append(t.doc.slice(r,i))},range:X.cursor(s)}}));return!i.changes.empty&&(e(t.update(i,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:iu}].map((t=>({mac:t.key,run:t.run,shift:t.shift})))));class Yu{constructor(t,e,i,n,r,s,o,a,l,h=0,c){this.p=t,this.stack=e,this.state=i,this.reducePos=n,this.pos=r,this.score=s,this.buffer=o,this.bufferBase=a,this.curContext=l,this.lookAhead=h,this.parent=c}toString(){return`[${this.stack.filter(((t,e)=>e%3==0)).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,e,i=0){let n=t.parser.context;return new Yu(t,[],e,i,i,0,[],0,n?new Au(n,n.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,e){this.stack.push(this.state,e,this.bufferBase+this.buffer.length),this.state=t}reduce(t){var e;let i=t>>19,n=65535&t,{parser:r}=this.p,s=r.dynamicPrecedence(n);if(s&&(this.score+=s),0==i)return this.pushState(r.getGoto(this.state,n,!0),this.reducePos),n=2e3&&!(null===(e=this.p.parser.nodeSet.types[n])||void 0===e?void 0:e.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=l):this.p.lastBigReductionSizeo;)this.stack.pop();this.reduceContext(n,a)}storeNode(t,e,i,n=4,r=!1){if(0==t&&(!this.stack.length||this.stack[this.stack.length-1]0&&0==t.buffer[n-4]&&t.buffer[n-1]>-1){if(e==i)return;if(t.buffer[n-2]>=e)return void(t.buffer[n-2]=i)}}if(r&&this.pos!=i){let r=this.buffer.length;if(r>0&&0!=this.buffer[r-4])for(;r>0&&this.buffer[r-2]>i;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,n>4&&(n-=4);this.buffer[r]=t,this.buffer[r+1]=e,this.buffer[r+2]=i,this.buffer[r+3]=n}else this.buffer.push(t,e,i,n)}shift(t,e,i,n){if(131072&t)this.pushState(65535&t,this.pos);else if(262144&t)this.pos=n,this.shiftContext(e,i),e<=this.p.parser.maxNode&&this.buffer.push(e,i,n,4);else{let r=t,{parser:s}=this.p;(n>this.pos||e<=s.maxNode)&&(this.pos=n,s.stateFlag(r,1)||(this.reducePos=n)),this.pushState(r,i),this.shiftContext(e,i),e<=s.maxNode&&this.buffer.push(e,i,n,4)}}apply(t,e,i,n){65536&t?this.reduce(t):this.shift(t,e,i,n)}useNode(t,e){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=t)&&(this.p.reused.push(t),i++);let n=this.pos;this.reducePos=this.pos=n+t.length,this.pushState(e,n),this.buffer.push(i,n,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this,this.p.stream.reset(this.pos-t.length)))}split(){let t=this,e=t.buffer.length;for(;e>0&&t.buffer[e-2]>t.reducePos;)e-=4;let i=t.buffer.slice(e),n=t.bufferBase+e;for(;t&&n==t.bufferBase;)t=t.parent;return new Yu(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,n,this.curContext,this.lookAhead,t)}recoverByDelete(t,e){let i=t<=this.p.parser.maxNode;i&&this.storeNode(t,this.pos,e,4),this.storeNode(0,this.pos,e,i?8:4),this.pos=this.reducePos=e,this.score-=190}canShift(t){for(let e=new Wu(this);;){let i=this.p.parser.stateSlot(e.state,4)||this.p.parser.hasAction(e.state,t);if(0==i)return!1;if(!(65536&i))return!0;e.reduce(i)}}recoverByInsert(t){if(this.stack.length>=300)return[];let e=this.p.parser.nextStates(this.state);if(e.length>8||this.stack.length>=120){let i=[];for(let n,r=0;r1&e&&t==n))||i.push(e[t],n)}e=i}let i=[];for(let t=0;t>19,n=65535&e,r=this.stack.length-3*i;if(r<0||t.getGoto(this.stack[r],n,!1)<0){let t=this.findForcedReduction();if(null==t)return!1;e=t}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}findForcedReduction(){let{parser:t}=this.p,e=[],i=(n,r)=>{if(!e.includes(n))return e.push(n),t.allActions(n,(e=>{if(393216&e);else if(65536&e){let i=(e>>19)-r;if(i>1){let n=65535&e,r=this.stack.length-3*i;if(r>=0&&t.getGoto(this.stack[r],n,!1)>=0)return i<<19|65536|n}}else{let t=i(e,r+1);if(null!=t)return t}}))};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(3!=this.stack.length)return!1;let{parser:t}=this.p;return 65535==t.data[t.stateSlot(this.state,1)]&&!t.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(t){if(this.state!=t.state||this.stack.length!=t.stack.length)return!1;for(let e=0;ethis.lookAhead&&(this.emitLookAhead(),this.lookAhead=t)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class Au{constructor(t,e){this.tracker=t,this.context=e,this.hash=t.strict?t.hash(e):0}}class Wu{constructor(t){this.start=t,this.state=t.state,this.stack=t.stack,this.base=this.stack.length}reduce(t){let e=65535&t,i=t>>19;0==i?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=3*(i-1);let n=this.start.p.parser.getGoto(this.stack[this.base-3],e,!0);this.state=n}}class Ru{constructor(t,e,i){this.stack=t,this.pos=e,this.index=i,this.buffer=t.buffer,0==this.index&&this.maybeNext()}static create(t,e=t.bufferBase+t.buffer.length){return new Ru(t,e,e-t.bufferBase)}maybeNext(){let t=this.stack.parent;null!=t&&(this.index=this.stack.bufferBase-t.bufferBase,this.stack=t,this.buffer=t.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,0==this.index&&this.maybeNext()}fork(){return new Ru(this.stack,this.pos,this.index)}}function Eu(t,e=Uint16Array){if("string"!=typeof t)return t;let i=null;for(let n=0,r=0;n=92&&e--,e>=34&&e--;let r=e-32;if(r>=46&&(r-=46,i=!0),s+=r,i)break;s*=46}i?i[r++]=s:i=new e(s)}return i}class zu{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const Mu=new zu;class Uu{constructor(t,e){this.input=t,this.ranges=e,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Mu,this.rangeIndex=0,this.pos=this.chunkPos=e[0].from,this.range=e[0],this.end=e[e.length-1].to,this.readNext()}resolveOffset(t,e){let i=this.range,n=this.rangeIndex,r=this.pos+t;for(;ri.to:r>=i.to;){if(n==this.ranges.length-1)return null;let t=this.ranges[++n];r+=t.from-i.to,i=t}return r}clipPos(t){if(t>=this.range.from&&tt)return Math.max(t,e.from);return this.end}peek(t){let e,i,n=this.chunkOff+t;if(n>=0&&n=this.chunk2Pos&&en.to&&(this.chunk2=this.chunk2.slice(0,n.to-e)),i=this.chunk2.charCodeAt(0)}}return e>=this.token.lookAhead&&(this.token.lookAhead=e+1),i}acceptToken(t,e=0){let i=e?this.resolveOffset(e,-1):this.pos;if(null==i||i=this.chunk2Pos&&this.posthis.range.to?t.slice(0,this.range.to-this.pos):t,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(t=1){for(this.chunkOff+=t;this.pos+t>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();t-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=t,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(t,e){if(e?(this.token=e,e.start=t,e.lookAhead=t+1,e.value=e.extended=-1):this.token=Mu,this.pos!=t){if(this.pos=t,t==this.end)return this.setDone(),this;for(;t=this.range.to;)this.range=this.ranges[++this.rangeIndex];t>=this.chunkPos&&t=this.chunkPos&&e<=this.chunkPos+this.chunk.length)return this.chunk.slice(t-this.chunkPos,e-this.chunkPos);if(t>=this.chunk2Pos&&e<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(t-this.chunk2Pos,e-this.chunk2Pos);if(t>=this.range.from&&e<=this.range.to)return this.input.read(t,e);let i="";for(let n of this.ranges){if(n.from>=e)break;n.to>t&&(i+=this.input.read(Math.max(n.from,t),Math.min(n.to,e)))}return i}}class qu{constructor(t,e){this.data=t,this.id=e}token(t,e){let{parser:i}=e.p;Du(this.data,t,e,this.id,i.data,i.tokenPrecTable)}}qu.prototype.contextual=qu.prototype.fallback=qu.prototype.extend=!1;class Vu{constructor(t,e,i){this.precTable=e,this.elseToken=i,this.data="string"==typeof t?Eu(t):t}token(t,e){let i=t.pos,n=0;for(;;){let i=t.next<0,r=t.resolveOffset(1,1);if(Du(this.data,t,e,0,this.data,this.precTable),t.token.value>-1)break;if(null==this.elseToken)return;if(i||n++,null==r)break;t.reset(r,t.token)}n&&(t.reset(i,t.token),t.acceptToken(this.elseToken,n))}}Vu.prototype.contextual=qu.prototype.fallback=qu.prototype.extend=!1;class ju{constructor(t,e={}){this.token=t,this.contextual=!!e.contextual,this.fallback=!!e.fallback,this.extend=!!e.extend}}function Du(t,e,i,n,r,s){let o=0,a=1<0){let i=t[n];if(l.allows(i)&&(-1==e.token.value||e.token.value==i||Nu(i,e.token.value,r,s))){e.acceptToken(i);break}}let n=e.next,h=0,c=t[o+2];if(!(e.next<0&&c>h&&65535==t[i+3*c-3])){for(;h>1,s=i+r+(r<<1),a=t[s],l=t[s+1]||65536;if(n=l)){o=t[s+2],e.advance();continue t}h=r+1}}break}o=t[i+3*c-1]}}function Iu(t,e,i){for(let n,r=e;65535!=(n=t[r]);r++)if(n==i)return r-e;return-1}function Nu(t,e,i,n){let r=Iu(i,n,e);return r<0||Iu(i,n,t)e)&&!n.type.isError)return i<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(t.length,Math.max(n.from+1,e+25));if(i<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return i<0?0:t.length}}class Fu{constructor(t,e){this.fragments=t,this.nodeSet=e,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){for(this.safeFrom=t.openStart?Lu(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?Lu(t.tree,t.to+t.offset,-1)-t.offset:t.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(t.tree),this.start.push(-t.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(t){if(tt)return this.nextStart=s,null;if(r instanceof po){if(s==t){if(s=Math.max(this.safeFrom,t)&&(this.trees.push(r),this.start.push(s),this.index.push(0))}else this.index[e]++,this.nextStart=s+r.length}}}class Hu{constructor(t,e){this.stream=e,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=t.tokenizers.map((t=>new zu))}getActions(t){let e=0,i=null,{parser:n}=t.p,{tokenizers:r}=n,s=n.stateSlot(t.state,3),o=t.curContext?t.curContext.hash:0,a=0;for(let n=0;nh.end+25&&(a=Math.max(h.lookAhead,a)),0!=h.value)){let n=e;if(h.extended>-1&&(e=this.addActions(t,h.extended,h.end,e)),e=this.addActions(t,h.value,h.end,e),!l.extend&&(i=h,e>n))break}}for(;this.actions.length>e;)this.actions.pop();return a&&t.setLookAhead(a),i||t.pos!=this.stream.end||(i=new zu,i.value=t.p.parser.eofTerm,i.start=i.end=t.pos,e=this.addActions(t,i.value,i.end,e)),this.mainToken=i,this.actions}getMainToken(t){if(this.mainToken)return this.mainToken;let e=new zu,{pos:i,p:n}=t;return e.start=i,e.end=Math.min(i+1,n.stream.end),e.value=i==n.stream.end?n.parser.eofTerm:0,e}updateCachedToken(t,e,i){let n=this.stream.clipPos(i.pos);if(e.token(this.stream.reset(n,t),i),t.value>-1){let{parser:e}=i.p;for(let n=0;n=0&&i.p.parser.dialect.allows(r>>1)){1&r?t.extended=r>>1:t.value=r>>1;break}}}else t.value=0,t.end=this.stream.clipPos(n+1)}putAction(t,e,i,n){for(let e=0;e4*t.bufferLength?new Fu(i,t.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let t,e,i=this.stacks,n=this.minStackPos,r=this.stacks=[];if(this.bigReductionCount>300&&1==i.length){let[t]=i;for(;t.forceReduce()&&t.stack.length&&t.stack[t.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let s=0;sn)r.push(o);else{if(this.advanceStack(o,r,i))continue;{t||(t=[],e=[]),t.push(o);let i=this.tokens.getMainToken(o);e.push(i.value,i.end)}}break}}if(!r.length){let e=t&&function(t){let e=null;for(let i of t){let t=i.p.stoppedAt;(i.pos==i.p.stream.end||null!=t&&i.pos>t)&&i.p.parser.stateFlag(i.state,2)&&(!e||e.scorethis.stoppedAt?t[0]:this.runRecovery(t,e,r);if(i)return Gu&&console.log("Force-finish "+this.stackID(i)),this.stackToTree(i.forceAll())}if(this.recovering){let t=1==this.recovering?1:3*this.recovering;if(r.length>t)for(r.sort(((t,e)=>e.score-t.score));r.length>t;)r.pop();r.some((t=>t.reducePos>n))&&this.recovering--}else if(r.length>1){t:for(let t=0;t500&&n.buffer.length>500){if(!((e.score-n.score||e.buffer.length-n.buffer.length)>0)){r.splice(t--,1);continue t}r.splice(i--,1)}}}r.length>12&&r.splice(12,r.length-12)}this.minStackPos=r[0].pos;for(let t=1;t ":"";if(null!=this.stoppedAt&&n>this.stoppedAt)return t.forceReduce()?t:null;if(this.fragments){let e=t.curContext&&t.curContext.tracker.strict,i=e?t.curContext.hash:0;for(let o=this.fragments.nodeAt(n);o;){let n=this.parser.nodeSet.types[o.type.id]==o.type?r.getGoto(t.state,o.type.id):-1;if(n>-1&&o.length&&(!e||(o.prop(ro.contextHash)||0)==i))return t.useNode(o,n),Gu&&console.log(s+this.stackID(t)+` (via reuse of ${r.getName(o.type.id)})`),!0;if(!(o instanceof po)||0==o.children.length||o.positions[0]>0)break;let a=o.children[0];if(!(a instanceof po&&0==o.positions[0]))break;o=a}}let o=r.stateSlot(t.state,4);if(o>0)return t.reduce(o),Gu&&console.log(s+this.stackID(t)+` (via always-reduce ${r.getName(65535&o)})`),!0;if(t.stack.length>=8400)for(;t.stack.length>6e3&&t.forceReduce(););let a=this.tokens.getActions(t);for(let o=0;on?e.push(d):i.push(d)}return!1}advanceFully(t,e){let i=t.pos;for(;;){if(!this.advanceStack(t,null,null))return!1;if(t.pos>i)return Ju(t,e),!0}}runRecovery(t,e,i){let n=null,r=!1;for(let s=0;s ":"";if(o.deadEnd){if(r)continue;if(r=!0,o.restart(),Gu&&console.log(h+this.stackID(o)+" (restarted)"),this.advanceFully(o,i))continue}let c=o.split(),u=h;for(let t=0;c.forceReduce()&&t<10&&(Gu&&console.log(u+this.stackID(c)+" (via force-reduce)"),!this.advanceFully(c,i));t++)Gu&&(u=this.stackID(c)+" -> ");for(let t of o.recoverByInsert(a))Gu&&console.log(h+this.stackID(t)+" (via recover-insert)"),this.advanceFully(t,i);this.stream.end>o.pos?(l==o.pos&&(l++,a=0),o.recoverByDelete(a,l),Gu&&console.log(h+this.stackID(o)+` (via recover-delete ${this.parser.getName(a)})`),Ju(o,i)):(!n||n.scoret;class id{constructor(t){this.start=t.start,this.shift=t.shift||ed,this.reduce=t.reduce||ed,this.reuse=t.reuse||ed,this.hash=t.hash||(()=>0),this.strict=!1!==t.strict}}class nd extends Yo{constructor(t){if(super(),this.wrappers=[],14!=t.version)throw new RangeError(`Parser version (${t.version}) doesn't match runtime version (14)`);let e=t.nodeNames.split(" ");this.minRepeatTerm=e.length;for(let i=0;it.topRules[e][1])),n=[];for(let t=0;t=0)r(n,t,e[i++]);else{let s=e[i+-n];for(let o=-n;o>0;o--)r(e[i++],t,s);i++}}}this.nodeSet=new lo(e.map(((e,r)=>ao.define({name:r>=this.minRepeatTerm?void 0:e,id:r,props:n[r],top:i.indexOf(r)>-1,error:0==r,skipped:t.skippedNodes&&t.skippedNodes.indexOf(r)>-1})))),t.propSources&&(this.nodeSet=this.nodeSet.extend(...t.propSources)),this.strict=!1,this.bufferLength=eo;let s=Eu(t.tokenData);this.context=t.context,this.specializerSpecs=t.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let t=0;t"number"==typeof t?new qu(s,t):t)),this.topRules=t.topRules,this.dialects=t.dialects||{},this.dynamicPrecedences=t.dynamicPrecedences||null,this.tokenPrecTable=t.tokenPrec,this.termNames=t.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(t,e,i){let n=new Ku(this,t,e,i);for(let r of this.wrappers)n=r(n,t,e,i);return n}getGoto(t,e,i=!1){let n=this.goto;if(e>=n[0])return-1;for(let r=n[e+1];;){let e=n[r++],s=1&e,o=n[r++];if(s&&i)return o;for(let i=r+(e>>1);r0}validAction(t,e){return!!this.allActions(t,(t=>t==e||null))}allActions(t,e){let i=this.stateSlot(t,4),n=i?e(i):void 0;for(let i=this.stateSlot(t,1);null==n;i+=3){if(65535==this.data[i]){if(1!=this.data[i+1])break;i=rd(this.data,i+2)}n=e(rd(this.data,i+1))}return n}nextStates(t){let e=[];for(let i=this.stateSlot(t,1);;i+=3){if(65535==this.data[i]){if(1!=this.data[i+1])break;i=rd(this.data,i+2)}if(!(1&this.data[i+2])){let t=this.data[i+1];e.some(((e,i)=>1&i&&e==t))||e.push(this.data[i],t)}}return e}configure(t){let e=Object.assign(Object.create(nd.prototype),this);if(t.props&&(e.nodeSet=this.nodeSet.extend(...t.props)),t.top){let i=this.topRules[t.top];if(!i)throw new RangeError(`Invalid top rule name ${t.top}`);e.top=i}return t.tokenizers&&(e.tokenizers=this.tokenizers.map((e=>{let i=t.tokenizers.find((t=>t.from==e));return i?i.to:e}))),t.specializers&&(e.specializers=this.specializers.slice(),e.specializerSpecs=this.specializerSpecs.map(((i,n)=>{let r=t.specializers.find((t=>t.from==i.external));if(!r)return i;let s=Object.assign(Object.assign({},i),{external:r.to});return e.specializers[n]=sd(s),s}))),t.contextTracker&&(e.context=t.contextTracker),t.dialect&&(e.dialect=this.parseDialect(t.dialect)),null!=t.strict&&(e.strict=t.strict),t.wrap&&(e.wrappers=e.wrappers.concat(t.wrap)),null!=t.bufferLength&&(e.bufferLength=t.bufferLength),e}hasWrappers(){return this.wrappers.length>0}getName(t){return this.termNames?this.termNames[t]:String(t<=this.maxNode&&this.nodeSet.types[t].name||t)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(t){let e=this.dynamicPrecedences;return null==e?0:e[t]||0}parseDialect(t){let e=Object.keys(this.dialects),i=e.map((()=>!1));if(t)for(let n of t.split(" ")){let t=e.indexOf(n);t>=0&&(i[t]=!0)}let n=null;for(let t=0;tt.external(i,n)<<1|e}return t.get}const od={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},ad={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},ld={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function hd(t){return 9==t||10==t||13==t||32==t}let cd=null,ud=null,dd=0;function pd(t,e){let i=t.pos+e;if(dd==i&&ud==t)return cd;let n=t.peek(e);for(;hd(n);)n=t.peek(++e);let r="";for(;45==(s=n)||46==s||58==s||s>=65&&s<=90||95==s||s>=97&&s<=122||s>=161;)r+=String.fromCharCode(n),n=t.peek(++e);var s;return ud=t,dd=i,cd=r?r.toLowerCase():n==fd||n==Od?void 0:null}const fd=63,Od=33;function md(t,e){this.name=t,this.parent=e,this.hash=e?e.hash:0;for(let e=0;egd.indexOf(e)>-1?new md(pd(n,1)||"",t):t,reduce:(t,e)=>20==e&&t?t.parent:t,reuse(t,e,i,n){let r=e.type.id;return 6==r||36==r?new md(pd(n,1)||"",t):t},hash:t=>t?t.hash:0,strict:!1}),bd=new ju(((t,e)=>{if(60!=t.next)return void(t.next<0&&e.context&&t.acceptToken(57));t.advance();let i=47==t.next;i&&t.advance();let n=pd(t,0);if(void 0===n)return;if(!n)return t.acceptToken(i?14:6);let r=e.context?e.context.name:null;if(i){if(n==r)return t.acceptToken(11);if(r&&ad[r])return t.acceptToken(57,-2);if(e.dialectEnabled(0))return t.acceptToken(12);for(let t=e.context;t;t=t.parent)if(t.name==n)return;t.acceptToken(13)}else{if("script"==n)return t.acceptToken(7);if("style"==n)return t.acceptToken(8);if("textarea"==n)return t.acceptToken(9);if(od.hasOwnProperty(n))return t.acceptToken(10);r&&ld[r]&&ld[r][n]?t.acceptToken(57,-1):t.acceptToken(6)}}),{contextual:!0}),wd=new ju((t=>{for(let e=0,i=0;;i++){if(t.next<0){i&&t.acceptToken(58);break}if(45==t.next)e++;else{if(62==t.next&&e>=2){i>=3&&t.acceptToken(58,-2);break}e=0}t.advance()}})),Sd=new ju(((t,e)=>{if(47==t.next&&62==t.peek(1)){let i=e.dialectEnabled(1)||function(t){for(;t;t=t.parent)if("svg"==t.name||"math"==t.name)return!0;return!1}(e.context);t.acceptToken(i?5:4,2)}else 62==t.next&&t.acceptToken(4,1)}));function vd(t,e,i){let n=2+t.length;return new ju((r=>{for(let s=0,o=0,a=0;;a++){if(r.next<0){a&&r.acceptToken(e);break}if(0==s&&60==r.next||1==s&&47==r.next||s>=2&&so?r.acceptToken(e,-o):r.acceptToken(i,-(o-2));break}if((10==r.next||13==r.next)&&a){r.acceptToken(e,1);break}s=o=0}else o++;r.advance()}}))}const yd=vd("script",54,1),Qd=vd("style",55,2),xd=vd("textarea",56,3),kd=Ko({"Text RawText":ba.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":ba.angleBracket,TagName:ba.tagName,"MismatchedCloseTag/TagName":[ba.tagName,ba.invalid],AttributeName:ba.attributeName,"AttributeValue UnquotedAttributeValue":ba.attributeValue,Is:ba.definitionOperator,"EntityReference CharacterReference":ba.character,Comment:ba.blockComment,ProcessingInst:ba.processingInstruction,DoctypeDecl:ba.documentMeta}),$d=nd.deserialize({version:14,states:",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%WQ&rO,59fO%`Q&rO,59iO%hQ&rO,59lO%sQ&rO,59nOOOa'#D^'#D^O%{OaO'#CxO&WOaO,59[OOOb'#D_'#D_O&`ObO'#C{O&kObO,59[OOOd'#D`'#D`O&sOdO'#DOO'OOdO,59[OOO`'#Da'#DaO'WO!rO,59[O'_Q#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'dO$fO,59oOOO`,59o,59oO'lQ#|O,59qO'qQ#|O,59rOOO`-E7W-E7WO'vQ&rO'#CsOOQW'#DZ'#DZO(UQ&rO1G.wOOOa1G.w1G.wO(^Q&rO1G/QOOOb1G/Q1G/QO(fQ&rO1G/TOOOd1G/T1G/TO(nQ&rO1G/WOOO`1G/W1G/WOOO`1G/Y1G/YO(yQ&rO1G/YOOOa-E7[-E7[O)RQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)WQ#tO'#C|OOOd-E7^-E7^O)]Q#tO'#DPOOO`-E7_-E7_O)bQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O)gQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rOOO`7+$t7+$tO)rQ#|O,59eO)wQ#|O,59hO)|Q#|O,59kOOO`1G/X1G/XO*RO7[O'#CvO*dOMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O*uO7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+WOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z",stateData:"+s~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OhyO~OS!OOhyO~OS!QOhyO~OS!SOT!TOhyO~OS!TOhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXhgXTgX~OS!fOhyO~OS!gOhyO~OS!hOhyO~OS!iOT!jOhyO~OS!jOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~",goto:"%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{}!P!R!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ}bQ!PcQ!RdQ!UeZ!e{}!P!R!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"\u26a0 StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:67,context:_d,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,21,30,33,36,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,29,32,35,37,"OpenTag"],["group",-9,14,17,18,19,20,39,40,41,42,"Entity",16,"Entity TextContent",-3,28,31,34,"TextContent Entity"]],propSources:[kd],skippedNodes:[0],repeatNodeCount:9,tokenData:"!]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zbkWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOa!R!R7tP;=`<%l7S!Z8OYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{ihSkWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbhSkWa!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VP<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXhSa!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TakWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOb!R!RAwP;=`<%lAY!ZBRYkWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbhSkWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbhSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXhSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!bx`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYlhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_khS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_X`P!a`!cp!eQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZhSfQ`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!a`!cpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!a`!cp!dPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!a`!cpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!a`!cpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!a`!cpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!a`!cpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!a`!cpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!a`!cpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!a`!cpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!cpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO{PP!-nP;=`<%l!-Sq!-xS!cp{POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!a`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!a`{POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!a`!cp{POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!a`!cpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!a`!cpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!a`!cpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!a`!cpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!a`!cpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!a`!cpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!cpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOxPP!7TP;=`<%l!6Vq!7]V!cpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!a`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!a`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!{let a=t.type.id;if(28==a)return Td(t,e,i);if(31==a)return Td(t,e,n);if(34==a)return Td(t,e,r);if(20==a&&s.length){let i,n=t.node,r=n.firstChild,o=r&&Zd(r,e);if(o)for(let t of s)if(t.tag==o&&(!t.attrs||t.attrs(i||(i=Pd(n,e))))){let e=n.lastChild,i=37==e.type.id?e.from:n.to;if(i>r.to)return{parser:t.parser,overlay:[{from:r.to,to:i}]}}}if(o&&23==a){let i,n=t.node;if(i=n.firstChild){let t=o[e.read(i.from,i.to)];if(t)for(let i of t){if(i.tagName&&i.tagName!=Zd(n.parent,e))continue;let t=n.lastChild;if(26==t.type.id){let e=t.from+1,n=t.lastChild,r=t.to-(n&&n.isError?0:1);if(r>e)return{parser:i.parser,overlay:[{from:e,to:r}]}}else if(27==t.type.id)return{parser:i.parser,overlay:[{from:t.from,to:t.to}]}}}}return null},(t,e,i,n)=>new Mo(t,a,e,i,n);var a}const Xd=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288];function Yd(t){return t>=65&&t<=90||t>=97&&t<=122||t>=161}const Ad=new ju(((t,e)=>{for(let n=!1,r=0,s=0;;s++){let{next:o}=t;if(Yd(o)||45==o||95==o||n&&(i=o)>=48&&i<=57)!n&&(45!=o||s>0)&&(n=!0),r===s&&45==o&&r++,t.advance();else{if(92!=o||10==t.peek(1)){n&&t.acceptToken(40==o?97:2==r&&e.canShift(2)?2:98);break}t.advance(),t.next>-1&&t.advance(),n=!0}}var i})),Wd=new ju((t=>{if(Xd.includes(t.peek(-1))){let{next:e}=t;(Yd(e)||95==e||35==e||46==e||91==e||58==e||45==e||38==e)&&t.acceptToken(96)}})),Rd=new ju((t=>{if(!Xd.includes(t.peek(-1))){let{next:e}=t;if(37==e&&(t.advance(),t.acceptToken(1)),Yd(e)){do{t.advance()}while(Yd(t.next));t.acceptToken(1)}}})),Ed=Ko({"AtKeyword import charset namespace keyframes media supports":ba.definitionKeyword,"from to selector":ba.keyword,NamespaceName:ba.namespace,KeyframeName:ba.labelName,KeyframeRangeName:ba.operatorKeyword,TagName:ba.tagName,ClassName:ba.className,PseudoClassName:ba.constant(ba.className),IdName:ba.labelName,"FeatureName PropertyName":ba.propertyName,AttributeName:ba.attributeName,NumberLiteral:ba.number,KeywordQuery:ba.keyword,UnaryQueryOp:ba.operatorKeyword,"CallTag ValueName":ba.atom,VariableName:ba.variableName,Callee:ba.operatorKeyword,Unit:ba.unit,"UniversalSelector NestingSelector":ba.definitionOperator,MatchOp:ba.compareOperator,"ChildOp SiblingOp, LogicOp":ba.logicOperator,BinOp:ba.arithmeticOperator,Important:ba.modifier,Comment:ba.blockComment,ColorLiteral:ba.color,"ParenthesizedContent StringLiteral":ba.string,":":ba.punctuation,"PseudoOp #":ba.derefOperator,"; ,":ba.separator,"( )":ba.paren,"[ ]":ba.squareBracket,"{ }":ba.brace}),zd={__proto__:null,lang:32,"nth-child":32,"nth-last-child":32,"nth-of-type":32,"nth-last-of-type":32,dir:32,"host-context":32,url:60,"url-prefix":60,domain:60,regexp:60,selector:134},Md={__proto__:null,"@import":114,"@media":138,"@charset":142,"@namespace":146,"@keyframes":152,"@supports":164},Ud={__proto__:null,not:128,only:128},qd=nd.deserialize({version:14,states:"9bQYQ[OOO#_Q[OOP#fOWOOOOQP'#Cd'#CdOOQP'#Cc'#CcO#kQ[O'#CfO$_QXO'#CaO$fQ[O'#ChO$qQ[O'#DPO$vQ[O'#DTOOQP'#Ej'#EjO${QdO'#DeO%gQ[O'#DrO${QdO'#DtO%xQ[O'#DvO&TQ[O'#DyO&]Q[O'#EPO&kQ[O'#EROOQS'#Ei'#EiOOQS'#EU'#EUQYQ[OOO&rQXO'#CdO'gQWO'#DaO'lQWO'#EpO'wQ[O'#EpQOQWOOP(RO#tO'#C_POOO)C@X)C@XOOQP'#Cg'#CgOOQP,59Q,59QO#kQ[O,59QO(^Q[O'#EXO(xQWO,58{O)QQ[O,59SO$qQ[O,59kO$vQ[O,59oO(^Q[O,59sO(^Q[O,59uO(^Q[O,59vO)]Q[O'#D`OOQS,58{,58{OOQP'#Ck'#CkOOQO'#C}'#C}OOQP,59S,59SO)dQWO,59SO)iQWO,59SOOQP'#DR'#DROOQP,59k,59kOOQO'#DV'#DVO)nQ`O,59oOOQS'#Cp'#CpO${QdO'#CqO)vQvO'#CsO+TQtO,5:POOQO'#Cx'#CxO)iQWO'#CwO+iQWO'#CyOOQS'#Em'#EmOOQO'#Dh'#DhO+nQ[O'#DoO+|QWO'#EqO&]Q[O'#DmO,[QWO'#DpOOQO'#Er'#ErO({QWO,5:^O,aQpO,5:`OOQS'#Dx'#DxO,iQWO,5:bO,nQ[O,5:bOOQO'#D{'#D{O,vQWO,5:eO,{QWO,5:kO-TQWO,5:mOOQS-E8S-E8SO${QdO,59{O-]Q[O'#EZO-jQWO,5;[O-jQWO,5;[POOO'#ET'#ETP-uO#tO,58yPOOO,58y,58yOOQP1G.l1G.lO.lQXO,5:sOOQO-E8V-E8VOOQS1G.g1G.gOOQP1G.n1G.nO)dQWO1G.nO)iQWO1G.nOOQP1G/V1G/VO.yQ`O1G/ZO/dQXO1G/_O/zQXO1G/aO0bQXO1G/bO0xQWO,59zO0}Q[O'#DOO1UQdO'#CoOOQP1G/Z1G/ZO${QdO1G/ZO1]QpO,59]OOQS,59_,59_O${QdO,59aO1eQWO1G/kOOQS,59c,59cO1jQ!bO,59eO1rQWO'#DhO1}QWO,5:TO2SQWO,5:ZO&]Q[O,5:VO&]Q[O'#E[O2[QWO,5;]O2gQWO,5:XO(^Q[O,5:[OOQS1G/x1G/xOOQS1G/z1G/zOOQS1G/|1G/|O2xQWO1G/|O2}QdO'#D|OOQS1G0P1G0POOQS1G0V1G0VOOQS1G0X1G0XO3YQtO1G/gOOQO,5:u,5:uO3pQ[O,5:uOOQO-E8X-E8XO3}QWO1G0vPOOO-E8R-E8RPOOO1G.e1G.eOOQP7+$Y7+$YOOQP7+$u7+$uO${QdO7+$uOOQS1G/f1G/fO4YQXO'#EoO4aQWO,59jO4fQtO'#EVO5ZQdO'#ElO5eQWO,59ZO5jQpO7+$uOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%V7+%VO5rQWO1G/PO${QdO1G/oOOQO1G/u1G/uOOQO1G/q1G/qO5wQWO,5:vOOQO-E8Y-E8YO6VQXO1G/vOOQS7+%h7+%hO6^QYO'#CsOOQO'#EO'#EOO6iQ`O'#D}OOQO'#D}'#D}O6tQWO'#E]O6|QdO,5:hOOQS,5:h,5:hO7XQtO'#EYO${QdO'#EYO8VQdO7+%ROOQO7+%R7+%ROOQO1G0a1G0aO8jQpO<T![;'S%^;'S;=`%o<%lO%^l;TUo`Oy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^l;nYo`#b[Oy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^l[[o`#b[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^n?VSp^Oy%^z;'S%^;'S;=`%o<%lO%^l?hWjWOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^n@VU#_QOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjWOy%^z{@}{;'S%^;'S;=`%o<%lO%^~AUSo`#X~Oy%^z;'S%^;'S;=`%o<%lO%^lAg[#b[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^bBbU]QOy%^z![%^![!]Bt!];'S%^;'S;=`%o<%lO%^bB{S^Qo`Oy%^z;'S%^;'S;=`%o<%lO%^nC^S!W^Oy%^z;'S%^;'S;=`%o<%lO%^dCoSzSOy%^z;'S%^;'S;=`%o<%lO%^bDQU|QOy%^z!`%^!`!aDd!a;'S%^;'S;=`%o<%lO%^bDkS|Qo`Oy%^z;'S%^;'S;=`%o<%lO%^bDzWOy%^z!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bEk[!YQo`Oy%^z}%^}!OEd!O!Q%^!Q![Ed![!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bFfSxQOy%^z;'S%^;'S;=`%o<%lO%^lFwSv[Oy%^z;'S%^;'S;=`%o<%lO%^bGWUOy%^z#b%^#b#cGj#c;'S%^;'S;=`%o<%lO%^bGoUo`Oy%^z#W%^#W#XHR#X;'S%^;'S;=`%o<%lO%^bHYS!`Qo`Oy%^z;'S%^;'S;=`%o<%lO%^bHiUOy%^z#f%^#f#gHR#g;'S%^;'S;=`%o<%lO%^fIQS!RUOy%^z;'S%^;'S;=`%o<%lO%^nIcS!Q^Oy%^z;'S%^;'S;=`%o<%lO%^fItU!PQOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^`JZP;=`<%l$}",tokenizers:[Wd,Rd,Ad,1,2,3,4,new Vu("m~RRYZ[z{a~~g~aO#Z~~dP!P!Qg~lO#[~~",28,102)],topRules:{StyleSheet:[0,4],Styles:[1,84]},specialized:[{term:97,get:t=>zd[t]||-1},{term:56,get:t=>Md[t]||-1},{term:98,get:t=>Ud[t]||-1}],tokenPrec:1169});let Vd=null;function jd(){if(!Vd&&"object"==typeof document&&document.body){let{style:t}=document.body,e=[],i=new Set;for(let n in t)"cssText"!=n&&"cssFloat"!=n&&"string"==typeof t[n]&&(/[A-Z]/.test(n)&&(n=n.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase()))),i.has(n)||(e.push(n),i.add(n)));Vd=e.sort().map((t=>({type:"property",label:t})))}return Vd||[]}const Dd=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map((t=>({type:"class",label:t}))),Id=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map((t=>({type:"keyword",label:t}))).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map((t=>({type:"constant",label:t})))),Nd=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map((t=>({type:"type",label:t}))),Gd=/^(\w[\w-]*|-\w[\w-]*|)$/,Bd=/^-(-[\w-]*)?$/,Ld=new Co,Fd=["Declaration"];function Hd(t){for(let e=t;;){if(e.type.isTop)return e;if(!(e=e.parent))return t}}function Kd(t,e,i){if(e.to-e.from>4096){let n=Ld.get(e);if(n)return n;let r=[],s=new Set,o=e.cursor(uo.IncludeAnonymous);if(o.firstChild())do{for(let e of Kd(t,o.node,i))s.has(e.label)||(s.add(e.label),r.push(e))}while(o.nextSibling());return Ld.set(e,r),r}{let n=[],r=new Set;return e.cursor().iterate((e=>{var s;if(i(e)&&e.matchContext(Fd)&&":"==(null===(s=e.node.nextSibling)||void 0===s?void 0:s.name)){let i=t.sliceString(e.from,e.to);r.has(i)||(r.add(i),n.push({label:i,type:"variable"}))}})),n}}const Jd=t=>e=>{let{state:i,pos:n}=e,r=$a(i).resolveInner(n,-1),s=r.type.isError&&r.from==r.to-1&&"-"==i.doc.sliceString(r.from,r.to);if("PropertyName"==r.name||(s||"TagName"==r.name)&&/^(Block|Styles)$/.test(r.resolve(r.to).name))return{from:r.from,options:jd(),validFor:Gd};if("ValueName"==r.name)return{from:r.from,options:Id,validFor:Gd};if("PseudoClassName"==r.name)return{from:r.from,options:Dd,validFor:Gd};if(t(r)||(e.explicit||s)&&function(t,e){var i;if(("("==t.name||t.type.isError)&&(t=t.parent||t),"ArgList"!=t.name)return!1;let n=null===(i=t.parent)||void 0===i?void 0:i.firstChild;return"Callee"==(null==n?void 0:n.name)&&"var"==e.sliceString(n.from,n.to)}(r,i.doc))return{from:t(r)||s?r.from:n,options:Kd(i.doc,Hd(r),t),validFor:Bd};if("TagName"==r.name){for(let{parent:t}=r;t;t=t.parent)if("Block"==t.name)return{from:r.from,options:jd(),validFor:Gd};return{from:r.from,options:Nd,validFor:Gd}}if(!e.explicit)return null;let o=r.resolve(n),a=o.childBefore(n);return a&&":"==a.name&&"PseudoClassSelector"==o.name?{from:n,options:Dd,validFor:Gd}:a&&":"==a.name&&"Declaration"==o.name||"ArgList"==o.name?{from:n,options:Id,validFor:Gd}:"Block"==o.name||"Styles"==o.name?{from:n,options:jd(),validFor:Gd}:null},tp=Jd((t=>"VariableName"==t.name)),ep=ka.define({name:"css",parser:qd.configure({props:[Da.add({Declaration:Ka()}),tl.add({"Block KeyframeList":el})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}}),ip=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],np=new id({start:!1,shift:(t,e)=>3==e||4==e||311==e?t:312==e,strict:!1}),rp=new ju(((t,e)=>{let{next:i}=t;(125==i||-1==i||e.context)&&t.acceptToken(309)}),{contextual:!0,fallback:!0}),sp=new ju(((t,e)=>{let i,{next:n}=t;ip.indexOf(n)>-1||(47!=n||47!=(i=t.peek(1))&&42!=i)&&(125==n||59==n||-1==n||e.context||t.acceptToken(308))}),{contextual:!0}),op=new ju(((t,e)=>{let{next:i}=t;if((43==i||45==i)&&(t.advance(),i==t.next)){t.advance();let i=!e.context&&e.canShift(1);t.acceptToken(i?1:2)}}),{contextual:!0}),ap=Ko({"get set async static":ba.modifier,"for while do if else switch try catch finally return throw break continue default case":ba.controlKeyword,"in of await yield void typeof delete instanceof":ba.operatorKeyword,"let var const using function class extends":ba.definitionKeyword,"import export from":ba.moduleKeyword,"with debugger as new":ba.keyword,TemplateString:ba.special(ba.string),super:ba.atom,BooleanLiteral:ba.bool,this:ba.self,null:ba.null,Star:ba.modifier,VariableName:ba.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":ba.function(ba.variableName),VariableDefinition:ba.definition(ba.variableName),Label:ba.labelName,PropertyName:ba.propertyName,PrivatePropertyName:ba.special(ba.propertyName),"CallExpression/MemberExpression/PropertyName":ba.function(ba.propertyName),"FunctionDeclaration/VariableDefinition":ba.function(ba.definition(ba.variableName)),"ClassDeclaration/VariableDefinition":ba.definition(ba.className),PropertyDefinition:ba.definition(ba.propertyName),PrivatePropertyDefinition:ba.definition(ba.special(ba.propertyName)),UpdateOp:ba.updateOperator,"LineComment Hashbang":ba.lineComment,BlockComment:ba.blockComment,Number:ba.number,String:ba.string,Escape:ba.escape,ArithOp:ba.arithmeticOperator,LogicOp:ba.logicOperator,BitOp:ba.bitwiseOperator,CompareOp:ba.compareOperator,RegExp:ba.regexp,Equals:ba.definitionOperator,Arrow:ba.function(ba.punctuation),": Spread":ba.punctuation,"( )":ba.paren,"[ ]":ba.squareBracket,"{ }":ba.brace,"InterpolationStart InterpolationEnd":ba.special(ba.brace),".":ba.derefOperator,", ;":ba.separator,"@":ba.meta,TypeName:ba.typeName,TypeDefinition:ba.definition(ba.typeName),"type enum interface implements namespace module declare":ba.definitionKeyword,"abstract global Privacy readonly override":ba.modifier,"is keyof unique infer":ba.operatorKeyword,JSXAttributeValue:ba.attributeValue,JSXText:ba.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":ba.angleBracket,"JSXIdentifier JSXNameSpacedName":ba.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":ba.attributeName,"JSXBuiltin/JSXIdentifier":ba.standard(ba.tagName)}),lp={__proto__:null,export:16,as:21,from:29,default:32,async:37,function:38,extends:48,this:52,true:60,false:60,null:72,void:76,typeof:80,super:98,new:132,delete:148,yield:157,await:161,class:166,public:223,private:223,protected:223,readonly:225,instanceof:244,satisfies:247,in:248,const:250,import:282,keyof:337,unique:341,infer:347,is:383,abstract:403,implements:405,type:407,let:410,var:412,using:415,interface:421,enum:425,namespace:431,module:433,declare:437,global:441,for:460,of:469,while:472,with:476,do:480,if:484,else:486,switch:490,case:496,try:502,catch:506,finally:510,return:514,throw:518,break:522,continue:526,debugger:530},hp={__proto__:null,async:119,get:121,set:123,declare:183,public:185,private:185,protected:185,static:187,abstract:189,override:191,readonly:197,accessor:199,new:387},cp={__proto__:null,"<":139},up=nd.deserialize({version:14,states:"$RQSO'#CcO>cQSO'#HZO>kQSO'#HaO>kQSO'#HcO`QUO'#HeO>kQSO'#HgO>kQSO'#HjO>pQSO'#HpO>uQ(C]O'#HvO%[QUO'#HxO?QQ(C]O'#HzO?]Q(C]O'#H|O9kQ(C[O'#IOO?hQ(CjO'#CgO@jQWO'#DgQOQSOOO%[QUO'#D}OAQQSO'#EQO:RQ,UO'#EhOA]QSO'#EhOAhQ`O'#F`OOQQ'#Ce'#CeOOQ(CW'#Dl'#DlOOQ(CW'#Jm'#JmO%[QUO'#JmOOQO'#Jq'#JqOOQO'#Ia'#IaOBhQWO'#EaOOQ(CW'#E`'#E`OCdQ(C`O'#EaOCnQWO'#ETOOQO'#Jp'#JpODSQWO'#JqOEaQWO'#ETOCnQWO'#EaPEnO?MpO'#C`POOO)CDt)CDtOOOO'#IW'#IWOEyOpO,59SOOQ(CY,59S,59SOOOO'#IX'#IXOFXO!bO,59SO%[QUO'#D^OOOO'#IZ'#IZOFgO07`O,59vOOQ(CY,59v,59vOFuQUO'#I[OGYQSO'#JkOI[QbO'#JkO+}QUO'#JkOIcQSO,59|OIyQSO'#EjOJWQSO'#JyOJcQSO'#JxOJcQSO'#JxOJkQSO,5;WOJpQSO'#JwOOQ(CY,5:X,5:XOJwQUO,5:XOLxQ(CjO,5:cOMiQSO,5:kONSQ(C[O'#JvONZQSO'#JuO9ZQSO'#JuONoQSO'#JuONwQSO,5;VON|QSO'#JuO!#UQbO'#JjOOQ(CY'#Cg'#CgO%[QUO'#EPO!#tQ`O,5:pOOQO'#Jr'#JrOOQO-ElOOQQ'#J_'#J_OOQQ,5>m,5>mOOQQ-EpQSO'#HPO9aQSO'#HRO!CgQSO'#HRO:RQ,UO'#HTO!ClQSO'#HTOOQQ,5=i,5=iO!CqQSO'#HUO!DSQSO'#CmO!DXQSO,58}O!DcQSO,58}O!FhQUO,58}OOQQ,58},58}O!FxQ(C[O,58}O%[QUO,58}O!ITQUO'#H]OOQQ'#H^'#H^OOQQ'#H_'#H_O`QUO,5=uO!IkQSO,5=uO`QUO,5={O`QUO,5=}O!IpQSO,5>PO`QUO,5>RO!IuQSO,5>UO!IzQUO,5>[OOQQ,5>b,5>bO%[QUO,5>bO9kQ(C[O,5>dOOQQ,5>f,5>fO!NUQSO,5>fOOQQ,5>h,5>hO!NUQSO,5>hOOQQ,5>j,5>jO!NZQWO'#DYO%[QUO'#JmO!NxQWO'#JmO# gQWO'#DhO# xQWO'#DhO#$ZQUO'#DhO#$bQSO'#JlO#$jQSO,5:RO#$oQSO'#EnO#$}QSO'#JzO#%VQSO,5;XO#%[QWO'#DhO#%iQWO'#ESOOQ(CY,5:l,5:lO%[QUO,5:lO#%pQSO,5:lO>pQSO,5;SO!@}QWO,5;SO!AVQ,UO,5;SO:RQ,UO,5;SO#%xQSO,5@XO#%}Q!LQO,5:pOOQO-E<_-E<_O#'TQ(C`O,5:{OCnQWO,5:oO#'_QWO,5:oOCnQWO,5:{O!@rQ(C[O,5:oOOQ(CW'#Ed'#EdOOQO,5:{,5:{O%[QUO,5:{O#'lQ(C[O,5:{O#'wQ(C[O,5:{O!@}QWO,5:oOOQO,5;R,5;RO#(VQ(C[O,5:{POOO'#IU'#IUP#(kO?MpO,58zPOOO,58z,58zOOOO-EvO+}QUO,5>vOOQO,5>|,5>|O#)VQUO'#I[OOQO-EpQ(CjO1G0yO#>wQ(CjO1G0yO#@oQ(CjO1G0yO#CoQ$IUO'#CgO#EmQ$IUO1G1[O#EtQ$IUO'#JjO!,lQSO1G1bO#FUQ(CjO,5?SOOQ(CW-EkQSO1G3kO$1UQUO1G3mO$5YQUO'#HlOOQQ1G3p1G3pO$5gQSO'#HrO>pQSO'#HtOOQQ1G3v1G3vO$5oQUO1G3vO9kQ(C[O1G3|OOQQ1G4O1G4OOOQ(CW'#GX'#GXO9kQ(C[O1G4QO9kQ(C[O1G4SO$9vQSO,5@XO!*fQUO,5;YO9ZQSO,5;YO>pQSO,5:SO!*fQUO,5:SO!@}QWO,5:SO$9{Q$IUO,5:SOOQO,5;Y,5;YO$:VQWO'#I]O$:mQSO,5@WOOQ(CY1G/m1G/mO$:uQWO'#IcO$;PQSO,5@fOOQ(CW1G0s1G0sO# xQWO,5:SOOQO'#I`'#I`O$;XQWO,5:nOOQ(CY,5:n,5:nO#%sQSO1G0WOOQ(CY1G0W1G0WO%[QUO1G0WOOQ(CY1G0n1G0nO>pQSO1G0nO!@}QWO1G0nO!AVQ,UO1G0nOOQ(CW1G5s1G5sO!@rQ(C[O1G0ZOOQO1G0g1G0gO%[QUO1G0gO$;`Q(C[O1G0gO$;kQ(C[O1G0gO!@}QWO1G0ZOCnQWO1G0ZO$;yQ(C[O1G0gOOQO1G0Z1G0ZO$<_Q(CjO1G0gPOOO-EvO$<{QSO1G5qO$=TQSO1G6OO$=]QbO1G6PO9ZQSO,5>|O$=gQ(CjO1G5|O%[QUO1G5|O$=wQ(C[O1G5|O$>YQSO1G5{O$>YQSO1G5{O9ZQSO1G5{O$>bQSO,5?PO9ZQSO,5?POOQO,5?P,5?PO$>vQSO,5?PO$'TQSO,5?POOQO-EWOOQQ,5>W,5>WO%[QUO'#HmO%6UQSO'#HoOOQQ,5>^,5>^O9ZQSO,5>^OOQQ,5>`,5>`OOQQ7+)b7+)bOOQQ7+)h7+)hOOQQ7+)l7+)lOOQQ7+)n7+)nO%6ZQWO1G5sO%6oQ$IUO1G0tO%6yQSO1G0tOOQO1G/n1G/nO%7UQ$IUO1G/nO>pQSO1G/nO!*fQUO'#DhOOQO,5>w,5>wOOQO-E},5>}OOQO-EpQSO7+&YO!@}QWO7+&YOOQO7+%u7+%uO$<_Q(CjO7+&ROOQO7+&R7+&RO%[QUO7+&RO%7`Q(C[O7+&RO!@rQ(C[O7+%uO!@}QWO7+%uO%7kQ(C[O7+&RO%7yQ(CjO7++hO%[QUO7++hO%8ZQSO7++gO%8ZQSO7++gOOQO1G4k1G4kO9ZQSO1G4kO%8cQSO1G4kOOQO7+%z7+%zO#%sQSO<xOOQO-E<[-E<[O%DoQbO,5>yO%[QUO,5>yOOQO-E<]-E<]O%DyQSO1G5uOOQ(CY<XOOQQ,5>Z,5>ZO&4ZQSO1G3xO9ZQSO7+&`O!*fQUO7+&`OOQO7+%Y7+%YO&4`Q$IUO1G6PO>pQSO7+%YOOQ(CY<pQSO<qQbO1G4eO&>{Q$IUO7+&ZO&APQ$IUO,5=QO&CWQ$IUO,5=SO&ChQ$IUO,5=QO&CxQ$IUO,5=SO&DYQ$IUO,59oO&F]Q$IUO,5pQSO7+)dO'%_QSO<{AN>{O%[QUOAN?XOOQO<a#@O#@^#@d#Ax#BW#Cr#DQ#DW#D^#Dd#Dn#Dt#Dz#EU#Eh#EnPPPPPPPPPP#EtPPPPPPP#Fi#IpP#KP#KW#K`PPPP$!d$%Z$+r$+u$+x$,q$,t$,w$-O$-WPP$-^$-b$.Y$/X$/]$/qPP$/u$/{$0PP$0S$0W$0Z$1P$1h$2P$2T$2W$2Z$2a$2d$2h$2lR!{RoqOXst!Z#c%j&m&o&p&r,h,m1w1zY!uQ'Z-Y1[5]Q%pvQ%xyQ&P|Q&e!VS'R!e-QQ'a!iS'g!r!xS*c$|*hQ+f%yQ+s&RQ,X&_Q-W'YQ-b'bQ-j'hQ/|*jQ1f,YR;Y:g%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S,e,h,m-^-f-t-z.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3Z5Y5d5t5u5x6]7w7|8]8gS#p]:d!r)[$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q*u%ZQ+k%{Q,Z&bQ,b&jQ.c;QQ0h+^Q0l+`Q0w+lQ1n,`Q2{.[Q4v0rQ5k1gQ6i3PQ6u;RQ7h4wR8m6j&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]t!nQ!r!u!x!y'R'Y'Z'g'h'i-Q-W-Y-j1[5]5_$v$si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:371,context:np,nodeProps:[["group",-26,7,15,17,63,200,204,208,209,211,214,217,227,229,235,237,239,241,244,250,256,258,260,262,264,266,267,"Statement",-32,11,12,26,29,30,36,46,49,50,52,57,65,73,77,79,81,82,104,105,114,115,132,135,137,138,139,140,142,143,163,164,166,"Expression",-23,25,27,31,35,37,39,167,169,171,172,174,175,176,178,179,180,182,183,184,194,196,198,199,"Type",-3,85,97,103,"ClassItem"],["openedBy",32,"InterpolationStart",51,"[",55,"{",70,"(",144,"JSXStartTag",156,"JSXStartTag JSXStartCloseTag"],["closedBy",34,"InterpolationEnd",45,"]",56,"}",71,")",145,"JSXSelfCloseEndTag JSXEndTag",161,"JSXEndTag"]],propSources:[ap],skippedNodes:[0,3,4,270],repeatNodeCount:37,tokenData:"$Fl(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#8g!R![#:v![!]#Gv!]!^#IS!^!_#J^!_!`#Nu!`!a$#a!a!b$(n!b!c$,m!c!}Er!}#O$-w#O#P$/R#P#Q$4j#Q#R$5t#R#SEr#S#T$7R#T#o$8]#o#p$s#r#s$@P#s$f%Z$f$g+g$g#BYEr#BY#BZ$AZ#BZ$ISEr$IS$I_$AZ$I_$I|Er$I|$I}$Df$I}$JO$Df$JO$JTEr$JT$JU$AZ$JU$KVEr$KV$KW$AZ$KW&FUEr&FU&FV$AZ&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$AZ?HUOEr(n%d_$e&j'}p(Q!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$e&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$e&j(Q!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Q!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$e&j'}pOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU'}pOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX'}p(Q!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$e&j'}p(Q!b's(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST(O#S$e&j't(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$e&j'}p(Q!b't(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$e&j!m$Ip'}p(Q!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#r$Id$e&j'}p(Q!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#r$Id$e&j'}p(Q!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$2b3l_'|$(n$e&j(Q!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k*r4r_$e&j(Q!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k)`5vX$e&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q)`6jT$`#t$e&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#t6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y#t7bO$`#t#t7eP;=`<%l6y)`7kP;=`<%l5q*r7w]$`#t$e&j(Q!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}%W8uZ(Q!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p%W9oU$`#t(Q!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}%W:UP;=`<%l8p*r:[P;=`<%l4k#%|:hh$e&j'}p(Q!bOY%ZYZ&cZq%Zqr`#P#o`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXUS$e&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSUSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWUS(Q!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]US$e&j'}pOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWUS'}pOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYUS'}p(Q!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%lQ^$e&j!SSOY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@Y!_!}!=y!}#O!Bw#O#P!Dj#P#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!?Ta$e&j!SSO!^&c!_#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&cS!@_X!SSOY!@YZ!P!@Y!P!Q!@z!Q!}!@Y!}#O!Ac#O#P!Bb#P;'S!@Y;'S;=`!Bq<%lO!@YS!APU!SS#Z#[!@z#]#^!@z#a#b!@z#g#h!@z#i#j!@z#m#n!@zS!AfVOY!AcZ#O!Ac#O#P!A{#P#Q!@Y#Q;'S!Ac;'S;=`!B[<%lO!AcS!BOSOY!AcZ;'S!Ac;'S;=`!B[<%lO!AcS!B_P;=`<%l!AcS!BeSOY!@YZ;'S!@Y;'S;=`!Bq<%lO!@YS!BtP;=`<%l!@Y&n!B|[$e&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#O!Bw#O#P!Cr#P#Q!=y#Q#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!CwX$e&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!DgP;=`<%l!Bw&n!DoX$e&jOY!=yYZ&cZ!^!=y!^!_!@Y!_#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!E_P;=`<%l!=y(Q!Eki$e&j(Q!b!SSOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#Z&}#Z#[!Eb#[#]&}#]#^!Eb#^#a&}#a#b!Eb#b#g&}#g#h!Eb#h#i&}#i#j!Eb#j#m&}#m#n!Eb#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!f!GaZ(Q!b!SSOY!GYZw!GYwx!@Yx!P!GY!P!Q!HS!Q!}!GY!}#O!Ic#O#P!Bb#P;'S!GY;'S;=`!JZ<%lO!GY!f!HZb(Q!b!SSOY'}Zw'}x#O'}#P#Z'}#Z#[!HS#[#]'}#]#^!HS#^#a'}#a#b!HS#b#g'}#g#h!HS#h#i'}#i#j!HS#j#m'}#m#n!HS#n;'S'};'S;=`(f<%lO'}!f!IhX(Q!bOY!IcZw!Icwx!Acx#O!Ic#O#P!A{#P#Q!GY#Q;'S!Ic;'S;=`!JT<%lO!Ic!f!JWP;=`<%l!Ic!f!J^P;=`<%l!GY(Q!Jh^$e&j(Q!bOY!JaYZ&cZw!Jawx!Bwx!^!Ja!^!_!Ic!_#O!Ja#O#P!Cr#P#Q!Q#V#X%Z#X#Y!4|#Y#b%Z#b#c#Zd$e&j'}p(Q!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#?tf$e&j'}p(Q!bm$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#b%Z#b#c#lp[t]||-1},{term:334,get:t=>hp[t]||-1},{term:68,get:t=>cp[t]||-1}],tokenPrec:14574}),dp=[Hh("function ${name}(${params}) {\n\t${}\n}",{label:"function",detail:"definition",type:"keyword"}),Hh("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),Hh("for (let ${name} of ${collection}) {\n\t${}\n}",{label:"for",detail:"of loop",type:"keyword"}),Hh("do {\n\t${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),Hh("while (${}) {\n\t${}\n}",{label:"while",detail:"loop",type:"keyword"}),Hh("try {\n\t${}\n} catch (${error}) {\n\t${}\n}",{label:"try",detail:"/ catch block",type:"keyword"}),Hh("if (${}) {\n\t${}\n}",{label:"if",detail:"block",type:"keyword"}),Hh("if (${}) {\n\t${}\n} else {\n\t${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),Hh("class ${name} {\n\tconstructor(${params}) {\n\t\t${}\n\t}\n}",{label:"class",detail:"definition",type:"keyword"}),Hh('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Hh('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],pp=dp.concat([Hh("interface ${name} {\n\t${}\n}",{label:"interface",detail:"definition",type:"keyword"}),Hh("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),Hh("enum ${name} {\n\t${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),fp=new Co,Op=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function mp(t){return(e,i)=>{let n=e.node.getChild("VariableDefinition");return n&&i(n,t),!0}}const gp=["FunctionDeclaration"],_p={FunctionDeclaration:mp("function"),ClassDeclaration:mp("class"),ClassExpression:()=>!0,EnumDeclaration:mp("constant"),TypeAliasDeclaration:mp("type"),NamespaceDeclaration:mp("namespace"),VariableDefinition(t,e){t.matchContext(gp)||e(t,"variable")},TypeDefinition(t,e){e(t,"type")},__proto__:null};function bp(t,e){let i=fp.get(e);if(i)return i;let n=[],r=!0;function s(e,i){let r=t.sliceString(e.from,e.to);n.push({label:r,type:i})}return e.cursor(uo.IncludeAnonymous).iterate((e=>{if(r)r=!1;else if(e.name){let t=_p[e.name];if(t&&t(e,s)||Op.has(e.name))return!1}else if(e.to-e.from>8192){for(let i of bp(t,e.node))n.push(i);return!1}})),fp.set(e,n),n}const wp=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,Sp=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName",".","?."];function vp(t){let e=$a(t.state).resolveInner(t.pos,-1);if(Sp.indexOf(e.name)>-1)return null;let i="VariableName"==e.name||e.to-e.from<20&&wp.test(t.state.sliceDoc(e.from,e.to));if(!i&&!t.explicit)return null;let n=[];for(let i=e;i;i=i.parent)Op.has(i.name)&&(n=n.concat(bp(t.state.doc,i)));return{options:n,from:i?e.from:t.pos,validFor:wp}}const yp=ka.define({name:"javascript",parser:up.configure({props:[Da.add({IfStatement:Ka({except:/^\s*({|else\b)/}),TryStatement:Ka({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:t=>t.baseIndent,SwitchBody:t=>{let e=t.textAfter,i=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return t.baseIndent+(i?0:n?1:2)*t.unit},Block:Fa({closing:"}"}),ArrowFunction:t=>t.baseIndent+t.unit,"TemplateString BlockComment":()=>null,"Statement Property":Ka({except:/^{/}),JSXElement(t){let e=/^\s*<\//.test(t.textAfter);return t.lineIndent(t.node.from)+(e?0:t.unit)},JSXEscape(t){let e=/\s*\}/.test(t.textAfter);return t.lineIndent(t.node.from)+(e?0:t.unit)},"JSXOpenTag JSXSelfClosingTag":t=>t.column(t.node.from)+t.unit}),tl.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":el,BlockComment:t=>({from:t.from+2,to:t.to-2})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),Qp={test:t=>/^JSX/.test(t.name),facet:va({commentTokens:{block:{open:"{/*",close:"*/}"}}})},xp=yp.configure({dialect:"ts"},"typescript"),kp=yp.configure({dialect:"jsx",props:[ya.add((t=>t.isTop?[Qp]:void 0))]}),$p=yp.configure({dialect:"jsx ts",props:[ya.add((t=>t.isTop?[Qp]:void 0))]},"typescript");let Pp=t=>({label:t,type:"keyword"});const Zp="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(Pp),Tp=Zp.concat(["declare","implements","private","protected","public"].map(Pp));function Cp(t={}){let e=t.jsx?t.typescript?$p:kp:t.typescript?xp:yp,i=t.typescript?pp.concat(Tp):dp.concat(Zp);return new Ea(e,[yp.data.of({autocomplete:(n=Sp,r=eh(i),t=>{for(let e=$a(t.state).resolveInner(t.pos,-1);e;e=e.parent){if(n.indexOf(e.name)>-1)return null;if(e.type.isTop)break}return r(t)})}),yp.data.of({autocomplete:vp}),t.jsx?Ap:[]]);var n,r}function Xp(t,e,i=t.length){for(let n=null==e?void 0:e.firstChild;n;n=n.nextSibling)if("JSXIdentifier"==n.name||"JSXBuiltin"==n.name||"JSXNamespacedName"==n.name||"JSXMemberExpression"==n.name)return t.sliceString(n.from,Math.min(n.to,i));return""}const Yp="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),Ap=Yr.inputHandler.of(((t,e,i,n,r)=>{if((Yp?t.composing:t.compositionStarted)||t.state.readOnly||e!=i||">"!=n&&"/"!=n||!yp.isActiveAt(t.state,e,-1))return!1;let s=r(),{state:o}=s,a=o.changeByRange((t=>{var e;let i,{head:r}=t,s=$a(o).resolveInner(r-1,-1);if("JSXStartTag"==s.name&&(s=s.parent),o.doc.sliceString(r-1,r)!=n||"JSXAttributeValue"==s.name&&s.to>r);else{if(">"==n&&"JSXFragmentTag"==s.name)return{range:t,changes:{from:r,insert:""}};if("/"==n&&"JSXStartCloseTag"==s.name){let t=s.parent,n=t.parent;if(n&&t.from==r-2&&((i=Xp(o.doc,n.firstChild,r))||"JSXFragmentTag"==(null===(e=n.firstChild)||void 0===e?void 0:e.name))){let t=`${i}>`;return{range:X.cursor(r+t.length,-1),changes:{from:r,insert:t}}}}else if(">"==n){let e=function(t){for(;;){if("JSXOpenTag"==t.name||"JSXSelfClosingTag"==t.name||"JSXFragmentTag"==t.name)return t;if("JSXEscape"==t.name||!t.parent)return null;t=t.parent}}(s);if(e&&!/^\/?>|^<\//.test(o.doc.sliceString(r,r+2))&&(i=Xp(o.doc,e,r)))return{range:t,changes:{from:r,insert:``}}}}return{range:t}}));return!a.changes.empty&&(t.dispatch([s,o.update(a,{userEvent:"input.complete",scrollIntoView:!0})]),!0)})),Wp=["_blank","_self","_top","_parent"],Rp=["ascii","utf-8","utf-16","latin1","latin1"],Ep=["get","post","put","delete"],zp=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],Mp=["true","false"],Up={},qp={a:{attrs:{href:null,ping:null,type:null,media:null,target:Wp,hreflang:null}},abbr:Up,address:Up,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:Up,aside:Up,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:Up,base:{attrs:{href:null,target:Wp}},bdi:Up,bdo:Up,blockquote:{attrs:{cite:null}},body:Up,br:Up,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:zp,formmethod:Ep,formnovalidate:["novalidate"],formtarget:Wp,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:Up,center:Up,cite:Up,code:Up,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:Up,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:Up,div:Up,dl:Up,dt:Up,em:Up,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:Up,figure:Up,footer:Up,form:{attrs:{action:null,name:null,"accept-charset":Rp,autocomplete:["on","off"],enctype:zp,method:Ep,novalidate:["novalidate"],target:Wp}},h1:Up,h2:Up,h3:Up,h4:Up,h5:Up,h6:Up,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:Up,hgroup:Up,hr:Up,html:{attrs:{manifest:null}},i:Up,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:zp,formmethod:Ep,formnovalidate:["novalidate"],formtarget:Wp,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:Up,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:Up,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:Up,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:Rp,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:Up,noscript:Up,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:Up,param:{attrs:{name:null,value:null}},pre:Up,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:Up,rt:Up,ruby:Up,samp:Up,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:Rp}},section:Up,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:Up,source:{attrs:{src:null,type:null,media:null}},span:Up,strong:Up,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:Up,summary:Up,sup:Up,table:Up,tbody:Up,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:Up,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:Up,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:Up,time:{attrs:{datetime:null}},title:Up,tr:Up,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:Up,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:Up},Vp={accesskey:null,class:null,contenteditable:Mp,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:Mp,autocorrect:Mp,autocapitalize:Mp,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":Mp,"aria-autocomplete":["inline","list","both","none"],"aria-busy":Mp,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":Mp,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":Mp,"aria-hidden":Mp,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":Mp,"aria-multiselectable":Mp,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":Mp,"aria-relevant":null,"aria-required":Mp,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},jp="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map((t=>"on"+t));for(let t of jp)Vp[t]=null;class Dp{constructor(t,e){this.tags=Object.assign(Object.assign({},qp),t),this.globalAttrs=Object.assign(Object.assign({},Vp),e),this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}function Ip(t,e,i=t.length){if(!e)return"";let n=e.firstChild,r=n&&n.getChild("TagName");return r?t.sliceString(r.from,Math.min(r.to,i)):""}function Np(t,e=!1){for(;t;t=t.parent)if("Element"==t.name){if(!e)return t;e=!1}return null}function Gp(t,e,i){let n=i.tags[Ip(t,Np(e))];return(null==n?void 0:n.children)||i.allTags}function Bp(t,e){let i=[];for(let n=Np(e);n&&!n.type.isTop;n=Np(n.parent)){let r=Ip(t,n);if(r&&"CloseTag"==n.lastChild.name)break;r&&i.indexOf(r)<0&&("EndTag"==e.name||e.from>=n.firstChild.to)&&i.push(r)}return i}Dp.default=new Dp;const Lp=/^[:\-\.\w\u00b7-\uffff]*$/;function Fp(t,e,i,n,r){let s=/\s*>/.test(t.sliceDoc(r,r+5))?"":">",o=Np(i,!0);return{from:n,to:r,options:Gp(t.doc,o,e).map((t=>({label:t,type:"type"}))).concat(Bp(t.doc,i).map(((t,e)=>({label:"/"+t,apply:"/"+t+s,type:"type",boost:99-e})))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function Hp(t,e,i,n){let r=/\s*>/.test(t.sliceDoc(n,n+5))?"":">";return{from:i,to:n,options:Bp(t.doc,e).map(((t,e)=>({label:t,apply:t+r,type:"type",boost:99-e}))),validFor:Lp}}function Kp(t){let{extraTags:e,extraGlobalAttributes:i}=t,n=i||e?new Dp(e,i):Dp.default;return t=>function(t,e){let{state:i,pos:n}=e,r=$a(i).resolveInner(n,-1),s=r.resolve(n);for(let t,e=n;s==r&&(t=r.childBefore(e));){let i=t.lastChild;if(!i||!i.type.isError||i.from({label:t,type:"property"}))),validFor:Lp}}(i,t,r,"AttributeName"==r.name?r.from:n,n):"Is"==r.name||"AttributeValue"==r.name||"UnquotedAttributeValue"==r.name?function(t,e,i,n,r){var s;let o,a=null===(s=i.parent)||void 0===s?void 0:s.getChild("AttributeName"),l=[];if(a){let s=t.sliceDoc(a.from,a.to),h=e.globalAttrs[s];if(!h){let n=Np(i),r=n?e.tags[Ip(t.doc,n)]:null;h=(null==r?void 0:r.attrs)&&r.attrs[s]}if(h){let e=t.sliceDoc(n,r).toLowerCase(),i='"',s='"';/^['"]/.test(e)?(o='"'==e[0]?/^[^"]*$/:/^[^']*$/,i="",s=t.sliceDoc(r,r+1)==e[0]?"":e[0],e=e.slice(1),n++):o=/^[^\s<>='"]*$/;for(let t of h)l.push({label:t,apply:i+t+s,type:"constant"})}}return{from:n,to:r,options:l,validFor:o}}(i,t,r,"Is"==r.name?n:r.from,n):!e.explicit||"Element"!=s.name&&"Text"!=s.name&&"Document"!=s.name?null:function(t,e,i,n){let r=[],s=0;for(let n of Gp(t.doc,i,e))r.push({label:"<"+n,type:"type"});for(let e of Bp(t.doc,i))r.push({label:"",type:"type",boost:99-s++});return{from:n,to:n,options:r,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}(i,t,r,n)}(n,t)}const Jp=yp.parser.configure({top:"SingleExpression"}),tf=[{tag:"script",attrs:t=>"text/typescript"==t.type||"ts"==t.lang,parser:xp.parser},{tag:"script",attrs:t=>"text/babel"==t.type||"text/jsx"==t.type,parser:kp.parser},{tag:"script",attrs:t=>"text/typescript-jsx"==t.type,parser:$p.parser},{tag:"script",attrs:t=>/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(t.type),parser:Jp},{tag:"script",attrs:t=>!t.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(t.type),parser:yp.parser},{tag:"style",attrs:t=>(!t.lang||"css"==t.lang)&&(!t.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(t.type)),parser:ep.parser}],ef=[{name:"style",parser:ep.parser.configure({top:"Styles"})}].concat(jp.map((t=>({name:t,parser:yp.parser})))),nf=ka.define({name:"html",parser:$d.configure({props:[Da.add({Element(t){let e=/^(\s*)(<\/)?/.exec(t.textAfter);return t.node.to<=t.pos+e[0].length?t.continue():t.lineIndent(t.node.from)+(e[2]?0:t.unit)},"OpenTag CloseTag SelfClosingTag":t=>t.column(t.node.from)+t.unit,Document(t){if(t.pos+/\s*/.exec(t.textAfter)[0].lengtht.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"\x3c!--",close:"--\x3e"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-._"}}),rf=nf.configure({wrap:Cd(tf,ef)});function sf(t={}){let e,i="";!1===t.matchClosingTags&&(i="noMatch"),!0===t.selfClosingTags&&(i=(i?i+" ":"")+"selfClosing"),(t.nestedLanguages&&t.nestedLanguages.length||t.nestedAttributes&&t.nestedAttributes.length)&&(e=Cd((t.nestedLanguages||[]).concat(tf),(t.nestedAttributes||[]).concat(ef)));let n=e?nf.configure({wrap:e,dialect:i}):i?rf.configure({dialect:i}):rf;return new Ea(n,[rf.data.of({autocomplete:Kp(t)}),!1!==t.autoCloseTags?af:[],Cp().support,new Ea(ep,ep.data.of({autocomplete:tp})).support])}const of=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),af=Yr.inputHandler.of(((t,e,i,n,r)=>{if(t.composing||t.state.readOnly||e!=i||">"!=n&&"/"!=n||!rf.isActiveAt(t.state,e,-1))return!1;let s=r(),{state:o}=s,a=o.changeByRange((t=>{var e,i,r;let s,a=o.doc.sliceString(t.from-1,t.to)==n,{head:l}=t,h=$a(o).resolveInner(l-1,-1);if("TagName"!=h.name&&"StartTag"!=h.name||(h=h.parent),a&&">"==n&&"OpenTag"==h.name){if("CloseTag"!=(null===(i=null===(e=h.parent)||void 0===e?void 0:e.lastChild)||void 0===i?void 0:i.name)&&(s=Ip(o.doc,h.parent,l))&&!of.has(s))return{range:t,changes:{from:l,to:l+(">"===o.doc.sliceString(l,l+1)?1:0),insert:``}}}else if(a&&"/"==n&&"IncompleteCloseTag"==h.name){let t=h.parent;if(h.from==l-2&&"CloseTag"!=(null===(r=t.lastChild)||void 0===r?void 0:r.name)&&(s=Ip(o.doc,t,l))&&!of.has(s)){let t=l+(">"===o.doc.sliceString(l,l+1)?1:0),e=`${s}>`;return{range:X.cursor(l+e.length,-1),changes:{from:l,to:t,insert:e}}}}return{range:t}}));return!a.changes.empty&&(t.dispatch([s,o.update(a,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}));function lf(){var t=arguments[0];"string"==typeof t&&(t=document.createElement(t));var e=1,i=arguments[1];if(i&&"object"==typeof i&&null==i.nodeType&&!Array.isArray(i)){for(var n in i)if(Object.prototype.hasOwnProperty.call(i,n)){var r=i[n];"string"==typeof r?t.setAttribute(n,r):null!=r&&(t[n]=r)}e++}for(;et.normalize("NFKD"):t=>t;class uf{constructor(t,e,i=0,n=t.length,r,s){this.test=s,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=t.iterRange(i,n),this.bufferStart=i,this.normalize=r?t=>r(cf(t)):cf,this.query=this.normalize(e)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return _(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let t=this.peek();if(t<0)return this.done=!0,this;let e=b(t),i=this.bufferStart+this.bufferPos;this.bufferPos+=w(t);let n=this.normalize(e);for(let t=0,r=i;;t++){let s=n.charCodeAt(t),o=this.match(s,r);if(t==n.length-1){if(o)return this.value=o,this;break}r==i&&tthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let t=this.matchPos-this.curLineStart;;){this.re.lastIndex=t;let e=this.matchPos<=this.to&&this.re.exec(this.curLine);if(e){let i=this.curLineStart+e.index,n=i+e[0].length;if(this.matchPos=_f(this.text,n+(i==n?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,n,e)))return this.value={from:i,to:n,match:e},this;t=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length=i||n.to<=e){let n=new mf(e,t.sliceString(e,i));return Of.set(t,n),n}if(n.from==e&&n.to==i)return n;let{text:r,from:s}=n;return s>e&&(r=t.sliceString(e,s)+r,s=e),n.to=this.to?this.to:this.text.lineAt(t).to}next(){for(;;){let t=this.re.lastIndex=this.matchPos-this.flat.from,e=this.re.exec(this.flat.text);if(e&&!e[0]&&e.index==t&&(this.re.lastIndex=t+1,e=this.re.exec(this.flat.text)),e){let t=this.flat.from+e.index,i=t+e[0].length;if((this.flat.to>=this.to||e.index+e[0].length<=this.flat.text.length-10)&&(!this.test||this.test(t,i,e)))return this.value={from:t,to:i,match:e},this.matchPos=_f(this.text,i+(t==i?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=mf.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function _f(t,e){if(e>=t.length)return e;let i,n=t.lineAt(e);for(;e=56320&&i<57344;)e++;return e}function bf(t){let e=lf("input",{class:"cm-textfield",name:"line",value:String(t.state.doc.lineAt(t.state.selection.main.head).number)});function i(){let i=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!i)return;let{state:n}=t,r=n.doc.lineAt(n.selection.main.head),[,s,o,a,l]=i,h=a?+a.slice(1):0,c=o?+o:r.number;if(o&&l){let t=c/100;s&&(t=t*("-"==s?-1:1)+r.number/n.doc.lines),c=Math.round(n.doc.lines*t)}else o&&s&&(c=c*("-"==s?-1:1)+r.number);let u=n.doc.line(Math.max(1,Math.min(n.doc.lines,c))),d=X.cursor(u.from+Math.max(0,Math.min(h,u.length)));t.dispatch({effects:[wf.of(!1),Yr.scrollIntoView(d.from,{y:"center"})],selection:d}),t.focus()}return{dom:lf("form",{class:"cm-gotoLine",onkeydown:e=>{27==e.keyCode?(e.preventDefault(),t.dispatch({effects:wf.of(!1)}),t.focus()):13==e.keyCode&&(e.preventDefault(),i())},onsubmit:t=>{t.preventDefault(),i()}},lf("label",t.state.phrase("Go to line"),": ",e)," ",lf("button",{class:"cm-button",type:"submit"},t.state.phrase("go")))}}"undefined"!=typeof Symbol&&(ff.prototype[Symbol.iterator]=gf.prototype[Symbol.iterator]=function(){return this});const wf=at.define(),Sf=V.define({create:()=>!0,update(t,e){for(let i of e.effects)i.is(wf)&&(t=i.value);return t},provide:t=>As.from(t,(t=>t?bf:null))}),vf=t=>{let e=Ts(t,bf);if(!e){let i=[wf.of(!0)];null==t.state.field(Sf,!1)&&i.push(at.appendConfig.of([Sf,yf])),t.dispatch({effects:i}),e=Ts(t,bf)}return e&&e.dom.querySelector("input").select(),!0},yf=Yr.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),Qf=({state:t,dispatch:e})=>{let{ranges:i}=t.selection;if(i.some((t=>t.from===t.to)))return(({state:t,dispatch:e})=>{let{selection:i}=t,n=X.create(i.ranges.map((e=>t.wordAt(e.head)||X.cursor(e.head))),i.mainIndex);return!n.eq(i)&&(e(t.update({selection:n})),!0)})({state:t,dispatch:e});let n=t.sliceDoc(i[0].from,i[0].to);if(t.selection.ranges.some((e=>t.sliceDoc(e.from,e.to)!=n)))return!1;let r=function(t,e){let{main:i,ranges:n}=t.selection,r=t.wordAt(i.head),s=r&&r.from==i.from&&r.to==i.to;for(let i=!1,r=new uf(t.doc,e,n[n.length-1].to);;){if(r.next(),!r.done){if(i&&n.some((t=>t.from==r.value.from)))continue;if(s){let e=t.wordAt(r.value.from);if(!e||e.from!=r.value.from||e.to!=r.value.to)continue}return r.value}if(i)return null;r=new uf(t.doc,e,0,Math.max(0,n[n.length-1].from-1)),i=!0}}(t,n);return!!r&&(e(t.update({selection:t.selection.addRange(X.range(r.from,r.to),!1),effects:Yr.scrollIntoView(r.to)})),!0)},xf=W.define({combine:t=>bt(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:t=>new tO(t),scrollToMatch:t=>Yr.scrollIntoView(t)})});class kf{constructor(t){this.search=t.search,this.caseSensitive=!!t.caseSensitive,this.literal=!!t.literal,this.regexp=!!t.regexp,this.replace=t.replace||"",this.valid=!!this.search&&(!this.regexp||function(t){try{return new RegExp(t,pf),!0}catch(t){return!1}}(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!t.wholeWord}unquote(t){return this.literal?t:t.replace(/\\([nrt\\])/g,((t,e)=>"n"==e?"\n":"r"==e?"\r":"t"==e?"\t":"\\"))}eq(t){return this.search==t.search&&this.replace==t.replace&&this.caseSensitive==t.caseSensitive&&this.regexp==t.regexp&&this.wholeWord==t.wholeWord}create(){return this.regexp?new Yf(this):new Zf(this)}getCursor(t,e=0,i){let n=t.doc?t:_t.create({doc:t});return null==i&&(i=n.doc.length),this.regexp?Tf(this,n,e,i):Pf(this,n,e,i)}}class $f{constructor(t){this.spec=t}}function Pf(t,e,i,n){return new uf(e.doc,t.unquoted,i,n,t.caseSensitive?void 0:t=>t.toLowerCase(),t.wholeWord?function(t,e){return(i,n,r,s)=>((s>i||s+r.length=e)return null;n.push(i.value)}return n}highlight(t,e,i,n){let r=Pf(this.spec,t,Math.max(0,e-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,t.doc.length));for(;!r.next().done;)n(r.value.from,r.value.to)}}function Tf(t,e,i,n){return new ff(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:t.wholeWord?(r=e.charCategorizer(e.selection.main.head),(t,e,i)=>!i[0].length||(r(Cf(i.input,i.index))!=Ot.Word||r(Xf(i.input,i.index))!=Ot.Word)&&(r(Xf(i.input,i.index+i[0].length))!=Ot.Word||r(Cf(i.input,i.index+i[0].length))!=Ot.Word)):void 0},i,n);var r}function Cf(t,e){return t.slice(p(t,e,!1),e)}function Xf(t,e){return t.slice(e,p(t,e))}class Yf extends $f{nextMatch(t,e,i){let n=Tf(this.spec,t,i,t.doc.length).next();return n.done&&(n=Tf(this.spec,t,0,e).next()),n.done?null:n.value}prevMatchInRange(t,e,i){for(let n=1;;n++){let r=Math.max(e,i-1e4*n),s=Tf(this.spec,t,r,i),o=null;for(;!s.next().done;)o=s.value;if(o&&(r==e||o.from>r+10))return o;if(r==e)return null}}prevMatch(t,e,i){return this.prevMatchInRange(t,0,e)||this.prevMatchInRange(t,i,t.doc.length)}getReplacement(t){return this.spec.unquote(this.spec.replace).replace(/\$([$&\d+])/g,((e,i)=>"$"==i?"$":"&"==i?t.match[0]:"0"!=i&&+i=e)return null;n.push(i.value)}return n}highlight(t,e,i,n){let r=Tf(this.spec,t,Math.max(0,e-250),Math.min(i+250,t.doc.length));for(;!r.next().done;)n(r.value.from,r.value.to)}}const Af=at.define(),Wf=at.define(),Rf=V.define({create:t=>new Ef(Lf(t).create(),null),update(t,e){for(let i of e.effects)i.is(Af)?t=new Ef(i.value.create(),t.panel):i.is(Wf)&&(t=new Ef(t.query,i.value?Bf:null));return t},provide:t=>As.from(t,(t=>t.panel))});class Ef{constructor(t,e){this.query=t,this.panel=e}}const zf=Le.mark({class:"cm-searchMatch"}),Mf=Le.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Uf=bi.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(Rf))}update(t){let e=t.state.field(Rf);(e!=t.startState.field(Rf)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return Le.none;let{view:i}=this,n=new xt;for(let e=0,r=i.visibleRanges,s=r.length;er[e+1].from-500;)a=r[++e].to;t.highlight(i.state,o,a,((t,e)=>{let r=i.state.selection.ranges.some((i=>i.from==t&&i.to==e));n.add(t,e,r?Mf:zf)}))}return n.finish()}},{decorations:t=>t.decorations});function qf(t){return e=>{let i=e.state.field(Rf,!1);return i&&i.query.spec.valid?t(e,i):Kf(e)}}const Vf=qf(((t,{query:e})=>{let{to:i}=t.state.selection.main,n=e.nextMatch(t.state,i,i);if(!n)return!1;let r=X.single(n.from,n.to),s=t.state.facet(xf);return t.dispatch({selection:r,effects:[rO(t,n),s.scrollToMatch(r.main,t)],userEvent:"select.search"}),Hf(t),!0})),jf=qf(((t,{query:e})=>{let{state:i}=t,{from:n}=i.selection.main,r=e.prevMatch(i,n,n);if(!r)return!1;let s=X.single(r.from,r.to),o=t.state.facet(xf);return t.dispatch({selection:s,effects:[rO(t,r),o.scrollToMatch(s.main,t)],userEvent:"select.search"}),Hf(t),!0})),Df=qf(((t,{query:e})=>{let i=e.matchAll(t.state,1e3);return!(!i||!i.length||(t.dispatch({selection:X.create(i.map((t=>X.range(t.from,t.to)))),userEvent:"select.search.matches"}),0))})),If=({state:t,dispatch:e})=>{let i=t.selection;if(i.ranges.length>1||i.main.empty)return!1;let{from:n,to:r}=i.main,s=[],o=0;for(let e=new uf(t.doc,t.sliceDoc(n,r));!e.next().done;){if(s.length>1e3)return!1;e.value.from==n&&(o=s.length),s.push(X.range(e.value.from,e.value.to))}return e(t.update({selection:X.create(s,o),userEvent:"select.search.matches"})),!0},Nf=qf(((t,{query:e})=>{let{state:i}=t,{from:n,to:r}=i.selection.main;if(i.readOnly)return!1;let s=e.nextMatch(i,n,n);if(!s)return!1;let o,a,l=[],h=[];if(s.from==n&&s.to==r&&(a=i.toText(e.getReplacement(s)),l.push({from:s.from,to:s.to,insert:a}),s=e.nextMatch(i,s.from,s.to),h.push(Yr.announce.of(i.phrase("replaced match on line $",i.doc.lineAt(n).number)+"."))),s){let e=0==l.length||l[0].from>=s.to?0:s.to-s.from-a.length;o=X.single(s.from-e,s.to-e),h.push(rO(t,s)),h.push(i.facet(xf).scrollToMatch(o.main,t))}return t.dispatch({changes:l,selection:o,effects:h,userEvent:"input.replace"}),!0})),Gf=qf(((t,{query:e})=>{if(t.state.readOnly)return!1;let i=e.matchAll(t.state,1e9).map((t=>{let{from:i,to:n}=t;return{from:i,to:n,insert:e.getReplacement(t)}}));if(!i.length)return!1;let n=t.state.phrase("replaced $ matches",i.length)+".";return t.dispatch({changes:i,effects:Yr.announce.of(n),userEvent:"input.replace.all"}),!0}));function Bf(t){return t.state.facet(xf).createPanel(t)}function Lf(t,e){var i,n,r,s,o;let a=t.selection.main,l=a.empty||a.to>a.from+100?"":t.sliceDoc(a.from,a.to);if(e&&!l)return e;let h=t.facet(xf);return new kf({search:(null!==(i=null==e?void 0:e.literal)&&void 0!==i?i:h.literal)?l:l.replace(/\n/g,"\\n"),caseSensitive:null!==(n=null==e?void 0:e.caseSensitive)&&void 0!==n?n:h.caseSensitive,literal:null!==(r=null==e?void 0:e.literal)&&void 0!==r?r:h.literal,regexp:null!==(s=null==e?void 0:e.regexp)&&void 0!==s?s:h.regexp,wholeWord:null!==(o=null==e?void 0:e.wholeWord)&&void 0!==o?o:h.wholeWord})}function Ff(t){let e=Ts(t,Bf);return e&&e.dom.querySelector("[main-field]")}function Hf(t){let e=Ff(t);e&&e==t.root.activeElement&&e.select()}const Kf=t=>{let e=t.state.field(Rf,!1);if(e&&e.panel){let i=Ff(t);if(i&&i!=t.root.activeElement){let n=Lf(t.state,e.query.spec);n.valid&&t.dispatch({effects:Af.of(n)}),i.focus(),i.select()}}else t.dispatch({effects:[Wf.of(!0),e?Af.of(Lf(t.state,e.query.spec)):at.appendConfig.of(oO)]});return!0},Jf=t=>{let e=t.state.field(Rf,!1);if(!e||!e.panel)return!1;let i=Ts(t,Bf);return i&&i.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:Wf.of(!1)}),!0};class tO{constructor(t){this.view=t;let e=this.query=t.state.field(Rf).query.spec;function i(t,e,i){return lf("button",{class:"cm-button",name:t,onclick:e,type:"button"},i)}this.commit=this.commit.bind(this),this.searchField=lf("input",{value:e.search,placeholder:eO(t,"Find"),"aria-label":eO(t,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=lf("input",{value:e.replace,placeholder:eO(t,"Replace"),"aria-label":eO(t,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=lf("input",{type:"checkbox",name:"case",form:"",checked:e.caseSensitive,onchange:this.commit}),this.reField=lf("input",{type:"checkbox",name:"re",form:"",checked:e.regexp,onchange:this.commit}),this.wordField=lf("input",{type:"checkbox",name:"word",form:"",checked:e.wholeWord,onchange:this.commit}),this.dom=lf("div",{onkeydown:t=>this.keydown(t),class:"cm-search"},[this.searchField,i("next",(()=>Vf(t)),[eO(t,"next")]),i("prev",(()=>jf(t)),[eO(t,"previous")]),i("select",(()=>Df(t)),[eO(t,"all")]),lf("label",null,[this.caseField,eO(t,"match case")]),lf("label",null,[this.reField,eO(t,"regexp")]),lf("label",null,[this.wordField,eO(t,"by word")]),...t.state.readOnly?[]:[lf("br"),this.replaceField,i("replace",(()=>Nf(t)),[eO(t,"replace")]),i("replaceAll",(()=>Gf(t)),[eO(t,"replace all")])],lf("button",{name:"close",onclick:()=>Jf(t),"aria-label":eO(t,"close"),type:"button"},["\xd7"])])}commit(){let t=new kf({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});t.eq(this.query)||(this.query=t,this.view.dispatch({effects:Af.of(t)}))}keydown(t){var e,i;i=t,Nr(jr((e=this.view).state),i,e,"search-panel")?t.preventDefault():13==t.keyCode&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?jf:Vf)(this.view)):13==t.keyCode&&t.target==this.replaceField&&(t.preventDefault(),Nf(this.view))}update(t){for(let e of t.transactions)for(let t of e.effects)t.is(Af)&&!t.value.eq(this.query)&&this.setQuery(t.value)}setQuery(t){this.query=t,this.searchField.value=t.search,this.replaceField.value=t.replace,this.caseField.checked=t.caseSensitive,this.reField.checked=t.regexp,this.wordField.checked=t.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(xf).top}}function eO(t,e){return t.state.phrase(e)}const iO=30,nO=/[\s\.,:;?!]/;function rO(t,{from:e,to:i}){let n=t.state.doc.lineAt(e),r=t.state.doc.lineAt(i).to,s=Math.max(n.from,e-iO),o=Math.min(r,i+iO),a=t.state.sliceDoc(s,o);if(s!=n.from)for(let t=0;ta.length-iO;t--)if(!nO.test(a[t-1])&&nO.test(a[t])){a=a.slice(0,t);break}return Yr.announce.of(`${t.state.phrase("current match")}. ${a} ${t.state.phrase("on line")} ${n.number}.`)}const sO=Yr.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),oO=[Rf,D.low(Uf),sO],aO="#e06c75",lO="#abb2bf",hO="#7d8799",cO="#d19a66",uO="#2c313a",dO="#282c34",pO="#353a42",fO="#528bff",OO=Yr.theme({"&":{color:lO,backgroundColor:dO},".cm-content":{caretColor:fO},".cm-cursor, .cm-dropCursor":{borderLeftColor:fO},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:"#3E4451"},".cm-panels":{backgroundColor:"#21252b",color:lO},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:dO,color:hO,border:"none"},".cm-activeLineGutter":{backgroundColor:uO},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:pO},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:pO,borderBottomColor:pO},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:uO,color:lO}}},{dark:!0}),mO=Ql.define([{tag:ba.keyword,color:"#c678dd"},{tag:[ba.name,ba.deleted,ba.character,ba.propertyName,ba.macroName],color:aO},{tag:[ba.function(ba.variableName),ba.labelName],color:"#61afef"},{tag:[ba.color,ba.constant(ba.name),ba.standard(ba.name)],color:cO},{tag:[ba.definition(ba.name),ba.separator],color:lO},{tag:[ba.typeName,ba.className,ba.number,ba.changed,ba.annotation,ba.modifier,ba.self,ba.namespace],color:"#e5c07b"},{tag:[ba.operator,ba.operatorKeyword,ba.url,ba.escape,ba.regexp,ba.link,ba.special(ba.string)],color:"#56b6c2"},{tag:[ba.meta,ba.comment],color:hO},{tag:ba.strong,fontWeight:"bold"},{tag:ba.emphasis,fontStyle:"italic"},{tag:ba.strikethrough,textDecoration:"line-through"},{tag:ba.link,color:hO,textDecoration:"underline"},{tag:ba.heading,fontWeight:"bold",color:aO},{tag:[ba.atom,ba.bool,ba.special(ba.variableName)],color:cO},{tag:[ba.processingInstruction,ba.string,ba.inserted],color:"#98c379"},{tag:ba.invalid,color:"#ffffff"}]),gO=t=>e=>typeof e===t,_O=t=>"string"===(t=>{const e=typeof t;return null===t?"null":"object"===e&&Array.isArray(t)?"array":"object"===e&&(i=n=t,(r=String).prototype.isPrototypeOf(i)||n.constructor?.name===r.name)?"string":e;var i,n,r})(t),bO=gO("boolean"),wO=t=>void 0===t,SO=t=>!(t=>null==t)(t),vO=gO("function"),yO=gO("number"),QO=t=>()=>t,xO=(t,e)=>t===e,kO=QO(!1);class $O{tag;value;static singletonNone=new $O(!1);constructor(t,e){this.tag=t,this.value=e}static some(t){return new $O(!0,t)}static none(){return $O.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?$O.some(t(this.value)):$O.none()}bind(t){return this.tag?t(this.value):$O.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:$O.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(t??"Called getOrDie on None")}static from(t){return SO(t)?$O.some(t):$O.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}const PO=(t,e)=>{for(let i=0,n=t.length;i((t,e,i)=>{for(let n=0,r=t.length;n{const r=t.indexOf(e,i);return-1!==r&&(!!wO(n)||r+e.length<=n)},CO=(XO=/^\s+|\s+$/g,t=>t.replace(XO,""));var XO;const YO=()=>AO(0,0),AO=(t,e)=>({major:t,minor:e}),WO={nu:AO,detect:(t,e)=>{const i=String(e).toLowerCase();return 0===t.length?YO():((t,e)=>{const i=((t,e)=>{for(let i=0;iNumber(e.replace(i,"$"+t));return AO(n(1),n(2))})(t,i)},unknown:YO},RO=(t,e)=>{const i=String(e).toLowerCase();return ZO(t,(t=>t.search(i)))},EO=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,zO=t=>e=>TO(e,t),MO=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:t=>TO(t,"edge/")&&TO(t,"chrome")&&TO(t,"safari")&&TO(t,"applewebkit")},{name:"Chromium",brand:"Chromium",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,EO],search:t=>TO(t,"chrome")&&!TO(t,"chromeframe")},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:t=>TO(t,"msie")||TO(t,"trident")},{name:"Opera",versionRegexes:[EO,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:zO("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:zO("firefox")},{name:"Safari",versionRegexes:[EO,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:t=>(TO(t,"safari")||TO(t,"mobile/"))&&TO(t,"applewebkit")}],UO=[{name:"Windows",search:zO("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:t=>TO(t,"iphone")||TO(t,"ipad"),versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:zO("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"macOS",search:zO("mac os x"),versionRegexes:[/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:zO("linux"),versionRegexes:[]},{name:"Solaris",search:zO("sunos"),versionRegexes:[]},{name:"FreeBSD",search:zO("freebsd"),versionRegexes:[]},{name:"ChromeOS",search:zO("cros"),versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/]}],qO={browsers:QO(MO),oses:QO(UO)},VO=t=>{const e=t.current,i=t.version,n=t=>()=>e===t;return{current:e,version:i,isEdge:n("Edge"),isChromium:n("Chromium"),isIE:n("IE"),isOpera:n("Opera"),isFirefox:n("Firefox"),isSafari:n("Safari")}},jO=()=>VO({current:void 0,version:WO.unknown()}),DO=VO,IO=t=>{const e=t.current,i=t.version,n=t=>()=>e===t;return{current:e,version:i,isWindows:n("Windows"),isiOS:n("iOS"),isAndroid:n("Android"),isMacOS:n("macOS"),isLinux:n("Linux"),isSolaris:n("Solaris"),isFreeBSD:n("FreeBSD"),isChromeOS:n("ChromeOS")}},NO=()=>IO({current:void 0,version:WO.unknown()}),GO=IO,BO=(t,e,i)=>{const n=qO.browsers(),r=qO.oses(),s=e.bind((t=>((t,e)=>((t,e)=>{for(let i=0;i{const i=e.brand.toLowerCase();return ZO(t,(t=>i===t.brand?.toLowerCase())).map((t=>({current:t.name,version:WO.nu(parseInt(e.version,10),0)})))})))(n,t))).orThunk((()=>((t,e)=>RO(t,e).map((t=>{const i=WO.detect(t.versionRegexes,e);return{current:t.name,version:i}})))(n,t))).fold(jO,DO),o=((t,e)=>RO(t,e).map((t=>{const i=WO.detect(t.versionRegexes,e);return{current:t.name,version:i}})))(r,t).fold(NO,GO),a=((t,e,i,n)=>{const r=t.isiOS()&&!0===/ipad/i.test(i),s=t.isiOS()&&!r,o=t.isiOS()||t.isAndroid(),a=o||n("(pointer:coarse)"),l=r||!s&&o&&n("(min-device-width:768px)"),h=s||o&&!l,c=e.isSafari()&&t.isiOS()&&!1===/safari/i.test(i),u=!h&&!l&&!c;return{isiPad:QO(r),isiPhone:QO(s),isTablet:QO(l),isPhone:QO(h),isTouch:QO(a),isAndroid:t.isAndroid,isiOS:t.isiOS,isWebView:QO(c),isDesktop:QO(u)}})(o,s,t,i);return{browser:s,os:o,deviceType:a}},LO=t=>window.matchMedia(t).matches;let FO=(t=>{let e,i=!1;return(...n)=>(i||(i=!0,e=t.apply(null,n)),e)})((()=>BO(window.navigator.userAgent,$O.from(window.navigator.userAgentData),LO)));const HO=t=>{if(null==t)throw new Error("Node cannot be null or undefined");return{dom:t}},KO=HO,JO=t=>e=>(t=>t.dom.nodeType)(e)===t,tm=JO(3),em=JO(11),im=t=>((t,e)=>{const i=t.dom.childNodes;return $O.from(i[e]).map(KO)})(t,t.dom.childNodes.length-1),nm=t=>KO(t.dom.host),rm=(t,e)=>{const i=t.dom.getAttribute(e);return null===i?void 0:i},sm=t=>void 0!==t.style&&vO(t.style.getPropertyValue),om=t=>{const e=tm(t)?t.dom.parentNode:t.dom;if(null==e||null===e.ownerDocument)return!1;const i=e.ownerDocument;return(t=>{const e=(t=>KO(t.dom.getRootNode()))(t);return em(i=e)&&SO(i.dom.host)?$O.some(e):$O.none();var i})(KO(e)).fold((()=>i.body.contains(e)),(n=om,r=nm,t=>n(r(t))));var n,r},am=(t,e,i)=>{const n=((t,e)=>{const i=rm(t,e);return void 0===i||""===i?[]:i.split(" ")})(t,e);return((t,e,i)=>{((t,e,i)=>{if(!(_O(i)||bO(i)||yO(i)))throw console.error("Invalid call to Attribute.set. Key ",e,":: Value ",i,":: Element ",t),new Error("Attribute value was not simple");t.setAttribute(e,i+"")})(t.dom,e,i)})(t,e,n.concat([i]).join(" ")),!0},lm=(t,e)=>((t,e)=>{const i=void 0===e?document:e.dom;return 1!==(n=i).nodeType&&9!==n.nodeType&&11!==n.nodeType||0===n.childElementCount?$O.none():$O.from(i.querySelector(t)).map(KO);var n})(e,t),hm=t=>void 0!==t.dom.classList,cm={unsupportedLength:["em","ex","cap","ch","ic","rem","lh","rlh","vw","vh","vi","vb","vmin","vmax","cm","mm","Q","in","pc","pt","px"],fixed:["px","pt"],relative:["%"],empty:[""]},um=(()=>{const t="[0-9]+",e="[eE][+-]?"+t,i=t=>`(?:${t})?`,n=["Infinity",t+"\\."+i(t)+i(e),"\\."+t+i(e),t+i(e)].join("|");return new RegExp(`^([+-]?(?:${n}))(.*)$`)})();function dm(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var pm,fm,Om={exports:{}},mm={},gm={},_m={};function bm(){if(fm)return gm;fm=1;var t=function(){if(pm)return _m;function t(t,i){this.raw_options=e(t,i),this.disabled=this._get_boolean("disabled"),this.eol=this._get_characters("eol","auto"),this.end_with_newline=this._get_boolean("end_with_newline"),this.indent_size=this._get_number("indent_size",4),this.indent_char=this._get_characters("indent_char"," "),this.indent_level=this._get_number("indent_level"),this.preserve_newlines=this._get_boolean("preserve_newlines",!0),this.max_preserve_newlines=this._get_number("max_preserve_newlines",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean("indent_with_tabs","\t"===this.indent_char),this.indent_with_tabs&&(this.indent_char="\t",1===this.indent_size&&(this.indent_size=4)),this.wrap_line_length=this._get_number("wrap_line_length",this._get_number("max_char")),this.indent_empty_lines=this._get_boolean("indent_empty_lines"),this.templating=this._get_selection_list("templating",["auto","none","angular","django","erb","handlebars","php","smarty"],["auto"])}function e(t,e){var n,r={};for(n in t=i(t))n!==e&&(r[n]=t[n]);if(e&&t[e])for(n in t[e])r[n]=t[e][n];return r}function i(t){var e,i={};for(e in t)i[e.replace(/-/g,"_")]=t[e];return i}return pm=1,t.prototype._get_array=function(t,e){var i=this.raw_options[t],n=e||[];return"object"==typeof i?null!==i&&"function"==typeof i.concat&&(n=i.concat()):"string"==typeof i&&(n=i.split(/[^a-zA-Z0-9_\/\-]+/)),n},t.prototype._get_boolean=function(t,e){var i=this.raw_options[t];return void 0===i?!!e:!!i},t.prototype._get_characters=function(t,e){var i=this.raw_options[t],n=e||"";return"string"==typeof i&&(n=i.replace(/\\r/,"\r").replace(/\\n/,"\n").replace(/\\t/,"\t")),n},t.prototype._get_number=function(t,e){var i=this.raw_options[t];e=parseInt(e,10),isNaN(e)&&(e=0);var n=parseInt(i,10);return isNaN(n)&&(n=e),n},t.prototype._get_selection=function(t,e,i){var n=this._get_selection_list(t,e,i);if(1!==n.length)throw new Error("Invalid Option Value: The option '"+t+"' can only be one of the following values:\n"+e+"\nYou passed in: '"+this.raw_options[t]+"'");return n[0]},t.prototype._get_selection_list=function(t,e,i){if(!e||0===e.length)throw new Error("Selection list cannot be empty.");if(i=i||[e[0]],!this._is_valid_selection(i,e))throw new Error("Invalid Default Value!");var n=this._get_array(t,i);if(!this._is_valid_selection(n,e))throw new Error("Invalid Option Value: The option '"+t+"' can contain only the following values:\n"+e+"\nYou passed in: '"+this.raw_options[t]+"'");return n},t.prototype._is_valid_selection=function(t,e){return t.length&&e.length&&!t.some((function(t){return-1===e.indexOf(t)}))},_m.Options=t,_m.normalizeOpts=i,_m.mergeOpts=e,_m}().Options;function e(e){t.call(this,e,"html"),1===this.templating.length&&"auto"===this.templating[0]&&(this.templating=["django","erb","handlebars","php"]),this.indent_inner_html=this._get_boolean("indent_inner_html"),this.indent_body_inner_html=this._get_boolean("indent_body_inner_html",!0),this.indent_head_inner_html=this._get_boolean("indent_head_inner_html",!0),this.indent_handlebars=this._get_boolean("indent_handlebars",!0),this.wrap_attributes=this._get_selection("wrap_attributes",["auto","force","force-aligned","force-expand-multiline","aligned-multiple","preserve","preserve-aligned"]),this.wrap_attributes_min_attrs=this._get_number("wrap_attributes_min_attrs",2),this.wrap_attributes_indent_size=this._get_number("wrap_attributes_indent_size",this.indent_size),this.extra_liners=this._get_array("extra_liners",["head","body","/html"]),this.inline=this._get_array("inline",["a","abbr","area","audio","b","bdi","bdo","br","button","canvas","cite","code","data","datalist","del","dfn","em","embed","i","iframe","img","input","ins","kbd","keygen","label","map","mark","math","meter","noscript","object","output","progress","q","ruby","s","samp","select","small","span","strong","sub","sup","svg","template","textarea","time","u","var","video","wbr","text","acronym","big","strike","tt"]),this.inline_custom_elements=this._get_boolean("inline_custom_elements",!0),this.void_elements=this._get_array("void_elements",["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr","!doctype","?xml","basefont","isindex"]),this.unformatted=this._get_array("unformatted",[]),this.content_unformatted=this._get_array("content_unformatted",["pre","textarea"]),this.unformatted_content_delimiter=this._get_characters("unformatted_content_delimiter"),this.indent_scripts=this._get_selection("indent_scripts",["normal","keep","separate"])}return e.prototype=new t,gm.Options=e,gm}var wm,Sm,vm,ym,Qm,xm,km,$m={},Pm={},Zm={},Tm={},Cm={},Xm={},Ym={},Am={};function Wm(){if(Qm)return Am;function t(t,e){this._input=t,this._starting_pattern=null,this._match_pattern=null,this._until_pattern=null,this._until_after=!1,e&&(this._starting_pattern=this._input.get_regexp(e._starting_pattern,!0),this._match_pattern=this._input.get_regexp(e._match_pattern,!0),this._until_pattern=this._input.get_regexp(e._until_pattern),this._until_after=e._until_after)}return Qm=1,t.prototype.read=function(){var t=this._input.read(this._starting_pattern);return this._starting_pattern&&!t||(t+=this._input.read(this._match_pattern,this._until_pattern,this._until_after)),t},t.prototype.read_match=function(){return this._input.match(this._match_pattern)},t.prototype.until_after=function(t){var e=this._create();return e._until_after=!0,e._until_pattern=this._input.get_regexp(t),e._update(),e},t.prototype.until=function(t){var e=this._create();return e._until_after=!1,e._until_pattern=this._input.get_regexp(t),e._update(),e},t.prototype.starting_with=function(t){var e=this._create();return e._starting_pattern=this._input.get_regexp(t,!0),e._update(),e},t.prototype.matching=function(t){var e=this._create();return e._match_pattern=this._input.get_regexp(t,!0),e._update(),e},t.prototype._create=function(){return new t(this._input,this)},t.prototype._update=function(){},Am.Pattern=t,Am}function Rm(){if(km)return Zm;km=1;var t=function(){if(Sm)return Tm;Sm=1;var t=RegExp.prototype.hasOwnProperty("sticky");function e(t){this.__input=t||"",this.__input_length=this.__input.length,this.__position=0}return e.prototype.restart=function(){this.__position=0},e.prototype.back=function(){this.__position>0&&(this.__position-=1)},e.prototype.hasNext=function(){return this.__position=0&&t=0&&e=t.length&&this.__input.substring(e-t.length,e).toLowerCase()===t},Tm.InputScanner=e,Tm}().InputScanner,e=(vm||(vm=1,Cm.Token=function(t,e,i,n){this.type=t,this.text=e,this.comments_before=null,this.newlines=i||0,this.whitespace_before=n||"",this.parent=null,this.next=null,this.previous=null,this.opened=null,this.closed=null,this.directives=null}),Cm).Token,i=function(){if(ym)return Xm;function t(t){this.__tokens=[],this.__tokens_length=this.__tokens.length,this.__position=0,this.__parent_token=t}return ym=1,t.prototype.restart=function(){this.__position=0},t.prototype.isEmpty=function(){return 0===this.__tokens_length},t.prototype.hasNext=function(){return this.__position=0&&t/),erb:r.starting_with(/<%[^%]/).until_after(/[^%]%>/),django:r.starting_with(/{%/).until_after(/%}/),django_value:r.starting_with(/{{/).until_after(/}}/),django_comment:r.starting_with(/{#/).until_after(/#}/),smarty:r.starting_with(/{(?=[^}{\s\n])/).until_after(/[^\s\n]}/),smarty_comment:r.starting_with(/{\*/).until_after(/\*}/),smarty_literal:r.starting_with(/{literal}/).until_after(/{\/literal}/)}}return i.prototype=new t,i.prototype._create=function(){return new i(this._input,this)},i.prototype._update=function(){this.__set_templated_pattern()},i.prototype.disable=function(t){var e=this._create();return e._disabled[t]=!0,e._update(),e},i.prototype.read_options=function(t){var i=this._create();for(var n in e)i._disabled[n]=-1===t.templating.indexOf(n);return i._update(),i},i.prototype.exclude=function(t){var e=this._create();return e._excluded[t]=!0,e._update(),e},i.prototype.read=function(){var t="";t=this._match_pattern?this._input.read(this._starting_pattern):this._input.read(this._starting_pattern,this.__template_pattern);for(var e=this._read_template();e;)this._match_pattern?e+=this._input.read(this._match_pattern):e+=this._input.readUntil(this.__template_pattern),t+=e,e=this._read_template();return this._until_after&&(t+=this._input.readUntilAfter(this._until_pattern)),t},i.prototype.__set_templated_pattern=function(){var t=[];this._disabled.php||t.push(this.__patterns.php._starting_pattern.source),this._disabled.handlebars||t.push(this.__patterns.handlebars._starting_pattern.source),this._disabled.erb||t.push(this.__patterns.erb._starting_pattern.source),this._disabled.django||(t.push(this.__patterns.django._starting_pattern.source),t.push(this.__patterns.django_value._starting_pattern.source),t.push(this.__patterns.django_comment._starting_pattern.source)),this._disabled.smarty||t.push(this.__patterns.smarty._starting_pattern.source),this._until_pattern&&t.push(this._until_pattern.source),this.__template_pattern=this._input.get_regexp("(?:"+t.join("|")+")")},i.prototype._read_template=function(){var t="",e=this._input.peek();if("<"===e){var i=this._input.peek(1);this._disabled.php||this._excluded.php||"?"!==i||(t=t||this.__patterns.php.read()),this._disabled.erb||this._excluded.erb||"%"!==i||(t=t||this.__patterns.erb.read())}else"{"===e&&(this._disabled.handlebars||this._excluded.handlebars||(t=(t=(t=t||this.__patterns.handlebars_comment.read())||this.__patterns.handlebars_unescaped.read())||this.__patterns.handlebars.read()),this._disabled.django||(this._excluded.django||this._excluded.handlebars||(t=t||this.__patterns.django_value.read()),this._excluded.django||(t=(t=t||this.__patterns.django_comment.read())||this.__patterns.django.read())),this._disabled.smarty||this._disabled.django&&this._disabled.handlebars&&(t=(t=(t=t||this.__patterns.smarty_comment.read())||this.__patterns.smarty_literal.read())||this.__patterns.smarty.read()));return t},jm.TemplatablePattern=i,jm}().TemplatablePattern,r=Wm().Pattern,s={TAG_OPEN:"TK_TAG_OPEN",TAG_CLOSE:"TK_TAG_CLOSE",CONTROL_FLOW_OPEN:"TK_CONTROL_FLOW_OPEN",CONTROL_FLOW_CLOSE:"TK_CONTROL_FLOW_CLOSE",ATTRIBUTE:"TK_ATTRIBUTE",EQUALS:"TK_EQUALS",VALUE:"TK_VALUE",COMMENT:"TK_COMMENT",TEXT:"TK_TEXT",UNKNOWN:"TK_UNKNOWN",START:e.START,RAW:e.RAW,EOF:e.EOF},o=new i(/<\!--/,/-->/),a=function(e,i){t.call(this,e,i),this._current_tag_name="";var s=new n(this._input).read_options(this._options),o=new r(this._input);if(this.__patterns={word:s.until(/[\n\r\t <]/),word_control_flow_close_excluded:s.until(/[\n\r\t <}]/),single_quote:s.until_after(/'/),double_quote:s.until_after(/"/),attribute:s.until(/[\n\r\t =>]|\/>/),element_name:s.until(/[\n\r\t >\/]/),angular_control_flow_start:o.matching(/\@[a-zA-Z]+[^({]*[({]/),handlebars_comment:o.starting_with(/{{!--/).until_after(/--}}/),handlebars:o.starting_with(/{{/).until_after(/}}/),handlebars_open:o.until(/[\n\r\t }]/),handlebars_raw_close:o.until(/}}/),comment:o.starting_with(//),cdata:o.starting_with(//),conditional_comment:o.starting_with(//),processing:o.starting_with(/<\?/).until_after(/\?>/)},this._options.indent_handlebars&&(this.__patterns.word=this.__patterns.word.exclude("handlebars"),this.__patterns.word_control_flow_close_excluded=this.__patterns.word_control_flow_close_excluded.exclude("handlebars")),this._unformatted_content_delimiter=null,this._options.unformatted_content_delimiter){var a=this._input.get_literal_regexp(this._options.unformatted_content_delimiter);this.__patterns.unformatted_content_delimiter=o.matching(a).until_after(a)}};return(a.prototype=new t)._is_comment=function(t){return!1},a.prototype._is_opening=function(t){return t.type===s.TAG_OPEN||t.type===s.CONTROL_FLOW_OPEN},a.prototype._is_closing=function(t,e){return t.type===s.TAG_CLOSE&&e&&((">"===t.text||"/>"===t.text)&&"<"===e.text[0]||"}}"===t.text&&"{"===e.text[0]&&"{"===e.text[1])||t.type===s.CONTROL_FLOW_CLOSE&&"}"===t.text&&e.text.endsWith("{")},a.prototype._reset=function(){this._current_tag_name=""},a.prototype._get_next_token=function(t,e){var i=null;this._readWhitespace();var n=this._input.peek();return null===n?this._create_token(s.EOF,""):i=(i=(i=(i=(i=(i=(i=(i=(i=(i=i||this._read_open_handlebars(n,e))||this._read_attribute(n,t,e))||this._read_close(n,e))||this._read_control_flows(n,e))||this._read_raw_content(n,t,e))||this._read_content_word(n,e))||this._read_comment_or_cdata(n))||this._read_processing(n))||this._read_open(n,e))||this._create_token(s.UNKNOWN,this._input.next())},a.prototype._read_comment_or_cdata=function(t){var e=null,i=null,n=null;return"<"===t&&("!"===this._input.peek(1)&&((i=this.__patterns.comment.read())?(n=o.get_directives(i))&&"start"===n.ignore&&(i+=o.readIgnored(this._input)):i=this.__patterns.cdata.read()),i&&((e=this._create_token(s.COMMENT,i)).directives=n)),e},a.prototype._read_processing=function(t){var e=null,i=null;if("<"===t){var n=this._input.peek(1);"!"!==n&&"?"!==n||(i=(i=this.__patterns.conditional_comment.read())||this.__patterns.processing.read()),i&&((e=this._create_token(s.COMMENT,i)).directives=null)}return e},a.prototype._read_open=function(t,e){var i=null,n=null;return e&&e.type!==s.CONTROL_FLOW_OPEN||"<"===t&&(i=this._input.next(),"/"===this._input.peek()&&(i+=this._input.next()),i+=this.__patterns.element_name.read(),n=this._create_token(s.TAG_OPEN,i)),n},a.prototype._read_open_handlebars=function(t,e){var i=null,n=null;return e&&e.type!==s.CONTROL_FLOW_OPEN||this._options.indent_handlebars&&"{"===t&&"{"===this._input.peek(1)&&("!"===this._input.peek(2)?(i=(i=this.__patterns.handlebars_comment.read())||this.__patterns.handlebars.read(),n=this._create_token(s.COMMENT,i)):(i=this.__patterns.handlebars_open.read(),n=this._create_token(s.TAG_OPEN,i))),n},a.prototype._read_control_flows=function(t,e){var i="",n=null;if(!this._options.templating.includes("angular")||!this._options.indent_handlebars)return n;if("@"===t){if(""===(i=this.__patterns.angular_control_flow_start.read()))return n;for(var r=i.endsWith("(")?1:0,o=0;!i.endsWith("{")||r!==o;){var a=this._input.next();if(null===a)break;"("===a?r++:")"===a&&o++,i+=a}n=this._create_token(s.CONTROL_FLOW_OPEN,i)}else"}"===t&&e&&e.type===s.CONTROL_FLOW_OPEN&&(i=this._input.next(),n=this._create_token(s.CONTROL_FLOW_CLOSE,i));return n},a.prototype._read_close=function(t,e){var i=null,n=null;return e&&e.type===s.TAG_OPEN&&("<"===e.text[0]&&(">"===t||"/"===t&&">"===this._input.peek(1))?(i=this._input.next(),"/"===t&&(i+=this._input.next()),n=this._create_token(s.TAG_CLOSE,i)):"{"===e.text[0]&&"}"===t&&"}"===this._input.peek(1)&&(this._input.next(),this._input.next(),n=this._create_token(s.TAG_CLOSE,"}}"))),n},a.prototype._read_attribute=function(t,e,i){var n=null,r="";if(i&&"<"===i.text[0])if("="===t)n=this._create_token(s.EQUALS,this._input.next());else if('"'===t||"'"===t){var o=this._input.next();o+='"'===t?this.__patterns.double_quote.read():this.__patterns.single_quote.read(),n=this._create_token(s.VALUE,o)}else(r=this.__patterns.attribute.read())&&(n=e.type===s.EQUALS?this._create_token(s.VALUE,r):this._create_token(s.ATTRIBUTE,r));return n},a.prototype._is_content_unformatted=function(t){return-1===this._options.void_elements.indexOf(t)&&(-1!==this._options.content_unformatted.indexOf(t)||-1!==this._options.unformatted.indexOf(t))},a.prototype._read_raw_content=function(t,e,i){var n="";if(i&&"{"===i.text[0])n=this.__patterns.handlebars_raw_close.read();else if(e.type===s.TAG_CLOSE&&"<"===e.opened.text[0]&&"/"!==e.text[0]){var r=e.opened.text.substr(1).toLowerCase();if("script"===r||"style"===r){var o=this._read_comment_or_cdata(t);if(o)return o.type=s.TEXT,o;n=this._input.readUntil(new RegExp("","ig"))}else this._is_content_unformatted(r)&&(n=this._input.readUntil(new RegExp("","ig")))}return n?this._create_token(s.TEXT,n):null},a.prototype._read_content_word=function(t,e){var i="";if(this._options.unformatted_content_delimiter&&t===this._options.unformatted_content_delimiter[0]&&(i=this.__patterns.unformatted_content_delimiter.read()),i||(i=e&&e.type===s.CONTROL_FLOW_OPEN?this.__patterns.word_control_flow_close_excluded.read():this.__patterns.word.read()),i)return this._create_token(s.TEXT,i)},Pm.Tokenizer=a,Pm.TOKEN=s,Pm}function Im(){if(Um)return mm;Um=1;var t=bm().Options,e=function(){if(wm)return $m;function t(t){this.__parent=t,this.__character_count=0,this.__indent_count=-1,this.__alignment_count=0,this.__wrap_point_index=0,this.__wrap_point_character_count=0,this.__wrap_point_indent_count=-1,this.__wrap_point_alignment_count=0,this.__items=[]}function e(t,e){this.__cache=[""],this.__indent_size=t.indent_size,this.__indent_string=t.indent_char,t.indent_with_tabs||(this.__indent_string=new Array(t.indent_size+1).join(t.indent_char)),e=e||"",t.indent_level>0&&(e=new Array(t.indent_level+1).join(this.__indent_string)),this.__base_string=e,this.__base_string_length=e.length}function i(i,n){this.__indent_cache=new e(i,n),this.raw=!1,this._end_with_newline=i.end_with_newline,this.indent_size=i.indent_size,this.wrap_line_length=i.wrap_line_length,this.indent_empty_lines=i.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new t(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}return wm=1,t.prototype.clone_empty=function(){var e=new t(this.__parent);return e.set_indent(this.__indent_count,this.__alignment_count),e},t.prototype.item=function(t){return t<0?this.__items[this.__items.length+t]:this.__items[t]},t.prototype.has_match=function(t){for(var e=this.__items.length-1;e>=0;e--)if(this.__items[e].match(t))return!0;return!1},t.prototype.set_indent=function(t,e){this.is_empty()&&(this.__indent_count=t||0,this.__alignment_count=e||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},t.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},t.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},t.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var t=this.__parent.current_line;return t.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),t.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),t.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count," "===t.__items[0]&&(t.__items.splice(0,1),t.__character_count-=1),!0}return!1},t.prototype.is_empty=function(){return 0===this.__items.length},t.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},t.prototype.push=function(t){this.__items.push(t);var e=t.lastIndexOf("\n");-1!==e?this.__character_count=t.length-e:this.__character_count+=t.length},t.prototype.pop=function(){var t=null;return this.is_empty()||(t=this.__items.pop(),this.__character_count-=t.length),t},t.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},t.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},t.prototype.trim=function(){for(;" "===this.last();)this.__items.pop(),this.__character_count-=1},t.prototype.toString=function(){var t="";return this.is_empty()?this.__parent.indent_empty_lines&&(t=this.__parent.get_indent_string(this.__indent_count)):(t=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),t+=this.__items.join("")),t},e.prototype.get_indent_size=function(t,e){var i=this.__base_string_length;return e=e||0,t<0&&(i=0),(i+=t*this.__indent_size)+e},e.prototype.get_indent_string=function(t,e){var i=this.__base_string;return e=e||0,t<0&&(t=0,i=""),e+=t*this.__indent_size,this.__ensure_cache(e),i+this.__cache[e]},e.prototype.__ensure_cache=function(t){for(;t>=this.__cache.length;)this.__add_column()},e.prototype.__add_column=function(){var t=this.__cache.length,e=0,i="";this.__indent_size&&t>=this.__indent_size&&(t-=(e=Math.floor(t/this.__indent_size))*this.__indent_size,i=new Array(e+1).join(this.__indent_string)),t&&(i+=new Array(t+1).join(" ")),this.__cache.push(i)},i.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},i.prototype.get_line_number=function(){return this.__lines.length},i.prototype.get_indent_string=function(t,e){return this.__indent_cache.get_indent_string(t,e)},i.prototype.get_indent_size=function(t,e){return this.__indent_cache.get_indent_size(t,e)},i.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},i.prototype.add_new_line=function(t){return!(this.is_empty()||!t&&this.just_added_newline()||(this.raw||this.__add_outputline(),0))},i.prototype.get_code=function(t){this.trim(!0);var e=this.current_line.pop();e&&("\n"===e[e.length-1]&&(e=e.replace(/\n+$/g,"")),this.current_line.push(e)),this._end_with_newline&&this.__add_outputline();var i=this.__lines.join("\n");return"\n"!==t&&(i=i.replace(/[\n]/g,t)),i},i.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},i.prototype.set_indent=function(t,e){return t=t||0,e=e||0,this.next_line.set_indent(t,e),this.__lines.length>1?(this.current_line.set_indent(t,e),!0):(this.current_line.set_indent(),!1)},i.prototype.add_raw_token=function(t){for(var e=0;e1&&this.current_line.is_empty();)this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},i.prototype.just_added_newline=function(){return this.current_line.is_empty()},i.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},i.prototype.ensure_empty_line_above=function(e,i){for(var n=this.__lines.length-2;n>=0;){var r=this.__lines[n];if(r.is_empty())break;if(0!==r.item(0).indexOf(e)&&r.item(-1)!==i){this.__lines.splice(n+1,0,new t(this)),this.previous_line=this.__lines[this.__lines.length-2];break}n--}},$m.Output=i,$m}().Output,i=Dm().Tokenizer,n=Dm().TOKEN,r=/\r\n|[\r\n]/,s=/\r\n|[\r\n]/g,o=function(t,i){this.indent_level=0,this.alignment_size=0,this.max_preserve_newlines=t.max_preserve_newlines,this.preserve_newlines=t.preserve_newlines,this._output=new e(t,i)};o.prototype.current_line_has_match=function(t){return this._output.current_line.has_match(t)},o.prototype.set_space_before_token=function(t,e){this._output.space_before_token=t,this._output.non_breaking_space=e},o.prototype.set_wrap_point=function(){this._output.set_indent(this.indent_level,this.alignment_size),this._output.set_wrap_point()},o.prototype.add_raw_token=function(t){this._output.add_raw_token(t)},o.prototype.print_preserved_newlines=function(t){var e=0;t.type!==n.TEXT&&t.previous.type!==n.TEXT&&(e=t.newlines?1:0),this.preserve_newlines&&(e=t.newlines0);return 0!==e},o.prototype.traverse_whitespace=function(t){return!(!t.whitespace_before&&!t.newlines||(this.print_preserved_newlines(t)||(this._output.space_before_token=!0),0))},o.prototype.previous_token_wrapped=function(){return this._output.previous_token_wrapped},o.prototype.print_newline=function(t){this._output.add_new_line(t)},o.prototype.print_token=function(t){t.text&&(this._output.set_indent(this.indent_level,this.alignment_size),this._output.add_token(t.text))},o.prototype.indent=function(){this.indent_level++},o.prototype.deindent=function(){this.indent_level>0&&(this.indent_level--,this._output.set_indent(this.indent_level,this.alignment_size))},o.prototype.get_full_indent=function(t){return(t=this.indent_level+(t||0))<1?"":this._output.get_indent_string(t)};function a(t,e){return-1!==e.indexOf(t)}function l(t,e,i){this.parent=t||null,this.tag=e?e.tag_name:"",this.indent_level=i||0,this.parser_token=e||null}function h(t){this._printer=t,this._current_frame=null}function c(e,i,n,r){this._source_text=e||"",i=i||{},this._js_beautify=n,this._css_beautify=r,this._tag_stack=null;var s=new t(i,"html");this._options=s,this._is_wrap_attributes_force="force"===this._options.wrap_attributes.substr(0,5),this._is_wrap_attributes_force_expand_multiline="force-expand-multiline"===this._options.wrap_attributes,this._is_wrap_attributes_force_aligned="force-aligned"===this._options.wrap_attributes,this._is_wrap_attributes_aligned_multiple="aligned-multiple"===this._options.wrap_attributes,this._is_wrap_attributes_preserve="preserve"===this._options.wrap_attributes.substr(0,8),this._is_wrap_attributes_preserve_aligned="preserve-aligned"===this._options.wrap_attributes}h.prototype.get_parser_token=function(){return this._current_frame?this._current_frame.parser_token:null},h.prototype.record_tag=function(t){var e=new l(this._current_frame,t,this._printer.indent_level);this._current_frame=e},h.prototype._try_pop_frame=function(t){var e=null;return t&&(e=t.parser_token,this._printer.indent_level=t.indent_level,this._current_frame=t.parent),e},h.prototype._get_frame=function(t,e){for(var i=this._current_frame;i&&-1===t.indexOf(i.tag);){if(e&&-1!==e.indexOf(i.tag)){i=null;break}i=i.parent}return i},h.prototype.try_pop=function(t,e){var i=this._get_frame([t],e);return this._try_pop_frame(i)},h.prototype.indent_to_tag=function(t){var e=this._get_frame(t);e&&(this._printer.indent_level=e.indent_level)},c.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var t=this._source_text,e=this._options.eol;"auto"===this._options.eol&&(e="\n",t&&r.test(t)&&(e=t.match(r)[0]));var a=(t=t.replace(s,"\n")).match(/^[\t ]*/)[0],l={text:"",type:""},c=new u,d=new o(this._options,a),p=new i(t,this._options).tokenize();this._tag_stack=new h(d);for(var f=null,O=p.next();O.type!==n.EOF;)O.type===n.TAG_OPEN||O.type===n.COMMENT?c=f=this._handle_tag_open(d,O,c,l,p):O.type===n.ATTRIBUTE||O.type===n.EQUALS||O.type===n.VALUE||O.type===n.TEXT&&!c.tag_complete?f=this._handle_inside_tag(d,O,c,l):O.type===n.TAG_CLOSE?f=this._handle_tag_close(d,O,c):O.type===n.TEXT?f=this._handle_text(d,O,c):O.type===n.CONTROL_FLOW_OPEN?f=this._handle_control_flow_open(d,O):O.type===n.CONTROL_FLOW_CLOSE?f=this._handle_control_flow_close(d,O):d.add_raw_token(O),l=f,O=p.next();return d._output.get_code(e)},c.prototype._handle_control_flow_open=function(t,e){var i={text:e.text,type:e.type};return t.set_space_before_token(e.newlines||""!==e.whitespace_before,!0),e.newlines?t.print_preserved_newlines(e):t.set_space_before_token(e.newlines||""!==e.whitespace_before,!0),t.print_token(e),t.indent(),i},c.prototype._handle_control_flow_close=function(t,e){var i={text:e.text,type:e.type};return t.deindent(),e.newlines?t.print_preserved_newlines(e):t.set_space_before_token(e.newlines||""!==e.whitespace_before,!0),t.print_token(e),i},c.prototype._handle_tag_close=function(t,e,i){var n={text:e.text,type:e.type};return t.alignment_size=0,i.tag_complete=!0,t.set_space_before_token(e.newlines||""!==e.whitespace_before,!0),i.is_unformatted?t.add_raw_token(e):("<"===i.tag_start_char&&(t.set_space_before_token("/"===e.text[0],!0),this._is_wrap_attributes_force_expand_multiline&&i.has_wrapped_attrs&&t.print_newline(!1)),t.print_token(e)),!i.indent_content||i.is_unformatted||i.is_content_unformatted||(t.indent(),i.indent_content=!1),i.is_inline_element||i.is_unformatted||i.is_content_unformatted||t.set_wrap_point(),n},c.prototype._handle_inside_tag=function(t,e,i,r){var s=i.has_wrapped_attrs,o={text:e.text,type:e.type};return t.set_space_before_token(e.newlines||""!==e.whitespace_before,!0),i.is_unformatted?t.add_raw_token(e):"{"===i.tag_start_char&&e.type===n.TEXT?t.print_preserved_newlines(e)?(e.newlines=0,t.add_raw_token(e)):t.print_token(e):(e.type===n.ATTRIBUTE?t.set_space_before_token(!0):(e.type===n.EQUALS||e.type===n.VALUE&&e.previous.type===n.EQUALS)&&t.set_space_before_token(!1),e.type===n.ATTRIBUTE&&"<"===i.tag_start_char&&((this._is_wrap_attributes_preserve||this._is_wrap_attributes_preserve_aligned)&&(t.traverse_whitespace(e),s=s||0!==e.newlines),this._is_wrap_attributes_force&&i.attr_count>=this._options.wrap_attributes_min_attrs&&(r.type!==n.TAG_OPEN||this._is_wrap_attributes_force_expand_multiline)&&(t.print_newline(!1),s=!0)),t.print_token(e),s=s||t.previous_token_wrapped(),i.has_wrapped_attrs=s),o},c.prototype._handle_text=function(t,e,i){var n={text:e.text,type:"TK_CONTENT"};return i.custom_beautifier_name?this._print_custom_beatifier_text(t,e,i):i.is_unformatted||i.is_content_unformatted?t.add_raw_token(e):(t.traverse_whitespace(e),t.print_token(e)),n},c.prototype._print_custom_beatifier_text=function(t,e,i){var n=this;if(""!==e.text){var r,s=e.text,o=1,a="",l="";"javascript"===i.custom_beautifier_name&&"function"==typeof this._js_beautify?r=this._js_beautify:"css"===i.custom_beautifier_name&&"function"==typeof this._css_beautify?r=this._css_beautify:"html"===i.custom_beautifier_name&&(r=function(t,e){return new c(t,e,n._js_beautify,n._css_beautify).beautify()}),"keep"===this._options.indent_scripts?o=0:"separate"===this._options.indent_scripts&&(o=-t.indent_level);var h=t.get_full_indent(o);if(s=s.replace(/\n[ \t]*$/,""),"html"!==i.custom_beautifier_name&&"<"===s[0]&&s.match(/^(|]]>)$/.exec(s);if(!u)return void t.add_raw_token(e);a=h+u[1]+"\n",s=u[4],u[5]&&(l=h+u[5]),s=s.replace(/\n[ \t]*$/,""),(u[2]||-1!==u[3].indexOf("\n"))&&(u=u[3].match(/[ \t]+$/))&&(e.whitespace_before=u[0])}if(s)if(r){var d=function(){this.eol="\n"};d.prototype=this._options.raw_options,s=r(h+s,new d)}else{var p=e.whitespace_before;p&&(s=s.replace(new RegExp("\n("+p+")?","g"),"\n")),s=h+s.replace(/\n/g,"\n"+h)}a&&(s=s?a+s+"\n"+l:a+l),t.print_newline(!1),s&&(e.text=s,e.whitespace_before="",e.newlines=0,t.add_raw_token(e),t.print_newline(!0))}},c.prototype._handle_tag_open=function(t,e,i,r,s){var o=this._get_tag_open_token(e);if(!i.is_unformatted&&!i.is_content_unformatted||i.is_empty_element||e.type!==n.TAG_OPEN||o.is_start_tag?(t.traverse_whitespace(e),this._set_tag_position(t,e,o,i,r),o.is_inline_element||t.set_wrap_point(),t.print_token(e)):(t.add_raw_token(e),o.start_tag_token=this._tag_stack.try_pop(o.tag_name)),o.is_start_tag&&this._is_wrap_attributes_force){var a,l=0;do{(a=s.peek(l)).type===n.ATTRIBUTE&&(o.attr_count+=1),l+=1}while(a.type!==n.EOF&&a.type!==n.TAG_CLOSE)}return(this._is_wrap_attributes_force_aligned||this._is_wrap_attributes_aligned_multiple||this._is_wrap_attributes_preserve_aligned)&&(o.alignment_size=e.text.length+1),o.tag_complete||o.is_unformatted||(t.alignment_size=o.alignment_size),o};var u=function(t,e){if(this.parent=t||null,this.text="",this.type="TK_TAG_OPEN",this.tag_name="",this.is_inline_element=!1,this.is_unformatted=!1,this.is_content_unformatted=!1,this.is_empty_element=!1,this.is_start_tag=!1,this.is_end_tag=!1,this.indent_content=!1,this.multiline_content=!1,this.custom_beautifier_name=null,this.start_tag_token=null,this.attr_count=0,this.has_wrapped_attrs=!1,this.alignment_size=0,this.tag_complete=!1,this.tag_start_char="",this.tag_check="",e){var i;this.tag_start_char=e.text[0],this.text=e.text,"<"===this.tag_start_char?(i=e.text.match(/^<([^\s>]*)/),this.tag_check=i?i[1]:""):(i=e.text.match(/^{{~?(?:[\^]|#\*?)?([^\s}]+)/),this.tag_check=i?i[1]:"",(e.text.startsWith("{{#>")||e.text.startsWith("{{~#>"))&&">"===this.tag_check[0]&&(">"===this.tag_check&&null!==e.next?this.tag_check=e.next.text.split(" ")[0]:this.tag_check=e.text.split(">")[1])),this.tag_check=this.tag_check.toLowerCase(),e.type===n.COMMENT&&(this.tag_complete=!0),this.is_start_tag="/"!==this.tag_check.charAt(0),this.tag_name=this.is_start_tag?this.tag_check:this.tag_check.substr(1),this.is_end_tag=!this.is_start_tag||e.closed&&"/>"===e.closed.text;var r=2;"{"===this.tag_start_char&&this.text.length>=3&&"~"===this.text.charAt(2)&&(r=3),this.is_end_tag=this.is_end_tag||"{"===this.tag_start_char&&(this.text.length<3||/[^#\^]/.test(this.text.charAt(r)))}else this.tag_complete=!0};c.prototype._get_tag_open_token=function(t){var e=new u(this._tag_stack.get_parser_token(),t);return e.alignment_size=this._options.wrap_attributes_indent_size,e.is_end_tag=e.is_end_tag||a(e.tag_check,this._options.void_elements),e.is_empty_element=e.tag_complete||e.is_start_tag&&e.is_end_tag,e.is_unformatted=!e.tag_complete&&a(e.tag_check,this._options.unformatted),e.is_content_unformatted=!e.is_empty_element&&a(e.tag_check,this._options.content_unformatted),e.is_inline_element=a(e.tag_name,this._options.inline)||this._options.inline_custom_elements&&e.tag_name.includes("-")||"{"===e.tag_start_char,e},c.prototype._set_tag_position=function(t,e,i,r,s){if(i.is_empty_element||(i.is_end_tag?i.start_tag_token=this._tag_stack.try_pop(i.tag_name):(this._do_optional_end_element(i)&&(i.is_inline_element||t.print_newline(!1)),this._tag_stack.record_tag(i),"script"!==i.tag_name&&"style"!==i.tag_name||i.is_unformatted||i.is_content_unformatted||(i.custom_beautifier_name=function(t,e){var i=null,r=null;return e.closed?("script"===t?i="text/javascript":"style"===t&&(i="text/css"),i=function(t){for(var e=null,i=t.next;i.type!==n.EOF&&t.closed!==i;){if(i.type===n.ATTRIBUTE&&"type"===i.text){i.next&&i.next.type===n.EQUALS&&i.next.next&&i.next.next.type===n.VALUE&&(e=i.next.next.text);break}i=i.next}return e}(e)||i,i.search("text/css")>-1?r="css":i.search(/module|((text|application|dojo)\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\+)?json|method|aspect))/)>-1?r="javascript":i.search(/(text|application|dojo)\/(x-)?(html)/)>-1?r="html":i.search(/test\/null/)>-1&&(r="null"),r):null}(i.tag_check,e)))),a(i.tag_check,this._options.extra_liners)&&(t.print_newline(!1),t._output.just_added_blankline()||t.print_newline(!0)),i.is_empty_element)"{"===i.tag_start_char&&"else"===i.tag_check&&(this._tag_stack.indent_to_tag(["if","unless","each"]),i.indent_content=!0,t.current_line_has_match(/{{#if/)||t.print_newline(!1)),"!--"===i.tag_name&&s.type===n.TAG_CLOSE&&r.is_end_tag&&-1===i.text.indexOf("\n")||(i.is_inline_element||i.is_unformatted||t.print_newline(!1),this._calcluate_parent_multiline(t,i));else if(i.is_end_tag){var o=!1;o=(o=i.start_tag_token&&i.start_tag_token.multiline_content)||!i.is_inline_element&&!(r.is_inline_element||r.is_unformatted)&&!(s.type===n.TAG_CLOSE&&i.start_tag_token===r)&&"TK_CONTENT"!==s.type,(i.is_content_unformatted||i.is_unformatted)&&(o=!1),o&&t.print_newline(!1)}else i.indent_content=!i.custom_beautifier_name,"<"===i.tag_start_char&&("html"===i.tag_name?i.indent_content=this._options.indent_inner_html:"head"===i.tag_name?i.indent_content=this._options.indent_head_inner_html:"body"===i.tag_name&&(i.indent_content=this._options.indent_body_inner_html)),i.is_inline_element||i.is_unformatted||"TK_CONTENT"===s.type&&!i.is_content_unformatted||t.print_newline(!1),this._calcluate_parent_multiline(t,i)},c.prototype._calcluate_parent_multiline=function(t,e){!e.parent||!t._output.just_added_newline()||(e.is_inline_element||e.is_unformatted)&&e.parent.is_inline_element||(e.parent.multiline_content=!0)};var d=["address","article","aside","blockquote","details","div","dl","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hr","main","menu","nav","ol","p","pre","section","table","ul"],p=["a","audio","del","ins","map","noscript","video"];return c.prototype._do_optional_end_element=function(t){var e=null;if(!t.is_empty_element&&t.is_start_tag&&t.parent){if("body"===t.tag_name)e=e||this._tag_stack.try_pop("head");else if("li"===t.tag_name)e=e||this._tag_stack.try_pop("li",["ol","ul","menu"]);else if("dd"===t.tag_name||"dt"===t.tag_name)e=(e=e||this._tag_stack.try_pop("dt",["dl"]))||this._tag_stack.try_pop("dd",["dl"]);else if("p"===t.parent.tag_name&&-1!==d.indexOf(t.tag_name)){var i=t.parent.parent;i&&-1!==p.indexOf(i.tag_name)||(e=e||this._tag_stack.try_pop("p"))}else"rp"===t.tag_name||"rt"===t.tag_name?e=(e=e||this._tag_stack.try_pop("rt",["ruby","rtc"]))||this._tag_stack.try_pop("rp",["ruby","rtc"]):"optgroup"===t.tag_name?e=e||this._tag_stack.try_pop("optgroup",["select"]):"option"===t.tag_name?e=e||this._tag_stack.try_pop("option",["select","datalist","optgroup"]):"colgroup"===t.tag_name?e=e||this._tag_stack.try_pop("caption",["table"]):"thead"===t.tag_name?e=(e=e||this._tag_stack.try_pop("caption",["table"]))||this._tag_stack.try_pop("colgroup",["table"]):"tbody"===t.tag_name||"tfoot"===t.tag_name?e=(e=(e=(e=e||this._tag_stack.try_pop("caption",["table"]))||this._tag_stack.try_pop("colgroup",["table"]))||this._tag_stack.try_pop("thead",["table"]))||this._tag_stack.try_pop("tbody",["table"]):"tr"===t.tag_name?e=(e=(e=e||this._tag_stack.try_pop("caption",["table"]))||this._tag_stack.try_pop("colgroup",["table"]))||this._tag_stack.try_pop("tr",["table","thead","tbody","tfoot"]):"th"!==t.tag_name&&"td"!==t.tag_name||(e=(e=e||this._tag_stack.try_pop("td",["table","thead","tbody","tfoot","tr"]))||this._tag_stack.try_pop("th",["table","thead","tbody","tfoot","tr"]));return t.parent=this._tag_stack.get_parser_token(),e}},mm.Beautifier=c,mm}var Nm=function(){if(qm)return Om.exports;qm=1;var t=Im().Beautifier,e=bm().Options;return Om.exports=function(e,i,n,r){return new t(e,i,n,r).beautify()},Om.exports.defaultOptions=function(){return new e},Om.exports}(),Gm=dm(Nm);const Bm=t=>Gm(t,{indent_size:2,preserve_newlines:!1}),Lm=t=>lm(KO(t),".cm-scroller");tinymce.Resource.add("tinymce.plugins.advcode.CodeMirror",QO(((t,e,i,n)=>{let r=n.dark;var s,o;s=KO(t),o="mce-codemirror",hm(s)?s.dom.classList.add(o):((t,e)=>{am(t,"class",e)})(s,o);const{root:a,parent:l}=(t=>{var e;const i=e=>{e.preventDefault(),e.stopPropagation();const i=new KeyboardEvent(e.type,{key:e.key,code:e.code,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,which:e.which,keyCode:e.keyCode,bubbles:!0,cancelable:!0});t.dispatchEvent(i)};if(t.shadowRoot)return{root:t.shadowRoot,parent:null===(e=t.shadowRoot)||void 0===e?void 0:e.firstElementChild};{const e=t.attachShadow({mode:"open"}),n=document.createElement("div");n.style.display="flex",n.style.width="100%",n.style.height="100%",n.addEventListener("focusin",(e=>{e.preventDefault(),e.stopPropagation();const i=new KeyboardEvent("focusin",{bubbles:!0,cancelable:!0});t.dispatchEvent(i)}));let r=!1;return n.addEventListener("keyup",(t=>{"Escape"===t.key&&r&&(i(t),r=!1)})),n.addEventListener("keydown",(t=>{"Escape"===t.key&&(r=!0);const e=$O.from(t.target instanceof window.Element?KO(t.target):null),s=lm(KO(n),".cm-panels.cm-panels-bottom").bind(im).bind(im).exists((e=>e.dom===t.target))&&!t.shiftKey;"Tab"===t.key&&e.exists((t=>{return hm(e=t)&&e.dom.classList.contains("cm-content")||s;var e}))&&i(t)})),e.append(n),{root:e,parent:n}}})(t),h=()=>{const t=r?"dark":"light";return[{light:[Yr.theme({"&.cm-editor":{"background-color":"#FFFFFF"}}),Yr.theme({"&":{color:"rgb(34, 47, 62)"},"&.cm-editor":{"background-color":"#FFFFFF"}}),Pl(Cl)],dark:[OO,Pl(mO)]}[t],Yr.theme({"&":{flex:"1"},"&.cm-editor.cm-focused":{outline:"none"}}),Yr.contentAttributes.of({"aria-label":"Source code"}),Os(),Ul({brackets:""}),Sc(),es(),sc({icons:!1}),...e.lineWrapping?[Yr.lineWrapping]:[],...e.lineNumbers?[Js()]:[],...e.foldGutter?[vl({openText:"\u25be",closedText:"\u25b8"})]:[],ml({placeholderText:"\u2194"}),sf(),e.gutter?[qs()]:[],qr.of([...Xu,...zc,...nc,...pl,...oc,{key:"Mod-g",run:vf,scope:"editor search-panel"},{key:"Mod-Alt-g",run:vf,scope:"editor search-panel"},{key:"Mod-f",run:Kf,scope:"editor search-panel"},{key:"F3",run:Vf,shift:jf,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Jf,scope:"editor search-panel",stopPropagation:!0},{key:"Mod-Shift-l",run:If},{key:"Mod-d",run:Qf,preventDefault:!0},{key:"Mod-b",run:Qf,preventDefault:!0},{key:"Tab",run:Xh}])]},c=new Yr({doc:i,extensions:h(),root:a,parent:l}),u=t=>c.dispatch({changes:{from:0,to:c.state.doc.length,insert:t}}),d=()=>c.state.doc.toString();setTimeout((()=>{c.focus(),FO().browser.isFirefox()&&p(),e.cursor&&c.dispatch({selection:X.single(Math.min(e.cursor,c.state.doc.length)),scrollIntoView:!0})}),0);const p=()=>{c.setState(_t.create({doc:c.state.doc,selection:c.state.selection,extensions:h()}))},f=t=>{Lm(a).each((e=>{t.fold((()=>{((t,e)=>{((t,e)=>{sm(t)&&t.style.removeProperty(e)})(t.dom,e),((t,e,i=xO)=>t.exists((t=>i(t,e))))((t=>$O.from(rm(t,"style")))(t).map(CO),"")&&(t=>{t.dom.removeAttribute("style")})(t)})(e,"font-size")}),(t=>{((t,e,i)=>{((t,e,i)=>{if(!_O(i))throw console.error("Invalid call to CSS.set. Property ",e,":: Value ",i,":: Element ",t),new Error("CSS value must be a string: "+i);sm(t)&&t.style.setProperty(e,i)})(t.dom,e,i)})(e,"font-size",t)})),p()}))},O={getValue:d,setValue:u,setDarkMode:t=>{r=t,p()},copyCode:()=>new Promise(((t,e)=>window.isSecureContext?t(navigator.clipboard.writeText(d())):e("context is not secure"))),formatCode:()=>{const{from:t,to:e}=c.state.selection.main;if(t===e){const t=Bm(d());u(t)}else{const i=Bm(((t,e)=>c.state.sliceDoc(t,e))(t,e));((t,e,i)=>{c.dispatch({changes:{from:t,to:e,insert:i}})})(t,e,i)}},setFontSize:f,changeFontSize:t=>{const e=Lm(a).map((t=>((t,e)=>{const i=t.dom,n=window.getComputedStyle(i).getPropertyValue(e);return""!==n||om(t)?n:((t,e)=>sm(t)?t.style.getPropertyValue(e):"")(i,e)})(t,"font-size"))).getOr("0px"),i=(s=e,o=["unsupportedLength"],$O.from(um.exec(s)).bind((t=>{const e=Number(t[1]),i=t[2];return((t,e)=>PO(e,(e=>PO(cm[e],(e=>t===e)))))(i,o)?$O.some({value:e,unit:i}):$O.none()}))),n=i.map((t=>t.value)).getOr(0),r=i.map((t=>t.unit)).getOr("");var s,o;let l=$O.none();return"increase"===t&&(l=$O.some(`${n+1}${r}`)),"decrease"===t&&(l=$O.some(`${n>5?n-1:n}${r}`)),f(l),l},focus:()=>{c.focus()},destroy:()=>{c.destroy()}};return f(n.fontSize),O})))}(); \ No newline at end of file diff --git a/plugins/advcode/customeditor.js b/plugins/advcode/customeditor.js new file mode 100644 index 00000000..283b34c5 --- /dev/null +++ b/plugins/advcode/customeditor.js @@ -0,0 +1,10 @@ +/*! + * Tiny Enhanced Code Editor plugin + * + * Copyright (c) 2023 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + * + * Version: 8.3.0-112 + */ + +!function(){"use strict";const t=()=>{};class e{tag;value;static singletonNone=new e(!1);constructor(t,e){this.tag=t,this.value=e}static some(t){return new e(!0,t)}static none(){return e.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?e.some(t(this.value)):e.none()}bind(t){return this.tag?t(this.value):e.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:e.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(t??"Called getOrDie on None")}static from(t){return null==t?e.none():e.some(t)}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}const r=Object.hasOwnProperty,n=t=>{return(n=tinymce,((t,e)=>r.call(t,e))(n,"get")?e.from(n.get):e.none()).bind((r=>e.from(r.call(tinymce,t))));var n};tinymce.Resource.add("tinymce.plugins.advcode.customeditor",((r,s)=>new Promise((i=>{i((async t=>{var e;return(await(e=t,tinymce.Resource.load("tinymce.plugins.advcode.CodeMirror",e)))()})(s.codeMirrorScriptUrl).then((i=>{const{setValue:a,getValue:o,copyCode:u,formatCode:h,setDarkMode:l,changeFontSize:c,setFontSize:g,destroy:d}=i(r,s,"",s.currentAdvStatus),v={getValue:o,setValue:a,destroy:d};var m,y;return(m=s.editorId,y=s.advcodeInstanceId,n(m).bind((t=>e.from(t.plugins.advcode))).map((r=>(r[y]||(r[y]=(()=>{const r=(t=>{const r=(t=>{let e=t;return{get:()=>e,set:t=>{e=t}}})(e.none()),n=()=>r.get().each(t);return{clear:()=>{n(),r.set(e.none())},isSet:()=>r.get().isSome(),get:()=>r.get(),set:t=>{n(),r.set(e.some(t))}}})(t);return{...r,on:t=>r.get().each(t)}})()),r[y])))).each((t=>t.set({copyCode:u,formatCode:h,changeFontSize:c,setFontSize:g,setDarkMode:l}))),v})))}))))}(); \ No newline at end of file diff --git a/plugins/advcode/customeditor.min.js b/plugins/advcode/customeditor.min.js new file mode 100644 index 00000000..283b34c5 --- /dev/null +++ b/plugins/advcode/customeditor.min.js @@ -0,0 +1,10 @@ +/*! + * Tiny Enhanced Code Editor plugin + * + * Copyright (c) 2023 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + * + * Version: 8.3.0-112 + */ + +!function(){"use strict";const t=()=>{};class e{tag;value;static singletonNone=new e(!1);constructor(t,e){this.tag=t,this.value=e}static some(t){return new e(!0,t)}static none(){return e.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?e.some(t(this.value)):e.none()}bind(t){return this.tag?t(this.value):e.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:e.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(t??"Called getOrDie on None")}static from(t){return null==t?e.none():e.some(t)}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}const r=Object.hasOwnProperty,n=t=>{return(n=tinymce,((t,e)=>r.call(t,e))(n,"get")?e.from(n.get):e.none()).bind((r=>e.from(r.call(tinymce,t))));var n};tinymce.Resource.add("tinymce.plugins.advcode.customeditor",((r,s)=>new Promise((i=>{i((async t=>{var e;return(await(e=t,tinymce.Resource.load("tinymce.plugins.advcode.CodeMirror",e)))()})(s.codeMirrorScriptUrl).then((i=>{const{setValue:a,getValue:o,copyCode:u,formatCode:h,setDarkMode:l,changeFontSize:c,setFontSize:g,destroy:d}=i(r,s,"",s.currentAdvStatus),v={getValue:o,setValue:a,destroy:d};var m,y;return(m=s.editorId,y=s.advcodeInstanceId,n(m).bind((t=>e.from(t.plugins.advcode))).map((r=>(r[y]||(r[y]=(()=>{const r=(t=>{const r=(t=>{let e=t;return{get:()=>e,set:t=>{e=t}}})(e.none()),n=()=>r.get().each(t);return{clear:()=>{n(),r.set(e.none())},isSet:()=>r.get().isSome(),get:()=>r.get(),set:t=>{n(),r.set(e.some(t))}}})(t);return{...r,on:t=>r.get().each(t)}})()),r[y])))).each((t=>t.set({copyCode:u,formatCode:h,changeFontSize:c,setFontSize:g,setDarkMode:l}))),v})))}))))}(); \ No newline at end of file diff --git a/plugins/advcode/index.js b/plugins/advcode/index.js new file mode 100644 index 00000000..84099810 --- /dev/null +++ b/plugins/advcode/index.js @@ -0,0 +1,3 @@ +require('./codemirror.min.js'); +require('./customeditor.js'); +require('./plugin.js'); \ No newline at end of file diff --git a/plugins/advcode/index.mjs b/plugins/advcode/index.mjs new file mode 100644 index 00000000..d7dd582c --- /dev/null +++ b/plugins/advcode/index.mjs @@ -0,0 +1,3 @@ +import './codemirror.min.js'; +import './customeditor.js'; +import './plugin.js'; \ No newline at end of file diff --git a/plugins/advcode/langs/ar.js b/plugins/advcode/langs/ar.js new file mode 100644 index 00000000..93c1cc51 --- /dev/null +++ b/plugins/advcode/langs/ar.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ar", { + "Cancel": "\u0625\u0644\u063a\u0627\u0621", + "Completions": "\u0627\u0644\u0625\u0643\u0645\u0627\u0644\u0627\u062a", + "Control character": "\u062d\u0631\u0641 \u0627\u0644\u062a\u062d\u0643\u0645", + "Copy code": "\u0646\u0633\u062e \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629", + "Dark/light mode": "\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062f\u0627\u0643\u0646/\u0627\u0644\u0641\u0627\u062a\u062d", + "Decrease font size": "\u062a\u0635\u063a\u064a\u0631 \u062d\u062c\u0645 \u0627\u0644\u062e\u0637", + "Diagnostics": "\u0627\u0644\u062a\u0634\u062e\u064a\u0635", + "Fold line": "\u0637\u064a \u0627\u0644\u0633\u0637\u0631", + "Folded lines": "\u062a\u0645 \u0637\u064a \u0633\u0637\u0648\u0631", + "Format code": "\u0631\u0645\u0632 \u0627\u0644\u062a\u0646\u0633\u064a\u0642", + "Fullscreen": "\u0645\u0644\u0621 \u0627\u0644\u0634\u0627\u0634\u0629", + "Go to line": "\u0627\u0644\u0627\u0646\u062a\u0642\u0627\u0644 \u0625\u0644\u0649 \u0627\u0644\u0633\u0637\u0631", + "Increase font size": "\u062a\u0643\u0628\u064a\u0631 \u062d\u062c\u0645 \u0627\u0644\u062e\u0637", + "No diagnostics": "\u0644\u0627 \u064a\u0648\u062c\u062f \u062a\u0634\u062e\u064a\u0635", + "Save code": "\u0631\u0645\u0632 \u0627\u0644\u062d\u0641\u0638", + "Selection deleted": "\u062a\u0645 \u062d\u0630\u0641 \u0627\u0644\u062a\u062d\u062f\u064a\u062f", + "Unfold line": "\u062a\u0648\u0633\u064a\u0639 \u0627\u0644\u0633\u0637\u0631", + "Unfolded lines": "\u062a\u0645 \u062a\u0648\u0633\u064a\u0639 \u0633\u0637\u0648\u0631", + "by word": "\u0628\u0627\u0644\u0643\u0644\u0645\u0629", + "current match": "\u0627\u0644\u062a\u0637\u0627\u0628\u0642 \u0627\u0644\u062d\u0627\u0644\u064a", + "folded code": "\u062a\u0645 \u0637\u064a \u0631\u0645\u0632 \u0628\u0631\u0645\u062c\u064a", + "go": "\u0627\u0646\u062a\u0642\u0627\u0644", + "on line": "\u0641\u064a \u0627\u0644\u0633\u0637\u0631", + "replaced $ matches": "\u062a\u0645 \u0627\u0633\u062a\u0628\u062f\u0627\u0644 $ \u0645\u0646 \u0627\u0644\u062a\u0637\u0627\u0628\u0642\u0627\u062a", + "replaced match on line $": "\u062a\u0645 \u0627\u0633\u062a\u0628\u062f\u0627\u0644 \u0627\u0644\u062a\u0637\u0627\u0628\u0642 \u0641\u064a \u0627\u0644\u0633\u0637\u0631 $", + "to": "\u0625\u0644\u0649", + "unfold": "\u062a\u0648\u0633\u064a\u0639" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/bg-BG.js b/plugins/advcode/langs/bg-BG.js new file mode 100644 index 00000000..71b701e3 --- /dev/null +++ b/plugins/advcode/langs/bg-BG.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("bg-BG", { + "Cancel": "\u041e\u0442\u043a\u0430\u0437", + "Completions": "\u0417\u0430\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0438\u044f", + "Control character": "\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u043d \u0437\u043d\u0430\u043a", + "Copy code": "\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u0434", + "Dark/light mode": "\u0422\u044a\u043c\u0435\u043d/\u0441\u0432\u0435\u0442\u044a\u043b \u0440\u0435\u0436\u0438\u043c", + "Decrease font size": "\u041d\u0430\u043c\u0430\u043b\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043d\u0430 \u0448\u0440\u0438\u0444\u0442\u0430", + "Diagnostics": "\u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430", + "Fold line": "\u0421\u0433\u044a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434", + "Folded lines": "\u0421\u0433\u044a\u043d\u0430\u0442\u0438 \u0440\u0435\u0434\u043e\u0432\u0435", + "Format code": "\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u0434\u0430", + "Fullscreen": "\u041d\u0430 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d", + "Go to line": "\u041e\u0442\u0438\u0434\u0438 \u043d\u0430 \u0440\u0435\u0434", + "Increase font size": "\u0423\u0432\u0435\u043b\u0438\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043d\u0430 \u0448\u0440\u0438\u0444\u0442\u0430", + "No diagnostics": "\u0411\u0435\u0437 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430", + "Save code": "\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u0434\u0430", + "Selection deleted": "\u0418\u0437\u0431\u043e\u0440\u044a\u0442 \u0435 \u0438\u0437\u0442\u0440\u0438\u0442", + "Unfold line": "\u0420\u0430\u0437\u0433\u044a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434", + "Unfolded lines": "\u0420\u0430\u0437\u0433\u044a\u043d\u0430\u0442\u0438 \u0440\u0435\u0434\u043e\u0432\u0435", + "by word": "\u043f\u043e \u0434\u0443\u043c\u0430", + "current match": "\u0442\u0435\u043a\u0443\u0449\u043e \u0441\u044a\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435", + "folded code": "\u0441\u0433\u044a\u043d\u0430\u0442 \u043a\u043e\u0434", + "go": "\u043e\u0442\u0438\u0434\u0438", + "on line": "\u043d\u0430 \u0440\u0435\u0434", + "replaced $ matches": "\u0437\u0430\u043c\u0435\u043d\u0435\u043d\u0438 $ \u0441\u044a\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f", + "replaced match on line $": "\u0437\u0430\u043c\u0435\u043d\u0435\u043d\u043e \u0441\u044a\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u0440\u0435\u0434 $", + "to": "\u0434\u043e", + "unfold": "\u0440\u0430\u0437\u0433\u044a\u0432\u0430\u043d\u0435" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/bg_BG.js b/plugins/advcode/langs/bg_BG.js new file mode 100644 index 00000000..b435510a --- /dev/null +++ b/plugins/advcode/langs/bg_BG.js @@ -0,0 +1,37 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("bg-BG", { + "Cancel": "\u041e\u0442\u043a\u0430\u0437", + "Completions": "\u0417\u0430\u0432\u044a\u0440\u0448\u0432\u0430\u043d\u0438\u044f", + "Control character": "\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u043d \u0437\u043d\u0430\u043a", + "Copy code": "\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u0434", + "Dark/light mode": "\u0422\u044a\u043c\u0435\u043d/\u0441\u0432\u0435\u0442\u044a\u043b \u0440\u0435\u0436\u0438\u043c", + "Decrease font size": "\u041d\u0430\u043c\u0430\u043b\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043d\u0430 \u0448\u0440\u0438\u0444\u0442\u0430", + "Diagnostics": "\u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430", + "Fold line": "\u0421\u0433\u044a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434", + "Folded lines": "\u0421\u0433\u044a\u043d\u0430\u0442\u0438 \u0440\u0435\u0434\u043e\u0432\u0435", + "Format code": "\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u0434\u0430", + "Fullscreen": "\u041d\u0430 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d", + "Go to line": "\u041e\u0442\u0438\u0434\u0438 \u043d\u0430 \u0440\u0435\u0434", + "Increase font size": "\u0423\u0432\u0435\u043b\u0438\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043d\u0430 \u0448\u0440\u0438\u0444\u0442\u0430", + "No diagnostics": "\u0411\u0435\u0437 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430", + "Save code": "\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u0434\u0430", + "Selection deleted": "\u0418\u0437\u0431\u043e\u0440\u044a\u0442 \u0435 \u0438\u0437\u0442\u0440\u0438\u0442", + "Unfold line": "\u0420\u0430\u0437\u0433\u044a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434", + "Unfolded lines": "\u0420\u0430\u0437\u0433\u044a\u043d\u0430\u0442\u0438 \u0440\u0435\u0434\u043e\u0432\u0435", + "by word": "\u043f\u043e \u0434\u0443\u043c\u0430", + "current match": "\u0442\u0435\u043a\u0443\u0449\u043e \u0441\u044a\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435", + "folded code": "\u0441\u0433\u044a\u043d\u0430\u0442 \u043a\u043e\u0434", + "go": "\u043e\u0442\u0438\u0434\u0438", + "on line": "\u043d\u0430 \u0440\u0435\u0434", + "replaced $ matches": "\u0437\u0430\u043c\u0435\u043d\u0435\u043d\u0438 $ \u0441\u044a\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f", + "replaced match on line $": "\u0437\u0430\u043c\u0435\u043d\u0435\u043d\u043e \u0441\u044a\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u0440\u0435\u0434 $", + "to": "\u0434\u043e", + "unfold": "\u0440\u0430\u0437\u0433\u044a\u0432\u0430\u043d\u0435" +}); + +console.warn('TinyMCE language code "bg_BG" is deprecated, please use "bg-BG" instead.'); \ No newline at end of file diff --git a/plugins/advcode/langs/ca.js b/plugins/advcode/langs/ca.js new file mode 100644 index 00000000..aa012dde --- /dev/null +++ b/plugins/advcode/langs/ca.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ca", { + "Cancel": "Cancel\xb7la", + "Completions": "Finalitzacions", + "Control character": "Car\xe0cter de control", + "Copy code": "Copiar el codi", + "Dark/light mode": "Mode fosc/clar", + "Decrease font size": "Reduir el cos de lletra", + "Diagnostics": "Diagn\xf2stic", + "Fold line": "Contreure la l\xednia", + "Folded lines": "L\xednies contretes", + "Format code": "Codi del format", + "Fullscreen": "Pantalla completa", + "Go to line": "Anar a la l\xednia", + "Increase font size": "Augmentar el cos de lletra", + "No diagnostics": "Sense diagn\xf2stic", + "Save code": "Desa el codi", + "Selection deleted": "Selecci\xf3 eliminada", + "Unfold line": "Expandir la l\xednia", + "Unfolded lines": "L\xednies expandides", + "by word": "paraula completa", + "current match": "coincid\xe8ncia actual", + "folded code": "codi contret", + "go": "anar", + "on line": "a la l\xednia", + "replaced $ matches": "s'han reempla\xe7at $ coincid\xe8ncies", + "replaced match on line $": "s'ha reempla\xe7at la coincid\xe8ncia a la l\xednia $", + "to": "a", + "unfold": "expandir" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/cs.js b/plugins/advcode/langs/cs.js new file mode 100644 index 00000000..8a6e648e --- /dev/null +++ b/plugins/advcode/langs/cs.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("cs", { + "Cancel": "Zru\u0161it", + "Completions": "Dokon\u010den\xed", + "Control character": "Kontroln\xed znak", + "Copy code": "Kop\xedrovat k\xf3d", + "Dark/light mode": "Tmav\xfd/sv\u011btl\xfd re\u017eim", + "Decrease font size": "Zmen\u0161it velikost p\xedsma", + "Diagnostics": "Diagnostika", + "Fold line": "Slo\u017eit \u0159\xe1dek", + "Folded lines": "Slo\u017een\xe9 \u0159\xe1dky", + "Format code": "Form\xe1tovat k\xf3d", + "Fullscreen": "Cel\xe1 obrazovka", + "Go to line": "P\u0159ej\xedt na \u0159\xe1dek", + "Increase font size": "Zv\u011bt\u0161it velikost p\xedsma", + "No diagnostics": "\u017d\xe1dn\xe1 diagnostika", + "Save code": "Ulo\u017eit k\xf3d", + "Selection deleted": "V\xfdb\u011br odstran\u011bn", + "Unfold line": "Rozlo\u017eit \u0159\xe1dek", + "Unfolded lines": "Rozlo\u017een\xe9 \u0159\xe1dky", + "by word": "podle slova", + "current match": "aktu\xe1ln\xed shoda", + "folded code": "slo\u017een\xfd k\xf3d", + "go": "p\u0159ej\xedt", + "on line": "na \u0159\xe1dku", + "replaced $ matches": "nahrazen\xe9 shody ($)", + "replaced match on line $": "nahrazen\xe1 shoda na \u0159\xe1dku $", + "to": "a\u017e", + "unfold": "rozlo\u017eit" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/da.js b/plugins/advcode/langs/da.js new file mode 100644 index 00000000..4de3568b --- /dev/null +++ b/plugins/advcode/langs/da.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("da", { + "Cancel": "Annuller", + "Completions": "Fuldf\xf8relser", + "Control character": "Kontroltegn", + "Copy code": "Kopi\xe9r kode", + "Dark/light mode": "M\xf8rk/lys tilstand", + "Decrease font size": "Formindsk skrifttypest\xf8rrelse", + "Diagnostics": "Diagnostik", + "Fold line": "Fold linje", + "Folded lines": "Foldede linjer", + "Format code": "Formatkode", + "Fullscreen": "Fuld sk\xe6rm", + "Go to line": "G\xe5 til linje", + "Increase font size": "For\xf8g skrifttypest\xf8rrelse", + "No diagnostics": "Ingen diagnostik", + "Save code": "Gem kode", + "Selection deleted": "Valg slettet", + "Unfold line": "Ufold linje", + "Unfolded lines": "Ufoldede linjer", + "by word": "ved ord", + "current match": "aktuel kamp", + "folded code": "foldet kode", + "go": "g\xe5", + "on line": "p\xe5 linje", + "replaced $ matches": "erstattede $ kampe", + "replaced match on line $": "erstattet kamp p\xe5 linje $", + "to": "til", + "unfold": "ufold" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/de.js b/plugins/advcode/langs/de.js new file mode 100644 index 00000000..85ad8b59 --- /dev/null +++ b/plugins/advcode/langs/de.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("de", { + "Cancel": "Abbrechen", + "Completions": "Vervollst\xe4ndigungen", + "Control character": "Steuerzeichen", + "Copy code": "Code kopieren", + "Dark/light mode": "Dunkel/Hell-Modus", + "Decrease font size": "Schriftgr\xf6\xdfe verkleinern", + "Diagnostics": "Diagnostik", + "Fold line": "Zeile einklappen", + "Folded lines": "Zeilen eingeklappt", + "Format code": "Code formatieren", + "Fullscreen": "Vollbild", + "Go to line": "Zur Zeile", + "Increase font size": "Schriftgr\xf6\xdfe vergr\xf6\xdfern", + "No diagnostics": "Keine Diagnostik", + "Save code": "Code speichern", + "Selection deleted": "Auswahl gel\xf6scht", + "Unfold line": "Zeile ausklappen", + "Unfolded lines": "Zeilen ausgeklappt", + "by word": "nach Wort", + "current match": "aktueller Treffer", + "folded code": "ausgeklappter Code", + "go": "los", + "on line": "in Zeile", + "replaced $ matches": "$ Treffer ersetzt", + "replaced match on line $": "Treffer ersetzt in Zeile $", + "to": "bis", + "unfold": "ausklappen" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/el.js b/plugins/advcode/langs/el.js new file mode 100644 index 00000000..a9a7da2e --- /dev/null +++ b/plugins/advcode/langs/el.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("el", { + "Cancel": "\u0386\u03ba\u03c5\u03c1\u03bf", + "Completions": "\u039f\u03bb\u03bf\u03ba\u03bb\u03b7\u03c1\u03ce\u03c3\u03b5\u03b9\u03c2", + "Control character": "\u03a7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b1\u03c2 \u03b5\u03bb\u03ad\u03b3\u03c7\u03bf\u03c5", + "Copy code": "\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd", + "Dark/light mode": "\u03a3\u03ba\u03bf\u03c5\u03c1\u03cc\u03c7\u03c1\u03c9\u03bc\u03b7/\u03b1\u03bd\u03bf\u03b9\u03c7\u03c4\u03cc\u03c7\u03c1\u03c9\u03bc\u03b7 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1", + "Decrease font size": "\u039c\u03b5\u03af\u03c9\u03c3\u03b7 \u03bc\u03b5\u03b3\u03ad\u03b8\u03bf\u03c5\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03b1\u03c4\u03bf\u03c3\u03b5\u03b9\u03c1\u03ac\u03c2", + "Diagnostics": "\u0394\u03b9\u03b1\u03b3\u03bd\u03c9\u03c3\u03c4\u03b9\u03ba\u03ac", + "Fold line": "\u0394\u03af\u03c0\u03bb\u03c9\u03bc\u03b1 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2", + "Folded lines": "\u0394\u03b9\u03c0\u03bb\u03c9\u03bc\u03ad\u03bd\u03b5\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ad\u03c2", + "Format code": "\u039c\u03bf\u03c1\u03c6\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd", + "Fullscreen": "\u03a0\u03bb\u03ae\u03c1\u03b7\u03c2 \u03bf\u03b8\u03cc\u03bd\u03b7", + "Go to line": "\u039c\u03b5\u03c4\u03ac\u03b2\u03b1\u03c3\u03b7 \u03c3\u03c4\u03b7 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae", + "Increase font size": "\u0391\u03cd\u03be\u03b7\u03c3\u03b7 \u03bc\u03b5\u03b3\u03ad\u03b8\u03bf\u03c5\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03b1\u03c4\u03bf\u03c3\u03b5\u03b9\u03c1\u03ac\u03c2", + "No diagnostics": "\u03a7\u03c9\u03c1\u03af\u03c2 \u03b4\u03b9\u03b1\u03b3\u03bd\u03c9\u03c3\u03c4\u03b9\u03ba\u03ac", + "Save code": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03cd", + "Selection deleted": "\u0397 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c6\u03b7\u03ba\u03b5", + "Unfold line": "\u039e\u03b5\u03b4\u03af\u03c0\u03bb\u03c9\u03bc\u03b1 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2", + "Unfolded lines": "\u039e\u03b5\u03b4\u03b9\u03c0\u03bb\u03c9\u03bc\u03ad\u03bd\u03b5\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ad\u03c2", + "by word": "\u03ba\u03b1\u03c4\u03ac \u03bb\u03ad\u03be\u03b7", + "current match": "\u03c4\u03c1\u03ad\u03c7\u03bf\u03c5\u03c3\u03b1 \u03c3\u03c5\u03bc\u03c6\u03c9\u03bd\u03af\u03b1", + "folded code": "\u03b4\u03b9\u03c0\u03bb\u03c9\u03bc\u03ad\u03bd\u03bf\u03c2 \u03ba\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2", + "go": "\u03bc\u03b5\u03c4\u03ac\u03b2\u03b1\u03c3\u03b7", + "on line": "\u03c3\u03c4\u03b7 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae", + "replaced $ matches": "\u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ad\u03c3\u03c4\u03b7\u03c3\u03b5 $ \u03c3\u03c5\u03bc\u03c6\u03c9\u03bd\u03af\u03b5\u03c2", + "replaced match on line $": "\u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b7\u03c3\u03b5 \u03c4\u03b7 \u03c3\u03c5\u03bc\u03c6\u03c9\u03bd\u03af\u03b1 \u03c3\u03c4\u03b7 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae $", + "to": "\u03ad\u03c9\u03c2", + "unfold": "\u03be\u03b5\u03b4\u03af\u03c0\u03bb\u03c9\u03bc\u03b1" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/es.js b/plugins/advcode/langs/es.js new file mode 100644 index 00000000..f3cf9096 --- /dev/null +++ b/plugins/advcode/langs/es.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("es", { + "Cancel": "Cancelar", + "Completions": "Finalizaciones", + "Control character": "Car\xe1cter de control", + "Copy code": "Copiar c\xf3digo", + "Dark/light mode": "Modo oscuro/claro", + "Decrease font size": "Disminuir tama\xf1o de fuente", + "Diagnostics": "Diagn\xf3stico", + "Fold line": "Contraer l\xednea", + "Folded lines": "L\xedneas contra\xeddas", + "Format code": "C\xf3digo de formato", + "Fullscreen": "Pantalla completa", + "Go to line": "Ir a la l\xednea", + "Increase font size": "Aumentar tama\xf1o de fuente", + "No diagnostics": "Sin diagn\xf3stico", + "Save code": "Guardar c\xf3digo", + "Selection deleted": "Selecci\xf3n eliminada", + "Unfold line": "Expandir l\xednea", + "Unfolded lines": "L\xedneas expandidas", + "by word": "palabra completa", + "current match": "coincidencia actual", + "folded code": "c\xf3digo contra\xeddo", + "go": "ir", + "on line": "en la l\xednea", + "replaced $ matches": "se reemplazaron $ coincidencias", + "replaced match on line $": "se reemplaz\xf3 la coincidencia en la l\xednea $", + "to": "a", + "unfold": "expandir" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/eu.js b/plugins/advcode/langs/eu.js new file mode 100644 index 00000000..31bc8123 --- /dev/null +++ b/plugins/advcode/langs/eu.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("eu", { + "Cancel": "Ezeztatu", + "Completions": "Osatzeak", + "Control character": "Kontrol-karakterea", + "Copy code": "Kopiatu kodea", + "Dark/light mode": "Modu iluna/argia", + "Decrease font size": "Txikitu letraren tamaina", + "Diagnostics": "Diagnostikoak", + "Fold line": "Tolestu lerroa", + "Folded lines": "Lerro hauek tolestu dira:", + "Format code": "Eman formatua kodeari", + "Fullscreen": "Pantaila osoa", + "Go to line": "Joan lerro honetara:", + "Increase font size": "Handitu letraren tamaina", + "No diagnostics": "Diagnostikorik ez", + "Save code": "Gorde kodea", + "Selection deleted": "Aukeratutakoa ezabatu da", + "Unfold line": "Zabaldu lerroa", + "Unfolded lines": "Lerro hauek zabaldu dira:", + "by word": "hitzaren arabera", + "current match": "oraingo bat-etortzea", + "folded code": "kode tolestua", + "go": "joan", + "on line": "lerro honetan:", + "replaced $ matches": "$ bat-etortze ordeztu dira", + "replaced match on line $": "$ lerroan bat-etortze bat ordeztu da", + "to": "lerrotik lerro honetara:", + "unfold": "zabaldu" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/fa.js b/plugins/advcode/langs/fa.js new file mode 100644 index 00000000..d8062807 --- /dev/null +++ b/plugins/advcode/langs/fa.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("fa", { + "Cancel": "\u0644\u063a\u0648", + "Completions": "\u06a9\u0627\u0645\u0644", + "Control character": "\u06a9\u0627\u0631\u0627\u06a9\u062a\u0631 \u06a9\u0646\u062a\u0631\u0644", + "Copy code": "\u06a9\u067e\u06cc \u06a9\u062f", + "Dark/light mode": "\u062d\u0627\u0644\u062a \u062a\u06cc\u0631\u0647/\u0631\u0648\u0634\u0646", + "Decrease font size": "\u06a9\u0627\u0647\u0634 \u0627\u0646\u062f\u0627\u0632\u0647 \u0641\u0648\u0646\u062a", + "Diagnostics": "\u062a\u0634\u062e\u06cc\u0635", + "Fold line": "\u062e\u0637 \u062a\u0627 \u0634\u062f\u0647", + "Folded lines": "\u062e\u0637\u0648\u0637 \u062a\u0627 \u0634\u062f\u0647", + "Format code": "\u06a9\u062f \u0641\u0631\u0645\u062a", + "Fullscreen": "\u062a\u0645\u0627\u0645\u200c\u0635\u0641\u062d\u0647", + "Go to line": "\u0628\u0631\u0648 \u0628\u0647 \u062e\u0637", + "Increase font size": "\u0627\u0641\u0632\u0627\u06cc\u0634 \u0627\u0646\u062f\u0627\u0632\u0647 \u0641\u0648\u0646\u062a", + "No diagnostics": "\u0628\u062f\u0648\u0646 \u062a\u0634\u062e\u06cc\u0635", + "Save code": "\u0630\u062e\u06cc\u0631\u0647 \u06a9\u062f", + "Selection deleted": "\u0627\u0646\u062a\u062e\u0627\u0628 \u062d\u0630\u0641 \u06af\u0631\u062f\u06cc\u062f", + "Unfold line": "\u062e\u0637 \u062a\u0627 \u0646\u0634\u062f\u0647", + "Unfolded lines": "\u062e\u0637\u0648\u0637 \u062a\u0627 \u0646\u0634\u062f\u0647", + "by word": "\u0628\u0627 \u06a9\u0644\u0645\u0647", + "current match": "\u0645\u0633\u0627\u0628\u0642\u0647 \u0641\u0639\u0644\u06cc", + "folded code": "\u06a9\u062f \u062a\u0627 \u0634\u062f\u0647", + "go": "\u0628\u0631\u0648", + "on line": "\u062f\u0631 \u062e\u0637", + "replaced $ matches": "\u0645\u0633\u0627\u0628\u0642\u0627\u062a \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0634\u062f\u0647\u200c $", + "replaced match on line $": "\u0645\u0633\u0627\u0628\u0642\u0647\u200c \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u062f\u0631 \u062e\u0637 $", + "to": "\u0628\u0631\u0627\u06cc", + "unfold": "\u067e\u0647\u0646 \u0634\u062f\u0647" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/fi.js b/plugins/advcode/langs/fi.js new file mode 100644 index 00000000..92d8a595 --- /dev/null +++ b/plugins/advcode/langs/fi.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("fi", { + "Cancel": "Peruuta", + "Completions": "Valmista tuli", + "Control character": "Kirjasimen hallinta", + "Copy code": "Kopioi koodi", + "Dark/light mode": "Tumma/vaalea tila", + "Decrease font size": "Pienenn\xe4 fonttikokoa", + "Diagnostics": "Diagnostiikka", + "Fold line": "Taita viiva", + "Folded lines": "Viivat taitettu", + "Format code": "Muotoile koodia", + "Fullscreen": "Koko n\xe4ytt\xf6", + "Go to line": "Siirry viivaan", + "Increase font size": "Suurenna fonttikokoa", + "No diagnostics": "Ei diagnostiikkaa", + "Save code": "Tallenna koodi", + "Selection deleted": "Valinta poistettu", + "Unfold line": "Poista viivan taitto", + "Unfolded lines": "Viivojen taitto kumottiin", + "by word": "koko sanan mukaan", + "current match": "t\xe4m\xe4nhetkinen yhteensopiva", + "folded code": "taitettu koodi", + "go": "siirry", + "on line": "viivalla", + "replaced $ matches": "$ sopivaa korvattu", + "replaced match on line $": "korvattu sopiva viivassa $", + "to": "\u2013", + "unfold": "kumoa taitto" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/fr-FR.js b/plugins/advcode/langs/fr-FR.js new file mode 100644 index 00000000..2a28f936 --- /dev/null +++ b/plugins/advcode/langs/fr-FR.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("fr-FR", { + "Cancel": "Annuler", + "Completions": "Ach\xe8vements", + "Control character": "Caract\xe8re de contr\xf4le", + "Copy code": "Copier le code", + "Dark/light mode": "Mode sombre/clair", + "Decrease font size": "R\xe9duire la taille de police", + "Diagnostics": "Diagnostics", + "Fold line": "R\xe9duire la ligne", + "Folded lines": "Lignes r\xe9duites", + "Format code": "Code de format", + "Fullscreen": "Plein \xe9cran", + "Go to line": "Acc\xe9der \xe0 la ligne", + "Increase font size": "Augmenter la taille de police", + "No diagnostics": "Aucun diagnostic", + "Save code": "Enregistrer le code", + "Selection deleted": "S\xe9lection supprim\xe9e", + "Unfold line": "D\xe9velopper la ligne", + "Unfolded lines": "Lignes d\xe9velopp\xe9es", + "by word": "par mot", + "current match": "correspondance actuelle", + "folded code": "code de ligne r\xe9duite", + "go": "acc\xe9der", + "on line": "sur la ligne", + "replaced $ matches": "remplacement de $ correspondances", + "replaced match on line $": "remplacement de la correspondance sur la ligne $", + "to": "\xe0", + "unfold": "d\xe9velopper" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/fr_FR.js b/plugins/advcode/langs/fr_FR.js new file mode 100644 index 00000000..bab771c8 --- /dev/null +++ b/plugins/advcode/langs/fr_FR.js @@ -0,0 +1,37 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("fr-FR", { + "Cancel": "Annuler", + "Completions": "Ach\xe8vements", + "Control character": "Caract\xe8re de contr\xf4le", + "Copy code": "Copier le code", + "Dark/light mode": "Mode sombre/clair", + "Decrease font size": "R\xe9duire la taille de police", + "Diagnostics": "Diagnostics", + "Fold line": "R\xe9duire la ligne", + "Folded lines": "Lignes r\xe9duites", + "Format code": "Code de format", + "Fullscreen": "Plein \xe9cran", + "Go to line": "Acc\xe9der \xe0 la ligne", + "Increase font size": "Augmenter la taille de police", + "No diagnostics": "Aucun diagnostic", + "Save code": "Enregistrer le code", + "Selection deleted": "S\xe9lection supprim\xe9e", + "Unfold line": "D\xe9velopper la ligne", + "Unfolded lines": "Lignes d\xe9velopp\xe9es", + "by word": "par mot", + "current match": "correspondance actuelle", + "folded code": "code de ligne r\xe9duite", + "go": "acc\xe9der", + "on line": "sur la ligne", + "replaced $ matches": "remplacement de $ correspondances", + "replaced match on line $": "remplacement de la correspondance sur la ligne $", + "to": "\xe0", + "unfold": "d\xe9velopper" +}); + +console.warn('TinyMCE language code "fr_FR" is deprecated, please use "fr-FR" instead.'); \ No newline at end of file diff --git a/plugins/advcode/langs/he-IL.js b/plugins/advcode/langs/he-IL.js new file mode 100644 index 00000000..221e54e4 --- /dev/null +++ b/plugins/advcode/langs/he-IL.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("he-IL", { + "Cancel": "\u05d1\u05d9\u05d8\u05d5\u05dc", + "Completions": "\u05d4\u05e9\u05dc\u05de\u05d5\u05ea", + "Control character": "\u05ea\u05d5 \u05d1\u05e7\u05e8\u05d4", + "Copy code": "\u05d4\u05e2\u05ea\u05e7 \u05e7\u05d5\u05d3", + "Dark/light mode": "\u05de\u05e6\u05d1 \u05db\u05d4\u05d4/\u05d1\u05d4\u05d9\u05e8", + "Decrease font size": "\u05d4\u05e7\u05d8\u05df \u05d2\u05d5\u05e4\u05df", + "Diagnostics": "\u05d3\u05d9\u05d0\u05d2\u05e0\u05d5\u05e1\u05d8\u05d9\u05e7\u05d4", + "Fold line": "\u05e7\u05e4\u05dc \u05d0\u05ea \u05d4\u05e7\u05d5", + "Folded lines": "\u05e7\u05d5\u05d5\u05d9\u05dd \u05de\u05e7\u05d5\u05e4\u05dc\u05d9\u05dd", + "Format code": "\u05e7\u05d5\u05d3 \u05d4\u05e4\u05d5\u05e8\u05de\u05d8", + "Fullscreen": "\u05de\u05e1\u05da \u05de\u05dc\u05d0", + "Go to line": "\u05e2\u05d1\u05d5\u05e8 \u05dc\u05e9\u05d5\u05e8\u05d4", + "Increase font size": "\u05d4\u05d2\u05d3\u05dc \u05d2\u05d5\u05e4\u05df", + "No diagnostics": "\u05d0\u05d9\u05df \u05d3\u05d9\u05d0\u05d2\u05e0\u05d5\u05e1\u05d8\u05d9\u05e7\u05d4", + "Save code": "\u05e9\u05de\u05d5\u05e8 \u05e7\u05d5\u05d3", + "Selection deleted": "\u05d4\u05d1\u05d7\u05d9\u05e8\u05d4 \u05e0\u05de\u05d7\u05e7\u05d4", + "Unfold line": "\u05e4\u05e8\u05d5\u05e9 \u05d0\u05ea \u05d4\u05e7\u05d5", + "Unfolded lines": "\u05e7\u05d5\u05d5\u05d9\u05dd \u05e4\u05e8\u05d5\u05e9\u05d9\u05dd", + "by word": "\u05dc\u05e4\u05d9 \u05de\u05d9\u05dc\u05d4", + "current match": "\u05d4\u05ea\u05d0\u05de\u05d4 \u05e0\u05d5\u05db\u05d7\u05d9\u05ea", + "folded code": "\u05e7\u05d5\u05d3 \u05de\u05e7\u05d5\u05e4\u05dc", + "go": "\u05e2\u05d1\u05d5\u05e8", + "on line": "\u05d1\u05e9\u05d5\u05e8\u05d4", + "replaced $ matches": "\u05d4\u05d5\u05d7\u05dc\u05e4\u05d5 $ \u05d4\u05ea\u05d0\u05de\u05d5\u05ea", + "replaced match on line $": "\u05d4\u05d5\u05d7\u05dc\u05e4\u05d4 \u05d4\u05ea\u05d0\u05de\u05d4 \u05d1\u05e9\u05d5\u05e8\u05d4 $", + "to": "\u05e2\u05d3", + "unfold": "\u05e4\u05e8\u05d5\u05e9" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/he_IL.js b/plugins/advcode/langs/he_IL.js new file mode 100644 index 00000000..5acecc9b --- /dev/null +++ b/plugins/advcode/langs/he_IL.js @@ -0,0 +1,37 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("he-IL", { + "Cancel": "\u05d1\u05d9\u05d8\u05d5\u05dc", + "Completions": "\u05d4\u05e9\u05dc\u05de\u05d5\u05ea", + "Control character": "\u05ea\u05d5 \u05d1\u05e7\u05e8\u05d4", + "Copy code": "\u05d4\u05e2\u05ea\u05e7 \u05e7\u05d5\u05d3", + "Dark/light mode": "\u05de\u05e6\u05d1 \u05db\u05d4\u05d4/\u05d1\u05d4\u05d9\u05e8", + "Decrease font size": "\u05d4\u05e7\u05d8\u05df \u05d2\u05d5\u05e4\u05df", + "Diagnostics": "\u05d3\u05d9\u05d0\u05d2\u05e0\u05d5\u05e1\u05d8\u05d9\u05e7\u05d4", + "Fold line": "\u05e7\u05e4\u05dc \u05d0\u05ea \u05d4\u05e7\u05d5", + "Folded lines": "\u05e7\u05d5\u05d5\u05d9\u05dd \u05de\u05e7\u05d5\u05e4\u05dc\u05d9\u05dd", + "Format code": "\u05e7\u05d5\u05d3 \u05d4\u05e4\u05d5\u05e8\u05de\u05d8", + "Fullscreen": "\u05de\u05e1\u05da \u05de\u05dc\u05d0", + "Go to line": "\u05e2\u05d1\u05d5\u05e8 \u05dc\u05e9\u05d5\u05e8\u05d4", + "Increase font size": "\u05d4\u05d2\u05d3\u05dc \u05d2\u05d5\u05e4\u05df", + "No diagnostics": "\u05d0\u05d9\u05df \u05d3\u05d9\u05d0\u05d2\u05e0\u05d5\u05e1\u05d8\u05d9\u05e7\u05d4", + "Save code": "\u05e9\u05de\u05d5\u05e8 \u05e7\u05d5\u05d3", + "Selection deleted": "\u05d4\u05d1\u05d7\u05d9\u05e8\u05d4 \u05e0\u05de\u05d7\u05e7\u05d4", + "Unfold line": "\u05e4\u05e8\u05d5\u05e9 \u05d0\u05ea \u05d4\u05e7\u05d5", + "Unfolded lines": "\u05e7\u05d5\u05d5\u05d9\u05dd \u05e4\u05e8\u05d5\u05e9\u05d9\u05dd", + "by word": "\u05dc\u05e4\u05d9 \u05de\u05d9\u05dc\u05d4", + "current match": "\u05d4\u05ea\u05d0\u05de\u05d4 \u05e0\u05d5\u05db\u05d7\u05d9\u05ea", + "folded code": "\u05e7\u05d5\u05d3 \u05de\u05e7\u05d5\u05e4\u05dc", + "go": "\u05e2\u05d1\u05d5\u05e8", + "on line": "\u05d1\u05e9\u05d5\u05e8\u05d4", + "replaced $ matches": "\u05d4\u05d5\u05d7\u05dc\u05e4\u05d5 $ \u05d4\u05ea\u05d0\u05de\u05d5\u05ea", + "replaced match on line $": "\u05d4\u05d5\u05d7\u05dc\u05e4\u05d4 \u05d4\u05ea\u05d0\u05de\u05d4 \u05d1\u05e9\u05d5\u05e8\u05d4 $", + "to": "\u05e2\u05d3", + "unfold": "\u05e4\u05e8\u05d5\u05e9" +}); + +console.warn('TinyMCE language code "he_IL" is deprecated, please use "he-IL" instead.'); \ No newline at end of file diff --git a/plugins/advcode/langs/hi.js b/plugins/advcode/langs/hi.js new file mode 100644 index 00000000..05198a20 --- /dev/null +++ b/plugins/advcode/langs/hi.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("hi", { + "Cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u0947\u0902", + "Completions": "\u092a\u0942\u0930\u094d\u0923", + "Control character": "\u0915\u0902\u091f\u094d\u0930\u094b\u0932 \u0915\u0948\u0930\u0947\u0915\u094d\u091f\u0930", + "Copy code": "\u0915\u094b\u0921 \u0915\u0949\u092a\u0940 \u0915\u0930\u0947\u0902", + "Dark/light mode": "\u0917\u0939\u0930\u093e/\u0939\u0932\u094d\u0915\u093e \u092e\u094b\u0921", + "Decrease font size": "\u092b\u093c\u0949\u0928\u094d\u091f \u0915\u093e \u0906\u0915\u093e\u0930 \u0918\u091f\u093e\u090f\u0901", + "Diagnostics": "\u0921\u093e\u092f\u0917\u094d\u0928\u0949\u0938\u094d\u091f\u093f\u0915", + "Fold line": "\u0932\u093e\u0907\u0928 \u092b\u093c\u094b\u0932\u094d\u0921 \u0915\u0930\u0947\u0902", + "Folded lines": "\u092b\u093c\u094b\u0932\u094d\u0921\u0947\u0921 \u0932\u093e\u0907\u0928", + "Format code": "\u092b\u093c\u0949\u0930\u094d\u092e\u0948\u091f \u0915\u094b\u0921", + "Fullscreen": "\u092a\u0942\u0930\u094d\u0923 \u0938\u094d\u0915\u094d\u0930\u0940\u0928", + "Go to line": "\u0932\u093e\u0907\u0928 \u092a\u0930 \u091c\u093e\u090f\u0902", + "Increase font size": "\u092b\u093c\u0949\u0928\u094d\u091f \u0915\u093e \u0906\u0915\u093e\u0930 \u092c\u095d\u093e\u090f\u0901", + "No diagnostics": "\u0915\u094b\u0908 \u0921\u093e\u092f\u0917\u094d\u0928\u0949\u0938\u094d\u091f\u093f\u0915 \u0928\u0939\u0940\u0902", + "Save code": "\u0915\u094b\u0921 \u0938\u0939\u0947\u091c\u0947\u0902", + "Selection deleted": "\u091a\u092f\u0928 \u0921\u093f\u0932\u0940\u091f \u0915\u093f\u092f\u093e \u0917\u092f\u093e", + "Unfold line": "\u0932\u093e\u0907\u0928 \u0905\u0928\u092b\u093c\u094b\u0932\u094d\u0921 \u0915\u0930\u0947\u0902", + "Unfolded lines": "\u0905\u0928\u092b\u093c\u094b\u0932\u094d\u0921\u0947\u0921 \u0932\u093e\u0907\u0928", + "by word": "\u0936\u092c\u094d\u0926 \u0915\u0947 \u092e\u0941\u0924\u093e\u092c\u093f\u0915", + "current match": "\u092e\u094c\u091c\u0942\u0926\u093e \u092e\u0948\u091a", + "folded code": "\u092b\u093c\u094b\u0932\u094d\u0921\u0947\u0921 \u0915\u094b\u0921", + "go": "\u091c\u093e\u090f\u0902", + "on line": "\u0932\u093e\u0907\u0928", + "replaced $ matches": "$ \u092e\u0948\u091a \u092c\u0926\u0932\u0947 \u0917\u090f", + "replaced match on line $": "$ \u0932\u093e\u0907\u0928 \u092a\u0930 \u092e\u0948\u091a \u092c\u0926\u0932\u0947 \u0917\u090f", + "to": "\u0938\u0947", + "unfold": "\u0905\u0928\u092b\u093c\u094b\u0932\u094d\u0921 \u0915\u0930\u0947\u0902" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/hr.js b/plugins/advcode/langs/hr.js new file mode 100644 index 00000000..4bf47b2f --- /dev/null +++ b/plugins/advcode/langs/hr.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("hr", { + "Cancel": "Odustani", + "Completions": "Dovr\u0161avanje", + "Control character": "Kontrolni znak", + "Copy code": "Kopiraj kod", + "Dark/light mode": "Tamni/svijetli na\u010din", + "Decrease font size": "Smanji veli\u010dinu fonta", + "Diagnostics": "Dijagnostika", + "Fold line": "Sakrij redak", + "Folded lines": "Sa\u017eeti redci", + "Format code": "\u0160ifra formata", + "Fullscreen": "Cijeli zaslon", + "Go to line": "Idi na redak", + "Increase font size": "Pove\u0107aj veli\u010dinu fonta", + "No diagnostics": "Nema dijagnostike", + "Save code": "Spremi k\xf4d", + "Selection deleted": "Odabir je izbrisan", + "Unfold line": "Prika\u017ei redak", + "Unfolded lines": "Pro\u0161ireni redci", + "by word": "po rije\u010di", + "current match": "trenuta\u010dno podudaranje", + "folded code": "sa\u017eeti k\xf4d", + "go": "idi", + "on line": "u retku", + "replaced $ matches": "zamijenjeno podudaranja: $", + "replaced match on line $": "zamijenjeno podudaranje u retku $", + "to": "do", + "unfold": "prika\u017ei" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/hu-HU.js b/plugins/advcode/langs/hu-HU.js new file mode 100644 index 00000000..5097e0b2 --- /dev/null +++ b/plugins/advcode/langs/hu-HU.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("hu-HU", { + "Cancel": "M\xe9gse", + "Completions": "Teljes\xedt\xe9sek", + "Control character": "Vez\xe9rl\u0151karakter", + "Copy code": "K\xf3d m\xe1sol\xe1sa", + "Dark/light mode": "S\xf6t\xe9t/vil\xe1gos m\xf3d", + "Decrease font size": "Bet\u0171m\xe9ret cs\xf6kkent\xe9se", + "Diagnostics": "Diagnosztika", + "Fold line": "Sor \xf6sszecsuk\xe1sa", + "Folded lines": "\xd6sszecsukott sorok", + "Format code": "K\xf3d form\xe1z\xe1sa", + "Fullscreen": "Teljes k\xe9perny\u0151", + "Go to line": "Ugr\xe1s a sorra", + "Increase font size": "Bet\u0171m\xe9ret n\xf6vel\xe9se", + "No diagnostics": "Nincs diagnosztika", + "Save code": "K\xf3d ment\xe9se", + "Selection deleted": "Kiv\xe1laszt\xe1s t\xf6r\xf6lve", + "Unfold line": "Sor kibont\xe1sa", + "Unfolded lines": "Kibontott sorok", + "by word": "szavank\xe9nt", + "current match": "jelenlegi tal\xe1lat", + "folded code": "\xf6sszecsukott k\xf3d", + "go": "Ok", + "on line": "ebben a sorban:", + "replaced $ matches": "$ tal\xe1latot cser\xe9lt", + "replaced match on line $": "cser\xe9lte a tal\xe1latokat a $ sz\xe1m\xfa sorban", + "to": "-", + "unfold": "kibont" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/hu_HU.js b/plugins/advcode/langs/hu_HU.js new file mode 100644 index 00000000..b04f0e7e --- /dev/null +++ b/plugins/advcode/langs/hu_HU.js @@ -0,0 +1,37 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("hu-HU", { + "Cancel": "M\xe9gse", + "Completions": "Teljes\xedt\xe9sek", + "Control character": "Vez\xe9rl\u0151karakter", + "Copy code": "K\xf3d m\xe1sol\xe1sa", + "Dark/light mode": "S\xf6t\xe9t/vil\xe1gos m\xf3d", + "Decrease font size": "Bet\u0171m\xe9ret cs\xf6kkent\xe9se", + "Diagnostics": "Diagnosztika", + "Fold line": "Sor \xf6sszecsuk\xe1sa", + "Folded lines": "\xd6sszecsukott sorok", + "Format code": "K\xf3d form\xe1z\xe1sa", + "Fullscreen": "Teljes k\xe9perny\u0151", + "Go to line": "Ugr\xe1s a sorra", + "Increase font size": "Bet\u0171m\xe9ret n\xf6vel\xe9se", + "No diagnostics": "Nincs diagnosztika", + "Save code": "K\xf3d ment\xe9se", + "Selection deleted": "Kiv\xe1laszt\xe1s t\xf6r\xf6lve", + "Unfold line": "Sor kibont\xe1sa", + "Unfolded lines": "Kibontott sorok", + "by word": "szavank\xe9nt", + "current match": "jelenlegi tal\xe1lat", + "folded code": "\xf6sszecsukott k\xf3d", + "go": "Ok", + "on line": "ebben a sorban:", + "replaced $ matches": "$ tal\xe1latot cser\xe9lt", + "replaced match on line $": "cser\xe9lte a tal\xe1latokat a $ sz\xe1m\xfa sorban", + "to": "-", + "unfold": "kibont" +}); + +console.warn('TinyMCE language code "hu_HU" is deprecated, please use "hu-HU" instead.'); \ No newline at end of file diff --git a/plugins/advcode/langs/id.js b/plugins/advcode/langs/id.js new file mode 100644 index 00000000..04ebb42c --- /dev/null +++ b/plugins/advcode/langs/id.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("id", { + "Cancel": "Batal", + "Completions": "Penyelesaian", + "Control character": "Karakter kendali", + "Copy code": "Salin kode", + "Dark/light mode": "Mode gelap/terang", + "Decrease font size": "Kurangi ukuran font", + "Diagnostics": "Diagnostik", + "Fold line": "Lipat baris", + "Folded lines": "Baris dilipat", + "Format code": "Format kode", + "Fullscreen": "Layar penuh", + "Go to line": "Lompat ke baris", + "Increase font size": "Tambah ukuran font", + "No diagnostics": "Tidak ada diagnostik", + "Save code": "Simpan kode", + "Selection deleted": "Seleksi dihapus", + "Unfold line": "Buka baris", + "Unfolded lines": "Baris dibuka", + "by word": "berdasarkan kata", + "current match": "yang cocok saat ini", + "folded code": "kode dilipat", + "go": "lompat", + "on line": "pada baris", + "replaced $ matches": "mengganti $ yang cocok", + "replaced match on line $": "mengganti yang cocok pada baris $", + "to": "hingga", + "unfold": "buka" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/it.js b/plugins/advcode/langs/it.js new file mode 100644 index 00000000..c8085fec --- /dev/null +++ b/plugins/advcode/langs/it.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("it", { + "Cancel": "Annulla", + "Completions": "Completamenti", + "Control character": "Carattere di controllo", + "Copy code": "Copia codice", + "Dark/light mode": "Modalit\xe0 scura/chiara", + "Decrease font size": "Riduci dimensioni carattere", + "Diagnostics": "Diagnostica", + "Fold line": "Ripiega riga", + "Folded lines": "Righe ripiegate", + "Format code": "Formatta codice", + "Fullscreen": "Schermo intero", + "Go to line": "Vai alla riga", + "Increase font size": "Aumenta dimensioni carattere", + "No diagnostics": "Nessuna diagnostica", + "Save code": "Salva codice", + "Selection deleted": "Selezione eliminata", + "Unfold line": "Spiega riga", + "Unfolded lines": "Righe spiegate", + "by word": "per parola", + "current match": "corrispondenza attuale", + "folded code": "codice ripiegato", + "go": "vai", + "on line": "alla riga", + "replaced $ matches": "$ corrispondenze sostituite", + "replaced match on line $": "corrispondenza sostituita alla riga $", + "to": "a", + "unfold": "spiega" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/ja.js b/plugins/advcode/langs/ja.js new file mode 100644 index 00000000..7e2d4abf --- /dev/null +++ b/plugins/advcode/langs/ja.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ja", { + "Cancel": "\u30ad\u30e3\u30f3\u30bb\u30eb", + "Completions": "\u5b8c\u4e86", + "Control character": "\u5236\u5fa1\u6587\u5b57", + "Copy code": "\u30b3\u30fc\u30c9\u306e\u30b3\u30d4\u30fc", + "Dark/light mode": "\u30c0\u30fc\u30af/\u30e9\u30a4\u30c8 \u30e2\u30fc\u30c9", + "Decrease font size": "\u30d5\u30a9\u30f3\u30c8 \u30b5\u30a4\u30ba\u306e\u7e2e\u5c0f", + "Diagnostics": "\u8a3a\u65ad", + "Fold line": "\u884c\u3092\u6298\u308a\u305f\u305f\u3080", + "Folded lines": "\u6298\u308a\u305f\u305f\u307e\u308c\u305f\u884c", + "Format code": "\u30b3\u30fc\u30c9\u306e\u66f8\u5f0f\u8a2d\u5b9a", + "Fullscreen": "\u30d5\u30eb\u30b9\u30af\u30ea\u30fc\u30f3", + "Go to line": "\u884c\u306b\u79fb\u52d5", + "Increase font size": "\u30d5\u30a9\u30f3\u30c8 \u30b5\u30a4\u30ba\u306e\u62e1\u5927", + "No diagnostics": "\u8a3a\u65ad\u306a\u3057", + "Save code": "\u30b3\u30fc\u30c9\u3092\u4fdd\u5b58", + "Selection deleted": "\u9078\u629e\u90e8\u5206\u3092\u524a\u9664\u3057\u307e\u3057\u305f", + "Unfold line": "\u884c\u3092\u5c55\u958b", + "Unfolded lines": "\u5c55\u958b\u3057\u305f\u884c", + "by word": "\u5358\u8a9e", + "current match": "\u73fe\u5728\u306e\u4e00\u81f4", + "folded code": "\u6298\u308a\u305f\u305f\u307e\u308c\u305f\u30b3\u30fc\u30c9", + "go": "\u79fb\u52d5", + "on line": "\u884c\u756a\u53f7\uff1a", + "replaced $ matches": "$\u4ef6\u306e\u4e00\u81f4\u3092\u7f6e\u63db\u3057\u307e\u3057\u305f", + "replaced match on line $": "$\u884c\u76ee\u306e\u4e00\u81f4\u3092\u7f6e\u63db\u3057\u307e\u3057\u305f", + "to": "\u304b\u3089", + "unfold": "\u5c55\u958b" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/kk.js b/plugins/advcode/langs/kk.js new file mode 100644 index 00000000..346bf550 --- /dev/null +++ b/plugins/advcode/langs/kk.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("kk", { + "Cancel": "\u0411\u0430\u0441 \u0442\u0430\u0440\u0442\u0443", + "Completions": "\u0422\u043e\u043b\u044b\u049b\u0442\u044b\u0440\u0443\u043b\u0430\u0440", + "Control character": "\u0411\u0430c\u049b\u0430\u0440\u0443 \u0442\u0430\u04a3\u0431\u0430\u0441\u044b", + "Copy code": "\u041a\u043e\u0434\u0442\u044b \u043a\u04e9\u0448\u0456\u0440\u0443", + "Dark/light mode": "\u041a\u04af\u04a3\u0433\u0456\u0440\u0442/\u0436\u0430\u0440\u044b\u049b \u0440\u0435\u0436\u0438\u043c\u0456", + "Decrease font size": "\u049a\u0430\u0440\u0456\u043f \u04e9\u043b\u0448\u0435\u043c\u0456\u043d \u043a\u0456\u0448\u0456\u0440\u0435\u0439\u0442\u0443", + "Diagnostics": "\u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430", + "Fold line": "\u0416\u0435\u043b\u0456\u043d\u0456 \u0436\u0438\u043d\u0430\u0443", + "Folded lines": "\u0416\u0438\u043d\u0430\u043b\u0493\u0430\u043d \u0436\u043e\u043b\u0434\u0430\u0440", + "Format code": "\u0424\u043e\u0440\u043c\u0430\u0442 \u043a\u043e\u0434\u044b", + "Fullscreen": "\u0422\u043e\u043b\u044b\u049b \u044d\u043a\u0440\u0430\u043d", + "Go to line": "\u041c\u044b\u043d\u0430 \u0436\u043e\u043b\u0493\u0430 \u04e9\u0442\u0443:", + "Increase font size": "\u049a\u0430\u0440\u0456\u043f \u04e9\u043b\u0448\u0435\u043c\u0456\u043d \u04af\u043b\u043a\u0435\u0439\u0442\u0443", + "No diagnostics": "\u0414\u0438\u0430\u0433\u043d\u043ec\u0442\u0438\u043a\u0430 \u0436\u043e\u049b", + "Save code": "\u041a\u043e\u0434\u0442\u044b \u0441\u0430\u049b\u0442\u0430\u0443", + "Selection deleted": "\u0422\u0430\u04a3\u0434\u0430\u0443 \u0436\u043e\u0439\u044b\u043b\u0434\u044b", + "Unfold line": "\u0416\u0435\u043b\u0456\u043d\u0456 \u0436\u0430\u044e", + "Unfolded lines": "\u0416\u0430\u0439\u044b\u043b\u0493\u0430\u043d \u0436\u043e\u043b\u0434\u0430\u0440", + "by word": "\u0441\u04e9\u0437 \u0431\u043e\u0439\u044b\u043d\u0448\u0430", + "current match": "\u0430\u0493\u044b\u043c\u0434\u0430\u0493\u044b \u043c\u0430\u0442\u0447", + "folded code": "\u0436\u0438\u043d\u0430\u043b\u0493\u0430\u043d \u043a\u043e\u0434", + "go": "\u04e9\u0442\u0443", + "on line": "\u0436\u0435\u043b\u0456\u0434\u0435", + "replaced $ matches": "$ \u043c\u0430\u0442\u0447 \u0430\u0443\u044b\u0441\u0442\u044b\u0440\u0434\u044b", + "replaced match on line $": "$-\u0436\u0435\u043b\u0456\u0434\u0435\u0433\u0456 \u043c\u0430\u0442\u0447\u0442\u044b \u0430\u0443\u044b\u0441\u0442\u044b\u0440\u0434\u044b", + "to": "\u2014", + "unfold": "\u0436\u0430\u044e" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/ko-KR.js b/plugins/advcode/langs/ko-KR.js new file mode 100644 index 00000000..c5f1bf02 --- /dev/null +++ b/plugins/advcode/langs/ko-KR.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ko-KR", { + "Cancel": "\ucde8\uc18c", + "Completions": "\uc644\ub8cc", + "Control character": "\uc81c\uc5b4 \ubb38\uc790", + "Copy code": "\ubcf5\uc0ac \ucf54\ub4dc", + "Dark/light mode": "\uc9c4\ud568/\uc605\uc74c \ubaa8\ub4dc", + "Decrease font size": "\uae00\uaf34 \ud06c\uae30 \uc904\uc774\uae30", + "Diagnostics": "\uc9c4\ub2e8", + "Fold line": "\ub77c\uc778 \uc811\uae30", + "Folded lines": "\uc811\ud78c \ub77c\uc778", + "Format code": "\ud615\uc2dd \ucf54\ub4dc", + "Fullscreen": "\uc804\uccb4 \ud654\uba74", + "Go to line": "\ub77c\uc778\uc73c\ub85c \uc774\ub3d9", + "Increase font size": "\uae00\uaf34 \ud06c\uae30 \ub298\ub9ac\uae30", + "No diagnostics": "\uc9c4\ub2e8 \uc5c6\uc74c", + "Save code": "\ucf54\ub4dc \uc800\uc7a5", + "Selection deleted": "\uc120\ud0dd \ud56d\ubaa9 \uc0ad\uc81c\ub428", + "Unfold line": "\ub77c\uc778 \ud3bc\uce58\uae30", + "Unfolded lines": "\ud3bc\uccd0\uc9c4 \ub77c\uc778", + "by word": "\ub2e8\uc5b4\ub85c", + "current match": "\ud604\uc7ac \uc77c\uce58 \ud56d\ubaa9", + "folded code": "\uc811\ud78c \ucf54\ub4dc", + "go": "\uc774\ub3d9", + "on line": "\ub77c\uc778", + "replaced $ matches": "$\uac1c\uc758 \uc77c\uce58 \ud56d\ubaa9 \ubc14\uafc8", + "replaced match on line $": "\ub77c\uc778 $\uc5d0\uc11c \uc77c\uce58 \ud56d\ubaa9 \ubc14\uafc8", + "to": "-", + "unfold": "\ud3bc\uce58\uae30" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/ko_KR.js b/plugins/advcode/langs/ko_KR.js new file mode 100644 index 00000000..d4cd0133 --- /dev/null +++ b/plugins/advcode/langs/ko_KR.js @@ -0,0 +1,37 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ko-KR", { + "Cancel": "\ucde8\uc18c", + "Completions": "\uc644\ub8cc", + "Control character": "\uc81c\uc5b4 \ubb38\uc790", + "Copy code": "\ubcf5\uc0ac \ucf54\ub4dc", + "Dark/light mode": "\uc9c4\ud568/\uc605\uc74c \ubaa8\ub4dc", + "Decrease font size": "\uae00\uaf34 \ud06c\uae30 \uc904\uc774\uae30", + "Diagnostics": "\uc9c4\ub2e8", + "Fold line": "\ub77c\uc778 \uc811\uae30", + "Folded lines": "\uc811\ud78c \ub77c\uc778", + "Format code": "\ud615\uc2dd \ucf54\ub4dc", + "Fullscreen": "\uc804\uccb4 \ud654\uba74", + "Go to line": "\ub77c\uc778\uc73c\ub85c \uc774\ub3d9", + "Increase font size": "\uae00\uaf34 \ud06c\uae30 \ub298\ub9ac\uae30", + "No diagnostics": "\uc9c4\ub2e8 \uc5c6\uc74c", + "Save code": "\ucf54\ub4dc \uc800\uc7a5", + "Selection deleted": "\uc120\ud0dd \ud56d\ubaa9 \uc0ad\uc81c\ub428", + "Unfold line": "\ub77c\uc778 \ud3bc\uce58\uae30", + "Unfolded lines": "\ud3bc\uccd0\uc9c4 \ub77c\uc778", + "by word": "\ub2e8\uc5b4\ub85c", + "current match": "\ud604\uc7ac \uc77c\uce58 \ud56d\ubaa9", + "folded code": "\uc811\ud78c \ucf54\ub4dc", + "go": "\uc774\ub3d9", + "on line": "\ub77c\uc778", + "replaced $ matches": "$\uac1c\uc758 \uc77c\uce58 \ud56d\ubaa9 \ubc14\uafc8", + "replaced match on line $": "\ub77c\uc778 $\uc5d0\uc11c \uc77c\uce58 \ud56d\ubaa9 \ubc14\uafc8", + "to": "-", + "unfold": "\ud3bc\uce58\uae30" +}); + +console.warn('TinyMCE language code "ko_KR" is deprecated, please use "ko-KR" instead.'); \ No newline at end of file diff --git a/plugins/advcode/langs/ms.js b/plugins/advcode/langs/ms.js new file mode 100644 index 00000000..b71a93b3 --- /dev/null +++ b/plugins/advcode/langs/ms.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ms", { + "Cancel": "Batal", + "Completions": "Penyiapan", + "Control character": "Aksara kawalan", + "Copy code": "Salin kod", + "Dark/light mode": "Mod gelap/cerah", + "Decrease font size": "Kurangkan saiz fon", + "Diagnostics": "Diagnostik", + "Fold line": "Garisan berlipat", + "Folded lines": "Garisan berlipat", + "Format code": "Kod format", + "Fullscreen": "Skrin penuh", + "Go to line": "Pergi ke garisan", + "Increase font size": "Tingkatkan saiz fon", + "No diagnostics": "Tiada diagnostik", + "Save code": "Simpan kod", + "Selection deleted": "Pilihan dipadamkan", + "Unfold line": "Garisan tidak berlipat", + "Unfolded lines": "Garisan tidak berlipat", + "by word": "mengikut perkataan", + "current match": "padanan semasa", + "folded code": "kod berlipat", + "go": "pergi", + "on line": "pada garisan", + "replaced $ matches": "menggantikan $ padanan", + "replaced match on line $": "menggantikan padanan pada garisan $", + "to": "ke", + "unfold": "tidak berlipat" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/nb-NO.js b/plugins/advcode/langs/nb-NO.js new file mode 100644 index 00000000..2dd67857 --- /dev/null +++ b/plugins/advcode/langs/nb-NO.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("nb-NO", { + "Cancel": "Avbryt", + "Completions": "Fullf\xf8ringer", + "Control character": "Kontrolltegn", + "Copy code": "Kopier kode", + "Dark/light mode": "M\xf8rk/lys modus", + "Decrease font size": "Reduser skriftst\xf8rrelse", + "Diagnostics": "Diagnose", + "Fold line": "Brett linje", + "Folded lines": "Brettede linjer", + "Format code": "Formater koden", + "Fullscreen": "Fullskjerm", + "Go to line": "G\xe5 til linje", + "Increase font size": "\xd8k skriftst\xf8rrelse", + "No diagnostics": "Ingen diagnose", + "Save code": "Lagre kode", + "Selection deleted": "Valg slettet", + "Unfold line": "Brett opp linje", + "Unfolded lines": "Oppbrettede linjer", + "by word": "etter ord", + "current match": "n\xe5v\xe6rende match", + "folded code": "brettekode", + "go": "g\xe5", + "on line": "p\xe5 linje", + "replaced $ matches": "erstattet $ matcher", + "replaced match on line $": "erstattet match p\xe5 linje $", + "to": "til", + "unfold": "brett opp" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/nb_NO.js b/plugins/advcode/langs/nb_NO.js new file mode 100644 index 00000000..a5e2606c --- /dev/null +++ b/plugins/advcode/langs/nb_NO.js @@ -0,0 +1,37 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("nb-NO", { + "Cancel": "Avbryt", + "Completions": "Fullf\xf8ringer", + "Control character": "Kontrolltegn", + "Copy code": "Kopier kode", + "Dark/light mode": "M\xf8rk/lys modus", + "Decrease font size": "Reduser skriftst\xf8rrelse", + "Diagnostics": "Diagnose", + "Fold line": "Brett linje", + "Folded lines": "Brettede linjer", + "Format code": "Formater koden", + "Fullscreen": "Fullskjerm", + "Go to line": "G\xe5 til linje", + "Increase font size": "\xd8k skriftst\xf8rrelse", + "No diagnostics": "Ingen diagnose", + "Save code": "Lagre kode", + "Selection deleted": "Valg slettet", + "Unfold line": "Brett opp linje", + "Unfolded lines": "Oppbrettede linjer", + "by word": "etter ord", + "current match": "n\xe5v\xe6rende match", + "folded code": "brettekode", + "go": "g\xe5", + "on line": "p\xe5 linje", + "replaced $ matches": "erstattet $ matcher", + "replaced match on line $": "erstattet match p\xe5 linje $", + "to": "til", + "unfold": "brett opp" +}); + +console.warn('TinyMCE language code "nb_NO" is deprecated, please use "nb-NO" instead.'); \ No newline at end of file diff --git a/plugins/advcode/langs/nl.js b/plugins/advcode/langs/nl.js new file mode 100644 index 00000000..5f030e01 --- /dev/null +++ b/plugins/advcode/langs/nl.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("nl", { + "Cancel": "Annuleren", + "Completions": "Voltooiingen", + "Control character": "Stuurteken", + "Copy code": "Code kopi\xebren", + "Dark/light mode": "Donkere/lichte modus", + "Decrease font size": "Tekengrootte verkleinen", + "Diagnostics": "Diagnostiek", + "Fold line": "Regel samenvouwen", + "Folded lines": "Regels samengevouwen", + "Format code": "Code opmaken", + "Fullscreen": "Volledig scherm", + "Go to line": "Ga naar regel", + "Increase font size": "Tekengrootte vergroten", + "No diagnostics": "Geen diagnostiek", + "Save code": "Code opslaan", + "Selection deleted": "Selectie verwijderd", + "Unfold line": "Regel ontvouwen", + "Unfolded lines": "Regels ontvouwen", + "by word": "heel woord", + "current match": "huidige overeenkomst", + "folded code": "samengevouwen code", + "go": "ga", + "on line": "op regel", + "replaced $ matches": "$ matches vervangen", + "replaced match on line $": "match vervangen op regel $", + "to": "t/m", + "unfold": "ontvouwen" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/pl.js b/plugins/advcode/langs/pl.js new file mode 100644 index 00000000..7cd36901 --- /dev/null +++ b/plugins/advcode/langs/pl.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pl", { + "Cancel": "Anuluj", + "Completions": "Uko\u0144czenia", + "Control character": "Znak steruj\u0105cy", + "Copy code": "Kopiuj kod", + "Dark/light mode": "Tryb ciemny/jasny", + "Decrease font size": "Zmniejsz rozmiar czcionki", + "Diagnostics": "Diagnostyka", + "Fold line": "Z\u0142o\u017cona linia", + "Folded lines": "Zwini\u0119te linie", + "Format code": "Sformatuj kod", + "Fullscreen": "Pe\u0142ny ekran", + "Go to line": "Przejd\u017a do linii", + "Increase font size": "Zwi\u0119ksz rozmiar czcionki", + "No diagnostics": "Bez diagnostyki", + "Save code": "Zapisz kod", + "Selection deleted": "Wyb\xf3r zosta\u0142 usuni\u0119ty", + "Unfold line": "Roz\u0142\xf3\u017c lini\u0119", + "Unfolded lines": "Rozwini\u0119te linie", + "by word": "ca\u0142e s\u0142owo", + "current match": "bie\u017c\u0105ce dopasowanie", + "folded code": "zwini\u0119ty kod", + "go": "przejd\u017a", + "on line": "w linii", + "replaced $ matches": "zast\u0105pione $ dopasowania", + "replaced match on line $": "zast\u0105piono dopasowanie w linii $", + "to": "do", + "unfold": "roz\u0142\xf3\u017c" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/pt-BR.js b/plugins/advcode/langs/pt-BR.js new file mode 100644 index 00000000..63cdcba6 --- /dev/null +++ b/plugins/advcode/langs/pt-BR.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pt-BR", { + "Cancel": "Cancelar", + "Completions": "Conclus\xf5es", + "Control character": "Caractere de controle", + "Copy code": "Copiar c\xf3digo", + "Dark/light mode": "Modo escuro/claro", + "Decrease font size": "Diminuir fonte", + "Diagnostics": "Diagn\xf3stico", + "Fold line": "Recolher linha", + "Folded lines": "Linhas recolhidas", + "Format code": "Formatar c\xf3digo", + "Fullscreen": "Tela cheia", + "Go to line": "Ir para a linha", + "Increase font size": "Aumentar fonte", + "No diagnostics": "Nenhum diagn\xf3stico", + "Save code": "Salvar c\xf3digo", + "Selection deleted": "Sele\xe7\xe3o exclu\xedda", + "Unfold line": "Expandir linha", + "Unfolded lines": "Linhas expandidas", + "by word": "por palavra", + "current match": "correspond\xeancia atual", + "folded code": "c\xf3digo recolhido", + "go": "ir", + "on line": "na linha", + "replaced $ matches": "substituiu $ correspond\xeancias", + "replaced match on line $": "substituiu a correspond\xeancia na linha $", + "to": "a", + "unfold": "expandir" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/pt-PT.js b/plugins/advcode/langs/pt-PT.js new file mode 100644 index 00000000..17395e99 --- /dev/null +++ b/plugins/advcode/langs/pt-PT.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pt-PT", { + "Cancel": "Cancelar", + "Completions": "Conclus\xf5es", + "Control character": "Controlar caractere", + "Copy code": "Copiar c\xf3digo", + "Dark/light mode": "Modo escuro/claro", + "Decrease font size": "Diminuir tamanho do tipo de letra", + "Diagnostics": "Diagn\xf3stico", + "Fold line": "Dobrar linha", + "Folded lines": "Linhas dobradas", + "Format code": "Formatar c\xf3digo", + "Fullscreen": "Ecr\xe3 inteiro", + "Go to line": "Ir para a linha", + "Increase font size": "Aumentar tamanho do tipo de letra", + "No diagnostics": "Sem diagn\xf3stico", + "Save code": "Guardar c\xf3digo", + "Selection deleted": "Sele\xe7\xe3o eliminada", + "Unfold line": "Desdobrar linha", + "Unfolded lines": "Linhas desdobradas", + "by word": "por palavra", + "current match": "correspond\xeancia atual", + "folded code": "c\xf3digo dobrado", + "go": "ir", + "on line": "na linha", + "replaced $ matches": "substitu\xeddas $ correspond\xeancias", + "replaced match on line $": "correspond\xeancia substitu\xedda na linha $", + "to": "para", + "unfold": "desdobrar" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/pt_BR.js b/plugins/advcode/langs/pt_BR.js new file mode 100644 index 00000000..38ccbcdb --- /dev/null +++ b/plugins/advcode/langs/pt_BR.js @@ -0,0 +1,37 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pt-BR", { + "Cancel": "Cancelar", + "Completions": "Conclus\xf5es", + "Control character": "Caractere de controle", + "Copy code": "Copiar c\xf3digo", + "Dark/light mode": "Modo escuro/claro", + "Decrease font size": "Diminuir fonte", + "Diagnostics": "Diagn\xf3stico", + "Fold line": "Recolher linha", + "Folded lines": "Linhas recolhidas", + "Format code": "Formatar c\xf3digo", + "Fullscreen": "Tela cheia", + "Go to line": "Ir para a linha", + "Increase font size": "Aumentar fonte", + "No diagnostics": "Nenhum diagn\xf3stico", + "Save code": "Salvar c\xf3digo", + "Selection deleted": "Sele\xe7\xe3o exclu\xedda", + "Unfold line": "Expandir linha", + "Unfolded lines": "Linhas expandidas", + "by word": "por palavra", + "current match": "correspond\xeancia atual", + "folded code": "c\xf3digo recolhido", + "go": "ir", + "on line": "na linha", + "replaced $ matches": "substituiu $ correspond\xeancias", + "replaced match on line $": "substituiu a correspond\xeancia na linha $", + "to": "a", + "unfold": "expandir" +}); + +console.warn('TinyMCE language code "pt_BR" is deprecated, please use "pt-BR" instead.'); \ No newline at end of file diff --git a/plugins/advcode/langs/pt_PT.js b/plugins/advcode/langs/pt_PT.js new file mode 100644 index 00000000..374df7d3 --- /dev/null +++ b/plugins/advcode/langs/pt_PT.js @@ -0,0 +1,37 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pt-PT", { + "Cancel": "Cancelar", + "Completions": "Conclus\xf5es", + "Control character": "Controlar caractere", + "Copy code": "Copiar c\xf3digo", + "Dark/light mode": "Modo escuro/claro", + "Decrease font size": "Diminuir tamanho do tipo de letra", + "Diagnostics": "Diagn\xf3stico", + "Fold line": "Dobrar linha", + "Folded lines": "Linhas dobradas", + "Format code": "Formatar c\xf3digo", + "Fullscreen": "Ecr\xe3 inteiro", + "Go to line": "Ir para a linha", + "Increase font size": "Aumentar tamanho do tipo de letra", + "No diagnostics": "Sem diagn\xf3stico", + "Save code": "Guardar c\xf3digo", + "Selection deleted": "Sele\xe7\xe3o eliminada", + "Unfold line": "Desdobrar linha", + "Unfolded lines": "Linhas desdobradas", + "by word": "por palavra", + "current match": "correspond\xeancia atual", + "folded code": "c\xf3digo dobrado", + "go": "ir", + "on line": "na linha", + "replaced $ matches": "substitu\xeddas $ correspond\xeancias", + "replaced match on line $": "correspond\xeancia substitu\xedda na linha $", + "to": "para", + "unfold": "desdobrar" +}); + +console.warn('TinyMCE language code "pt_PT" is deprecated, please use "pt-PT" instead.'); \ No newline at end of file diff --git a/plugins/advcode/langs/ro.js b/plugins/advcode/langs/ro.js new file mode 100644 index 00000000..d18150ef --- /dev/null +++ b/plugins/advcode/langs/ro.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ro", { + "Cancel": "Anulare", + "Completions": "Complet\u0103ri", + "Control character": "Caracter de control", + "Copy code": "Copiere cod", + "Dark/light mode": "Mod \xeentunecat/luminos", + "Decrease font size": "Mic\u0219orare dimensiune font", + "Diagnostics": "Diagnostic", + "Fold line": "Ascundere linie", + "Folded lines": "Linii ascunse", + "Format code": "Cod format", + "Fullscreen": "Ecran complet", + "Go to line": "Salt la linia", + "Increase font size": "M\u0103rire dimensiune font", + "No diagnostics": "Niciun diagnostic", + "Save code": "Salvare cod", + "Selection deleted": "Selec\u021bie \u0219tears\u0103", + "Unfold line": "Afi\u0219are linie", + "Unfolded lines": "Linii afi\u0219ate", + "by word": "dup\u0103 cuv\xe2nt", + "current match": "potrivire curent\u0103", + "folded code": "cod ascuns", + "go": "salt", + "on line": "pe linia", + "replaced $ matches": "$ potriviri \xeenlocuite", + "replaced match on line $": "potrivire \xeenlocuit\u0103 \xeen linia $", + "to": "la", + "unfold": "afi\u0219are" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/ru.js b/plugins/advcode/langs/ru.js new file mode 100644 index 00000000..0bb3e4e3 --- /dev/null +++ b/plugins/advcode/langs/ru.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ru", { + "Cancel": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c", + "Completions": "\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f", + "Control character": "\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u0438\u043c\u0432\u043e\u043b", + "Copy code": "\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434", + "Dark/light mode": "\u0422\u0435\u043c\u043d\u044b\u0439/\u0441\u0432\u0435\u0442\u043b\u044b\u0439 \u0440\u0435\u0436\u0438\u043c", + "Decrease font size": "\u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0448\u0440\u0438\u0444\u0442", + "Diagnostics": "\u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430", + "Fold line": "\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443", + "Folded lines": "\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044b \u0441\u0442\u0440\u043e\u043a\u0438", + "Format code": "\u041e\u0442\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434", + "Fullscreen": "\u041f\u043e\u043b\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d", + "Go to line": "\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0441\u0442\u0440\u043e\u043a\u0435", + "Increase font size": "\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0448\u0440\u0438\u0444\u0442", + "No diagnostics": "\u0411\u0435\u0437 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438", + "Save code": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u0434", + "Selection deleted": "\u0412\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u043e", + "Unfold line": "\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443", + "Unfolded lines": "\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044b \u0441\u0442\u0440\u043e\u043a\u0438", + "by word": "\u043f\u043e \u0446\u0435\u043b\u043e\u043c\u0443 \u0441\u043b\u043e\u0432\u0443", + "current match": "\u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435", + "folded code": "\u0441\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u0439 \u043a\u043e\u0434", + "go": "\u043f\u0435\u0440\u0435\u0439\u0442\u0438", + "on line": "\u0432 \u0441\u0442\u0440\u043e\u043a\u0435", + "replaced $ matches": "\u0437\u0430\u043c\u0435\u043d\u0435\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439: $", + "replaced match on line $": "\u0437\u0430\u043c\u0435\u043d\u0435\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 $", + "to": "\u2014", + "unfold": "\u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/sk.js b/plugins/advcode/langs/sk.js new file mode 100644 index 00000000..6b1a4cb3 --- /dev/null +++ b/plugins/advcode/langs/sk.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sk", { + "Cancel": "Zru\u0161i\u0165", + "Completions": "Dokon\u010denie", + "Control character": "Kontroln\xfd znak", + "Copy code": "Kop\xedrova\u0165 k\xf3d", + "Dark/light mode": "Tmav\xfd/svetl\xfd re\u017eim", + "Decrease font size": "Zmen\u0161i\u0165 ve\u013ekos\u0165 p\xedsma", + "Diagnostics": "Diagnostika", + "Fold line": "Zvin\xfa\u0165 \u010diaru", + "Folded lines": "Zvinut\xe9 riadky", + "Format code": "Form\xe1t k\xf3du", + "Fullscreen": "Na cel\xfa obrazovku", + "Go to line": "Prejs\u0165 na riadok", + "Increase font size": "Zv\xe4\u010d\u0161i\u0165 ve\u013ekos\u0165 p\xedsma", + "No diagnostics": "Bez diagnostiky", + "Save code": "Ulo\u017ei\u0165 k\xf3d", + "Selection deleted": "V\xfdber bol vymazan\xfd", + "Unfold line": "Rozvin\xfa\u0165 \u010diaru", + "Unfolded lines": "Rozvinut\xe9 riadky", + "by word": "pod\u013ea slova", + "current match": "aktu\xe1lna zhoda", + "folded code": "zvinut\xfd k\xf3d", + "go": "prejs\u0165", + "on line": "v riadku", + "replaced $ matches": "nahraden\xe9 zhody: $", + "replaced match on line $": "nahraden\xe9 zhody v riadku $", + "to": "a\u017e", + "unfold": "rozvin\xfa\u0165" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/sl-SI.js b/plugins/advcode/langs/sl-SI.js new file mode 100644 index 00000000..ed6dac22 --- /dev/null +++ b/plugins/advcode/langs/sl-SI.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sl-SI", { + "Cancel": "Prekli\u010di", + "Completions": "Dokon\u010danja", + "Control character": "Kontrolni znak", + "Copy code": "Kopiraj kodo", + "Dark/light mode": "Temni/svetli na\u010din", + "Decrease font size": "Zmanj\u0161aj velikost pisave", + "Diagnostics": "Diagnostika", + "Fold line": "Zakrij vrstico", + "Folded lines": "Zakrite vrstice", + "Format code": "Formatiranje kode", + "Fullscreen": "Celozaslonsko", + "Go to line": "Pomik na vrstico", + "Increase font size": "Pove\u010daj velikost pisave", + "No diagnostics": "Brez diagnostike", + "Save code": "Shrani kodo", + "Selection deleted": "Izbor je izbrisan", + "Unfold line": "Razkrij vrstico", + "Unfolded lines": "Razkrite vrstice", + "by word": "po besedi", + "current match": "trenutno ujemanje", + "folded code": "zakrita koda", + "go": "pojdi", + "on line": "v vrstici", + "replaced $ matches": "zamenjana ujemanja: $", + "replaced match on line $": "zamenjano ujemanje v vrstici $", + "to": "do", + "unfold": "razkrij" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/sl_SI.js b/plugins/advcode/langs/sl_SI.js new file mode 100644 index 00000000..cca0aca6 --- /dev/null +++ b/plugins/advcode/langs/sl_SI.js @@ -0,0 +1,37 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sl-SI", { + "Cancel": "Prekli\u010di", + "Completions": "Dokon\u010danja", + "Control character": "Kontrolni znak", + "Copy code": "Kopiraj kodo", + "Dark/light mode": "Temni/svetli na\u010din", + "Decrease font size": "Zmanj\u0161aj velikost pisave", + "Diagnostics": "Diagnostika", + "Fold line": "Zakrij vrstico", + "Folded lines": "Zakrite vrstice", + "Format code": "Formatiranje kode", + "Fullscreen": "Celozaslonsko", + "Go to line": "Pomik na vrstico", + "Increase font size": "Pove\u010daj velikost pisave", + "No diagnostics": "Brez diagnostike", + "Save code": "Shrani kodo", + "Selection deleted": "Izbor je izbrisan", + "Unfold line": "Razkrij vrstico", + "Unfolded lines": "Razkrite vrstice", + "by word": "po besedi", + "current match": "trenutno ujemanje", + "folded code": "zakrita koda", + "go": "pojdi", + "on line": "v vrstici", + "replaced $ matches": "zamenjana ujemanja: $", + "replaced match on line $": "zamenjano ujemanje v vrstici $", + "to": "do", + "unfold": "razkrij" +}); + +console.warn('TinyMCE language code "sl_SI" is deprecated, please use "sl-SI" instead.'); \ No newline at end of file diff --git a/plugins/advcode/langs/sv-SE.js b/plugins/advcode/langs/sv-SE.js new file mode 100644 index 00000000..630dd9d4 --- /dev/null +++ b/plugins/advcode/langs/sv-SE.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sv-SE", { + "Cancel": "Avbryt", + "Completions": "Slutf\xf6rda", + "Control character": "Kontrolltecken", + "Copy code": "Kopiera kod", + "Dark/light mode": "M\xf6rkt/ljust l\xe4ge", + "Decrease font size": "Minska teckenstorleken", + "Diagnostics": "Diagnostik", + "Fold line": "Vik rad", + "Folded lines": "Vikta rader", + "Format code": "Formatera kod", + "Fullscreen": "Helsk\xe4rm", + "Go to line": "G\xe5 till rad", + "Increase font size": "\xd6ka teckenstorleken", + "No diagnostics": "Ingen diagnostik", + "Save code": "Spara kod", + "Selection deleted": "Valet har raderats", + "Unfold line": "Vik ut rad", + "Unfolded lines": "Utvikta rader", + "by word": "efter ord", + "current match": "nuvarande tr\xe4ff", + "folded code": "vikt kod", + "go": "g\xe5", + "on line": "p\xe5 rad", + "replaced $ matches": "ersatte $ tr\xe4ffar", + "replaced match on line $": "ersatte tr\xe4ff p\xe5 rad $", + "to": "till", + "unfold": "vik ut" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/sv_SE.js b/plugins/advcode/langs/sv_SE.js new file mode 100644 index 00000000..9c60ad08 --- /dev/null +++ b/plugins/advcode/langs/sv_SE.js @@ -0,0 +1,37 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sv-SE", { + "Cancel": "Avbryt", + "Completions": "Slutf\xf6rda", + "Control character": "Kontrolltecken", + "Copy code": "Kopiera kod", + "Dark/light mode": "M\xf6rkt/ljust l\xe4ge", + "Decrease font size": "Minska teckenstorleken", + "Diagnostics": "Diagnostik", + "Fold line": "Vik rad", + "Folded lines": "Vikta rader", + "Format code": "Formatera kod", + "Fullscreen": "Helsk\xe4rm", + "Go to line": "G\xe5 till rad", + "Increase font size": "\xd6ka teckenstorleken", + "No diagnostics": "Ingen diagnostik", + "Save code": "Spara kod", + "Selection deleted": "Valet har raderats", + "Unfold line": "Vik ut rad", + "Unfolded lines": "Utvikta rader", + "by word": "efter ord", + "current match": "nuvarande tr\xe4ff", + "folded code": "vikt kod", + "go": "g\xe5", + "on line": "p\xe5 rad", + "replaced $ matches": "ersatte $ tr\xe4ffar", + "replaced match on line $": "ersatte tr\xe4ff p\xe5 rad $", + "to": "till", + "unfold": "vik ut" +}); + +console.warn('TinyMCE language code "sv_SE" is deprecated, please use "sv-SE" instead.'); \ No newline at end of file diff --git a/plugins/advcode/langs/th-TH.js b/plugins/advcode/langs/th-TH.js new file mode 100644 index 00000000..37b86b09 --- /dev/null +++ b/plugins/advcode/langs/th-TH.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("th-TH", { + "Cancel": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01", + "Completions": "\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c", + "Control character": "\u0e2d\u0e31\u0e01\u0e02\u0e23\u0e30\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21", + "Copy code": "\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e23\u0e2b\u0e31\u0e2a", + "Dark/light mode": "\u0e42\u0e2b\u0e21\u0e14\u0e21\u0e37\u0e14/\u0e2a\u0e27\u0e48\u0e32\u0e07", + "Decrease font size": "\u0e25\u0e14\u0e02\u0e19\u0e32\u0e14\u0e41\u0e1a\u0e1a\u0e2d\u0e31\u0e01\u0e29\u0e23", + "Diagnostics": "\u0e01\u0e32\u0e23\u0e27\u0e34\u0e19\u0e34\u0e08\u0e09\u0e31\u0e22", + "Fold line": "\u0e22\u0e38\u0e1a\u0e41\u0e16\u0e27", + "Folded lines": "\u0e41\u0e16\u0e27\u0e17\u0e35\u0e48\u0e22\u0e38\u0e1a", + "Format code": "\u0e08\u0e31\u0e14\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e23\u0e2b\u0e31\u0e2a", + "Fullscreen": "\u0e40\u0e15\u0e47\u0e21\u0e08\u0e2d", + "Go to line": "\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e41\u0e16\u0e27", + "Increase font size": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e02\u0e19\u0e32\u0e14\u0e41\u0e1a\u0e1a\u0e2d\u0e31\u0e01\u0e29\u0e23", + "No diagnostics": "\u0e44\u0e21\u0e48\u0e21\u0e35\u0e01\u0e32\u0e23\u0e27\u0e34\u0e19\u0e34\u0e08\u0e09\u0e31\u0e22", + "Save code": "\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e42\u0e04\u0e49\u0e14", + "Selection deleted": "\u0e25\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e41\u0e25\u0e49\u0e27", + "Unfold line": "\u0e02\u0e22\u0e32\u0e22\u0e41\u0e16\u0e27", + "Unfolded lines": "\u0e41\u0e16\u0e27\u0e17\u0e35\u0e48\u0e02\u0e22\u0e32\u0e22", + "by word": "\u0e15\u0e32\u0e21\u0e04\u0e33", + "current match": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e15\u0e23\u0e07\u0e01\u0e31\u0e19\u0e43\u0e19\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19", + "folded code": "\u0e42\u0e04\u0e49\u0e14\u0e17\u0e35\u0e48\u0e22\u0e38\u0e1a", + "go": "\u0e44\u0e1b", + "on line": "\u0e1a\u0e19\u0e41\u0e16\u0e27", + "replaced $ matches": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48 $ \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e15\u0e23\u0e07\u0e01\u0e31\u0e19\u0e41\u0e25\u0e49\u0e27", + "replaced match on line $": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e15\u0e23\u0e07\u0e01\u0e31\u0e19\u0e43\u0e19\u0e41\u0e16\u0e27 $ \u0e41\u0e25\u0e49\u0e27", + "to": "\u0e44\u0e1b\u0e22\u0e31\u0e07", + "unfold": "\u0e02\u0e22\u0e32\u0e22" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/th_TH.js b/plugins/advcode/langs/th_TH.js new file mode 100644 index 00000000..90b4594c --- /dev/null +++ b/plugins/advcode/langs/th_TH.js @@ -0,0 +1,37 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("th-TH", { + "Cancel": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01", + "Completions": "\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c", + "Control character": "\u0e2d\u0e31\u0e01\u0e02\u0e23\u0e30\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21", + "Copy code": "\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e23\u0e2b\u0e31\u0e2a", + "Dark/light mode": "\u0e42\u0e2b\u0e21\u0e14\u0e21\u0e37\u0e14/\u0e2a\u0e27\u0e48\u0e32\u0e07", + "Decrease font size": "\u0e25\u0e14\u0e02\u0e19\u0e32\u0e14\u0e41\u0e1a\u0e1a\u0e2d\u0e31\u0e01\u0e29\u0e23", + "Diagnostics": "\u0e01\u0e32\u0e23\u0e27\u0e34\u0e19\u0e34\u0e08\u0e09\u0e31\u0e22", + "Fold line": "\u0e22\u0e38\u0e1a\u0e41\u0e16\u0e27", + "Folded lines": "\u0e41\u0e16\u0e27\u0e17\u0e35\u0e48\u0e22\u0e38\u0e1a", + "Format code": "\u0e08\u0e31\u0e14\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e23\u0e2b\u0e31\u0e2a", + "Fullscreen": "\u0e40\u0e15\u0e47\u0e21\u0e08\u0e2d", + "Go to line": "\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e41\u0e16\u0e27", + "Increase font size": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e02\u0e19\u0e32\u0e14\u0e41\u0e1a\u0e1a\u0e2d\u0e31\u0e01\u0e29\u0e23", + "No diagnostics": "\u0e44\u0e21\u0e48\u0e21\u0e35\u0e01\u0e32\u0e23\u0e27\u0e34\u0e19\u0e34\u0e08\u0e09\u0e31\u0e22", + "Save code": "\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e42\u0e04\u0e49\u0e14", + "Selection deleted": "\u0e25\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e41\u0e25\u0e49\u0e27", + "Unfold line": "\u0e02\u0e22\u0e32\u0e22\u0e41\u0e16\u0e27", + "Unfolded lines": "\u0e41\u0e16\u0e27\u0e17\u0e35\u0e48\u0e02\u0e22\u0e32\u0e22", + "by word": "\u0e15\u0e32\u0e21\u0e04\u0e33", + "current match": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e15\u0e23\u0e07\u0e01\u0e31\u0e19\u0e43\u0e19\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19", + "folded code": "\u0e42\u0e04\u0e49\u0e14\u0e17\u0e35\u0e48\u0e22\u0e38\u0e1a", + "go": "\u0e44\u0e1b", + "on line": "\u0e1a\u0e19\u0e41\u0e16\u0e27", + "replaced $ matches": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48 $ \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e15\u0e23\u0e07\u0e01\u0e31\u0e19\u0e41\u0e25\u0e49\u0e27", + "replaced match on line $": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e15\u0e23\u0e07\u0e01\u0e31\u0e19\u0e43\u0e19\u0e41\u0e16\u0e27 $ \u0e41\u0e25\u0e49\u0e27", + "to": "\u0e44\u0e1b\u0e22\u0e31\u0e07", + "unfold": "\u0e02\u0e22\u0e32\u0e22" +}); + +console.warn('TinyMCE language code "th_TH" is deprecated, please use "th-TH" instead.'); \ No newline at end of file diff --git a/plugins/advcode/langs/tr.js b/plugins/advcode/langs/tr.js new file mode 100644 index 00000000..48fac2ea --- /dev/null +++ b/plugins/advcode/langs/tr.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("tr", { + "Cancel": "\u0130ptal", + "Completions": "Tamamlamalar", + "Control character": "Kontrol karakteri", + "Copy code": "Kodu kopyala", + "Dark/light mode": "Koyu/a\xe7\u0131k mod", + "Decrease font size": "Yaz\u0131 tipi boyutunu azalt", + "Diagnostics": "Tan\u0131lama", + "Fold line": "Sat\u0131r\u0131 katla", + "Folded lines": "Katlanm\u0131\u015f sat\u0131rlar", + "Format code": "Bi\xe7im kodu", + "Fullscreen": "Tam ekran", + "Go to line": "\u015eu sat\u0131ra git:", + "Increase font size": "Yaz\u0131 tipi boyutunu art\u0131r", + "No diagnostics": "Tan\u0131lama yok", + "Save code": "Kodu kaydet", + "Selection deleted": "Se\xe7im silindi", + "Unfold line": "Sat\u0131r\u0131n kat\u0131n\u0131 a\xe7", + "Unfolded lines": "Katlanmam\u0131\u015f sat\u0131rlar", + "by word": "kelimeye g\xf6re", + "current match": "mevcut e\u015fle\u015fme", + "folded code": "katlanm\u0131\u015f kod", + "go": "git", + "on line": "\u015fu sat\u0131rda:", + "replaced $ matches": "$ e\u015fle\u015fme de\u011fi\u015ftirildi", + "replaced match on line $": "$. sat\u0131rdaki e\u015fle\u015fme de\u011fi\u015ftirildi", + "to": "-", + "unfold": "kat\u0131 a\xe7" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/uk.js b/plugins/advcode/langs/uk.js new file mode 100644 index 00000000..cc74717a --- /dev/null +++ b/plugins/advcode/langs/uk.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("uk", { + "Cancel": "\u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438", + "Completions": "\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u044f", + "Control character": "\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0438\u0439 \u0441\u0438\u043c\u0432\u043e\u043b", + "Copy code": "\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438 \u043a\u043e\u0434", + "Dark/light mode": "\u0422\u0435\u043c\u043d\u0438\u0439/\u0441\u0432\u0456\u0442\u043b\u0438\u0439 \u0440\u0435\u0436\u0438\u043c", + "Decrease font size": "\u0417\u043c\u0435\u043d\u0448\u0438\u0442\u0438 \u0440\u043e\u0437\u043c\u0456\u0440 \u0448\u0440\u0438\u0444\u0442\u0443", + "Diagnostics": "\u0414\u0456\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430", + "Fold line": "\u0417\u0433\u043e\u0440\u043d\u0443\u0442\u0438 \u0440\u044f\u0434\u043e\u043a", + "Folded lines": "\u0417\u0433\u043e\u0440\u043d\u0443\u0442\u0456 \u0440\u044f\u0434\u043a\u0438", + "Format code": "\u0424\u043e\u0440\u043c\u0430\u0442\u0443\u0432\u0430\u0442\u0438 \u043a\u043e\u0434", + "Fullscreen": "\u041d\u0430 \u0432\u0435\u0441\u044c \u0435\u043a\u0440\u0430\u043d", + "Go to line": "\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u0434\u043e \u0440\u044f\u0434\u043a\u0430", + "Increase font size": "\u0417\u0431\u0456\u043b\u044c\u0448\u0438\u0442\u0438 \u0440\u043e\u0437\u043c\u0456\u0440 \u0448\u0440\u0438\u0444\u0442\u0443", + "No diagnostics": "\u041d\u0435\u043c\u0430\u0454 \u0434\u0456\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438", + "Save code": "\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u043a\u043e\u0434", + "Selection deleted": "\u0412\u0438\u0434\u0456\u043b\u0435\u043d\u0456 \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0438 \u0432\u0438\u0434\u0430\u043b\u0435\u043d\u043e", + "Unfold line": "\u0420\u043e\u0437\u0433\u043e\u0440\u043d\u0443\u0442\u0438 \u0440\u044f\u0434\u043e\u043a", + "Unfolded lines": "\u0420\u043e\u0437\u0433\u043e\u0440\u043d\u0443\u0442\u0456 \u0440\u044f\u0434\u043a\u0438", + "by word": "\u0437\u0430 \u0441\u043b\u043e\u0432\u043e\u043c", + "current match": "\u043f\u043e\u0442\u043e\u0447\u043d\u0438\u0439 \u0437\u0431\u0456\u0433", + "folded code": "\u0437\u0433\u043e\u0440\u043d\u0443\u0442\u0438\u0439 \u043a\u043e\u0434", + "go": "\u043f\u0435\u0440\u0435\u0439\u0442\u0438", + "on line": "\u0443 \u0440\u044f\u0434\u043a\u0443", + "replaced $ matches": "\u0437\u0430\u043c\u0456\u043d\u0435\u043d\u043e \u0441\u0442\u0456\u043b\u044c\u043a\u0438 \u0437\u0431\u0456\u0433\u0456\u0432: $", + "replaced match on line $": "\u0437\u0430\u043c\u0456\u043d\u0435\u043d\u043e \u0437\u0431\u0456\u0433 \u0443 \u0440\u044f\u0434\u043a\u0443 $", + "to": "\u0434\u043e", + "unfold": "\u0440\u043e\u0437\u0433\u043e\u0440\u043d\u0443\u0442\u0438" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/vi.js b/plugins/advcode/langs/vi.js new file mode 100644 index 00000000..b772de4f --- /dev/null +++ b/plugins/advcode/langs/vi.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("vi", { + "Cancel": "H\u1ee7y b\u1ecf", + "Completions": "Ho\xe0n th\xe0nh", + "Control character": "K\xfd t\u1ef1 \u0111i\u1ec1u khi\u1ec3n", + "Copy code": "Sao ch\xe9p m\xe3", + "Dark/light mode": "Ch\u1ebf \u0111\u1ed9 t\u1ed1i/s\xe1ng", + "Decrease font size": "Gi\u1ea3m c\u1ee1 ph\xf4ng", + "Diagnostics": "Ch\u1ea9n \u0111o\xe1n", + "Fold line": "G\u1eadp d\xf2ng", + "Folded lines": "\u0110\xe3 g\u1eadp d\xf2ng", + "Format code": "M\xe3 \u0111\u1ecbnh d\u1ea1ng", + "Fullscreen": "To\xe0n m\xe0n h\xecnh", + "Go to line": "\u0110\u1ebfn d\xf2ng", + "Increase font size": "T\u0103ng c\u1ee1 ph\xf4ng", + "No diagnostics": "Kh\xf4ng c\xf3 th\xf4ng tin ch\u1ea9n \u0111o\xe1n", + "Save code": "L\u01b0u m\xe3", + "Selection deleted": "L\u1ef1a ch\u1ecdn \u0111\xe3 b\u1ecb x\xf3a", + "Unfold line": "B\u1ecf g\u1eadp d\xf2ng", + "Unfolded lines": "\u0110\xe3 b\u1ecf g\u1eadp d\xf2ng", + "by word": "theo t\u1eeb", + "current match": "k\u1ebft qu\u1ea3 hi\u1ec7n t\u1ea1i", + "folded code": "m\xe3 g\u1eadp", + "go": "\u0111\u1ebfn", + "on line": "tr\xean d\xf2ng", + "replaced $ matches": "\u0111\xe3 thay th\u1ebf $ k\u1ebft qu\u1ea3", + "replaced match on line $": "\u0111\xe3 thay th\u1ebf k\u1ebft qu\u1ea3 tr\xean d\xf2ng $", + "to": "\u0111\u1ebfn", + "unfold": "b\u1ecf g\u1eadp" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/zh-CN.js b/plugins/advcode/langs/zh-CN.js new file mode 100644 index 00000000..ae1cfce8 --- /dev/null +++ b/plugins/advcode/langs/zh-CN.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("zh-CN", { + "Cancel": "\u53d6\u6d88", + "Completions": "\u8865\u5168", + "Control character": "\u63a7\u5236\u5b57\u7b26", + "Copy code": "\u590d\u5236\u4ee3\u7801", + "Dark/light mode": "\u6df1\u8272/\u6d45\u8272\u6a21\u5f0f", + "Decrease font size": "\u51cf\u5c0f\u5b57\u53f7", + "Diagnostics": "\u8bca\u65ad", + "Fold line": "\u6536\u8d77\u884c", + "Folded lines": "\u5df2\u6536\u8d77\u884c", + "Format code": "\u8bbe\u7f6e\u4ee3\u7801\u683c\u5f0f", + "Fullscreen": "\u5168\u5c4f", + "Go to line": "\u524d\u5f80\u884c", + "Increase font size": "\u589e\u5927\u5b57\u53f7", + "No diagnostics": "\u65e0\u8bca\u65ad", + "Save code": "\u4fdd\u5b58\u4ee3\u7801", + "Selection deleted": "\u9009\u62e9\u5185\u5bb9\u5df2\u5220\u9664", + "Unfold line": "\u5c55\u5f00\u884c", + "Unfolded lines": "\u5df2\u5c55\u5f00\u884c", + "by word": "\u5168\u5b57", + "current match": "\u5f53\u524d\u5339\u914d\u9879", + "folded code": "\u6536\u8d77\u7684\u4ee3\u7801", + "go": "\u524d\u5f80", + "on line": "\uff0c\u884c\u53f7:", + "replaced $ matches": "\u5df2\u66ff\u6362 $ \u4e2a\u5339\u914d\u9879", + "replaced match on line $": "\u5df2\u66ff\u6362\u7b2c $ \u884c\u4e0a\u7684\u5339\u914d\u9879", + "to": "\u81f3", + "unfold": "\u5c55\u5f00" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/zh-TW.js b/plugins/advcode/langs/zh-TW.js new file mode 100644 index 00000000..676aebdf --- /dev/null +++ b/plugins/advcode/langs/zh-TW.js @@ -0,0 +1,35 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("zh-TW", { + "Cancel": "\u53d6\u6d88", + "Completions": "\u5b8c\u6210", + "Control character": "\u63a7\u5236\u5b57\u5143", + "Copy code": "\u8907\u88fd\u7a0b\u5f0f\u78bc", + "Dark/light mode": "\u591c\u9593/\u65e5\u9593\u6a21\u5f0f", + "Decrease font size": "\u7e2e\u5c0f\u5b57\u578b", + "Diagnostics": "\u8a3a\u65b7", + "Fold line": "\u6536\u8d77\u884c", + "Folded lines": "\u6536\u8d77\u7684\u884c", + "Format code": "\u8a2d\u5b9a\u7a0b\u5f0f\u78bc\u683c\u5f0f", + "Fullscreen": "\u5168\u87a2\u5e55", + "Go to line": "\u524d\u5f80\u884c", + "Increase font size": "\u653e\u5927\u5b57\u578b", + "No diagnostics": "\u7121\u8a3a\u65b7", + "Save code": "\u5132\u5b58\u7a0b\u5f0f\u78bc", + "Selection deleted": "\u9078\u53d6\u9805\u76ee\u5df2\u522a\u9664", + "Unfold line": "\u5c55\u958b\u884c", + "Unfolded lines": "\u5c55\u958b\u7684\u884c", + "by word": "\u4f9d\u5b8c\u6574\u55ae\u8a5e", + "current match": "\u76ee\u524d\u7684\u76f8\u7b26\u9805\u76ee", + "folded code": "\u6536\u8d77\u7684\u4ee3\u78bc", + "go": "\u524d\u5f80", + "on line": "\uff0c\u884c\u865f\uff1a", + "replaced $ matches": "\u5df2\u53d6\u4ee3 $ \u500b\u76f8\u7b26\u9805\u76ee", + "replaced match on line $": "\u5df2\u53d6\u4ee3\u7b2c $ \u884c\u4e0a\u7684\u76f8\u7b26\u9805\u76ee", + "to": "\u81f3", + "unfold": "\u5c55\u958b" +}); \ No newline at end of file diff --git a/plugins/advcode/langs/zh_CN.js b/plugins/advcode/langs/zh_CN.js new file mode 100644 index 00000000..59c497c9 --- /dev/null +++ b/plugins/advcode/langs/zh_CN.js @@ -0,0 +1,37 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("zh-CN", { + "Cancel": "\u53d6\u6d88", + "Completions": "\u8865\u5168", + "Control character": "\u63a7\u5236\u5b57\u7b26", + "Copy code": "\u590d\u5236\u4ee3\u7801", + "Dark/light mode": "\u6df1\u8272/\u6d45\u8272\u6a21\u5f0f", + "Decrease font size": "\u51cf\u5c0f\u5b57\u53f7", + "Diagnostics": "\u8bca\u65ad", + "Fold line": "\u6536\u8d77\u884c", + "Folded lines": "\u5df2\u6536\u8d77\u884c", + "Format code": "\u8bbe\u7f6e\u4ee3\u7801\u683c\u5f0f", + "Fullscreen": "\u5168\u5c4f", + "Go to line": "\u524d\u5f80\u884c", + "Increase font size": "\u589e\u5927\u5b57\u53f7", + "No diagnostics": "\u65e0\u8bca\u65ad", + "Save code": "\u4fdd\u5b58\u4ee3\u7801", + "Selection deleted": "\u9009\u62e9\u5185\u5bb9\u5df2\u5220\u9664", + "Unfold line": "\u5c55\u5f00\u884c", + "Unfolded lines": "\u5df2\u5c55\u5f00\u884c", + "by word": "\u5168\u5b57", + "current match": "\u5f53\u524d\u5339\u914d\u9879", + "folded code": "\u6536\u8d77\u7684\u4ee3\u7801", + "go": "\u524d\u5f80", + "on line": "\uff0c\u884c\u53f7:", + "replaced $ matches": "\u5df2\u66ff\u6362 $ \u4e2a\u5339\u914d\u9879", + "replaced match on line $": "\u5df2\u66ff\u6362\u7b2c $ \u884c\u4e0a\u7684\u5339\u914d\u9879", + "to": "\u81f3", + "unfold": "\u5c55\u5f00" +}); + +console.warn('TinyMCE language code "zh_CN" is deprecated, please use "zh-CN" instead.'); \ No newline at end of file diff --git a/plugins/advcode/langs/zh_TW.js b/plugins/advcode/langs/zh_TW.js new file mode 100644 index 00000000..d19af994 --- /dev/null +++ b/plugins/advcode/langs/zh_TW.js @@ -0,0 +1,37 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("zh-TW", { + "Cancel": "\u53d6\u6d88", + "Completions": "\u5b8c\u6210", + "Control character": "\u63a7\u5236\u5b57\u5143", + "Copy code": "\u8907\u88fd\u7a0b\u5f0f\u78bc", + "Dark/light mode": "\u591c\u9593/\u65e5\u9593\u6a21\u5f0f", + "Decrease font size": "\u7e2e\u5c0f\u5b57\u578b", + "Diagnostics": "\u8a3a\u65b7", + "Fold line": "\u6536\u8d77\u884c", + "Folded lines": "\u6536\u8d77\u7684\u884c", + "Format code": "\u8a2d\u5b9a\u7a0b\u5f0f\u78bc\u683c\u5f0f", + "Fullscreen": "\u5168\u87a2\u5e55", + "Go to line": "\u524d\u5f80\u884c", + "Increase font size": "\u653e\u5927\u5b57\u578b", + "No diagnostics": "\u7121\u8a3a\u65b7", + "Save code": "\u5132\u5b58\u7a0b\u5f0f\u78bc", + "Selection deleted": "\u9078\u53d6\u9805\u76ee\u5df2\u522a\u9664", + "Unfold line": "\u5c55\u958b\u884c", + "Unfolded lines": "\u5c55\u958b\u7684\u884c", + "by word": "\u4f9d\u5b8c\u6574\u55ae\u8a5e", + "current match": "\u76ee\u524d\u7684\u76f8\u7b26\u9805\u76ee", + "folded code": "\u6536\u8d77\u7684\u4ee3\u78bc", + "go": "\u524d\u5f80", + "on line": "\uff0c\u884c\u865f\uff1a", + "replaced $ matches": "\u5df2\u53d6\u4ee3 $ \u500b\u76f8\u7b26\u9805\u76ee", + "replaced match on line $": "\u5df2\u53d6\u4ee3\u7b2c $ \u884c\u4e0a\u7684\u76f8\u7b26\u9805\u76ee", + "to": "\u81f3", + "unfold": "\u5c55\u958b" +}); + +console.warn('TinyMCE language code "zh_TW" is deprecated, please use "zh-TW" instead.'); \ No newline at end of file diff --git a/plugins/advcode/plugin.js b/plugins/advcode/plugin.js new file mode 100644 index 00000000..0ed9bb5e --- /dev/null +++ b/plugins/advcode/plugin.js @@ -0,0 +1,3593 @@ +/*! + * Tiny Enhanced Code Editor plugin + * + * Copyright (c) 2023 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + * + * Version: 8.3.0-112 + */ + +/*! + * This resource uses the code from the following libraries: + * + * highlight + * Copyright (C) 2018 by Marijn Haverbeke and others + * https://github.com/lezer-parser/highlight + * + * js-beautify + * Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + * https://github.com/beautifier/js-beautify + */ + +!(function () { + "use strict"; + const t = (t) => (e) => typeof e === t, + e = (t) => + "string" === + ((t) => { + const e = typeof t; + return null === t + ? "null" + : "object" === e && Array.isArray(t) + ? "array" + : "object" === e && + ((n = i = t), + (r = String).prototype.isPrototypeOf(n) || + i.constructor?.name === r.name) + ? "string" + : e; + var n, i, r; + })(t); + const n = t("boolean"), + i = (t) => null == t, + r = (t) => !i(t), + s = t("function"), + o = t("number"), + _ = () => {}, + a = () => !1; + class c { + tag; + value; + static singletonNone = new c(!1); + constructor(t, e) { + ((this.tag = t), (this.value = e)); + } + static some(t) { + return new c(!0, t); + } + static none() { + return c.singletonNone; + } + fold(t, e) { + return this.tag ? e(this.value) : t(); + } + isSome() { + return this.tag; + } + isNone() { + return !this.tag; + } + map(t) { + return this.tag ? c.some(t(this.value)) : c.none(); + } + bind(t) { + return this.tag ? t(this.value) : c.none(); + } + exists(t) { + return this.tag && t(this.value); + } + forall(t) { + return !this.tag || t(this.value); + } + filter(t) { + return !this.tag || t(this.value) ? this : c.none(); + } + getOr(t) { + return this.tag ? this.value : t; + } + or(t) { + return this.tag ? this : t; + } + getOrThunk(t) { + return this.tag ? this.value : t(); + } + orThunk(t) { + return this.tag ? this : t(); + } + getOrDie(t) { + if (this.tag) return this.value; + throw new Error(t ?? "Called getOrDie on None"); + } + static from(t) { + return r(t) ? c.some(t) : c.none(); + } + getOrNull() { + return this.tag ? this.value : null; + } + getOrUndefined() { + return this.value; + } + each(t) { + this.tag && t(this.value); + } + toArray() { + return this.tag ? [this.value] : []; + } + toString() { + return this.tag ? `some(${this.value})` : "none()"; + } + } + const p = (t, e) => { + for (let n = 0, i = t.length; n < i; n++) if (e(t[n], n)) return !0; + return !1; + }, + l = (t, e) => { + for (let n = 0, i = t.length; n < i; n++) e(t[n], n); + }, + u = Object.keys, + h = Object.hasOwnProperty, + d = (t, e) => g(t, (t, n) => ({ k: n, v: e(t, n) })), + g = (t, e) => { + const n = {}; + return ( + ((t, e) => { + const n = u(t); + for (let i = 0, r = n.length; i < r; i++) { + const r = n[i]; + e(t[r], r); + } + })(t, (t, i) => { + const r = e(t, i); + n[r.k] = r.v; + }), + n + ); + }, + m = (t, e) => h.call(t, e), + f = (t) => { + let e = t; + return { + get: () => e, + set: (t) => { + e = t; + }, + }; + }; + let y = 0; + const w = (t) => { + const e = new Date().getTime(), + n = Math.floor( + (window.crypto.getRandomValues(new Uint32Array(1))[0] / 4294967295) * + 1e9, + ); + return (y++, t + "_" + n + y + String(e)); + }, + v = () => { + const t = ((t) => { + const e = f(c.none()), + n = () => e.get().each(t); + return { + clear: () => { + (n(), e.set(c.none())); + }, + isSet: () => e.get().isSome(), + get: () => e.get(), + set: (t) => { + (n(), e.set(c.some(t))); + }, + }; + })(_); + return { ...t, on: (e) => t.get().each(e) }; + }, + b = (t, e) => { + const { type: n, message: i } = e; + t.notificationManager.open({ type: n, text: i }); + }, + x = (t) => { + const e = ((t) => { + switch (t) { + case "error": + return console.error; + case "info": + return console.info; + case "warn": + return console.warn; + default: + return console.log; + } + })(t.type); + e(t.message); + }, + k = (t, e) => { + const { + protect: n, + allowList: i = [], + blockList: s = [], + } = null != t ? t : {}; + let o; + return ( + (o = r(n) ? n : i.length > 0 || s.length > 0 || e), + { protect: o, allowList: i, blockList: s } + ); + }, + T = (t) => { + const { protect: e, allowList: n, blockList: i } = null != t ? t : {}; + return (t) => { + const r = t.toLowerCase(); + return n.length > 0 + ? !p(n, (t) => t.toLowerCase() === r) + : i.length > 0 + ? p(i, (t) => t.toLowerCase() === r) + : e; + }; + }, + O = (t) => { + const e = T(t); + return (t, n) => { + const i = ((t, e) => `${t}:${e}`)(n, t.toLowerCase()); + return e(i); + }; + }, + C = (t, e, n, i) => { + const r = Reflect.get(t, "on"), + s = { protectedEventHandlers: [], cleanupScheduled: !1 }, + o = (t, e) => { + i && console.log(`[EventsProxy] ${t}`, e || ""); + }, + a = (e) => { + "invalid" === e && + s.protectedEventHandlers.length > 0 && + (o("Removing event handlers", s.protectedEventHandlers), + l(s.protectedEventHandlers, (e) => { + t.off(e.name, e.callback); + }), + (s.protectedEventHandlers = [])); + }, + c = e.onStatusChange(a); + return ( + t.on("remove", c), + (i, c, p) => { + o(`Adding event listener: ${i}`, { shouldProtect: n(i) }); + const l = ((t, i) => { + const r = n(t), + o = e.getStatus(), + a = r && "invalid" === o ? _ : i; + return ( + r && s.protectedEventHandlers.push({ name: t, callback: a }), + a + ); + })(i, c); + return ( + s.cleanupScheduled || + ((s.cleanupScheduled = !0), + window.setTimeout(() => { + (a(e.getStatus()), (s.cleanupScheduled = !1)); + }, 0)), + Reflect.apply(r, t, [i, l, p]) + ); + } + ); + }, + E = (t, e, n) => (i) => { + const s = "invalid" !== e.getStatus() && r(n) ? n(i) : _, + o = ((t, e, n) => { + const i = (t) => { + "invalid" === t && n.setEnabled(!1); + }, + r = () => i(e.getStatus()); + (i(e.getStatus()), t.on("NodeChange", r)); + const s = e.onStatusChange(i); + return () => { + (t.off("NodeChange", r), s()); + }; + })(t, e, i); + return (t) => { + (null == s || s(t), o()); + }; + }, + S = + (t, e, n) => + (...i) => { + var r; + return "invalid" === t.getStatus() + ? n + : null !== (r = null == e ? void 0 : e(...i)) && void 0 !== r + ? r + : n; + }, + A = (t, e) => S(t, e, Promise.resolve([])), + L = (t, e) => S(t, e, []), + N = (t, e) => S(t, e, !1), + R = (t, n, i, r) => { + const s = (n) => { + const { command: s, value: o } = n, + _ = c + .from(o) + .filter(e) + .map((t) => t.toLowerCase()), + a = s.toLowerCase() === r.toLowerCase(), + p = _.exists((t) => i.has(t)), + l = _.exists((e) => e === t.queryCommandValue(r)); + a && p && !l && n.preventDefault(); + }, + o = n.onStatusChange((e) => { + if ("invalid" === e) { + t.on("BeforeExecCommand", s); + const e = () => { + const e = t.queryCommandValue(r); + i.has(e.toLowerCase()) && t.execCommand(r, !1, e); + }; + t.initialized ? e() : t.on("init", e); + } + }); + t.on("remove", () => { + (o(), t.off("BeforeExecCommand", s)); + }); + }, + z = (t, n, i, r, s, o = !1) => { + const _ = new Set(), + a = new Set(), + c = (t, e) => { + o && console.log(`[UiProxy] ${t}`, e || ""); + }; + (((t, e, n) => { + R(t, e, n, "ToggleView"); + })(t, i, _), + ((t, e, n) => { + R(t, e, n, "ToggleSidebar"); + })(t, i, a)); + const p = (e, n, o, _) => { + const a = s(e, o); + return ( + c(`${_}: ${e}`, { spec: n, context: r, shouldProtect: a }), + a ? { ...n, onSetup: E(t, i, n.onSetup) } : n + ); + }; + return new Proxy(n, { + get: (t, n, o) => { + const l = Reflect.get(t, n, o); + if (!e(n)) return l; + switch (n) { + case "addButton": + case "addGroupToolbarButton": + case "addToggleButton": + case "addMenuButton": + case "addSplitButton": + return (...e) => { + const [i, r, ...s] = e, + o = p(i, r, "button", String(n)); + return Reflect.apply(l, t, [i, o, ...s]); + }; + case "addMenuItem": + case "addToggleMenuItem": + case "addNestedMenuItem": + return (...e) => { + const [i, r, ...s] = e, + o = p(i, r, "menuitem", String(n)); + return Reflect.apply(l, t, [i, o, ...s]); + }; + case "addAutocompleter": + return (...e) => { + const [o, _, ...a] = e, + p = s(o, "autocompleter"); + if ( + (c(`${String(n)}: ${o}`, { + spec: _, + context: r, + shouldProtect: p, + }), + p) + ) { + const e = { ..._, fetch: A(i, _.fetch) }; + return Reflect.apply(l, t, [o, e, ...a]); + } + return Reflect.apply(l, t, [o, _, ...a]); + }; + case "addSidebar": + return (...e) => { + const [i, o, ..._] = e, + p = s(i, "sidebar"); + if ( + (c(`${String(n)}: ${i}`, { + spec: o, + context: r, + shouldProtect: p, + }), + p) + ) { + a.add(i.toLowerCase()); + const e = { ...o }; + return Reflect.apply(l, t, [i, e, ..._]); + } + return Reflect.apply(l, t, [i, o, ..._]); + }; + case "addView": + return (...e) => { + const [i, o, ...a] = e, + p = s(i, "view"); + if ( + (c(`${String(n)}: ${i}`, { + spec: o, + context: r, + shouldProtect: p, + }), + p) + ) { + _.add(i.toLowerCase()); + const e = { ...o }; + return Reflect.apply(l, t, [i, e, ...a]); + } + return Reflect.apply(l, t, [i, o, ...a]); + }; + case "addContextMenu": + return (...e) => { + const [o, _, ...a] = e, + p = s(o, "contextmenu"); + if ( + (c(`${String(n)}: ${o}`, { + spec: _, + context: r, + shouldProtect: p, + }), + p) + ) { + const e = { ..._, update: L(i, _.update) }; + return Reflect.apply(l, t, [o, e, ...a]); + } + return Reflect.apply(l, t, [o, _, ...a]); + }; + case "addContextToolbar": + case "addContextForm": + return (...e) => { + const [o, _, ...a] = e, + p = s(o, "contexttoolbar"); + if ( + (c(`${String(n)}: ${o}`, { + spec: _, + context: r, + shouldProtect: p, + }), + p) + ) { + const e = { ..._, predicate: N(i, _.predicate) }; + return Reflect.apply(l, t, [o, e, ...a]); + } + return Reflect.apply(l, t, [o, _, ...a]); + }; + case "addIcon": + case "getAll": + case "addContext": + return l; + } + }, + }); + }, + P = new Set([ + "addCommand", + "addCommands", + "addQueryStateHandler", + "addQueryValueHandler", + ]), + j = (t) => (e, n) => { + t && console.log(`[EditorProxy] ${e}`, n || ""); + }, + I = (t, e) => { + const { + statusProvider: n, + uiContext: i, + protection: r, + debug: o = !1, + } = e, + { events: a, commands: c, ui: p } = r; + j(o)("Creating enhanced editor with options:", { + hasStatusProvider: !!n, + uiContext: i, + debug: o, + protection: r, + }); + const { + editorUiProxy: u, + editorCommandsProxy: h, + editorEventListenerProxy: g, + } = ((t, e, n, i, r, s, o) => { + const a = s.protect + ? { ...t.ui, registry: z(t, t.ui.registry, e, n, O(s), o) } + : t.ui, + c = i.protect + ? ((t, e, n, i, r) => { + const s = { protectedCommands: [], cleanupScheduled: !1 }, + o = (t, e) => { + r && console.log(`[CommandsProxy] ${t}`, e || ""); + }, + a = (t, e) => { + const r = i(t), + o = n.getStatus(); + return ( + r && s.protectedCommands.push(t), + r && "invalid" === o ? _ : e + ); + }, + c = (e) => { + "invalid" === e && + s.protectedCommands.length > 0 && + (o("Removing commands", s.protectedCommands), + l(s.protectedCommands, (e) => { + t.editorCommands.removeCommand(e); + }), + (s.protectedCommands = [])); + }, + p = () => { + s.cleanupScheduled || + ((s.cleanupScheduled = !0), + window.setTimeout(() => { + (c(n.getStatus()), (s.cleanupScheduled = !1)); + }, 0)); + }, + u = n.onStatusChange(c); + return ( + t.on("remove", u), + new Proxy(e, { + get: (t, n, r) => { + if ( + (o(`Accessing property: ${String(n)}`), + "addCommand" === n) + ) { + const s = Reflect.get(t, n, r); + return (t, n, ...r) => { + o(`Adding command: ${t}`, { shouldProtect: i(t) }); + const _ = a(t, n); + return (p(), Reflect.apply(s, e, [t, _, ...r])); + }; + } + if ("addCommands" === n) { + const i = Reflect.get(t, n, r); + return (t, n = "exec") => { + o(`Adding commands (${n})`, { + commandCount: Object.keys(t).length, + willApplyEnforcement: "exec" === n, + }); + const r = + "exec" !== n ? t : d(t, (t, e) => a(e, t)); + return (p(), Reflect.apply(i, e, [r, n])); + }; + } + return Reflect.get(t, n, r); + }, + }) + ); + })(t, t.editorCommands, e, T(i), o) + : t.editorCommands; + return { + editorUiProxy: a, + editorCommandsProxy: c, + editorEventListenerProxy: r.protect + ? C(t, e, T(r), o) + : t.on.bind(t), + }; + })(t, n, i || "", c, a, p, o), + m = ((t, e, n, i) => (r, o, _) => { + const a = String(o); + if ("on" === o) return (j(i)("on intercepted"), n); + if (P.has(a)) return (j(i)(`${a} intercepted`), e[a].bind(e)); + if ("editorCommands" === o) + return (j(i)("editorCommands accessed"), e); + if ("ui" === o) return (j(i)("ui accessed"), t); + const c = Reflect.get(r, o, _); + return s(c) ? c.bind(r) : c; + })(u, h, g, o); + return new Proxy(t, { + get: m, + set: (t, e, n, i) => Reflect.set(t, e, n, i), + has: (t, e) => Reflect.has(t, e), + ownKeys: (t) => Reflect.ownKeys(t), + getOwnPropertyDescriptor: (t, e) => + Reflect.getOwnPropertyDescriptor(t, e), + defineProperty: (t, e, n) => Reflect.defineProperty(t, e, n), + deleteProperty: (t, e) => Reflect.deleteProperty(t, e), + isExtensible: (t) => Reflect.isExtensible(t), + preventExtensions: (t) => Reflect.preventExtensions(t), + getPrototypeOf: (t) => Reflect.getPrototypeOf(t), + setPrototypeOf: (t, e) => Reflect.setPrototypeOf(t, e), + }); + }, + U = (t) => parseInt(t, 10), + $ = (t, e) => { + const n = t - e; + return 0 === n ? 0 : n > 0 ? 1 : -1; + }, + F = (t, e, n) => ({ major: t, minor: e, patch: n }), + M = (t) => { + const e = /([0-9]+)\.([0-9]+)\.([0-9]+)(?:(\-.+)?)/.exec(t); + return e ? F(U(e[1]), U(e[2]), U(e[3])) : F(0, 0, 0); + }, + W = (t, e) => + !!t && + -1 === + ((t, e) => { + const n = $(t.major, e.major); + if (0 !== n) return n; + const i = $(t.minor, e.minor); + if (0 !== i) return i; + const r = $(t.patch, e.patch); + return 0 !== r ? r : 0; + })( + ((t) => + M( + ((t) => + [t.majorVersion, t.minorVersion] + .join(".") + .split(".") + .slice(0, 3) + .join("."))(t), + ))(t), + M(e), + ), + K = M("8.3.0"), + B = `${K.major}.${K.minor}.0`, + V = `${K.major + 1}.0.0`, + G = (t, e) => { + const { setup: n, protection: o } = e; + return (_, a) => { + if ( + !((t, e) => + W(t, B) + ? (console.error( + `The "${e}" plugin requires at least version ${B} of TinyMCE.`, + ), + !1) + : !!W(t, V) || + (console.error( + `The "${e}" plugin requires at least version ${B} of TinyMCE but less than ${V}.`, + ), + !1))(tinymce, t) || + ((t, e) => + !!((t) => { + var e; + const n = + null === (e = t.options.get("license_key")) || void 0 === e + ? void 0 + : e.toLowerCase(), + r = t.options.get("online_license_key"); + return i(r) && "gpl" === n; + })(t) && + (((t, e) => { + const { console: n, editor: i } = e; + (r(i) && + (t._skinLoaded + ? b(t, i) + : t.on("SkinLoaded", () => { + b(t, i); + })), + r(n) && x(n)); + })(t, { + console: { + type: "error", + message: [ + `The "${e}" plugin requires a valid TinyMCE license key.`, + "Read more: https://www.tiny.cloud/docs/tinymce/latest/license-key/", + ].join(" "), + }, + }), + !0))(_, t) + ) + return {}; + const c = ((t) => { + const { + protect: e = !0, + events: n, + commands: i, + ui: r, + api: s, + } = null != t ? t : {}; + return { + protect: e, + events: k(n, false), + commands: k(i, true), + ui: k(r, true), + api: k(s, true), + }; + })(o), + p = ((t = "pre-validation") => { + const e = f(t), + n = new Set(); + let i = !1; + const { enableLogging: r = !1 } = {}, + s = (t, ...e) => { + r && console.log(`[StatusProvider] ${t}`, ...e); + }; + return { + setStatus: (t) => { + const i = e.get(); + if (i === t) return (s("Status unchanged:", t), !1); + (e.set(t), s("Status changed:", i, "->", t)); + const r = { currentStatus: t, previousStatus: i }, + o = Array.from(n); + return ( + l(o, (t) => { + t(r.currentStatus, r.previousStatus); + }), + !0 + ); + }, + onStatusChange: (t) => ( + n.add(t), + s("Callback registered, total listeners:", n.size), + () => { + n.delete(t) && + s("Callback unregistered, remaining listeners:", n.size); + } + ), + getStatus: e.get, + hasListeners: () => n.size > 0, + destroy: () => { + i || + (s( + "Destroying StatusProvider, clearing", + n.size, + "listeners", + ), + n.clear(), + (i = !0)); + }, + }; + })(), + u = ((t, e, n) => { + const i = `commercial-license-${e}`; + return ( + t.ui.registry.addContext( + i, + () => "invalid" !== n.getStatus() && !t.mode.isReadOnly(), + ), + t.licenseKeyManager.validate({ plugin: e }).then( + (t) => { + n.setStatus(t ? "valid" : "invalid"); + }, + (t) => { + (console.error(t), + console.error( + `An unknown error occurred when trying to validate "${e}" plugin.`, + ), + n.setStatus("invalid")); + }, + ), + { ui: { context: i } } + ); + })(_, t, p), + h = c.protect + ? I(_, { + statusProvider: p, + uiContext: u.ui.context, + debug: e.debug || !1, + protection: c, + }) + : _, + g = ((t, e) => ({ + pluginCode: t, + enforcer: { + isInvalid: () => "invalid" === e.getStatus(), + onInvalid: (t) => + e.onStatusChange((e, n) => { + "invalid" === e && t(e, n); + }), + }, + }))(t, p); + return ((t, e, n, i) => { + if (e.protect && e.api.protect && r(t)) { + const _ = T(e.api); + return ((o = (t) => "invalid" === n.getStatus() && _(t)), + (t, e) => + d(t, (t, n) => + s(t) + ? (...i) => { + if (o(n.toLowerCase())) { + const t = `Method "${r(e) ? `${e}.` : ""}${n}" is not available due to license key restrictions.`, + i = new Error(t); + throw (console.error(t), i); + } + return t(...i); + } + : t, + ))(t, i); + } + var o; + return t; + })(n(h, a, g), c, p, t); + }; + }; + function D(t) { + return t && + t.__esModule && + Object.prototype.hasOwnProperty.call(t, "default") + ? t.default + : t; + } + var q, + H, + Q = { exports: {} }, + X = {}, + Y = {}, + Z = {}; + function J() { + if (H) return Y; + H = 1; + var t = (function () { + if (q) return Z; + function t(t, n) { + ((this.raw_options = e(t, n)), + (this.disabled = this._get_boolean("disabled")), + (this.eol = this._get_characters("eol", "auto")), + (this.end_with_newline = this._get_boolean("end_with_newline")), + (this.indent_size = this._get_number("indent_size", 4)), + (this.indent_char = this._get_characters("indent_char", " ")), + (this.indent_level = this._get_number("indent_level")), + (this.preserve_newlines = this._get_boolean("preserve_newlines", !0)), + (this.max_preserve_newlines = this._get_number( + "max_preserve_newlines", + 32786, + )), + this.preserve_newlines || (this.max_preserve_newlines = 0), + (this.indent_with_tabs = this._get_boolean( + "indent_with_tabs", + "\t" === this.indent_char, + )), + this.indent_with_tabs && + ((this.indent_char = "\t"), + 1 === this.indent_size && (this.indent_size = 4)), + (this.wrap_line_length = this._get_number( + "wrap_line_length", + this._get_number("max_char"), + )), + (this.indent_empty_lines = this._get_boolean("indent_empty_lines")), + (this.templating = this._get_selection_list( + "templating", + [ + "auto", + "none", + "angular", + "django", + "erb", + "handlebars", + "php", + "smarty", + ], + ["auto"], + ))); + } + function e(t, e) { + var i, + r = {}; + for (i in (t = n(t))) i !== e && (r[i] = t[i]); + if (e && t[e]) for (i in t[e]) r[i] = t[e][i]; + return r; + } + function n(t) { + var e, + n = {}; + for (e in t) n[e.replace(/-/g, "_")] = t[e]; + return n; + } + return ( + (q = 1), + (t.prototype._get_array = function (t, e) { + var n = this.raw_options[t], + i = e || []; + return ( + "object" == typeof n + ? null !== n && "function" == typeof n.concat && (i = n.concat()) + : "string" == typeof n && (i = n.split(/[^a-zA-Z0-9_\/\-]+/)), + i + ); + }), + (t.prototype._get_boolean = function (t, e) { + var n = this.raw_options[t]; + return void 0 === n ? !!e : !!n; + }), + (t.prototype._get_characters = function (t, e) { + var n = this.raw_options[t], + i = e || ""; + return ( + "string" == typeof n && + (i = n + .replace(/\\r/, "\r") + .replace(/\\n/, "\n") + .replace(/\\t/, "\t")), + i + ); + }), + (t.prototype._get_number = function (t, e) { + var n = this.raw_options[t]; + ((e = parseInt(e, 10)), isNaN(e) && (e = 0)); + var i = parseInt(n, 10); + return (isNaN(i) && (i = e), i); + }), + (t.prototype._get_selection = function (t, e, n) { + var i = this._get_selection_list(t, e, n); + if (1 !== i.length) + throw new Error( + "Invalid Option Value: The option '" + + t + + "' can only be one of the following values:\n" + + e + + "\nYou passed in: '" + + this.raw_options[t] + + "'", + ); + return i[0]; + }), + (t.prototype._get_selection_list = function (t, e, n) { + if (!e || 0 === e.length) + throw new Error("Selection list cannot be empty."); + if (((n = n || [e[0]]), !this._is_valid_selection(n, e))) + throw new Error("Invalid Default Value!"); + var i = this._get_array(t, n); + if (!this._is_valid_selection(i, e)) + throw new Error( + "Invalid Option Value: The option '" + + t + + "' can contain only the following values:\n" + + e + + "\nYou passed in: '" + + this.raw_options[t] + + "'", + ); + return i; + }), + (t.prototype._is_valid_selection = function (t, e) { + return ( + t.length && + e.length && + !t.some(function (t) { + return -1 === e.indexOf(t); + }) + ); + }), + (Z.Options = t), + (Z.normalizeOpts = n), + (Z.mergeOpts = e), + Z + ); + })().Options; + function e(e) { + (t.call(this, e, "html"), + 1 === this.templating.length && + "auto" === this.templating[0] && + (this.templating = ["django", "erb", "handlebars", "php"]), + (this.indent_inner_html = this._get_boolean("indent_inner_html")), + (this.indent_body_inner_html = this._get_boolean( + "indent_body_inner_html", + !0, + )), + (this.indent_head_inner_html = this._get_boolean( + "indent_head_inner_html", + !0, + )), + (this.indent_handlebars = this._get_boolean("indent_handlebars", !0)), + (this.wrap_attributes = this._get_selection("wrap_attributes", [ + "auto", + "force", + "force-aligned", + "force-expand-multiline", + "aligned-multiple", + "preserve", + "preserve-aligned", + ])), + (this.wrap_attributes_min_attrs = this._get_number( + "wrap_attributes_min_attrs", + 2, + )), + (this.wrap_attributes_indent_size = this._get_number( + "wrap_attributes_indent_size", + this.indent_size, + )), + (this.extra_liners = this._get_array("extra_liners", [ + "head", + "body", + "/html", + ])), + (this.inline = this._get_array("inline", [ + "a", + "abbr", + "area", + "audio", + "b", + "bdi", + "bdo", + "br", + "button", + "canvas", + "cite", + "code", + "data", + "datalist", + "del", + "dfn", + "em", + "embed", + "i", + "iframe", + "img", + "input", + "ins", + "kbd", + "keygen", + "label", + "map", + "mark", + "math", + "meter", + "noscript", + "object", + "output", + "progress", + "q", + "ruby", + "s", + "samp", + "select", + "small", + "span", + "strong", + "sub", + "sup", + "svg", + "template", + "textarea", + "time", + "u", + "var", + "video", + "wbr", + "text", + "acronym", + "big", + "strike", + "tt", + ])), + (this.inline_custom_elements = this._get_boolean( + "inline_custom_elements", + !0, + )), + (this.void_elements = this._get_array("void_elements", [ + "area", + "base", + "br", + "col", + "embed", + "hr", + "img", + "input", + "keygen", + "link", + "menuitem", + "meta", + "param", + "source", + "track", + "wbr", + "!doctype", + "?xml", + "basefont", + "isindex", + ])), + (this.unformatted = this._get_array("unformatted", [])), + (this.content_unformatted = this._get_array("content_unformatted", [ + "pre", + "textarea", + ])), + (this.unformatted_content_delimiter = this._get_characters( + "unformatted_content_delimiter", + )), + (this.indent_scripts = this._get_selection("indent_scripts", [ + "normal", + "keep", + "separate", + ]))); + } + return ((e.prototype = new t()), (Y.Options = e), Y); + } + var tt, + et, + nt, + it, + rt, + st, + ot, + _t = {}, + at = {}, + ct = {}, + pt = {}, + lt = {}, + ut = {}, + ht = {}, + dt = {}; + function gt() { + if (rt) return dt; + function t(t, e) { + ((this._input = t), + (this._starting_pattern = null), + (this._match_pattern = null), + (this._until_pattern = null), + (this._until_after = !1), + e && + ((this._starting_pattern = this._input.get_regexp( + e._starting_pattern, + !0, + )), + (this._match_pattern = this._input.get_regexp(e._match_pattern, !0)), + (this._until_pattern = this._input.get_regexp(e._until_pattern)), + (this._until_after = e._until_after))); + } + return ( + (rt = 1), + (t.prototype.read = function () { + var t = this._input.read(this._starting_pattern); + return ( + (this._starting_pattern && !t) || + (t += this._input.read( + this._match_pattern, + this._until_pattern, + this._until_after, + )), + t + ); + }), + (t.prototype.read_match = function () { + return this._input.match(this._match_pattern); + }), + (t.prototype.until_after = function (t) { + var e = this._create(); + return ( + (e._until_after = !0), + (e._until_pattern = this._input.get_regexp(t)), + e._update(), + e + ); + }), + (t.prototype.until = function (t) { + var e = this._create(); + return ( + (e._until_after = !1), + (e._until_pattern = this._input.get_regexp(t)), + e._update(), + e + ); + }), + (t.prototype.starting_with = function (t) { + var e = this._create(); + return ( + (e._starting_pattern = this._input.get_regexp(t, !0)), + e._update(), + e + ); + }), + (t.prototype.matching = function (t) { + var e = this._create(); + return ( + (e._match_pattern = this._input.get_regexp(t, !0)), + e._update(), + e + ); + }), + (t.prototype._create = function () { + return new t(this._input, this); + }), + (t.prototype._update = function () {}), + (dt.Pattern = t), + dt + ); + } + function mt() { + if (ot) return ct; + ot = 1; + var t = (function () { + if (et) return pt; + et = 1; + var t = RegExp.prototype.hasOwnProperty("sticky"); + function e(t) { + ((this.__input = t || ""), + (this.__input_length = this.__input.length), + (this.__position = 0)); + } + return ( + (e.prototype.restart = function () { + this.__position = 0; + }), + (e.prototype.back = function () { + this.__position > 0 && (this.__position -= 1); + }), + (e.prototype.hasNext = function () { + return this.__position < this.__input_length; + }), + (e.prototype.next = function () { + var t = null; + return ( + this.hasNext() && + ((t = this.__input.charAt(this.__position)), + (this.__position += 1)), + t + ); + }), + (e.prototype.peek = function (t) { + var e = null; + return ( + (t = t || 0), + (t += this.__position) >= 0 && + t < this.__input_length && + (e = this.__input.charAt(t)), + e + ); + }), + (e.prototype.__match = function (e, n) { + e.lastIndex = n; + var i = e.exec(this.__input); + return (!i || (t && e.sticky) || (i.index !== n && (i = null)), i); + }), + (e.prototype.test = function (t, e) { + return ( + (e = e || 0), + (e += this.__position) >= 0 && + e < this.__input_length && + !!this.__match(t, e) + ); + }), + (e.prototype.testChar = function (t, e) { + var n = this.peek(e); + return ((t.lastIndex = 0), null !== n && t.test(n)); + }), + (e.prototype.match = function (t) { + var e = this.__match(t, this.__position); + return (e ? (this.__position += e[0].length) : (e = null), e); + }), + (e.prototype.read = function (t, e, n) { + var i, + r = ""; + return ( + t && (i = this.match(t)) && (r += i[0]), + !e || (!i && t) || (r += this.readUntil(e, n)), + r + ); + }), + (e.prototype.readUntil = function (t, e) { + var n, + i = this.__position; + t.lastIndex = this.__position; + var r = t.exec(this.__input); + return ( + r + ? ((i = r.index), e && (i += r[0].length)) + : (i = this.__input_length), + (n = this.__input.substring(this.__position, i)), + (this.__position = i), + n + ); + }), + (e.prototype.readUntilAfter = function (t) { + return this.readUntil(t, !0); + }), + (e.prototype.get_regexp = function (e, n) { + var i = null, + r = "g"; + return ( + n && t && (r = "y"), + "string" == typeof e && "" !== e + ? (i = new RegExp(e, r)) + : e && (i = new RegExp(e.source, r)), + i + ); + }), + (e.prototype.get_literal_regexp = function (t) { + return RegExp(t.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&")); + }), + (e.prototype.peekUntilAfter = function (t) { + var e = this.__position, + n = this.readUntilAfter(t); + return ((this.__position = e), n); + }), + (e.prototype.lookBack = function (t) { + var e = this.__position - 1; + return ( + e >= t.length && + this.__input.substring(e - t.length, e).toLowerCase() === t + ); + }), + (pt.InputScanner = e), + pt + ); + })().InputScanner, + e = (nt || + ((nt = 1), + (lt.Token = function (t, e, n, i) { + ((this.type = t), + (this.text = e), + (this.comments_before = null), + (this.newlines = n || 0), + (this.whitespace_before = i || ""), + (this.parent = null), + (this.next = null), + (this.previous = null), + (this.opened = null), + (this.closed = null), + (this.directives = null)); + })), + lt).Token, + n = (function () { + if (it) return ut; + function t(t) { + ((this.__tokens = []), + (this.__tokens_length = this.__tokens.length), + (this.__position = 0), + (this.__parent_token = t)); + } + return ( + (it = 1), + (t.prototype.restart = function () { + this.__position = 0; + }), + (t.prototype.isEmpty = function () { + return 0 === this.__tokens_length; + }), + (t.prototype.hasNext = function () { + return this.__position < this.__tokens_length; + }), + (t.prototype.next = function () { + var t = null; + return ( + this.hasNext() && + ((t = this.__tokens[this.__position]), (this.__position += 1)), + t + ); + }), + (t.prototype.peek = function (t) { + var e = null; + return ( + (t = t || 0), + (t += this.__position) >= 0 && + t < this.__tokens_length && + (e = this.__tokens[t]), + e + ); + }), + (t.prototype.add = function (t) { + (this.__parent_token && (t.parent = this.__parent_token), + this.__tokens.push(t), + (this.__tokens_length += 1)); + }), + (ut.TokenStream = t), + ut + ); + })().TokenStream, + i = (function () { + if (st) return ht; + st = 1; + var t = gt().Pattern; + function e(e, n) { + (t.call(this, e, n), + n + ? (this._line_regexp = this._input.get_regexp(n._line_regexp)) + : this.__set_whitespace_patterns("", ""), + (this.newline_count = 0), + (this.whitespace_before_token = "")); + } + return ( + (e.prototype = new t()), + (e.prototype.__set_whitespace_patterns = function (t, e) { + ((t += "\\t "), + (e += "\\n\\r"), + (this._match_pattern = this._input.get_regexp( + "[" + t + e + "]+", + !0, + )), + (this._newline_regexp = this._input.get_regexp( + "\\r\\n|[" + e + "]", + ))); + }), + (e.prototype.read = function () { + ((this.newline_count = 0), (this.whitespace_before_token = "")); + var t = this._input.read(this._match_pattern); + if (" " === t) this.whitespace_before_token = " "; + else if (t) { + var e = this.__split(this._newline_regexp, t); + ((this.newline_count = e.length - 1), + (this.whitespace_before_token = e[this.newline_count])); + } + return t; + }), + (e.prototype.matching = function (t, e) { + var n = this._create(); + return (n.__set_whitespace_patterns(t, e), n._update(), n); + }), + (e.prototype._create = function () { + return new e(this._input, this); + }), + (e.prototype.__split = function (t, e) { + t.lastIndex = 0; + for (var n = 0, i = [], r = t.exec(e); r; ) + (i.push(e.substring(n, r.index)), + (n = r.index + r[0].length), + (r = t.exec(e))); + return ( + n < e.length ? i.push(e.substring(n, e.length)) : i.push(""), + i + ); + }), + (ht.WhitespacePattern = e), + ht + ); + })().WhitespacePattern, + r = { START: "TK_START", RAW: "TK_RAW", EOF: "TK_EOF" }, + s = function (e, n) { + ((this._input = new t(e)), + (this._options = n || {}), + (this.__tokens = null), + (this._patterns = {}), + (this._patterns.whitespace = new i(this._input))); + }; + return ( + (s.prototype.tokenize = function () { + var t; + (this._input.restart(), (this.__tokens = new n()), this._reset()); + for ( + var i = new e(r.START, ""), s = null, o = [], _ = new n(); + i.type !== r.EOF; + ) { + for (t = this._get_next_token(i, s); this._is_comment(t); ) + (_.add(t), (t = this._get_next_token(i, s))); + (_.isEmpty() || ((t.comments_before = _), (_ = new n())), + (t.parent = s), + this._is_opening(t) + ? (o.push(s), (s = t)) + : s && + this._is_closing(t, s) && + ((t.opened = s), (s.closed = t), (s = o.pop()), (t.parent = s)), + (t.previous = i), + (i.next = t), + this.__tokens.add(t), + (i = t)); + } + return this.__tokens; + }), + (s.prototype._is_first_token = function () { + return this.__tokens.isEmpty(); + }), + (s.prototype._reset = function () {}), + (s.prototype._get_next_token = function (t, e) { + this._readWhitespace(); + var n = this._input.read(/.+/g); + return n ? this._create_token(r.RAW, n) : this._create_token(r.EOF, ""); + }), + (s.prototype._is_comment = function (t) { + return !1; + }), + (s.prototype._is_opening = function (t) { + return !1; + }), + (s.prototype._is_closing = function (t, e) { + return !1; + }), + (s.prototype._create_token = function (t, n) { + return new e( + t, + n, + this._patterns.whitespace.newline_count, + this._patterns.whitespace.whitespace_before_token, + ); + }), + (s.prototype._readWhitespace = function () { + return this._patterns.whitespace.read(); + }), + (ct.Tokenizer = s), + (ct.TOKEN = r), + ct + ); + } + var ft, + yt, + wt, + vt, + bt, + xt = {}, + kt = {}; + function Tt() { + if (wt) return at; + wt = 1; + var t = mt().Tokenizer, + e = mt().TOKEN, + n = (function () { + if (ft) return xt; + function t(t, e) { + ((t = "string" == typeof t ? t : t.source), + (e = "string" == typeof e ? e : e.source), + (this.__directives_block_pattern = new RegExp( + t + / beautify( \w+[:]\w+)+ /.source + e, + "g", + )), + (this.__directive_pattern = / (\w+)[:](\w+)/g), + (this.__directives_end_ignore_pattern = new RegExp( + t + /\sbeautify\signore:end\s/.source + e, + "g", + ))); + } + return ( + (ft = 1), + (t.prototype.get_directives = function (t) { + if (!t.match(this.__directives_block_pattern)) return null; + var e = {}; + this.__directive_pattern.lastIndex = 0; + for (var n = this.__directive_pattern.exec(t); n; ) + ((e[n[1]] = n[2]), (n = this.__directive_pattern.exec(t))); + return e; + }), + (t.prototype.readIgnored = function (t) { + return t.readUntilAfter(this.__directives_end_ignore_pattern); + }), + (xt.Directives = t), + xt + ); + })().Directives, + i = (function () { + if (yt) return kt; + yt = 1; + var t = gt().Pattern, + e = { + django: !1, + erb: !1, + handlebars: !1, + php: !1, + smarty: !1, + angular: !1, + }; + function n(n, i) { + (t.call(this, n, i), + (this.__template_pattern = null), + (this._disabled = Object.assign({}, e)), + (this._excluded = Object.assign({}, e)), + i && + ((this.__template_pattern = this._input.get_regexp( + i.__template_pattern, + )), + (this._excluded = Object.assign(this._excluded, i._excluded)), + (this._disabled = Object.assign(this._disabled, i._disabled)))); + var r = new t(n); + this.__patterns = { + handlebars_comment: r.starting_with(/{{!--/).until_after(/--}}/), + handlebars_unescaped: r.starting_with(/{{{/).until_after(/}}}/), + handlebars: r.starting_with(/{{/).until_after(/}}/), + php: r.starting_with(/<\?(?:[= ]|php)/).until_after(/\?>/), + erb: r.starting_with(/<%[^%]/).until_after(/[^%]%>/), + django: r.starting_with(/{%/).until_after(/%}/), + django_value: r.starting_with(/{{/).until_after(/}}/), + django_comment: r.starting_with(/{#/).until_after(/#}/), + smarty: r.starting_with(/{(?=[^}{\s\n])/).until_after(/[^\s\n]}/), + smarty_comment: r.starting_with(/{\*/).until_after(/\*}/), + smarty_literal: r + .starting_with(/{literal}/) + .until_after(/{\/literal}/), + }; + } + return ( + (n.prototype = new t()), + (n.prototype._create = function () { + return new n(this._input, this); + }), + (n.prototype._update = function () { + this.__set_templated_pattern(); + }), + (n.prototype.disable = function (t) { + var e = this._create(); + return ((e._disabled[t] = !0), e._update(), e); + }), + (n.prototype.read_options = function (t) { + var n = this._create(); + for (var i in e) n._disabled[i] = -1 === t.templating.indexOf(i); + return (n._update(), n); + }), + (n.prototype.exclude = function (t) { + var e = this._create(); + return ((e._excluded[t] = !0), e._update(), e); + }), + (n.prototype.read = function () { + var t = ""; + t = this._match_pattern + ? this._input.read(this._starting_pattern) + : this._input.read( + this._starting_pattern, + this.__template_pattern, + ); + for (var e = this._read_template(); e; ) + (this._match_pattern + ? (e += this._input.read(this._match_pattern)) + : (e += this._input.readUntil(this.__template_pattern)), + (t += e), + (e = this._read_template())); + return ( + this._until_after && + (t += this._input.readUntilAfter(this._until_pattern)), + t + ); + }), + (n.prototype.__set_templated_pattern = function () { + var t = []; + (this._disabled.php || + t.push(this.__patterns.php._starting_pattern.source), + this._disabled.handlebars || + t.push(this.__patterns.handlebars._starting_pattern.source), + this._disabled.erb || + t.push(this.__patterns.erb._starting_pattern.source), + this._disabled.django || + (t.push(this.__patterns.django._starting_pattern.source), + t.push(this.__patterns.django_value._starting_pattern.source), + t.push( + this.__patterns.django_comment._starting_pattern.source, + )), + this._disabled.smarty || + t.push(this.__patterns.smarty._starting_pattern.source), + this._until_pattern && t.push(this._until_pattern.source), + (this.__template_pattern = this._input.get_regexp( + "(?:" + t.join("|") + ")", + ))); + }), + (n.prototype._read_template = function () { + var t = "", + e = this._input.peek(); + if ("<" === e) { + var n = this._input.peek(1); + (this._disabled.php || + this._excluded.php || + "?" !== n || + (t = t || this.__patterns.php.read()), + this._disabled.erb || + this._excluded.erb || + "%" !== n || + (t = t || this.__patterns.erb.read())); + } else + "{" === e && + (this._disabled.handlebars || + this._excluded.handlebars || + (t = + (t = + (t = t || this.__patterns.handlebars_comment.read()) || + this.__patterns.handlebars_unescaped.read()) || + this.__patterns.handlebars.read()), + this._disabled.django || + (this._excluded.django || + this._excluded.handlebars || + (t = t || this.__patterns.django_value.read()), + this._excluded.django || + (t = + (t = t || this.__patterns.django_comment.read()) || + this.__patterns.django.read())), + this._disabled.smarty || + (this._disabled.django && + this._disabled.handlebars && + (t = + (t = + (t = t || this.__patterns.smarty_comment.read()) || + this.__patterns.smarty_literal.read()) || + this.__patterns.smarty.read()))); + return t; + }), + (kt.TemplatablePattern = n), + kt + ); + })().TemplatablePattern, + r = gt().Pattern, + s = { + TAG_OPEN: "TK_TAG_OPEN", + TAG_CLOSE: "TK_TAG_CLOSE", + CONTROL_FLOW_OPEN: "TK_CONTROL_FLOW_OPEN", + CONTROL_FLOW_CLOSE: "TK_CONTROL_FLOW_CLOSE", + ATTRIBUTE: "TK_ATTRIBUTE", + EQUALS: "TK_EQUALS", + VALUE: "TK_VALUE", + COMMENT: "TK_COMMENT", + TEXT: "TK_TEXT", + UNKNOWN: "TK_UNKNOWN", + START: e.START, + RAW: e.RAW, + EOF: e.EOF, + }, + o = new n(/<\!--/, /-->/), + _ = function (e, n) { + (t.call(this, e, n), (this._current_tag_name = "")); + var s = new i(this._input).read_options(this._options), + o = new r(this._input); + if ( + ((this.__patterns = { + word: s.until(/[\n\r\t <]/), + word_control_flow_close_excluded: s.until(/[\n\r\t <}]/), + single_quote: s.until_after(/'/), + double_quote: s.until_after(/"/), + attribute: s.until(/[\n\r\t =>]|\/>/), + element_name: s.until(/[\n\r\t >\/]/), + angular_control_flow_start: o.matching(/\@[a-zA-Z]+[^({]*[({]/), + handlebars_comment: o.starting_with(/{{!--/).until_after(/--}}/), + handlebars: o.starting_with(/{{/).until_after(/}}/), + handlebars_open: o.until(/[\n\r\t }]/), + handlebars_raw_close: o.until(/}}/), + comment: o.starting_with(//), + cdata: o.starting_with(//), + conditional_comment: o.starting_with(//), + processing: o.starting_with(/<\?/).until_after(/\?>/), + }), + this._options.indent_handlebars && + ((this.__patterns.word = + this.__patterns.word.exclude("handlebars")), + (this.__patterns.word_control_flow_close_excluded = + this.__patterns.word_control_flow_close_excluded.exclude( + "handlebars", + ))), + (this._unformatted_content_delimiter = null), + this._options.unformatted_content_delimiter) + ) { + var _ = this._input.get_literal_regexp( + this._options.unformatted_content_delimiter, + ); + this.__patterns.unformatted_content_delimiter = o + .matching(_) + .until_after(_); + } + }; + return ( + ((_.prototype = new t())._is_comment = function (t) { + return !1; + }), + (_.prototype._is_opening = function (t) { + return t.type === s.TAG_OPEN || t.type === s.CONTROL_FLOW_OPEN; + }), + (_.prototype._is_closing = function (t, e) { + return ( + (t.type === s.TAG_CLOSE && + e && + (((">" === t.text || "/>" === t.text) && "<" === e.text[0]) || + ("}}" === t.text && "{" === e.text[0] && "{" === e.text[1]))) || + (t.type === s.CONTROL_FLOW_CLOSE && + "}" === t.text && + e.text.endsWith("{")) + ); + }), + (_.prototype._reset = function () { + this._current_tag_name = ""; + }), + (_.prototype._get_next_token = function (t, e) { + var n = null; + this._readWhitespace(); + var i = this._input.peek(); + return null === i + ? this._create_token(s.EOF, "") + : (n = + (n = + (n = + (n = + (n = + (n = + (n = + (n = + (n = + (n = n || this._read_open_handlebars(i, e)) || + this._read_attribute(i, t, e)) || + this._read_close(i, e)) || + this._read_control_flows(i, e)) || + this._read_raw_content(i, t, e)) || + this._read_content_word(i, e)) || + this._read_comment_or_cdata(i)) || + this._read_processing(i)) || this._read_open(i, e)) || + this._create_token(s.UNKNOWN, this._input.next())); + }), + (_.prototype._read_comment_or_cdata = function (t) { + var e = null, + n = null, + i = null; + return ( + "<" === t && + ("!" === this._input.peek(1) && + ((n = this.__patterns.comment.read()) + ? (i = o.get_directives(n)) && + "start" === i.ignore && + (n += o.readIgnored(this._input)) + : (n = this.__patterns.cdata.read())), + n && ((e = this._create_token(s.COMMENT, n)).directives = i)), + e + ); + }), + (_.prototype._read_processing = function (t) { + var e = null, + n = null; + if ("<" === t) { + var i = this._input.peek(1); + (("!" !== i && "?" !== i) || + (n = + (n = this.__patterns.conditional_comment.read()) || + this.__patterns.processing.read()), + n && ((e = this._create_token(s.COMMENT, n)).directives = null)); + } + return e; + }), + (_.prototype._read_open = function (t, e) { + var n = null, + i = null; + return ( + (e && e.type !== s.CONTROL_FLOW_OPEN) || + ("<" === t && + ((n = this._input.next()), + "/" === this._input.peek() && (n += this._input.next()), + (n += this.__patterns.element_name.read()), + (i = this._create_token(s.TAG_OPEN, n)))), + i + ); + }), + (_.prototype._read_open_handlebars = function (t, e) { + var n = null, + i = null; + return ( + (e && e.type !== s.CONTROL_FLOW_OPEN) || + (this._options.indent_handlebars && + "{" === t && + "{" === this._input.peek(1) && + ("!" === this._input.peek(2) + ? ((n = + (n = this.__patterns.handlebars_comment.read()) || + this.__patterns.handlebars.read()), + (i = this._create_token(s.COMMENT, n))) + : ((n = this.__patterns.handlebars_open.read()), + (i = this._create_token(s.TAG_OPEN, n))))), + i + ); + }), + (_.prototype._read_control_flows = function (t, e) { + var n = "", + i = null; + if ( + !this._options.templating.includes("angular") || + !this._options.indent_handlebars + ) + return i; + if ("@" === t) { + if ("" === (n = this.__patterns.angular_control_flow_start.read())) + return i; + for ( + var r = n.endsWith("(") ? 1 : 0, o = 0; + !n.endsWith("{") || r !== o; + ) { + var _ = this._input.next(); + if (null === _) break; + ("(" === _ ? r++ : ")" === _ && o++, (n += _)); + } + i = this._create_token(s.CONTROL_FLOW_OPEN, n); + } else + "}" === t && + e && + e.type === s.CONTROL_FLOW_OPEN && + ((n = this._input.next()), + (i = this._create_token(s.CONTROL_FLOW_CLOSE, n))); + return i; + }), + (_.prototype._read_close = function (t, e) { + var n = null, + i = null; + return ( + e && + e.type === s.TAG_OPEN && + ("<" === e.text[0] && + (">" === t || ("/" === t && ">" === this._input.peek(1))) + ? ((n = this._input.next()), + "/" === t && (n += this._input.next()), + (i = this._create_token(s.TAG_CLOSE, n))) + : "{" === e.text[0] && + "}" === t && + "}" === this._input.peek(1) && + (this._input.next(), + this._input.next(), + (i = this._create_token(s.TAG_CLOSE, "}}")))), + i + ); + }), + (_.prototype._read_attribute = function (t, e, n) { + var i = null, + r = ""; + if (n && "<" === n.text[0]) + if ("=" === t) i = this._create_token(s.EQUALS, this._input.next()); + else if ('"' === t || "'" === t) { + var o = this._input.next(); + ((o += + '"' === t + ? this.__patterns.double_quote.read() + : this.__patterns.single_quote.read()), + (i = this._create_token(s.VALUE, o))); + } else + (r = this.__patterns.attribute.read()) && + (i = + e.type === s.EQUALS + ? this._create_token(s.VALUE, r) + : this._create_token(s.ATTRIBUTE, r)); + return i; + }), + (_.prototype._is_content_unformatted = function (t) { + return ( + -1 === this._options.void_elements.indexOf(t) && + (-1 !== this._options.content_unformatted.indexOf(t) || + -1 !== this._options.unformatted.indexOf(t)) + ); + }), + (_.prototype._read_raw_content = function (t, e, n) { + var i = ""; + if (n && "{" === n.text[0]) + i = this.__patterns.handlebars_raw_close.read(); + else if ( + e.type === s.TAG_CLOSE && + "<" === e.opened.text[0] && + "/" !== e.text[0] + ) { + var r = e.opened.text.substr(1).toLowerCase(); + if ("script" === r || "style" === r) { + var o = this._read_comment_or_cdata(t); + if (o) return ((o.type = s.TEXT), o); + i = this._input.readUntil( + new RegExp("", "ig"), + ); + } else + this._is_content_unformatted(r) && + (i = this._input.readUntil( + new RegExp("", "ig"), + )); + } + return i ? this._create_token(s.TEXT, i) : null; + }), + (_.prototype._read_content_word = function (t, e) { + var n = ""; + if ( + (this._options.unformatted_content_delimiter && + t === this._options.unformatted_content_delimiter[0] && + (n = this.__patterns.unformatted_content_delimiter.read()), + n || + (n = + e && e.type === s.CONTROL_FLOW_OPEN + ? this.__patterns.word_control_flow_close_excluded.read() + : this.__patterns.word.read()), + n) + ) + return this._create_token(s.TEXT, n); + }), + (at.Tokenizer = _), + (at.TOKEN = s), + at + ); + } + function Ot() { + if (vt) return X; + vt = 1; + var t = J().Options, + e = (function () { + if (tt) return _t; + function t(t) { + ((this.__parent = t), + (this.__character_count = 0), + (this.__indent_count = -1), + (this.__alignment_count = 0), + (this.__wrap_point_index = 0), + (this.__wrap_point_character_count = 0), + (this.__wrap_point_indent_count = -1), + (this.__wrap_point_alignment_count = 0), + (this.__items = [])); + } + function e(t, e) { + ((this.__cache = [""]), + (this.__indent_size = t.indent_size), + (this.__indent_string = t.indent_char), + t.indent_with_tabs || + (this.__indent_string = new Array(t.indent_size + 1).join( + t.indent_char, + )), + (e = e || ""), + t.indent_level > 0 && + (e = new Array(t.indent_level + 1).join(this.__indent_string)), + (this.__base_string = e), + (this.__base_string_length = e.length)); + } + function n(n, i) { + ((this.__indent_cache = new e(n, i)), + (this.raw = !1), + (this._end_with_newline = n.end_with_newline), + (this.indent_size = n.indent_size), + (this.wrap_line_length = n.wrap_line_length), + (this.indent_empty_lines = n.indent_empty_lines), + (this.__lines = []), + (this.previous_line = null), + (this.current_line = null), + (this.next_line = new t(this)), + (this.space_before_token = !1), + (this.non_breaking_space = !1), + (this.previous_token_wrapped = !1), + this.__add_outputline()); + } + return ( + (tt = 1), + (t.prototype.clone_empty = function () { + var e = new t(this.__parent); + return ( + e.set_indent(this.__indent_count, this.__alignment_count), + e + ); + }), + (t.prototype.item = function (t) { + return t < 0 + ? this.__items[this.__items.length + t] + : this.__items[t]; + }), + (t.prototype.has_match = function (t) { + for (var e = this.__items.length - 1; e >= 0; e--) + if (this.__items[e].match(t)) return !0; + return !1; + }), + (t.prototype.set_indent = function (t, e) { + this.is_empty() && + ((this.__indent_count = t || 0), + (this.__alignment_count = e || 0), + (this.__character_count = this.__parent.get_indent_size( + this.__indent_count, + this.__alignment_count, + ))); + }), + (t.prototype._set_wrap_point = function () { + this.__parent.wrap_line_length && + ((this.__wrap_point_index = this.__items.length), + (this.__wrap_point_character_count = this.__character_count), + (this.__wrap_point_indent_count = + this.__parent.next_line.__indent_count), + (this.__wrap_point_alignment_count = + this.__parent.next_line.__alignment_count)); + }), + (t.prototype._should_wrap = function () { + return ( + this.__wrap_point_index && + this.__character_count > this.__parent.wrap_line_length && + this.__wrap_point_character_count > + this.__parent.next_line.__character_count + ); + }), + (t.prototype._allow_wrap = function () { + if (this._should_wrap()) { + this.__parent.add_new_line(); + var t = this.__parent.current_line; + return ( + t.set_indent( + this.__wrap_point_indent_count, + this.__wrap_point_alignment_count, + ), + (t.__items = this.__items.slice(this.__wrap_point_index)), + (this.__items = this.__items.slice(0, this.__wrap_point_index)), + (t.__character_count += + this.__character_count - this.__wrap_point_character_count), + (this.__character_count = this.__wrap_point_character_count), + " " === t.__items[0] && + (t.__items.splice(0, 1), (t.__character_count -= 1)), + !0 + ); + } + return !1; + }), + (t.prototype.is_empty = function () { + return 0 === this.__items.length; + }), + (t.prototype.last = function () { + return this.is_empty() + ? null + : this.__items[this.__items.length - 1]; + }), + (t.prototype.push = function (t) { + this.__items.push(t); + var e = t.lastIndexOf("\n"); + -1 !== e + ? (this.__character_count = t.length - e) + : (this.__character_count += t.length); + }), + (t.prototype.pop = function () { + var t = null; + return ( + this.is_empty() || + ((t = this.__items.pop()), + (this.__character_count -= t.length)), + t + ); + }), + (t.prototype._remove_indent = function () { + this.__indent_count > 0 && + ((this.__indent_count -= 1), + (this.__character_count -= this.__parent.indent_size)); + }), + (t.prototype._remove_wrap_indent = function () { + this.__wrap_point_indent_count > 0 && + (this.__wrap_point_indent_count -= 1); + }), + (t.prototype.trim = function () { + for (; " " === this.last(); ) + (this.__items.pop(), (this.__character_count -= 1)); + }), + (t.prototype.toString = function () { + var t = ""; + return ( + this.is_empty() + ? this.__parent.indent_empty_lines && + (t = this.__parent.get_indent_string(this.__indent_count)) + : ((t = this.__parent.get_indent_string( + this.__indent_count, + this.__alignment_count, + )), + (t += this.__items.join(""))), + t + ); + }), + (e.prototype.get_indent_size = function (t, e) { + var n = this.__base_string_length; + return ( + (e = e || 0), + t < 0 && (n = 0), + (n += t * this.__indent_size) + e + ); + }), + (e.prototype.get_indent_string = function (t, e) { + var n = this.__base_string; + return ( + (e = e || 0), + t < 0 && ((t = 0), (n = "")), + (e += t * this.__indent_size), + this.__ensure_cache(e), + n + this.__cache[e] + ); + }), + (e.prototype.__ensure_cache = function (t) { + for (; t >= this.__cache.length; ) this.__add_column(); + }), + (e.prototype.__add_column = function () { + var t = this.__cache.length, + e = 0, + n = ""; + (this.__indent_size && + t >= this.__indent_size && + ((t -= + (e = Math.floor(t / this.__indent_size)) * this.__indent_size), + (n = new Array(e + 1).join(this.__indent_string))), + t && (n += new Array(t + 1).join(" ")), + this.__cache.push(n)); + }), + (n.prototype.__add_outputline = function () { + ((this.previous_line = this.current_line), + (this.current_line = this.next_line.clone_empty()), + this.__lines.push(this.current_line)); + }), + (n.prototype.get_line_number = function () { + return this.__lines.length; + }), + (n.prototype.get_indent_string = function (t, e) { + return this.__indent_cache.get_indent_string(t, e); + }), + (n.prototype.get_indent_size = function (t, e) { + return this.__indent_cache.get_indent_size(t, e); + }), + (n.prototype.is_empty = function () { + return !this.previous_line && this.current_line.is_empty(); + }), + (n.prototype.add_new_line = function (t) { + return !( + this.is_empty() || + (!t && this.just_added_newline()) || + (this.raw || this.__add_outputline(), 0) + ); + }), + (n.prototype.get_code = function (t) { + this.trim(!0); + var e = this.current_line.pop(); + (e && + ("\n" === e[e.length - 1] && (e = e.replace(/\n+$/g, "")), + this.current_line.push(e)), + this._end_with_newline && this.__add_outputline()); + var n = this.__lines.join("\n"); + return ("\n" !== t && (n = n.replace(/[\n]/g, t)), n); + }), + (n.prototype.set_wrap_point = function () { + this.current_line._set_wrap_point(); + }), + (n.prototype.set_indent = function (t, e) { + return ( + (t = t || 0), + (e = e || 0), + this.next_line.set_indent(t, e), + this.__lines.length > 1 + ? (this.current_line.set_indent(t, e), !0) + : (this.current_line.set_indent(), !1) + ); + }), + (n.prototype.add_raw_token = function (t) { + for (var e = 0; e < t.newlines; e++) this.__add_outputline(); + (this.current_line.set_indent(-1), + this.current_line.push(t.whitespace_before), + this.current_line.push(t.text), + (this.space_before_token = !1), + (this.non_breaking_space = !1), + (this.previous_token_wrapped = !1)); + }), + (n.prototype.add_token = function (t) { + (this.__add_space_before_token(), + this.current_line.push(t), + (this.space_before_token = !1), + (this.non_breaking_space = !1), + (this.previous_token_wrapped = this.current_line._allow_wrap())); + }), + (n.prototype.__add_space_before_token = function () { + this.space_before_token && + !this.just_added_newline() && + (this.non_breaking_space || this.set_wrap_point(), + this.current_line.push(" ")); + }), + (n.prototype.remove_indent = function (t) { + for (var e = this.__lines.length; t < e; ) + (this.__lines[t]._remove_indent(), t++); + this.current_line._remove_wrap_indent(); + }), + (n.prototype.trim = function (t) { + for ( + t = void 0 !== t && t, this.current_line.trim(); + t && this.__lines.length > 1 && this.current_line.is_empty(); + ) + (this.__lines.pop(), + (this.current_line = this.__lines[this.__lines.length - 1]), + this.current_line.trim()); + this.previous_line = + this.__lines.length > 1 + ? this.__lines[this.__lines.length - 2] + : null; + }), + (n.prototype.just_added_newline = function () { + return this.current_line.is_empty(); + }), + (n.prototype.just_added_blankline = function () { + return ( + this.is_empty() || + (this.current_line.is_empty() && this.previous_line.is_empty()) + ); + }), + (n.prototype.ensure_empty_line_above = function (e, n) { + for (var i = this.__lines.length - 2; i >= 0; ) { + var r = this.__lines[i]; + if (r.is_empty()) break; + if (0 !== r.item(0).indexOf(e) && r.item(-1) !== n) { + (this.__lines.splice(i + 1, 0, new t(this)), + (this.previous_line = this.__lines[this.__lines.length - 2])); + break; + } + i--; + } + }), + (_t.Output = n), + _t + ); + })().Output, + n = Tt().Tokenizer, + i = Tt().TOKEN, + r = /\r\n|[\r\n]/, + s = /\r\n|[\r\n]/g, + o = function (t, n) { + ((this.indent_level = 0), + (this.alignment_size = 0), + (this.max_preserve_newlines = t.max_preserve_newlines), + (this.preserve_newlines = t.preserve_newlines), + (this._output = new e(t, n))); + }; + ((o.prototype.current_line_has_match = function (t) { + return this._output.current_line.has_match(t); + }), + (o.prototype.set_space_before_token = function (t, e) { + ((this._output.space_before_token = t), + (this._output.non_breaking_space = e)); + }), + (o.prototype.set_wrap_point = function () { + (this._output.set_indent(this.indent_level, this.alignment_size), + this._output.set_wrap_point()); + }), + (o.prototype.add_raw_token = function (t) { + this._output.add_raw_token(t); + }), + (o.prototype.print_preserved_newlines = function (t) { + var e = 0; + (t.type !== i.TEXT && + t.previous.type !== i.TEXT && + (e = t.newlines ? 1 : 0), + this.preserve_newlines && + (e = + t.newlines < this.max_preserve_newlines + 1 + ? t.newlines + : this.max_preserve_newlines + 1)); + for (var n = 0; n < e; n++) this.print_newline(n > 0); + return 0 !== e; + }), + (o.prototype.traverse_whitespace = function (t) { + return !( + (!t.whitespace_before && !t.newlines) || + (this.print_preserved_newlines(t) || + (this._output.space_before_token = !0), + 0) + ); + }), + (o.prototype.previous_token_wrapped = function () { + return this._output.previous_token_wrapped; + }), + (o.prototype.print_newline = function (t) { + this._output.add_new_line(t); + }), + (o.prototype.print_token = function (t) { + t.text && + (this._output.set_indent(this.indent_level, this.alignment_size), + this._output.add_token(t.text)); + }), + (o.prototype.indent = function () { + this.indent_level++; + }), + (o.prototype.deindent = function () { + this.indent_level > 0 && + (this.indent_level--, + this._output.set_indent(this.indent_level, this.alignment_size)); + }), + (o.prototype.get_full_indent = function (t) { + return (t = this.indent_level + (t || 0)) < 1 + ? "" + : this._output.get_indent_string(t); + })); + function _(t, e) { + return -1 !== e.indexOf(t); + } + function a(t, e, n) { + ((this.parent = t || null), + (this.tag = e ? e.tag_name : ""), + (this.indent_level = n || 0), + (this.parser_token = e || null)); + } + function c(t) { + ((this._printer = t), (this._current_frame = null)); + } + function p(e, n, i, r) { + ((this._source_text = e || ""), + (n = n || {}), + (this._js_beautify = i), + (this._css_beautify = r), + (this._tag_stack = null)); + var s = new t(n, "html"); + ((this._options = s), + (this._is_wrap_attributes_force = + "force" === this._options.wrap_attributes.substr(0, 5)), + (this._is_wrap_attributes_force_expand_multiline = + "force-expand-multiline" === this._options.wrap_attributes), + (this._is_wrap_attributes_force_aligned = + "force-aligned" === this._options.wrap_attributes), + (this._is_wrap_attributes_aligned_multiple = + "aligned-multiple" === this._options.wrap_attributes), + (this._is_wrap_attributes_preserve = + "preserve" === this._options.wrap_attributes.substr(0, 8)), + (this._is_wrap_attributes_preserve_aligned = + "preserve-aligned" === this._options.wrap_attributes)); + } + ((c.prototype.get_parser_token = function () { + return this._current_frame ? this._current_frame.parser_token : null; + }), + (c.prototype.record_tag = function (t) { + var e = new a(this._current_frame, t, this._printer.indent_level); + this._current_frame = e; + }), + (c.prototype._try_pop_frame = function (t) { + var e = null; + return ( + t && + ((e = t.parser_token), + (this._printer.indent_level = t.indent_level), + (this._current_frame = t.parent)), + e + ); + }), + (c.prototype._get_frame = function (t, e) { + for (var n = this._current_frame; n && -1 === t.indexOf(n.tag); ) { + if (e && -1 !== e.indexOf(n.tag)) { + n = null; + break; + } + n = n.parent; + } + return n; + }), + (c.prototype.try_pop = function (t, e) { + var n = this._get_frame([t], e); + return this._try_pop_frame(n); + }), + (c.prototype.indent_to_tag = function (t) { + var e = this._get_frame(t); + e && (this._printer.indent_level = e.indent_level); + }), + (p.prototype.beautify = function () { + if (this._options.disabled) return this._source_text; + var t = this._source_text, + e = this._options.eol; + "auto" === this._options.eol && + ((e = "\n"), t && r.test(t) && (e = t.match(r)[0])); + var _ = (t = t.replace(s, "\n")).match(/^[\t ]*/)[0], + a = { text: "", type: "" }, + p = new l(), + u = new o(this._options, _), + h = new n(t, this._options).tokenize(); + this._tag_stack = new c(u); + for (var d = null, g = h.next(); g.type !== i.EOF; ) + (g.type === i.TAG_OPEN || g.type === i.COMMENT + ? (p = d = this._handle_tag_open(u, g, p, a, h)) + : g.type === i.ATTRIBUTE || + g.type === i.EQUALS || + g.type === i.VALUE || + (g.type === i.TEXT && !p.tag_complete) + ? (d = this._handle_inside_tag(u, g, p, a)) + : g.type === i.TAG_CLOSE + ? (d = this._handle_tag_close(u, g, p)) + : g.type === i.TEXT + ? (d = this._handle_text(u, g, p)) + : g.type === i.CONTROL_FLOW_OPEN + ? (d = this._handle_control_flow_open(u, g)) + : g.type === i.CONTROL_FLOW_CLOSE + ? (d = this._handle_control_flow_close(u, g)) + : u.add_raw_token(g), + (a = d), + (g = h.next())); + return u._output.get_code(e); + }), + (p.prototype._handle_control_flow_open = function (t, e) { + var n = { text: e.text, type: e.type }; + return ( + t.set_space_before_token( + e.newlines || "" !== e.whitespace_before, + !0, + ), + e.newlines + ? t.print_preserved_newlines(e) + : t.set_space_before_token( + e.newlines || "" !== e.whitespace_before, + !0, + ), + t.print_token(e), + t.indent(), + n + ); + }), + (p.prototype._handle_control_flow_close = function (t, e) { + var n = { text: e.text, type: e.type }; + return ( + t.deindent(), + e.newlines + ? t.print_preserved_newlines(e) + : t.set_space_before_token( + e.newlines || "" !== e.whitespace_before, + !0, + ), + t.print_token(e), + n + ); + }), + (p.prototype._handle_tag_close = function (t, e, n) { + var i = { text: e.text, type: e.type }; + return ( + (t.alignment_size = 0), + (n.tag_complete = !0), + t.set_space_before_token( + e.newlines || "" !== e.whitespace_before, + !0, + ), + n.is_unformatted + ? t.add_raw_token(e) + : ("<" === n.tag_start_char && + (t.set_space_before_token("/" === e.text[0], !0), + this._is_wrap_attributes_force_expand_multiline && + n.has_wrapped_attrs && + t.print_newline(!1)), + t.print_token(e)), + !n.indent_content || + n.is_unformatted || + n.is_content_unformatted || + (t.indent(), (n.indent_content = !1)), + n.is_inline_element || + n.is_unformatted || + n.is_content_unformatted || + t.set_wrap_point(), + i + ); + }), + (p.prototype._handle_inside_tag = function (t, e, n, r) { + var s = n.has_wrapped_attrs, + o = { text: e.text, type: e.type }; + return ( + t.set_space_before_token( + e.newlines || "" !== e.whitespace_before, + !0, + ), + n.is_unformatted + ? t.add_raw_token(e) + : "{" === n.tag_start_char && e.type === i.TEXT + ? t.print_preserved_newlines(e) + ? ((e.newlines = 0), t.add_raw_token(e)) + : t.print_token(e) + : (e.type === i.ATTRIBUTE + ? t.set_space_before_token(!0) + : (e.type === i.EQUALS || + (e.type === i.VALUE && e.previous.type === i.EQUALS)) && + t.set_space_before_token(!1), + e.type === i.ATTRIBUTE && + "<" === n.tag_start_char && + ((this._is_wrap_attributes_preserve || + this._is_wrap_attributes_preserve_aligned) && + (t.traverse_whitespace(e), (s = s || 0 !== e.newlines)), + this._is_wrap_attributes_force && + n.attr_count >= this._options.wrap_attributes_min_attrs && + (r.type !== i.TAG_OPEN || + this._is_wrap_attributes_force_expand_multiline) && + (t.print_newline(!1), (s = !0))), + t.print_token(e), + (s = s || t.previous_token_wrapped()), + (n.has_wrapped_attrs = s)), + o + ); + }), + (p.prototype._handle_text = function (t, e, n) { + var i = { text: e.text, type: "TK_CONTENT" }; + return ( + n.custom_beautifier_name + ? this._print_custom_beatifier_text(t, e, n) + : n.is_unformatted || n.is_content_unformatted + ? t.add_raw_token(e) + : (t.traverse_whitespace(e), t.print_token(e)), + i + ); + }), + (p.prototype._print_custom_beatifier_text = function (t, e, n) { + var i = this; + if ("" !== e.text) { + var r, + s = e.text, + o = 1, + _ = "", + a = ""; + ("javascript" === n.custom_beautifier_name && + "function" == typeof this._js_beautify + ? (r = this._js_beautify) + : "css" === n.custom_beautifier_name && + "function" == typeof this._css_beautify + ? (r = this._css_beautify) + : "html" === n.custom_beautifier_name && + (r = function (t, e) { + return new p( + t, + e, + i._js_beautify, + i._css_beautify, + ).beautify(); + }), + "keep" === this._options.indent_scripts + ? (o = 0) + : "separate" === this._options.indent_scripts && + (o = -t.indent_level)); + var c = t.get_full_indent(o); + if ( + ((s = s.replace(/\n[ \t]*$/, "")), + "html" !== n.custom_beautifier_name && + "<" === s[0] && + s.match(/^(|]]>)$/.exec( + s, + ); + if (!l) return void t.add_raw_token(e); + ((_ = c + l[1] + "\n"), + (s = l[4]), + l[5] && (a = c + l[5]), + (s = s.replace(/\n[ \t]*$/, "")), + (l[2] || -1 !== l[3].indexOf("\n")) && + (l = l[3].match(/[ \t]+$/)) && + (e.whitespace_before = l[0])); + } + if (s) + if (r) { + var u = function () { + this.eol = "\n"; + }; + ((u.prototype = this._options.raw_options), + (s = r(c + s, new u()))); + } else { + var h = e.whitespace_before; + (h && (s = s.replace(new RegExp("\n(" + h + ")?", "g"), "\n")), + (s = c + s.replace(/\n/g, "\n" + c))); + } + (_ && (s = s ? _ + s + "\n" + a : _ + a), + t.print_newline(!1), + s && + ((e.text = s), + (e.whitespace_before = ""), + (e.newlines = 0), + t.add_raw_token(e), + t.print_newline(!0))); + } + }), + (p.prototype._handle_tag_open = function (t, e, n, r, s) { + var o = this._get_tag_open_token(e); + if ( + ((!n.is_unformatted && !n.is_content_unformatted) || + n.is_empty_element || + e.type !== i.TAG_OPEN || + o.is_start_tag + ? (t.traverse_whitespace(e), + this._set_tag_position(t, e, o, n, r), + o.is_inline_element || t.set_wrap_point(), + t.print_token(e)) + : (t.add_raw_token(e), + (o.start_tag_token = this._tag_stack.try_pop(o.tag_name))), + o.is_start_tag && this._is_wrap_attributes_force) + ) { + var _, + a = 0; + do { + ((_ = s.peek(a)).type === i.ATTRIBUTE && (o.attr_count += 1), + (a += 1)); + } while (_.type !== i.EOF && _.type !== i.TAG_CLOSE); + } + return ( + (this._is_wrap_attributes_force_aligned || + this._is_wrap_attributes_aligned_multiple || + this._is_wrap_attributes_preserve_aligned) && + (o.alignment_size = e.text.length + 1), + o.tag_complete || + o.is_unformatted || + (t.alignment_size = o.alignment_size), + o + ); + })); + var l = function (t, e) { + if ( + ((this.parent = t || null), + (this.text = ""), + (this.type = "TK_TAG_OPEN"), + (this.tag_name = ""), + (this.is_inline_element = !1), + (this.is_unformatted = !1), + (this.is_content_unformatted = !1), + (this.is_empty_element = !1), + (this.is_start_tag = !1), + (this.is_end_tag = !1), + (this.indent_content = !1), + (this.multiline_content = !1), + (this.custom_beautifier_name = null), + (this.start_tag_token = null), + (this.attr_count = 0), + (this.has_wrapped_attrs = !1), + (this.alignment_size = 0), + (this.tag_complete = !1), + (this.tag_start_char = ""), + (this.tag_check = ""), + e) + ) { + var n; + ((this.tag_start_char = e.text[0]), + (this.text = e.text), + "<" === this.tag_start_char + ? ((n = e.text.match(/^<([^\s>]*)/)), + (this.tag_check = n ? n[1] : "")) + : ((n = e.text.match(/^{{~?(?:[\^]|#\*?)?([^\s}]+)/)), + (this.tag_check = n ? n[1] : ""), + (e.text.startsWith("{{#>") || e.text.startsWith("{{~#>")) && + ">" === this.tag_check[0] && + (">" === this.tag_check && null !== e.next + ? (this.tag_check = e.next.text.split(" ")[0]) + : (this.tag_check = e.text.split(">")[1]))), + (this.tag_check = this.tag_check.toLowerCase()), + e.type === i.COMMENT && (this.tag_complete = !0), + (this.is_start_tag = "/" !== this.tag_check.charAt(0)), + (this.tag_name = this.is_start_tag + ? this.tag_check + : this.tag_check.substr(1)), + (this.is_end_tag = + !this.is_start_tag || (e.closed && "/>" === e.closed.text))); + var r = 2; + ("{" === this.tag_start_char && + this.text.length >= 3 && + "~" === this.text.charAt(2) && + (r = 3), + (this.is_end_tag = + this.is_end_tag || + ("{" === this.tag_start_char && + (this.text.length < 3 || /[^#\^]/.test(this.text.charAt(r)))))); + } else this.tag_complete = !0; + }; + ((p.prototype._get_tag_open_token = function (t) { + var e = new l(this._tag_stack.get_parser_token(), t); + return ( + (e.alignment_size = this._options.wrap_attributes_indent_size), + (e.is_end_tag = + e.is_end_tag || _(e.tag_check, this._options.void_elements)), + (e.is_empty_element = + e.tag_complete || (e.is_start_tag && e.is_end_tag)), + (e.is_unformatted = + !e.tag_complete && _(e.tag_check, this._options.unformatted)), + (e.is_content_unformatted = + !e.is_empty_element && + _(e.tag_check, this._options.content_unformatted)), + (e.is_inline_element = + _(e.tag_name, this._options.inline) || + (this._options.inline_custom_elements && e.tag_name.includes("-")) || + "{" === e.tag_start_char), + e + ); + }), + (p.prototype._set_tag_position = function (t, e, n, r, s) { + if ( + (n.is_empty_element || + (n.is_end_tag + ? (n.start_tag_token = this._tag_stack.try_pop(n.tag_name)) + : (this._do_optional_end_element(n) && + (n.is_inline_element || t.print_newline(!1)), + this._tag_stack.record_tag(n), + ("script" !== n.tag_name && "style" !== n.tag_name) || + n.is_unformatted || + n.is_content_unformatted || + (n.custom_beautifier_name = (function (t, e) { + var n = null, + r = null; + return e.closed + ? ("script" === t + ? (n = "text/javascript") + : "style" === t && (n = "text/css"), + (n = + (function (t) { + for ( + var e = null, n = t.next; + n.type !== i.EOF && t.closed !== n; + ) { + if (n.type === i.ATTRIBUTE && "type" === n.text) { + n.next && + n.next.type === i.EQUALS && + n.next.next && + n.next.next.type === i.VALUE && + (e = n.next.next.text); + break; + } + n = n.next; + } + return e; + })(e) || n), + n.search("text/css") > -1 + ? (r = "css") + : n.search( + /module|((text|application|dojo)\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\+)?json|method|aspect))/, + ) > -1 + ? (r = "javascript") + : n.search(/(text|application|dojo)\/(x-)?(html)/) > + -1 + ? (r = "html") + : n.search(/test\/null/) > -1 && (r = "null"), + r) + : null; + })(n.tag_check, e)))), + _(n.tag_check, this._options.extra_liners) && + (t.print_newline(!1), + t._output.just_added_blankline() || t.print_newline(!0)), + n.is_empty_element) + ) + ("{" === n.tag_start_char && + "else" === n.tag_check && + (this._tag_stack.indent_to_tag(["if", "unless", "each"]), + (n.indent_content = !0), + t.current_line_has_match(/{{#if/) || t.print_newline(!1)), + ("!--" === n.tag_name && + s.type === i.TAG_CLOSE && + r.is_end_tag && + -1 === n.text.indexOf("\n")) || + (n.is_inline_element || n.is_unformatted || t.print_newline(!1), + this._calcluate_parent_multiline(t, n))); + else if (n.is_end_tag) { + var o = !1; + ((o = + (o = n.start_tag_token && n.start_tag_token.multiline_content) || + (!n.is_inline_element && + !(r.is_inline_element || r.is_unformatted) && + !(s.type === i.TAG_CLOSE && n.start_tag_token === r) && + "TK_CONTENT" !== s.type)), + (n.is_content_unformatted || n.is_unformatted) && (o = !1), + o && t.print_newline(!1)); + } else + ((n.indent_content = !n.custom_beautifier_name), + "<" === n.tag_start_char && + ("html" === n.tag_name + ? (n.indent_content = this._options.indent_inner_html) + : "head" === n.tag_name + ? (n.indent_content = this._options.indent_head_inner_html) + : "body" === n.tag_name && + (n.indent_content = this._options.indent_body_inner_html)), + n.is_inline_element || + n.is_unformatted || + ("TK_CONTENT" === s.type && !n.is_content_unformatted) || + t.print_newline(!1), + this._calcluate_parent_multiline(t, n)); + }), + (p.prototype._calcluate_parent_multiline = function (t, e) { + !e.parent || + !t._output.just_added_newline() || + ((e.is_inline_element || e.is_unformatted) && + e.parent.is_inline_element) || + (e.parent.multiline_content = !0); + })); + var u = [ + "address", + "article", + "aside", + "blockquote", + "details", + "div", + "dl", + "fieldset", + "figcaption", + "figure", + "footer", + "form", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "header", + "hr", + "main", + "menu", + "nav", + "ol", + "p", + "pre", + "section", + "table", + "ul", + ], + h = ["a", "audio", "del", "ins", "map", "noscript", "video"]; + return ( + (p.prototype._do_optional_end_element = function (t) { + var e = null; + if (!t.is_empty_element && t.is_start_tag && t.parent) { + if ("body" === t.tag_name) e = e || this._tag_stack.try_pop("head"); + else if ("li" === t.tag_name) + e = e || this._tag_stack.try_pop("li", ["ol", "ul", "menu"]); + else if ("dd" === t.tag_name || "dt" === t.tag_name) + e = + (e = e || this._tag_stack.try_pop("dt", ["dl"])) || + this._tag_stack.try_pop("dd", ["dl"]); + else if ("p" === t.parent.tag_name && -1 !== u.indexOf(t.tag_name)) { + var n = t.parent.parent; + (n && -1 !== h.indexOf(n.tag_name)) || + (e = e || this._tag_stack.try_pop("p")); + } else + "rp" === t.tag_name || "rt" === t.tag_name + ? (e = + (e = e || this._tag_stack.try_pop("rt", ["ruby", "rtc"])) || + this._tag_stack.try_pop("rp", ["ruby", "rtc"])) + : "optgroup" === t.tag_name + ? (e = e || this._tag_stack.try_pop("optgroup", ["select"])) + : "option" === t.tag_name + ? (e = + e || + this._tag_stack.try_pop("option", [ + "select", + "datalist", + "optgroup", + ])) + : "colgroup" === t.tag_name + ? (e = e || this._tag_stack.try_pop("caption", ["table"])) + : "thead" === t.tag_name + ? (e = + (e = + e || + this._tag_stack.try_pop("caption", ["table"])) || + this._tag_stack.try_pop("colgroup", ["table"])) + : "tbody" === t.tag_name || "tfoot" === t.tag_name + ? (e = + (e = + (e = + (e = + e || + this._tag_stack.try_pop("caption", [ + "table", + ])) || + this._tag_stack.try_pop("colgroup", [ + "table", + ])) || + this._tag_stack.try_pop("thead", ["table"])) || + this._tag_stack.try_pop("tbody", ["table"])) + : "tr" === t.tag_name + ? (e = + (e = + (e = + e || + this._tag_stack.try_pop("caption", [ + "table", + ])) || + this._tag_stack.try_pop("colgroup", [ + "table", + ])) || + this._tag_stack.try_pop("tr", [ + "table", + "thead", + "tbody", + "tfoot", + ])) + : ("th" !== t.tag_name && "td" !== t.tag_name) || + (e = + (e = + e || + this._tag_stack.try_pop("td", [ + "table", + "thead", + "tbody", + "tfoot", + "tr", + ])) || + this._tag_stack.try_pop("th", [ + "table", + "thead", + "tbody", + "tfoot", + "tr", + ])); + return ((t.parent = this._tag_stack.get_parser_token()), e); + } + }), + (X.Beautifier = p), + X + ); + } + var Ct = (function () { + if (bt) return Q.exports; + bt = 1; + var t = Ot().Beautifier, + e = J().Options; + return ( + (Q.exports = function (e, n, i, r) { + return new t(e, n, i, r).beautify(); + }), + (Q.exports.defaultOptions = function () { + return new e(); + }), + Q.exports + ); + })(), + Et = D(Ct); + const St = (t) => (e) => e.options.get(t), + At = St("codemirror_script"), + Lt = St("codemirror_linewrapping"), + Nt = St("codemirror_linenumbers"), + Rt = St("codemirror_foldgutter"), + zt = St("codemirror_gutter"), + Pt = St("advcode_headless"), + jt = St("advcode_inline"), + It = St("advcode_prettify_editor"), + Ut = St("advcode_prettify_getcontent"), + $t = (t, e, n) => ({ + customEditorScriptUrl: e + "/customeditor.min.js", + codeMirrorScriptUrl: At(t), + lineWrapping: Lt(t), + lineNumbers: Nt(t), + foldGutter: Rt(t), + gutter: zt(t), + editorId: t.id, + advcodeInstanceId: w("advcode_instance"), + currentAdvStatus: n, + }), + Ft = (t) => { + if (null == t) throw new Error("Node cannot be null or undefined"); + return { dom: t }; + }, + Mt = (t, e) => { + const n = (e || document).createElement("div"); + if (((n.innerHTML = t), !n.hasChildNodes() || n.childNodes.length > 1)) { + const e = "HTML does not have a single root node"; + throw (console.error(e, t), new Error(e)); + } + return Ft(n.childNodes[0]); + }, + Wt = (t, e) => { + const n = (e || document).createElement(t); + return Ft(n); + }, + Kt = Ft, + Bt = (t) => { + const e = t.dom; + null !== e.parentNode && e.parentNode.removeChild(e); + }, + Vt = (t, e, n) => { + let i = t.dom; + const r = s(n) ? n : a; + for (; i.parentNode; ) { + i = i.parentNode; + const t = Kt(i); + if (e(t)) return c.some(t); + if (r(t)) break; + } + return c.none(); + }, + Gt = (t, i) => + ((t, i, r) => { + const s = ((t, e) => { + const n = ((t, e) => { + const n = t.dom.getAttribute(e); + return null === n ? void 0 : n; + })(t, e); + return void 0 === n || "" === n ? [] : n.split(" "); + })(t, i); + return ( + ((t, i, r) => { + ((t, i, r) => { + if (!(e(r) || n(r) || o(r))) + throw ( + console.error( + "Invalid call to Attribute.set. Key ", + i, + ":: Value ", + r, + ":: Element ", + t, + ), + new Error("Attribute value was not simple") + ); + t.setAttribute(i, r + ""); + })(t.dom, i, r); + })(t, i, s.concat([r]).join(" ")), + !0 + ); + })(t, "class", i), + Dt = "\x3c!--mce_cursor--\x3e", + qt = (t, e) => { + const n = t.dom, + i = t.selection, + r = i.getBookmark(), + o = ((t) => m(t, "name"))(r) + ? n.select(r.name)[r.index] + : n.select(`#${r.id}_start`)[0], + _ = c.from(o).map((e) => { + const n = Kt(t.getBody()); + return ((t) => { + const e = Mt(Dt), + i = Kt(t), + r = ((t, e, n) => + ((t, e, n, i, r) => + i(n) ? c.some(n) : s(r) && r(n) ? c.none() : e(n, i, r))( + 0, + Vt, + t, + e, + n, + ))( + i, + (t) => + ((t) => { + const e = t.dom; + return ( + !(!e || !e.hasAttribute) && + e.hasAttribute("data-mce-bogus") + ); + })(t), + (t) => { + return ((e = n), t.dom === e.dom); + var e; + }, + ).getOr(i); + return ( + ((t, e) => { + const n = ((t) => c.from(t.dom.parentNode).map(Kt))(t); + n.each((n) => { + n.dom.insertBefore(e.dom, t.dom); + }); + })(r, e), + e + ); + })(e); + }), + a = e(); + return (_.each(Bt), i.moveToBookmark(r), a); + }, + Ht = (t) => { + const e = It(t), + n = ((t) => { + const e = t.indexOf(Dt); + return -1 === e ? 0 : e; + })(qt(t, () => t.getContent({ source_view: !0, prettify: e }))); + return { + content: t.getContent({ source_view: !0, prettify: e }), + cursor: n, + }; + }, + Qt = (t, e) => { + (t.focus(), + t.undoManager.transact(() => { + t.setContent(e); + }), + t.selection.setCursorLocation(), + t.nodeChanged()); + }, + Xt = (t) => { + return ((e = tinymce), m(e, "get") ? c.from(e.get) : c.none()).bind((e) => + c.from(e.call(tinymce, t)), + ); + var e; + }, + Yt = (t, e) => + Xt(t) + .bind((t) => c.from(t.plugins.advcode)) + .map((t) => (t[e] || (t[e] = v()), t[e])), + Zt = (t, e) => { + Xt(t) + .bind((t) => c.from(t.plugins.advcode)) + .each((t) => { + t[e] && delete t[e]; + }); + }, + Jt = (t) => ({ + name: "codeview", + type: "customeditor", + tag: "div", + /*onFocus: (t) => { + ((t) => { + const e = (t) => { + for (let n = 0; n < t.childNodes.length; n++) { + const i = Kt(t.childNodes[n]); + if (i.dom.shadowRoot) return c.some(i); + const r = e(t.childNodes[n]); + if (r.isSome()) return r; + } + return c.none(); + }; + return e(t.dom); + })(Kt(t)).each((t) => { + var e; + null === (e = t.dom.shadowRoot.querySelector(".cm-content")) || + void 0 === e || + e.focus(); + }); + },*/ + scriptId: "tinymce.plugins.advcode.customeditor", + scriptUrl: t.customEditorScriptUrl, + settings: t, + }), + te = (t, e) => { + const n = { dark: !1, fullscreen: !1, fontSize: c.none() }; + t.addCommand("mceCodeEditor", () => { + jt(t) && !t.inline + ? "code" === t.mode.get() + ? t.mode.set("design") + : t.mode.set("code") + : (() => { + const i = $t(t, e, n); + ((t, e) => { + const n = Ht(t), + i = { ...e, cursor: n.cursor }, + r = e.currentAdvStatus, + s = Yt(e.editorId, e.advcodeInstanceId); + var o; + t.windowManager.open( + ((o = n.content), + { + title: "Source Code", + size: "large", + body: { type: "panel", items: [Jt(i)] }, + buttons: (() => { + let t = [ + { + type: "togglebutton", + name: "format_code", + icon: "format-code", + text: "Format code", + align: "start", + tooltip: "", + }, + { + type: "togglebutton", + name: "dark_theme_toggle", + text: "Dark/light mode", + active: r.dark, + align: "start", + tooltip: "", + }, + { + type: "custom", + name: "increase_font_size", + text: "Increase font size", + icon: "text-size-increase", + align: "start", + }, + { + type: "custom", + name: "decrease_font_size", + text: "Decrease font size", + icon: "text-size-decrease", + align: "start", + }, + { + type: "cancel", + name: "cancel", + text: "Cancel", + align: "end", + }, + { + type: "submit", + name: "save", + text: "Save", + primary: !0, + align: "end", + }, + ]; + return ( + window.isSecureContext + ? (t = [ + { + type: "togglebutton", + name: "copy_code", + icon: "copy", + text: "Copy code", + align: "start", + }, + ].concat(t)) + : console.warn( + "Copy code is not allowed since window.isSecureContext is false", + ), + t + ); + })(), + initialData: { codeview: o }, + onSubmit: (n) => { + (Qt(t, n.getData().codeview), + Zt(e.editorId, e.advcodeInstanceId), + n.close()); + }, + onClose: () => { + Zt(e.editorId, e.advcodeInstanceId); + }, + onAction: (t, e) => { + ("copy_code" === e.name && + s.each((e) => + e.get().each((e) => { + (async () => { + const n = setTimeout(() => { + t.block("copying"); + }, 150); + (await e.copyCode(), + clearTimeout(n), + t.unblock()); + })(); + }), + ), + "format_code" === e.name && + s.each((e) => + e.get().each((e) => { + (e.formatCode(), t.focus("format_code")); + }), + ), + "increase_font_size" === e.name && + s.each((t) => + t.get().each((t) => { + r.fontSize = t.changeFontSize("increase"); + }), + ), + "decrease_font_size" === e.name && + s.each((t) => + t.get().each((t) => { + r.fontSize = t.changeFontSize("decrease"); + }), + ), + "dark_theme_toggle" === e.name && + s.each((t) => + t.get().each((t) => { + (t.setDarkMode(!r.dark), (r.dark = !r.dark)); + }), + )); + }, + }), + ); + })(t, i); + })(); + }); + }, + ee = (t) => t.plugins.fullscreen && t.plugins.fullscreen.isFullscreen(), + ne = (t, e, n) => { + const i = f({ dark: !1, fullscreen: !1, fontSize: c.none() }), + r = f(ee(t)), + s = v(), + o = f(c.none()), + _ = { dark: !1, fullscreen: !1, fontSize: c.none() }, + a = () => o.get().bind((e) => Yt(t.id, e)), + p = () => { + (s.get().each(({ destroy: e }) => { + (e(), + i.get().fullscreen !== r.get() && t.execCommand("mceFullScreen")); + }), + s.clear()); + }; + t.ui.registry.addView("code", { + buttons: + 1 === n + ? [ + { + type: "group", + buttons: [ + ...(t.hasPlugin("fullscreen") + ? [ + { + type: "togglebutton", + icon: "fullscreen", + tooltip: "Fullscreen", + onAction: (e) => { + t.execCommand("mceFullScreen", void 0, void 0, { + skip_focus: !0, + }); + const n = !e.isActive(); + (i.set({ ...i.get(), fullscreen: n }), + e.setActive(n)); + }, + context: "any", + }, + ] + : []), + { + type: "togglebutton", + icon: "copy", + text: "Copy code", + onAction: (t) => + a().each((t) => + t.get().each((t) => { + (async () => { + await t.copyCode(); + })(); + }), + ), + context: "any", + }, + { + type: "togglebutton", + icon: "format-code", + text: "Format code", + onAction: (t) => + a().each((e) => + e.get().each((e) => { + (e.formatCode(), t.focus()); + }), + ), + context: "any", + }, + ], + }, + { + type: "group", + buttons: [ + { + type: "togglebutton", + text: "Dark/light mode", + onAction: (t) => { + a().each((e) => + e.get().each((e) => { + (i.set({ ...i.get(), dark: !t.isActive() }), + t.setActive(i.get().dark), + e.setDarkMode(i.get().dark)); + }), + ); + }, + context: "any", + }, + { + type: "togglebutton", + icon: "text-size-increase", + tooltip: "Increase font size", + onAction: (t) => + a().each((t) => + t.get().each((t) => + i.set({ + ...i.get(), + fontSize: t.changeFontSize("increase"), + }), + ), + ), + context: "any", + }, + { + type: "togglebutton", + icon: "text-size-decrease", + tooltip: "Decrease font size", + onAction: (t) => + a().each((t) => + t.get().each((t) => + i.set({ + ...i.get(), + fontSize: t.changeFontSize("decrease"), + }), + ), + ), + context: "any", + }, + ], + }, + { + type: "group", + buttons: [ + { + type: "button", + text: "Cancel", + onAction: () => { + s.get().each(() => { + (p(), t.mode.set("design")); + }); + }, + context: "any", + }, + { + type: "button", + text: "Save code", + buttonType: "primary", + onAction: () => { + s.get().each(({ syncWithEditor: e }) => { + (e(), p(), t.mode.set("design")); + }); + }, + context: "any", + }, + ], + }, + ] + : [], + onShow: (a) => { + const p = a.getContainer(), + u = $t(t, e, _); + (o.set(c.some(u.advcodeInstanceId)), + r.set(ee(t)), + t.setProgressState(!0), + i.get().fullscreen !== ee(t) && t.execCommand("mceFullScreen"), + (async (t) => { + var e; + return ( + await ((e = t), + tinymce.Resource.load("tinymce.plugins.advcode.CodeMirror", e)) + )(); + })(At(t)).then((e) => { + (t.setProgressState(!1), + s.set( + ((t, e, n, i, r, s) => { + const o = Ht(n), + _ = { ...r, cursor: o.cursor }, + a = Wt("div"); + var c; + ((c = a), + l( + 0 === e + ? ["tox-inline-headless-codemirror", "mce-codemirror"] + : [ + "tox-custom-editor", + "tox-inline-codemirror", + "mce-codemirror", + ], + (t) => { + ((t, e) => { + ((t) => void 0 !== t.dom.classList)(t) + ? t.dom.classList.add(e) + : Gt(t, e); + })(c, t); + }, + ), + ((t, e) => { + t.dom.appendChild(e.dom); + })(Kt(t), a)); + const { + getValue: p, + destroy: u, + copyCode: h, + formatCode: d, + changeFontSize: g, + setDarkMode: m, + setFontSize: f, + focus: y, + } = i(a.dom, _, o.content, s), + w = y; + (t.addEventListener("focus", w), + Yt(r.editorId, r.advcodeInstanceId).each((t) => + t.set({ + copyCode: h, + formatCode: d, + changeFontSize: g, + setDarkMode: m, + setFontSize: f, + }), + ), + f(s.fontSize)); + const v = () => Qt(n, p()); + return ( + 0 === e && n.on("BeforeGetContent", v), + { + syncWithEditor: v, + destroy: () => { + (0 === e && (n.off("BeforeGetContent", v), v()), + Bt(a), + t.removeEventListener("focus", w), + u()); + }, + } + ); + })(p, n, t, e, u, i.get()), + )); + })); + }, + onHide: p, + }); + }; + ((t, e) => { + const { i18n: n = !0 } = e; + (n && + tinymce.PluginManager.requireLangPack( + t, + "ar,bg-BG,ca,cs,da,de,el,es,eu,fa,fi,fr-FR,he-IL,hi,hr,hu-HU,id,it,ja,kk,ko-KR,ms,nb-NO,nl,pl,pt-BR,pt-PT,ro,ru,sk,sl-SI,sv-SE,th-TH,tr,uk,vi,zh-CN,zh-TW", + ), + tinymce.PluginManager.add(t, G(t, e))); + })("advcode", { + setup: (t, e) => { + (((t, e) => { + (((t, e) => { + const n = t.options.register; + (n("codemirror_script", { + processor: "string", + default: e + "/codemirror.min.js", + }), + n("codemirror_linewrapping", { processor: "boolean", default: !0 }), + n("codemirror_linenumbers", { processor: "boolean", default: !0 }), + n("codemirror_foldgutter", { processor: "boolean", default: !0 }), + n("codemirror_gutter", { processor: "boolean", default: !0 }), + n("advcode_headless", { processor: "boolean", default: !1 }), + n("advcode_inline", { processor: "boolean", default: !1 }), + n("advcode_prettify_editor", { processor: "boolean", default: !0 }), + n("advcode_prettify_getcontent", { + processor: "boolean", + default: !1, + })); + })(t, e), + te(t, e), + ((t) => { + const e = "sourcecode", + n = () => t.execCommand("mceCodeEditor"); + (t.ui.registry.addButton("code", { + icon: e, + tooltip: "Source code", + onAction: n, + }), + t.ui.registry.addMenuItem("code", { + icon: e, + text: "Source code", + onAction: n, + })); + })(t), + ((t, e) => { + ne(t, e, Pt(t) ? 0 : 1); + })(t, e), + ((t) => { + t.mode.register("code", { + activate: () => { + "code" !== t.queryCommandValue("ToggleView") && + t.execCommand("ToggleView", !1, "code"); + }, + deactivate: () => { + "code" === t.queryCommandValue("ToggleView") && + t.execCommand("ToggleView", !1, "code"); + }, + editorReadOnly: !1, + }); + })(t)); + })(t, e), + t.on("getContent", (e) => { + if (!1 === e.prettify) return; + const n = !0 === e.prettify, + i = Ut(t); + var r; + (n || i) && + (e.content = + ((r = e.content), + Et(r, { indent_size: 2, preserve_newlines: !1 }))); + })); + }, + }); +})(); diff --git a/plugins/advcode/plugin.min.js b/plugins/advcode/plugin.min.js index d5b81411..98232325 100644 --- a/plugins/advcode/plugin.min.js +++ b/plugins/advcode/plugin.min.js @@ -4,7 +4,17 @@ * Copyright (c) 2023 Ephox Corporation DBA Tiny Technologies, Inc. * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ * - * Version: 7.0.0-22 + * Version: 8.3.0-112 */ - -!function(){"use strict";const e=e=>parseInt(e,10),t=(e,t)=>{const o=e-t;return 0===o?0:o>0?1:-1},o=(e,t,o)=>({major:e,minor:t,patch:o}),n=t=>{const n=/([0-9]+)\.([0-9]+)\.([0-9]+)(?:(\-.+)?)/.exec(t);return n?o(e(n[1]),e(n[2]),e(n[3])):o(0,0,0)},r=e=>t=>typeof t===e,s=("string",e=>"string"===(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(o=n=e,(r=String).prototype.isPrototypeOf(o)||(null===(s=n.constructor)||void 0===s?void 0:s.name)===r.name)?"string":t;var o,n,r,s})(e));const i=r("boolean"),c=r("function"),a=r("number");class d{constructor(e,t){this.tag=e,this.value=t}static some(e){return new d(!0,e)}static none(){return d.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?d.some(e(this.value)):d.none()}bind(e){return this.tag?e(this.value):d.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:d.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return null==e?d.none():d.some(e)}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}d.singletonNone=new d(!1);let l=0;const u=e=>{const t=(new Date).getTime(),o=Math.floor(1e9*Math.random());return l++,e+"_"+o+l+String(t)},m=e=>t=>t.options.get(e),g=m("codemirror_script"),h=m("codemirror_linewrapping"),p=m("codemirror_linenumbers"),f=m("codemirror_foldgutter"),v=m("codemirror_gutter"),y=m("advcode_headless"),b=m("advcode_inline"),_=(e,t,o)=>({customEditorScriptUrl:t+"/customeditor.min.js",codeMirrorScriptUrl:g(e),lineWrapping:h(e),lineNumbers:p(e),foldGutter:f(e),gutter:v(e),editorId:e.id,advcodeInstanceId:u("advcode_instance"),currentAdvStatus:o}),S=()=>{},w=()=>!1,C=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},k=(e,t)=>{const o=(t||document).createElement("div");if(o.innerHTML=e,!o.hasChildNodes()||o.childNodes.length>1){const t="HTML does not have a single root node";throw console.error(t,e),new Error(t)}return C(o.childNodes[0])},x=(e,t)=>{const o=(t||document).createElement(e);return C(o)},z=C;"undefined"!=typeof window?window:Function("return this;")();const A=(e,t,o)=>{let n=e.dom;const r=c(o)?o:w;for(;n.parentNode;){n=n.parentNode;const e=z(n);if(t(e))return d.some(e);if(r(e))break}return d.none()},I=Object.hasOwnProperty,N=(e,t)=>I.call(e,t),T=e=>{const t=e.dom;null!==t.parentNode&&t.parentNode.removeChild(t)},F="\x3c!--mce_cursor--\x3e",M=(e,t)=>{const o=e.dom,n=e.selection,r=n.getBookmark(),s=(e=>N(e,"name"))(r)?o.select(r.name)[r.index]:o.select(`#${r.id}_start`)[0],i=d.from(s).map((t=>{const o=z(e.getBody());return((e,t)=>{const n=k(F),r=z(e),s=((e,t,o)=>((e,t,o,n,r)=>n(o)?d.some(o):c(r)&&r(o)?d.none():t(o,n,r))(0,A,e,t,o))(r,(e=>((e,t)=>{const o=e.dom;return!(!o||!o.hasAttribute)&&o.hasAttribute("data-mce-bogus")})(e)),(e=>{return t=o,e.dom===t.dom;var t})).getOr(r);return((e,t)=>{const o=(e=>d.from(e.dom.parentNode).map(z))(e);o.each((o=>{o.dom.insertBefore(t.dom,e.dom)}))})(s,n),n})(t)})),a=t();return i.each(T),n.moveToBookmark(r),a},E=e=>{const t=(e=>{const t=e.indexOf(F);return-1===t?0:t})(M(e,(()=>e.getContent({source_view:!0}))));return{content:e.getContent({source_view:!0}),cursor:t}},j=e=>{let t=e;return{get:()=>t,set:e=>{t=e}}},D=()=>{const e=(e=>{const t=j(d.none()),o=()=>t.get().each(e);return{clear:()=>{o(),t.set(d.none())},isSet:()=>t.get().isSome(),get:()=>t.get(),set:e=>{o(),t.set(d.some(e))}}})(S);return{...e,on:t=>e.get().each(t)}},O=(e,t)=>{e.focus(),e.undoManager.transact((()=>{e.setContent(t)})),e.selection.setCursorLocation(),e.nodeChanged()},V=e=>{return(t=tinymce,"get",N(t,"get")?d.from(t.get):d.none()).bind((t=>d.from(t.call(tinymce,e))));var t},B=(e,t)=>V(e).bind((e=>d.from(e.plugins.advcode))).map((e=>(e[t]||(e[t]=D()),e[t]))),P=(e,t)=>{V(e).bind((e=>d.from(e.plugins.advcode))).each((e=>{e[t]&&delete e[t]}))},L=e=>({name:"codeview",type:"customeditor",tag:"div",onFocus:e=>{((e,t)=>{const o=e=>{for(let t=0;t{var t;null===(t=e.dom.shadowRoot.querySelector(".cm-content"))||void 0===t||t.focus()}))},scriptId:"tinymce.plugins.advcode.customeditor",scriptUrl:e.customEditorScriptUrl,settings:e}),R=(e,t)=>{const o={dark:!1,fullscreen:!1,fontSize:d.none()};e.addCommand("mceCodeEditor",(()=>{b(e)&&!e.inline?"code"===e.mode.get()?e.mode.set("design"):e.mode.set("code"):(()=>{const n=_(e,t,o);((e,t)=>{const o=E(e),n={...t,cursor:o.cursor},r=t.currentAdvStatus,s=B(t.editorId,t.advcodeInstanceId);var i;e.windowManager.open((i=o.content,{title:"Source Code",size:"large",body:{type:"panel",items:[L(n)]},buttons:(()=>{let e=[{type:"togglebutton",name:"dark_theme_toggle",text:"Dark/light mode",active:r.dark,align:"start"},{type:"custom",name:"increase_font_size",text:"Increase font size",icon:"text-size-increase",align:"start"},{type:"custom",name:"decrease_font_size",text:"Decrease font size",icon:"text-size-decrease",align:"start"},{type:"cancel",name:"cancel",text:"Cancel",align:"end"},{type:"submit",name:"save",text:"Save",primary:!0,align:"end"}];return window.isSecureContext?e=[{type:"custom",name:"copy_code",text:"Copy code",align:"start"}].concat(e):console.warn("Copy code is not allowed since window.isSecureContext is false"),e})(),initialData:{codeview:i},onSubmit:o=>{O(e,o.getData().codeview),P(t.editorId,t.advcodeInstanceId),o.close()},onClose:()=>{P(t.editorId,t.advcodeInstanceId)},onAction:(e,t)=>{"copy_code"===t.name&&s.each((t=>t.get().each((t=>{(async()=>{const o=setTimeout((()=>{e.block("copying")}),150);await t.copyCode(),clearTimeout(o),e.unblock()})()})))),"increase_font_size"===t.name&&s.each((e=>e.get().each((e=>{r.fontSize=e.changeFontSize("increase")})))),"decrease_font_size"===t.name&&s.each((e=>e.get().each((e=>{r.fontSize=e.changeFontSize("decrease")})))),"dark_theme_toggle"===t.name&&s.each((e=>e.get().each((e=>{e.setDarkMode(!r.dark),r.dark=!r.dark}))))}}))})(e,n)})()}))},U=(e,t)=>((e,t,o)=>{const n=((e,t)=>{const o=((e,t)=>{const o=e.dom.getAttribute(t);return null===o?void 0:o})(e,t);return void 0===o||""===o?[]:o.split(" ")})(e,t);return((e,t,o)=>{((e,t,o)=>{if(!(s(o)||i(o)||a(o)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",o,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,o+"")})(e.dom,t,o)})(e,t,n.concat([o]).join(" ")),!0})(e,"class",t),q=e=>e.plugins.fullscreen&&e.plugins.fullscreen.isFullscreen(),H=(e,t,o)=>{const n=j({dark:!1,fullscreen:!1,fontSize:d.none()}),r=j(q(e)),s=D(),i=j(d.none()),c={dark:!1,fullscreen:!1,fontSize:d.none()},a=()=>i.get().bind((t=>B(e.id,t))),l=()=>{s.get().each((({destroy:t})=>{t(),n.get().fullscreen!==r.get()&&e.execCommand("mceFullScreen")})),s.clear()};e.ui.registry.addView("code",{buttons:1===o?[{type:"group",buttons:[...e.hasPlugin("fullscreen")?[{type:"togglebutton",icon:"fullscreen",tooltip:"Fullsceen",onAction:t=>{e.execCommand("mceFullScreen",void 0,void 0,{skip_focus:!0});const o=!t.isActive();n.set({...n.get(),fullscreen:o}),t.setActive(o)}}]:[],{type:"togglebutton",icon:"copy",text:"Copy code",onAction:e=>a().each((e=>e.get().each((e=>{(async()=>{await e.copyCode()})()}))))}]},{type:"group",buttons:[{type:"togglebutton",text:"Dark/light mode",onAction:e=>{a().each((t=>t.get().each((t=>{n.set({...n.get(),dark:!e.isActive()}),e.setActive(n.get().dark),t.setDarkMode(n.get().dark)}))))}},{type:"togglebutton",icon:"text-size-increase",tooltip:"Increase font size",onAction:e=>a().each((e=>e.get().each((e=>n.set({...n.get(),fontSize:e.changeFontSize("increase")})))))},{type:"togglebutton",icon:"text-size-decrease",tooltip:"Decrease font size",onAction:e=>a().each((e=>e.get().each((e=>n.set({...n.get(),fontSize:e.changeFontSize("decrease")})))))}]},{type:"group",buttons:[{type:"button",text:"Cancel",onAction:()=>{s.get().each((()=>{l(),e.mode.set("design")}))}},{type:"button",text:"Save code",buttonType:"primary",onAction:()=>{s.get().each((({syncWithEditor:t})=>{t(),l(),e.mode.set("design")}))}}]}]:[],onShow:a=>{const l=a.getContainer(),u=_(e,t,c);i.set(d.some(u.advcodeInstanceId)),r.set(q(e)),e.setProgressState(!0),n.get().fullscreen!==q(e)&&e.execCommand("mceFullScreen"),(async e=>{var t;return(await(t=e,tinymce.Resource.load("tinymce.plugins.advcode.CodeMirror",t)))()})(g(e)).then((t=>{e.setProgressState(!1),s.set(((e,t,o,n,r,s)=>{const i=E(o),c={...r,cursor:i.cursor},a=x("div");var d;d=a,((e,t)=>{for(let t=0,n=e.length;t{(e=>void 0!==e.dom.classList)(e)?e.dom.classList.add(t):U(e,t)})(d,o);var o})(0===t?["tox-inline-headless-codemirror","mce-codemirror"]:["tox-custom-editor","tox-inline-codemirror","mce-codemirror"]),((e,t)=>{e.dom.appendChild(t.dom)})(z(e),a);const{getValue:l,destroy:u,copyCode:m,changeFontSize:g,setDarkMode:h,setFontSize:p}=n(a.dom,c,i.content,s);B(r.editorId,r.advcodeInstanceId).each((e=>e.set({copyCode:m,changeFontSize:g,setDarkMode:h,setFontSize:p}))),p(s.fontSize);const f=()=>O(o,l());return 0===t&&o.on("BeforeGetContent",f),{syncWithEditor:f,destroy:()=>{0===t&&(o.off("BeforeGetContent",f),f()),T(a),u()}}})(l,o,e,t,u,n.get()))}))},onHide:l})};tinymce.PluginManager.requireLangPack("advcode","ar,bg_BG,ca,cs,da,de,el,es,eu,fa,fi,fr_FR,he_IL,hi,hr,hu_HU,id,it,ja,kk,ko_KR,ms,nb_NO,nl,pl,pt_BR,pt_PT,ro,ru,sk,sl_SI,sv_SE,th_TH,tr,uk,vi,zh_CN,zh_TW"),tinymce.PluginManager.add("advcode",((e,o)=>{((e,o)=>!!e&&-1===((e,o)=>{const n=t(e.major,o.major);if(0!==n)return n;const r=t(e.minor,o.minor);if(0!==r)return r;const s=t(e.patch,o.patch);return 0!==s?s:0})((e=>n((e=>[e.majorVersion,e.minorVersion].join(".").split(".").slice(0,3).join("."))(e)))(e),n(o)))(tinymce,"6.8.0")?console.error("The advcode plugin requires at least version 6.8.0 of TinyMCE."):((e,t)=>{((e,t)=>{const o=e.options.register;o("codemirror_script",{processor:"string",default:t+"/codemirror.min.js"}),o("codemirror_linewrapping",{processor:"boolean",default:!0}),o("codemirror_linenumbers",{processor:"boolean",default:!0}),o("codemirror_foldgutter",{processor:"boolean",default:!0}),o("codemirror_gutter",{processor:"boolean",default:!0}),o("advcode_headless",{processor:"boolean",default:!1}),o("advcode_inline",{processor:"boolean",default:!1})})(e,t),R(e,t),(e=>{const t="sourcecode",o=()=>e.execCommand("mceCodeEditor");e.ui.registry.addButton("code",{icon:t,tooltip:"Source code",onAction:o}),e.ui.registry.addMenuItem("code",{icon:t,text:"Source code",onAction:o})})(e),((e,t)=>{H(e,t,y(e)?0:1)})(e,t),(e=>{e.mode.register("code",{activate:()=>{"code"!==e.queryCommandValue("ToggleView")&&e.execCommand("ToggleView",!1,"code")},deactivate:()=>{"code"===e.queryCommandValue("ToggleView")&&e.execCommand("ToggleView",!1,"code")},editorReadOnly:!1})})(e)})(e,o)}))}(); \ No newline at end of file +/*! + * This resource uses the code from the following libraries: + * + * highlight + * Copyright (C) 2018 by Marijn Haverbeke and others + * https://github.com/lezer-parser/highlight + * + * js-beautify + * Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. + * https://github.com/beautifier/js-beautify + */ +!function(){"use strict";const t=t=>e=>typeof e===t,e=t=>"string"===(t=>{const e=typeof t;return null===t?"null":"object"===e&&Array.isArray(t)?"array":"object"===e&&(n=i=t,(r=String).prototype.isPrototypeOf(n)||i.constructor?.name===r.name)?"string":e;var n,i,r})(t);const n=t("boolean"),i=t=>null==t,r=t=>!i(t),s=t("function"),o=t("number"),_=()=>{},a=()=>!1;class c{tag;value;static singletonNone=new c(!1);constructor(t,e){this.tag=t,this.value=e}static some(t){return new c(!0,t)}static none(){return c.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?c.some(t(this.value)):c.none()}bind(t){return this.tag?t(this.value):c.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:c.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(t??"Called getOrDie on None")}static from(t){return r(t)?c.some(t):c.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}const p=(t,e)=>{for(let n=0,i=t.length;n{for(let n=0,i=t.length;ng(t,(t,n)=>({k:n,v:e(t,n)})),g=(t,e)=>{const n={};return((t,e)=>{const n=u(t);for(let i=0,r=n.length;i{const r=e(t,i);n[r.k]=r.v}),n},m=(t,e)=>h.call(t,e),f=t=>{let e=t;return{get:()=>e,set:t=>{e=t}}};let y=0;const w=t=>{const e=(new Date).getTime(),n=Math.floor(window.crypto.getRandomValues(new Uint32Array(1))[0]/4294967295*1e9);return y++,t+"_"+n+y+String(e)},v=()=>{const t=(t=>{const e=f(c.none()),n=()=>e.get().each(t);return{clear:()=>{n(),e.set(c.none())},isSet:()=>e.get().isSome(),get:()=>e.get(),set:t=>{n(),e.set(c.some(t))}}})(_);return{...t,on:e=>t.get().each(e)}},b=(t,e)=>{const{type:n,message:i}=e;t.notificationManager.open({type:n,text:i})},x=t=>{const e=(t=>{switch(t){case"error":return console.error;case"info":return console.info;case"warn":return console.warn;default:return console.log}})(t.type);e(t.message)},k=(t,e)=>{const{protect:n,allowList:i=[],blockList:s=[]}=null!=t?t:{};let o;return o=r(n)?n:i.length>0||s.length>0||e,{protect:o,allowList:i,blockList:s}},T=t=>{const{protect:e,allowList:n,blockList:i}=null!=t?t:{};return t=>{const r=t.toLowerCase();return n.length>0?!p(n,t=>t.toLowerCase()===r):i.length>0?p(i,t=>t.toLowerCase()===r):e}},O=t=>{const e=T(t);return(t,n)=>{const i=((t,e)=>`${t}:${e}`)(n,t.toLowerCase());return e(i)}},C=(t,e,n,i)=>{const r=Reflect.get(t,"on"),s={protectedEventHandlers:[],cleanupScheduled:!1},o=(t,e)=>{i&&console.log(`[EventsProxy] ${t}`,e||"")},a=e=>{"invalid"===e&&s.protectedEventHandlers.length>0&&(o("Removing event handlers",s.protectedEventHandlers),l(s.protectedEventHandlers,e=>{t.off(e.name,e.callback)}),s.protectedEventHandlers=[])},c=e.onStatusChange(a);return t.on("remove",c),(i,c,p)=>{o(`Adding event listener: ${i}`,{shouldProtect:n(i)});const l=((t,i)=>{const r=n(t),o=e.getStatus(),a=r&&"invalid"===o?_:i;return r&&s.protectedEventHandlers.push({name:t,callback:a}),a})(i,c);return s.cleanupScheduled||(s.cleanupScheduled=!0,window.setTimeout(()=>{a(e.getStatus()),s.cleanupScheduled=!1},0)),Reflect.apply(r,t,[i,l,p])}},E=(t,e,n)=>i=>{const s="invalid"!==e.getStatus()&&r(n)?n(i):_,o=((t,e,n)=>{const i=t=>{"invalid"===t&&n.setEnabled(!1)},r=()=>i(e.getStatus());i(e.getStatus()),t.on("NodeChange",r);const s=e.onStatusChange(i);return()=>{t.off("NodeChange",r),s()}})(t,e,i);return t=>{null==s||s(t),o()}},S=(t,e,n)=>(...i)=>{var r;return"invalid"===t.getStatus()?n:null!==(r=null==e?void 0:e(...i))&&void 0!==r?r:n},A=(t,e)=>S(t,e,Promise.resolve([])),L=(t,e)=>S(t,e,[]),N=(t,e)=>S(t,e,!1),R=(t,n,i,r)=>{const s=n=>{const{command:s,value:o}=n,_=c.from(o).filter(e).map(t=>t.toLowerCase()),a=s.toLowerCase()===r.toLowerCase(),p=_.exists(t=>i.has(t)),l=_.exists(e=>e===t.queryCommandValue(r));a&&p&&!l&&n.preventDefault()},o=n.onStatusChange(e=>{if("invalid"===e){t.on("BeforeExecCommand",s);const e=()=>{const e=t.queryCommandValue(r);i.has(e.toLowerCase())&&t.execCommand(r,!1,e)};t.initialized?e():t.on("init",e)}});t.on("remove",()=>{o(),t.off("BeforeExecCommand",s)})},z=(t,n,i,r,s,o=!1)=>{const _=new Set,a=new Set,c=(t,e)=>{o&&console.log(`[UiProxy] ${t}`,e||"")};((t,e,n)=>{R(t,e,n,"ToggleView")})(t,i,_),((t,e,n)=>{R(t,e,n,"ToggleSidebar")})(t,i,a);const p=(e,n,o,_)=>{const a=s(e,o);return c(`${_}: ${e}`,{spec:n,context:r,shouldProtect:a}),a?{...n,onSetup:E(t,i,n.onSetup)}:n};return new Proxy(n,{get:(t,n,o)=>{const l=Reflect.get(t,n,o);if(!e(n))return l;switch(n){case"addButton":case"addGroupToolbarButton":case"addToggleButton":case"addMenuButton":case"addSplitButton":return(...e)=>{const[i,r,...s]=e,o=p(i,r,"button",String(n));return Reflect.apply(l,t,[i,o,...s])};case"addMenuItem":case"addToggleMenuItem":case"addNestedMenuItem":return(...e)=>{const[i,r,...s]=e,o=p(i,r,"menuitem",String(n));return Reflect.apply(l,t,[i,o,...s])};case"addAutocompleter":return(...e)=>{const[o,_,...a]=e,p=s(o,"autocompleter");if(c(`${String(n)}: ${o}`,{spec:_,context:r,shouldProtect:p}),p){const e={..._,fetch:A(i,_.fetch)};return Reflect.apply(l,t,[o,e,...a])}return Reflect.apply(l,t,[o,_,...a])};case"addSidebar":return(...e)=>{const[i,o,..._]=e,p=s(i,"sidebar");if(c(`${String(n)}: ${i}`,{spec:o,context:r,shouldProtect:p}),p){a.add(i.toLowerCase());const e={...o};return Reflect.apply(l,t,[i,e,..._])}return Reflect.apply(l,t,[i,o,..._])};case"addView":return(...e)=>{const[i,o,...a]=e,p=s(i,"view");if(c(`${String(n)}: ${i}`,{spec:o,context:r,shouldProtect:p}),p){_.add(i.toLowerCase());const e={...o};return Reflect.apply(l,t,[i,e,...a])}return Reflect.apply(l,t,[i,o,...a])};case"addContextMenu":return(...e)=>{const[o,_,...a]=e,p=s(o,"contextmenu");if(c(`${String(n)}: ${o}`,{spec:_,context:r,shouldProtect:p}),p){const e={..._,update:L(i,_.update)};return Reflect.apply(l,t,[o,e,...a])}return Reflect.apply(l,t,[o,_,...a])};case"addContextToolbar":case"addContextForm":return(...e)=>{const[o,_,...a]=e,p=s(o,"contexttoolbar");if(c(`${String(n)}: ${o}`,{spec:_,context:r,shouldProtect:p}),p){const e={..._,predicate:N(i,_.predicate)};return Reflect.apply(l,t,[o,e,...a])}return Reflect.apply(l,t,[o,_,...a])};case"addIcon":case"getAll":case"addContext":return l}}})},P=new Set(["addCommand","addCommands","addQueryStateHandler","addQueryValueHandler"]),j=t=>(e,n)=>{t&&console.log(`[EditorProxy] ${e}`,n||"")},I=(t,e)=>{const{statusProvider:n,uiContext:i,protection:r,debug:o=!1}=e,{events:a,commands:c,ui:p}=r;j(o)("Creating enhanced editor with options:",{hasStatusProvider:!!n,uiContext:i,debug:o,protection:r});const{editorUiProxy:u,editorCommandsProxy:h,editorEventListenerProxy:g}=((t,e,n,i,r,s,o)=>{const a=s.protect?{...t.ui,registry:z(t,t.ui.registry,e,n,O(s),o)}:t.ui,c=i.protect?((t,e,n,i,r)=>{const s={protectedCommands:[],cleanupScheduled:!1},o=(t,e)=>{r&&console.log(`[CommandsProxy] ${t}`,e||"")},a=(t,e)=>{const r=i(t),o=n.getStatus();return r&&s.protectedCommands.push(t),r&&"invalid"===o?_:e},c=e=>{"invalid"===e&&s.protectedCommands.length>0&&(o("Removing commands",s.protectedCommands),l(s.protectedCommands,e=>{t.editorCommands.removeCommand(e)}),s.protectedCommands=[])},p=()=>{s.cleanupScheduled||(s.cleanupScheduled=!0,window.setTimeout(()=>{c(n.getStatus()),s.cleanupScheduled=!1},0))},u=n.onStatusChange(c);return t.on("remove",u),new Proxy(e,{get:(t,n,r)=>{if(o(`Accessing property: ${String(n)}`),"addCommand"===n){const s=Reflect.get(t,n,r);return(t,n,...r)=>{o(`Adding command: ${t}`,{shouldProtect:i(t)});const _=a(t,n);return p(),Reflect.apply(s,e,[t,_,...r])}}if("addCommands"===n){const i=Reflect.get(t,n,r);return(t,n="exec")=>{o(`Adding commands (${n})`,{commandCount:Object.keys(t).length,willApplyEnforcement:"exec"===n});const r="exec"!==n?t:d(t,(t,e)=>a(e,t));return p(),Reflect.apply(i,e,[r,n])}}return Reflect.get(t,n,r)}})})(t,t.editorCommands,e,T(i),o):t.editorCommands;return{editorUiProxy:a,editorCommandsProxy:c,editorEventListenerProxy:r.protect?C(t,e,T(r),o):t.on.bind(t)}})(t,n,i||"",c,a,p,o),m=((t,e,n,i)=>(r,o,_)=>{const a=String(o);if("on"===o)return j(i)("on intercepted"),n;if(P.has(a))return j(i)(`${a} intercepted`),e[a].bind(e);if("editorCommands"===o)return j(i)("editorCommands accessed"),e;if("ui"===o)return j(i)("ui accessed"),t;const c=Reflect.get(r,o,_);return s(c)?c.bind(r):c})(u,h,g,o);return new Proxy(t,{get:m,set:(t,e,n,i)=>Reflect.set(t,e,n,i),has:(t,e)=>Reflect.has(t,e),ownKeys:t=>Reflect.ownKeys(t),getOwnPropertyDescriptor:(t,e)=>Reflect.getOwnPropertyDescriptor(t,e),defineProperty:(t,e,n)=>Reflect.defineProperty(t,e,n),deleteProperty:(t,e)=>Reflect.deleteProperty(t,e),isExtensible:t=>Reflect.isExtensible(t),preventExtensions:t=>Reflect.preventExtensions(t),getPrototypeOf:t=>Reflect.getPrototypeOf(t),setPrototypeOf:(t,e)=>Reflect.setPrototypeOf(t,e)})},U=t=>parseInt(t,10),$=(t,e)=>{const n=t-e;return 0===n?0:n>0?1:-1},F=(t,e,n)=>({major:t,minor:e,patch:n}),M=t=>{const e=/([0-9]+)\.([0-9]+)\.([0-9]+)(?:(\-.+)?)/.exec(t);return e?F(U(e[1]),U(e[2]),U(e[3])):F(0,0,0)},W=(t,e)=>!!t&&-1===((t,e)=>{const n=$(t.major,e.major);if(0!==n)return n;const i=$(t.minor,e.minor);if(0!==i)return i;const r=$(t.patch,e.patch);return 0!==r?r:0})((t=>M((t=>[t.majorVersion,t.minorVersion].join(".").split(".").slice(0,3).join("."))(t)))(t),M(e)),K=M("8.3.0"),B=`${K.major}.${K.minor}.0`,V=`${K.major+1}.0.0`,G=(t,e)=>{const{setup:n,protection:o}=e;return(_,a)=>{if(!((t,e)=>W(t,B)?(console.error(`The "${e}" plugin requires at least version ${B} of TinyMCE.`),!1):!!W(t,V)||(console.error(`The "${e}" plugin requires at least version ${B} of TinyMCE but less than ${V}.`),!1))(tinymce,t)||((t,e)=>!!(t=>{var e;const n=null===(e=t.options.get("license_key"))||void 0===e?void 0:e.toLowerCase(),r=t.options.get("online_license_key");return i(r)&&"gpl"===n})(t)&&(((t,e)=>{const{console:n,editor:i}=e;r(i)&&(t._skinLoaded?b(t,i):t.on("SkinLoaded",()=>{b(t,i)})),r(n)&&x(n)})(t,{console:{type:"error",message:[`The "${e}" plugin requires a valid TinyMCE license key.`,"Read more: https://www.tiny.cloud/docs/tinymce/latest/license-key/"].join(" ")}}),!0))(_,t))return{};const c=(t=>{const{protect:e=!0,events:n,commands:i,ui:r,api:s}=null!=t?t:{};return{protect:e,events:k(n,false),commands:k(i,true),ui:k(r,true),api:k(s,true)}})(o),p=((t="pre-validation")=>{const e=f(t),n=new Set;let i=!1;const{enableLogging:r=!1}={},s=(t,...e)=>{r&&console.log(`[StatusProvider] ${t}`,...e)};return{setStatus:t=>{const i=e.get();if(i===t)return s("Status unchanged:",t),!1;e.set(t),s("Status changed:",i,"->",t);const r={currentStatus:t,previousStatus:i},o=Array.from(n);return l(o,t=>{t(r.currentStatus,r.previousStatus)}),!0},onStatusChange:t=>(n.add(t),s("Callback registered, total listeners:",n.size),()=>{n.delete(t)&&s("Callback unregistered, remaining listeners:",n.size)}),getStatus:e.get,hasListeners:()=>n.size>0,destroy:()=>{i||(s("Destroying StatusProvider, clearing",n.size,"listeners"),n.clear(),i=!0)}}})(),u=((t,e,n)=>{const i=`commercial-license-${e}`;return t.ui.registry.addContext(i,()=>"invalid"!==n.getStatus()&&!t.mode.isReadOnly()),t.licenseKeyManager.validate({plugin:e}).then(t=>{n.setStatus(t?"valid":"invalid")},t=>{console.error(t),console.error(`An unknown error occurred when trying to validate "${e}" plugin.`),n.setStatus("invalid")}),{ui:{context:i}}})(_,t,p),h=c.protect?I(_,{statusProvider:p,uiContext:u.ui.context,debug:e.debug||!1,protection:c}):_,g=((t,e)=>({pluginCode:t,enforcer:{isInvalid:()=>"invalid"===e.getStatus(),onInvalid:t=>e.onStatusChange((e,n)=>{"invalid"===e&&t(e,n)})}}))(t,p);return((t,e,n,i)=>{if(e.protect&&e.api.protect&&r(t)){const _=T(e.api);return(o=t=>"invalid"===n.getStatus()&&_(t),(t,e)=>d(t,(t,n)=>s(t)?(...i)=>{if(o(n.toLowerCase())){const t=`Method "${r(e)?`${e}.`:""}${n}" is not available due to license key restrictions.`,i=new Error(t);throw console.error(t),i}return t(...i)}:t))(t,i)}var o;return t})(n(h,a,g),c,p,t)}};function D(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var q,H,Q={exports:{}},X={},Y={},Z={};function J(){if(H)return Y;H=1;var t=function(){if(q)return Z;function t(t,n){this.raw_options=e(t,n),this.disabled=this._get_boolean("disabled"),this.eol=this._get_characters("eol","auto"),this.end_with_newline=this._get_boolean("end_with_newline"),this.indent_size=this._get_number("indent_size",4),this.indent_char=this._get_characters("indent_char"," "),this.indent_level=this._get_number("indent_level"),this.preserve_newlines=this._get_boolean("preserve_newlines",!0),this.max_preserve_newlines=this._get_number("max_preserve_newlines",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean("indent_with_tabs","\t"===this.indent_char),this.indent_with_tabs&&(this.indent_char="\t",1===this.indent_size&&(this.indent_size=4)),this.wrap_line_length=this._get_number("wrap_line_length",this._get_number("max_char")),this.indent_empty_lines=this._get_boolean("indent_empty_lines"),this.templating=this._get_selection_list("templating",["auto","none","angular","django","erb","handlebars","php","smarty"],["auto"])}function e(t,e){var i,r={};for(i in t=n(t))i!==e&&(r[i]=t[i]);if(e&&t[e])for(i in t[e])r[i]=t[e][i];return r}function n(t){var e,n={};for(e in t)n[e.replace(/-/g,"_")]=t[e];return n}return q=1,t.prototype._get_array=function(t,e){var n=this.raw_options[t],i=e||[];return"object"==typeof n?null!==n&&"function"==typeof n.concat&&(i=n.concat()):"string"==typeof n&&(i=n.split(/[^a-zA-Z0-9_\/\-]+/)),i},t.prototype._get_boolean=function(t,e){var n=this.raw_options[t];return void 0===n?!!e:!!n},t.prototype._get_characters=function(t,e){var n=this.raw_options[t],i=e||"";return"string"==typeof n&&(i=n.replace(/\\r/,"\r").replace(/\\n/,"\n").replace(/\\t/,"\t")),i},t.prototype._get_number=function(t,e){var n=this.raw_options[t];e=parseInt(e,10),isNaN(e)&&(e=0);var i=parseInt(n,10);return isNaN(i)&&(i=e),i},t.prototype._get_selection=function(t,e,n){var i=this._get_selection_list(t,e,n);if(1!==i.length)throw new Error("Invalid Option Value: The option '"+t+"' can only be one of the following values:\n"+e+"\nYou passed in: '"+this.raw_options[t]+"'");return i[0]},t.prototype._get_selection_list=function(t,e,n){if(!e||0===e.length)throw new Error("Selection list cannot be empty.");if(n=n||[e[0]],!this._is_valid_selection(n,e))throw new Error("Invalid Default Value!");var i=this._get_array(t,n);if(!this._is_valid_selection(i,e))throw new Error("Invalid Option Value: The option '"+t+"' can contain only the following values:\n"+e+"\nYou passed in: '"+this.raw_options[t]+"'");return i},t.prototype._is_valid_selection=function(t,e){return t.length&&e.length&&!t.some(function(t){return-1===e.indexOf(t)})},Z.Options=t,Z.normalizeOpts=n,Z.mergeOpts=e,Z}().Options;function e(e){t.call(this,e,"html"),1===this.templating.length&&"auto"===this.templating[0]&&(this.templating=["django","erb","handlebars","php"]),this.indent_inner_html=this._get_boolean("indent_inner_html"),this.indent_body_inner_html=this._get_boolean("indent_body_inner_html",!0),this.indent_head_inner_html=this._get_boolean("indent_head_inner_html",!0),this.indent_handlebars=this._get_boolean("indent_handlebars",!0),this.wrap_attributes=this._get_selection("wrap_attributes",["auto","force","force-aligned","force-expand-multiline","aligned-multiple","preserve","preserve-aligned"]),this.wrap_attributes_min_attrs=this._get_number("wrap_attributes_min_attrs",2),this.wrap_attributes_indent_size=this._get_number("wrap_attributes_indent_size",this.indent_size),this.extra_liners=this._get_array("extra_liners",["head","body","/html"]),this.inline=this._get_array("inline",["a","abbr","area","audio","b","bdi","bdo","br","button","canvas","cite","code","data","datalist","del","dfn","em","embed","i","iframe","img","input","ins","kbd","keygen","label","map","mark","math","meter","noscript","object","output","progress","q","ruby","s","samp","select","small","span","strong","sub","sup","svg","template","textarea","time","u","var","video","wbr","text","acronym","big","strike","tt"]),this.inline_custom_elements=this._get_boolean("inline_custom_elements",!0),this.void_elements=this._get_array("void_elements",["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr","!doctype","?xml","basefont","isindex"]),this.unformatted=this._get_array("unformatted",[]),this.content_unformatted=this._get_array("content_unformatted",["pre","textarea"]),this.unformatted_content_delimiter=this._get_characters("unformatted_content_delimiter"),this.indent_scripts=this._get_selection("indent_scripts",["normal","keep","separate"])}return e.prototype=new t,Y.Options=e,Y}var tt,et,nt,it,rt,st,ot,_t={},at={},ct={},pt={},lt={},ut={},ht={},dt={};function gt(){if(rt)return dt;function t(t,e){this._input=t,this._starting_pattern=null,this._match_pattern=null,this._until_pattern=null,this._until_after=!1,e&&(this._starting_pattern=this._input.get_regexp(e._starting_pattern,!0),this._match_pattern=this._input.get_regexp(e._match_pattern,!0),this._until_pattern=this._input.get_regexp(e._until_pattern),this._until_after=e._until_after)}return rt=1,t.prototype.read=function(){var t=this._input.read(this._starting_pattern);return this._starting_pattern&&!t||(t+=this._input.read(this._match_pattern,this._until_pattern,this._until_after)),t},t.prototype.read_match=function(){return this._input.match(this._match_pattern)},t.prototype.until_after=function(t){var e=this._create();return e._until_after=!0,e._until_pattern=this._input.get_regexp(t),e._update(),e},t.prototype.until=function(t){var e=this._create();return e._until_after=!1,e._until_pattern=this._input.get_regexp(t),e._update(),e},t.prototype.starting_with=function(t){var e=this._create();return e._starting_pattern=this._input.get_regexp(t,!0),e._update(),e},t.prototype.matching=function(t){var e=this._create();return e._match_pattern=this._input.get_regexp(t,!0),e._update(),e},t.prototype._create=function(){return new t(this._input,this)},t.prototype._update=function(){},dt.Pattern=t,dt}function mt(){if(ot)return ct;ot=1;var t=function(){if(et)return pt;et=1;var t=RegExp.prototype.hasOwnProperty("sticky");function e(t){this.__input=t||"",this.__input_length=this.__input.length,this.__position=0}return e.prototype.restart=function(){this.__position=0},e.prototype.back=function(){this.__position>0&&(this.__position-=1)},e.prototype.hasNext=function(){return this.__position=0&&t=0&&e=t.length&&this.__input.substring(e-t.length,e).toLowerCase()===t},pt.InputScanner=e,pt}().InputScanner,e=(nt||(nt=1,lt.Token=function(t,e,n,i){this.type=t,this.text=e,this.comments_before=null,this.newlines=n||0,this.whitespace_before=i||"",this.parent=null,this.next=null,this.previous=null,this.opened=null,this.closed=null,this.directives=null}),lt).Token,n=function(){if(it)return ut;function t(t){this.__tokens=[],this.__tokens_length=this.__tokens.length,this.__position=0,this.__parent_token=t}return it=1,t.prototype.restart=function(){this.__position=0},t.prototype.isEmpty=function(){return 0===this.__tokens_length},t.prototype.hasNext=function(){return this.__position=0&&t/),erb:r.starting_with(/<%[^%]/).until_after(/[^%]%>/),django:r.starting_with(/{%/).until_after(/%}/),django_value:r.starting_with(/{{/).until_after(/}}/),django_comment:r.starting_with(/{#/).until_after(/#}/),smarty:r.starting_with(/{(?=[^}{\s\n])/).until_after(/[^\s\n]}/),smarty_comment:r.starting_with(/{\*/).until_after(/\*}/),smarty_literal:r.starting_with(/{literal}/).until_after(/{\/literal}/)}}return n.prototype=new t,n.prototype._create=function(){return new n(this._input,this)},n.prototype._update=function(){this.__set_templated_pattern()},n.prototype.disable=function(t){var e=this._create();return e._disabled[t]=!0,e._update(),e},n.prototype.read_options=function(t){var n=this._create();for(var i in e)n._disabled[i]=-1===t.templating.indexOf(i);return n._update(),n},n.prototype.exclude=function(t){var e=this._create();return e._excluded[t]=!0,e._update(),e},n.prototype.read=function(){var t="";t=this._match_pattern?this._input.read(this._starting_pattern):this._input.read(this._starting_pattern,this.__template_pattern);for(var e=this._read_template();e;)this._match_pattern?e+=this._input.read(this._match_pattern):e+=this._input.readUntil(this.__template_pattern),t+=e,e=this._read_template();return this._until_after&&(t+=this._input.readUntilAfter(this._until_pattern)),t},n.prototype.__set_templated_pattern=function(){var t=[];this._disabled.php||t.push(this.__patterns.php._starting_pattern.source),this._disabled.handlebars||t.push(this.__patterns.handlebars._starting_pattern.source),this._disabled.erb||t.push(this.__patterns.erb._starting_pattern.source),this._disabled.django||(t.push(this.__patterns.django._starting_pattern.source),t.push(this.__patterns.django_value._starting_pattern.source),t.push(this.__patterns.django_comment._starting_pattern.source)),this._disabled.smarty||t.push(this.__patterns.smarty._starting_pattern.source),this._until_pattern&&t.push(this._until_pattern.source),this.__template_pattern=this._input.get_regexp("(?:"+t.join("|")+")")},n.prototype._read_template=function(){var t="",e=this._input.peek();if("<"===e){var n=this._input.peek(1);this._disabled.php||this._excluded.php||"?"!==n||(t=t||this.__patterns.php.read()),this._disabled.erb||this._excluded.erb||"%"!==n||(t=t||this.__patterns.erb.read())}else"{"===e&&(this._disabled.handlebars||this._excluded.handlebars||(t=(t=(t=t||this.__patterns.handlebars_comment.read())||this.__patterns.handlebars_unescaped.read())||this.__patterns.handlebars.read()),this._disabled.django||(this._excluded.django||this._excluded.handlebars||(t=t||this.__patterns.django_value.read()),this._excluded.django||(t=(t=t||this.__patterns.django_comment.read())||this.__patterns.django.read())),this._disabled.smarty||this._disabled.django&&this._disabled.handlebars&&(t=(t=(t=t||this.__patterns.smarty_comment.read())||this.__patterns.smarty_literal.read())||this.__patterns.smarty.read()));return t},kt.TemplatablePattern=n,kt}().TemplatablePattern,r=gt().Pattern,s={TAG_OPEN:"TK_TAG_OPEN",TAG_CLOSE:"TK_TAG_CLOSE",CONTROL_FLOW_OPEN:"TK_CONTROL_FLOW_OPEN",CONTROL_FLOW_CLOSE:"TK_CONTROL_FLOW_CLOSE",ATTRIBUTE:"TK_ATTRIBUTE",EQUALS:"TK_EQUALS",VALUE:"TK_VALUE",COMMENT:"TK_COMMENT",TEXT:"TK_TEXT",UNKNOWN:"TK_UNKNOWN",START:e.START,RAW:e.RAW,EOF:e.EOF},o=new n(/<\!--/,/-->/),_=function(e,n){t.call(this,e,n),this._current_tag_name="";var s=new i(this._input).read_options(this._options),o=new r(this._input);if(this.__patterns={word:s.until(/[\n\r\t <]/),word_control_flow_close_excluded:s.until(/[\n\r\t <}]/),single_quote:s.until_after(/'/),double_quote:s.until_after(/"/),attribute:s.until(/[\n\r\t =>]|\/>/),element_name:s.until(/[\n\r\t >\/]/),angular_control_flow_start:o.matching(/\@[a-zA-Z]+[^({]*[({]/),handlebars_comment:o.starting_with(/{{!--/).until_after(/--}}/),handlebars:o.starting_with(/{{/).until_after(/}}/),handlebars_open:o.until(/[\n\r\t }]/),handlebars_raw_close:o.until(/}}/),comment:o.starting_with(//),cdata:o.starting_with(//),conditional_comment:o.starting_with(//),processing:o.starting_with(/<\?/).until_after(/\?>/)},this._options.indent_handlebars&&(this.__patterns.word=this.__patterns.word.exclude("handlebars"),this.__patterns.word_control_flow_close_excluded=this.__patterns.word_control_flow_close_excluded.exclude("handlebars")),this._unformatted_content_delimiter=null,this._options.unformatted_content_delimiter){var _=this._input.get_literal_regexp(this._options.unformatted_content_delimiter);this.__patterns.unformatted_content_delimiter=o.matching(_).until_after(_)}};return(_.prototype=new t)._is_comment=function(t){return!1},_.prototype._is_opening=function(t){return t.type===s.TAG_OPEN||t.type===s.CONTROL_FLOW_OPEN},_.prototype._is_closing=function(t,e){return t.type===s.TAG_CLOSE&&e&&((">"===t.text||"/>"===t.text)&&"<"===e.text[0]||"}}"===t.text&&"{"===e.text[0]&&"{"===e.text[1])||t.type===s.CONTROL_FLOW_CLOSE&&"}"===t.text&&e.text.endsWith("{")},_.prototype._reset=function(){this._current_tag_name=""},_.prototype._get_next_token=function(t,e){var n=null;this._readWhitespace();var i=this._input.peek();return null===i?this._create_token(s.EOF,""):n=(n=(n=(n=(n=(n=(n=(n=(n=(n=n||this._read_open_handlebars(i,e))||this._read_attribute(i,t,e))||this._read_close(i,e))||this._read_control_flows(i,e))||this._read_raw_content(i,t,e))||this._read_content_word(i,e))||this._read_comment_or_cdata(i))||this._read_processing(i))||this._read_open(i,e))||this._create_token(s.UNKNOWN,this._input.next())},_.prototype._read_comment_or_cdata=function(t){var e=null,n=null,i=null;return"<"===t&&("!"===this._input.peek(1)&&((n=this.__patterns.comment.read())?(i=o.get_directives(n))&&"start"===i.ignore&&(n+=o.readIgnored(this._input)):n=this.__patterns.cdata.read()),n&&((e=this._create_token(s.COMMENT,n)).directives=i)),e},_.prototype._read_processing=function(t){var e=null,n=null;if("<"===t){var i=this._input.peek(1);"!"!==i&&"?"!==i||(n=(n=this.__patterns.conditional_comment.read())||this.__patterns.processing.read()),n&&((e=this._create_token(s.COMMENT,n)).directives=null)}return e},_.prototype._read_open=function(t,e){var n=null,i=null;return e&&e.type!==s.CONTROL_FLOW_OPEN||"<"===t&&(n=this._input.next(),"/"===this._input.peek()&&(n+=this._input.next()),n+=this.__patterns.element_name.read(),i=this._create_token(s.TAG_OPEN,n)),i},_.prototype._read_open_handlebars=function(t,e){var n=null,i=null;return e&&e.type!==s.CONTROL_FLOW_OPEN||this._options.indent_handlebars&&"{"===t&&"{"===this._input.peek(1)&&("!"===this._input.peek(2)?(n=(n=this.__patterns.handlebars_comment.read())||this.__patterns.handlebars.read(),i=this._create_token(s.COMMENT,n)):(n=this.__patterns.handlebars_open.read(),i=this._create_token(s.TAG_OPEN,n))),i},_.prototype._read_control_flows=function(t,e){var n="",i=null;if(!this._options.templating.includes("angular")||!this._options.indent_handlebars)return i;if("@"===t){if(""===(n=this.__patterns.angular_control_flow_start.read()))return i;for(var r=n.endsWith("(")?1:0,o=0;!n.endsWith("{")||r!==o;){var _=this._input.next();if(null===_)break;"("===_?r++:")"===_&&o++,n+=_}i=this._create_token(s.CONTROL_FLOW_OPEN,n)}else"}"===t&&e&&e.type===s.CONTROL_FLOW_OPEN&&(n=this._input.next(),i=this._create_token(s.CONTROL_FLOW_CLOSE,n));return i},_.prototype._read_close=function(t,e){var n=null,i=null;return e&&e.type===s.TAG_OPEN&&("<"===e.text[0]&&(">"===t||"/"===t&&">"===this._input.peek(1))?(n=this._input.next(),"/"===t&&(n+=this._input.next()),i=this._create_token(s.TAG_CLOSE,n)):"{"===e.text[0]&&"}"===t&&"}"===this._input.peek(1)&&(this._input.next(),this._input.next(),i=this._create_token(s.TAG_CLOSE,"}}"))),i},_.prototype._read_attribute=function(t,e,n){var i=null,r="";if(n&&"<"===n.text[0])if("="===t)i=this._create_token(s.EQUALS,this._input.next());else if('"'===t||"'"===t){var o=this._input.next();o+='"'===t?this.__patterns.double_quote.read():this.__patterns.single_quote.read(),i=this._create_token(s.VALUE,o)}else(r=this.__patterns.attribute.read())&&(i=e.type===s.EQUALS?this._create_token(s.VALUE,r):this._create_token(s.ATTRIBUTE,r));return i},_.prototype._is_content_unformatted=function(t){return-1===this._options.void_elements.indexOf(t)&&(-1!==this._options.content_unformatted.indexOf(t)||-1!==this._options.unformatted.indexOf(t))},_.prototype._read_raw_content=function(t,e,n){var i="";if(n&&"{"===n.text[0])i=this.__patterns.handlebars_raw_close.read();else if(e.type===s.TAG_CLOSE&&"<"===e.opened.text[0]&&"/"!==e.text[0]){var r=e.opened.text.substr(1).toLowerCase();if("script"===r||"style"===r){var o=this._read_comment_or_cdata(t);if(o)return o.type=s.TEXT,o;i=this._input.readUntil(new RegExp("","ig"))}else this._is_content_unformatted(r)&&(i=this._input.readUntil(new RegExp("","ig")))}return i?this._create_token(s.TEXT,i):null},_.prototype._read_content_word=function(t,e){var n="";if(this._options.unformatted_content_delimiter&&t===this._options.unformatted_content_delimiter[0]&&(n=this.__patterns.unformatted_content_delimiter.read()),n||(n=e&&e.type===s.CONTROL_FLOW_OPEN?this.__patterns.word_control_flow_close_excluded.read():this.__patterns.word.read()),n)return this._create_token(s.TEXT,n)},at.Tokenizer=_,at.TOKEN=s,at}function Ot(){if(vt)return X;vt=1;var t=J().Options,e=function(){if(tt)return _t;function t(t){this.__parent=t,this.__character_count=0,this.__indent_count=-1,this.__alignment_count=0,this.__wrap_point_index=0,this.__wrap_point_character_count=0,this.__wrap_point_indent_count=-1,this.__wrap_point_alignment_count=0,this.__items=[]}function e(t,e){this.__cache=[""],this.__indent_size=t.indent_size,this.__indent_string=t.indent_char,t.indent_with_tabs||(this.__indent_string=new Array(t.indent_size+1).join(t.indent_char)),e=e||"",t.indent_level>0&&(e=new Array(t.indent_level+1).join(this.__indent_string)),this.__base_string=e,this.__base_string_length=e.length}function n(n,i){this.__indent_cache=new e(n,i),this.raw=!1,this._end_with_newline=n.end_with_newline,this.indent_size=n.indent_size,this.wrap_line_length=n.wrap_line_length,this.indent_empty_lines=n.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new t(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}return tt=1,t.prototype.clone_empty=function(){var e=new t(this.__parent);return e.set_indent(this.__indent_count,this.__alignment_count),e},t.prototype.item=function(t){return t<0?this.__items[this.__items.length+t]:this.__items[t]},t.prototype.has_match=function(t){for(var e=this.__items.length-1;e>=0;e--)if(this.__items[e].match(t))return!0;return!1},t.prototype.set_indent=function(t,e){this.is_empty()&&(this.__indent_count=t||0,this.__alignment_count=e||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},t.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},t.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},t.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var t=this.__parent.current_line;return t.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),t.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),t.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count," "===t.__items[0]&&(t.__items.splice(0,1),t.__character_count-=1),!0}return!1},t.prototype.is_empty=function(){return 0===this.__items.length},t.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},t.prototype.push=function(t){this.__items.push(t);var e=t.lastIndexOf("\n");-1!==e?this.__character_count=t.length-e:this.__character_count+=t.length},t.prototype.pop=function(){var t=null;return this.is_empty()||(t=this.__items.pop(),this.__character_count-=t.length),t},t.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},t.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},t.prototype.trim=function(){for(;" "===this.last();)this.__items.pop(),this.__character_count-=1},t.prototype.toString=function(){var t="";return this.is_empty()?this.__parent.indent_empty_lines&&(t=this.__parent.get_indent_string(this.__indent_count)):(t=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),t+=this.__items.join("")),t},e.prototype.get_indent_size=function(t,e){var n=this.__base_string_length;return e=e||0,t<0&&(n=0),(n+=t*this.__indent_size)+e},e.prototype.get_indent_string=function(t,e){var n=this.__base_string;return e=e||0,t<0&&(t=0,n=""),e+=t*this.__indent_size,this.__ensure_cache(e),n+this.__cache[e]},e.prototype.__ensure_cache=function(t){for(;t>=this.__cache.length;)this.__add_column()},e.prototype.__add_column=function(){var t=this.__cache.length,e=0,n="";this.__indent_size&&t>=this.__indent_size&&(t-=(e=Math.floor(t/this.__indent_size))*this.__indent_size,n=new Array(e+1).join(this.__indent_string)),t&&(n+=new Array(t+1).join(" ")),this.__cache.push(n)},n.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},n.prototype.get_line_number=function(){return this.__lines.length},n.prototype.get_indent_string=function(t,e){return this.__indent_cache.get_indent_string(t,e)},n.prototype.get_indent_size=function(t,e){return this.__indent_cache.get_indent_size(t,e)},n.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},n.prototype.add_new_line=function(t){return!(this.is_empty()||!t&&this.just_added_newline()||(this.raw||this.__add_outputline(),0))},n.prototype.get_code=function(t){this.trim(!0);var e=this.current_line.pop();e&&("\n"===e[e.length-1]&&(e=e.replace(/\n+$/g,"")),this.current_line.push(e)),this._end_with_newline&&this.__add_outputline();var n=this.__lines.join("\n");return"\n"!==t&&(n=n.replace(/[\n]/g,t)),n},n.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},n.prototype.set_indent=function(t,e){return t=t||0,e=e||0,this.next_line.set_indent(t,e),this.__lines.length>1?(this.current_line.set_indent(t,e),!0):(this.current_line.set_indent(),!1)},n.prototype.add_raw_token=function(t){for(var e=0;e1&&this.current_line.is_empty();)this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},n.prototype.just_added_newline=function(){return this.current_line.is_empty()},n.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},n.prototype.ensure_empty_line_above=function(e,n){for(var i=this.__lines.length-2;i>=0;){var r=this.__lines[i];if(r.is_empty())break;if(0!==r.item(0).indexOf(e)&&r.item(-1)!==n){this.__lines.splice(i+1,0,new t(this)),this.previous_line=this.__lines[this.__lines.length-2];break}i--}},_t.Output=n,_t}().Output,n=Tt().Tokenizer,i=Tt().TOKEN,r=/\r\n|[\r\n]/,s=/\r\n|[\r\n]/g,o=function(t,n){this.indent_level=0,this.alignment_size=0,this.max_preserve_newlines=t.max_preserve_newlines,this.preserve_newlines=t.preserve_newlines,this._output=new e(t,n)};o.prototype.current_line_has_match=function(t){return this._output.current_line.has_match(t)},o.prototype.set_space_before_token=function(t,e){this._output.space_before_token=t,this._output.non_breaking_space=e},o.prototype.set_wrap_point=function(){this._output.set_indent(this.indent_level,this.alignment_size),this._output.set_wrap_point()},o.prototype.add_raw_token=function(t){this._output.add_raw_token(t)},o.prototype.print_preserved_newlines=function(t){var e=0;t.type!==i.TEXT&&t.previous.type!==i.TEXT&&(e=t.newlines?1:0),this.preserve_newlines&&(e=t.newlines0);return 0!==e},o.prototype.traverse_whitespace=function(t){return!(!t.whitespace_before&&!t.newlines||(this.print_preserved_newlines(t)||(this._output.space_before_token=!0),0))},o.prototype.previous_token_wrapped=function(){return this._output.previous_token_wrapped},o.prototype.print_newline=function(t){this._output.add_new_line(t)},o.prototype.print_token=function(t){t.text&&(this._output.set_indent(this.indent_level,this.alignment_size),this._output.add_token(t.text))},o.prototype.indent=function(){this.indent_level++},o.prototype.deindent=function(){this.indent_level>0&&(this.indent_level--,this._output.set_indent(this.indent_level,this.alignment_size))},o.prototype.get_full_indent=function(t){return(t=this.indent_level+(t||0))<1?"":this._output.get_indent_string(t)};function _(t,e){return-1!==e.indexOf(t)}function a(t,e,n){this.parent=t||null,this.tag=e?e.tag_name:"",this.indent_level=n||0,this.parser_token=e||null}function c(t){this._printer=t,this._current_frame=null}function p(e,n,i,r){this._source_text=e||"",n=n||{},this._js_beautify=i,this._css_beautify=r,this._tag_stack=null;var s=new t(n,"html");this._options=s,this._is_wrap_attributes_force="force"===this._options.wrap_attributes.substr(0,5),this._is_wrap_attributes_force_expand_multiline="force-expand-multiline"===this._options.wrap_attributes,this._is_wrap_attributes_force_aligned="force-aligned"===this._options.wrap_attributes,this._is_wrap_attributes_aligned_multiple="aligned-multiple"===this._options.wrap_attributes,this._is_wrap_attributes_preserve="preserve"===this._options.wrap_attributes.substr(0,8),this._is_wrap_attributes_preserve_aligned="preserve-aligned"===this._options.wrap_attributes}c.prototype.get_parser_token=function(){return this._current_frame?this._current_frame.parser_token:null},c.prototype.record_tag=function(t){var e=new a(this._current_frame,t,this._printer.indent_level);this._current_frame=e},c.prototype._try_pop_frame=function(t){var e=null;return t&&(e=t.parser_token,this._printer.indent_level=t.indent_level,this._current_frame=t.parent),e},c.prototype._get_frame=function(t,e){for(var n=this._current_frame;n&&-1===t.indexOf(n.tag);){if(e&&-1!==e.indexOf(n.tag)){n=null;break}n=n.parent}return n},c.prototype.try_pop=function(t,e){var n=this._get_frame([t],e);return this._try_pop_frame(n)},c.prototype.indent_to_tag=function(t){var e=this._get_frame(t);e&&(this._printer.indent_level=e.indent_level)},p.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var t=this._source_text,e=this._options.eol;"auto"===this._options.eol&&(e="\n",t&&r.test(t)&&(e=t.match(r)[0]));var _=(t=t.replace(s,"\n")).match(/^[\t ]*/)[0],a={text:"",type:""},p=new l,u=new o(this._options,_),h=new n(t,this._options).tokenize();this._tag_stack=new c(u);for(var d=null,g=h.next();g.type!==i.EOF;)g.type===i.TAG_OPEN||g.type===i.COMMENT?p=d=this._handle_tag_open(u,g,p,a,h):g.type===i.ATTRIBUTE||g.type===i.EQUALS||g.type===i.VALUE||g.type===i.TEXT&&!p.tag_complete?d=this._handle_inside_tag(u,g,p,a):g.type===i.TAG_CLOSE?d=this._handle_tag_close(u,g,p):g.type===i.TEXT?d=this._handle_text(u,g,p):g.type===i.CONTROL_FLOW_OPEN?d=this._handle_control_flow_open(u,g):g.type===i.CONTROL_FLOW_CLOSE?d=this._handle_control_flow_close(u,g):u.add_raw_token(g),a=d,g=h.next();return u._output.get_code(e)},p.prototype._handle_control_flow_open=function(t,e){var n={text:e.text,type:e.type};return t.set_space_before_token(e.newlines||""!==e.whitespace_before,!0),e.newlines?t.print_preserved_newlines(e):t.set_space_before_token(e.newlines||""!==e.whitespace_before,!0),t.print_token(e),t.indent(),n},p.prototype._handle_control_flow_close=function(t,e){var n={text:e.text,type:e.type};return t.deindent(),e.newlines?t.print_preserved_newlines(e):t.set_space_before_token(e.newlines||""!==e.whitespace_before,!0),t.print_token(e),n},p.prototype._handle_tag_close=function(t,e,n){var i={text:e.text,type:e.type};return t.alignment_size=0,n.tag_complete=!0,t.set_space_before_token(e.newlines||""!==e.whitespace_before,!0),n.is_unformatted?t.add_raw_token(e):("<"===n.tag_start_char&&(t.set_space_before_token("/"===e.text[0],!0),this._is_wrap_attributes_force_expand_multiline&&n.has_wrapped_attrs&&t.print_newline(!1)),t.print_token(e)),!n.indent_content||n.is_unformatted||n.is_content_unformatted||(t.indent(),n.indent_content=!1),n.is_inline_element||n.is_unformatted||n.is_content_unformatted||t.set_wrap_point(),i},p.prototype._handle_inside_tag=function(t,e,n,r){var s=n.has_wrapped_attrs,o={text:e.text,type:e.type};return t.set_space_before_token(e.newlines||""!==e.whitespace_before,!0),n.is_unformatted?t.add_raw_token(e):"{"===n.tag_start_char&&e.type===i.TEXT?t.print_preserved_newlines(e)?(e.newlines=0,t.add_raw_token(e)):t.print_token(e):(e.type===i.ATTRIBUTE?t.set_space_before_token(!0):(e.type===i.EQUALS||e.type===i.VALUE&&e.previous.type===i.EQUALS)&&t.set_space_before_token(!1),e.type===i.ATTRIBUTE&&"<"===n.tag_start_char&&((this._is_wrap_attributes_preserve||this._is_wrap_attributes_preserve_aligned)&&(t.traverse_whitespace(e),s=s||0!==e.newlines),this._is_wrap_attributes_force&&n.attr_count>=this._options.wrap_attributes_min_attrs&&(r.type!==i.TAG_OPEN||this._is_wrap_attributes_force_expand_multiline)&&(t.print_newline(!1),s=!0)),t.print_token(e),s=s||t.previous_token_wrapped(),n.has_wrapped_attrs=s),o},p.prototype._handle_text=function(t,e,n){var i={text:e.text,type:"TK_CONTENT"};return n.custom_beautifier_name?this._print_custom_beatifier_text(t,e,n):n.is_unformatted||n.is_content_unformatted?t.add_raw_token(e):(t.traverse_whitespace(e),t.print_token(e)),i},p.prototype._print_custom_beatifier_text=function(t,e,n){var i=this;if(""!==e.text){var r,s=e.text,o=1,_="",a="";"javascript"===n.custom_beautifier_name&&"function"==typeof this._js_beautify?r=this._js_beautify:"css"===n.custom_beautifier_name&&"function"==typeof this._css_beautify?r=this._css_beautify:"html"===n.custom_beautifier_name&&(r=function(t,e){return new p(t,e,i._js_beautify,i._css_beautify).beautify()}),"keep"===this._options.indent_scripts?o=0:"separate"===this._options.indent_scripts&&(o=-t.indent_level);var c=t.get_full_indent(o);if(s=s.replace(/\n[ \t]*$/,""),"html"!==n.custom_beautifier_name&&"<"===s[0]&&s.match(/^(|]]>)$/.exec(s);if(!l)return void t.add_raw_token(e);_=c+l[1]+"\n",s=l[4],l[5]&&(a=c+l[5]),s=s.replace(/\n[ \t]*$/,""),(l[2]||-1!==l[3].indexOf("\n"))&&(l=l[3].match(/[ \t]+$/))&&(e.whitespace_before=l[0])}if(s)if(r){var u=function(){this.eol="\n"};u.prototype=this._options.raw_options,s=r(c+s,new u)}else{var h=e.whitespace_before;h&&(s=s.replace(new RegExp("\n("+h+")?","g"),"\n")),s=c+s.replace(/\n/g,"\n"+c)}_&&(s=s?_+s+"\n"+a:_+a),t.print_newline(!1),s&&(e.text=s,e.whitespace_before="",e.newlines=0,t.add_raw_token(e),t.print_newline(!0))}},p.prototype._handle_tag_open=function(t,e,n,r,s){var o=this._get_tag_open_token(e);if(!n.is_unformatted&&!n.is_content_unformatted||n.is_empty_element||e.type!==i.TAG_OPEN||o.is_start_tag?(t.traverse_whitespace(e),this._set_tag_position(t,e,o,n,r),o.is_inline_element||t.set_wrap_point(),t.print_token(e)):(t.add_raw_token(e),o.start_tag_token=this._tag_stack.try_pop(o.tag_name)),o.is_start_tag&&this._is_wrap_attributes_force){var _,a=0;do{(_=s.peek(a)).type===i.ATTRIBUTE&&(o.attr_count+=1),a+=1}while(_.type!==i.EOF&&_.type!==i.TAG_CLOSE)}return(this._is_wrap_attributes_force_aligned||this._is_wrap_attributes_aligned_multiple||this._is_wrap_attributes_preserve_aligned)&&(o.alignment_size=e.text.length+1),o.tag_complete||o.is_unformatted||(t.alignment_size=o.alignment_size),o};var l=function(t,e){if(this.parent=t||null,this.text="",this.type="TK_TAG_OPEN",this.tag_name="",this.is_inline_element=!1,this.is_unformatted=!1,this.is_content_unformatted=!1,this.is_empty_element=!1,this.is_start_tag=!1,this.is_end_tag=!1,this.indent_content=!1,this.multiline_content=!1,this.custom_beautifier_name=null,this.start_tag_token=null,this.attr_count=0,this.has_wrapped_attrs=!1,this.alignment_size=0,this.tag_complete=!1,this.tag_start_char="",this.tag_check="",e){var n;this.tag_start_char=e.text[0],this.text=e.text,"<"===this.tag_start_char?(n=e.text.match(/^<([^\s>]*)/),this.tag_check=n?n[1]:""):(n=e.text.match(/^{{~?(?:[\^]|#\*?)?([^\s}]+)/),this.tag_check=n?n[1]:"",(e.text.startsWith("{{#>")||e.text.startsWith("{{~#>"))&&">"===this.tag_check[0]&&(">"===this.tag_check&&null!==e.next?this.tag_check=e.next.text.split(" ")[0]:this.tag_check=e.text.split(">")[1])),this.tag_check=this.tag_check.toLowerCase(),e.type===i.COMMENT&&(this.tag_complete=!0),this.is_start_tag="/"!==this.tag_check.charAt(0),this.tag_name=this.is_start_tag?this.tag_check:this.tag_check.substr(1),this.is_end_tag=!this.is_start_tag||e.closed&&"/>"===e.closed.text;var r=2;"{"===this.tag_start_char&&this.text.length>=3&&"~"===this.text.charAt(2)&&(r=3),this.is_end_tag=this.is_end_tag||"{"===this.tag_start_char&&(this.text.length<3||/[^#\^]/.test(this.text.charAt(r)))}else this.tag_complete=!0};p.prototype._get_tag_open_token=function(t){var e=new l(this._tag_stack.get_parser_token(),t);return e.alignment_size=this._options.wrap_attributes_indent_size,e.is_end_tag=e.is_end_tag||_(e.tag_check,this._options.void_elements),e.is_empty_element=e.tag_complete||e.is_start_tag&&e.is_end_tag,e.is_unformatted=!e.tag_complete&&_(e.tag_check,this._options.unformatted),e.is_content_unformatted=!e.is_empty_element&&_(e.tag_check,this._options.content_unformatted),e.is_inline_element=_(e.tag_name,this._options.inline)||this._options.inline_custom_elements&&e.tag_name.includes("-")||"{"===e.tag_start_char,e},p.prototype._set_tag_position=function(t,e,n,r,s){if(n.is_empty_element||(n.is_end_tag?n.start_tag_token=this._tag_stack.try_pop(n.tag_name):(this._do_optional_end_element(n)&&(n.is_inline_element||t.print_newline(!1)),this._tag_stack.record_tag(n),"script"!==n.tag_name&&"style"!==n.tag_name||n.is_unformatted||n.is_content_unformatted||(n.custom_beautifier_name=function(t,e){var n=null,r=null;return e.closed?("script"===t?n="text/javascript":"style"===t&&(n="text/css"),n=function(t){for(var e=null,n=t.next;n.type!==i.EOF&&t.closed!==n;){if(n.type===i.ATTRIBUTE&&"type"===n.text){n.next&&n.next.type===i.EQUALS&&n.next.next&&n.next.next.type===i.VALUE&&(e=n.next.next.text);break}n=n.next}return e}(e)||n,n.search("text/css")>-1?r="css":n.search(/module|((text|application|dojo)\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\+)?json|method|aspect))/)>-1?r="javascript":n.search(/(text|application|dojo)\/(x-)?(html)/)>-1?r="html":n.search(/test\/null/)>-1&&(r="null"),r):null}(n.tag_check,e)))),_(n.tag_check,this._options.extra_liners)&&(t.print_newline(!1),t._output.just_added_blankline()||t.print_newline(!0)),n.is_empty_element)"{"===n.tag_start_char&&"else"===n.tag_check&&(this._tag_stack.indent_to_tag(["if","unless","each"]),n.indent_content=!0,t.current_line_has_match(/{{#if/)||t.print_newline(!1)),"!--"===n.tag_name&&s.type===i.TAG_CLOSE&&r.is_end_tag&&-1===n.text.indexOf("\n")||(n.is_inline_element||n.is_unformatted||t.print_newline(!1),this._calcluate_parent_multiline(t,n));else if(n.is_end_tag){var o=!1;o=(o=n.start_tag_token&&n.start_tag_token.multiline_content)||!n.is_inline_element&&!(r.is_inline_element||r.is_unformatted)&&!(s.type===i.TAG_CLOSE&&n.start_tag_token===r)&&"TK_CONTENT"!==s.type,(n.is_content_unformatted||n.is_unformatted)&&(o=!1),o&&t.print_newline(!1)}else n.indent_content=!n.custom_beautifier_name,"<"===n.tag_start_char&&("html"===n.tag_name?n.indent_content=this._options.indent_inner_html:"head"===n.tag_name?n.indent_content=this._options.indent_head_inner_html:"body"===n.tag_name&&(n.indent_content=this._options.indent_body_inner_html)),n.is_inline_element||n.is_unformatted||"TK_CONTENT"===s.type&&!n.is_content_unformatted||t.print_newline(!1),this._calcluate_parent_multiline(t,n)},p.prototype._calcluate_parent_multiline=function(t,e){!e.parent||!t._output.just_added_newline()||(e.is_inline_element||e.is_unformatted)&&e.parent.is_inline_element||(e.parent.multiline_content=!0)};var u=["address","article","aside","blockquote","details","div","dl","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hr","main","menu","nav","ol","p","pre","section","table","ul"],h=["a","audio","del","ins","map","noscript","video"];return p.prototype._do_optional_end_element=function(t){var e=null;if(!t.is_empty_element&&t.is_start_tag&&t.parent){if("body"===t.tag_name)e=e||this._tag_stack.try_pop("head");else if("li"===t.tag_name)e=e||this._tag_stack.try_pop("li",["ol","ul","menu"]);else if("dd"===t.tag_name||"dt"===t.tag_name)e=(e=e||this._tag_stack.try_pop("dt",["dl"]))||this._tag_stack.try_pop("dd",["dl"]);else if("p"===t.parent.tag_name&&-1!==u.indexOf(t.tag_name)){var n=t.parent.parent;n&&-1!==h.indexOf(n.tag_name)||(e=e||this._tag_stack.try_pop("p"))}else"rp"===t.tag_name||"rt"===t.tag_name?e=(e=e||this._tag_stack.try_pop("rt",["ruby","rtc"]))||this._tag_stack.try_pop("rp",["ruby","rtc"]):"optgroup"===t.tag_name?e=e||this._tag_stack.try_pop("optgroup",["select"]):"option"===t.tag_name?e=e||this._tag_stack.try_pop("option",["select","datalist","optgroup"]):"colgroup"===t.tag_name?e=e||this._tag_stack.try_pop("caption",["table"]):"thead"===t.tag_name?e=(e=e||this._tag_stack.try_pop("caption",["table"]))||this._tag_stack.try_pop("colgroup",["table"]):"tbody"===t.tag_name||"tfoot"===t.tag_name?e=(e=(e=(e=e||this._tag_stack.try_pop("caption",["table"]))||this._tag_stack.try_pop("colgroup",["table"]))||this._tag_stack.try_pop("thead",["table"]))||this._tag_stack.try_pop("tbody",["table"]):"tr"===t.tag_name?e=(e=(e=e||this._tag_stack.try_pop("caption",["table"]))||this._tag_stack.try_pop("colgroup",["table"]))||this._tag_stack.try_pop("tr",["table","thead","tbody","tfoot"]):"th"!==t.tag_name&&"td"!==t.tag_name||(e=(e=e||this._tag_stack.try_pop("td",["table","thead","tbody","tfoot","tr"]))||this._tag_stack.try_pop("th",["table","thead","tbody","tfoot","tr"]));return t.parent=this._tag_stack.get_parser_token(),e}},X.Beautifier=p,X}var Ct=function(){if(bt)return Q.exports;bt=1;var t=Ot().Beautifier,e=J().Options;return Q.exports=function(e,n,i,r){return new t(e,n,i,r).beautify()},Q.exports.defaultOptions=function(){return new e},Q.exports}(),Et=D(Ct);const St=t=>e=>e.options.get(t),At=St("codemirror_script"),Lt=St("codemirror_linewrapping"),Nt=St("codemirror_linenumbers"),Rt=St("codemirror_foldgutter"),zt=St("codemirror_gutter"),Pt=St("advcode_headless"),jt=St("advcode_inline"),It=St("advcode_prettify_editor"),Ut=St("advcode_prettify_getcontent"),$t=(t,e,n)=>({customEditorScriptUrl:e+"/customeditor.min.js",codeMirrorScriptUrl:At(t),lineWrapping:Lt(t),lineNumbers:Nt(t),foldGutter:Rt(t),gutter:zt(t),editorId:t.id,advcodeInstanceId:w("advcode_instance"),currentAdvStatus:n}),Ft=t=>{if(null==t)throw new Error("Node cannot be null or undefined");return{dom:t}},Mt=(t,e)=>{const n=(e||document).createElement("div");if(n.innerHTML=t,!n.hasChildNodes()||n.childNodes.length>1){const e="HTML does not have a single root node";throw console.error(e,t),new Error(e)}return Ft(n.childNodes[0])},Wt=(t,e)=>{const n=(e||document).createElement(t);return Ft(n)},Kt=Ft,Bt=t=>{const e=t.dom;null!==e.parentNode&&e.parentNode.removeChild(e)},Vt=(t,e,n)=>{let i=t.dom;const r=s(n)?n:a;for(;i.parentNode;){i=i.parentNode;const t=Kt(i);if(e(t))return c.some(t);if(r(t))break}return c.none()},Gt=(t,i)=>((t,i,r)=>{const s=((t,e)=>{const n=((t,e)=>{const n=t.dom.getAttribute(e);return null===n?void 0:n})(t,e);return void 0===n||""===n?[]:n.split(" ")})(t,i);return((t,i,r)=>{((t,i,r)=>{if(!(e(r)||n(r)||o(r)))throw console.error("Invalid call to Attribute.set. Key ",i,":: Value ",r,":: Element ",t),new Error("Attribute value was not simple");t.setAttribute(i,r+"")})(t.dom,i,r)})(t,i,s.concat([r]).join(" ")),!0})(t,"class",i),Dt="\x3c!--mce_cursor--\x3e",qt=(t,e)=>{const n=t.dom,i=t.selection,r=i.getBookmark(),o=(t=>m(t,"name"))(r)?n.select(r.name)[r.index]:n.select(`#${r.id}_start`)[0],_=c.from(o).map(e=>{const n=Kt(t.getBody());return(t=>{const e=Mt(Dt),i=Kt(t),r=((t,e,n)=>((t,e,n,i,r)=>i(n)?c.some(n):s(r)&&r(n)?c.none():e(n,i,r))(0,Vt,t,e,n))(i,t=>(t=>{const e=t.dom;return!(!e||!e.hasAttribute)&&e.hasAttribute("data-mce-bogus")})(t),t=>{return e=n,t.dom===e.dom;var e}).getOr(i);return((t,e)=>{const n=(t=>c.from(t.dom.parentNode).map(Kt))(t);n.each(n=>{n.dom.insertBefore(e.dom,t.dom)})})(r,e),e})(e)}),a=e();return _.each(Bt),i.moveToBookmark(r),a},Ht=t=>{const e=It(t),n=(t=>{const e=t.indexOf(Dt);return-1===e?0:e})(qt(t,()=>t.getContent({source_view:!0,prettify:e})));return{content:t.getContent({source_view:!0,prettify:e}),cursor:n}},Qt=(t,e)=>{t.focus(),t.undoManager.transact(()=>{t.setContent(e)}),t.selection.setCursorLocation(),t.nodeChanged()},Xt=t=>{return(e=tinymce,m(e,"get")?c.from(e.get):c.none()).bind(e=>c.from(e.call(tinymce,t)));var e},Yt=(t,e)=>Xt(t).bind(t=>c.from(t.plugins.advcode)).map(t=>(t[e]||(t[e]=v()),t[e])),Zt=(t,e)=>{Xt(t).bind(t=>c.from(t.plugins.advcode)).each(t=>{t[e]&&delete t[e]})},Jt=t=>({name:"codeview",type:"customeditor",tag:"div",scriptId:"tinymce.plugins.advcode.customeditor",scriptUrl:t.customEditorScriptUrl,settings:t}),te=(t,e)=>{const n={dark:!1,fullscreen:!1,fontSize:c.none()};t.addCommand("mceCodeEditor",()=>{jt(t)&&!t.inline?"code"===t.mode.get()?t.mode.set("design"):t.mode.set("code"):(()=>{const i=$t(t,e,n);((t,e)=>{const n=Ht(t),i={...e,cursor:n.cursor},r=e.currentAdvStatus,s=Yt(e.editorId,e.advcodeInstanceId);var o;t.windowManager.open((o=n.content,{title:"Source Code",size:"large",body:{type:"panel",items:[Jt(i)]},buttons:(()=>{let t=[{type:"togglebutton",name:"format_code",icon:"format-code",text:"Format code",align:"start",tooltip:""},{type:"togglebutton",name:"dark_theme_toggle",text:"Dark/light mode",active:r.dark,align:"start",tooltip:""},{type:"custom",name:"increase_font_size",text:"Increase font size",icon:"text-size-increase",align:"start"},{type:"custom",name:"decrease_font_size",text:"Decrease font size",icon:"text-size-decrease",align:"start"},{type:"cancel",name:"cancel",text:"Cancel",align:"end"},{type:"submit",name:"save",text:"Save",primary:!0,align:"end"}];return window.isSecureContext?t=[{type:"togglebutton",name:"copy_code",icon:"copy",text:"Copy code",align:"start"}].concat(t):console.warn("Copy code is not allowed since window.isSecureContext is false"),t})(),initialData:{codeview:o},onSubmit:n=>{Qt(t,n.getData().codeview),Zt(e.editorId,e.advcodeInstanceId),n.close()},onClose:()=>{Zt(e.editorId,e.advcodeInstanceId)},onAction:(t,e)=>{"copy_code"===e.name&&s.each(e=>e.get().each(e=>{(async()=>{const n=setTimeout(()=>{t.block("copying")},150);await e.copyCode(),clearTimeout(n),t.unblock()})()})),"format_code"===e.name&&s.each(e=>e.get().each(e=>{e.formatCode(),t.focus("format_code")})),"increase_font_size"===e.name&&s.each(t=>t.get().each(t=>{r.fontSize=t.changeFontSize("increase")})),"decrease_font_size"===e.name&&s.each(t=>t.get().each(t=>{r.fontSize=t.changeFontSize("decrease")})),"dark_theme_toggle"===e.name&&s.each(t=>t.get().each(t=>{t.setDarkMode(!r.dark),r.dark=!r.dark}))}}))})(t,i)})()})},ee=t=>t.plugins.fullscreen&&t.plugins.fullscreen.isFullscreen(),ne=(t,e,n)=>{const i=f({dark:!1,fullscreen:!1,fontSize:c.none()}),r=f(ee(t)),s=v(),o=f(c.none()),_={dark:!1,fullscreen:!1,fontSize:c.none()},a=()=>o.get().bind(e=>Yt(t.id,e)),p=()=>{s.get().each(({destroy:e})=>{e(),i.get().fullscreen!==r.get()&&t.execCommand("mceFullScreen")}),s.clear()};t.ui.registry.addView("code",{buttons:1===n?[{type:"group",buttons:[...t.hasPlugin("fullscreen")?[{type:"togglebutton",icon:"fullscreen",tooltip:"Fullscreen",onAction:e=>{t.execCommand("mceFullScreen",void 0,void 0,{skip_focus:!0});const n=!e.isActive();i.set({...i.get(),fullscreen:n}),e.setActive(n)},context:"any"}]:[],{type:"togglebutton",icon:"copy",text:"Copy code",onAction:t=>a().each(t=>t.get().each(t=>{(async()=>{await t.copyCode()})()})),context:"any"},{type:"togglebutton",icon:"format-code",text:"Format code",onAction:t=>a().each(e=>e.get().each(e=>{e.formatCode(),t.focus()})),context:"any"}]},{type:"group",buttons:[{type:"togglebutton",text:"Dark/light mode",onAction:t=>{a().each(e=>e.get().each(e=>{i.set({...i.get(),dark:!t.isActive()}),t.setActive(i.get().dark),e.setDarkMode(i.get().dark)}))},context:"any"},{type:"togglebutton",icon:"text-size-increase",tooltip:"Increase font size",onAction:t=>a().each(t=>t.get().each(t=>i.set({...i.get(),fontSize:t.changeFontSize("increase")}))),context:"any"},{type:"togglebutton",icon:"text-size-decrease",tooltip:"Decrease font size",onAction:t=>a().each(t=>t.get().each(t=>i.set({...i.get(),fontSize:t.changeFontSize("decrease")}))),context:"any"}]},{type:"group",buttons:[{type:"button",text:"Cancel",onAction:()=>{s.get().each(()=>{p(),t.mode.set("design")})},context:"any"},{type:"button",text:"Save code",buttonType:"primary",onAction:()=>{s.get().each(({syncWithEditor:e})=>{e(),p(),t.mode.set("design")})},context:"any"}]}]:[],onShow:a=>{const p=a.getContainer(),u=$t(t,e,_);o.set(c.some(u.advcodeInstanceId)),r.set(ee(t)),t.setProgressState(!0),i.get().fullscreen!==ee(t)&&t.execCommand("mceFullScreen"),(async t=>{var e;return(await(e=t,tinymce.Resource.load("tinymce.plugins.advcode.CodeMirror",e)))()})(At(t)).then(e=>{t.setProgressState(!1),s.set(((t,e,n,i,r,s)=>{const o=Ht(n),_={...r,cursor:o.cursor},a=Wt("div");var c;c=a,l(0===e?["tox-inline-headless-codemirror","mce-codemirror"]:["tox-custom-editor","tox-inline-codemirror","mce-codemirror"],t=>{((t,e)=>{(t=>void 0!==t.dom.classList)(t)?t.dom.classList.add(e):Gt(t,e)})(c,t)}),((t,e)=>{t.dom.appendChild(e.dom)})(Kt(t),a);const{getValue:p,destroy:u,copyCode:h,formatCode:d,changeFontSize:g,setDarkMode:m,setFontSize:f,focus:y}=i(a.dom,_,o.content,s),w=y;t.addEventListener("focus",w),Yt(r.editorId,r.advcodeInstanceId).each(t=>t.set({copyCode:h,formatCode:d,changeFontSize:g,setDarkMode:m,setFontSize:f})),f(s.fontSize);const v=()=>Qt(n,p());return 0===e&&n.on("BeforeGetContent",v),{syncWithEditor:v,destroy:()=>{0===e&&(n.off("BeforeGetContent",v),v()),Bt(a),t.removeEventListener("focus",w),u()}}})(p,n,t,e,u,i.get()))})},onHide:p})};((t,e)=>{const{i18n:n=!0}=e;n&&tinymce.PluginManager.requireLangPack(t,"ar,bg-BG,ca,cs,da,de,el,es,eu,fa,fi,fr-FR,he-IL,hi,hr,hu-HU,id,it,ja,kk,ko-KR,ms,nb-NO,nl,pl,pt-BR,pt-PT,ro,ru,sk,sl-SI,sv-SE,th-TH,tr,uk,vi,zh-CN,zh-TW"),tinymce.PluginManager.add(t,G(t,e))})("advcode",{setup:(t,e)=>{((t,e)=>{((t,e)=>{const n=t.options.register;n("codemirror_script",{processor:"string",default:e+"/codemirror.min.js"}),n("codemirror_linewrapping",{processor:"boolean",default:!0}),n("codemirror_linenumbers",{processor:"boolean",default:!0}),n("codemirror_foldgutter",{processor:"boolean",default:!0}),n("codemirror_gutter",{processor:"boolean",default:!0}),n("advcode_headless",{processor:"boolean",default:!1}),n("advcode_inline",{processor:"boolean",default:!1}),n("advcode_prettify_editor",{processor:"boolean",default:!0}),n("advcode_prettify_getcontent",{processor:"boolean",default:!1})})(t,e),te(t,e),(t=>{const e="sourcecode",n=()=>t.execCommand("mceCodeEditor");t.ui.registry.addButton("code",{icon:e,tooltip:"Source code",onAction:n}),t.ui.registry.addMenuItem("code",{icon:e,text:"Source code",onAction:n})})(t),((t,e)=>{ne(t,e,Pt(t)?0:1)})(t,e),(t=>{t.mode.register("code",{activate:()=>{"code"!==t.queryCommandValue("ToggleView")&&t.execCommand("ToggleView",!1,"code")},deactivate:()=>{"code"===t.queryCommandValue("ToggleView")&&t.execCommand("ToggleView",!1,"code")},editorReadOnly:!1})})(t)})(t,e),t.on("getContent",e=>{if(!1===e.prettify)return;const n=!0===e.prettify,i=Ut(t);var r;(n||i)&&(e.content=(r=e.content,Et(r,{indent_size:2,preserve_newlines:!1})))})}})}(); \ No newline at end of file diff --git a/plugins/advtable/index.js b/plugins/advtable/index.js new file mode 100644 index 00000000..35752f84 --- /dev/null +++ b/plugins/advtable/index.js @@ -0,0 +1 @@ +require('./plugin.js'); \ No newline at end of file diff --git a/plugins/advtable/index.mjs b/plugins/advtable/index.mjs new file mode 100644 index 00000000..d2860bc1 --- /dev/null +++ b/plugins/advtable/index.mjs @@ -0,0 +1 @@ +import './plugin.js'; \ No newline at end of file diff --git a/plugins/advtable/langs/ar.js b/plugins/advtable/langs/ar.js new file mode 100644 index 00000000..7fb3f323 --- /dev/null +++ b/plugins/advtable/langs/ar.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ar", { + "Advanced Sort": "\u0641\u0631\u0632 \u0645\u062a\u0642\u062f\u0645", + "Advanced sort...": "\u0641\u0631\u0632 \u0645\u062a\u0642\u062f\u0645...", + "Alpha": "\u0623\u0628\u062c\u062f\u064a", + "Ascending": "\u062a\u0635\u0627\u0639\u062f\u064a", + "Column": "\u0639\u0645\u0648\u062f", + "Column {0}": "\u0627\u0644\u0639\u0645\u0648\u062f {0}", + "Descending": "\u062a\u0646\u0627\u0632\u0644\u064a", + "None": "\u0644\u0627 \u0634\u064a\u0621", + "Numeric": "\u0631\u0642\u0645\u064a", + "Order": "\u062a\u0631\u062a\u064a\u0628", + "Row": "\u0635\u0641", + "Row numbering": "\u062a\u0631\u0642\u064a\u0645 \u0627\u0644\u0635\u0641\u0648\u0641", + "Row {0}": "\u0627\u0644\u0635\u0641 {0}", + "Selection": "\u0627\u0644\u062a\u062d\u062f\u064a\u062f", + "Sort": "\u0641\u0631\u0632", + "Sort by": "\u062d\u0633\u0628", + "Sort table by column ascending": "\u0641\u0631\u0632 \u0627\u0644\u062c\u062f\u0648\u0644 \u062d\u0633\u0628 \u062a\u0635\u0627\u0639\u062f \u0627\u0644\u0639\u0645\u0648\u062f", + "Sort table by column descending": "\u0641\u0631\u0632 \u0627\u0644\u062c\u062f\u0648\u0644 \u062d\u0633\u0628 \u062a\u0646\u0627\u0632\u0644 \u0627\u0644\u0639\u0645\u0648\u062f", + "Table": "\u062c\u062f\u0648\u0644" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/bg-BG.js b/plugins/advtable/langs/bg-BG.js new file mode 100644 index 00000000..86749456 --- /dev/null +++ b/plugins/advtable/langs/bg-BG.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("bg-BG", { + "Advanced Sort": "\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0441\u043e\u0440\u0442\u0438\u0440\u0430\u043d\u0435", + "Advanced sort...": "\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0441\u043e\u0440\u0442\u0438\u0440\u0430\u043d\u0435\u2026", + "Alpha": "\u0411\u0443\u043a\u0432\u0438", + "Ascending": "\u0412\u044a\u0437\u0445\u043e\u0434\u044f\u0449\u043e", + "Column": "\u041a\u043e\u043b\u043e\u043d\u0430", + "Column {0}": "\u041a\u043e\u043b\u043e\u043d\u0430 {0}", + "Descending": "\u041d\u0438\u0437\u0445\u043e\u0434\u044f\u0449\u043e", + "None": "\u0411\u0435\u0437", + "Numeric": "\u0427\u0438\u0441\u043b\u0430", + "Order": "\u0420\u0435\u0434", + "Row": "\u0420\u0435\u0434", + "Row numbering": "\u041d\u043e\u043c\u0435\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434\u043e\u0432\u0435", + "Row {0}": "\u0420\u0435\u0434 {0}", + "Selection": "\u0418\u0437\u0431\u043e\u0440", + "Sort": "\u0421\u043e\u0440\u0442\u0438\u0440\u0430\u043d\u0435", + "Sort by": "\u0421\u043e\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043f\u043e", + "Sort table by column ascending": "\u0421\u043e\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430 \u043f\u043e \u043a\u043e\u043b\u043e\u043d\u0438 \u043f\u043e \u0432\u044a\u0437\u0445\u043e\u0434\u044f\u0449 \u0440\u0435\u0434", + "Sort table by column descending": "\u0421\u043e\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430 \u043f\u043e \u043a\u043e\u043b\u043e\u043d\u0438 \u043f\u043e \u043d\u0438\u0437\u0445\u043e\u0434\u044f\u0449 \u0440\u0435\u0434", + "Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/bg_BG.js b/plugins/advtable/langs/bg_BG.js new file mode 100644 index 00000000..8736ed12 --- /dev/null +++ b/plugins/advtable/langs/bg_BG.js @@ -0,0 +1,29 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("bg-BG", { + "Advanced Sort": "\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0441\u043e\u0440\u0442\u0438\u0440\u0430\u043d\u0435", + "Advanced sort...": "\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0441\u043e\u0440\u0442\u0438\u0440\u0430\u043d\u0435\u2026", + "Alpha": "\u0411\u0443\u043a\u0432\u0438", + "Ascending": "\u0412\u044a\u0437\u0445\u043e\u0434\u044f\u0449\u043e", + "Column": "\u041a\u043e\u043b\u043e\u043d\u0430", + "Column {0}": "\u041a\u043e\u043b\u043e\u043d\u0430 {0}", + "Descending": "\u041d\u0438\u0437\u0445\u043e\u0434\u044f\u0449\u043e", + "None": "\u0411\u0435\u0437", + "Numeric": "\u0427\u0438\u0441\u043b\u0430", + "Order": "\u0420\u0435\u0434", + "Row": "\u0420\u0435\u0434", + "Row numbering": "\u041d\u043e\u043c\u0435\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434\u043e\u0432\u0435", + "Row {0}": "\u0420\u0435\u0434 {0}", + "Selection": "\u0418\u0437\u0431\u043e\u0440", + "Sort": "\u0421\u043e\u0440\u0442\u0438\u0440\u0430\u043d\u0435", + "Sort by": "\u0421\u043e\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043f\u043e", + "Sort table by column ascending": "\u0421\u043e\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430 \u043f\u043e \u043a\u043e\u043b\u043e\u043d\u0438 \u043f\u043e \u0432\u044a\u0437\u0445\u043e\u0434\u044f\u0449 \u0440\u0435\u0434", + "Sort table by column descending": "\u0421\u043e\u0440\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430 \u043f\u043e \u043a\u043e\u043b\u043e\u043d\u0438 \u043f\u043e \u043d\u0438\u0437\u0445\u043e\u0434\u044f\u0449 \u0440\u0435\u0434", + "Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430" +}); + +console.warn('TinyMCE language code "bg_BG" is deprecated, please use "bg-BG" instead.'); \ No newline at end of file diff --git a/plugins/advtable/langs/ca.js b/plugins/advtable/langs/ca.js new file mode 100644 index 00000000..e0010dd7 --- /dev/null +++ b/plugins/advtable/langs/ca.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ca", { + "Advanced Sort": "Ordre avan\xe7at", + "Advanced sort...": "Ordre avan\xe7at...", + "Alpha": "Alfa", + "Ascending": "Ascendent", + "Column": "Columna", + "Column {0}": "Columna {0}", + "Descending": "Descendent", + "None": "Cap", + "Numeric": "Num\xe8ric", + "Order": "Ordre", + "Row": "Fila", + "Row numbering": "Numeraci\xf3 de files", + "Row {0}": "Fila {0}", + "Selection": "Selecci\xf3", + "Sort": "Ordenar", + "Sort by": "Ordenar per", + "Sort table by column ascending": "Ordenar la taula per columna ascendent", + "Sort table by column descending": "Ordenar la taula per columna descendent", + "Table": "Taula" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/cs.js b/plugins/advtable/langs/cs.js new file mode 100644 index 00000000..0f262a0e --- /dev/null +++ b/plugins/advtable/langs/cs.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("cs", { + "Advanced Sort": "Roz\u0161\xed\u0159en\xe9 mo\u017enosti \u0159azen\xed", + "Advanced sort...": "Roz\u0161\xed\u0159en\xe9 mo\u017enosti \u0159azen\xed\u2026", + "Alpha": "Abecedn\xed", + "Ascending": "Vzestupn\u011b", + "Column": "Sloupec", + "Column {0}": "Sloupce {0}", + "Descending": "Sestupn\u011b", + "None": "\u017d\xe1dn\xe9", + "Numeric": "\u010c\xedseln\xe9", + "Order": "Po\u0159ad\xed", + "Row": "\u0158\xe1dek", + "Row numbering": "\u010c\xedslov\xe1n\xed \u0159\xe1dk\u016f", + "Row {0}": "\u0158\xe1dku {0}", + "Selection": "V\xfdb\u011br", + "Sort": "\u0158azen\xed", + "Sort by": "Se\u0159adit podle", + "Sort table by column ascending": "Se\u0159adit tabulku vzestupn\u011b podle sloupc\u016f", + "Sort table by column descending": "Se\u0159adit tabulku sestupn\u011b podle sloupc\u016f", + "Table": "Tabulka" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/da.js b/plugins/advtable/langs/da.js new file mode 100644 index 00000000..b633490b --- /dev/null +++ b/plugins/advtable/langs/da.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("da", { + "Advanced Sort": "Avanceret sortering", + "Advanced sort...": "Avanceret sortering...", + "Alpha": "Alfabetisk", + "Ascending": "Stigende", + "Column": "Kolonne", + "Column {0}": "Kolonne {0}", + "Descending": "Faldende", + "None": "Ingen", + "Numeric": "Numerisk", + "Order": "Opstil i r\xe6kkef\xf8lge", + "Row": "R\xe6kke", + "Row numbering": "R\xe6kkenummerering", + "Row {0}": "R\xe6kke {0}", + "Selection": "Valg", + "Sort": "Sort\xe9r", + "Sort by": "Sort\xe9r efter", + "Sort table by column ascending": "Sort\xe9r tabel efter kolonner i stigende r\xe6kkef\xf8lge", + "Sort table by column descending": "Sorter tabel efter kolonner i faldende r\xe6kkef\xf8lge", + "Table": "Tabel" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/de.js b/plugins/advtable/langs/de.js new file mode 100644 index 00000000..bb36349e --- /dev/null +++ b/plugins/advtable/langs/de.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("de", { + "Advanced Sort": "Erweiterte Sortierung", + "Advanced sort...": "Erweiterte Sortierung...", + "Alpha": "Alphabetisch", + "Ascending": "Aufsteigend", + "Column": "Spalte", + "Column {0}": "Spalte {0}", + "Descending": "Absteigend", + "None": "Keine", + "Numeric": "Numerisch", + "Order": "Reihenfolge", + "Row": "Zeile", + "Row numbering": "Zeilennummerierung", + "Row {0}": "Zeile {0}", + "Selection": "Auswahl", + "Sort": "Sortieren", + "Sort by": "Sortieren nach", + "Sort table by column ascending": "Tabelle nach Spalten in aufsteigender Reihenfolge sortieren", + "Sort table by column descending": "Tabelle nach Spalten in absteigender Reihenfolge sortieren", + "Table": "Tabelle" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/el.js b/plugins/advtable/langs/el.js new file mode 100644 index 00000000..a067e6dd --- /dev/null +++ b/plugins/advtable/langs/el.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("el", { + "Advanced Sort": "\u03a3\u03cd\u03bd\u03b8\u03b5\u03c4\u03b7 \u03c4\u03b1\u03be\u03b9\u03bd\u03cc\u03bc\u03b7\u03c3\u03b7", + "Advanced sort...": "\u03a3\u03cd\u03bd\u03b8\u03b5\u03c4\u03b7 \u03c4\u03b1\u03be\u03b9\u03bd\u03cc\u03bc\u03b7\u03c3\u03b7...", + "Alpha": "\u0391\u03bb\u03c6\u03b1\u03b2\u03b7\u03c4\u03b9\u03ba\u03ac", + "Ascending": "\u0391\u03cd\u03be\u03bf\u03c5\u03c3\u03b1 \u03c3\u03b5\u03b9\u03c1\u03ac", + "Column": "\u03a3\u03c4\u03ae\u03bb\u03b7", + "Column {0}": "\u03a3\u03c4\u03ae\u03bb\u03b7 {0}", + "Descending": "\u03a6\u03b8\u03af\u03bd\u03bf\u03c5\u03c3\u03b1 \u03c3\u03b5\u03b9\u03c1\u03ac", + "None": "\u039a\u03b1\u03bd\u03ad\u03bd\u03b1\u03c2", + "Numeric": "\u0391\u03c1\u03b9\u03b8\u03bc\u03b7\u03c4\u03b9\u03ba\u03ac", + "Order": "\u03a3\u03b5\u03b9\u03c1\u03ac", + "Row": "\u0393\u03c1\u03b1\u03bc\u03bc\u03ae", + "Row numbering": "\u0391\u03c1\u03af\u03b8\u03bc\u03b7\u03c3\u03b7 \u03c3\u03b5\u03b9\u03c1\u03ce\u03bd", + "Row {0}": "\u0393\u03c1\u03b1\u03bc\u03bc\u03ae {0}", + "Selection": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae", + "Sort": "\u03a4\u03b1\u03be\u03b9\u03bd\u03cc\u03bc\u03b7\u03c3\u03b7", + "Sort by": "\u03a4\u03b1\u03be\u03b9\u03bd\u03cc\u03bc\u03b7\u03c3\u03b7 \u03ba\u03b1\u03c4\u03ac", + "Sort table by column ascending": "\u03a4\u03b1\u03be\u03b9\u03bd\u03cc\u03bc\u03b7\u03c3\u03b7 \u03c0\u03af\u03bd\u03b1\u03ba\u03b1 \u03b1\u03bd\u03ac \u03c3\u03c4\u03ae\u03bb\u03b7 \u03c3\u03b5 \u03b1\u03cd\u03be\u03bf\u03c5\u03c3\u03b1 \u03c3\u03b5\u03b9\u03c1\u03ac", + "Sort table by column descending": "\u03a4\u03b1\u03be\u03b9\u03bd\u03cc\u03bc\u03b7\u03c3\u03b7 \u03c0\u03af\u03bd\u03b1\u03ba\u03b1 \u03b1\u03bd\u03ac \u03c3\u03c4\u03ae\u03bb\u03b7 \u03c3\u03b5 \u03c6\u03b8\u03af\u03bd\u03bf\u03c5\u03c3\u03b1 \u03c3\u03b5\u03b9\u03c1\u03ac", + "Table": "\u03a0\u03af\u03bd\u03b1\u03ba\u03b1\u03c2" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/es.js b/plugins/advtable/langs/es.js new file mode 100644 index 00000000..c6a737ad --- /dev/null +++ b/plugins/advtable/langs/es.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("es", { + "Advanced Sort": "Clasificaci\xf3n avanzada", + "Advanced sort...": "Clasificaci\xf3n avanzada...", + "Alpha": "Alfab\xe9tica", + "Ascending": "Ascendente", + "Column": "Columna", + "Column {0}": "Columna {0}", + "Descending": "Descendente", + "None": "Ninguno", + "Numeric": "Num\xe9rica", + "Order": "Ordenar", + "Row": "Fila", + "Row numbering": "Numeraci\xf3n de filas", + "Row {0}": "Fila {0}", + "Selection": "Selecci\xf3n", + "Sort": "Clasificar", + "Sort by": "Clasificar por", + "Sort table by column ascending": "Clasificar la tabla por columna ascendente", + "Sort table by column descending": "Clasificar la tabla por columna descendente", + "Table": "Tabla" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/eu.js b/plugins/advtable/langs/eu.js new file mode 100644 index 00000000..2663da49 --- /dev/null +++ b/plugins/advtable/langs/eu.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("eu", { + "Advanced Sort": "Antolaketa aurreratua", + "Advanced sort...": "Antolaketa aurreratua...", + "Alpha": "Alfabetoa", + "Ascending": "Gora", + "Column": "Zutabea", + "Column {0}": "{0} zutabea", + "Descending": "Behera", + "None": "Bat ere ez", + "Numeric": "Zenbakiak", + "Order": "Ordenatu", + "Row": "Errenkada", + "Row numbering": "Errenkadak zenbakitzea", + "Row {0}": "{0} errenkada", + "Selection": "Aukera", + "Sort": "Antolatu", + "Sort by": "Antolatu honakoaren arabera:", + "Sort table by column ascending": "Antolatu taula goranzko zutabeen arabera", + "Sort table by column descending": "Antolatu taula beheranzko zutabeen arabera", + "Table": "Taula" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/fa.js b/plugins/advtable/langs/fa.js new file mode 100644 index 00000000..ca248110 --- /dev/null +++ b/plugins/advtable/langs/fa.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("fa", { + "Advanced Sort": "\u062a\u0631\u062a\u06cc\u0628\u200c\u0628\u0646\u062f\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647", + "Advanced sort...": "\u062a\u0631\u062a\u06cc\u0628\u200c\u0628\u0646\u062f\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647...", + "Alpha": "\u0627\u0644\u0641\u0628\u0627\u06cc\u06cc", + "Ascending": "\u0627\u0641\u0632\u0627\u06cc\u0634\u06cc", + "Column": "\u0633\u062a\u0648\u0646", + "Column {0}": "\u0633\u062a\u0648\u0646 {0}", + "Descending": "\u06a9\u0627\u0647\u0634\u06cc", + "None": "\u0647\u06cc\u0686\u200c\u06a9\u062f\u0627\u0645", + "Numeric": "\u0639\u062f\u062f\u06cc", + "Order": "\u0645\u0646\u0638\u0645\u200c\u0633\u0627\u0632\u06cc", + "Row": "\u0631\u062f\u06cc\u0641", + "Row numbering": "\u0634\u0645\u0627\u0631\u0647\u200c\u06af\u0630\u0627\u0631\u06cc \u0631\u062f\u06cc\u0641", + "Row {0}": "\u0631\u062f\u06cc\u0641 {0}", + "Selection": "\u0627\u0646\u062a\u062e\u0627\u0628", + "Sort": "\u062a\u0631\u062a\u06cc\u0628\u200c\u0628\u0646\u062f\u06cc", + "Sort by": "\u062a\u0631\u062a\u06cc\u0628\u200c\u0628\u0646\u062f\u06cc \u0628\u0631 \u0627\u0633\u0627\u0633", + "Sort table by column ascending": "\u062a\u0631\u062a\u06cc\u0628\u200c\u0628\u0646\u062f\u06cc \u062c\u062f\u0648\u0644 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0633\u062a\u0648\u0646 \u0627\u0641\u0632\u0627\u06cc\u0634\u06cc", + "Sort table by column descending": "\u062a\u0631\u062a\u06cc\u0628\u200c\u0628\u0646\u062f\u06cc \u062c\u062f\u0648\u0644 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0633\u062a\u0648\u0646 \u06a9\u0627\u0647\u0634\u06cc", + "Table": "\u062c\u062f\u0648\u0644" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/fi.js b/plugins/advtable/langs/fi.js new file mode 100644 index 00000000..ec73c608 --- /dev/null +++ b/plugins/advtable/langs/fi.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("fi", { + "Advanced Sort": "Lajittelun lis\xe4asetukset", + "Advanced sort...": "Lajittelun lis\xe4asetukset...", + "Alpha": "Aakkoset", + "Ascending": "Nouseva", + "Column": "Sarake", + "Column {0}": "Sarake {0}", + "Descending": "Laskeva", + "None": "Ei mit\xe4\xe4n", + "Numeric": "Numeerinen", + "Order": "J\xe4rjestys", + "Row": "Rivi", + "Row numbering": "Rivien numerointi", + "Row {0}": "Rivi {0}", + "Selection": "Valinta", + "Sort": "Lajittele", + "Sort by": "Lajittelutapa", + "Sort table by column ascending": "Lajittele taulukko sarakkeen nousevassa j\xe4rjestyksess\xe4", + "Sort table by column descending": "Lajittele taulukko sarakkeen laskevassa j\xe4rjestyksess\xe4", + "Table": "Taulukko" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/fr-FR.js b/plugins/advtable/langs/fr-FR.js new file mode 100644 index 00000000..fbf5dc1d --- /dev/null +++ b/plugins/advtable/langs/fr-FR.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("fr-FR", { + "Advanced Sort": "Tri avanc\xe9", + "Advanced sort...": "Tri avanc\xe9...", + "Alpha": "Alphab\xe9tique", + "Ascending": "Croissant", + "Column": "Colonne", + "Column {0}": "Colonne {0}", + "Descending": "D\xe9croissant", + "None": "Aucun", + "Numeric": "Num\xe9rique", + "Order": "Commander", + "Row": "Ligne", + "Row numbering": "Num\xe9rotation des lignes", + "Row {0}": "Ligne {0}", + "Selection": "S\xe9lection", + "Sort": "Trier", + "Sort by": "Trier par", + "Sort table by column ascending": "Tableau de tri par colonne ascendante", + "Sort table by column descending": "Trier le tableau par colonne d\xe9croissante", + "Table": "Tableau" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/fr_FR.js b/plugins/advtable/langs/fr_FR.js new file mode 100644 index 00000000..8ca11527 --- /dev/null +++ b/plugins/advtable/langs/fr_FR.js @@ -0,0 +1,29 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("fr-FR", { + "Advanced Sort": "Tri avanc\xe9", + "Advanced sort...": "Tri avanc\xe9...", + "Alpha": "Alphab\xe9tique", + "Ascending": "Croissant", + "Column": "Colonne", + "Column {0}": "Colonne {0}", + "Descending": "D\xe9croissant", + "None": "Aucun", + "Numeric": "Num\xe9rique", + "Order": "Commander", + "Row": "Ligne", + "Row numbering": "Num\xe9rotation des lignes", + "Row {0}": "Ligne {0}", + "Selection": "S\xe9lection", + "Sort": "Trier", + "Sort by": "Trier par", + "Sort table by column ascending": "Tableau de tri par colonne ascendante", + "Sort table by column descending": "Trier le tableau par colonne d\xe9croissante", + "Table": "Tableau" +}); + +console.warn('TinyMCE language code "fr_FR" is deprecated, please use "fr-FR" instead.'); \ No newline at end of file diff --git a/plugins/advtable/langs/he-IL.js b/plugins/advtable/langs/he-IL.js new file mode 100644 index 00000000..7d278291 --- /dev/null +++ b/plugins/advtable/langs/he-IL.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("he-IL", { + "Advanced Sort": "\u05de\u05d9\u05d5\u05df \u05de\u05ea\u05e7\u05d3\u05dd", + "Advanced sort...": "\u05de\u05d9\u05d5\u05df \u05de\u05ea\u05e7\u05d3\u05dd...", + "Alpha": "\u05d0\u05dc\u05e4\u05d1\u05d9\u05ea\u05d9", + "Ascending": "\u05e1\u05d3\u05e8 \u05e2\u05d5\u05dc\u05d4", + "Column": "\u05e2\u05de\u05d5\u05d3\u05d4", + "Column {0}": "\u05e2\u05de\u05d5\u05d3\u05d4 {0}", + "Descending": "\u05e1\u05d3\u05e8 \u05d9\u05d5\u05e8\u05d3", + "None": "\u05dc\u05dc\u05d0", + "Numeric": "\u05de\u05e1\u05e4\u05e8\u05d9", + "Order": "\u05e1\u05d3\u05e8", + "Row": "\u05e9\u05d5\u05e8\u05d4", + "Row numbering": "\u05de\u05e1\u05e4\u05d5\u05e8 \u05e9\u05d5\u05e8\u05d5\u05ea", + "Row {0}": "\u05e9\u05d5\u05e8\u05d4 {0}", + "Selection": "\u05d1\u05d7\u05d9\u05e8\u05d4", + "Sort": "\u05de\u05d9\u05d5\u05df", + "Sort by": "\u05de\u05d9\u05d5\u05df \u05dc\u05e4\u05d9", + "Sort table by column ascending": "\u05de\u05d9\u05d5\u05df \u05d8\u05d1\u05dc\u05d4 \u05dc\u05e4\u05d9 \u05e2\u05de\u05d5\u05d3\u05d4 \u05d1\u05e1\u05d3\u05e8 \u05e2\u05d5\u05dc\u05d4", + "Sort table by column descending": "\u05de\u05d9\u05d5\u05df \u05d8\u05d1\u05dc\u05d4 \u05dc\u05e4\u05d9 \u05e2\u05de\u05d5\u05d3\u05d4 \u05d1\u05e1\u05d3\u05e8 \u05d9\u05d5\u05e8\u05d3", + "Table": "\u05d8\u05d1\u05dc\u05d4" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/he_IL.js b/plugins/advtable/langs/he_IL.js new file mode 100644 index 00000000..bfa49b00 --- /dev/null +++ b/plugins/advtable/langs/he_IL.js @@ -0,0 +1,29 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("he-IL", { + "Advanced Sort": "\u05de\u05d9\u05d5\u05df \u05de\u05ea\u05e7\u05d3\u05dd", + "Advanced sort...": "\u05de\u05d9\u05d5\u05df \u05de\u05ea\u05e7\u05d3\u05dd...", + "Alpha": "\u05d0\u05dc\u05e4\u05d1\u05d9\u05ea\u05d9", + "Ascending": "\u05e1\u05d3\u05e8 \u05e2\u05d5\u05dc\u05d4", + "Column": "\u05e2\u05de\u05d5\u05d3\u05d4", + "Column {0}": "\u05e2\u05de\u05d5\u05d3\u05d4 {0}", + "Descending": "\u05e1\u05d3\u05e8 \u05d9\u05d5\u05e8\u05d3", + "None": "\u05dc\u05dc\u05d0", + "Numeric": "\u05de\u05e1\u05e4\u05e8\u05d9", + "Order": "\u05e1\u05d3\u05e8", + "Row": "\u05e9\u05d5\u05e8\u05d4", + "Row numbering": "\u05de\u05e1\u05e4\u05d5\u05e8 \u05e9\u05d5\u05e8\u05d5\u05ea", + "Row {0}": "\u05e9\u05d5\u05e8\u05d4 {0}", + "Selection": "\u05d1\u05d7\u05d9\u05e8\u05d4", + "Sort": "\u05de\u05d9\u05d5\u05df", + "Sort by": "\u05de\u05d9\u05d5\u05df \u05dc\u05e4\u05d9", + "Sort table by column ascending": "\u05de\u05d9\u05d5\u05df \u05d8\u05d1\u05dc\u05d4 \u05dc\u05e4\u05d9 \u05e2\u05de\u05d5\u05d3\u05d4 \u05d1\u05e1\u05d3\u05e8 \u05e2\u05d5\u05dc\u05d4", + "Sort table by column descending": "\u05de\u05d9\u05d5\u05df \u05d8\u05d1\u05dc\u05d4 \u05dc\u05e4\u05d9 \u05e2\u05de\u05d5\u05d3\u05d4 \u05d1\u05e1\u05d3\u05e8 \u05d9\u05d5\u05e8\u05d3", + "Table": "\u05d8\u05d1\u05dc\u05d4" +}); + +console.warn('TinyMCE language code "he_IL" is deprecated, please use "he-IL" instead.'); \ No newline at end of file diff --git a/plugins/advtable/langs/hi.js b/plugins/advtable/langs/hi.js new file mode 100644 index 00000000..4cf3aac1 --- /dev/null +++ b/plugins/advtable/langs/hi.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("hi", { + "Advanced Sort": "\u0909\u0928\u094d\u0928\u0924 \u0938\u0949\u0930\u094d\u091f", + "Advanced sort...": "\u0909\u0928\u094d\u0928\u0924 \u0938\u0949\u0930\u094d\u091f...", + "Alpha": "\u0935\u0930\u094d\u0923\u092e\u093e\u0932\u093e", + "Ascending": "\u0906\u0930\u094b\u0939\u0940", + "Column": "\u0915\u0949\u0932\u092e", + "Column {0}": "\u0915\u0949\u0932\u092e {0}", + "Descending": "\u0905\u0935\u0930\u094b\u0939\u0940", + "None": "\u0915\u094b\u0908 \u0928\u0939\u0940\u0902", + "Numeric": "\u0938\u093e\u0902\u0916\u094d\u092f\u093f\u0915", + "Order": "\u0911\u0930\u094d\u0921\u0930", + "Row": "\u092a\u0902\u0915\u094d\u0924\u093f", + "Row numbering": "\u092a\u0902\u0915\u094d\u0924\u093f \u0915\u094d\u0930\u092e\u093e\u0902\u0915\u0928", + "Row {0}": "\u092a\u0902\u0915\u094d\u0924\u093f {0}", + "Selection": "\u091a\u092f\u0928", + "Sort": "\u0938\u0949\u0930\u094d\u091f \u0915\u0930\u0947\u0902", + "Sort by": "\u0907\u0938\u0915\u0947 \u0905\u0928\u0941\u0938\u093e\u0930 \u0938\u0949\u0930\u094d\u091f \u0915\u0930\u0947\u0902", + "Sort table by column ascending": "\u0924\u093e\u0932\u093f\u0915\u093e \u0915\u094b \u0906\u0930\u094b\u0939\u0940 \u0915\u094d\u0930\u092e \u0915\u0947 \u0915\u0949\u0932\u092e \u092e\u0947\u0902 \u0938\u0949\u0930\u094d\u091f \u0915\u0930\u0947\u0902", + "Sort table by column descending": "\u0924\u093e\u0932\u093f\u0915\u093e \u0915\u094b \u0905\u0935\u0930\u094b\u0939\u0940 \u0915\u094d\u0930\u092e \u0915\u0947 \u0915\u0949\u0932\u092e \u092e\u0947\u0902 \u0938\u0949\u0930\u094d\u091f \u0915\u0930\u0947\u0902", + "Table": "\u0924\u093e\u0932\u093f\u0915\u093e" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/hr.js b/plugins/advtable/langs/hr.js new file mode 100644 index 00000000..de6187b6 --- /dev/null +++ b/plugins/advtable/langs/hr.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("hr", { + "Advanced Sort": "Napredno razvrstavanje", + "Advanced sort...": "Napredno razvrstavanje...", + "Alpha": "Slovno", + "Ascending": "Uzlazno", + "Column": "Stupac", + "Column {0}": "Stupac {0}", + "Descending": "Silazno", + "None": "Nema", + "Numeric": "Broj\u010dano", + "Order": "Uredi", + "Row": "Redak", + "Row numbering": "Numeriranje redaka", + "Row {0}": "Redak {0}", + "Selection": "Odabir", + "Sort": "Razvrstaj", + "Sort by": "Razvrstaj prema", + "Sort table by column ascending": "Razvrstaj tablicu prema prema uzlaznom stupcu", + "Sort table by column descending": "Razvrstaj tablicu prema silaznom stupcu", + "Table": "Tablica" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/hu-HU.js b/plugins/advtable/langs/hu-HU.js new file mode 100644 index 00000000..06125e98 --- /dev/null +++ b/plugins/advtable/langs/hu-HU.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("hu-HU", { + "Advanced Sort": "Speci\xe1lis rendez\xe9s", + "Advanced sort...": "Speci\xe1lis rendez\xe9s...", + "Alpha": "Bet\u0171rend", + "Ascending": "N\xf6vekv\u0151", + "Column": "Oszlop", + "Column {0}": "Oszlop: {0}", + "Descending": "Cs\xf6kken\u0151", + "None": "Nincs", + "Numeric": "Numerikus", + "Order": "Sorrend", + "Row": "Sor", + "Row numbering": "Sorok sz\xe1moz\xe1sa", + "Row {0}": "Sor: {0}", + "Selection": "Kiv\xe1laszt\xe1s", + "Sort": "Rendez\xe9s", + "Sort by": "Rendez\xe9s a k\xf6vetkez\u0151 szerint:", + "Sort table by column ascending": "T\xe1bla rendez\xe9se oszlopok szerint n\xf6vekv\u0151 sorrendben", + "Sort table by column descending": "T\xe1bla rendez\xe9se oszlopok szerint cs\xf6kken\u0151 sorrendben", + "Table": "T\xe1bl\xe1zat" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/hu_HU.js b/plugins/advtable/langs/hu_HU.js new file mode 100644 index 00000000..227a6b07 --- /dev/null +++ b/plugins/advtable/langs/hu_HU.js @@ -0,0 +1,29 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("hu-HU", { + "Advanced Sort": "Speci\xe1lis rendez\xe9s", + "Advanced sort...": "Speci\xe1lis rendez\xe9s...", + "Alpha": "Bet\u0171rend", + "Ascending": "N\xf6vekv\u0151", + "Column": "Oszlop", + "Column {0}": "Oszlop: {0}", + "Descending": "Cs\xf6kken\u0151", + "None": "Nincs", + "Numeric": "Numerikus", + "Order": "Sorrend", + "Row": "Sor", + "Row numbering": "Sorok sz\xe1moz\xe1sa", + "Row {0}": "Sor: {0}", + "Selection": "Kiv\xe1laszt\xe1s", + "Sort": "Rendez\xe9s", + "Sort by": "Rendez\xe9s a k\xf6vetkez\u0151 szerint:", + "Sort table by column ascending": "T\xe1bla rendez\xe9se oszlopok szerint n\xf6vekv\u0151 sorrendben", + "Sort table by column descending": "T\xe1bla rendez\xe9se oszlopok szerint cs\xf6kken\u0151 sorrendben", + "Table": "T\xe1bl\xe1zat" +}); + +console.warn('TinyMCE language code "hu_HU" is deprecated, please use "hu-HU" instead.'); \ No newline at end of file diff --git a/plugins/advtable/langs/id.js b/plugins/advtable/langs/id.js new file mode 100644 index 00000000..c025f994 --- /dev/null +++ b/plugins/advtable/langs/id.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("id", { + "Advanced Sort": "Sortir Lanjutan", + "Advanced sort...": "Sortir lanjutan...", + "Alpha": "Alfabet", + "Ascending": "Menaik", + "Column": "Kolom", + "Column {0}": "Kolom {0}", + "Descending": "Menurun", + "None": "Tidak ada", + "Numeric": "Numerik", + "Order": "Urutan", + "Row": "Baris", + "Row numbering": "Penomoran baris", + "Row {0}": "Baris {0}", + "Selection": "Pemilihan", + "Sort": "Sortir", + "Sort by": "Sortir menurut", + "Sort table by column ascending": "Sortir tabel menurut kolom secara menaik", + "Sort table by column descending": "Sortir tabel menurut kolom secara menurun", + "Table": "Tabel" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/it.js b/plugins/advtable/langs/it.js new file mode 100644 index 00000000..0eea1e89 --- /dev/null +++ b/plugins/advtable/langs/it.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("it", { + "Advanced Sort": "Ordinamento avanzato", + "Advanced sort...": "Ordinamento avanzato...", + "Alpha": "Alfabetico", + "Ascending": "Ascendente", + "Column": "Colonna", + "Column {0}": "Colonna {0}", + "Descending": "Discendente", + "None": "Nessuno", + "Numeric": "Numerico", + "Order": "Ordinamento", + "Row": "Riga", + "Row numbering": "Numerazione righe", + "Row {0}": "Riga {0}", + "Selection": "Selezione", + "Sort": "Ordina", + "Sort by": "Ordina per", + "Sort table by column ascending": "Ordina tabella per colonna ascendente", + "Sort table by column descending": "Ordina tabella per colonna discendente", + "Table": "Tabella" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/ja.js b/plugins/advtable/langs/ja.js new file mode 100644 index 00000000..3423389c --- /dev/null +++ b/plugins/advtable/langs/ja.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ja", { + "Advanced Sort": "\u8a73\u7d30\u4e26\u3079\u66ff\u3048", + "Advanced sort...": "\u8a73\u7d30\u4e26\u3079\u66ff\u3048...", + "Alpha": "\u82f1\u5b57", + "Ascending": "\u6607\u9806", + "Column": "\u5217", + "Column {0}": "\u5217 {0}", + "Descending": "\u964d\u9806", + "None": "\u306a\u3057", + "Numeric": "\u6570\u5b57", + "Order": "\u9806\u5e8f", + "Row": "\u884c", + "Row numbering": "\u884c\u756a\u53f7\u8868\u793a", + "Row {0}": "\u884c {0}", + "Selection": "\u9078\u629e", + "Sort": "\u4e26\u3079\u66ff\u3048", + "Sort by": "\u4e26\u3079\u66ff\u3048\uff1a", + "Sort table by column ascending": "\u30c6\u30fc\u30d6\u30eb\u3092\u6607\u9806\u306b\u4e26\u3079\u66ff\u3048", + "Sort table by column descending": "\u30c6\u30fc\u30d6\u30eb\u3092\u964d\u9806\u306b\u4e26\u3079\u66ff\u3048", + "Table": "\u30c6\u30fc\u30d6\u30eb" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/kk.js b/plugins/advtable/langs/kk.js new file mode 100644 index 00000000..b9aab9f8 --- /dev/null +++ b/plugins/advtable/langs/kk.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("kk", { + "Advanced Sort": "\u041a\u0435\u04a3\u0435\u0439\u0442\u0456\u043b\u0433\u0435\u043d \u0441\u04b1\u0440\u044b\u043f\u0442\u0430\u0443", + "Advanced sort...": "\u041a\u0435\u04a3\u0435\u0439\u0442\u0456\u043b\u0433\u0435\u043d \u0441\u04b1\u0440\u044b\u043f\u0442\u0430\u0443...", + "Alpha": "\u04d8\u0440\u0456\u043f\u0442\u0456\u043a", + "Ascending": "\u04e8\u0441\u0443", + "Column": "\u0411\u0430\u0493\u0430\u043d", + "Column {0}": "\u0411\u0430\u0493\u0430\u043d {0}", + "Descending": "\u041a\u0435\u043c\u0443", + "None": "\u0416\u043e\u049b", + "Numeric": "\u0421\u0430\u043d\u0434\u044b\u049b", + "Order": "\u0420\u0435\u0442", + "Row": "\u049a\u0430\u0442\u0430\u0440", + "Row numbering": "\u049a\u0430\u0442\u0430\u0440 \u043d\u04e9\u043c\u0456\u0440\u0456", + "Row {0}": "\u049a\u0430\u0442\u0430\u0440 {0}", + "Selection": "\u0422\u0430\u04a3\u0434\u0430\u0443", + "Sort": "\u0421\u04b1\u0440\u044b\u043f\u0442\u0430\u0443", + "Sort by": "\u0421\u04b1\u0440\u044b\u043f\u0442\u0430\u0443 \u0436\u043e\u043b\u044b", + "Sort table by column ascending": "\u041a\u0435\u0441\u0442\u0435\u043d\u0456 \u04e9\u0441\u0443 \u0431\u0430\u0493\u0430\u043d\u044b \u0431\u043e\u0439\u044b\u043d\u0448\u0430 \u0441\u04b1\u0440\u044b\u043f\u0442\u0430\u0443", + "Sort table by column descending": "\u041a\u0435\u0441\u0442\u0435\u043d\u0456 \u043a\u0435\u043c\u0443 \u0431\u0430\u0493\u0430\u043d\u044b \u0431\u043e\u0439\u044b\u043d\u0448\u0430 \u0441\u04b1\u0440\u044b\u043f\u0442\u0430\u0443", + "Table": "\u041a\u0435\u0441\u0442\u0435" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/ko-KR.js b/plugins/advtable/langs/ko-KR.js new file mode 100644 index 00000000..363f5265 --- /dev/null +++ b/plugins/advtable/langs/ko-KR.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ko-KR", { + "Advanced Sort": "\uace0\uae09 \uc815\ub82c", + "Advanced sort...": "\uace0\uae09 \uc815\ub82c...", + "Alpha": "\uc54c\ud30c\ubcb3", + "Ascending": "\uc624\ub984\ucc28\uc21c", + "Column": "\uc5f4", + "Column {0}": "\uc5f4 {0}", + "Descending": "\ub0b4\ub9bc\ucc28\uc21c", + "None": "\uc5c6\uc74c", + "Numeric": "\uc22b\uc790", + "Order": "\uc21c\uc11c", + "Row": "\ud589", + "Row numbering": "\uc5f4 \ubc88\ud638 \ub9e4\uae30\uae30", + "Row {0}": "\ud589 {0}", + "Selection": "\uc120\ud0dd", + "Sort": "\uc815\ub82c", + "Sort by": "\uc815\ub82c \uae30\uc900", + "Sort table by column ascending": "\uc5f4 \uc624\ub984\ucc28\uc21c\uc73c\ub85c \ud45c \uc815\ub82c", + "Sort table by column descending": "\uc5f4 \ub0b4\ub9bc\ucc28\uc21c\uc73c\ub85c \ud45c \uc815\ub82c", + "Table": "\ud14c\uc774\ube14" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/ko_KR.js b/plugins/advtable/langs/ko_KR.js new file mode 100644 index 00000000..a7825d84 --- /dev/null +++ b/plugins/advtable/langs/ko_KR.js @@ -0,0 +1,29 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ko-KR", { + "Advanced Sort": "\uace0\uae09 \uc815\ub82c", + "Advanced sort...": "\uace0\uae09 \uc815\ub82c...", + "Alpha": "\uc54c\ud30c\ubcb3", + "Ascending": "\uc624\ub984\ucc28\uc21c", + "Column": "\uc5f4", + "Column {0}": "\uc5f4 {0}", + "Descending": "\ub0b4\ub9bc\ucc28\uc21c", + "None": "\uc5c6\uc74c", + "Numeric": "\uc22b\uc790", + "Order": "\uc21c\uc11c", + "Row": "\ud589", + "Row numbering": "\uc5f4 \ubc88\ud638 \ub9e4\uae30\uae30", + "Row {0}": "\ud589 {0}", + "Selection": "\uc120\ud0dd", + "Sort": "\uc815\ub82c", + "Sort by": "\uc815\ub82c \uae30\uc900", + "Sort table by column ascending": "\uc5f4 \uc624\ub984\ucc28\uc21c\uc73c\ub85c \ud45c \uc815\ub82c", + "Sort table by column descending": "\uc5f4 \ub0b4\ub9bc\ucc28\uc21c\uc73c\ub85c \ud45c \uc815\ub82c", + "Table": "\ud14c\uc774\ube14" +}); + +console.warn('TinyMCE language code "ko_KR" is deprecated, please use "ko-KR" instead.'); \ No newline at end of file diff --git a/plugins/advtable/langs/ms.js b/plugins/advtable/langs/ms.js new file mode 100644 index 00000000..aed356fa --- /dev/null +++ b/plugins/advtable/langs/ms.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ms", { + "Advanced Sort": "Isih Lanjutan", + "Advanced sort...": "Isih lanjutan...", + "Alpha": "Abjad", + "Ascending": "Menaik", + "Column": "Lajur", + "Column {0}": "Lajur {0}", + "Descending": "Menurun", + "None": "Tiada", + "Numeric": "Angka", + "Order": "Tertib", + "Row": "Baris", + "Row numbering": "Nombor baris", + "Row {0}": "Baris {0}", + "Selection": "Pemilihan", + "Sort": "Isih", + "Sort by": "Isih mengikut", + "Sort table by column ascending": "Isih jadual mengikut lajur menaik", + "Sort table by column descending": "Isih jadual mengikut lajur menurun", + "Table": "Jadual" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/nb-NO.js b/plugins/advtable/langs/nb-NO.js new file mode 100644 index 00000000..b95726b2 --- /dev/null +++ b/plugins/advtable/langs/nb-NO.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("nb-NO", { + "Advanced Sort": "Avansert sortering", + "Advanced sort...": "Avansert sortering\u2026", + "Alpha": "Alfabetisk", + "Ascending": "Stigende", + "Column": "Kolonne", + "Column {0}": "Kolonne {0}", + "Descending": "Synkende", + "None": "Ingen", + "Numeric": "Numerisk", + "Order": "Rekkef\xf8lge", + "Row": "Rad", + "Row numbering": "Radnummerering", + "Row {0}": "Rad {0}", + "Selection": "Utvalg", + "Sort": "Sorter", + "Sort by": "Sorter etter", + "Sort table by column ascending": "Sorter tabell etter kolonne i stigende rekkef\xf8lge", + "Sort table by column descending": "Sortert tabellen etter kolonne i synkende rekkef\xf8lge", + "Table": "Tabell" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/nb_NO.js b/plugins/advtable/langs/nb_NO.js new file mode 100644 index 00000000..ccabe97d --- /dev/null +++ b/plugins/advtable/langs/nb_NO.js @@ -0,0 +1,29 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("nb-NO", { + "Advanced Sort": "Avansert sortering", + "Advanced sort...": "Avansert sortering\u2026", + "Alpha": "Alfabetisk", + "Ascending": "Stigende", + "Column": "Kolonne", + "Column {0}": "Kolonne {0}", + "Descending": "Synkende", + "None": "Ingen", + "Numeric": "Numerisk", + "Order": "Rekkef\xf8lge", + "Row": "Rad", + "Row numbering": "Radnummerering", + "Row {0}": "Rad {0}", + "Selection": "Utvalg", + "Sort": "Sorter", + "Sort by": "Sorter etter", + "Sort table by column ascending": "Sorter tabell etter kolonne i stigende rekkef\xf8lge", + "Sort table by column descending": "Sortert tabellen etter kolonne i synkende rekkef\xf8lge", + "Table": "Tabell" +}); + +console.warn('TinyMCE language code "nb_NO" is deprecated, please use "nb-NO" instead.'); \ No newline at end of file diff --git a/plugins/advtable/langs/nl.js b/plugins/advtable/langs/nl.js new file mode 100644 index 00000000..49473a6d --- /dev/null +++ b/plugins/advtable/langs/nl.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("nl", { + "Advanced Sort": "Geavanceerd sorteren", + "Advanced sort...": "Geavanceerd sorteren...", + "Alpha": "Alfanumeriek", + "Ascending": "Oplopend", + "Column": "Kolom", + "Column {0}": "Kolom {0}", + "Descending": "Aflopend", + "None": "Geen", + "Numeric": "Numeriek", + "Order": "Volgorde", + "Row": "Rij", + "Row numbering": "Rijnummering", + "Row {0}": "Rij {0}", + "Selection": "Selectie", + "Sort": "Sorteren", + "Sort by": "Sorteren op", + "Sort table by column ascending": "Tabel op oplopende kolom sorteren", + "Sort table by column descending": "Tabel op aflopende kolom sorteren", + "Table": "Tabel" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/pl.js b/plugins/advtable/langs/pl.js new file mode 100644 index 00000000..b1cd0b15 --- /dev/null +++ b/plugins/advtable/langs/pl.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pl", { + "Advanced Sort": "Sortowanie zaawansowane", + "Advanced sort...": "Sortowanie zaawansowane...", + "Alpha": "Alfabetyczne", + "Ascending": "Rosn\u0105co", + "Column": "Kolumna", + "Column {0}": "Kolumna {0}", + "Descending": "Malej\u0105co", + "None": "Brak", + "Numeric": "Numeryczne", + "Order": "Kolejno\u015b\u0107", + "Row": "Wiersz", + "Row numbering": "Numerowanie wierszy", + "Row {0}": "Wiersz {0}", + "Selection": "Wyb\xf3r", + "Sort": "Sortuj", + "Sort by": "Sortuj wg", + "Sort table by column ascending": "Sortuj tabel\u0119 wg kolumny rosn\u0105co", + "Sort table by column descending": "Sortuj tabel\u0119 wg kolumny malej\u0105co", + "Table": "Tabela" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/pt-BR.js b/plugins/advtable/langs/pt-BR.js new file mode 100644 index 00000000..018a90cc --- /dev/null +++ b/plugins/advtable/langs/pt-BR.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pt-BR", { + "Advanced Sort": "Classifica\xe7\xe3o Avan\xe7ada", + "Advanced sort...": "Classifica\xe7\xe3o avan\xe7ada...", + "Alpha": "Alfab\xe9tica", + "Ascending": "Ascendente", + "Column": "Coluna", + "Column {0}": "Coluna {0}", + "Descending": "Descendente", + "None": "Nenhum", + "Numeric": "Num\xe9rica", + "Order": "Ordem", + "Row": "Linha", + "Row numbering": "Numera\xe7\xe3o de linhas", + "Row {0}": "Linha {0}", + "Selection": "Sele\xe7\xe3o", + "Sort": "Classificar", + "Sort by": "Classificar por", + "Sort table by column ascending": "Classificar tabela por coluna ascendente", + "Sort table by column descending": "Classificar tabela por coluna descendente", + "Table": "Tabela" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/pt-PT.js b/plugins/advtable/langs/pt-PT.js new file mode 100644 index 00000000..25c1da65 --- /dev/null +++ b/plugins/advtable/langs/pt-PT.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pt-PT", { + "Advanced Sort": "Ordenar Avan\xe7ado", + "Advanced sort...": "Ordenar avan\xe7ado...", + "Alpha": "Alfab\xe9tica", + "Ascending": "Ascendente", + "Column": "Coluna", + "Column {0}": "Coluna {0}", + "Descending": "Descendente", + "None": "Nenhum", + "Numeric": "Num\xe9rica", + "Order": "Ordem", + "Row": "Linha", + "Row numbering": "Numera\xe7\xe3o de linhas", + "Row {0}": "Linha {0}", + "Selection": "Sele\xe7\xe3o", + "Sort": "Ordenar", + "Sort by": "Ordenar por", + "Sort table by column ascending": "Ordenar tabela por coluna ascendente", + "Sort table by column descending": "Ordenar tabela por coluna descendente", + "Table": "Tabela" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/pt_BR.js b/plugins/advtable/langs/pt_BR.js new file mode 100644 index 00000000..397a30be --- /dev/null +++ b/plugins/advtable/langs/pt_BR.js @@ -0,0 +1,29 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pt-BR", { + "Advanced Sort": "Classifica\xe7\xe3o Avan\xe7ada", + "Advanced sort...": "Classifica\xe7\xe3o avan\xe7ada...", + "Alpha": "Alfab\xe9tica", + "Ascending": "Ascendente", + "Column": "Coluna", + "Column {0}": "Coluna {0}", + "Descending": "Descendente", + "None": "Nenhum", + "Numeric": "Num\xe9rica", + "Order": "Ordem", + "Row": "Linha", + "Row numbering": "Numera\xe7\xe3o de linhas", + "Row {0}": "Linha {0}", + "Selection": "Sele\xe7\xe3o", + "Sort": "Classificar", + "Sort by": "Classificar por", + "Sort table by column ascending": "Classificar tabela por coluna ascendente", + "Sort table by column descending": "Classificar tabela por coluna descendente", + "Table": "Tabela" +}); + +console.warn('TinyMCE language code "pt_BR" is deprecated, please use "pt-BR" instead.'); \ No newline at end of file diff --git a/plugins/advtable/langs/pt_PT.js b/plugins/advtable/langs/pt_PT.js new file mode 100644 index 00000000..9614454d --- /dev/null +++ b/plugins/advtable/langs/pt_PT.js @@ -0,0 +1,29 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pt-PT", { + "Advanced Sort": "Ordenar Avan\xe7ado", + "Advanced sort...": "Ordenar avan\xe7ado...", + "Alpha": "Alfab\xe9tica", + "Ascending": "Ascendente", + "Column": "Coluna", + "Column {0}": "Coluna {0}", + "Descending": "Descendente", + "None": "Nenhum", + "Numeric": "Num\xe9rica", + "Order": "Ordem", + "Row": "Linha", + "Row numbering": "Numera\xe7\xe3o de linhas", + "Row {0}": "Linha {0}", + "Selection": "Sele\xe7\xe3o", + "Sort": "Ordenar", + "Sort by": "Ordenar por", + "Sort table by column ascending": "Ordenar tabela por coluna ascendente", + "Sort table by column descending": "Ordenar tabela por coluna descendente", + "Table": "Tabela" +}); + +console.warn('TinyMCE language code "pt_PT" is deprecated, please use "pt-PT" instead.'); \ No newline at end of file diff --git a/plugins/advtable/langs/ro.js b/plugins/advtable/langs/ro.js new file mode 100644 index 00000000..8b83cdc4 --- /dev/null +++ b/plugins/advtable/langs/ro.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ro", { + "Advanced Sort": "Ordonare avansat\u0103", + "Advanced sort...": "Ordonare avansat\u0103...", + "Alpha": "Alfabetic\u0103", + "Ascending": "Cresc\u0103tor", + "Column": "Coloan\u0103", + "Column {0}": "Coloan\u0103 {0}", + "Descending": "Descresc\u0103tor", + "None": "Nu se utilizeaz\u0103 (acest c\xe2mp)", + "Numeric": "Numeric\u0103", + "Order": "Ordine", + "Row": "R\xe2nd", + "Row numbering": "Numerotare r\xe2nduri", + "Row {0}": "R\xe2nd {0}", + "Selection": "Selec\u021bie", + "Sort": "Ordonare", + "Sort by": "Ordonare dup\u0103", + "Sort table by column ascending": "Ordonare tabel ascendent \xeen func\u021bie de coloane", + "Sort table by column descending": "Ordonare tabel descendent \xeen func\u021bie de coloane", + "Table": "Tabel" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/ru.js b/plugins/advtable/langs/ru.js new file mode 100644 index 00000000..ea6b12df --- /dev/null +++ b/plugins/advtable/langs/ru.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ru", { + "Advanced Sort": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430", + "Advanced sort...": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430...", + "Alpha": "\u0411\u0443\u043a\u0432\u0435\u043d\u043d\u0430\u044f", + "Ascending": "\u041f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e", + "Column": "\u0421\u0442\u043e\u043b\u0431\u0435\u0446", + "Column {0}": "\u0421\u0442\u043e\u043b\u0431\u0435\u0446 {0}", + "Descending": "\u041f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e", + "None": "\u041d\u0435\u0442", + "Numeric": "\u0427\u0438\u0441\u043b\u043e\u0432\u0430\u044f", + "Order": "\u041f\u043e\u0440\u044f\u0434\u043e\u043a", + "Row": "\u0421\u0442\u0440\u043e\u043a\u0430", + "Row numbering": "\u041d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u0442\u0440\u043e\u043a", + "Row {0}": "\u0421\u0442\u0440\u043e\u043a\u0430 {0}", + "Selection": "\u0412\u044b\u0431\u043e\u0440", + "Sort": "\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c", + "Sort by": "\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e", + "Sort table by column ascending": "\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0443 \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e", + "Sort table by column descending": "\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0443 \u043f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e", + "Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/sk.js b/plugins/advtable/langs/sk.js new file mode 100644 index 00000000..2d8a9121 --- /dev/null +++ b/plugins/advtable/langs/sk.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sk", { + "Advanced Sort": "Pokro\u010dil\xe9 zoradenie", + "Advanced sort...": "Pokro\u010dil\xe9 zoradenie...", + "Alpha": "Abecedn\xe9", + "Ascending": "Vzostupne", + "Column": "St\u013apec", + "Column {0}": "St\u013apec {0}", + "Descending": "Zostupne", + "None": "\u017diadne", + "Numeric": "\u010c\xedseln\xe9", + "Order": "Poradie", + "Row": "Riadok", + "Row numbering": "\u010c\xedslovanie riadka", + "Row {0}": "Riadok {0}", + "Selection": "V\xfdber", + "Sort": "Zoradi\u0165", + "Sort by": "Zoradi\u0165 pod\u013ea", + "Sort table by column ascending": "Zoradi\u0165 tabu\u013eku vzostupne pod\u013ea st\u013apca", + "Sort table by column descending": "Zoradi\u0165 tabu\u013eku zostupne pod\u013ea st\u013apca", + "Table": "Tabu\u013eka" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/sl-SI.js b/plugins/advtable/langs/sl-SI.js new file mode 100644 index 00000000..d14526be --- /dev/null +++ b/plugins/advtable/langs/sl-SI.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sl-SI", { + "Advanced Sort": "Napredno razvr\u0161\u010danje", + "Advanced sort...": "Napredno razvr\u0161\u010danje ...", + "Alpha": "Abecedno", + "Ascending": "Nara\u0161\u010dajo\u010de", + "Column": "Stolpec", + "Column {0}": "Stolpec {0}", + "Descending": "Padajo\u010de", + "None": "Brez", + "Numeric": "\u0160tevilsko", + "Order": "Vrstni red", + "Row": "Vrstica", + "Row numbering": "\u0160tevil\u010denje vrstic", + "Row {0}": "Vrstica {0}", + "Selection": "Izbor", + "Sort": "Razvrsti", + "Sort by": "Razvrsti po", + "Sort table by column ascending": "Tabelo razvrsti po nara\u0161\u010dajo\u010dih stolpcih", + "Sort table by column descending": "Tabelo razvrsti po padajo\u010dih stolpcih", + "Table": "Tabela" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/sl_SI.js b/plugins/advtable/langs/sl_SI.js new file mode 100644 index 00000000..dddf42c5 --- /dev/null +++ b/plugins/advtable/langs/sl_SI.js @@ -0,0 +1,29 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sl-SI", { + "Advanced Sort": "Napredno razvr\u0161\u010danje", + "Advanced sort...": "Napredno razvr\u0161\u010danje ...", + "Alpha": "Abecedno", + "Ascending": "Nara\u0161\u010dajo\u010de", + "Column": "Stolpec", + "Column {0}": "Stolpec {0}", + "Descending": "Padajo\u010de", + "None": "Brez", + "Numeric": "\u0160tevilsko", + "Order": "Vrstni red", + "Row": "Vrstica", + "Row numbering": "\u0160tevil\u010denje vrstic", + "Row {0}": "Vrstica {0}", + "Selection": "Izbor", + "Sort": "Razvrsti", + "Sort by": "Razvrsti po", + "Sort table by column ascending": "Tabelo razvrsti po nara\u0161\u010dajo\u010dih stolpcih", + "Sort table by column descending": "Tabelo razvrsti po padajo\u010dih stolpcih", + "Table": "Tabela" +}); + +console.warn('TinyMCE language code "sl_SI" is deprecated, please use "sl-SI" instead.'); \ No newline at end of file diff --git a/plugins/advtable/langs/sv-SE.js b/plugins/advtable/langs/sv-SE.js new file mode 100644 index 00000000..51b0fd3a --- /dev/null +++ b/plugins/advtable/langs/sv-SE.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sv-SE", { + "Advanced Sort": "Avancerad sortering", + "Advanced sort...": "Avancerad sortering...", + "Alpha": "Alfabetiskt", + "Ascending": "Stigande", + "Column": "Kolumn", + "Column {0}": "Kolumn {0}", + "Descending": "Fallande", + "None": "Ingen", + "Numeric": "Numeriskt", + "Order": "Ordning", + "Row": "Rad", + "Row numbering": "Radnumrering", + "Row {0}": "Rad {0}", + "Selection": "Val", + "Sort": "Sortera", + "Sort by": "Sortera efter", + "Sort table by column ascending": "Sortera tabell efter kolumn i stigande ordning", + "Sort table by column descending": "Sortera tabell efter kolumn i fallande ordning", + "Table": "Tabell" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/sv_SE.js b/plugins/advtable/langs/sv_SE.js new file mode 100644 index 00000000..77f71c7f --- /dev/null +++ b/plugins/advtable/langs/sv_SE.js @@ -0,0 +1,29 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sv-SE", { + "Advanced Sort": "Avancerad sortering", + "Advanced sort...": "Avancerad sortering...", + "Alpha": "Alfabetiskt", + "Ascending": "Stigande", + "Column": "Kolumn", + "Column {0}": "Kolumn {0}", + "Descending": "Fallande", + "None": "Ingen", + "Numeric": "Numeriskt", + "Order": "Ordning", + "Row": "Rad", + "Row numbering": "Radnumrering", + "Row {0}": "Rad {0}", + "Selection": "Val", + "Sort": "Sortera", + "Sort by": "Sortera efter", + "Sort table by column ascending": "Sortera tabell efter kolumn i stigande ordning", + "Sort table by column descending": "Sortera tabell efter kolumn i fallande ordning", + "Table": "Tabell" +}); + +console.warn('TinyMCE language code "sv_SE" is deprecated, please use "sv-SE" instead.'); \ No newline at end of file diff --git a/plugins/advtable/langs/th-TH.js b/plugins/advtable/langs/th-TH.js new file mode 100644 index 00000000..6dd737e5 --- /dev/null +++ b/plugins/advtable/langs/th-TH.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("th-TH", { + "Advanced Sort": "\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e07\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e02\u0e31\u0e49\u0e19\u0e2a\u0e39\u0e07", + "Advanced sort...": "\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e07\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e02\u0e31\u0e49\u0e19\u0e2a\u0e39\u0e07...", + "Alpha": "\u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23", + "Ascending": "\u0e08\u0e32\u0e01\u0e19\u0e49\u0e2d\u0e22\u0e44\u0e1b\u0e21\u0e32\u0e01", + "Column": "\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c", + "Column {0}": "\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c {0}", + "Descending": "\u0e08\u0e32\u0e01\u0e21\u0e32\u0e01\u0e44\u0e1b\u0e19\u0e49\u0e2d\u0e22", + "None": "\u0e44\u0e21\u0e48\u0e21\u0e35", + "Numeric": "\u0e15\u0e31\u0e27\u0e40\u0e25\u0e02", + "Order": "\u0e25\u0e33\u0e14\u0e31\u0e1a", + "Row": "\u0e41\u0e16\u0e27", + "Row numbering": "\u0e01\u0e32\u0e23\u0e19\u0e31\u0e1a\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e41\u0e16\u0e27", + "Row {0}": "\u0e41\u0e16\u0e27 {0}", + "Selection": "\u0e01\u0e32\u0e23\u0e40\u0e25\u0e37\u0e2d\u0e01", + "Sort": "\u0e40\u0e23\u0e35\u0e22\u0e07\u0e25\u0e33\u0e14\u0e31\u0e1a", + "Sort by": "\u0e40\u0e23\u0e35\u0e22\u0e07\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e15\u0e32\u0e21", + "Sort table by column ascending": "\u0e40\u0e23\u0e35\u0e22\u0e07\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e32\u0e21\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c\u0e08\u0e32\u0e01\u0e19\u0e49\u0e2d\u0e22\u0e44\u0e1b\u0e2b\u0e32\u0e21\u0e32\u0e01", + "Sort table by column descending": "\u0e40\u0e23\u0e35\u0e22\u0e07\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e32\u0e21\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c\u0e08\u0e32\u0e01\u0e21\u0e32\u0e01\u0e44\u0e1b\u0e2b\u0e32\u0e19\u0e49\u0e2d\u0e22", + "Table": "\u0e15\u0e32\u0e23\u0e32\u0e07" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/th_TH.js b/plugins/advtable/langs/th_TH.js new file mode 100644 index 00000000..608c2a5f --- /dev/null +++ b/plugins/advtable/langs/th_TH.js @@ -0,0 +1,29 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("th-TH", { + "Advanced Sort": "\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e07\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e02\u0e31\u0e49\u0e19\u0e2a\u0e39\u0e07", + "Advanced sort...": "\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e07\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e02\u0e31\u0e49\u0e19\u0e2a\u0e39\u0e07...", + "Alpha": "\u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23", + "Ascending": "\u0e08\u0e32\u0e01\u0e19\u0e49\u0e2d\u0e22\u0e44\u0e1b\u0e21\u0e32\u0e01", + "Column": "\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c", + "Column {0}": "\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c {0}", + "Descending": "\u0e08\u0e32\u0e01\u0e21\u0e32\u0e01\u0e44\u0e1b\u0e19\u0e49\u0e2d\u0e22", + "None": "\u0e44\u0e21\u0e48\u0e21\u0e35", + "Numeric": "\u0e15\u0e31\u0e27\u0e40\u0e25\u0e02", + "Order": "\u0e25\u0e33\u0e14\u0e31\u0e1a", + "Row": "\u0e41\u0e16\u0e27", + "Row numbering": "\u0e01\u0e32\u0e23\u0e19\u0e31\u0e1a\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e41\u0e16\u0e27", + "Row {0}": "\u0e41\u0e16\u0e27 {0}", + "Selection": "\u0e01\u0e32\u0e23\u0e40\u0e25\u0e37\u0e2d\u0e01", + "Sort": "\u0e40\u0e23\u0e35\u0e22\u0e07\u0e25\u0e33\u0e14\u0e31\u0e1a", + "Sort by": "\u0e40\u0e23\u0e35\u0e22\u0e07\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e15\u0e32\u0e21", + "Sort table by column ascending": "\u0e40\u0e23\u0e35\u0e22\u0e07\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e32\u0e21\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c\u0e08\u0e32\u0e01\u0e19\u0e49\u0e2d\u0e22\u0e44\u0e1b\u0e2b\u0e32\u0e21\u0e32\u0e01", + "Sort table by column descending": "\u0e40\u0e23\u0e35\u0e22\u0e07\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e32\u0e21\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c\u0e08\u0e32\u0e01\u0e21\u0e32\u0e01\u0e44\u0e1b\u0e2b\u0e32\u0e19\u0e49\u0e2d\u0e22", + "Table": "\u0e15\u0e32\u0e23\u0e32\u0e07" +}); + +console.warn('TinyMCE language code "th_TH" is deprecated, please use "th-TH" instead.'); \ No newline at end of file diff --git a/plugins/advtable/langs/tr.js b/plugins/advtable/langs/tr.js new file mode 100644 index 00000000..63ed8c45 --- /dev/null +++ b/plugins/advtable/langs/tr.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("tr", { + "Advanced Sort": "Geli\u015fmi\u015f S\u0131ralama", + "Advanced sort...": "Geli\u015fmi\u015f s\u0131ralama...", + "Alpha": "Alfabetik", + "Ascending": "Artan", + "Column": "S\xfctun", + "Column {0}": "S\xfctun {0}", + "Descending": "Azalan", + "None": "Yok", + "Numeric": "Say\u0131sal", + "Order": "D\xfczen", + "Row": "Sat\u0131r", + "Row numbering": "Sat\u0131r numaralar\u0131", + "Row {0}": "Sat\u0131r {0}", + "Selection": "Se\xe7im", + "Sort": "S\u0131rala", + "Sort by": "S\u0131ralama parametresi", + "Sort table by column ascending": "Tabloyu artan s\xfctun d\xfczeninde s\u0131rala", + "Sort table by column descending": "Tabloyu azalan s\xfctun d\xfczeninde s\u0131rala", + "Table": "Tablo" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/uk.js b/plugins/advtable/langs/uk.js new file mode 100644 index 00000000..fc1359de --- /dev/null +++ b/plugins/advtable/langs/uk.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("uk", { + "Advanced Sort": "\u0414\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u0435 \u0441\u043e\u0440\u0442\u0443\u0432\u0430\u043d\u043d\u044f", + "Advanced sort...": "\u0414\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u0435 \u0441\u043e\u0440\u0442\u0443\u0432\u0430\u043d\u043d\u044f...", + "Alpha": "\u0411\u0443\u043a\u0432\u0438", + "Ascending": "\u0417\u0430 \u0437\u0440\u043e\u0441\u0442\u0430\u043d\u043d\u044f\u043c", + "Column": "\u0421\u0442\u043e\u0432\u043f\u0435\u0446\u044c", + "Column {0}": "\u0421\u0442\u043e\u0432\u043f\u0435\u0446\u044c {0}", + "Descending": "\u0417\u0430 \u0441\u043f\u0430\u0434\u0430\u043d\u043d\u044f\u043c", + "None": "\u041d\u0435\u043c\u0430\u0454", + "Numeric": "\u0426\u0438\u0444\u0440\u0438", + "Order": "\u041f\u043e\u0440\u044f\u0434\u043e\u043a", + "Row": "\u0420\u044f\u0434\u043e\u043a", + "Row numbering": "\u041d\u0443\u043c\u0435\u0440\u0430\u0446\u0456\u044f \u0440\u044f\u0434\u043a\u0456\u0432", + "Row {0}": "\u0420\u044f\u0434\u043e\u043a {0}", + "Selection": "\u0412\u0438\u0434\u0456\u043b\u0435\u043d\u043d\u044f", + "Sort": "\u0421\u043e\u0440\u0442\u0443\u0432\u0430\u043d\u043d\u044f", + "Sort by": "\u0421\u043e\u0440\u0442\u0443\u0432\u0430\u0442\u0438 \u0437\u0430", + "Sort table by column ascending": "\u0421\u043e\u0440\u0442\u0443\u0432\u0430\u0442\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044e \u0437\u0430 \u0437\u0440\u043e\u0441\u0442\u0430\u043d\u043d\u044f\u043c", + "Sort table by column descending": "\u0421\u043e\u0440\u0442\u0443\u0432\u0430\u0442\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044e \u0437\u0430 \u0441\u043f\u0430\u0434\u0430\u043d\u043d\u044f\u043c", + "Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u044f" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/vi.js b/plugins/advtable/langs/vi.js new file mode 100644 index 00000000..74f38548 --- /dev/null +++ b/plugins/advtable/langs/vi.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("vi", { + "Advanced Sort": "S\u1eafp x\u1ebfp n\xe2ng cao", + "Advanced sort...": "S\u1eafp x\u1ebfp n\xe2ng cao...", + "Alpha": "Ch\u1eef c\xe1i", + "Ascending": "T\u0103ng d\u1ea7n", + "Column": "C\xf4\u0323t", + "Column {0}": "C\xf4\u0323t {0}", + "Descending": "Gi\u1ea3m d\u1ea7n", + "None": "Kh\xf4ng c\xf3", + "Numeric": "S\u1ed1", + "Order": "Th\u1ee9 t\u1ef1", + "Row": "H\xe0ng", + "Row numbering": "\u0110\xe1nh s\u1ed1 h\xe0ng", + "Row {0}": "H\xe0ng {0}", + "Selection": "L\u1ef1a ch\u1ecdn", + "Sort": "S\u1eafp x\u1ebfp", + "Sort by": "S\u1eafp x\u1ebfp theo", + "Sort table by column ascending": "S\u1eafp x\u1ebfp b\u1ea3ng theo c\u1ed9t t\u0103ng d\u1ea7n", + "Sort table by column descending": "S\u1eafp x\u1ebfp b\u1ea3ng theo c\u1ed9t gi\u1ea3m d\u1ea7n", + "Table": "Ba\u0309ng" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/zh-CN.js b/plugins/advtable/langs/zh-CN.js new file mode 100644 index 00000000..275122be --- /dev/null +++ b/plugins/advtable/langs/zh-CN.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("zh-CN", { + "Advanced Sort": "\u9ad8\u7ea7\u6392\u5e8f", + "Advanced sort...": "\u9ad8\u7ea7\u6392\u5e8f...", + "Alpha": "\u5b57\u6bcd", + "Ascending": "\u5347\u5e8f", + "Column": "\u680f\u76ee", + "Column {0}": "\u5217 {0}", + "Descending": "\u964d\u5e8f", + "None": "\u65e0", + "Numeric": "\u6570\u503c", + "Order": "\u987a\u5e8f", + "Row": "\u884c", + "Row numbering": "\u884c\u7f16\u53f7", + "Row {0}": "\u884c {0}", + "Selection": "\u9009\u9879", + "Sort": "\u6392\u5e8f", + "Sort by": "\u6392\u5217\u65b9\u5f0f\uff1a", + "Sort table by column ascending": "\u6309\u5217\u5347\u5e8f\u8fdb\u884c\u8868\u683c\u6392\u5e8f", + "Sort table by column descending": "\u6309\u5217\u964d\u5e8f\u8fdb\u884c\u8868\u683c\u6392\u5e8f", + "Table": "\u8868\u683c" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/zh-TW.js b/plugins/advtable/langs/zh-TW.js new file mode 100644 index 00000000..1e997ec8 --- /dev/null +++ b/plugins/advtable/langs/zh-TW.js @@ -0,0 +1,27 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("zh-TW", { + "Advanced Sort": "\u9032\u968e\u6392\u5e8f", + "Advanced sort...": "\u9032\u968e\u6392\u5e8f...", + "Alpha": "\u5b57\u6bcd", + "Ascending": "\u6607\u5e8f", + "Column": "\u6b04\u76ee", + "Column {0}": "{0}\u6b04", + "Descending": "\u964d\u5e8f", + "None": "\u7121", + "Numeric": "\u6578\u5b57", + "Order": "\u9806\u5e8f", + "Row": "\u884c", + "Row numbering": "\u5217\u7de8\u865f", + "Row {0}": "{0}\u884c", + "Selection": "\u9078\u9805", + "Sort": "\u6392\u5e8f", + "Sort by": "\u6392\u5217\u65b9\u5f0f", + "Sort table by column ascending": "\u8868\u683c\u4f9d\u76f4\u6b04\u905e\u589e\u6392\u5217", + "Sort table by column descending": "\u8868\u683c\u4f9d\u76f4\u6b04\u905e\u6e1b\u6392\u5217", + "Table": "\u8868\u683c" +}); \ No newline at end of file diff --git a/plugins/advtable/langs/zh_CN.js b/plugins/advtable/langs/zh_CN.js new file mode 100644 index 00000000..f0988f6e --- /dev/null +++ b/plugins/advtable/langs/zh_CN.js @@ -0,0 +1,29 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("zh-CN", { + "Advanced Sort": "\u9ad8\u7ea7\u6392\u5e8f", + "Advanced sort...": "\u9ad8\u7ea7\u6392\u5e8f...", + "Alpha": "\u5b57\u6bcd", + "Ascending": "\u5347\u5e8f", + "Column": "\u680f\u76ee", + "Column {0}": "\u5217 {0}", + "Descending": "\u964d\u5e8f", + "None": "\u65e0", + "Numeric": "\u6570\u503c", + "Order": "\u987a\u5e8f", + "Row": "\u884c", + "Row numbering": "\u884c\u7f16\u53f7", + "Row {0}": "\u884c {0}", + "Selection": "\u9009\u9879", + "Sort": "\u6392\u5e8f", + "Sort by": "\u6392\u5217\u65b9\u5f0f\uff1a", + "Sort table by column ascending": "\u6309\u5217\u5347\u5e8f\u8fdb\u884c\u8868\u683c\u6392\u5e8f", + "Sort table by column descending": "\u6309\u5217\u964d\u5e8f\u8fdb\u884c\u8868\u683c\u6392\u5e8f", + "Table": "\u8868\u683c" +}); + +console.warn('TinyMCE language code "zh_CN" is deprecated, please use "zh-CN" instead.'); \ No newline at end of file diff --git a/plugins/advtable/langs/zh_TW.js b/plugins/advtable/langs/zh_TW.js new file mode 100644 index 00000000..1532dc88 --- /dev/null +++ b/plugins/advtable/langs/zh_TW.js @@ -0,0 +1,29 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("zh-TW", { + "Advanced Sort": "\u9032\u968e\u6392\u5e8f", + "Advanced sort...": "\u9032\u968e\u6392\u5e8f...", + "Alpha": "\u5b57\u6bcd", + "Ascending": "\u6607\u5e8f", + "Column": "\u6b04\u76ee", + "Column {0}": "{0}\u6b04", + "Descending": "\u964d\u5e8f", + "None": "\u7121", + "Numeric": "\u6578\u5b57", + "Order": "\u9806\u5e8f", + "Row": "\u884c", + "Row numbering": "\u5217\u7de8\u865f", + "Row {0}": "{0}\u884c", + "Selection": "\u9078\u9805", + "Sort": "\u6392\u5e8f", + "Sort by": "\u6392\u5217\u65b9\u5f0f", + "Sort table by column ascending": "\u8868\u683c\u4f9d\u76f4\u6b04\u905e\u589e\u6392\u5217", + "Sort table by column descending": "\u8868\u683c\u4f9d\u76f4\u6b04\u905e\u6e1b\u6392\u5217", + "Table": "\u8868\u683c" +}); + +console.warn('TinyMCE language code "zh_TW" is deprecated, please use "zh-TW" instead.'); \ No newline at end of file diff --git a/plugins/advtable/plugin.js b/plugins/advtable/plugin.js new file mode 100644 index 00000000..caef0946 --- /dev/null +++ b/plugins/advtable/plugin.js @@ -0,0 +1,10 @@ +/*! + * Tiny Enhanced Tables plugin + * + * Copyright (c) 2023 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + * + * Version: 8.3.0-112 + */ + +!function(){"use strict";const e=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(o=n=e,(r=String).prototype.isPrototypeOf(o)||n.constructor?.name===r.name)?"string":t;var o,n,r})(t)===e,t=e=>t=>typeof t===e,o=e=>t=>e===t,n=e("string"),r=e("object"),s=e("array"),l=o(null),c=t("boolean"),a=o(void 0),i=e=>null==e,u=e=>!i(e),m=t("function"),d=t("number"),p=()=>{},g=e=>()=>e,h=e=>e,f=(e,t)=>e===t;function w(e,...t){return(...o)=>{const n=t.concat(o);return e.apply(null,n)}}const b=g(!1),v=g(!0);class y{tag;value;static singletonNone=new y(!1);constructor(e,t){this.tag=e,this.value=t}static some(e){return new y(!0,e)}static none(){return y.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?y.some(e(this.value)):y.none()}bind(e){return this.tag?e(this.value):y.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:y.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(e??"Called getOrDie on None")}static from(e){return u(e)?y.some(e):y.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}const C=Array.prototype.slice,x=Array.prototype.indexOf,S=Array.prototype.push,T=(e,t)=>{return o=e,n=t,x.call(o,n)>-1;var o,n},R=(e,t)=>{for(let o=0,n=e.length;o{const o=[];for(let n=0;n{const o=e.length,n=new Array(o);for(let r=0;r{for(let o=0,n=e.length;o{const o=[],n=[];for(let r=0,s=e.length;r{const o=[];for(let n=0,r=e.length;n{if(0===e.length)return[];{let o=t(e[0]);const n=[];let r=[];for(let s=0,l=e.length;s(((e,t)=>{for(let o=e.length-1;o>=0;o--)t(e[o],o)})(e,((e,n)=>{o=t(o,e,n)})),o),P=(e,t,o)=>(E(e,((e,n)=>{o=t(o,e,n)})),o),$=(e,t)=>((e,t,o)=>{for(let n=0,r=e.length;n(e=>{const t=[];for(let o=0,n=e.length;o{for(let o=0,n=e.length;o{const o=C.call(e,0);return o.sort(t),o},B=(e,t)=>t>=0&&tB(e,0),z=e=>B(e,e.length-1),F=(e,t)=>{for(let o=0;o{const o=V(e);for(let n=0,r=o.length;nG(e,((e,o)=>({k:o,v:t(e,o)}))),G=(e,t)=>{const o={};return q(e,((e,n)=>{const r=t(e,n);o[r.k]=r.v})),o},U=(e,t)=>{const o=[];return q(e,((e,n)=>{o.push(t(e,n))})),o},K=e=>U(e,h),Q=e=>V(e).length,X=(e,t)=>Y(e,t)?y.from(e[t]):y.none(),Y=(e,t)=>H.call(e,t),J=e=>{for(const t in e)if(H.call(e,t))return!1;return!0},Z=e=>{let t=e;return{get:()=>t,set:e=>{t=e}}},ee="undefined"!=typeof window?window:Function("return this;")(),te=(e,t,o=f)=>e.exists((e=>o(e,t))),oe=(e,t,o)=>e.isSome()&&t.isSome()?y.some(o(e.getOrDie(),t.getOrDie())):y.none(),ne=e=>e.bind(h),re=(e,t)=>e?y.some(t):y.none(),se=(e,t)=>((e,t)=>{let o=null!=t?t:ee;for(let t=0;t{const r=e.indexOf(t,o);return-1!==r&&(!!a(n)||r+t.length<=n)},ce=(e=>t=>t.replace(e,""))(/^\s+|\s+$/g),ae=e=>!(e=>e.length>0)(e),ie=e=>{let t,o=!1;return(...n)=>(o||(o=!0,t=e.apply(null,n)),t)},ue=(e,t)=>{const{type:o,message:n}=t;e.notificationManager.open({type:o,text:n})},me=e=>{const t=(e=>{switch(e){case"error":return console.error;case"info":return console.info;case"warn":return console.warn;default:return console.log}})(e.type);t(e.message)},de=(e,t)=>{const{protect:o,allowList:n=[],blockList:r=[]}=null!=e?e:{};let s;return s=u(o)?o:n.length>0||r.length>0||t,{protect:s,allowList:n,blockList:r}},pe=e=>{const{protect:t,allowList:o,blockList:n}=null!=e?e:{};return e=>{const r=e.toLowerCase();return o.length>0?!R(o,(e=>e.toLowerCase()===r)):n.length>0?R(n,(e=>e.toLowerCase()===r)):t}},ge=e=>{const t=pe(e);return(e,o)=>{const n=((e,t)=>`${e}:${t}`)(o,e.toLowerCase());return t(n)}},he=(e,t,o,n)=>{const r=Reflect.get(e,"on"),s={protectedEventHandlers:[],cleanupScheduled:!1},l=(e,t)=>{n&&console.log(`[EventsProxy] ${e}`,t||"")},c=t=>{"invalid"===t&&s.protectedEventHandlers.length>0&&(l("Removing event handlers",s.protectedEventHandlers),E(s.protectedEventHandlers,(t=>{e.off(t.name,t.callback)})),s.protectedEventHandlers=[])},a=t.onStatusChange(c);return e.on("remove",a),(n,a,i)=>{l(`Adding event listener: ${n}`,{shouldProtect:o(n)});const u=((e,n)=>{const r=o(e),l=t.getStatus(),c=r&&"invalid"===l?p:n;return r&&s.protectedEventHandlers.push({name:e,callback:c}),c})(n,a);return s.cleanupScheduled||(s.cleanupScheduled=!0,window.setTimeout((()=>{c(t.getStatus()),s.cleanupScheduled=!1}),0)),Reflect.apply(r,e,[n,u,i])}},fe=(e,t,o)=>n=>{const r="invalid"!==t.getStatus()&&u(o)?o(n):p,s=((e,t,o)=>{const n=e=>{"invalid"===e&&o.setEnabled(!1)},r=()=>n(t.getStatus());n(t.getStatus()),e.on("NodeChange",r);const s=t.onStatusChange(n);return()=>{e.off("NodeChange",r),s()}})(e,t,n);return e=>{null==r||r(e),s()}},we=(e,t,o)=>(...n)=>{var r;return"invalid"===e.getStatus()?o:null!==(r=null==t?void 0:t(...n))&&void 0!==r?r:o},be=(e,t)=>we(e,t,Promise.resolve([])),ve=(e,t)=>we(e,t,[]),ye=(e,t)=>we(e,t,!1),Ce=(e,t,o,r)=>{const s=t=>{const{command:s,value:l}=t,c=y.from(l).filter(n).map((e=>e.toLowerCase())),a=s.toLowerCase()===r.toLowerCase(),i=c.exists((e=>o.has(e))),u=c.exists((t=>t===e.queryCommandValue(r)));a&&i&&!u&&t.preventDefault()},l=t.onStatusChange((t=>{if("invalid"===t){e.on("BeforeExecCommand",s);const t=()=>{const t=e.queryCommandValue(r);o.has(t.toLowerCase())&&e.execCommand(r,!1,t)};e.initialized?t():e.on("init",t)}}));e.on("remove",(()=>{l(),e.off("BeforeExecCommand",s)}))},xe=(e,t,o,r,s,l=!1)=>{const c=new Set,a=new Set,i=(e,t)=>{l&&console.log(`[UiProxy] ${e}`,t||"")};((e,t,o)=>{Ce(e,t,o,"ToggleView")})(e,o,c),((e,t,o)=>{Ce(e,t,o,"ToggleSidebar")})(e,o,a);const u=(t,n,l,c)=>{const a=s(t,l);return i(`${c}: ${t}`,{spec:n,context:r,shouldProtect:a}),a?{...n,onSetup:fe(e,o,n.onSetup)}:n};return new Proxy(t,{get:(e,t,l)=>{const m=Reflect.get(e,t,l);if(!n(t))return m;switch(t){case"addButton":case"addGroupToolbarButton":case"addToggleButton":case"addMenuButton":case"addSplitButton":return(...o)=>{const[n,r,...s]=o,l=u(n,r,"button",String(t));return Reflect.apply(m,e,[n,l,...s])};case"addMenuItem":case"addToggleMenuItem":case"addNestedMenuItem":return(...o)=>{const[n,r,...s]=o,l=u(n,r,"menuitem",String(t));return Reflect.apply(m,e,[n,l,...s])};case"addAutocompleter":return(...n)=>{const[l,c,...a]=n,u=s(l,"autocompleter");if(i(`${String(t)}: ${l}`,{spec:c,context:r,shouldProtect:u}),u){const t={...c,fetch:be(o,c.fetch)};return Reflect.apply(m,e,[l,t,...a])}return Reflect.apply(m,e,[l,c,...a])};case"addSidebar":return(...o)=>{const[n,l,...c]=o,u=s(n,"sidebar");if(i(`${String(t)}: ${n}`,{spec:l,context:r,shouldProtect:u}),u){a.add(n.toLowerCase());const t={...l};return Reflect.apply(m,e,[n,t,...c])}return Reflect.apply(m,e,[n,l,...c])};case"addView":return(...o)=>{const[n,l,...a]=o,u=s(n,"view");if(i(`${String(t)}: ${n}`,{spec:l,context:r,shouldProtect:u}),u){c.add(n.toLowerCase());const t={...l};return Reflect.apply(m,e,[n,t,...a])}return Reflect.apply(m,e,[n,l,...a])};case"addContextMenu":return(...n)=>{const[l,c,...a]=n,u=s(l,"contextmenu");if(i(`${String(t)}: ${l}`,{spec:c,context:r,shouldProtect:u}),u){const t={...c,update:ve(o,c.update)};return Reflect.apply(m,e,[l,t,...a])}return Reflect.apply(m,e,[l,c,...a])};case"addContextToolbar":case"addContextForm":return(...n)=>{const[l,c,...a]=n,u=s(l,"contexttoolbar");if(i(`${String(t)}: ${l}`,{spec:c,context:r,shouldProtect:u}),u){const t={...c,predicate:ye(o,c.predicate)};return Reflect.apply(m,e,[l,t,...a])}return Reflect.apply(m,e,[l,c,...a])};case"addIcon":case"getAll":case"addContext":return m}}})},Se=new Set(["addCommand","addCommands","addQueryStateHandler","addQueryValueHandler"]),Te=e=>(t,o)=>{e&&console.log(`[EditorProxy] ${t}`,o||"")},Re=(e,t)=>{const{statusProvider:o,uiContext:n,protection:r,debug:s=!1}=t,{events:l,commands:c,ui:a}=r;Te(s)("Creating enhanced editor with options:",{hasStatusProvider:!!o,uiContext:n,debug:s,protection:r});const{editorUiProxy:i,editorCommandsProxy:u,editorEventListenerProxy:d}=((e,t,o,n,r,s,l)=>{const c=s.protect?{...e.ui,registry:xe(e,e.ui.registry,t,o,ge(s),l)}:e.ui,a=n.protect?((e,t,o,n,r)=>{const s={protectedCommands:[],cleanupScheduled:!1},l=(e,t)=>{r&&console.log(`[CommandsProxy] ${e}`,t||"")},c=(e,t)=>{const r=n(e),l=o.getStatus();return r&&s.protectedCommands.push(e),r&&"invalid"===l?p:t},a=t=>{"invalid"===t&&s.protectedCommands.length>0&&(l("Removing commands",s.protectedCommands),E(s.protectedCommands,(t=>{e.editorCommands.removeCommand(t)})),s.protectedCommands=[])},i=()=>{s.cleanupScheduled||(s.cleanupScheduled=!0,window.setTimeout((()=>{a(o.getStatus()),s.cleanupScheduled=!1}),0))},u=o.onStatusChange(a);return e.on("remove",u),new Proxy(t,{get:(e,o,r)=>{if(l(`Accessing property: ${String(o)}`),"addCommand"===o){const s=Reflect.get(e,o,r);return(e,o,...r)=>{l(`Adding command: ${e}`,{shouldProtect:n(e)});const a=c(e,o);return i(),Reflect.apply(s,t,[e,a,...r])}}if("addCommands"===o){const n=Reflect.get(e,o,r);return(e,o="exec")=>{l(`Adding commands (${o})`,{commandCount:Object.keys(e).length,willApplyEnforcement:"exec"===o});const r="exec"!==o?e:_(e,((e,t)=>c(t,e)));return i(),Reflect.apply(n,t,[r,o])}}return Reflect.get(e,o,r)}})})(e,e.editorCommands,t,pe(n),l):e.editorCommands;return{editorUiProxy:c,editorCommandsProxy:a,editorEventListenerProxy:r.protect?he(e,t,pe(r),l):e.on.bind(e)}})(e,o,n||"",c,l,a,s),g=((e,t,o,n)=>(r,s,l)=>{const c=String(s);if("on"===s)return Te(n)("on intercepted"),o;if(Se.has(c))return Te(n)(`${c} intercepted`),t[c].bind(t);if("editorCommands"===s)return Te(n)("editorCommands accessed"),t;if("ui"===s)return Te(n)("ui accessed"),e;const a=Reflect.get(r,s,l);return m(a)?a.bind(r):a})(i,u,d,s);return new Proxy(e,{get:g,set:(e,t,o,n)=>Reflect.set(e,t,o,n),has:(e,t)=>Reflect.has(e,t),ownKeys:e=>Reflect.ownKeys(e),getOwnPropertyDescriptor:(e,t)=>Reflect.getOwnPropertyDescriptor(e,t),defineProperty:(e,t,o)=>Reflect.defineProperty(e,t,o),deleteProperty:(e,t)=>Reflect.deleteProperty(e,t),isExtensible:e=>Reflect.isExtensible(e),preventExtensions:e=>Reflect.preventExtensions(e),getPrototypeOf:e=>Reflect.getPrototypeOf(e),setPrototypeOf:(e,t)=>Reflect.setPrototypeOf(e,t)})},Oe=e=>parseInt(e,10),De=(e,t)=>{const o=e-t;return 0===o?0:o>0?1:-1},Ee=(e,t,o)=>({major:e,minor:t,patch:o}),ke=e=>{const t=/([0-9]+)\.([0-9]+)\.([0-9]+)(?:(\-.+)?)/.exec(e);return t?Ee(Oe(t[1]),Oe(t[2]),Oe(t[3])):Ee(0,0,0)},Ae=(e,t)=>!!e&&-1===((e,t)=>{const o=De(e.major,t.major);if(0!==o)return o;const n=De(e.minor,t.minor);if(0!==n)return n;const r=De(e.patch,t.patch);return 0!==r?r:0})((e=>ke((e=>[e.majorVersion,e.minorVersion].join(".").split(".").slice(0,3).join("."))(e)))(e),ke(t)),Ne=ke("8.3.0"),Le=`${Ne.major}.${Ne.minor}.0`,Pe=`${Ne.major+1}.0.0`,$e=(e,t)=>{const{setup:o,protection:n}=t;return(r,s)=>{if(!((e,t)=>Ae(e,Le)?(console.error(`The "${t}" plugin requires at least version ${Le} of TinyMCE.`),!1):!!Ae(e,Pe)||(console.error(`The "${t}" plugin requires at least version ${Le} of TinyMCE but less than ${Pe}.`),!1))(tinymce,e)||((e,t)=>!!(e=>{var t;const o=null===(t=e.options.get("license_key"))||void 0===t?void 0:t.toLowerCase(),n=e.options.get("online_license_key");return i(n)&&"gpl"===o})(e)&&(((e,t)=>{const{console:o,editor:n}=t;u(n)&&(e._skinLoaded?ue(e,n):e.on("SkinLoaded",(()=>{ue(e,n)}))),u(o)&&me(o)})(e,{console:{type:"error",message:[`The "${t}" plugin requires a valid TinyMCE license key.`,"Read more: https://www.tiny.cloud/docs/tinymce/latest/license-key/"].join(" ")}}),!0))(r,e))return{};const l=(e=>{const{protect:t=!0,events:o,commands:n,ui:r,api:s}=null!=e?e:{};return{protect:t,events:de(o,false),commands:de(n,true),ui:de(r,true),api:de(s,true)}})(n),c=((e="pre-validation")=>{const t=Z(e),o=new Set;let n=!1;const{enableLogging:r=!1}={},s=(e,...t)=>{r&&console.log(`[StatusProvider] ${e}`,...t)};return{setStatus:e=>{const n=t.get();if(n===e)return s("Status unchanged:",e),!1;t.set(e),s("Status changed:",n,"->",e);const r={currentStatus:e,previousStatus:n},l=Array.from(o);return E(l,(e=>{e(r.currentStatus,r.previousStatus)})),!0},onStatusChange:e=>(o.add(e),s("Callback registered, total listeners:",o.size),()=>{o.delete(e)&&s("Callback unregistered, remaining listeners:",o.size)}),getStatus:t.get,hasListeners:()=>o.size>0,destroy:()=>{n||(s("Destroying StatusProvider, clearing",o.size,"listeners"),o.clear(),n=!0)}}})(),a=((e,t,o)=>{const n=`commercial-license-${t}`;return e.ui.registry.addContext(n,(()=>"invalid"!==o.getStatus()&&!e.mode.isReadOnly())),e.licenseKeyManager.validate({plugin:t}).then((e=>{o.setStatus(e?"valid":"invalid")}),(e=>{console.error(e),console.error(`An unknown error occurred when trying to validate "${t}" plugin.`),o.setStatus("invalid")})),{ui:{context:n}}})(r,e,c),d=l.protect?Re(r,{statusProvider:c,uiContext:a.ui.context,debug:t.debug||!1,protection:l}):r,p=((e,t)=>({pluginCode:e,enforcer:{isInvalid:()=>"invalid"===t.getStatus(),onInvalid:e=>t.onStatusChange(((t,o)=>{"invalid"===t&&e(t,o)}))}}))(e,c);return((e,t,o,n)=>{if(t.protect&&t.api.protect&&u(e)){const s=pe(t.api);return(r=e=>"invalid"===o.getStatus()&&s(e),(e,t)=>_(e,((e,o)=>m(e)?(...n)=>{if(r(o.toLowerCase())){const e=`Method "${u(t)?`${t}.`:""}${o}" is not available due to license key restrictions.`,n=new Error(e);throw console.error(e),n}return e(...n)}:e)))(e,n)}var r;return e})(o(d,s,p),l,c,e)}},Me=["tfoot","thead","tbody","colgroup"],We=(e,t,o)=>({element:e,rowspan:t,colspan:o}),je=(e,t,o)=>({element:e,cells:t,section:o}),Be=(e,t,o)=>({element:e,isNew:t,isLocked:o}),Ie=(e,t,o,n)=>({element:e,cells:t,section:o,isNew:n}),ze=(e,t)=>Ie(e.element,t,e.section,e.isNew),Fe=(e,t)=>e.cells[t],Ve=(e,t)=>Fe(e,t).element,He=e=>{const t=k(e,(e=>"colgroup"===e.section));return{rows:t.fail,cols:t.pass}},qe=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},_e={fromHtml:(e,t)=>{const o=(t||document).createElement("div");if(o.innerHTML=e,!o.hasChildNodes()||o.childNodes.length>1){const t="HTML does not have a single root node";throw console.error(t,e),new Error(t)}return qe(o.childNodes[0])},fromTag:(e,t)=>{const o=(t||document).createElement(e);return qe(o)},fromText:(e,t)=>{const o=(t||document).createTextNode(e);return qe(o)},fromDom:qe,fromPoint:(e,t,o)=>y.from(e.dom.elementFromPoint(t,o)).map(qe)},Ge=(e,t)=>{const o=e.dom;if(1!==o.nodeType)return!1;{const e=o;if(void 0!==e.matches)return e.matches(t);if(void 0!==e.msMatchesSelector)return e.msMatchesSelector(t);if(void 0!==e.webkitMatchesSelector)return e.webkitMatchesSelector(t);if(void 0!==e.mozMatchesSelector)return e.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")}},Ue=e=>1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType||0===e.childElementCount,Ke=(e,t)=>e.dom===t.dom,Qe=Ge,Xe=()=>Ye(0,0),Ye=(e,t)=>({major:e,minor:t}),Je={nu:Ye,detect:(e,t)=>{const o=String(t).toLowerCase();return 0===e.length?Xe():((e,t)=>{const o=((e,t)=>{for(let o=0;oNumber(t.replace(o,"$"+e));return Ye(n(1),n(2))})(e,o)},unknown:Xe},Ze=(e,t)=>{const o=String(t).toLowerCase();return $(e,(e=>e.search(o)))},et=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,tt=e=>t=>le(t,e),ot=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:e=>le(e,"edge/")&&le(e,"chrome")&&le(e,"safari")&&le(e,"applewebkit")},{name:"Chromium",brand:"Chromium",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,et],search:e=>le(e,"chrome")&&!le(e,"chromeframe")},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:e=>le(e,"msie")||le(e,"trident")},{name:"Opera",versionRegexes:[et,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:tt("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:tt("firefox")},{name:"Safari",versionRegexes:[et,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:e=>(le(e,"safari")||le(e,"mobile/"))&&le(e,"applewebkit")}],nt=[{name:"Windows",search:tt("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:e=>le(e,"iphone")||le(e,"ipad"),versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:tt("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"macOS",search:tt("mac os x"),versionRegexes:[/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:tt("linux"),versionRegexes:[]},{name:"Solaris",search:tt("sunos"),versionRegexes:[]},{name:"FreeBSD",search:tt("freebsd"),versionRegexes:[]},{name:"ChromeOS",search:tt("cros"),versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/]}],rt={browsers:g(ot),oses:g(nt)},st=e=>{const t=e.current,o=e.version,n=e=>()=>t===e;return{current:t,version:o,isEdge:n("Edge"),isChromium:n("Chromium"),isIE:n("IE"),isOpera:n("Opera"),isFirefox:n("Firefox"),isSafari:n("Safari")}},lt=()=>st({current:void 0,version:Je.unknown()}),ct=st,at=e=>{const t=e.current,o=e.version,n=e=>()=>t===e;return{current:t,version:o,isWindows:n("Windows"),isiOS:n("iOS"),isAndroid:n("Android"),isMacOS:n("macOS"),isLinux:n("Linux"),isSolaris:n("Solaris"),isFreeBSD:n("FreeBSD"),isChromeOS:n("ChromeOS")}},it=()=>at({current:void 0,version:Je.unknown()}),ut=at,mt=e=>window.matchMedia(e).matches;let dt=ie((()=>((e,t,o)=>{const n=rt.browsers(),r=rt.oses(),s=t.bind((e=>((e,t)=>F(t.brands,(t=>{const o=t.brand.toLowerCase();return $(e,(e=>o===e.brand?.toLowerCase())).map((e=>({current:e.name,version:Je.nu(parseInt(t.version,10),0)})))})))(n,e))).orThunk((()=>((e,t)=>Ze(e,t).map((e=>{const o=Je.detect(e.versionRegexes,t);return{current:e.name,version:o}})))(n,e))).fold(lt,ct),l=((e,t)=>Ze(e,t).map((e=>{const o=Je.detect(e.versionRegexes,t);return{current:e.name,version:o}})))(r,e).fold(it,ut),c=((e,t,o,n)=>{const r=e.isiOS()&&!0===/ipad/i.test(o),s=e.isiOS()&&!r,l=e.isiOS()||e.isAndroid(),c=l||n("(pointer:coarse)"),a=r||!s&&l&&n("(min-device-width:768px)"),i=s||l&&!a,u=t.isSafari()&&e.isiOS()&&!1===/safari/i.test(o),m=!i&&!a&&!u;return{isiPad:g(r),isiPhone:g(s),isTablet:g(a),isPhone:g(i),isTouch:g(c),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:g(u),isDesktop:g(m)}})(l,s,e,o);return{browser:s,os:l,deviceType:c}})(window.navigator.userAgent,y.from(window.navigator.userAgentData),mt)));const pt=Object.getPrototypeOf,gt=e=>{const t=se("ownerDocument.defaultView",e);return r(e)&&((e=>((e,t)=>{const o=((e,t)=>se(e,t))(e,t);if(null==o)throw new Error(e+" not available on this browser");return o})("HTMLElement",e))(t).prototype.isPrototypeOf(e)||/^HTML\w*Element$/.test(pt(e).constructor.name))},ht=e=>e.dom.nodeName.toLowerCase(),ft=e=>e.dom.nodeType,wt=e=>t=>ft(t)===e,bt=e=>8===ft(e)||"#comment"===ht(e),vt=wt(1),yt=wt(3),Ct=wt(9),xt=wt(11),St=e=>t=>vt(t)&&ht(t)===e,Tt=e=>_e.fromDom(e.dom.ownerDocument),Rt=e=>y.from(e.dom.parentNode).map(_e.fromDom),Ot=(e,t)=>{const o=m(t)?t:b;let n=e.dom;const r=[];for(;null!==n.parentNode&&void 0!==n.parentNode;){const e=n.parentNode,t=_e.fromDom(e);if(r.push(t),!0===o(t))break;n=e}return r},Dt=e=>y.from(e.dom.previousSibling).map(_e.fromDom),Et=e=>y.from(e.dom.nextSibling).map(_e.fromDom),kt=e=>D(e.dom.childNodes,_e.fromDom),At=e=>_e.fromDom(e.dom.host),Nt=(e,t)=>{Rt(e).each((o=>{o.dom.insertBefore(t.dom,e.dom)}))},Lt=(e,t)=>{Et(e).fold((()=>{Rt(e).each((e=>{$t(e,t)}))}),(e=>{Nt(e,t)}))},Pt=(e,t)=>{(e=>(e=>{const t=e.dom.childNodes;return y.from(t[0]).map(_e.fromDom)})(e))(e).fold((()=>{$t(e,t)}),(o=>{e.dom.insertBefore(t.dom,o.dom)}))},$t=(e,t)=>{e.dom.appendChild(t.dom)},Mt=(e,t)=>{Nt(e,t),$t(t,e)},Wt=(e,t)=>{E(t,((o,n)=>{const r=0===n?e:t[n-1];Lt(r,o)}))},jt=(e,t)=>{E(t,(t=>{$t(e,t)}))},Bt=(e,t,o)=>{if(!(n(o)||c(o)||d(o)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",o,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,o+"")},It=(e,t,o)=>{Bt(e.dom,t,o)},zt=(e,t)=>{const o=e.dom;q(t,((e,t)=>{Bt(o,t,e)}))},Ft=(e,t)=>{const o=e.dom.getAttribute(t);return null===o?void 0:o},Vt=(e,t)=>y.from(Ft(e,t)),Ht=(e,t)=>{e.dom.removeAttribute(t)},qt=e=>P(e.dom.attributes,((e,t)=>(e[t.name]=t.value,e)),{}),_t=e=>{e.dom.textContent="",E(kt(e),(e=>{Gt(e)}))},Gt=e=>{const t=e.dom;null!==t.parentNode&&t.parentNode.removeChild(t)},Ut=e=>{const t=kt(e);t.length>0&&Wt(e,t),Gt(e)},Kt=(e,t)=>_e.fromDom(e.dom.cloneNode(t)),Qt=e=>void 0!==e.style&&m(e.style.getPropertyValue),Xt=e=>{const t=yt(e)?e.dom.parentNode:e.dom;if(null==t||null===t.ownerDocument)return!1;const o=t.ownerDocument;return(e=>{const t=(e=>_e.fromDom(e.dom.getRootNode()))(e);return xt(o=t)&&u(o.dom.host)?y.some(t):y.none();var o})(_e.fromDom(t)).fold((()=>o.body.contains(t)),(n=Xt,r=At,e=>n(r(e))));var n,r},Yt=(e,t,o)=>{((e,t,o)=>{if(!n(o))throw console.error("Invalid call to CSS.set. Property ",t,":: Value ",o,":: Element ",e),new Error("CSS value must be a string: "+o);Qt(e)&&e.style.setProperty(t,o)})(e.dom,t,o)},Jt=(e,t)=>{const o=e.dom,n=window.getComputedStyle(o).getPropertyValue(t);return""!==n||Xt(e)?n:Zt(o,t)},Zt=(e,t)=>Qt(e)?e.style.getPropertyValue(t):"",eo=(e,t)=>{const o=e.dom,n=Zt(o,t);return y.from(n).filter((e=>e.length>0))},to=(e,t)=>{((e,t)=>{Qt(e)&&e.style.removeProperty(t)})(e.dom,t),te(Vt(e,"style").map(ce),"")&&Ht(e,"style")},oo=(e,t,o)=>((e,t)=>(e=>{const t=parseFloat(e);return isNaN(t)?y.none():y.some(t)})(e).getOr(t))(Jt(e,t),o),no=(e=>{const t=t=>{const o=(e=>{const t=e.dom;return Xt(e)?t.getBoundingClientRect().width:t.offsetWidth})(t);if(o<=0||null===o){const o=Jt(t,e);return parseFloat(o)||0}return o},o=(e,t)=>P(t,((t,o)=>{const n=Jt(e,o),r=void 0===n?0:parseInt(n,10);return isNaN(r)?t:t+r}),0);return{set:(t,o)=>{if(!d(o)&&!o.match(/^[0-9]+$/))throw new Error(e+".set accepts only positive integer values. Value was "+o);const n=t.dom;Qt(n)&&(n.style[e]=o+"px")},get:t,getOuter:t,aggregate:o,max:(e,t,n)=>{const r=o(e,n);return t>r?t-r:0}}})("width"),ro=e=>no.get(e),so=e=>no.getOuter(e),lo=e=>(e=>{const t=e.dom;return((e,t,o,n)=>t-oo(e,`padding-${o}`,0)-oo(e,`padding-${n}`,0)-oo(e,`border-${o}-width`,0)-oo(e,`border-${n}-width`,0))(e,t.getBoundingClientRect().width||t.offsetWidth,"left","right")})(e),co=(e,t)=>({left:e,top:t,translate:(o,n)=>co(e+o,t+n)}),ao=co,io=(e,t)=>void 0!==e?e:void 0!==t?t:0,uo=e=>{const t=e.dom.ownerDocument,o=t.body,n=t.defaultView,r=t.documentElement;if(o===e.dom)return ao(o.offsetLeft,o.offsetTop);const s=io(n?.pageYOffset,r.scrollTop),l=io(n?.pageXOffset,r.scrollLeft),c=io(r.clientTop,o.clientTop),a=io(r.clientLeft,o.clientLeft);return mo(e).translate(l-a,s-c)},mo=e=>{const t=e.dom,o=t.ownerDocument.body;return o===t?ao(o.offsetLeft,o.offsetTop):Xt(e)?(e=>{const t=e.getBoundingClientRect();return ao(t.left,t.top)})(t):ao(0,0)},po=(e=>{const t=t=>e(t)?y.from(t.dom.nodeValue):y.none();return{get:o=>{if(!e(o))throw new Error("Can only get text value of a text node");return t(o).getOr("")},getOption:t,set:(t,o)=>{if(!e(t))throw new Error("Can only set raw text value of a text node");t.dom.nodeValue=o}}})(yt),go=e=>po.get(e),ho=(e,t)=>po.set(e,t),fo=(e,t)=>{const o=Ft(e,t);return void 0===o||""===o?[]:o.split(" ")},wo=(e,t,o)=>{let n=e.dom;const r=m(o)?o:b;for(;n.parentNode;){n=n.parentNode;const e=_e.fromDom(n);if(t(e))return y.some(e);if(r(e))break}return y.none()},bo=(e,t,o)=>wo(e,(e=>Ge(e,t)),o),vo=(e,t)=>(e=>$(e.dom.childNodes,(e=>{return o=_e.fromDom(e),Ge(o,t);var o})).map(_e.fromDom))(e),yo=(e,t)=>((e,t)=>{const o=void 0===t?document:t.dom;return Ue(o)?y.none():y.from(o.querySelector(e)).map(_e.fromDom)})(t,e),Co=(e,t,o)=>((e,t,o,n,r)=>((e,t)=>Ge(e,t))(o,n)?y.some(o):m(r)&&r(o)?y.none():t(o,n,r))(0,bo,e,t,o),xo=e=>void 0!==e.dom.classList,So=(e,t=!1)=>{return Xt(e)?e.dom.isContentEditable:(o=e,Co(o,"[contenteditable]")).fold(g(t),(e=>"true"===To(e)));var o},To=e=>e.dom.contentEditable,Ro=e=>e.dom.textContent,Oo=(e,t)=>{let o=[];return E(kt(e),(e=>{t(e)&&(o=o.concat([e])),o=o.concat(Oo(e,t))})),o},Do=(e,t,o)=>((e,o,n)=>A(Ot(e,n),(e=>Ge(e,t))))(e,0,o),Eo=(e,t)=>(e=>A(kt(e),(e=>Ge(e,t))))(e),ko=(e,t)=>((e,t)=>{const o=void 0===t?document:t.dom;return Ue(o)?[]:D(o.querySelectorAll(e),_e.fromDom)})(t,e),Ao=["img","br"],No=e=>{return(t=e,po.getOption(t)).filter((e=>0!==e.trim().length||e.indexOf("\xa0")>-1)).isSome()||T(Ao,ht(e))||(e=>{return vt(t=e)&>(t.dom)&&"false"===Ft(e,"contenteditable");var t})(e);var t},Lo={unsupportedLength:["em","ex","cap","ch","ic","rem","lh","rlh","vw","vh","vi","vb","vmin","vmax","cm","mm","Q","in","pc","pt","px"],fixed:["px","pt"],relative:["%"],empty:[""]},Po=(()=>{const e="[0-9]+",t="[eE][+-]?"+e,o=e=>`(?:${e})?`,n=["Infinity",e+"\\."+o(e)+o(t),"\\."+e+o(t),e+o(t)].join("|");return new RegExp(`^([+-]?(?:${n}))(.*)$`)})(),$o=(e,t)=>y.from(Po.exec(e)).bind((e=>{const o=Number(e[1]),n=e[2];return((e,t)=>R(t,(t=>R(Lo[t],(t=>e===t)))))(n,t)?y.some({value:o,unit:n}):y.none()})),Mo=e=>D(e,g(0)),Wo=e=>(t,o,n,r)=>{if(e(n)){const e=Math.max(r,t[o]-Math.abs(n)),s=Math.abs(e-t[o]);return n>=0?s:-s}return n},jo=Wo((e=>e<0)),Bo=Wo(v),Io=()=>{const e=(e,t,o,n,r)=>{const s=Bo(e,n>=0?o:t,n,r);return((e,t,o,n,r)=>r(e.slice(0,t)).concat(n).concat(r(e.slice(o))))(e,t,o+1,[s,-s],Mo)};return{resizeTable:(e,t,o)=>{o&&e(t)},clampTableDelta:(e,t,o,n,r)=>{if(r){if(o>=0)return o;{const t=P(e,((e,t)=>e+t-n),0);return Math.max(-t,o)}}return jo(e,t,o,n)},calcLeftEdgeDeltas:e,calcMiddleDeltas:(t,o,n,r,s,l)=>e(t,n,r,s,l),calcRightEdgeDeltas:(e,t,o,n,r,s)=>{if(s)return Mo(e);{const t=n/e.length;return D(e,g(t))}},calcRedestributedWidths:(e,t,o,n)=>({delta:0,newSizes:e})}},zo=(e,t,o=0)=>Vt(e,t).map((e=>parseInt(e,10))).getOr(o),Fo=e=>St("col")(e)?zo(e,"span",1)>1:(e=>zo(e,"colspan",1))(e)>1,Vo=g(10),Ho=(e,t)=>qo(e,t,v),qo=(e,t,o)=>M(kt(e),(e=>Ge(e,t)?o(e)?[e]:[]:qo(e,t,o))),_o=(e,t)=>((e,t,o=b)=>o(t)?y.none():T(e,ht(t))?y.some(t):bo(t,e.join(","),(e=>Ge(e,"table")||o(e))))(["td","th"],e,t),Go=e=>Ho(e,"th,td"),Uo=e=>Ge(e,"colgroup")?Eo(e,"col"):M(Xo(e),(e=>Eo(e,"col"))),Ko=(e,t)=>Co(e,"table",t),Qo=e=>Ho(e,"tr"),Xo=e=>Ko(e).fold(g([]),(e=>Eo(e,"colgroup"))),Yo=e=>Rt(e).map((e=>{const t=ht(e);return(e=>T(Me,e))(t)?t:"tbody"})).getOr("tbody"),Jo="data-snooker-locked-cols",Zo=e=>Vt(e,Jo).bind((e=>y.from(e.match(/\d+/g)))).map((e=>((e,t)=>{const o={};for(let n=0,r=e.length;ne+","+t,tn=e=>{const t={},o=[],n=I(e).map((e=>e.element)).bind(Ko).bind(Zo).getOr({});let r=0,s=0,l=0;const{pass:c,fail:a}=k(e,(e=>"colgroup"===e.section));E(a,(e=>{const c=[];E(e.cells,(e=>{let o=0;for(;void 0!==t[en(l,o)];)o++;const r=((e,t)=>Y(e,t)&&void 0!==e[t]&&null!==e[t])(n,o.toString()),a=((e,t,o,n,r,s)=>({element:e,rowspan:t,colspan:o,row:n,column:r,isLocked:s}))(e.element,e.rowspan,e.colspan,l,o,r);for(let n=0;n{const t=(e=>{const t={};let o=0;return E(e.cells,(e=>{const n=e.colspan;O(n,(r=>{const s=o+r;t[s]=((e,t,o)=>({element:e,colspan:t,column:o}))(e.element,n,s)})),o+=n})),t})(e),o=((e,t)=>({element:e,columns:t}))(e.element,K(t));return{colgroups:[o],columns:t}})).getOrThunk((()=>({colgroups:[],columns:{}}))),m=((e,t)=>({rows:e,columns:t}))(r,s);return{grid:m,access:t,all:o,columns:i,colgroups:u}},on=e=>{const t=(e=>{const t=Qo(e);return o=[...Xo(e),...t],n=Yo,D(o,(e=>{if("colgroup"===ht(e)){const t=D(Uo(e),(e=>{const t=zo(e,"span",1);return We(e,1,t)}));return je(e,t,"colgroup")}{const t=D(Go(e),(e=>{const t=zo(e,"rowspan",1),o=zo(e,"colspan",1);return We(e,t,o)}));return je(e,t,n(e))}}));var o,n})(e);return tn(t)},nn=tn,rn=(e,t,o)=>y.from(e.access[en(t,o)]),sn=(e,t,o)=>{const n=((e,t)=>{const o=M(e.all,(e=>e.cells));return A(o,t)})(e,(e=>o(t,e.element)));return n.length>0?y.some(n[0]):y.none()},ln=e=>K(e.columns),cn=e=>V(e.columns).length>0,an=(e,t)=>y.from(e.columns[t]),un=(e,t,o)=>Be(o(e.element,t),!0,e.isLocked),mn=()=>({transformRow:h,transformCell:un}),dn=(e,t=v)=>{const o=e.grid,n=O(o.columns,h),r=O(o.rows,h);return D(n,(o=>pn((()=>M(r,(t=>rn(e,t,o).filter((e=>e.column===o)).toArray()))),(e=>1===e.colspan&&t(e.element)),(()=>rn(e,0,o)))))},pn=(e,t,o)=>{const n=e();return $(n,t).orThunk((()=>y.from(n[0]).orThunk(o))).map((e=>e.element))},gn=(e,t)=>({col:e,x:t}),hn=e=>uo(e).left+so(e),fn=e=>uo(e).left,wn=(e,t)=>gn(e,fn(t)),bn=(e,t)=>gn(e,hn(t)),vn=(e,t,o)=>{if(0===o.length)return[];const n=D(o.slice(1),((t,o)=>t.map((t=>e(o,t))))),r=o[o.length-1].map((e=>t(o.length-1,e)));return n.concat([r])},yn=(Cn={delta:h,edge:fn,positions:e=>vn(wn,bn,e)},xn={delta:e=>-e,edge:hn,positions:e=>vn(bn,wn,e)},e=>"rtl"===(e=>"rtl"===Jt(e,"direction")?"rtl":"ltr")(e)?xn:Cn);var Cn,xn;const Sn=e=>yn(e).edge(e),Tn=St("col"),Rn=(e,t,o)=>{const n=(r=e,y.from(r.dom.parentElement).map(_e.fromDom)).getOrThunk((()=>(e=>{const t=e.dom.body;if(null==t)throw new Error("Body is not available yet");return _e.fromDom(t)})(Tt(e))));var r;return t(e)/o(n)*100},On=(e,t)=>{Yt(e,"width",t+"px")},Dn=(e,t)=>{Yt(e,"width",t+"%")},En=e=>((e,t)=>eo(e,t).orThunk((()=>Vt(e,t).map((e=>e+"px")))))(e,"width"),kn=e=>Rn(e,ro,lo),An=e=>{return Tn(e)?Math.round(ro(e)):oo(t=e,"width",t.dom.offsetWidth);var t},Nn=(e,t,o)=>{Yt(e,"width",t+o)},Ln=g(/(\d+(\.\d+)?)%/),Pn=St("col"),$n=(e,t,o,n,r,s)=>e.filter(n).fold((()=>s(((e,t)=>{if(t<0||t>=e.length-1)return y.none();const o=e[t].fold((()=>{const o=(e=>{const t=C.call(e,0);return t.reverse(),t})(e.slice(0,t));return F(o,((e,t)=>e.map((e=>({value:e,delta:t+1})))))}),(e=>y.some({value:e,delta:0}))),n=e[t+1].fold((()=>{const o=e.slice(t+1);return F(o,((e,t)=>e.map((e=>({value:e,delta:t+1})))))}),(e=>y.some({value:e,delta:1})));return o.bind((e=>n.map((t=>{const o=t.delta+e.delta;return Math.abs(t.value-e.value)/o}))))})(o,t))),(e=>r(e))),Mn=(e,t,o,n)=>{const r=dn(e),s=cn(e)?(e=>D(ln(e),(e=>y.from(e.element))))(e):r,l=[y.some(Sn(t))].concat(D(((e,t)=>yn(t).positions(e,t))(r,t),(e=>e.map((e=>e.x))))),c=(a=Fo,e=>!a(e));var a;return D(s,((e,t)=>$n(e,t,l,c,(e=>{if((e=>{const t=dt().browser,o=t.isChromium()||t.isFirefox();return!Pn(e)||o})(e))return o(e);{const e=((e,t)=>null!=e?t(e):y.none())(r[t],h);return $n(e,t,l,c,(e=>n(y.some(Math.round(ro(e))))),n)}}),n)))},Wn=(e,t,o)=>Mn(e,t,An,(e=>e.getOrThunk(o.minCellWidth))),jn=(e,t)=>()=>Xt(e)?t(e):parseFloat(eo(e,"width").getOr("0")),Bn=e=>En(e).fold((()=>(e=>{const t=jn(e,ro),o=g(0);return{width:t,pixelWidth:t,getWidths:(t,o)=>Wn(t,e,o),getCellDelta:o,singleColumnWidth:g([0]),minCellWidth:o,setElementWidth:p,adjustTableWidth:p,isRelative:!0,label:"none"}})(e)),(t=>{return o=e,n=t,null!==Ln().exec(n)?(e=>{const t=jn(e,(e=>parseFloat((e=>Rn(e,ro,lo)+"%")(e)))),o=jn(e,ro);return{width:t,pixelWidth:o,getWidths:(t,o)=>((e,t,o)=>Mn(e,t,kn,(e=>e.fold((()=>o.minCellWidth()),(e=>e/o.pixelWidth()*100)))))(t,e,o),getCellDelta:e=>e/o()*100,singleColumnWidth:(e,t)=>[100-e],minCellWidth:()=>Vo()/o()*100,setElementWidth:Dn,adjustTableWidth:o=>{const n=t();Dn(e,n+o/100*n)},isRelative:!0,label:"percent"}})(o):(e=>{const t=jn(e,ro);return{width:t,pixelWidth:t,getWidths:(t,o)=>Wn(t,e,o),getCellDelta:h,singleColumnWidth:(e,t)=>[Math.max(Vo(),e+t)-e],minCellWidth:Vo,setElementWidth:On,adjustTableWidth:o=>{const n=t()+o;On(e,n)},isRelative:!1,label:"pixel"}})(o);var o,n})),In=(e,t,o,n)=>{o===n?Ht(e,t):It(e,t,o)},zn=(e,t,o)=>{z(Eo(e,t)).fold((()=>Pt(e,o)),(e=>Lt(e,o)))},Fn=(e,t)=>{const o=[],n=[],r=e=>D(e,(e=>{e.isNew&&o.push(e.element);const t=e.element;return _t(t),E(e.cells,(e=>{e.isNew&&n.push(e.element),In(e.element,"colspan",e.colspan,1),In(e.element,"rowspan",e.rowspan,1),$t(t,e.element)})),t})),s=e=>M(e,(e=>D(e.cells,(e=>(In(e.element,"span",e.colspan,1),e.element))))),l=(t,o)=>{const n=((e,t)=>{const o=vo(e,t).getOrThunk((()=>{const o=_e.fromTag(t,Tt(e).dom);return"thead"===t?zn(e,"caption,colgroup",o):"colgroup"===t?zn(e,"caption",o):$t(e,o),o}));return _t(o),o})(e,o),l=("colgroup"===o?s:r)(t);jt(n,l)},c=(t,o)=>{t.length>0?l(t,o):(t=>{vo(e,t).each(Gt)})(o)},a=[],i=[],u=[],m=[];return E(t,(e=>{switch(e.section){case"thead":a.push(e);break;case"tbody":i.push(e);break;case"tfoot":u.push(e);break;case"colgroup":m.push(e)}})),c(m,"colgroup"),c(a,"thead"),c(i,"tbody"),c(u,"tfoot"),{newRows:o,newCells:n}},Vn=(e,t)=>{if(0===e.length)return 0;const o=e[0],n=(e=>{for(let r=0,s=e.length;r{const o=D(e,(e=>D(e.cells,b)));return D(e,((n,r)=>{const s=M(n.cells,((n,s)=>{if(!1===o[r][s]){const u=((e,t,o,n)=>{const r=((e,t)=>e[t])(e,t),s="colgroup"===r.section,l=Vn(r.cells.slice(o),n),c=s?1:Vn(((e,t)=>D(e,(e=>Fe(e,t))))(e.slice(t),o),n);return{colspan:l,rowspan:c}})(e,r,s,t);return((e,t,n,r)=>{for(let s=e;s({element:e,cells:t,section:o,isNew:n}))(n.element,s,n.section,n.isNew)}))},qn=(e,t)=>F(e.all,(e=>$(e.cells,(e=>Ke(t,e.element))))),_n=(e,t,o)=>{const n=(e=>{const t=[],o=e=>{t.push(e)};for(let t=0;t_o(t).bind((t=>qn(e,t))).filter(o))));return re(n.length>0,n)},Gn=(e,t,o,n,r,s,l,c,a)=>{const i=on(s),u=y.from(a?.section).getOrThunk(mn),m=t(i,l).map((t=>{const o=((e,t)=>((e,t,o)=>{const n=[];E(e.colgroups,(r=>{const s=[];for(let n=0;nBe(e.element,o,!1))).getOrThunk((()=>Be(t.colGap(),!0,!1)));s.push(r)}n.push(Ie(r.element,s,"colgroup",o))}));for(let r=0;rBe(e.element,o,e.isLocked))).getOrThunk((()=>Be(t.gap(),!0,!1)));s.push(l)}const l=e.all[r],c=Ie(l.element,s,l.section,o);n.push(c)}return n})(e,t,!1))(i,c),n=e(o,t,Ke,r(c),u),s=(e=>{const t=P(He(e).rows,((e,t)=>(E(t.cells,((t,o)=>{t.isLocked&&(e[o]=!0)})),e)),{}),o=U(t,((e,t)=>parseInt(t,10)));return j(o)})(n.grid);return{info:t,grid:(l=n.grid,Hn(l,Ke)),cursor:n.cursor,lockedColumns:s};var l}));return m.bind((e=>{const t=Fn(s,e.grid),r=y.from(a?.sizing).getOrThunk((()=>Bn(s))),l=y.from(a?.resize).getOrThunk(Io);return o(s,e.grid,e.info,{sizing:r,resize:l,section:u}),n(s),Ht(s,Jo),e.lockedColumns.length>0&&It(s,Jo,e.lockedColumns.join(",")),y.some({cursor:e.cursor,newRows:t.newRows,newCells:t.newCells})}))},Un=(e,t)=>_o(t.element).bind((t=>qn(e,t))),Kn=(e,t)=>_n(e,t,v),Qn=(e,t)=>W(t,(t=>((e,t)=>qn(e,t).exists((e=>!e.isLocked)))(e,t))),Xn=(e,t)=>((e,t)=>t.mergable)(0,t).filter((t=>Qn(e,t.cells))),Yn=(e,t)=>((e,t)=>t.unmergable)(0,t).filter((t=>Qn(e,t))),Jn={...(e=>{if(!s(e))throw new Error("cases must be an array");if(0===e.length)throw new Error("there must be at least one case");const t=[],o={};return E(e,((n,r)=>{const l=V(n);if(1!==l.length)throw new Error("one and only one name per case");const c=l[0],a=n[c];if(void 0!==o[c])throw new Error("duplicate key detected:"+c);if("cata"===c)throw new Error("cannot have a case named cata (sorry)");if(!s(a))throw new Error("case arguments must be an array");t.push(c),o[c]=(...o)=>{const n=o.length;if(n!==a.length)throw new Error("Wrong number of arguments to case "+c+". Expected "+a.length+" ("+a+"), got "+n);return{fold:(...t)=>{if(t.length!==e.length)throw new Error("Wrong number of arguments to fold. Expected "+e.length+", got "+t.length);return t[r].apply(null,o)},match:e=>{const n=V(e);if(t.length!==n.length)throw new Error("Wrong number of arguments to match. Expected: "+t.join(",")+"\nActual: "+n.join(","));if(!W(t,(e=>T(n,e))))throw new Error("Not all branches were specified when using match. Specified: "+n.join(", ")+"\nRequired: "+t.join(", "));return e[c].apply(null,o)},log:e=>{console.log(e,{constructors:t,constructor:c,params:o})}}}})),o})([{none:[]},{only:["index"]},{left:["index","next"]},{middle:["prev","index","next"]},{right:["prev","index"]}])},Zn=(e,t)=>cn(e)?((e,t)=>{const o=ln(e);return D(o,((e,o)=>({element:e.element,width:t[o],colspan:e.colspan})))})(e,t):((e,t)=>{const o=(e=>M(e.all,(e=>e.cells)))(e);return D(o,(e=>{const o=((e,t,o)=>{let n=0;for(let r=e;r{const n=Zn(e,t);E(n,(e=>{o.setElementWidth(e.element,e.width)}))},tr=(e,t)=>{if(!Fo(e)){const o=(e=>En(e).bind((e=>$o(e,["fixed","relative","empty"]))))(e);o.each((o=>{const n=o.value/2;Nn(e,n,o.unit),Nn(t,n,o.unit)}))}},or=St("col"),nr=St("colgroup"),rr=e=>({element:e,colspan:zo(e,"colspan",1),rowspan:zo(e,"rowspan",1)}),sr=(e,t=rr)=>{const o=o=>{if((e=>"tr"===ht(e)||nr(e))(o))return nr((r={element:o}).element)?e.colgroup(r):e.row(r);{const r=o,s=(t=>or(t.element)?e.col(t):e.cell(t))(t(r));return n=y.some({item:r,replacement:s}),s}var r};let n=y.none();return{getOrInit:(e,t)=>n.fold((()=>o(e)),(n=>t(e,n.item)?n.replacement:o(e)))}};var lr=["body","p","div","article","aside","figcaption","figure","footer","header","nav","section","ol","ul","li","table","thead","tbody","tfoot","caption","tr","td","th","h1","h2","h3","h4","h5","h6","blockquote","pre","address"],cr=()=>({up:g({selector:bo,closest:Co,predicate:wo,all:Ot}),down:g({selector:ko,predicate:Oo}),styles:g({get:Jt,getRaw:eo,set:Yt,remove:to}),attrs:g({get:Ft,set:It,remove:Ht,copyTo:(e,t)=>{const o=qt(e);zt(t,o)}}),insert:g({before:Nt,after:Lt,afterAll:Wt,append:$t,appendAll:jt,prepend:Pt,wrap:Mt}),remove:g({unwrap:Ut,remove:Gt}),create:g({nu:_e.fromTag,clone:e=>_e.fromDom(e.dom.cloneNode(!1)),text:_e.fromText}),query:g({comparePosition:(e,t)=>e.dom.compareDocumentPosition(t.dom),prevSibling:Dt,nextSibling:Et}),property:g({children:kt,name:ht,parent:Rt,document:e=>{return(t=e,Ct(t)?t:Tt(t)).dom;var t},isText:yt,isComment:bt,isElement:vt,isSpecial:e=>{const t=ht(e);return T(["script","noscript","iframe","noframes","noembed","title","style","textarea","xmp"],t)},getLanguage:e=>vt(e)?Vt(e,"lang"):y.none(),getText:go,setText:ho,isBoundary:e=>!!vt(e)&&("body"===ht(e)||T(lr,ht(e))),isEmptyTag:e=>!!vt(e)&&T(["br","img","hr","input"],ht(e)),isNonEditable:e=>vt(e)&&"false"===Ft(e,"contenteditable")}),eq:Ke,is:Qe});const ar=(e,t)=>({element:e,offset:t}),ir=(e,t,o)=>e.property().isText(t)&&0===e.property().getText(t).trim().length||e.property().isComment(t)?o(t).bind((t=>ir(e,t,o).orThunk((()=>y.some(t))))):y.none(),ur=(e,t)=>e.property().isText(t)?e.property().getText(t).length:e.property().children(t).length,mr=(e,t)=>{const o=ir(e,t,e.query().prevSibling).getOr(t);if(e.property().isText(o))return ar(o,ur(e,o));const n=e.property().children(o);return n.length>0?mr(e,n[n.length-1]):ar(o,ur(e,o))},dr=mr,pr=cr(),gr=(e,t,o,n)=>{const r=t(e,o);return L(n,((o,n)=>{const r=t(e,n);return hr(e,o,r)}),r)},hr=(e,t,o)=>t.bind((t=>o.filter(w(e.eq,t)))),fr=cr(),wr={scope:["row","col"]},br=e=>()=>{const t=_e.fromTag("td",e.dom);return $t(t,_e.fromTag("br",e.dom)),t},vr=e=>()=>_e.fromTag("col",e.dom),yr=e=>()=>_e.fromTag("colgroup",e.dom),Cr=e=>()=>_e.fromTag("tr",e.dom),xr=(e,t,o)=>{const n=((e,t)=>{const o=((e,t)=>{const o=_e.fromTag(t),n=qt(e);return zt(o,n),o})(e,t),n=kt((e=>Kt(e,!0))(e));return jt(o,n),o})(e,t);return q(o,((e,t)=>{null===e?Ht(n,t):It(n,t,e)})),n},Sr=(e,t,o)=>{return(n=e,((e,t)=>{const o=e=>{for(let n=0;n{const r=o.join(","),s=Do(n,r,(t=>Ke(t,e)));return L(s,((e,t)=>{const o=Kt(t,!1);return $t(e,o),o}),t)})).getOr(t);var n},Tr=(e,t,o)=>{const n=(e,t)=>{((e,t)=>{const o=e.dom,n=t.dom;Qt(o)&&Qt(n)&&(n.style.cssText=o.style.cssText)})(e.element,t),to(t,"height"),1!==e.colspan&&to(t,"width")};return{col:o=>{const r=_e.fromTag(ht(o.element),t.dom);return n(o,r),e(o.element,r),r},colgroup:yr(t),row:Cr(t),cell:r=>{const s=_e.fromTag(ht(r.element),t.dom),l=o.getOr(["strong","em","b","i","span","font","h1","h2","h3","h4","h5","h6","p","div"]),c=l.length>0?Sr(r.element,s,l):s;return $t(c,_e.fromTag("br")),n(r,s),((e,t)=>{q(wr,((o,n)=>Vt(e,n).filter((e=>T(o,e))).each((e=>It(t,n,e)))))})(r.element,s),e(r.element,s),s},replace:xr,colGap:vr(t),gap:br(t)}},Rr=e=>on(e).grid,Or=(e,t,o,n,r)=>D(e,(e=>{const s=t>0&&t{if("colgroup"!==o&&n)return Fe(e,t);{const t=Fe(e,r);return Be(l(t.element,s),!0,!1)}})(e,t,e.section,s,o,n,r);return((e,t,o)=>((e,t,o)=>{const n=e.cells,r=n.slice(0,t),s=n.slice(t),l=r.concat(o).concat(s);return ze(e,l)})(e,t,[o]))(e,t,l)})),Dr=e=>P(e,((e,t)=>R(e,(e=>e.column===t.column))?e:e.concat([t])),[]).sort(((e,t)=>e.column-t.column)),Er=e=>So(e,!0),kr=e=>{0===Go(e).length&&Gt(e)},Ar=(e,t,o)=>((e,t)=>({grid:e,cursor:t}))(e,((e,t,o)=>{const n=He(e).rows;return y.from(n[t]?.cells[o]?.element).filter(Er).orThunk((()=>(e=>F(e,(e=>F(e.cells,(e=>{const t=e.element;return re(Er(t),t)})))))(n)))})(e,t,o)),Nr=(e,t,o,n)=>{const r=t.detail,s=r.column,l=r.column,c=Or(e,l,s,o,n.getOrInit);return Ar(c,r.row,l)},Lr=(e,t,o,n)=>{const r=Dr(t.details),s=((e,t)=>M(e,(e=>{const o=e.cells,n=L(t,((e,t)=>t>=0&&t0?[Ie(e.element,n,e.section,e.isNew)]:[]})))(e,D(r,(e=>e.column))),l=s.length>0?s[0].cells.length-1:0;return Ar(s,r[0].row,Math.min(r[0].column,l))},Pr=(e,t,o,n)=>((e,t,o,n,r)=>{const s=nn(t),l=n.getWidths(s,n),c=n.pixelWidth(),{newSizes:a,delta:i}=r.calcRedestributedWidths(l,c,o.pixelDelta,n.isRelative);er(s,a,n),n.adjustTableWidth(i)})(0,t,o,n.sizing,n.resize),$r=(e,t)=>{const o=dn(e),n=Dr(t);return P(n,((e,t)=>e+o[t.column].map(so).getOr(0)),0)},Mr=(e,t)=>((e,t)=>_n(e,t,(e=>!e.isLocked)))(e,t).map((t=>({details:t,pixelDelta:-$r(e,t)}))),Wr=(e,t,o,n)=>Gn(Nr,((e,t)=>Un(e,t).filter((e=>!R([e],(e=>0===e.column&&e.isLocked)))).map((t=>({detail:t,pixelDelta:$r(e,[t])})))),Pr,p,sr,e,t,o,n),jr=(e,t,o,n)=>Gn(Lr,Mr,Pr,kr,sr,e,t,o,n),Br=(e,t)=>t.column>=e.startCol&&t.column+t.colspan-1<=e.finishCol&&t.row>=e.startRow&&t.row+t.rowspan-1<=e.finishRow,Ir=(e,t,o)=>((e,t,o)=>{const n=sn(e,t,Ke),r=sn(e,o,Ke);return n.bind((e=>r.map((t=>{return o=e,n=t,{startRow:Math.min(o.row,n.row),startCol:Math.min(o.column,n.column),finishRow:Math.max(o.row+o.rowspan-1,n.row+n.rowspan-1),finishCol:Math.max(o.column+o.colspan-1,n.column+n.colspan-1)};var o,n}))))})(e,t,o).bind((t=>((e,t)=>{let o=!0;const n=w(Br,t);for(let r=t.startRow;r<=t.finishRow;r++)for(let s=t.startCol;s<=t.finishCol;s++)o=o&&rn(e,r,s).exists(n);return o?y.some(t):y.none()})(e,t))),zr=(e,t,o)=>{const n=Fr(e);return Ir(n,t,o)},Fr=on,Vr=e=>_e.fromDom(e.getBody()),Hr=e=>t=>Ke(t,Vr(e)),qr=e=>_e.fromDom(e.selection.getStart()),_r=e=>bo(e,"table"),Gr=(e,t,o)=>yo(e,t).bind((t=>yo(e,o).bind((e=>{return(o=_r,n=[t,e],((e,t,o)=>o.length>0?((e,t,o,n)=>n(e,t,o[0],o.slice(1)))(e,t,o,gr):y.none())(fr,((e,t)=>o(t)),n)).map((o=>({first:t,last:e,table:o})));var o,n})))),Ur=h,Kr=e=>{const t=(e,t)=>Vt(e,t).exists((e=>parseInt(e,10)>1));return e.length>0&&W(e,(e=>t(e,"rowspan")||t(e,"colspan")))?y.some(e):y.none()},Qr=(e,t,o)=>{return t.length<=1?y.none():(n=e,r=o.firstSelectedSelector,s=o.lastSelectedSelector,Gr(n,r,s).bind((e=>{const t=e=>Ke(n,e),o="thead,tfoot,tbody,table",r=bo(e.first,o,t),s=bo(e.last,o,t);return r.bind((t=>s.bind((o=>Ke(t,o)?zr(e.table,e.first,e.last):y.none()))))}))).map((e=>({bounds:e,cells:t})));var n,r,s},Xr="data-mce-first-selected",Yr="data-mce-last-selected",Jr={firstSelectedSelector:"td["+Xr+"],th["+Xr+"]",lastSelectedSelector:"td["+Yr+"],th["+Yr+"]"},Zr=e=>({element:e,mergable:y.none(),unmergable:y.none(),selection:[e]}),es=(e,t,o)=>({element:o,mergable:Qr(t,e,Jr),unmergable:Kr(e),selection:Ur(e)}),ts=e=>(t,o)=>{const n=ht(t),r="col"===n||"colgroup"===n?Ko(s=t).bind((e=>((e,t)=>((e,t)=>{const o=ko(e,t);return o.length>0?y.some(o):y.none()})(e,t))(e,Jr.firstSelectedSelector))).fold(g(s),(e=>e[0])):t;var s;return Co(r,e,o)},os=ts("th,td,caption"),ns=ts("th,td"),rs=e=>{return t=e.model.table.getSelectedCells(),D(t,_e.fromDom);var t},ss=St("th"),ls=(e,t)=>e&&t?"sectionCells":e?"section":"cells",cs=e=>{const t=A(e,(e=>ss(e.element)));return 0===t.length?y.some("td"):t.length===e.length?y.some("th"):y.none()},as=e=>{const t=D(e,(e=>(e=>{const t="thead"===e.section,o=te(cs(e.cells),"th");return"tfoot"===e.section?{type:"footer"}:t||o?{type:"header",subType:ls(t,o)}:{type:"body"}})(e).type)),o=T(t,"header"),n=T(t,"footer");if(o||n){const e=T(t,"body");return!o||e||n?o||e||!n?y.none():y.some("footer"):y.some("header")}return y.some("body")},is={structure:!1,style:!0},us={structure:!0,style:!1},ms=(e,t,o)=>({value:t+1}),ds=(e,t,o)=>{const n="A".charCodeAt(0),r=[];let s=t;for(;s>=0;)r.push(String.fromCharCode(n+s%26)),s=Math.floor(s/26)-1;return{value:r.reverse().join("")}},ps=e=>e.options.get("advtable_value_series"),gs=e=>{const t=parseFloat(e);return re(!(isNaN(t)||isNaN(e)),t)},hs=(e,t)=>et?1:0,fs=(e,t)=>oe(gs(e),gs(t),hs).getOrThunk((()=>((e,t)=>e.localeCompare(t))(e,t))),ws=e=>{const t=(e=>y.from(e.options.get("table_clone_elements")))(e),o=(o,n,r,s)=>(l,a,i,u,m=!1)=>{const d=_e.fromDom(e.getDoc()),p=Tr(r,d,t);return n(l)?o(l,a,p).bind((t=>{E(t.newRows,(t=>{((e,t)=>{e.dispatch("NewRow",{node:t})})(e,t.dom)})),E(t.newCells,(t=>{((e,t)=>{e.dispatch("NewCell",{node:t})})(e,t.dom)}));const o=((t,o,n,r)=>{const s=n.filter((e=>Xt(e)&&c(e))).or(o.cursor);return s.fold((()=>{const o=Go(t);return I(o).filter(Xt).map((o=>{const n=e.dom.createRng();return n.selectNode(o.dom),r&&(e.model.table.clearSelectedCells(t.dom),e.selection.setRng(n),It(o,"data-mce-selected","1")),n}))}),(o=>{const n=e.dom.createRng(),s=dr(pr,o);return n.setStart(s.element.dom,s.offset),n.setEnd(s.element.dom,s.offset),r&&(e.model.table.clearSelectedCells(t.dom),e.selection.setRng(n)),y.some(n)}))})(l,t,i,u);return Xt(l)&&((e=>{Ht(e,"data-mce-style");const t=e=>Ht(e,"data-mce-style");E(Go(e),t),E(Uo(e),t),E(Qo(e),t)})(l),m||((e,t,o)=>{e.dispatch("TableModified",{...o,table:t})})(e,l.dom,s)),o.map((e=>({rng:e,effect:s})))})):y.none()},c=e=>So(e,!0),a=(e,t,o)=>((e,t)=>({grid:e,cursor:t}))(e,((e,t,o)=>{var n,r;const s=He(e).rows;return y.from(null===(r=null===(n=s[t])||void 0===n?void 0:n.cells[o])||void 0===r?void 0:r.element).filter(c).orThunk((()=>(e=>F(e,(e=>F(e.cells,(e=>{const t=e.element;return re(c(t),t)})))))(s)))})(e,t,o)),i=(e,t,o,n)=>{const{cols:r,rows:s}=He(e),l=N(s,(e=>e.section)),c=D(l,(e=>N(e,(e=>{const o=Fe(e,t).element;return ht(o)})))),a=M(c,(e=>M(e,(e=>{const r=Fe(e[0],t).element;return"th"===ht(r)?e:(e=>{const r=D(e,(e=>{const o=Fe(e,t).element;return{row:e,text:y.from(Ro(o)).getOr("")}})),s=j(r,((e,t)=>{const r=o(e.text,t.text);return n?r:-1*r}));return D(s,(e=>e.row))})(e)}))));return[...r,...a]},u=(e,t,o,n)=>{const{cols:r,rows:s}=He(e),l=s[t].cells,c=D(l,(e=>{const t=e.element;return y.from(Ro(t)).getOr("")})),a=St("th"),i=D(s,(e=>{const t=D(e.cells,((e,t)=>({cell:e,column:t,reference:l[t],referenceText:c[t]})));return{...e,zippedCells:t}})),u=D(i,(e=>{const t=N(e.zippedCells,(e=>{const t=e.reference.element;return ht(t)})),r=M(t,(e=>{const t=e[0].reference.element;if(a(t))return D(e,(e=>e.cell));{const{pass:t,fail:r}=k(e,(e=>e.cell.isLocked)),s=j(r,((e,t)=>{const r=o(e.referenceText,t.referenceText);return n?r:-1*r})),l=P(t,((e,t)=>{const o=t.column,n=e.slice(0,o),r=e.slice(o);return n.concat([t]).concat(r)}),s);return D(l,(e=>e.cell))}}));return Ie(e.element,r,e.section,e.isNew)}));return[...r,...u]},m=i,f=u,w=(e,t,o,n,r)=>{const{cols:s,rows:l}=He(e),c=l.slice(0,t),a=[...s,...l.slice(t,o+1)];return{beforeRows:c,afterRows:l.slice(o+1,e.length),selectionGridBefore:a.map((e=>({...e,cells:e.cells.slice(0,n)}))),selectionGrid:a.map((e=>({...e,cells:e.cells.slice(n,r+1)}))),selectionGridAfter:a.map((e=>({...e,cells:e.cells.slice(r+1,e.cells.length)})))}},b=(e,t)=>{const o=D(t,((t,o)=>{const n=e.selectionGridBefore[o].cells,r=e.selectionGridAfter[o].cells;return{...t,cells:n.concat(t.cells).concat(r)}})),{cols:n,rows:r}=He(o);return[...n,...e.beforeRows,...r,...e.afterRows]},C=(e,t,o,n,r,s,l,c)=>{const a=w(e,o,n,r,s),u=i(a.selectionGrid,t-r,l,c);return b(a,u)},x=(e,t,o,n,r,s,l,c)=>{const a=w(e,o,n,r,s),i=u(a.selectionGrid,t-o,l,c);return b(a,i)},S=e=>P(e,((e,t)=>R(e,(e=>e.row===t.row))?e:e.concat([t])),[]).sort(((e,t)=>e.row-t.row)),T=e=>P(e,((e,t)=>R(e,(e=>e.column===t.column))?e:e.concat([t])),[]).sort(((e,t)=>e.column-t.column)),O=e=>P(e,((e,t)=>R(e,(e=>Ke(e.element,t.element)))?e:e.concat([t])),[]),A=e=>{const t=r(e.attributes)?U(e.attributes,((e,t)=>l(e)?e=>Ht(e,t):o=>It(o,t,e))):[];return[...t,...((e,t)=>{if(s(e)){for(let o=0,n=e.length;ot=>((e,t)=>{xo(e)?e.dom.classList.add(t):((e,t)=>{((e,t,o)=>{const n=fo(e,t).concat([o]);It(e,t,n.join(" "))})(e,"class",t)})(e,t)})(t,e))):[],t=>{const o=Ro(t)||"",r=(s=e.value,d(s)?String(s):n(s)?s:void 0);var s;const l=n(r)?r:o;ae(l)?((e,t)=>{const o=Tt(e).dom,n=_e.fromDom(o.createDocumentFragment()),r=((e,t)=>{const o=(t||document).createElement("div");return o.innerHTML=e,kt(_e.fromDom(o))})(t,o);jt(n,r),_t(e),$t(e,n)})(t,"
"):((e,t)=>{e.dom.textContent=t})(t,l)}]},L=(e,t,o,n,r,s,l,c)=>{let a;E(t,((t,i)=>{const u=t.element,m={sectionType:s(i),cellType:ht(u),getRowType:l(i),getColType:c(i),classes:(g=u,xo(g)?(e=>{const t=e.dom.classList,o=new Array(t.length);for(let e=0;efo(e,"class"))(g)),prev:null==a?void 0:a.raw,direction:o},d=e(m,n(i),r(i)),p=A(d);var g;E(p,(e=>e(u))),a=d}))},$=(e,t,o,n,r)=>{const s=C(e,r,0,e.length,r,r,o,n);return a(s,t[0].row,t[0].column)},W=(e,t,o,n,r)=>{const s=S(t),l=T(t),c=C(e,r,s[0].row,s[s.length-1].row,l[0].column,l[l.length-1].column,o,n);return a(c,t[0].row,t[0].column)},B=(e,t,o,n,r)=>{const s=m(e,r,o,n);return a(s,t.row,t.column)},z=(e,t,o,n,r)=>{const s=x(e,r,r,r,0,e[t[0].row].cells.length,o,n);return a(s,t[0].row,t[0].column)},V=(e,t,o,n,r)=>{const s=S(t),l=T(t),c=x(e,r,s[0].row,s[s.length-1].row,l[0].column,l[l.length-1].column,o,n);return a(c,t[0].row,t[0].column)},H=(e,t,o,n,r)=>{const s=f(e,r,o,n);return a(s,t.row,t.column)},q=(e,t,o,n)=>{const r=He(e).rows,s=D(r,(e=>Fe(e,n))),l=O(s),c=ie((()=>cs(l).getOr("")));return L(o,l,"column",h,g(n),(e=>r[e].section),(e=>ie((()=>{const t=r[e];return as([{cells:t.cells,section:t.section}]).getOr("")}))),(e=>c)),a(e,t.row,t.column)},_=(e,t,o,n)=>{const r=He(e).rows,s=r[n],l=O(s.cells),c=ie((()=>as([{cells:s.cells,section:s.section}]).getOr("")));return L(o,l,"row",g(n),h,(e=>s.section),(e=>c),(e=>ie((()=>{const t=D(r,(t=>Fe(t,e)));return cs(t).getOr("")})))),a(e,t.row,t.column)},G=(e,t,o,n,r)=>(s,l,c)=>Gn(((r,s)=>e(r,s,t,o,n)),r,p,p,sr,s,l,c),K=(e,t,o,n)=>(r,s,l)=>Gn(((n,r)=>e(n,r,t,o)),n,p,p,sr,r,s,l),Q=o(Wr,v,tr,us),X=o(jr,(t=>0==("table"===ht(Vr(e)))||Rr(t).columns>1),p,us);return{sortColumnRowsAsc:e=>o(G($,fs,!0,e,Kn),v,p,us),sortColumnRowsDesc:e=>o(G($,fs,!1,e,Kn),v,p,us),sortSelectionRowsAsc:e=>o(G(W,fs,!0,e,Kn),v,p,us),sortSelectionRowsDesc:e=>o(G(W,fs,!1,e,Kn),v,p,us),sortTableRowsAsc:e=>o(G(B,fs,!0,e,Un),v,p,us),sortTableRowsDesc:e=>o(G(B,fs,!1,e,Un),v,p,us),sortRowColumnsAsc:e=>o(G(z,fs,!0,e,Kn),v,p,us),sortRowColumnsDesc:e=>o(G(z,fs,!1,e,Kn),v,p,us),sortSelectionColumnsAsc:e=>o(G(V,fs,!0,e,Kn),v,p,us),sortSelectionColumnsDesc:e=>o(G(V,fs,!1,e,Kn),v,p,us),sortTableColumnsAsc:e=>o(G(H,fs,!0,e,Un),v,p,us),sortTableColumnsDesc:e=>o(G(H,fs,!1,e,Un),v,p,us),insertColumnBefore:Q,deleteColumn:X,populateColumn:(e,t)=>o(K(q,t,e,Un),v,p,is),populateRow:(e,t)=>o(K(_,t,e,Un),v,p,is)}},bs="data-snooker-locked-cols",vs=e=>Vt(e,bs).map((e=>M(e.split(","),(e=>{const t=parseInt(e,10);return isNaN(t)?[]:[t]})))).getOr([]),ys=(e,t)=>It(e,bs,j(t).join(",")),Cs=(e,t)=>{const o=vs(e);T(o,t)||ys(e,o.concat([t]))},xs=(e,t)=>{const o=vs(e);ys(e,A(o,(e=>t!==e)))},Ss="data-snooker-col-series",Ts=e=>Vt(e,Ss),Rs=(e,t)=>te(Ts(e).map((e=>e.toLowerCase())),t.toLowerCase()),Os=e=>((e,t)=>{const o=e.dom;return!(!o||!o.hasAttribute)&&o.hasAttribute(t)})(e,Ss),Ds=e=>{const t=Bn(e),o=on(e),n=rn(o,0,0).bind((e=>{const t=e.element;return $o(Jt(t,"width"),["fixed"])})).map((e=>28-e.value)).getOr(0);((e,t,o,n,r)=>{const s=on(e),l=r.getCellDelta(t),c=r.getWidths(s,r),a=0==s.grid.columns-1,i=n.clampTableDelta(c,0,l,r.minCellWidth(),a),u=((e,t,o,n,r)=>{const s=e.slice(0),l=(e=>0===e.length?Jn.none():1===e.length?Jn.only(0):Jn.left(0,1))(e),c=g(D(s,g(0)));return l.fold(c,(e=>n.singleColumnWidth(s[e],o)),((e,t)=>r.calcLeftEdgeDeltas(s,e,t,o,n.minCellWidth(),n.isRelative)),((e,t,l)=>r.calcMiddleDeltas(s,e,t,l,o,n.minCellWidth(),n.isRelative)),((e,t)=>r.calcRightEdgeDeltas(s,e,t,o,n.minCellWidth(),n.isRelative)))})(c,0,i,r,n),m=D(u,((e,t)=>e+c[t]));er(s,m,r),n.resizeTable(r.adjustTableWidth,i,a)})(e,n,0,Io(),t)},Es=(e,t,o,n,r)=>{((e,t)=>{const o=R(vs(e),(e=>0===e));o&&xs(e,0),t(),o&&Cs(e,1)})(e,(()=>{o.column(0,t.insertColumnBefore,!0,!0),Ds(e),ks(e,t,o,n,r)}))},ks=(e,t,o,n,r)=>{o.table(e,0,0,t.populateColumn(0,((e,t,o)=>{const n=r.generator(e,t,o);return{raw:n,value:n.value,classes:n.classes,attributes:{contenteditable:"false",...n.attributes,"data-mce-resize":!1===r.resizable?"false":null}}})),!0,!0),((e,t)=>{It(e,Ss,t)})(e,n),Cs(e,0)},As=e=>Ko(qr(e),Hr(e)),Ns=(e,t)=>{e.execCommand("mceTableToggleSeries",!1,t)},Ls=(e,t,o)=>t.onSetupCellOrRowToggle((()=>((e,t)=>As(e).exists((e=>ae(t)?!Os(e):Rs(e,t))))(e,o))),Ps=(e,t)=>({type:"togglemenuitem",text:"None",onAction:()=>{(e=>As(e).bind(Ts))(e).each((t=>{Ns(e,{name:t})}))},onSetup:Ls(e,t,"")}),$s=(e,t,o,n,r)=>({type:"togglemenuitem",text:o,value:n,icon:r,onAction:()=>Ns(e,{name:n}),onSetup:Ls(e,t,n)}),Ms=(e,t,o)=>U(o,((o,n)=>{const r=y.from(o.title).getOrThunk((()=>{return""===(e=n)?"":e.charAt(0).toUpperCase()+e.substring(1);var e}));return $s(e,t,r,n)})),Ws=e=>t=>{const o=t.getData();t.close(),e.undoManager.transact((()=>{e.execCommand("mceSortTableAdvanced",!1,o),e.focus(),e.addVisual()}))},js=e=>{const t={type:"listbox",name:"sortby",label:"Sort by",items:[{text:"Column",value:"column"},{text:"Row",value:"row"}]},o=Z(y.none()),n=t=>({type:"listbox",name:"roworcol",label:"column"===t?"Column":"Row",items:"column"===t?(()=>{const t=o.get().getOrDie("state must be present"),n=t.limit?t.finishCol+1-t.startCol:t.columns;return O(n,(o=>{const n=t.limit?t.startCol:0,r=(e=>{let t=e,o="";for(;Math.floor(t)>0;)--t,o+=String.fromCharCode("A".charCodeAt(0)+t%26),t/=26;return o.split("").reverse().join("")})(o+n+1);return{text:e.translate(["Column {0}",r]),value:`${o+n}`}}))})():(()=>{const t=o.get().getOrDie("state must be present"),n=t.limit?t.finishRow+1-t.startRow:t.rows;return O(n,(o=>{const n=t.limit?t.startRow:0,r=(o+n+1).toString();return{text:e.translate(["Row {0}",r]),value:`${o+n}`}}))})()}),r=e=>({type:"listbox",name:"sort",label:"Sort",items:["column"===e?{text:"Column",value:"column"}:{text:"Row",value:"row"},{text:"Selection",value:"selection"},{text:"Table",value:"table"}]}),s={type:"listbox",name:"order",label:"Order",items:[{text:"Ascending",value:"ascending"},{text:"Descending",value:"descending"}]},l=e=>({type:"panel",items:[{type:"grid",columns:2,items:[t,n(e),r(e),s]}]}),c=e=>({title:"Advanced Sort",size:"normal",body:l(e),buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"sort",text:"Sort",primary:!0}]}),a=()=>{o.set(y.none())},i=(t,n)=>{if("sortby"===n.name){const n=t.getData(),l=(r=n,s=o.get().getOrDie("state must be present"),"column"===r.sortby?{sortby:"column",roworcol:`${s.startCol}`,sort:"row"===r.sort?"column":r.sort,order:r.order}:{sortby:"row",roworcol:`${s.startRow}`,sort:"column"===r.sort?"row":r.sort,order:r.order}),u={...c(n.sortby),onChange:i,onClose:a,onSubmit:Ws(e),initialData:l};t.redial(u),t.focus("sortby")}var r,s};ns(qr(e)).each((t=>{Ko(t,Hr(e)).each((n=>{const r=es(rs(e),n,t),s=t=>{o.set(y.some(t));const n={sortby:"column",roworcol:`${t.startCol}`,sort:"column",order:"ascending"},r={...c("column"),onChange:i,onClose:a,onSubmit:Ws(e),initialData:n};e.windowManager.open(r)},l=Rr(n);r.mergable.fold((()=>{zr(n,t,t).each((e=>{const t={...e,...l,limit:!1};s(t)}))}),(e=>{const t={...e.bounds,...l,limit:!0};s(t)}))}))}))},Bs=(e,t,o,r)=>{const s=e=>"selection"===e,l=e=>"ascending"===e,c=t=>Ko(t,Hr(e)),a=()=>ns(qr(e),Hr(e)).bind((e=>c(e).bind((t=>zr(t,e,e))))),i=()=>a().map((e=>e.startCol)),u=()=>a().map((e=>e.startRow)),m=t=>(...o)=>{e.mode.isReadOnly()||t(...o)};e.addCommand("mceSortTableByColumnAsc",m((()=>{i().each((e=>{o.selection(t.sortTableRowsAsc(e))}))}))),e.addCommand("mceSortTableByColumnDesc",m((()=>{i().each((e=>{o.selection(t.sortTableRowsDesc(e))}))}))),e.addCommand("mceSortTableByRowAsc",m((()=>{u().each((e=>{o.selection(t.sortTableColumnsAsc(e))}))}))),e.addCommand("mceSortTableByRowDesc",m((()=>{u().each((e=>{o.selection(t.sortTableColumnsDesc(e))}))}))),e.addCommand("mceSortTableAdvanced",m(((e,n)=>(e=>{const n=parseInt(e.roworcol,10);"column"===e.sortby?((e,n)=>{(e=>"column"===e)(e.sort)?l(e.order)?o.selection(t.sortColumnRowsAsc(n)):o.selection(t.sortColumnRowsDesc(n)):s(e.sort)?l(e.order)?o.selection(t.sortSelectionRowsAsc(n)):o.selection(t.sortSelectionRowsDesc(n)):l(e.order)?o.selection(t.sortTableRowsAsc(n)):o.selection(t.sortTableRowsDesc(n))})(e,n):((e,n)=>{(e=>"row"===e)(e.sort)?l(e.order)?o.selection(t.sortRowColumnsAsc(n)):o.selection(t.sortRowColumnsDesc(n)):s(e.sort)?l(e.order)?o.selection(t.sortSelectionColumnsAsc(n)):o.selection(t.sortSelectionColumnsDesc(n)):l(e.order)?o.selection(t.sortTableColumnsAsc(n)):o.selection(t.sortTableColumnsDesc(n))})(e,n)})(n)))),e.addCommand("mceAdvancedTableSort",(()=>js(e))),e.addCommand("mceTableToggleSeries",m(((s,l)=>{const a=y.from(l.name).filter(n),i=c(qr(e));oe(a,i,((e,n)=>{Rs(n,e)?((e,t,o)=>{xs(e,0),(e=>{Ht(e,Ss)})(e),o.column(0,t.deleteColumn,!0,!0)})(n,t,o):X(r,e).each((r=>{(Os(n)?ks:Es)(n,t,o,e,r)}))}))})))},Is=e=>{const t=Z(y.none()),o=Z([]);let n=y.none();const r=St("caption"),s=()=>os(qr(e),Hr(e)).bind((t=>ne(oe(Ko(t),os((e=>_e.fromDom(e.selection.getEnd()))(e),Hr(e)).bind(Ko),((o,n)=>Ke(o,n)?r(t)?y.some(Zr(t)):y.some(es(rs(e),o,t)):y.none()))))),l=e=>Ko(e.element).map((t=>{const o=on(t),n=Kn(o,e).getOr([]),r=P(n,((e,t)=>(t.isLocked&&(e.onAny=!0,0===t.column?e.onFirst=!0:t.column+t.colspan>=o.grid.columns&&(e.onLast=!0)),e)),{onAny:!1,onFirst:!1,onLast:!1});return{mergeable:Xn(o,e).isSome(),unmergeable:Yn(o,e).isSome(),locked:r}})),c=()=>{t.set(ie(s)()),n=t.get().bind(l),E(o.get(),(e=>e()))},a=e=>(e(),o.set(o.get().concat([e])),()=>{o.set(A(o.get(),(t=>t!==e)))}),i=(o,n)=>a((()=>t.get().fold((()=>{o.setEnabled(!1)}),(t=>{o.setEnabled(!n(t)&&!e.mode.isReadOnly())}))));return e.on("NodeChange ExecCommand TableSelectorChange",c),{onSetupTable:e=>i(e,(e=>!1)),onSetupCellOrRow:e=>i(e,(e=>r(e.element))),onSetupColumn:e=>t=>i(t,(t=>r(t.element)||(e=>n.exists((t=>t.locked[e])))(e))),onSetupCellOrRowToggle:o=>n=>((o,n,s)=>a((()=>t.get().fold((()=>{o.setEnabled(!1),o.setActive(!1)}),(t=>{o.setEnabled(!(e=>r(e.element))(t)&&!e.mode.isReadOnly()),o.setActive(s(t))})))))(n,0,o),resetTargets:c,targets:()=>t.get()}};((e,t)=>{const{i18n:o=!0}=t;o&&tinymce.PluginManager.requireLangPack(e,"ar,bg-BG,ca,cs,da,de,el,es,eu,fa,fi,fr-FR,he-IL,hi,hr,hu-HU,id,it,ja,kk,ko-KR,ms,nb-NO,nl,pl,pt-BR,pt-PT,ro,ru,sk,sl-SI,sv-SE,th-TH,tr,uk,vi,zh-CN,zh-TW"),tinymce.PluginManager.add(e,$e(e,t))})("advtable",{setup:e=>{(e=>{(0,e.options.register)("advtable_value_series",{processor:"object",default:{numeric:{title:"Numeric",update:!0,resizable:!1,generator:ms},alpha:{title:"Alpha",update:!0,resizable:!1,generator:ds}}})})(e);const t=ws(e),o=Is(e),n=(e=>{const t=t=>{e.focus()},o=t=>Ko(t,Hr(e)),n=(n,r,s,l,c)=>{ns(qr(e)).each((e=>{o(e).each((o=>{const a=on(o),i=(e,t)=>sn(a,e,Ke).map((e=>e[t])),u=n.orThunk((()=>i(e,"row"))),m=r.orThunk((()=>i(e,"column"))),d=ne(oe(u,m,((e,t)=>rn(a,e,t).map((e=>e.element)))));d.bind((t=>{const n=Zr(t);return s(o,n,re(l,e),!0,c)})).each(t)}))}))};return{selection:(n,r)=>{ns(qr(e)).each((s=>{o(s).each((o=>{const l=es(rs(e),o,s);n(o,l,y.none(),!0,r).each(t)}))}))},row:(e,t,o,r)=>n(y.some(e),y.none(),t,o,r),column:(e,t,o,r)=>n(y.none(),y.some(e),t,o,r),table:(o,n,r,s,l,c)=>{const a=on(o),i=rn(a,n,r).map((e=>e.element)),u=ns(qr(e)),m=u.bind((e=>sn(a,e,Ke))).isSome(),d=i.bind((e=>{const t=Zr(e),n=m&&l?u:y.none();return s(o,t,n,m,c)}));d.each(t)}}})(e),r=ps(e);return Bs(e,t,n,r),((e,t,o,n)=>{const r=()=>Ko(qr(e),Hr(e)),s=(s,l=v)=>{const c=Ts(s),a=c.bind((e=>X(n,e)));oe(c,a,((n,c)=>{1===on(s).grid.columns?r().exists((e=>Ke(s,e)))?e.execCommand("mceTableDelete"):e.undoManager.transact((()=>{Gt(s)})):!0===c.update&&l()&&ks(s,t,o,n,c)}))};e.on("TableModified",(e=>{const t=_e.fromDom(e.table);s(t,(()=>!1!==e.structure))})),e.on("PreInit",(()=>{((e,t)=>{const o=e=>{const t=[];return i(e)?t:((e=>"thead"===e.name||"tbody"===e.name||"tfoot"===e.name)(e)?t.push(...o(e.firstChild)):"tr"===e.name&&t.push(e),t.concat(o(e.next)))},n=e=>o(e.firstChild);e.parser.addAttributeFilter(Ss,(e=>{var o;for(const r of e)if("table"===r.name){const e=r.attr(Ss);if(!1===(null===(o=t[e])||void 0===o?void 0:o.resizable)){const e=n(r);for(const t of e)u(t.firstChild)&&t.firstChild.attr("data-mce-resize","false")}}}))})(e,n)})),e.on("init",(()=>{const t=()=>{const t=ns(qr(e),Hr(e));return e.selection.isCollapsed()&&t.exists((t=>e.dom.isEmpty(t.dom)))};e.on("ExecCommand",(e=>{const o=e.command.toLowerCase();"delete"!==o&&"forwarddelete"!==o||!t()||r().each(s)}),!0),e.on("keyup",(e=>{const o=e.keyCode;8!==o&&46!==o||!t()||r().each(s)}))}))})(e,t,n,r),e.hasPlugin("table")&&(((e,t)=>{const o=(t,o)=>()=>e.execCommand(t,!1,o),n=t.onSetupCellOrRow,r=[{type:"menuitem",text:"Sort table by column ascending",onAction:o("mceSortTableByColumnAsc"),onSetup:n},{type:"menuitem",text:"Sort table by column descending",onAction:o("mceSortTableByColumnDesc"),onSetup:n},{type:"separator"},{type:"menuitem",text:"Advanced sort...",onAction:()=>js(e),onSetup:n}];e.ui.registry.addNestedMenuItem("advtablesort",{type:"nestedmenuitem",text:"Sort",getSubmenuItems:g(r)});const s=ps(e);if(1===Q(s)){const o=V(s)[0];e.ui.registry.addToggleMenuItem("advtablerownumbering",$s(e,t,"Row numbering",o,"table-row-numbering"))}else J(s)||e.ui.registry.addNestedMenuItem("advtablerownumbering",{type:"nestedmenuitem",text:"Row numbering",icon:"table-row-numbering",getSubmenuItems:()=>{const o=Ps(e,t),n=Ms(e,t,s);return[o].concat(n)}})})(e,o),((e,t)=>{const o=ps(e);if(1===Q(o)){const n=V(o)[0];e.ui.registry.addToggleButton("advtablerownumbering",{type:"togglebutton",tooltip:"Row numbering",icon:"table-row-numbering",onAction:()=>Ns(e,{name:n}),onSetup:Ls(e,t,n)})}else J(o)||e.ui.registry.addMenuButton("advtablerownumbering",{type:"menubutton",icon:"table-row-numbering",tooltip:"Row numbering",fetch:n=>{const r=Ps(e,t),s=Ms(e,t,o);return n([r].concat(s))},onSetup:t.onSetupCellOrRow})})(e,o)),{}}})}(); \ No newline at end of file diff --git a/plugins/advtable/plugin.min.js b/plugins/advtable/plugin.min.js index c791c01e..caef0946 100644 --- a/plugins/advtable/plugin.min.js +++ b/plugins/advtable/plugin.min.js @@ -4,7 +4,7 @@ * Copyright (c) 2023 Ephox Corporation DBA Tiny Technologies, Inc. * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ * - * Version: 7.0.0-22 + * Version: 8.3.0-112 */ -!function(){"use strict";const e=e=>parseInt(e,10),t=(e,t)=>{const o=e-t;return 0===o?0:o>0?1:-1},o=(e,t,o)=>({major:e,minor:t,patch:o}),n=t=>{const n=/([0-9]+)\.([0-9]+)\.([0-9]+)(?:(\-.+)?)/.exec(t);return n?o(e(n[1]),e(n[2]),e(n[3])):o(0,0,0)},r=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(o=n=e,(r=String).prototype.isPrototypeOf(o)||(null===(s=n.constructor)||void 0===s?void 0:s.name)===r.name)?"string":t;var o,n,r,s})(t)===e,s=e=>t=>typeof t===e,l=e=>t=>e===t,c=r("string"),i=r("object"),a=r("array"),m=l(null),u=s("boolean"),d=l(void 0),h=e=>null==e,p=e=>!h(e),g=s("function"),f=s("number");class w{constructor(e,t){this.tag=e,this.value=t}static some(e){return new w(!0,e)}static none(){return w.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?w.some(e(this.value)):w.none()}bind(e){return this.tag?e(this.value):w.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:w.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return p(e)?w.some(e):w.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}w.singletonNone=new w(!1);const b=()=>{},v=e=>()=>e,y=e=>e,C=(e,t)=>e===t;function x(e,...t){return(...o)=>{const n=t.concat(o);return e.apply(null,n)}}const S=v(!1),T=v(!0),R=Array.prototype.slice,D=Array.prototype.indexOf,O=Array.prototype.push,A=(e,t)=>{return o=e,n=t,D.call(o,n)>-1;var o,n},E=(e,t)=>{for(let o=0,n=e.length;o{const o=[];for(let n=0;n{const o=e.length,n=new Array(o);for(let r=0;r{for(let o=0,n=e.length;o{const o=[],n=[];for(let r=0,s=e.length;r{const o=[];for(let n=0,r=e.length;n{if(0===e.length)return[];{let o=t(e[0]);const n=[];let r=[];for(let s=0,l=e.length;s(((e,t)=>{for(let o=e.length-1;o>=0;o--)t(e[o],o)})(e,((e,n)=>{o=t(o,e,n)})),o),I=(e,t,o)=>(W(e,((e,n)=>{o=t(o,e,n)})),o),P=(e,t)=>((e,t,o)=>{for(let n=0,r=e.length;n(e=>{const t=[];for(let o=0,n=e.length;o{for(let o=0,n=e.length;o{const o=R.call(e,0);return o.sort(t),o},$=(e,t)=>t>=0&&t$(e,0),G=e=>$(e,e.length-1),q=(e,t)=>{for(let o=0;oe.exists((e=>o(e,t))),U=(e,t,o)=>e.isSome()&&t.isSome()?w.some(o(e.getOrDie(),t.getOrDie())):w.none(),K=e=>e.bind(y),Q=(e,t)=>e?w.some(t):w.none(),X=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},Y={fromHtml:(e,t)=>{const o=(t||document).createElement("div");if(o.innerHTML=e,!o.hasChildNodes()||o.childNodes.length>1){const t="HTML does not have a single root node";throw console.error(t,e),new Error(t)}return X(o.childNodes[0])},fromTag:(e,t)=>{const o=(t||document).createElement(e);return X(o)},fromText:(e,t)=>{const o=(t||document).createTextNode(e);return X(o)},fromDom:X,fromPoint:(e,t,o)=>w.from(e.dom.elementFromPoint(t,o)).map(X)},J="undefined"!=typeof window?window:Function("return this;")(),Z=(e,t)=>((e,t)=>{let o=null!=t?t:J;for(let t=0;t{const t=Z("ownerDocument.defaultView",e);return i(e)&&((e=>((e,t)=>{const o=((e,t)=>Z(e,t))(e,t);if(null==o)throw new Error(e+" not available on this browser");return o})("HTMLElement",e))(t).prototype.isPrototypeOf(e)||/^HTML\w*Element$/.test(ee(e).constructor.name))},oe=e=>e.dom.nodeName.toLowerCase(),ne=e=>e.dom.nodeType,re=e=>t=>ne(t)===e,se=e=>8===ne(e)||"#comment"===oe(e),le=re(1),ce=re(3),ie=re(9),ae=re(11),me=e=>t=>le(t)&&oe(t)===e,ue=(e,t)=>{const o=e.dom;if(1!==o.nodeType)return!1;{const e=o;if(void 0!==e.matches)return e.matches(t);if(void 0!==e.msMatchesSelector)return e.msMatchesSelector(t);if(void 0!==e.webkitMatchesSelector)return e.webkitMatchesSelector(t);if(void 0!==e.mozMatchesSelector)return e.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")}},de=e=>1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType||0===e.childElementCount,he=(e,t)=>e.dom===t.dom,pe=ue,ge=e=>Y.fromDom(e.dom.ownerDocument),fe=e=>ie(e)?e:ge(e),we=e=>w.from(e.dom.parentNode).map(Y.fromDom),be=(e,t)=>{const o=g(t)?t:S;let n=e.dom;const r=[];for(;null!==n.parentNode&&void 0!==n.parentNode;){const e=n.parentNode,t=Y.fromDom(e);if(r.push(t),!0===o(t))break;n=e}return r},ve=e=>w.from(e.dom.previousSibling).map(Y.fromDom),ye=e=>w.from(e.dom.nextSibling).map(Y.fromDom),Ce=e=>N(e.dom.childNodes,Y.fromDom),xe=g(Element.prototype.attachShadow)&&g(Node.prototype.getRootNode)?e=>Y.fromDom(e.dom.getRootNode()):fe,Se=e=>Y.fromDom(e.dom.host),Te=e=>{const t=ce(e)?e.dom.parentNode:e.dom;if(null==t||null===t.ownerDocument)return!1;const o=t.ownerDocument;return(e=>{const t=xe(e);return ae(o=t)&&p(o.dom.host)?w.some(t):w.none();var o})(Y.fromDom(t)).fold((()=>o.body.contains(t)),(n=Te,r=Se,e=>n(r(e))));var n,r},Re=(e,t)=>{let o=[];return W(Ce(e),(e=>{t(e)&&(o=o.concat([e])),o=o.concat(Re(e,t))})),o},De=(e,t,o)=>((e,o,n)=>M(be(e,n),(e=>ue(e,t))))(e,0,o),Oe=(e,t)=>((e,o)=>M(Ce(e),(e=>ue(e,t))))(e),Ae=(e,t)=>((e,t)=>{const o=void 0===t?document:t.dom;return de(o)?[]:N(o.querySelectorAll(e),Y.fromDom)})(t,e),Ee=(e,t,o)=>{let n=e.dom;const r=g(o)?o:S;for(;n.parentNode;){n=n.parentNode;const e=Y.fromDom(n);if(t(e))return w.some(e);if(r(e))break}return w.none()},ke=(e,t,o)=>Ee(e,(e=>ue(e,t)),o),Ne=(e,t)=>((e,o)=>P(e.dom.childNodes,(e=>{return o=Y.fromDom(e),ue(o,t);var o})).map(Y.fromDom))(e),We=(e,t)=>((e,t)=>{const o=void 0===t?document:t.dom;return de(o)?w.none():w.from(o.querySelector(e)).map(Y.fromDom)})(t,e),Le=(e,t,o)=>((e,t,o,n,r)=>((e,t)=>ue(e,t))(o,n)?w.some(o):g(r)&&r(o)?w.none():t(o,n,r))(0,ke,e,t,o),Me=Object.keys,je=Object.hasOwnProperty,Be=(e,t)=>{const o=Me(e);for(let n=0,r=o.length;n{const o=[];return Be(e,((e,n)=>{o.push(t(e,n))})),o},Pe=e=>Ie(e,y),ze=e=>Me(e).length,_e=(e,t)=>Fe(e,t)?w.from(e[t]):w.none(),Fe=(e,t)=>je.call(e,t),$e=e=>{for(const t in e)if(je.call(e,t))return!1;return!0},Ve=(e,t,o)=>{if(!(c(o)||u(o)||f(o)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",o,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,o+"")},Ge=(e,t,o)=>{Ve(e.dom,t,o)},qe=(e,t)=>{const o=e.dom;Be(t,((e,t)=>{Ve(o,t,e)}))},He=(e,t)=>{const o=e.dom.getAttribute(t);return null===o?void 0:o},Ue=(e,t)=>w.from(He(e,t)),Ke=(e,t)=>{e.dom.removeAttribute(t)},Qe=e=>I(e.dom.attributes,((e,t)=>(e[t.name]=t.value,e)),{}),Xe=(e,t,o=0,n)=>{const r=e.indexOf(t,o);return-1!==r&&(!!d(n)||r+t.length<=n)},Ye=(e=>t=>t.replace(e,""))(/^\s+|\s+$/g),Je=e=>!(e=>e.length>0)(e),Ze=e=>void 0!==e.style&&g(e.style.getPropertyValue),et=(e,t,o)=>{((e,t,o)=>{if(!c(o))throw console.error("Invalid call to CSS.set. Property ",t,":: Value ",o,":: Element ",e),new Error("CSS value must be a string: "+o);Ze(e)&&e.style.setProperty(t,o)})(e.dom,t,o)},tt=(e,t)=>{const o=e.dom,n=window.getComputedStyle(o).getPropertyValue(t);return""!==n||Te(e)?n:ot(o,t)},ot=(e,t)=>Ze(e)?e.style.getPropertyValue(t):"",nt=(e,t)=>{const o=e.dom,n=ot(o,t);return w.from(n).filter((e=>e.length>0))},rt=(e,t)=>{((e,t)=>{Ze(e)&&e.style.removeProperty(t)})(e.dom,t),H(Ue(e,"style").map(Ye),"")&&Ke(e,"style")},st=(e,t,o=0)=>Ue(e,t).map((e=>parseInt(e,10))).getOr(o),lt=e=>me("col")(e)?st(e,"span",1)>1:((e,t)=>st(e,"colspan",1))(e)>1,ct=v(10),it=(e,t)=>at(e,t,T),at=(e,t,o)=>z(Ce(e),(e=>ue(e,t)?o(e)?[e]:[]:at(e,t,o))),mt=["tfoot","thead","tbody","colgroup"],ut=(e,t,o)=>({element:e,rowspan:t,colspan:o}),dt=(e,t,o)=>({element:e,cells:t,section:o}),ht=(e,t,o)=>({element:e,isNew:t,isLocked:o}),pt=(e,t,o,n)=>({element:e,cells:t,section:o,isNew:n}),gt=(e,t)=>((e,t,o=S)=>o(t)?w.none():A(e,oe(t))?w.some(t):ke(t,e.join(","),(e=>ue(e,"table")||o(e))))(["td","th"],e,t),ft=e=>it(e,"th,td"),wt=e=>ue(e,"colgroup")?Oe(e,"col"):z(yt(e),(e=>Oe(e,"col"))),bt=(e,t)=>Le(e,"table",t),vt=e=>it(e,"tr"),yt=e=>bt(e).fold(v([]),(e=>Oe(e,"colgroup"))),Ct=e=>we(e).map((e=>{const t=oe(e);return(e=>A(mt,e))(t)?t:"tbody"})).getOr("tbody"),xt=(e,t)=>pt(e.element,t,e.section,e.isNew),St=(e,t)=>e.cells[t],Tt=(e,t)=>St(e,t).element,Rt=e=>{const t=L(e,(e=>"colgroup"===e.section));return{rows:t.fail,cols:t.pass}},Dt="data-snooker-locked-cols",Ot=e=>Ue(e,Dt).bind((e=>w.from(e.match(/\d+/g)))).map((e=>((e,t)=>{const o={};for(let n=0,r=e.length;ne+","+t,Et=e=>{const t={},o=[],n=V(e).map((e=>e.element)).bind(bt).bind(Ot).getOr({});let r=0,s=0,l=0;const{pass:c,fail:i}=L(e,(e=>"colgroup"===e.section));W(i,(e=>{const c=[];W(e.cells,(e=>{let o=0;for(;void 0!==t[At(l,o)];)o++;const r=((e,t)=>Fe(e,t)&&void 0!==e[t]&&null!==e[t])(n,o.toString()),i=((e,t,o,n,r,s)=>({element:e,rowspan:t,colspan:o,row:n,column:r,isLocked:s}))(e.element,e.rowspan,e.colspan,l,o,r);for(let n=0;n{const t=(e=>{const t={};let o=0;return W(e.cells,(e=>{const n=e.colspan;k(n,(r=>{const s=o+r;t[s]=((e,t,o)=>({element:e,colspan:t,column:o}))(e.element,n,s)})),o+=n})),t})(e),o=((e,t)=>({element:e,columns:t}))(e.element,Pe(t));return{colgroups:[o],columns:t}})).getOrThunk((()=>({colgroups:[],columns:{}}))),u=((e,t)=>({rows:e,columns:t}))(r,s);return{grid:u,access:t,all:o,columns:a,colgroups:m}},kt=e=>{const t=(e=>{const t=vt(e);return o=[...yt(e),...t],n=Ct,N(o,(e=>{if("colgroup"===oe(e)){const t=N(wt(e),(e=>{const t=st(e,"span",1);return ut(e,1,t)}));return dt(e,t,"colgroup")}{const t=N(ft(e),(e=>{const t=st(e,"rowspan",1),o=st(e,"colspan",1);return ut(e,t,o)}));return dt(e,t,n(e))}}));var o,n})(e);return Et(t)},Nt=Et,Wt=(e,t,o)=>w.from(e.access[At(t,o)]),Lt=(e,t,o)=>{const n=((e,t)=>{const o=z(e.all,(e=>e.cells));return M(o,t)})(e,(e=>o(t,e.element)));return n.length>0?w.some(n[0]):w.none()},Mt=e=>Pe(e.columns),jt=e=>Me(e.columns).length>0,Bt=(e,t)=>w.from(e.columns[t]),It=e=>Y.fromDom(e.getBody()),Pt=e=>t=>he(t,It(e)),zt=e=>Y.fromDom(e.selection.getStart()),_t=(e,t)=>t.column>=e.startCol&&t.column+t.colspan-1<=e.finishCol&&t.row>=e.startRow&&t.row+t.rowspan-1<=e.finishRow,Ft=(e,t,o)=>((e,t,o)=>{const n=Lt(e,t,he),r=Lt(e,o,he);return n.bind((e=>r.map((t=>{return o=e,n=t,{startRow:Math.min(o.row,n.row),startCol:Math.min(o.column,n.column),finishRow:Math.max(o.row+o.rowspan-1,n.row+n.rowspan-1),finishCol:Math.max(o.column+o.colspan-1,n.column+n.colspan-1)};var o,n}))))})(e,t,o).bind((t=>((e,t)=>{let o=!0;const n=x(_t,t);for(let r=t.startRow;r<=t.finishRow;r++)for(let s=t.startCol;s<=t.finishCol;s++)o=o&&Wt(e,r,s).exists(n);return o?w.some(t):w.none()})(e,t))),$t=(e,t,o)=>{const n=Vt(e);return Ft(n,t,o)},Vt=kt,Gt=(e,t)=>{we(e).each((o=>{o.dom.insertBefore(t.dom,e.dom)}))},qt=(e,t)=>{ye(e).fold((()=>{we(e).each((e=>{Ut(e,t)}))}),(e=>{Gt(e,t)}))},Ht=(e,t)=>{(e=>((e,t)=>{const o=e.dom.childNodes;return w.from(o[0]).map(Y.fromDom)})(e))(e).fold((()=>{Ut(e,t)}),(o=>{e.dom.insertBefore(t.dom,o.dom)}))},Ut=(e,t)=>{e.dom.appendChild(t.dom)},Kt=(e,t)=>{Gt(e,t),Ut(t,e)},Qt=(e,t)=>{W(t,((o,n)=>{const r=0===n?e:t[n-1];qt(r,o)}))},Xt=(e,t)=>{W(t,(t=>{Ut(e,t)}))},Yt=e=>{e.dom.textContent="",W(Ce(e),(e=>{Jt(e)}))},Jt=e=>{const t=e.dom;null!==t.parentNode&&t.parentNode.removeChild(t)},Zt=e=>{const t=Ce(e);t.length>0&&Qt(e,t),Jt(e)},eo=((e,t)=>{const o=t=>e(t)?w.from(t.dom.nodeValue):w.none();return{get:t=>{if(!e(t))throw new Error("Can only get text value of a text node");return o(t).getOr("")},getOption:o,set:(t,o)=>{if(!e(t))throw new Error("Can only set raw text value of a text node");t.dom.nodeValue=o}}})(ce),to=e=>eo.get(e),oo=(e,t)=>eo.set(e,t);var no=["body","p","div","article","aside","figcaption","figure","footer","header","nav","section","ol","ul","li","table","thead","tbody","tfoot","caption","tr","td","th","h1","h2","h3","h4","h5","h6","blockquote","pre","address"],ro=()=>({up:v({selector:ke,closest:Le,predicate:Ee,all:be}),down:v({selector:Ae,predicate:Re}),styles:v({get:tt,getRaw:nt,set:et,remove:rt}),attrs:v({get:He,set:Ge,remove:Ke,copyTo:(e,t)=>{const o=Qe(e);qe(t,o)}}),insert:v({before:Gt,after:qt,afterAll:Qt,append:Ut,appendAll:Xt,prepend:Ht,wrap:Kt}),remove:v({unwrap:Zt,remove:Jt}),create:v({nu:Y.fromTag,clone:e=>Y.fromDom(e.dom.cloneNode(!1)),text:Y.fromText}),query:v({comparePosition:(e,t)=>e.dom.compareDocumentPosition(t.dom),prevSibling:ve,nextSibling:ye}),property:v({children:Ce,name:oe,parent:we,document:e=>fe(e).dom,isText:ce,isComment:se,isElement:le,isSpecial:e=>{const t=oe(e);return A(["script","noscript","iframe","noframes","noembed","title","style","textarea","xmp"],t)},getLanguage:e=>le(e)?Ue(e,"lang"):w.none(),getText:to,setText:oo,isBoundary:e=>!!le(e)&&("body"===oe(e)||A(no,oe(e))),isEmptyTag:e=>!!le(e)&&A(["br","img","hr","input"],oe(e)),isNonEditable:e=>le(e)&&"false"===He(e,"contenteditable")}),eq:he,is:pe});const so=(e,t,o,n)=>{const r=t(e,o);return B(n,((o,n)=>{const r=t(e,n);return lo(e,o,r)}),r)},lo=(e,t,o)=>t.bind((t=>o.filter(x(e.eq,t)))),co=ro(),io=e=>ke(e,"table"),ao=(e,t,o)=>We(e,t).bind((t=>We(e,o).bind((e=>{return(o=io,n=[t,e],((e,t,o)=>o.length>0?((e,t,o,n)=>n(e,t,o[0],o.slice(1)))(e,t,o,so):w.none())(co,((e,t)=>o(t)),n)).map((o=>({first:t,last:e,table:o})));var o,n})))),mo=y,uo=e=>{const t=(e,t)=>Ue(e,t).exists((e=>parseInt(e,10)>1));return e.length>0&&_(e,(e=>t(e,"rowspan")||t(e,"colspan")))?w.some(e):w.none()},ho=(e,t,o)=>{return t.length<=1?w.none():(n=e,r=o.firstSelectedSelector,s=o.lastSelectedSelector,ao(n,r,s).bind((e=>{const t=e=>he(n,e),o="thead,tfoot,tbody,table",r=ke(e.first,o,t),s=ke(e.last,o,t);return r.bind((t=>s.bind((o=>he(t,o)?$t(e.table,e.first,e.last):w.none()))))}))).map((e=>({bounds:e,cells:t})));var n,r,s},po="data-mce-selected",go="data-mce-first-selected",fo="data-mce-last-selected",wo={selected:po,selectedSelector:"td["+po+"],th["+po+"]",firstSelected:go,firstSelectedSelector:"td["+go+"],th["+go+"]",lastSelected:fo,lastSelectedSelector:"td["+fo+"],th["+fo+"]"},bo=e=>({element:e,mergable:w.none(),unmergable:w.none(),selection:[e]}),vo=(e,t,o)=>({element:o,mergable:ho(t,e,wo),unmergable:uo(e),selection:mo(e)}),yo=e=>(t,o)=>{const n=oe(t),r="col"===n||"colgroup"===n?bt(s=t).bind((e=>((e,t)=>((e,t)=>{const o=Ae(e,t);return o.length>0?w.some(o):w.none()})(e,t))(e,wo.firstSelectedSelector))).fold(v(s),(e=>e[0])):t;var s;return Le(r,e,o)},Co=yo("th,td,caption"),xo=yo("th,td"),So=e=>{return t=e.model.table.getSelectedCells(),N(t,Y.fromDom);var t},To=e=>{let t,o=!1;return(...n)=>(o||(o=!0,t=e.apply(null,n)),t)},Ro=(e,t)=>({element:e,offset:t}),Do=(e,t,o)=>e.property().isText(t)&&0===e.property().getText(t).trim().length||e.property().isComment(t)?o(t).bind((t=>Do(e,t,o).orThunk((()=>w.some(t))))):w.none(),Oo=(e,t)=>e.property().isText(t)?e.property().getText(t).length:e.property().children(t).length,Ao=(e,t)=>{const o=Do(e,t,e.query().prevSibling).getOr(t);if(e.property().isText(o))return Ro(o,Oo(e,o));const n=e.property().children(o);return n.length>0?Ao(e,n[n.length-1]):Ro(o,Oo(e,o))},Eo=Ao,ko=ro(),No={unsupportedLength:["em","ex","cap","ch","ic","rem","lh","rlh","vw","vh","vi","vb","vmin","vmax","cm","mm","Q","in","pc","pt","px"],fixed:["px","pt"],relative:["%"],empty:[""]},Wo=(()=>{const e="[0-9]+",t="[eE][+-]?"+e,o=e=>`(?:${e})?`,n=["Infinity",e+"\\."+o(e)+o(t),"\\."+e+o(t),e+o(t)].join("|");return new RegExp(`^([+-]?(?:${n}))(.*)$`)})(),Lo=(e,t)=>w.from(Wo.exec(e)).bind((e=>{const o=Number(e[1]),n=e[2];return((e,t)=>E(t,(t=>E(No[t],(t=>e===t)))))(n,t)?w.some({value:o,unit:n}):w.none()})),Mo=(e,t,o)=>((e,t)=>(e=>{const t=parseFloat(e);return isNaN(t)?w.none():w.some(t)})(e).getOr(t))(tt(e,t),o),jo=((e,t)=>{const o=t=>{const o=(e=>e.dom.offsetWidth)(t);if(o<=0||null===o){const o=tt(t,e);return parseFloat(o)||0}return o},n=(e,t)=>I(t,((t,o)=>{const n=tt(e,o),r=void 0===n?0:parseInt(n,10);return isNaN(r)?t:t+r}),0);return{set:(t,o)=>{if(!f(o)&&!o.match(/^[0-9]+$/))throw new Error(e+".set accepts only positive integer values. Value was "+o);const n=t.dom;Ze(n)&&(n.style[e]=o+"px")},get:o,getOuter:o,aggregate:n,max:(e,t,o)=>{const r=n(e,o);return t>r?t-r:0}}})("width"),Bo=e=>jo.get(e),Io=e=>jo.getOuter(e),Po=e=>((e,t)=>{const o=e.dom,n=o.getBoundingClientRect().width||o.offsetWidth;return"border-box"===t?n:((e,t,o,n)=>t-Mo(e,`padding-${o}`,0)-Mo(e,`padding-${n}`,0)-Mo(e,`border-${o}-width`,0)-Mo(e,`border-${n}-width`,0))(e,n,"left","right")})(e,"content-box"),zo=me("col"),_o=(e,t,o)=>{const n=(r=e,w.from(r.dom.parentElement).map(Y.fromDom)).getOrThunk((()=>(e=>{const t=e.dom.body;if(null==t)throw new Error("Body is not available yet");return Y.fromDom(t)})(ge(e))));var r;return t(e)/o(n)*100},Fo=(e,t)=>{et(e,"width",t+"px")},$o=(e,t)=>{et(e,"width",t+"%")},Vo=e=>((e,t)=>nt(e,t).orThunk((()=>Ue(e,t).map((e=>e+"px")))))(e,"width"),Go=e=>_o(e,Bo,Po),qo=e=>{return zo(e)?Bo(e):Mo(t=e,"width",t.dom.offsetWidth);var t},Ho=(e,t,o)=>{et(e,"width",t+o)},Uo=v(/(\d+(\.\d+)?)%/),Ko=(e,t)=>{if(!lt(e)){const o=(e=>Vo(e).bind((e=>Lo(e,["fixed","relative","empty"]))))(e);o.each((o=>{const n=o.value/2;Ho(e,n,o.unit),Ho(t,n,o.unit)}))}},Qo=me("col"),Xo=me("colgroup"),Yo=e=>({element:e,colspan:st(e,"colspan",1),rowspan:st(e,"rowspan",1)}),Jo=(e,t=Yo)=>{const o=o=>{if((e=>"tr"===oe(e)||Xo(e))(o))return Xo((r={element:o}).element)?e.colgroup(r):e.row(r);{const r=o,s=(t=>Qo(t.element)?e.col(t):e.cell(t))(t(r));return n=w.some({item:r,replacement:s}),s}var r};let n=w.none();return{getOrInit:(e,t)=>n.fold((()=>o(e)),(n=>t(e,n.item)?n.replacement:o(e)))}},Zo=e=>N(e,v(0)),en=e=>(t,o,n,r)=>{if(e(n)){const e=Math.max(r,t[o]-Math.abs(n)),s=Math.abs(e-t[o]);return n>=0?s:-s}return n},tn=en((e=>e<0)),on=en(T),nn=()=>{const e=(e,t,o,n,r)=>{const s=on(e,n>=0?o:t,n,r);return((e,t,o,n,r)=>r(e.slice(0,t)).concat(n).concat(r(e.slice(o))))(e,t,o+1,[s,-s],Zo)};return{resizeTable:(e,t,o)=>{o&&e(t)},clampTableDelta:(e,t,o,n,r)=>{if(r){if(o>=0)return o;{const t=I(e,((e,t)=>e+t-n),0);return Math.max(-t,o)}}return tn(e,t,o,n)},calcLeftEdgeDeltas:e,calcMiddleDeltas:(t,o,n,r,s,l)=>e(t,n,r,s,l),calcRightEdgeDeltas:(e,t,o,n,r,s)=>{if(s)return Zo(e);{const t=n/e.length;return N(e,v(t))}},calcRedestributedWidths:(e,t,o,n)=>({delta:0,newSizes:e})}},rn=(e,t)=>Y.fromDom(e.dom.cloneNode(t)),sn=(e,t)=>{const o=((e,t)=>{const o=Y.fromTag(t),n=Qe(e);return qe(o,n),o})(e,t),n=Ce((e=>rn(e,!0))(e));return Xt(o,n),o},ln=(me("th"),(e,t,o)=>ht(o(e.element,t),!0,e.isLocked)),cn=()=>({transformRow:y,transformCell:ln}),an=()=>mn(0,0),mn=(e,t)=>({major:e,minor:t}),un={nu:mn,detect:(e,t)=>{const o=String(t).toLowerCase();return 0===e.length?an():((e,t)=>{const o=((e,t)=>{for(let o=0;oNumber(t.replace(o,"$"+e));return mn(n(1),n(2))})(e,o)},unknown:an},dn=(e,t)=>{const o=String(t).toLowerCase();return P(e,(e=>e.search(o)))},hn=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,pn=e=>t=>Xe(t,e),gn=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:e=>Xe(e,"edge/")&&Xe(e,"chrome")&&Xe(e,"safari")&&Xe(e,"applewebkit")},{name:"Chromium",brand:"Chromium",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,hn],search:e=>Xe(e,"chrome")&&!Xe(e,"chromeframe")},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:e=>Xe(e,"msie")||Xe(e,"trident")},{name:"Opera",versionRegexes:[hn,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:pn("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:pn("firefox")},{name:"Safari",versionRegexes:[hn,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:e=>(Xe(e,"safari")||Xe(e,"mobile/"))&&Xe(e,"applewebkit")}],fn=[{name:"Windows",search:pn("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:e=>Xe(e,"iphone")||Xe(e,"ipad"),versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:pn("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"macOS",search:pn("mac os x"),versionRegexes:[/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:pn("linux"),versionRegexes:[]},{name:"Solaris",search:pn("sunos"),versionRegexes:[]},{name:"FreeBSD",search:pn("freebsd"),versionRegexes:[]},{name:"ChromeOS",search:pn("cros"),versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/]}],wn={browsers:v(gn),oses:v(fn)},bn="Edge",vn="Chromium",yn="Opera",Cn="Firefox",xn="Safari",Sn=e=>{const t=e.current,o=e.version,n=e=>()=>t===e;return{current:t,version:o,isEdge:n(bn),isChromium:n(vn),isIE:n("IE"),isOpera:n(yn),isFirefox:n(Cn),isSafari:n(xn)}},Tn=()=>Sn({current:void 0,version:un.unknown()}),Rn=Sn,Dn=(v(bn),v(vn),v("IE"),v(yn),v(Cn),v(xn),"Windows"),On="Android",An="Linux",En="macOS",kn="Solaris",Nn="FreeBSD",Wn="ChromeOS",Ln=e=>{const t=e.current,o=e.version,n=e=>()=>t===e;return{current:t,version:o,isWindows:n(Dn),isiOS:n("iOS"),isAndroid:n(On),isMacOS:n(En),isLinux:n(An),isSolaris:n(kn),isFreeBSD:n(Nn),isChromeOS:n(Wn)}},Mn=()=>Ln({current:void 0,version:un.unknown()}),jn=Ln,Bn=(v(Dn),v("iOS"),v(On),v(An),v(En),v(kn),v(Nn),v(Wn),e=>window.matchMedia(e).matches);let In=To((()=>((e,t,o)=>{const n=wn.browsers(),r=wn.oses(),s=t.bind((e=>((e,t)=>q(t.brands,(t=>{const o=t.brand.toLowerCase();return P(e,(e=>{var t;return o===(null===(t=e.brand)||void 0===t?void 0:t.toLowerCase())})).map((e=>({current:e.name,version:un.nu(parseInt(t.version,10),0)})))})))(n,e))).orThunk((()=>((e,t)=>dn(e,t).map((e=>{const o=un.detect(e.versionRegexes,t);return{current:e.name,version:o}})))(n,e))).fold(Tn,Rn),l=((e,t)=>dn(e,t).map((e=>{const o=un.detect(e.versionRegexes,t);return{current:e.name,version:o}})))(r,e).fold(Mn,jn),c=((e,t,o,n)=>{const r=e.isiOS()&&!0===/ipad/i.test(o),s=e.isiOS()&&!r,l=e.isiOS()||e.isAndroid(),c=l||n("(pointer:coarse)"),i=r||!s&&l&&n("(min-device-width:768px)"),a=s||l&&!i,m=t.isSafari()&&e.isiOS()&&!1===/safari/i.test(o),u=!a&&!i&&!m;return{isiPad:v(r),isiPhone:v(s),isTablet:v(i),isPhone:v(a),isTouch:v(c),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:v(m),isDesktop:v(u)}})(l,s,e,o);return{browser:s,os:l,deviceType:c}})(navigator.userAgent,w.from(navigator.userAgentData),Bn)));const Pn=(e,t=T)=>{const o=e.grid,n=k(o.columns,y),r=k(o.rows,y);return N(n,(o=>zn((()=>z(r,(t=>Wt(e,t,o).filter((e=>e.column===o)).toArray()))),(e=>1===e.colspan&&t(e.element)),(()=>Wt(e,0,o)))))},zn=(e,t,o)=>{const n=e();return P(n,t).orThunk((()=>w.from(n[0]).orThunk(o))).map((e=>e.element))},_n=(e,t)=>({left:e,top:t,translate:(o,n)=>_n(e+o,t+n)}),Fn=_n,$n=(e,t)=>void 0!==e?e:void 0!==t?t:0,Vn=e=>{const t=e.dom.ownerDocument,o=t.body,n=t.defaultView,r=t.documentElement;if(o===e.dom)return Fn(o.offsetLeft,o.offsetTop);const s=$n(null==n?void 0:n.pageYOffset,r.scrollTop),l=$n(null==n?void 0:n.pageXOffset,r.scrollLeft),c=$n(r.clientTop,o.clientTop),i=$n(r.clientLeft,o.clientLeft);return Gn(e).translate(l-i,s-c)},Gn=e=>{const t=e.dom,o=t.ownerDocument.body;return o===t?Fn(o.offsetLeft,o.offsetTop):Te(e)?(e=>{const t=e.getBoundingClientRect();return Fn(t.left,t.top)})(t):Fn(0,0)},qn=(e,t)=>({col:e,x:t}),Hn=e=>Vn(e).left+Io(e),Un=e=>Vn(e).left,Kn=(e,t)=>qn(e,Un(t)),Qn=(e,t)=>qn(e,Hn(t)),Xn=(e,t,o)=>{if(0===o.length)return[];const n=N(o.slice(1),((t,o)=>t.map((t=>e(o,t))))),r=o[o.length-1].map((e=>t(o.length-1,e)));return n.concat([r])},Yn=(Jn={delta:y,edge:Un,positions:e=>Xn(Kn,Qn,e)},Zn={delta:e=>-e,edge:Hn,positions:e=>Xn(Qn,Kn,e)},e=>"rtl"===(e=>"rtl"===tt(e,"direction")?"rtl":"ltr")(e)?Zn:Jn);var Jn,Zn;const er=e=>Yn(e).edge(e),tr=me("col"),or=(e,t,o,n,r,s)=>e.filter(n).fold((()=>s(((e,t)=>{if(t<0||t>=e.length-1)return w.none();const o=e[t].fold((()=>{const o=(e=>{const t=R.call(e,0);return t.reverse(),t})(e.slice(0,t));return q(o,((e,t)=>e.map((e=>({value:e,delta:t+1})))))}),(e=>w.some({value:e,delta:0}))),n=e[t+1].fold((()=>{const o=e.slice(t+1);return q(o,((e,t)=>e.map((e=>({value:e,delta:t+1})))))}),(e=>w.some({value:e,delta:1})));return o.bind((e=>n.map((t=>{const o=t.delta+e.delta;return Math.abs(t.value-e.value)/o}))))})(o,t))),(e=>r(e))),nr=(e,t,o,n)=>{const r=Pn(e),s=jt(e)?(e=>N(Mt(e),(e=>w.from(e.element))))(e):r,l=[w.some(er(t))].concat(N(((e,t)=>Yn(t).positions(e,t))(r,t),(e=>e.map((e=>e.x))))),c=(i=lt,e=>!i(e));var i;return N(s,((e,t)=>or(e,t,l,c,(e=>{if((e=>{const t=In().browser,o=t.isChromium()||t.isFirefox();return!tr(e)||o})(e))return o(e);{const e=((e,t)=>null!=e?t(e):w.none())(r[t],y);return or(e,t,l,c,(e=>n(w.some(Bo(e)))),n)}}),n)))},rr=(e,t,o)=>nr(e,t,qo,(e=>e.getOrThunk(o.minCellWidth))),sr=(e,t)=>()=>Te(e)?t(e):parseFloat(nt(e,"width").getOr("0")),lr=e=>Vo(e).fold((()=>(e=>{const t=sr(e,Bo),o=v(0);return{width:t,pixelWidth:t,getWidths:(t,o)=>rr(t,e,o),getCellDelta:o,singleColumnWidth:v([0]),minCellWidth:o,setElementWidth:b,adjustTableWidth:b,isRelative:!0,label:"none"}})(e)),(t=>{return o=e,n=t,null!==Uo().exec(n)?(e=>{const t=sr(e,(e=>parseFloat((e=>_o(e,Bo,Po)+"%")(e)))),o=sr(e,Bo);return{width:t,pixelWidth:o,getWidths:(t,o)=>((e,t,o)=>nr(e,t,Go,(e=>e.fold((()=>o.minCellWidth()),(e=>e/o.pixelWidth()*100)))))(t,e,o),getCellDelta:e=>e/o()*100,singleColumnWidth:(e,t)=>[100-e],minCellWidth:()=>ct()/o()*100,setElementWidth:$o,adjustTableWidth:o=>{const n=t();$o(e,n+o/100*n)},isRelative:!0,label:"percent"}})(o):(e=>{const t=sr(e,Bo);return{width:t,pixelWidth:t,getWidths:(t,o)=>rr(t,e,o),getCellDelta:y,singleColumnWidth:(e,t)=>[Math.max(ct(),e+t)-e],minCellWidth:ct,setElementWidth:Fo,adjustTableWidth:o=>{const n=t()+o;Fo(e,n)},isRelative:!1,label:"pixel"}})(o);var o,n})),cr=(e,t,o,n)=>{o===n?Ke(e,t):Ge(e,t,o)},ir=(e,t,o)=>{G(Oe(e,t)).fold((()=>Ht(e,o)),(e=>qt(e,o)))},ar=(e,t)=>{const o=[],n=[],r=e=>N(e,(e=>{e.isNew&&o.push(e.element);const t=e.element;return Yt(t),W(e.cells,(e=>{e.isNew&&n.push(e.element),cr(e.element,"colspan",e.colspan,1),cr(e.element,"rowspan",e.rowspan,1),Ut(t,e.element)})),t})),s=e=>z(e,(e=>N(e.cells,(e=>(cr(e.element,"span",e.colspan,1),e.element))))),l=(t,o)=>{const n=((e,t)=>{const o=Ne(e,t).getOrThunk((()=>{const o=Y.fromTag(t,ge(e).dom);return"thead"===t?ir(e,"caption,colgroup",o):"colgroup"===t?ir(e,"caption",o):Ut(e,o),o}));return Yt(o),o})(e,o),l=("colgroup"===o?s:r)(t);Xt(n,l)},c=(t,o)=>{t.length>0?l(t,o):(t=>{Ne(e,t).each(Jt)})(o)},i=[],a=[],m=[],u=[];return W(t,(e=>{switch(e.section){case"thead":i.push(e);break;case"tbody":a.push(e);break;case"tfoot":m.push(e);break;case"colgroup":u.push(e)}})),c(u,"colgroup"),c(i,"thead"),c(a,"tbody"),c(m,"tfoot"),{newRows:o,newCells:n}},mr=(e,t)=>{if(0===e.length)return 0;const o=e[0],n=((e,n)=>{for(let n=0,s=e.length;n{const o=N(e,(e=>N(e.cells,S)));return N(e,((n,r)=>{const s=z(n.cells,((n,s)=>{if(!1===o[r][s]){const m=((e,t,o,n)=>{const r=((e,t)=>e[t])(e,t),s="colgroup"===r.section,l=mr(r.cells.slice(o),n),c=s?1:mr(((e,t)=>N(e,(e=>St(e,t))))(e.slice(t),o),n);return{colspan:l,rowspan:c}})(e,r,s,t);return((e,t,n,r)=>{for(let s=e;sq(e.all,(e=>P(e.cells,(e=>he(t,e.element))))),hr=(e,t,o)=>{const n=(e=>{const t=[],o=e=>{t.push(e)};for(let t=0;tgt(t).bind((t=>dr(e,t))).filter(o))));return Q(n.length>0,n)},pr=(e,t,o,n,r)=>(s,l,c,i)=>{const a=kt(s),m=w.from(null==i?void 0:i.section).getOrThunk(cn),u=t(a,l).map((t=>{const o=((e,t)=>((e,t,o)=>{const n=[];W(e.colgroups,(r=>{const s=[];for(let n=0;nht(e.element,o,!1))).getOrThunk((()=>ht(t.colGap(),!0,!1)));s.push(r)}n.push(pt(r.element,s,"colgroup",o))}));for(let r=0;rht(e.element,o,e.isLocked))).getOrThunk((()=>ht(t.gap(),!0,!1)));s.push(l)}const l=e.all[r],c=pt(l.element,s,l.section,o);n.push(c)}return n})(e,t,!1))(a,c),n=e(o,t,he,r(c),m),s=(e=>{const t=I(Rt(e).rows,((e,t)=>(W(t.cells,((t,o)=>{t.isLocked&&(e[o]=!0)})),e)),{}),o=Ie(t,((e,t)=>parseInt(t,10)));return F(o)})(n.grid);return{info:t,grid:(l=n.grid,ur(l,he)),cursor:n.cursor,lockedColumns:s};var l}));return u.bind((e=>{const t=ar(s,e.grid),r=w.from(null==i?void 0:i.sizing).getOrThunk((()=>lr(s))),l=w.from(null==i?void 0:i.resize).getOrThunk(nn);return o(s,e.grid,e.info,{sizing:r,resize:l,section:m}),n(s),Ke(s,Dt),e.lockedColumns.length>0&&Ge(s,Dt,e.lockedColumns.join(",")),w.some({cursor:e.cursor,newRows:t.newRows,newCells:t.newCells})}))},gr=(e,t)=>gt(t.element).bind((t=>dr(e,t))),fr=(e,t)=>hr(e,t,T),wr=(e,t)=>_(t,(t=>((e,t)=>dr(e,t).exists((e=>!e.isLocked)))(e,t))),br=(e,t)=>((e,t)=>t.mergable)(0,t).filter((t=>wr(e,t.cells))),vr=(e,t)=>((e,t)=>t.unmergable)(0,t).filter((t=>wr(e,t))),yr=["img","br"],Cr=e=>{return(t=e,eo.getOption(t)).filter((e=>0!==e.trim().length||e.indexOf("\xa0")>-1)).isSome()||A(yr,oe(e))||(e=>{return le(t=e)&&te(t.dom)&&"false"===He(e,"contenteditable");var t})(e);var t},xr={scope:["row","col"]},Sr=e=>()=>{const t=Y.fromTag("td",e.dom);return Ut(t,Y.fromTag("br",e.dom)),t},Tr=e=>()=>Y.fromTag("col",e.dom),Rr=e=>()=>Y.fromTag("colgroup",e.dom),Dr=e=>()=>Y.fromTag("tr",e.dom),Or=(e,t,o)=>{const n=sn(e,t);return Be(o,((e,t)=>{null===e?Ke(n,t):Ge(n,t,e)})),n},Ar=(e,t,o)=>{return(n=e,((e,t)=>{const o=e=>{for(let n=0;n{const r=o.join(","),s=De(n,r,(t=>he(t,e)));return B(s,((e,t)=>{const o=rn(t,!1);return Ut(e,o),o}),t)})).getOr(t);var n},Er=(e,t,o)=>{const n=(e,t)=>{((e,t)=>{const o=e.dom,n=t.dom;Ze(o)&&Ze(n)&&(n.style.cssText=o.style.cssText)})(e.element,t),rt(t,"height"),1!==e.colspan&&rt(t,"width")};return{col:o=>{const r=Y.fromTag(oe(o.element),t.dom);return n(o,r),e(o.element,r),r},colgroup:Rr(t),row:Dr(t),cell:r=>{const s=Y.fromTag(oe(r.element),t.dom),l=o.getOr(["strong","em","b","i","span","font","h1","h2","h3","h4","h5","h6","p","div"]),c=l.length>0?Ar(r.element,s,l):s;return Ut(c,Y.fromTag("br")),n(r,s),((e,t)=>{Be(xr,((o,n)=>Ue(e,n).filter((e=>A(o,e))).each((e=>Ge(t,n,e)))))})(r.element,s),e(r.element,s),s},replace:Or,colGap:Tr(t),gap:Sr(t)}},kr=e=>kt(e).grid,Nr=(e,t=!1)=>{return Te(e)?e.dom.isContentEditable:(o=e,Le(o,"[contenteditable]")).fold(v(t),(e=>"true"===Wr(e)));var o},Wr=e=>e.dom.contentEditable,Lr=(e,t,o,n,r)=>N(e,(e=>{const s=t>0&&t{if("colgroup"!==o&&n)return St(e,t);{const t=St(e,r);return ht(l(t.element,s),!0,!1)}})(e,t,e.section,s,o,n,r);return((e,t,o)=>((e,t,o)=>{const n=e.cells,r=n.slice(0,t),s=n.slice(t),l=r.concat(o).concat(s);return xt(e,l)})(e,t,[o]))(e,t,l)})),Mr={...(e=>{if(!a(e))throw new Error("cases must be an array");if(0===e.length)throw new Error("there must be at least one case");const t=[],o={};return W(e,((n,r)=>{const s=Me(n);if(1!==s.length)throw new Error("one and only one name per case");const l=s[0],c=n[l];if(void 0!==o[l])throw new Error("duplicate key detected:"+l);if("cata"===l)throw new Error("cannot have a case named cata (sorry)");if(!a(c))throw new Error("case arguments must be an array");t.push(l),o[l]=(...o)=>{const n=o.length;if(n!==c.length)throw new Error("Wrong number of arguments to case "+l+". Expected "+c.length+" ("+c+"), got "+n);return{fold:(...t)=>{if(t.length!==e.length)throw new Error("Wrong number of arguments to fold. Expected "+e.length+", got "+t.length);return t[r].apply(null,o)},match:e=>{const n=Me(e);if(t.length!==n.length)throw new Error("Wrong number of arguments to match. Expected: "+t.join(",")+"\nActual: "+n.join(","));if(!_(t,(e=>A(n,e))))throw new Error("Not all branches were specified when using match. Specified: "+n.join(", ")+"\nRequired: "+t.join(", "));return e[l].apply(null,o)},log:e=>{console.log(e,{constructors:t,constructor:l,params:o})}}}})),o})([{none:[]},{only:["index"]},{left:["index","next"]},{middle:["prev","index","next"]},{right:["prev","index"]}])},jr=(e,t)=>jt(e)?((e,t)=>{const o=Mt(e);return N(o,((e,o)=>({element:e.element,width:t[o],colspan:e.colspan})))})(e,t):((e,t)=>{const o=(e=>z(e.all,(e=>e.cells)))(e);return N(o,(e=>{const o=((e,t,o)=>{let n=0;for(let r=e;r{const n=jr(e,t);W(n,(e=>{o.setElementWidth(e.element,e.width)}))},Ir=e=>I(e,((e,t)=>E(e,(e=>e.column===t.column))?e:e.concat([t])),[]).sort(((e,t)=>e.column-t.column)),Pr=e=>Nr(e,!0),zr=(e,t,o)=>((e,t)=>({grid:e,cursor:t}))(e,((e,t,o)=>{var n,r;const s=Rt(e).rows;return w.from(null===(r=null===(n=s[t])||void 0===n?void 0:n.cells[o])||void 0===r?void 0:r.element).filter(Pr).orThunk((()=>(e=>q(e,(e=>q(e.cells,(e=>{const t=e.element;return Q(Pr(t),t)})))))(s)))})(e,t,o)),_r=(e,t,o,n)=>((e,t,o,n,r)=>{const s=Nt(t),l=n.getWidths(s,n),c=n.pixelWidth(),{newSizes:i,delta:a}=r.calcRedestributedWidths(l,c,o.pixelDelta,n.isRelative);Br(s,i,n),n.adjustTableWidth(a)})(0,t,o,n.sizing,n.resize),Fr=(e,t)=>{const o=Pn(e),n=Ir(t);return I(n,((e,t)=>e+o[t.column].map(Io).getOr(0)),0)},$r=pr(((e,t,o,n)=>{const r=t.detail,s=r.column,l=r.column,c=Lr(e,l,s,o,n.getOrInit);return zr(c,r.row,l)}),((e,t)=>gr(e,t).filter((e=>!E([e],(e=>0===e.column&&e.isLocked)))).map((t=>({detail:t,pixelDelta:Fr(e,[t])})))),_r,b,Jo),Vr=pr(((e,t,o,n)=>{const r=Ir(t.details),s=((e,t)=>z(e,(e=>{const o=e.cells,n=B(t,((e,t)=>t>=0&&t0?[pt(e.element,n,e.section,e.isNew)]:[]})))(e,N(r,(e=>e.column))),l=s.length>0?s[0].cells.length-1:0;return zr(s,r[0].row,Math.min(r[0].column,l))}),((e,t)=>((e,t)=>hr(e,t,(e=>!e.isLocked)))(e,t).map((t=>({details:t,pixelDelta:-Fr(e,t)})))),_r,(e=>{0===ft(e).length&&Jt(e)}),Jo),Gr=(e,t)=>{const o=He(e,t);return void 0===o||""===o?[]:o.split(" ")},qr=e=>void 0!==e.dom.classList,Hr=e=>e.dom.textContent,Ur=me("th"),Kr=(e,t)=>e&&t?"sectionCells":e?"section":"cells",Qr=e=>{const t=M(e,(e=>Ur(e.element)));return 0===t.length?w.some("td"):t.length===e.length?w.some("th"):w.none()},Xr=e=>{const t=N(e,(e=>(e=>{const t="thead"===e.section,o=H(Qr(e.cells),"th");return"tfoot"===e.section?{type:"footer"}:t||o?{type:"header",subType:Kr(t,o)}:{type:"body"}})(e).type)),o=A(t,"header"),n=A(t,"footer");if(o||n){const e=A(t,"body");return!o||e||n?o||e||!n?w.none():w.some("footer"):w.some("header")}return w.some("body")},Yr={structure:!1,style:!0},Jr={structure:!0,style:!1},Zr=(e,t,o)=>({value:t+1}),es=(e,t,o)=>{const n="A".charCodeAt(0),r=[];let s=t;for(;s>=0;)r.push(String.fromCharCode(n+s%26)),s=Math.floor(s/26)-1;return{value:r.reverse().join("")}},ts=e=>e.options.get("advtable_value_series"),os=e=>{const t=parseFloat(e);return isNaN(t)?w.none():w.some(t)},ns=(e,t)=>et?1:0,rs=(e,t)=>U(os(e),os(t),ns).getOrThunk((()=>((e,t)=>e.localeCompare(t))(e,t))),ss=e=>{const t=(e=>w.from(e.options.get("table_clone_elements")))(e),o=(o,r,s,l)=>(c,i,a,m,u=!1)=>{const d=Y.fromDom(e.getDoc()),h=Er(s,d,t);return r(c)?o(c,i,h).bind((t=>{W(t.newRows,(t=>{((e,t)=>{e.dispatch("NewRow",{node:t})})(e,t.dom)})),W(t.newCells,(t=>{((e,t)=>{e.dispatch("NewCell",{node:t})})(e,t.dom)}));const o=((t,o,r,s)=>{const l=r.filter((e=>Te(e)&&n(e))).or(o.cursor);return l.fold((()=>{const o=ft(t);return V(o).filter(Te).map((o=>{const n=e.dom.createRng();return n.selectNode(o.dom),s&&(e.model.table.clearSelectedCells(t.dom),e.selection.setRng(n),Ge(o,"data-mce-selected","1")),n}))}),(o=>{const n=e.dom.createRng(),r=Eo(ko,o);return n.setStart(r.element.dom,r.offset),n.setEnd(r.element.dom,r.offset),s&&(e.model.table.clearSelectedCells(t.dom),e.selection.setRng(n)),w.some(n)}))})(c,t,a,m);return Te(c)&&((e=>{Ke(e,"data-mce-style");const t=e=>Ke(e,"data-mce-style");W(ft(e),t),W(wt(e),t),W(vt(e),t)})(c),u||((e,t,o)=>{e.dispatch("TableModified",{...o,table:t})})(e,c.dom,l)),o.map((e=>({rng:e,effect:l})))})):w.none()},n=e=>Nr(e,!0),r=(e,t,o)=>((e,t)=>({grid:e,cursor:t}))(e,((e,t,o)=>{var r,s;const l=Rt(e).rows;return w.from(null===(s=null===(r=l[t])||void 0===r?void 0:r.cells[o])||void 0===s?void 0:s.element).filter(n).orThunk((()=>(e=>q(e,(e=>q(e.cells,(e=>{const t=e.element;return Q(n(t),t)})))))(l)))})(e,t,o)),s=(e,t,o,n)=>{const{cols:r,rows:s}=Rt(e),l=j(s,(e=>e.section)),c=N(l,(e=>j(e,(e=>{const o=St(e,t).element;return oe(o)})))),i=z(c,(e=>z(e,(e=>{const r=St(e[0],t).element;return"th"===oe(r)?e:(e=>{const r=N(e,(e=>{const o=St(e,t).element;return{row:e,text:w.from(Hr(o)).getOr("")}})),s=F(r,((e,t)=>{const r=o(e.text,t.text);return n?r:-1*r}));return N(s,(e=>e.row))})(e)}))));return[...r,...i]},l=(e,t,o,n)=>{const{cols:r,rows:s}=Rt(e),l=s[t].cells,c=N(l,(e=>{const t=e.element;return w.from(Hr(t)).getOr("")})),i=me("th"),a=N(s,(e=>{const t=N(e.cells,((e,t)=>({cell:e,column:t,reference:l[t],referenceText:c[t]})));return{...e,zippedCells:t}})),m=N(a,(e=>{const t=j(e.zippedCells,(e=>{const t=e.reference.element;return oe(t)})),r=z(t,(e=>{const t=e[0].reference.element;if(i(t))return N(e,(e=>e.cell));{const{pass:t,fail:r}=L(e,(e=>e.cell.isLocked)),s=F(r,((e,t)=>{const r=o(e.referenceText,t.referenceText);return n?r:-1*r})),l=I(t,((e,t)=>{const o=t.column,n=e.slice(0,o),r=e.slice(o);return n.concat([t]).concat(r)}),s);return N(l,(e=>e.cell))}}));return pt(e.element,r,e.section,e.isNew)}));return[...r,...m]},u=s,d=l,h=(e,t,o,n,r)=>{const{cols:s,rows:l}=Rt(e),c=l.slice(0,t),i=[...s,...l.slice(t,o+1)];return{beforeRows:c,afterRows:l.slice(o+1,e.length),selectionGridBefore:i.map((e=>({...e,cells:e.cells.slice(0,n)}))),selectionGrid:i.map((e=>({...e,cells:e.cells.slice(n,r+1)}))),selectionGridAfter:i.map((e=>({...e,cells:e.cells.slice(r+1,e.cells.length)})))}},p=(e,t)=>{const o=N(t,((t,o)=>{const n=e.selectionGridBefore[o].cells,r=e.selectionGridAfter[o].cells;return{...t,cells:n.concat(t.cells).concat(r)}})),{cols:n,rows:r}=Rt(o);return[...n,...e.beforeRows,...r,...e.afterRows]},g=(e,t,o,n,r,l,c,i)=>{const a=h(e,o,n,r,l),m=s(a.selectionGrid,t-r,c,i);return p(a,m)},C=(e,t,o,n,r,s,c,i)=>{const a=h(e,o,n,r,s),m=l(a.selectionGrid,t-o,c,i);return p(a,m)},x=e=>I(e,((e,t)=>E(e,(e=>e.row===t.row))?e:e.concat([t])),[]).sort(((e,t)=>e.row-t.row)),S=e=>I(e,((e,t)=>E(e,(e=>e.column===t.column))?e:e.concat([t])),[]).sort(((e,t)=>e.column-t.column)),R=e=>I(e,((e,t)=>E(e,(e=>he(e.element,t.element)))?e:e.concat([t])),[]),D=e=>{const t=i(e.attributes)?Ie(e.attributes,((e,t)=>m(e)?e=>Ke(e,t):o=>Ge(o,t,e))):[];return[...t,...((e,t)=>{if(a(e)){for(let o=0,n=e.length;ot=>((e,t)=>{qr(e)?e.dom.classList.add(t):((e,t)=>{((e,t,o)=>{const n=Gr(e,t).concat([o]);Ge(e,t,n.join(" "))})(e,"class",t)})(e,t)})(t,e))):[],t=>{const o=Hr(t)||"",n=(r=e.value,f(r)?String(r):c(r)?r:void 0);var r;const s=c(n)?n:o;Je(s)?((e,t)=>{const o=ge(e).dom,n=Y.fromDom(o.createDocumentFragment()),r=((e,t)=>{const o=(t||document).createElement("div");return o.innerHTML=e,Ce(Y.fromDom(o))})(t,o);Xt(n,r),Yt(e),Ut(e,n)})(t,"
"):((e,t)=>{e.dom.textContent=t})(t,s)}]},O=(e,t,o,n,r,s,l,c)=>{let i;W(t,((t,a)=>{const m=t.element,u={sectionType:s(a),cellType:oe(m),getRowType:l(a),getColType:c(a),classes:(p=m,qr(p)?(e=>{const t=e.dom.classList,o=new Array(t.length);for(let e=0;eGr(e,"class"))(p)),prev:null==i?void 0:i.raw,direction:o},d=e(u,n(a),r(a)),h=D(d);var p;W(h,(e=>e(m))),i=d}))},A=(e,t,o,n,s)=>{const l=g(e,s,0,e.length,s,s,o,n);return r(l,t[0].row,t[0].column)},k=(e,t,o,n,s)=>{const l=x(t),c=S(t),i=g(e,s,l[0].row,l[l.length-1].row,c[0].column,c[c.length-1].column,o,n);return r(i,t[0].row,t[0].column)},M=(e,t,o,n,s)=>{const l=u(e,s,o,n);return r(l,t.row,t.column)},B=(e,t,o,n,s)=>{const l=C(e,s,s,s,0,e[t[0].row].cells.length,o,n);return r(l,t[0].row,t[0].column)},P=(e,t,o,n,s)=>{const l=x(t),c=S(t),i=C(e,s,l[0].row,l[l.length-1].row,c[0].column,c[c.length-1].column,o,n);return r(i,t[0].row,t[0].column)},_=(e,t,o,n,s)=>{const l=d(e,s,o,n);return r(l,t.row,t.column)},$=(e,t,o,n)=>{const s=Rt(e).rows,l=N(s,(e=>St(e,n))),c=R(l),i=To((()=>Qr(c).getOr("")));return O(o,c,"column",y,v(n),(e=>s[e].section),(e=>To((()=>{const t=s[e];return Xr([{cells:t.cells,section:t.section}]).getOr("")}))),(e=>i)),r(e,t.row,t.column)},G=(e,t,o,n)=>{const s=Rt(e).rows,l=s[n],c=R(l.cells),i=To((()=>Xr([{cells:l.cells,section:l.section}]).getOr("")));return O(o,c,"row",v(n),y,(e=>l.section),(e=>i),(e=>To((()=>{const t=N(s,(t=>St(t,e)));return Qr(t).getOr("")})))),r(e,t.row,t.column)},H=(e,t,o,n,r)=>(s,l,c)=>{const i=pr(((r,s)=>e(r,s,t,o,n)),r,b,b,Jo);return i(s,l,c)},U=(e,t,o,n)=>(r,s,l)=>{const c=pr(((n,r)=>e(n,r,t,o)),n,b,b,Jo);return c(r,s,l)},K=o($r,T,Ko,Jr),X=o(Vr,(t=>0==("table"===oe(It(e)))||kr(t).columns>1),b,Jr);return{sortColumnRowsAsc:e=>o(H(A,rs,!0,e,fr),T,b,Jr),sortColumnRowsDesc:e=>o(H(A,rs,!1,e,fr),T,b,Jr),sortSelectionRowsAsc:e=>o(H(k,rs,!0,e,fr),T,b,Jr),sortSelectionRowsDesc:e=>o(H(k,rs,!1,e,fr),T,b,Jr),sortTableRowsAsc:e=>o(H(M,rs,!0,e,gr),T,b,Jr),sortTableRowsDesc:e=>o(H(M,rs,!1,e,gr),T,b,Jr),sortRowColumnsAsc:e=>o(H(B,rs,!0,e,fr),T,b,Jr),sortRowColumnsDesc:e=>o(H(B,rs,!1,e,fr),T,b,Jr),sortSelectionColumnsAsc:e=>o(H(P,rs,!0,e,fr),T,b,Jr),sortSelectionColumnsDesc:e=>o(H(P,rs,!1,e,fr),T,b,Jr),sortTableColumnsAsc:e=>o(H(_,rs,!0,e,gr),T,b,Jr),sortTableColumnsDesc:e=>o(H(_,rs,!1,e,gr),T,b,Jr),insertColumnBefore:K,deleteColumn:X,populateColumn:(e,t)=>o(U($,t,e,gr),T,b,Yr),populateRow:(e,t)=>o(U(G,t,e,gr),T,b,Yr)}},ls="data-snooker-locked-cols",cs=e=>Ue(e,ls).map((e=>z(e.split(","),(e=>{const t=parseInt(e,10);return isNaN(t)?[]:[t]})))).getOr([]),is=(e,t)=>Ge(e,ls,F(t).join(",")),as=(e,t)=>{const o=cs(e);A(o,t)||is(e,o.concat([t]))},ms=(e,t)=>{const o=cs(e);is(e,M(o,(e=>t!==e)))},us="data-snooker-col-series",ds=e=>Ue(e,us),hs=(e,t)=>H(ds(e).map((e=>e.toLowerCase())),t.toLowerCase()),ps=e=>((e,t)=>{const o=e.dom;return!(!o||!o.hasAttribute)&&o.hasAttribute(t)})(e,us),gs=e=>{const t=lr(e),o=kt(e),n=Wt(o,0,0).bind((e=>{const t=e.element;return Lo(tt(t,"width"),["fixed"])})).map((e=>28-e.value)).getOr(0);((e,t,o,n,r)=>{const s=kt(e),l=r.getCellDelta(t),c=r.getWidths(s,r),i=0==s.grid.columns-1,a=n.clampTableDelta(c,0,l,r.minCellWidth(),i),m=((e,t,o,n,r)=>{const s=e.slice(0),l=((e,t)=>0===e.length?Mr.none():1===e.length?Mr.only(0):0===t?Mr.left(0,1):t===e.length-1?Mr.right(t-1,t):t>0&&tn.singleColumnWidth(s[e],o)),((e,t)=>r.calcLeftEdgeDeltas(s,e,t,o,n.minCellWidth(),n.isRelative)),((e,t,l)=>r.calcMiddleDeltas(s,e,t,l,o,n.minCellWidth(),n.isRelative)),((e,t)=>r.calcRightEdgeDeltas(s,e,t,o,n.minCellWidth(),n.isRelative)))})(c,0,a,r,n),u=N(m,((e,t)=>e+c[t]));Br(s,u,r),n.resizeTable(r.adjustTableWidth,a,i)})(e,n,0,nn(),t)},fs=(e,t,o,n,r)=>{((e,t)=>{const o=E(cs(e),(e=>0===e));o&&ms(e,0),t(),o&&as(e,1)})(e,(()=>{o.column(0,t.insertColumnBefore,!0,!0),gs(e),ws(e,t,o,n,r)}))},ws=(e,t,o,n,r)=>{o.table(e,0,0,t.populateColumn(0,((e,t,o)=>{const n=r.generator(e,t,o);return{raw:n,value:n.value,classes:n.classes,attributes:{contenteditable:"false",...n.attributes,"data-mce-resize":!1===r.resizable?"false":null}}})),!0,!0),((e,t)=>{Ge(e,us,t)})(e,n),as(e,0)},bs=e=>{let t=e;return{get:()=>t,set:e=>{t=e}}},vs=e=>bt(zt(e),Pt(e)),ys=(e,t)=>{e.execCommand("mceTableToggleSeries",!1,t)},Cs=(e,t,o)=>t.onSetupCellOrRowToggle((()=>((e,t)=>vs(e).exists((e=>Je(t)?!ps(e):hs(e,t))))(e,o))),xs=(e,t)=>({type:"togglemenuitem",text:"None",onAction:()=>{(e=>vs(e).bind(ds))(e).each((t=>{ys(e,{name:t})}))},onSetup:Cs(e,t,"")}),Ss=(e,t,o,n,r)=>({type:"togglemenuitem",text:o,value:n,icon:r,onAction:()=>ys(e,{name:n}),onSetup:Cs(e,t,n)}),Ts=(e,t,o)=>Ie(o,((o,n)=>{const r=w.from(o.title).getOrThunk((()=>{return""===(e=n)?"":e.charAt(0).toUpperCase()+e.substring(1);var e}));return Ss(e,t,r,n)})),Rs=e=>t=>{const o=t.getData();t.close(),e.undoManager.transact((()=>{e.execCommand("mceSortTableAdvanced",!1,o),e.focus(),e.addVisual()}))},Ds=e=>{const t={type:"listbox",name:"sortby",label:"Sort by",items:[{text:"Column",value:"column"},{text:"Row",value:"row"}]},o=bs(w.none()),n=t=>({type:"listbox",name:"roworcol",label:"column"===t?"Column":"Row",items:"column"===t?(()=>{const t=o.get().getOrDie("state must be present"),n=t.limit?t.finishCol+1-t.startCol:t.columns;return k(n,(o=>{const n=t.limit?t.startCol:0,r=(e=>{let t=e,o="";for(;Math.floor(t)>0;)--t,o+=String.fromCharCode("A".charCodeAt(0)+t%26),t/=26;return o.split("").reverse().join("")})(o+n+1);return{text:e.translate(["Column {0}",r]),value:`${o+n}`}}))})():(()=>{const t=o.get().getOrDie("state must be present"),n=t.limit?t.finishRow+1-t.startRow:t.rows;return k(n,(o=>{const n=t.limit?t.startRow:0,r=(o+n+1).toString();return{text:e.translate(["Row {0}",r]),value:`${o+n}`}}))})()}),r=e=>({type:"listbox",name:"sort",label:"Sort",items:["column"===e?{text:"Column",value:"column"}:{text:"Row",value:"row"},{text:"Selection",value:"selection"},{text:"Table",value:"table"}]}),s={type:"listbox",name:"order",label:"Order",items:[{text:"Ascending",value:"ascending"},{text:"Descending",value:"descending"}]},l=e=>({type:"panel",items:[{type:"grid",columns:2,items:[t,n(e),r(e),s]}]}),c=e=>({title:"Advanced Sort",size:"normal",body:l(e),buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"sort",text:"Sort",primary:!0}]}),i=()=>{o.set(w.none())},a=(t,n)=>{if("sortby"===n.name){const n=t.getData(),l=(r=n,s=o.get().getOrDie("state must be present"),"column"===r.sortby?{sortby:"column",roworcol:`${s.startCol}`,sort:"row"===r.sort?"column":r.sort,order:r.order}:{sortby:"row",roworcol:`${s.startRow}`,sort:"column"===r.sort?"row":r.sort,order:r.order}),m={...c(n.sortby),onChange:a,onClose:i,onSubmit:Rs(e),initialData:l};t.redial(m),t.focus("sortby")}var r,s};xo(zt(e)).each((t=>{bt(t,Pt(e)).each((n=>{const r=vo(So(e),n,t),s=t=>{o.set(w.some(t));const n={sortby:"column",roworcol:`${t.startCol}`,sort:"column",order:"ascending"},r={...c("column"),onChange:a,onClose:i,onSubmit:Rs(e),initialData:n};e.windowManager.open(r)},l=kr(n);r.mergable.fold((()=>{$t(n,t,t).each((e=>{const t={...e,...l,limit:!1};s(t)}))}),(e=>{const t={...e.bounds,...l,limit:!0};s(t)}))}))}))},Os=(e,t,o,n)=>{const r=e=>"selection"===e,s=e=>"ascending"===e,l=t=>bt(t,Pt(e)),i=()=>xo(zt(e),Pt(e)).bind((e=>l(e).bind((t=>$t(t,e,e))))),a=()=>i().map((e=>e.startCol)),m=()=>i().map((e=>e.startRow));e.addCommand("mceSortTableByColumnAsc",(()=>{a().each((e=>{o.selection(t.sortTableRowsAsc(e))}))})),e.addCommand("mceSortTableByColumnDesc",(()=>{a().each((e=>{o.selection(t.sortTableRowsDesc(e))}))})),e.addCommand("mceSortTableByRowAsc",(()=>{m().each((e=>{o.selection(t.sortTableColumnsAsc(e))}))})),e.addCommand("mceSortTableByRowDesc",(()=>{m().each((e=>{o.selection(t.sortTableColumnsDesc(e))}))})),e.addCommand("mceSortTableAdvanced",((e,n)=>(e=>{const n=parseInt(e.roworcol,10);"column"===e.sortby?((e,n)=>{(e=>"column"===e)(e.sort)?s(e.order)?o.selection(t.sortColumnRowsAsc(n)):o.selection(t.sortColumnRowsDesc(n)):r(e.sort)?s(e.order)?o.selection(t.sortSelectionRowsAsc(n)):o.selection(t.sortSelectionRowsDesc(n)):s(e.order)?o.selection(t.sortTableRowsAsc(n)):o.selection(t.sortTableRowsDesc(n))})(e,n):((e,n)=>{(e=>"row"===e)(e.sort)?s(e.order)?o.selection(t.sortRowColumnsAsc(n)):o.selection(t.sortRowColumnsDesc(n)):r(e.sort)?s(e.order)?o.selection(t.sortSelectionColumnsAsc(n)):o.selection(t.sortSelectionColumnsDesc(n)):s(e.order)?o.selection(t.sortTableColumnsAsc(n)):o.selection(t.sortTableColumnsDesc(n))})(e,n)})(n))),e.addCommand("mceAdvancedTableSort",(()=>Ds(e))),e.addCommand("mceTableToggleSeries",((r,s)=>{const i=w.from(s.name).filter(c),a=l(zt(e));U(i,a,((e,r)=>{hs(r,e)?((e,t,o)=>{ms(e,0),(e=>{Ke(e,us)})(e),o.column(0,t.deleteColumn,!0,!0)})(r,t,o):_e(n,e).each((n=>{(ps(r)?ws:fs)(r,t,o,e,n)}))}))}))},As=e=>{const t=bs(w.none()),o=bs([]);let n=w.none();const r=me("caption"),s=()=>Co(zt(e),Pt(e)).bind((t=>K(U(bt(t),Co((e=>Y.fromDom(e.selection.getEnd()))(e),Pt(e)).bind(bt),((o,n)=>he(o,n)?r(t)?w.some(bo(t)):w.some(vo(So(e),o,t)):w.none()))))),l=e=>bt(e.element).map((t=>{const o=kt(t),n=fr(o,e).getOr([]),r=I(n,((e,t)=>(t.isLocked&&(e.onAny=!0,0===t.column?e.onFirst=!0:t.column+t.colspan>=o.grid.columns&&(e.onLast=!0)),e)),{onAny:!1,onFirst:!1,onLast:!1});return{mergeable:br(o,e).isSome(),unmergeable:vr(o,e).isSome(),locked:r}})),c=()=>{t.set(To(s)()),n=t.get().bind(l),W(o.get(),(e=>e()))},i=e=>(e(),o.set(o.get().concat([e])),()=>{o.set(M(o.get(),(t=>t!==e)))}),a=(e,o)=>i((()=>t.get().fold((()=>{e.setEnabled(!1)}),(t=>{e.setEnabled(!o(t))}))));return e.on("NodeChange ExecCommand TableSelectorChange",c),{onSetupTable:e=>a(e,(e=>!1)),onSetupCellOrRow:e=>a(e,(e=>r(e.element))),onSetupColumn:e=>t=>a(t,(t=>r(t.element)||(e=>n.exists((t=>t.locked[e])))(e))),onSetupCellOrRowToggle:e=>o=>((e,o,n)=>i((()=>t.get().fold((()=>{e.setEnabled(!1),e.setActive(!1)}),(t=>{e.setEnabled(!(e=>r(e.element))(t)),e.setActive(n(t))})))))(o,0,e),resetTargets:c,targets:()=>t.get()}};tinymce.PluginManager.requireLangPack("advtable","ar,bg_BG,ca,cs,da,de,el,es,eu,fa,fi,fr_FR,he_IL,hi,hr,hu_HU,id,it,ja,kk,ko_KR,ms,nb_NO,nl,pl,pt_BR,pt_PT,ro,ru,sk,sl_SI,sv_SE,th_TH,tr,uk,vi,zh_CN,zh_TW"),tinymce.PluginManager.add("advtable",(e=>{if(((e,o)=>!!e&&-1===((e,o)=>{const n=t(e.major,o.major);if(0!==n)return n;const r=t(e.minor,o.minor);if(0!==r)return r;const s=t(e.patch,o.patch);return 0!==s?s:0})((e=>n((e=>[e.majorVersion,e.minorVersion].join(".").split(".").slice(0,3).join("."))(e)))(e),n(o)))(tinymce,"6.0.0"))return console.error("Please use Enhanced Tables with TinyMCE 6.0.0 or later."),{};(e=>{(0,e.options.register)("advtable_value_series",{processor:"object",default:{numeric:{title:"Numeric",update:!0,resizable:!1,generator:Zr},alpha:{title:"Alpha",update:!0,resizable:!1,generator:es}}})})(e);const o=ss(e),r=As(e),s=(e=>{const t=t=>{e.focus()},o=t=>bt(t,Pt(e)),n=(n,r,s,l,c)=>{xo(zt(e)).each((e=>{o(e).each((o=>{const i=kt(o),a=(e,t)=>Lt(i,e,he).map((e=>e[t])),m=n.orThunk((()=>a(e,"row"))),u=r.orThunk((()=>a(e,"column"))),d=K(U(m,u,((e,t)=>Wt(i,e,t).map((e=>e.element)))));d.bind((t=>{const n=bo(t);return s(o,n,Q(l,e),!0,c)})).each(t)}))}))};return{selection:(n,r)=>{xo(zt(e)).each((s=>{o(s).each((o=>{const l=vo(So(e),o,s);n(o,l,w.none(),!0,r).each(t)}))}))},row:(e,t,o,r)=>n(w.some(e),w.none(),t,o,r),column:(e,t,o,r)=>n(w.none(),w.some(e),t,o,r),table:(o,n,r,s,l,c)=>{const i=kt(o),a=Wt(i,n,r).map((e=>e.element)),m=xo(zt(e)),u=m.bind((e=>Lt(i,e,he))).isSome(),d=a.bind((e=>{const t=bo(e),n=u&&l?m:w.none();return s(o,t,n,u,c)}));d.each(t)}}})(e),l=ts(e);return Os(e,o,s,l),((e,t,o,n)=>{const r=()=>bt(zt(e),Pt(e)),s=(s,l=T)=>{const c=ds(s),i=c.bind((e=>_e(n,e)));U(c,i,((n,c)=>{1===kt(s).grid.columns?r().exists((e=>he(s,e)))?e.execCommand("mceTableDelete"):e.undoManager.transact((()=>{Jt(s)})):!0===c.update&&l()&&ws(s,t,o,n,c)}))};e.on("TableModified",(e=>{const t=Y.fromDom(e.table);s(t,(()=>!1!==e.structure))})),e.on("PreInit",(()=>{((e,t)=>{const o=e=>{const t=[];return h(e)?t:((e=>"thead"===e.name||"tbody"===e.name||"tfoot"===e.name)(e)?t.push(...o(e.firstChild)):"tr"===e.name&&t.push(e),t.concat(o(e.next)))},n=e=>o(e.firstChild);e.parser.addAttributeFilter(us,(e=>{var o;for(const r of e)if("table"===r.name){const e=r.attr(us);if(!1===(null===(o=t[e])||void 0===o?void 0:o.resizable)){const e=n(r);for(const t of e)p(t.firstChild)&&t.firstChild.attr("data-mce-resize","false")}}}))})(e,n)})),e.on("init",(()=>{const t=()=>{const t=xo(zt(e),Pt(e));return e.selection.isCollapsed()&&t.exists((t=>e.dom.isEmpty(t.dom)))};e.on("ExecCommand",(e=>{const o=e.command.toLowerCase();"delete"!==o&&"forwarddelete"!==o||!t()||r().each(s)}),!0),e.on("keyup",(e=>{const o=e.keyCode;8!==o&&46!==o||!t()||r().each(s)}))}))})(e,o,s,l),e.hasPlugin("table")&&(((e,t)=>{const o=(t,o)=>()=>e.execCommand(t,!1,o),n=t.onSetupCellOrRow,r=[{type:"menuitem",text:"Sort table by column ascending",onAction:o("mceSortTableByColumnAsc"),onSetup:n},{type:"menuitem",text:"Sort table by column descending",onAction:o("mceSortTableByColumnDesc"),onSetup:n},{type:"separator"},{type:"menuitem",text:"Advanced sort...",onAction:()=>Ds(e),onSetup:n}];e.ui.registry.addNestedMenuItem("advtablesort",{type:"nestedmenuitem",text:"Sort",getSubmenuItems:v(r)});const s=ts(e);if(1===ze(s)){const o=Me(s)[0];e.ui.registry.addToggleMenuItem("advtablerownumbering",Ss(e,t,"Row numbering",o,"table-row-numbering"))}else $e(s)||e.ui.registry.addNestedMenuItem("advtablerownumbering",{type:"nestedmenuitem",text:"Row numbering",icon:"table-row-numbering",getSubmenuItems:()=>{const o=xs(e,t),n=Ts(e,t,s);return[o].concat(n)}})})(e,r),((e,t)=>{const o=ts(e);if(1===ze(o)){const n=Me(o)[0];e.ui.registry.addToggleButton("advtablerownumbering",{type:"togglebutton",tooltip:"Row numbering",icon:"table-row-numbering",onAction:()=>ys(e,{name:n}),onSetup:Cs(e,t,n)})}else $e(o)||e.ui.registry.addMenuButton("advtablerownumbering",{type:"menubutton",icon:"table-row-numbering",tooltip:"Row numbering",fetch:n=>{const r=xs(e,t),s=Ts(e,t,o);return n([r].concat(s))},onSetup:t.onSetupCellOrRow})})(e,r)),{}}))}(); \ No newline at end of file +!function(){"use strict";const e=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(o=n=e,(r=String).prototype.isPrototypeOf(o)||n.constructor?.name===r.name)?"string":t;var o,n,r})(t)===e,t=e=>t=>typeof t===e,o=e=>t=>e===t,n=e("string"),r=e("object"),s=e("array"),l=o(null),c=t("boolean"),a=o(void 0),i=e=>null==e,u=e=>!i(e),m=t("function"),d=t("number"),p=()=>{},g=e=>()=>e,h=e=>e,f=(e,t)=>e===t;function w(e,...t){return(...o)=>{const n=t.concat(o);return e.apply(null,n)}}const b=g(!1),v=g(!0);class y{tag;value;static singletonNone=new y(!1);constructor(e,t){this.tag=e,this.value=t}static some(e){return new y(!0,e)}static none(){return y.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?y.some(e(this.value)):y.none()}bind(e){return this.tag?e(this.value):y.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:y.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(e??"Called getOrDie on None")}static from(e){return u(e)?y.some(e):y.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}const C=Array.prototype.slice,x=Array.prototype.indexOf,S=Array.prototype.push,T=(e,t)=>{return o=e,n=t,x.call(o,n)>-1;var o,n},R=(e,t)=>{for(let o=0,n=e.length;o{const o=[];for(let n=0;n{const o=e.length,n=new Array(o);for(let r=0;r{for(let o=0,n=e.length;o{const o=[],n=[];for(let r=0,s=e.length;r{const o=[];for(let n=0,r=e.length;n{if(0===e.length)return[];{let o=t(e[0]);const n=[];let r=[];for(let s=0,l=e.length;s(((e,t)=>{for(let o=e.length-1;o>=0;o--)t(e[o],o)})(e,((e,n)=>{o=t(o,e,n)})),o),P=(e,t,o)=>(E(e,((e,n)=>{o=t(o,e,n)})),o),$=(e,t)=>((e,t,o)=>{for(let n=0,r=e.length;n(e=>{const t=[];for(let o=0,n=e.length;o{for(let o=0,n=e.length;o{const o=C.call(e,0);return o.sort(t),o},B=(e,t)=>t>=0&&tB(e,0),z=e=>B(e,e.length-1),F=(e,t)=>{for(let o=0;o{const o=V(e);for(let n=0,r=o.length;nG(e,((e,o)=>({k:o,v:t(e,o)}))),G=(e,t)=>{const o={};return q(e,((e,n)=>{const r=t(e,n);o[r.k]=r.v})),o},U=(e,t)=>{const o=[];return q(e,((e,n)=>{o.push(t(e,n))})),o},K=e=>U(e,h),Q=e=>V(e).length,X=(e,t)=>Y(e,t)?y.from(e[t]):y.none(),Y=(e,t)=>H.call(e,t),J=e=>{for(const t in e)if(H.call(e,t))return!1;return!0},Z=e=>{let t=e;return{get:()=>t,set:e=>{t=e}}},ee="undefined"!=typeof window?window:Function("return this;")(),te=(e,t,o=f)=>e.exists((e=>o(e,t))),oe=(e,t,o)=>e.isSome()&&t.isSome()?y.some(o(e.getOrDie(),t.getOrDie())):y.none(),ne=e=>e.bind(h),re=(e,t)=>e?y.some(t):y.none(),se=(e,t)=>((e,t)=>{let o=null!=t?t:ee;for(let t=0;t{const r=e.indexOf(t,o);return-1!==r&&(!!a(n)||r+t.length<=n)},ce=(e=>t=>t.replace(e,""))(/^\s+|\s+$/g),ae=e=>!(e=>e.length>0)(e),ie=e=>{let t,o=!1;return(...n)=>(o||(o=!0,t=e.apply(null,n)),t)},ue=(e,t)=>{const{type:o,message:n}=t;e.notificationManager.open({type:o,text:n})},me=e=>{const t=(e=>{switch(e){case"error":return console.error;case"info":return console.info;case"warn":return console.warn;default:return console.log}})(e.type);t(e.message)},de=(e,t)=>{const{protect:o,allowList:n=[],blockList:r=[]}=null!=e?e:{};let s;return s=u(o)?o:n.length>0||r.length>0||t,{protect:s,allowList:n,blockList:r}},pe=e=>{const{protect:t,allowList:o,blockList:n}=null!=e?e:{};return e=>{const r=e.toLowerCase();return o.length>0?!R(o,(e=>e.toLowerCase()===r)):n.length>0?R(n,(e=>e.toLowerCase()===r)):t}},ge=e=>{const t=pe(e);return(e,o)=>{const n=((e,t)=>`${e}:${t}`)(o,e.toLowerCase());return t(n)}},he=(e,t,o,n)=>{const r=Reflect.get(e,"on"),s={protectedEventHandlers:[],cleanupScheduled:!1},l=(e,t)=>{n&&console.log(`[EventsProxy] ${e}`,t||"")},c=t=>{"invalid"===t&&s.protectedEventHandlers.length>0&&(l("Removing event handlers",s.protectedEventHandlers),E(s.protectedEventHandlers,(t=>{e.off(t.name,t.callback)})),s.protectedEventHandlers=[])},a=t.onStatusChange(c);return e.on("remove",a),(n,a,i)=>{l(`Adding event listener: ${n}`,{shouldProtect:o(n)});const u=((e,n)=>{const r=o(e),l=t.getStatus(),c=r&&"invalid"===l?p:n;return r&&s.protectedEventHandlers.push({name:e,callback:c}),c})(n,a);return s.cleanupScheduled||(s.cleanupScheduled=!0,window.setTimeout((()=>{c(t.getStatus()),s.cleanupScheduled=!1}),0)),Reflect.apply(r,e,[n,u,i])}},fe=(e,t,o)=>n=>{const r="invalid"!==t.getStatus()&&u(o)?o(n):p,s=((e,t,o)=>{const n=e=>{"invalid"===e&&o.setEnabled(!1)},r=()=>n(t.getStatus());n(t.getStatus()),e.on("NodeChange",r);const s=t.onStatusChange(n);return()=>{e.off("NodeChange",r),s()}})(e,t,n);return e=>{null==r||r(e),s()}},we=(e,t,o)=>(...n)=>{var r;return"invalid"===e.getStatus()?o:null!==(r=null==t?void 0:t(...n))&&void 0!==r?r:o},be=(e,t)=>we(e,t,Promise.resolve([])),ve=(e,t)=>we(e,t,[]),ye=(e,t)=>we(e,t,!1),Ce=(e,t,o,r)=>{const s=t=>{const{command:s,value:l}=t,c=y.from(l).filter(n).map((e=>e.toLowerCase())),a=s.toLowerCase()===r.toLowerCase(),i=c.exists((e=>o.has(e))),u=c.exists((t=>t===e.queryCommandValue(r)));a&&i&&!u&&t.preventDefault()},l=t.onStatusChange((t=>{if("invalid"===t){e.on("BeforeExecCommand",s);const t=()=>{const t=e.queryCommandValue(r);o.has(t.toLowerCase())&&e.execCommand(r,!1,t)};e.initialized?t():e.on("init",t)}}));e.on("remove",(()=>{l(),e.off("BeforeExecCommand",s)}))},xe=(e,t,o,r,s,l=!1)=>{const c=new Set,a=new Set,i=(e,t)=>{l&&console.log(`[UiProxy] ${e}`,t||"")};((e,t,o)=>{Ce(e,t,o,"ToggleView")})(e,o,c),((e,t,o)=>{Ce(e,t,o,"ToggleSidebar")})(e,o,a);const u=(t,n,l,c)=>{const a=s(t,l);return i(`${c}: ${t}`,{spec:n,context:r,shouldProtect:a}),a?{...n,onSetup:fe(e,o,n.onSetup)}:n};return new Proxy(t,{get:(e,t,l)=>{const m=Reflect.get(e,t,l);if(!n(t))return m;switch(t){case"addButton":case"addGroupToolbarButton":case"addToggleButton":case"addMenuButton":case"addSplitButton":return(...o)=>{const[n,r,...s]=o,l=u(n,r,"button",String(t));return Reflect.apply(m,e,[n,l,...s])};case"addMenuItem":case"addToggleMenuItem":case"addNestedMenuItem":return(...o)=>{const[n,r,...s]=o,l=u(n,r,"menuitem",String(t));return Reflect.apply(m,e,[n,l,...s])};case"addAutocompleter":return(...n)=>{const[l,c,...a]=n,u=s(l,"autocompleter");if(i(`${String(t)}: ${l}`,{spec:c,context:r,shouldProtect:u}),u){const t={...c,fetch:be(o,c.fetch)};return Reflect.apply(m,e,[l,t,...a])}return Reflect.apply(m,e,[l,c,...a])};case"addSidebar":return(...o)=>{const[n,l,...c]=o,u=s(n,"sidebar");if(i(`${String(t)}: ${n}`,{spec:l,context:r,shouldProtect:u}),u){a.add(n.toLowerCase());const t={...l};return Reflect.apply(m,e,[n,t,...c])}return Reflect.apply(m,e,[n,l,...c])};case"addView":return(...o)=>{const[n,l,...a]=o,u=s(n,"view");if(i(`${String(t)}: ${n}`,{spec:l,context:r,shouldProtect:u}),u){c.add(n.toLowerCase());const t={...l};return Reflect.apply(m,e,[n,t,...a])}return Reflect.apply(m,e,[n,l,...a])};case"addContextMenu":return(...n)=>{const[l,c,...a]=n,u=s(l,"contextmenu");if(i(`${String(t)}: ${l}`,{spec:c,context:r,shouldProtect:u}),u){const t={...c,update:ve(o,c.update)};return Reflect.apply(m,e,[l,t,...a])}return Reflect.apply(m,e,[l,c,...a])};case"addContextToolbar":case"addContextForm":return(...n)=>{const[l,c,...a]=n,u=s(l,"contexttoolbar");if(i(`${String(t)}: ${l}`,{spec:c,context:r,shouldProtect:u}),u){const t={...c,predicate:ye(o,c.predicate)};return Reflect.apply(m,e,[l,t,...a])}return Reflect.apply(m,e,[l,c,...a])};case"addIcon":case"getAll":case"addContext":return m}}})},Se=new Set(["addCommand","addCommands","addQueryStateHandler","addQueryValueHandler"]),Te=e=>(t,o)=>{e&&console.log(`[EditorProxy] ${t}`,o||"")},Re=(e,t)=>{const{statusProvider:o,uiContext:n,protection:r,debug:s=!1}=t,{events:l,commands:c,ui:a}=r;Te(s)("Creating enhanced editor with options:",{hasStatusProvider:!!o,uiContext:n,debug:s,protection:r});const{editorUiProxy:i,editorCommandsProxy:u,editorEventListenerProxy:d}=((e,t,o,n,r,s,l)=>{const c=s.protect?{...e.ui,registry:xe(e,e.ui.registry,t,o,ge(s),l)}:e.ui,a=n.protect?((e,t,o,n,r)=>{const s={protectedCommands:[],cleanupScheduled:!1},l=(e,t)=>{r&&console.log(`[CommandsProxy] ${e}`,t||"")},c=(e,t)=>{const r=n(e),l=o.getStatus();return r&&s.protectedCommands.push(e),r&&"invalid"===l?p:t},a=t=>{"invalid"===t&&s.protectedCommands.length>0&&(l("Removing commands",s.protectedCommands),E(s.protectedCommands,(t=>{e.editorCommands.removeCommand(t)})),s.protectedCommands=[])},i=()=>{s.cleanupScheduled||(s.cleanupScheduled=!0,window.setTimeout((()=>{a(o.getStatus()),s.cleanupScheduled=!1}),0))},u=o.onStatusChange(a);return e.on("remove",u),new Proxy(t,{get:(e,o,r)=>{if(l(`Accessing property: ${String(o)}`),"addCommand"===o){const s=Reflect.get(e,o,r);return(e,o,...r)=>{l(`Adding command: ${e}`,{shouldProtect:n(e)});const a=c(e,o);return i(),Reflect.apply(s,t,[e,a,...r])}}if("addCommands"===o){const n=Reflect.get(e,o,r);return(e,o="exec")=>{l(`Adding commands (${o})`,{commandCount:Object.keys(e).length,willApplyEnforcement:"exec"===o});const r="exec"!==o?e:_(e,((e,t)=>c(t,e)));return i(),Reflect.apply(n,t,[r,o])}}return Reflect.get(e,o,r)}})})(e,e.editorCommands,t,pe(n),l):e.editorCommands;return{editorUiProxy:c,editorCommandsProxy:a,editorEventListenerProxy:r.protect?he(e,t,pe(r),l):e.on.bind(e)}})(e,o,n||"",c,l,a,s),g=((e,t,o,n)=>(r,s,l)=>{const c=String(s);if("on"===s)return Te(n)("on intercepted"),o;if(Se.has(c))return Te(n)(`${c} intercepted`),t[c].bind(t);if("editorCommands"===s)return Te(n)("editorCommands accessed"),t;if("ui"===s)return Te(n)("ui accessed"),e;const a=Reflect.get(r,s,l);return m(a)?a.bind(r):a})(i,u,d,s);return new Proxy(e,{get:g,set:(e,t,o,n)=>Reflect.set(e,t,o,n),has:(e,t)=>Reflect.has(e,t),ownKeys:e=>Reflect.ownKeys(e),getOwnPropertyDescriptor:(e,t)=>Reflect.getOwnPropertyDescriptor(e,t),defineProperty:(e,t,o)=>Reflect.defineProperty(e,t,o),deleteProperty:(e,t)=>Reflect.deleteProperty(e,t),isExtensible:e=>Reflect.isExtensible(e),preventExtensions:e=>Reflect.preventExtensions(e),getPrototypeOf:e=>Reflect.getPrototypeOf(e),setPrototypeOf:(e,t)=>Reflect.setPrototypeOf(e,t)})},Oe=e=>parseInt(e,10),De=(e,t)=>{const o=e-t;return 0===o?0:o>0?1:-1},Ee=(e,t,o)=>({major:e,minor:t,patch:o}),ke=e=>{const t=/([0-9]+)\.([0-9]+)\.([0-9]+)(?:(\-.+)?)/.exec(e);return t?Ee(Oe(t[1]),Oe(t[2]),Oe(t[3])):Ee(0,0,0)},Ae=(e,t)=>!!e&&-1===((e,t)=>{const o=De(e.major,t.major);if(0!==o)return o;const n=De(e.minor,t.minor);if(0!==n)return n;const r=De(e.patch,t.patch);return 0!==r?r:0})((e=>ke((e=>[e.majorVersion,e.minorVersion].join(".").split(".").slice(0,3).join("."))(e)))(e),ke(t)),Ne=ke("8.3.0"),Le=`${Ne.major}.${Ne.minor}.0`,Pe=`${Ne.major+1}.0.0`,$e=(e,t)=>{const{setup:o,protection:n}=t;return(r,s)=>{if(!((e,t)=>Ae(e,Le)?(console.error(`The "${t}" plugin requires at least version ${Le} of TinyMCE.`),!1):!!Ae(e,Pe)||(console.error(`The "${t}" plugin requires at least version ${Le} of TinyMCE but less than ${Pe}.`),!1))(tinymce,e)||((e,t)=>!!(e=>{var t;const o=null===(t=e.options.get("license_key"))||void 0===t?void 0:t.toLowerCase(),n=e.options.get("online_license_key");return i(n)&&"gpl"===o})(e)&&(((e,t)=>{const{console:o,editor:n}=t;u(n)&&(e._skinLoaded?ue(e,n):e.on("SkinLoaded",(()=>{ue(e,n)}))),u(o)&&me(o)})(e,{console:{type:"error",message:[`The "${t}" plugin requires a valid TinyMCE license key.`,"Read more: https://www.tiny.cloud/docs/tinymce/latest/license-key/"].join(" ")}}),!0))(r,e))return{};const l=(e=>{const{protect:t=!0,events:o,commands:n,ui:r,api:s}=null!=e?e:{};return{protect:t,events:de(o,false),commands:de(n,true),ui:de(r,true),api:de(s,true)}})(n),c=((e="pre-validation")=>{const t=Z(e),o=new Set;let n=!1;const{enableLogging:r=!1}={},s=(e,...t)=>{r&&console.log(`[StatusProvider] ${e}`,...t)};return{setStatus:e=>{const n=t.get();if(n===e)return s("Status unchanged:",e),!1;t.set(e),s("Status changed:",n,"->",e);const r={currentStatus:e,previousStatus:n},l=Array.from(o);return E(l,(e=>{e(r.currentStatus,r.previousStatus)})),!0},onStatusChange:e=>(o.add(e),s("Callback registered, total listeners:",o.size),()=>{o.delete(e)&&s("Callback unregistered, remaining listeners:",o.size)}),getStatus:t.get,hasListeners:()=>o.size>0,destroy:()=>{n||(s("Destroying StatusProvider, clearing",o.size,"listeners"),o.clear(),n=!0)}}})(),a=((e,t,o)=>{const n=`commercial-license-${t}`;return e.ui.registry.addContext(n,(()=>"invalid"!==o.getStatus()&&!e.mode.isReadOnly())),e.licenseKeyManager.validate({plugin:t}).then((e=>{o.setStatus(e?"valid":"invalid")}),(e=>{console.error(e),console.error(`An unknown error occurred when trying to validate "${t}" plugin.`),o.setStatus("invalid")})),{ui:{context:n}}})(r,e,c),d=l.protect?Re(r,{statusProvider:c,uiContext:a.ui.context,debug:t.debug||!1,protection:l}):r,p=((e,t)=>({pluginCode:e,enforcer:{isInvalid:()=>"invalid"===t.getStatus(),onInvalid:e=>t.onStatusChange(((t,o)=>{"invalid"===t&&e(t,o)}))}}))(e,c);return((e,t,o,n)=>{if(t.protect&&t.api.protect&&u(e)){const s=pe(t.api);return(r=e=>"invalid"===o.getStatus()&&s(e),(e,t)=>_(e,((e,o)=>m(e)?(...n)=>{if(r(o.toLowerCase())){const e=`Method "${u(t)?`${t}.`:""}${o}" is not available due to license key restrictions.`,n=new Error(e);throw console.error(e),n}return e(...n)}:e)))(e,n)}var r;return e})(o(d,s,p),l,c,e)}},Me=["tfoot","thead","tbody","colgroup"],We=(e,t,o)=>({element:e,rowspan:t,colspan:o}),je=(e,t,o)=>({element:e,cells:t,section:o}),Be=(e,t,o)=>({element:e,isNew:t,isLocked:o}),Ie=(e,t,o,n)=>({element:e,cells:t,section:o,isNew:n}),ze=(e,t)=>Ie(e.element,t,e.section,e.isNew),Fe=(e,t)=>e.cells[t],Ve=(e,t)=>Fe(e,t).element,He=e=>{const t=k(e,(e=>"colgroup"===e.section));return{rows:t.fail,cols:t.pass}},qe=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},_e={fromHtml:(e,t)=>{const o=(t||document).createElement("div");if(o.innerHTML=e,!o.hasChildNodes()||o.childNodes.length>1){const t="HTML does not have a single root node";throw console.error(t,e),new Error(t)}return qe(o.childNodes[0])},fromTag:(e,t)=>{const o=(t||document).createElement(e);return qe(o)},fromText:(e,t)=>{const o=(t||document).createTextNode(e);return qe(o)},fromDom:qe,fromPoint:(e,t,o)=>y.from(e.dom.elementFromPoint(t,o)).map(qe)},Ge=(e,t)=>{const o=e.dom;if(1!==o.nodeType)return!1;{const e=o;if(void 0!==e.matches)return e.matches(t);if(void 0!==e.msMatchesSelector)return e.msMatchesSelector(t);if(void 0!==e.webkitMatchesSelector)return e.webkitMatchesSelector(t);if(void 0!==e.mozMatchesSelector)return e.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")}},Ue=e=>1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType||0===e.childElementCount,Ke=(e,t)=>e.dom===t.dom,Qe=Ge,Xe=()=>Ye(0,0),Ye=(e,t)=>({major:e,minor:t}),Je={nu:Ye,detect:(e,t)=>{const o=String(t).toLowerCase();return 0===e.length?Xe():((e,t)=>{const o=((e,t)=>{for(let o=0;oNumber(t.replace(o,"$"+e));return Ye(n(1),n(2))})(e,o)},unknown:Xe},Ze=(e,t)=>{const o=String(t).toLowerCase();return $(e,(e=>e.search(o)))},et=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,tt=e=>t=>le(t,e),ot=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:e=>le(e,"edge/")&&le(e,"chrome")&&le(e,"safari")&&le(e,"applewebkit")},{name:"Chromium",brand:"Chromium",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,et],search:e=>le(e,"chrome")&&!le(e,"chromeframe")},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:e=>le(e,"msie")||le(e,"trident")},{name:"Opera",versionRegexes:[et,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:tt("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:tt("firefox")},{name:"Safari",versionRegexes:[et,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:e=>(le(e,"safari")||le(e,"mobile/"))&&le(e,"applewebkit")}],nt=[{name:"Windows",search:tt("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:e=>le(e,"iphone")||le(e,"ipad"),versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:tt("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"macOS",search:tt("mac os x"),versionRegexes:[/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:tt("linux"),versionRegexes:[]},{name:"Solaris",search:tt("sunos"),versionRegexes:[]},{name:"FreeBSD",search:tt("freebsd"),versionRegexes:[]},{name:"ChromeOS",search:tt("cros"),versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/]}],rt={browsers:g(ot),oses:g(nt)},st=e=>{const t=e.current,o=e.version,n=e=>()=>t===e;return{current:t,version:o,isEdge:n("Edge"),isChromium:n("Chromium"),isIE:n("IE"),isOpera:n("Opera"),isFirefox:n("Firefox"),isSafari:n("Safari")}},lt=()=>st({current:void 0,version:Je.unknown()}),ct=st,at=e=>{const t=e.current,o=e.version,n=e=>()=>t===e;return{current:t,version:o,isWindows:n("Windows"),isiOS:n("iOS"),isAndroid:n("Android"),isMacOS:n("macOS"),isLinux:n("Linux"),isSolaris:n("Solaris"),isFreeBSD:n("FreeBSD"),isChromeOS:n("ChromeOS")}},it=()=>at({current:void 0,version:Je.unknown()}),ut=at,mt=e=>window.matchMedia(e).matches;let dt=ie((()=>((e,t,o)=>{const n=rt.browsers(),r=rt.oses(),s=t.bind((e=>((e,t)=>F(t.brands,(t=>{const o=t.brand.toLowerCase();return $(e,(e=>o===e.brand?.toLowerCase())).map((e=>({current:e.name,version:Je.nu(parseInt(t.version,10),0)})))})))(n,e))).orThunk((()=>((e,t)=>Ze(e,t).map((e=>{const o=Je.detect(e.versionRegexes,t);return{current:e.name,version:o}})))(n,e))).fold(lt,ct),l=((e,t)=>Ze(e,t).map((e=>{const o=Je.detect(e.versionRegexes,t);return{current:e.name,version:o}})))(r,e).fold(it,ut),c=((e,t,o,n)=>{const r=e.isiOS()&&!0===/ipad/i.test(o),s=e.isiOS()&&!r,l=e.isiOS()||e.isAndroid(),c=l||n("(pointer:coarse)"),a=r||!s&&l&&n("(min-device-width:768px)"),i=s||l&&!a,u=t.isSafari()&&e.isiOS()&&!1===/safari/i.test(o),m=!i&&!a&&!u;return{isiPad:g(r),isiPhone:g(s),isTablet:g(a),isPhone:g(i),isTouch:g(c),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:g(u),isDesktop:g(m)}})(l,s,e,o);return{browser:s,os:l,deviceType:c}})(window.navigator.userAgent,y.from(window.navigator.userAgentData),mt)));const pt=Object.getPrototypeOf,gt=e=>{const t=se("ownerDocument.defaultView",e);return r(e)&&((e=>((e,t)=>{const o=((e,t)=>se(e,t))(e,t);if(null==o)throw new Error(e+" not available on this browser");return o})("HTMLElement",e))(t).prototype.isPrototypeOf(e)||/^HTML\w*Element$/.test(pt(e).constructor.name))},ht=e=>e.dom.nodeName.toLowerCase(),ft=e=>e.dom.nodeType,wt=e=>t=>ft(t)===e,bt=e=>8===ft(e)||"#comment"===ht(e),vt=wt(1),yt=wt(3),Ct=wt(9),xt=wt(11),St=e=>t=>vt(t)&&ht(t)===e,Tt=e=>_e.fromDom(e.dom.ownerDocument),Rt=e=>y.from(e.dom.parentNode).map(_e.fromDom),Ot=(e,t)=>{const o=m(t)?t:b;let n=e.dom;const r=[];for(;null!==n.parentNode&&void 0!==n.parentNode;){const e=n.parentNode,t=_e.fromDom(e);if(r.push(t),!0===o(t))break;n=e}return r},Dt=e=>y.from(e.dom.previousSibling).map(_e.fromDom),Et=e=>y.from(e.dom.nextSibling).map(_e.fromDom),kt=e=>D(e.dom.childNodes,_e.fromDom),At=e=>_e.fromDom(e.dom.host),Nt=(e,t)=>{Rt(e).each((o=>{o.dom.insertBefore(t.dom,e.dom)}))},Lt=(e,t)=>{Et(e).fold((()=>{Rt(e).each((e=>{$t(e,t)}))}),(e=>{Nt(e,t)}))},Pt=(e,t)=>{(e=>(e=>{const t=e.dom.childNodes;return y.from(t[0]).map(_e.fromDom)})(e))(e).fold((()=>{$t(e,t)}),(o=>{e.dom.insertBefore(t.dom,o.dom)}))},$t=(e,t)=>{e.dom.appendChild(t.dom)},Mt=(e,t)=>{Nt(e,t),$t(t,e)},Wt=(e,t)=>{E(t,((o,n)=>{const r=0===n?e:t[n-1];Lt(r,o)}))},jt=(e,t)=>{E(t,(t=>{$t(e,t)}))},Bt=(e,t,o)=>{if(!(n(o)||c(o)||d(o)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",o,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,o+"")},It=(e,t,o)=>{Bt(e.dom,t,o)},zt=(e,t)=>{const o=e.dom;q(t,((e,t)=>{Bt(o,t,e)}))},Ft=(e,t)=>{const o=e.dom.getAttribute(t);return null===o?void 0:o},Vt=(e,t)=>y.from(Ft(e,t)),Ht=(e,t)=>{e.dom.removeAttribute(t)},qt=e=>P(e.dom.attributes,((e,t)=>(e[t.name]=t.value,e)),{}),_t=e=>{e.dom.textContent="",E(kt(e),(e=>{Gt(e)}))},Gt=e=>{const t=e.dom;null!==t.parentNode&&t.parentNode.removeChild(t)},Ut=e=>{const t=kt(e);t.length>0&&Wt(e,t),Gt(e)},Kt=(e,t)=>_e.fromDom(e.dom.cloneNode(t)),Qt=e=>void 0!==e.style&&m(e.style.getPropertyValue),Xt=e=>{const t=yt(e)?e.dom.parentNode:e.dom;if(null==t||null===t.ownerDocument)return!1;const o=t.ownerDocument;return(e=>{const t=(e=>_e.fromDom(e.dom.getRootNode()))(e);return xt(o=t)&&u(o.dom.host)?y.some(t):y.none();var o})(_e.fromDom(t)).fold((()=>o.body.contains(t)),(n=Xt,r=At,e=>n(r(e))));var n,r},Yt=(e,t,o)=>{((e,t,o)=>{if(!n(o))throw console.error("Invalid call to CSS.set. Property ",t,":: Value ",o,":: Element ",e),new Error("CSS value must be a string: "+o);Qt(e)&&e.style.setProperty(t,o)})(e.dom,t,o)},Jt=(e,t)=>{const o=e.dom,n=window.getComputedStyle(o).getPropertyValue(t);return""!==n||Xt(e)?n:Zt(o,t)},Zt=(e,t)=>Qt(e)?e.style.getPropertyValue(t):"",eo=(e,t)=>{const o=e.dom,n=Zt(o,t);return y.from(n).filter((e=>e.length>0))},to=(e,t)=>{((e,t)=>{Qt(e)&&e.style.removeProperty(t)})(e.dom,t),te(Vt(e,"style").map(ce),"")&&Ht(e,"style")},oo=(e,t,o)=>((e,t)=>(e=>{const t=parseFloat(e);return isNaN(t)?y.none():y.some(t)})(e).getOr(t))(Jt(e,t),o),no=(e=>{const t=t=>{const o=(e=>{const t=e.dom;return Xt(e)?t.getBoundingClientRect().width:t.offsetWidth})(t);if(o<=0||null===o){const o=Jt(t,e);return parseFloat(o)||0}return o},o=(e,t)=>P(t,((t,o)=>{const n=Jt(e,o),r=void 0===n?0:parseInt(n,10);return isNaN(r)?t:t+r}),0);return{set:(t,o)=>{if(!d(o)&&!o.match(/^[0-9]+$/))throw new Error(e+".set accepts only positive integer values. Value was "+o);const n=t.dom;Qt(n)&&(n.style[e]=o+"px")},get:t,getOuter:t,aggregate:o,max:(e,t,n)=>{const r=o(e,n);return t>r?t-r:0}}})("width"),ro=e=>no.get(e),so=e=>no.getOuter(e),lo=e=>(e=>{const t=e.dom;return((e,t,o,n)=>t-oo(e,`padding-${o}`,0)-oo(e,`padding-${n}`,0)-oo(e,`border-${o}-width`,0)-oo(e,`border-${n}-width`,0))(e,t.getBoundingClientRect().width||t.offsetWidth,"left","right")})(e),co=(e,t)=>({left:e,top:t,translate:(o,n)=>co(e+o,t+n)}),ao=co,io=(e,t)=>void 0!==e?e:void 0!==t?t:0,uo=e=>{const t=e.dom.ownerDocument,o=t.body,n=t.defaultView,r=t.documentElement;if(o===e.dom)return ao(o.offsetLeft,o.offsetTop);const s=io(n?.pageYOffset,r.scrollTop),l=io(n?.pageXOffset,r.scrollLeft),c=io(r.clientTop,o.clientTop),a=io(r.clientLeft,o.clientLeft);return mo(e).translate(l-a,s-c)},mo=e=>{const t=e.dom,o=t.ownerDocument.body;return o===t?ao(o.offsetLeft,o.offsetTop):Xt(e)?(e=>{const t=e.getBoundingClientRect();return ao(t.left,t.top)})(t):ao(0,0)},po=(e=>{const t=t=>e(t)?y.from(t.dom.nodeValue):y.none();return{get:o=>{if(!e(o))throw new Error("Can only get text value of a text node");return t(o).getOr("")},getOption:t,set:(t,o)=>{if(!e(t))throw new Error("Can only set raw text value of a text node");t.dom.nodeValue=o}}})(yt),go=e=>po.get(e),ho=(e,t)=>po.set(e,t),fo=(e,t)=>{const o=Ft(e,t);return void 0===o||""===o?[]:o.split(" ")},wo=(e,t,o)=>{let n=e.dom;const r=m(o)?o:b;for(;n.parentNode;){n=n.parentNode;const e=_e.fromDom(n);if(t(e))return y.some(e);if(r(e))break}return y.none()},bo=(e,t,o)=>wo(e,(e=>Ge(e,t)),o),vo=(e,t)=>(e=>$(e.dom.childNodes,(e=>{return o=_e.fromDom(e),Ge(o,t);var o})).map(_e.fromDom))(e),yo=(e,t)=>((e,t)=>{const o=void 0===t?document:t.dom;return Ue(o)?y.none():y.from(o.querySelector(e)).map(_e.fromDom)})(t,e),Co=(e,t,o)=>((e,t,o,n,r)=>((e,t)=>Ge(e,t))(o,n)?y.some(o):m(r)&&r(o)?y.none():t(o,n,r))(0,bo,e,t,o),xo=e=>void 0!==e.dom.classList,So=(e,t=!1)=>{return Xt(e)?e.dom.isContentEditable:(o=e,Co(o,"[contenteditable]")).fold(g(t),(e=>"true"===To(e)));var o},To=e=>e.dom.contentEditable,Ro=e=>e.dom.textContent,Oo=(e,t)=>{let o=[];return E(kt(e),(e=>{t(e)&&(o=o.concat([e])),o=o.concat(Oo(e,t))})),o},Do=(e,t,o)=>((e,o,n)=>A(Ot(e,n),(e=>Ge(e,t))))(e,0,o),Eo=(e,t)=>(e=>A(kt(e),(e=>Ge(e,t))))(e),ko=(e,t)=>((e,t)=>{const o=void 0===t?document:t.dom;return Ue(o)?[]:D(o.querySelectorAll(e),_e.fromDom)})(t,e),Ao=["img","br"],No=e=>{return(t=e,po.getOption(t)).filter((e=>0!==e.trim().length||e.indexOf("\xa0")>-1)).isSome()||T(Ao,ht(e))||(e=>{return vt(t=e)&>(t.dom)&&"false"===Ft(e,"contenteditable");var t})(e);var t},Lo={unsupportedLength:["em","ex","cap","ch","ic","rem","lh","rlh","vw","vh","vi","vb","vmin","vmax","cm","mm","Q","in","pc","pt","px"],fixed:["px","pt"],relative:["%"],empty:[""]},Po=(()=>{const e="[0-9]+",t="[eE][+-]?"+e,o=e=>`(?:${e})?`,n=["Infinity",e+"\\."+o(e)+o(t),"\\."+e+o(t),e+o(t)].join("|");return new RegExp(`^([+-]?(?:${n}))(.*)$`)})(),$o=(e,t)=>y.from(Po.exec(e)).bind((e=>{const o=Number(e[1]),n=e[2];return((e,t)=>R(t,(t=>R(Lo[t],(t=>e===t)))))(n,t)?y.some({value:o,unit:n}):y.none()})),Mo=e=>D(e,g(0)),Wo=e=>(t,o,n,r)=>{if(e(n)){const e=Math.max(r,t[o]-Math.abs(n)),s=Math.abs(e-t[o]);return n>=0?s:-s}return n},jo=Wo((e=>e<0)),Bo=Wo(v),Io=()=>{const e=(e,t,o,n,r)=>{const s=Bo(e,n>=0?o:t,n,r);return((e,t,o,n,r)=>r(e.slice(0,t)).concat(n).concat(r(e.slice(o))))(e,t,o+1,[s,-s],Mo)};return{resizeTable:(e,t,o)=>{o&&e(t)},clampTableDelta:(e,t,o,n,r)=>{if(r){if(o>=0)return o;{const t=P(e,((e,t)=>e+t-n),0);return Math.max(-t,o)}}return jo(e,t,o,n)},calcLeftEdgeDeltas:e,calcMiddleDeltas:(t,o,n,r,s,l)=>e(t,n,r,s,l),calcRightEdgeDeltas:(e,t,o,n,r,s)=>{if(s)return Mo(e);{const t=n/e.length;return D(e,g(t))}},calcRedestributedWidths:(e,t,o,n)=>({delta:0,newSizes:e})}},zo=(e,t,o=0)=>Vt(e,t).map((e=>parseInt(e,10))).getOr(o),Fo=e=>St("col")(e)?zo(e,"span",1)>1:(e=>zo(e,"colspan",1))(e)>1,Vo=g(10),Ho=(e,t)=>qo(e,t,v),qo=(e,t,o)=>M(kt(e),(e=>Ge(e,t)?o(e)?[e]:[]:qo(e,t,o))),_o=(e,t)=>((e,t,o=b)=>o(t)?y.none():T(e,ht(t))?y.some(t):bo(t,e.join(","),(e=>Ge(e,"table")||o(e))))(["td","th"],e,t),Go=e=>Ho(e,"th,td"),Uo=e=>Ge(e,"colgroup")?Eo(e,"col"):M(Xo(e),(e=>Eo(e,"col"))),Ko=(e,t)=>Co(e,"table",t),Qo=e=>Ho(e,"tr"),Xo=e=>Ko(e).fold(g([]),(e=>Eo(e,"colgroup"))),Yo=e=>Rt(e).map((e=>{const t=ht(e);return(e=>T(Me,e))(t)?t:"tbody"})).getOr("tbody"),Jo="data-snooker-locked-cols",Zo=e=>Vt(e,Jo).bind((e=>y.from(e.match(/\d+/g)))).map((e=>((e,t)=>{const o={};for(let n=0,r=e.length;ne+","+t,tn=e=>{const t={},o=[],n=I(e).map((e=>e.element)).bind(Ko).bind(Zo).getOr({});let r=0,s=0,l=0;const{pass:c,fail:a}=k(e,(e=>"colgroup"===e.section));E(a,(e=>{const c=[];E(e.cells,(e=>{let o=0;for(;void 0!==t[en(l,o)];)o++;const r=((e,t)=>Y(e,t)&&void 0!==e[t]&&null!==e[t])(n,o.toString()),a=((e,t,o,n,r,s)=>({element:e,rowspan:t,colspan:o,row:n,column:r,isLocked:s}))(e.element,e.rowspan,e.colspan,l,o,r);for(let n=0;n{const t=(e=>{const t={};let o=0;return E(e.cells,(e=>{const n=e.colspan;O(n,(r=>{const s=o+r;t[s]=((e,t,o)=>({element:e,colspan:t,column:o}))(e.element,n,s)})),o+=n})),t})(e),o=((e,t)=>({element:e,columns:t}))(e.element,K(t));return{colgroups:[o],columns:t}})).getOrThunk((()=>({colgroups:[],columns:{}}))),m=((e,t)=>({rows:e,columns:t}))(r,s);return{grid:m,access:t,all:o,columns:i,colgroups:u}},on=e=>{const t=(e=>{const t=Qo(e);return o=[...Xo(e),...t],n=Yo,D(o,(e=>{if("colgroup"===ht(e)){const t=D(Uo(e),(e=>{const t=zo(e,"span",1);return We(e,1,t)}));return je(e,t,"colgroup")}{const t=D(Go(e),(e=>{const t=zo(e,"rowspan",1),o=zo(e,"colspan",1);return We(e,t,o)}));return je(e,t,n(e))}}));var o,n})(e);return tn(t)},nn=tn,rn=(e,t,o)=>y.from(e.access[en(t,o)]),sn=(e,t,o)=>{const n=((e,t)=>{const o=M(e.all,(e=>e.cells));return A(o,t)})(e,(e=>o(t,e.element)));return n.length>0?y.some(n[0]):y.none()},ln=e=>K(e.columns),cn=e=>V(e.columns).length>0,an=(e,t)=>y.from(e.columns[t]),un=(e,t,o)=>Be(o(e.element,t),!0,e.isLocked),mn=()=>({transformRow:h,transformCell:un}),dn=(e,t=v)=>{const o=e.grid,n=O(o.columns,h),r=O(o.rows,h);return D(n,(o=>pn((()=>M(r,(t=>rn(e,t,o).filter((e=>e.column===o)).toArray()))),(e=>1===e.colspan&&t(e.element)),(()=>rn(e,0,o)))))},pn=(e,t,o)=>{const n=e();return $(n,t).orThunk((()=>y.from(n[0]).orThunk(o))).map((e=>e.element))},gn=(e,t)=>({col:e,x:t}),hn=e=>uo(e).left+so(e),fn=e=>uo(e).left,wn=(e,t)=>gn(e,fn(t)),bn=(e,t)=>gn(e,hn(t)),vn=(e,t,o)=>{if(0===o.length)return[];const n=D(o.slice(1),((t,o)=>t.map((t=>e(o,t))))),r=o[o.length-1].map((e=>t(o.length-1,e)));return n.concat([r])},yn=(Cn={delta:h,edge:fn,positions:e=>vn(wn,bn,e)},xn={delta:e=>-e,edge:hn,positions:e=>vn(bn,wn,e)},e=>"rtl"===(e=>"rtl"===Jt(e,"direction")?"rtl":"ltr")(e)?xn:Cn);var Cn,xn;const Sn=e=>yn(e).edge(e),Tn=St("col"),Rn=(e,t,o)=>{const n=(r=e,y.from(r.dom.parentElement).map(_e.fromDom)).getOrThunk((()=>(e=>{const t=e.dom.body;if(null==t)throw new Error("Body is not available yet");return _e.fromDom(t)})(Tt(e))));var r;return t(e)/o(n)*100},On=(e,t)=>{Yt(e,"width",t+"px")},Dn=(e,t)=>{Yt(e,"width",t+"%")},En=e=>((e,t)=>eo(e,t).orThunk((()=>Vt(e,t).map((e=>e+"px")))))(e,"width"),kn=e=>Rn(e,ro,lo),An=e=>{return Tn(e)?Math.round(ro(e)):oo(t=e,"width",t.dom.offsetWidth);var t},Nn=(e,t,o)=>{Yt(e,"width",t+o)},Ln=g(/(\d+(\.\d+)?)%/),Pn=St("col"),$n=(e,t,o,n,r,s)=>e.filter(n).fold((()=>s(((e,t)=>{if(t<0||t>=e.length-1)return y.none();const o=e[t].fold((()=>{const o=(e=>{const t=C.call(e,0);return t.reverse(),t})(e.slice(0,t));return F(o,((e,t)=>e.map((e=>({value:e,delta:t+1})))))}),(e=>y.some({value:e,delta:0}))),n=e[t+1].fold((()=>{const o=e.slice(t+1);return F(o,((e,t)=>e.map((e=>({value:e,delta:t+1})))))}),(e=>y.some({value:e,delta:1})));return o.bind((e=>n.map((t=>{const o=t.delta+e.delta;return Math.abs(t.value-e.value)/o}))))})(o,t))),(e=>r(e))),Mn=(e,t,o,n)=>{const r=dn(e),s=cn(e)?(e=>D(ln(e),(e=>y.from(e.element))))(e):r,l=[y.some(Sn(t))].concat(D(((e,t)=>yn(t).positions(e,t))(r,t),(e=>e.map((e=>e.x))))),c=(a=Fo,e=>!a(e));var a;return D(s,((e,t)=>$n(e,t,l,c,(e=>{if((e=>{const t=dt().browser,o=t.isChromium()||t.isFirefox();return!Pn(e)||o})(e))return o(e);{const e=((e,t)=>null!=e?t(e):y.none())(r[t],h);return $n(e,t,l,c,(e=>n(y.some(Math.round(ro(e))))),n)}}),n)))},Wn=(e,t,o)=>Mn(e,t,An,(e=>e.getOrThunk(o.minCellWidth))),jn=(e,t)=>()=>Xt(e)?t(e):parseFloat(eo(e,"width").getOr("0")),Bn=e=>En(e).fold((()=>(e=>{const t=jn(e,ro),o=g(0);return{width:t,pixelWidth:t,getWidths:(t,o)=>Wn(t,e,o),getCellDelta:o,singleColumnWidth:g([0]),minCellWidth:o,setElementWidth:p,adjustTableWidth:p,isRelative:!0,label:"none"}})(e)),(t=>{return o=e,n=t,null!==Ln().exec(n)?(e=>{const t=jn(e,(e=>parseFloat((e=>Rn(e,ro,lo)+"%")(e)))),o=jn(e,ro);return{width:t,pixelWidth:o,getWidths:(t,o)=>((e,t,o)=>Mn(e,t,kn,(e=>e.fold((()=>o.minCellWidth()),(e=>e/o.pixelWidth()*100)))))(t,e,o),getCellDelta:e=>e/o()*100,singleColumnWidth:(e,t)=>[100-e],minCellWidth:()=>Vo()/o()*100,setElementWidth:Dn,adjustTableWidth:o=>{const n=t();Dn(e,n+o/100*n)},isRelative:!0,label:"percent"}})(o):(e=>{const t=jn(e,ro);return{width:t,pixelWidth:t,getWidths:(t,o)=>Wn(t,e,o),getCellDelta:h,singleColumnWidth:(e,t)=>[Math.max(Vo(),e+t)-e],minCellWidth:Vo,setElementWidth:On,adjustTableWidth:o=>{const n=t()+o;On(e,n)},isRelative:!1,label:"pixel"}})(o);var o,n})),In=(e,t,o,n)=>{o===n?Ht(e,t):It(e,t,o)},zn=(e,t,o)=>{z(Eo(e,t)).fold((()=>Pt(e,o)),(e=>Lt(e,o)))},Fn=(e,t)=>{const o=[],n=[],r=e=>D(e,(e=>{e.isNew&&o.push(e.element);const t=e.element;return _t(t),E(e.cells,(e=>{e.isNew&&n.push(e.element),In(e.element,"colspan",e.colspan,1),In(e.element,"rowspan",e.rowspan,1),$t(t,e.element)})),t})),s=e=>M(e,(e=>D(e.cells,(e=>(In(e.element,"span",e.colspan,1),e.element))))),l=(t,o)=>{const n=((e,t)=>{const o=vo(e,t).getOrThunk((()=>{const o=_e.fromTag(t,Tt(e).dom);return"thead"===t?zn(e,"caption,colgroup",o):"colgroup"===t?zn(e,"caption",o):$t(e,o),o}));return _t(o),o})(e,o),l=("colgroup"===o?s:r)(t);jt(n,l)},c=(t,o)=>{t.length>0?l(t,o):(t=>{vo(e,t).each(Gt)})(o)},a=[],i=[],u=[],m=[];return E(t,(e=>{switch(e.section){case"thead":a.push(e);break;case"tbody":i.push(e);break;case"tfoot":u.push(e);break;case"colgroup":m.push(e)}})),c(m,"colgroup"),c(a,"thead"),c(i,"tbody"),c(u,"tfoot"),{newRows:o,newCells:n}},Vn=(e,t)=>{if(0===e.length)return 0;const o=e[0],n=(e=>{for(let r=0,s=e.length;r{const o=D(e,(e=>D(e.cells,b)));return D(e,((n,r)=>{const s=M(n.cells,((n,s)=>{if(!1===o[r][s]){const u=((e,t,o,n)=>{const r=((e,t)=>e[t])(e,t),s="colgroup"===r.section,l=Vn(r.cells.slice(o),n),c=s?1:Vn(((e,t)=>D(e,(e=>Fe(e,t))))(e.slice(t),o),n);return{colspan:l,rowspan:c}})(e,r,s,t);return((e,t,n,r)=>{for(let s=e;s({element:e,cells:t,section:o,isNew:n}))(n.element,s,n.section,n.isNew)}))},qn=(e,t)=>F(e.all,(e=>$(e.cells,(e=>Ke(t,e.element))))),_n=(e,t,o)=>{const n=(e=>{const t=[],o=e=>{t.push(e)};for(let t=0;t_o(t).bind((t=>qn(e,t))).filter(o))));return re(n.length>0,n)},Gn=(e,t,o,n,r,s,l,c,a)=>{const i=on(s),u=y.from(a?.section).getOrThunk(mn),m=t(i,l).map((t=>{const o=((e,t)=>((e,t,o)=>{const n=[];E(e.colgroups,(r=>{const s=[];for(let n=0;nBe(e.element,o,!1))).getOrThunk((()=>Be(t.colGap(),!0,!1)));s.push(r)}n.push(Ie(r.element,s,"colgroup",o))}));for(let r=0;rBe(e.element,o,e.isLocked))).getOrThunk((()=>Be(t.gap(),!0,!1)));s.push(l)}const l=e.all[r],c=Ie(l.element,s,l.section,o);n.push(c)}return n})(e,t,!1))(i,c),n=e(o,t,Ke,r(c),u),s=(e=>{const t=P(He(e).rows,((e,t)=>(E(t.cells,((t,o)=>{t.isLocked&&(e[o]=!0)})),e)),{}),o=U(t,((e,t)=>parseInt(t,10)));return j(o)})(n.grid);return{info:t,grid:(l=n.grid,Hn(l,Ke)),cursor:n.cursor,lockedColumns:s};var l}));return m.bind((e=>{const t=Fn(s,e.grid),r=y.from(a?.sizing).getOrThunk((()=>Bn(s))),l=y.from(a?.resize).getOrThunk(Io);return o(s,e.grid,e.info,{sizing:r,resize:l,section:u}),n(s),Ht(s,Jo),e.lockedColumns.length>0&&It(s,Jo,e.lockedColumns.join(",")),y.some({cursor:e.cursor,newRows:t.newRows,newCells:t.newCells})}))},Un=(e,t)=>_o(t.element).bind((t=>qn(e,t))),Kn=(e,t)=>_n(e,t,v),Qn=(e,t)=>W(t,(t=>((e,t)=>qn(e,t).exists((e=>!e.isLocked)))(e,t))),Xn=(e,t)=>((e,t)=>t.mergable)(0,t).filter((t=>Qn(e,t.cells))),Yn=(e,t)=>((e,t)=>t.unmergable)(0,t).filter((t=>Qn(e,t))),Jn={...(e=>{if(!s(e))throw new Error("cases must be an array");if(0===e.length)throw new Error("there must be at least one case");const t=[],o={};return E(e,((n,r)=>{const l=V(n);if(1!==l.length)throw new Error("one and only one name per case");const c=l[0],a=n[c];if(void 0!==o[c])throw new Error("duplicate key detected:"+c);if("cata"===c)throw new Error("cannot have a case named cata (sorry)");if(!s(a))throw new Error("case arguments must be an array");t.push(c),o[c]=(...o)=>{const n=o.length;if(n!==a.length)throw new Error("Wrong number of arguments to case "+c+". Expected "+a.length+" ("+a+"), got "+n);return{fold:(...t)=>{if(t.length!==e.length)throw new Error("Wrong number of arguments to fold. Expected "+e.length+", got "+t.length);return t[r].apply(null,o)},match:e=>{const n=V(e);if(t.length!==n.length)throw new Error("Wrong number of arguments to match. Expected: "+t.join(",")+"\nActual: "+n.join(","));if(!W(t,(e=>T(n,e))))throw new Error("Not all branches were specified when using match. Specified: "+n.join(", ")+"\nRequired: "+t.join(", "));return e[c].apply(null,o)},log:e=>{console.log(e,{constructors:t,constructor:c,params:o})}}}})),o})([{none:[]},{only:["index"]},{left:["index","next"]},{middle:["prev","index","next"]},{right:["prev","index"]}])},Zn=(e,t)=>cn(e)?((e,t)=>{const o=ln(e);return D(o,((e,o)=>({element:e.element,width:t[o],colspan:e.colspan})))})(e,t):((e,t)=>{const o=(e=>M(e.all,(e=>e.cells)))(e);return D(o,(e=>{const o=((e,t,o)=>{let n=0;for(let r=e;r{const n=Zn(e,t);E(n,(e=>{o.setElementWidth(e.element,e.width)}))},tr=(e,t)=>{if(!Fo(e)){const o=(e=>En(e).bind((e=>$o(e,["fixed","relative","empty"]))))(e);o.each((o=>{const n=o.value/2;Nn(e,n,o.unit),Nn(t,n,o.unit)}))}},or=St("col"),nr=St("colgroup"),rr=e=>({element:e,colspan:zo(e,"colspan",1),rowspan:zo(e,"rowspan",1)}),sr=(e,t=rr)=>{const o=o=>{if((e=>"tr"===ht(e)||nr(e))(o))return nr((r={element:o}).element)?e.colgroup(r):e.row(r);{const r=o,s=(t=>or(t.element)?e.col(t):e.cell(t))(t(r));return n=y.some({item:r,replacement:s}),s}var r};let n=y.none();return{getOrInit:(e,t)=>n.fold((()=>o(e)),(n=>t(e,n.item)?n.replacement:o(e)))}};var lr=["body","p","div","article","aside","figcaption","figure","footer","header","nav","section","ol","ul","li","table","thead","tbody","tfoot","caption","tr","td","th","h1","h2","h3","h4","h5","h6","blockquote","pre","address"],cr=()=>({up:g({selector:bo,closest:Co,predicate:wo,all:Ot}),down:g({selector:ko,predicate:Oo}),styles:g({get:Jt,getRaw:eo,set:Yt,remove:to}),attrs:g({get:Ft,set:It,remove:Ht,copyTo:(e,t)=>{const o=qt(e);zt(t,o)}}),insert:g({before:Nt,after:Lt,afterAll:Wt,append:$t,appendAll:jt,prepend:Pt,wrap:Mt}),remove:g({unwrap:Ut,remove:Gt}),create:g({nu:_e.fromTag,clone:e=>_e.fromDom(e.dom.cloneNode(!1)),text:_e.fromText}),query:g({comparePosition:(e,t)=>e.dom.compareDocumentPosition(t.dom),prevSibling:Dt,nextSibling:Et}),property:g({children:kt,name:ht,parent:Rt,document:e=>{return(t=e,Ct(t)?t:Tt(t)).dom;var t},isText:yt,isComment:bt,isElement:vt,isSpecial:e=>{const t=ht(e);return T(["script","noscript","iframe","noframes","noembed","title","style","textarea","xmp"],t)},getLanguage:e=>vt(e)?Vt(e,"lang"):y.none(),getText:go,setText:ho,isBoundary:e=>!!vt(e)&&("body"===ht(e)||T(lr,ht(e))),isEmptyTag:e=>!!vt(e)&&T(["br","img","hr","input"],ht(e)),isNonEditable:e=>vt(e)&&"false"===Ft(e,"contenteditable")}),eq:Ke,is:Qe});const ar=(e,t)=>({element:e,offset:t}),ir=(e,t,o)=>e.property().isText(t)&&0===e.property().getText(t).trim().length||e.property().isComment(t)?o(t).bind((t=>ir(e,t,o).orThunk((()=>y.some(t))))):y.none(),ur=(e,t)=>e.property().isText(t)?e.property().getText(t).length:e.property().children(t).length,mr=(e,t)=>{const o=ir(e,t,e.query().prevSibling).getOr(t);if(e.property().isText(o))return ar(o,ur(e,o));const n=e.property().children(o);return n.length>0?mr(e,n[n.length-1]):ar(o,ur(e,o))},dr=mr,pr=cr(),gr=(e,t,o,n)=>{const r=t(e,o);return L(n,((o,n)=>{const r=t(e,n);return hr(e,o,r)}),r)},hr=(e,t,o)=>t.bind((t=>o.filter(w(e.eq,t)))),fr=cr(),wr={scope:["row","col"]},br=e=>()=>{const t=_e.fromTag("td",e.dom);return $t(t,_e.fromTag("br",e.dom)),t},vr=e=>()=>_e.fromTag("col",e.dom),yr=e=>()=>_e.fromTag("colgroup",e.dom),Cr=e=>()=>_e.fromTag("tr",e.dom),xr=(e,t,o)=>{const n=((e,t)=>{const o=((e,t)=>{const o=_e.fromTag(t),n=qt(e);return zt(o,n),o})(e,t),n=kt((e=>Kt(e,!0))(e));return jt(o,n),o})(e,t);return q(o,((e,t)=>{null===e?Ht(n,t):It(n,t,e)})),n},Sr=(e,t,o)=>{return(n=e,((e,t)=>{const o=e=>{for(let n=0;n{const r=o.join(","),s=Do(n,r,(t=>Ke(t,e)));return L(s,((e,t)=>{const o=Kt(t,!1);return $t(e,o),o}),t)})).getOr(t);var n},Tr=(e,t,o)=>{const n=(e,t)=>{((e,t)=>{const o=e.dom,n=t.dom;Qt(o)&&Qt(n)&&(n.style.cssText=o.style.cssText)})(e.element,t),to(t,"height"),1!==e.colspan&&to(t,"width")};return{col:o=>{const r=_e.fromTag(ht(o.element),t.dom);return n(o,r),e(o.element,r),r},colgroup:yr(t),row:Cr(t),cell:r=>{const s=_e.fromTag(ht(r.element),t.dom),l=o.getOr(["strong","em","b","i","span","font","h1","h2","h3","h4","h5","h6","p","div"]),c=l.length>0?Sr(r.element,s,l):s;return $t(c,_e.fromTag("br")),n(r,s),((e,t)=>{q(wr,((o,n)=>Vt(e,n).filter((e=>T(o,e))).each((e=>It(t,n,e)))))})(r.element,s),e(r.element,s),s},replace:xr,colGap:vr(t),gap:br(t)}},Rr=e=>on(e).grid,Or=(e,t,o,n,r)=>D(e,(e=>{const s=t>0&&t{if("colgroup"!==o&&n)return Fe(e,t);{const t=Fe(e,r);return Be(l(t.element,s),!0,!1)}})(e,t,e.section,s,o,n,r);return((e,t,o)=>((e,t,o)=>{const n=e.cells,r=n.slice(0,t),s=n.slice(t),l=r.concat(o).concat(s);return ze(e,l)})(e,t,[o]))(e,t,l)})),Dr=e=>P(e,((e,t)=>R(e,(e=>e.column===t.column))?e:e.concat([t])),[]).sort(((e,t)=>e.column-t.column)),Er=e=>So(e,!0),kr=e=>{0===Go(e).length&&Gt(e)},Ar=(e,t,o)=>((e,t)=>({grid:e,cursor:t}))(e,((e,t,o)=>{const n=He(e).rows;return y.from(n[t]?.cells[o]?.element).filter(Er).orThunk((()=>(e=>F(e,(e=>F(e.cells,(e=>{const t=e.element;return re(Er(t),t)})))))(n)))})(e,t,o)),Nr=(e,t,o,n)=>{const r=t.detail,s=r.column,l=r.column,c=Or(e,l,s,o,n.getOrInit);return Ar(c,r.row,l)},Lr=(e,t,o,n)=>{const r=Dr(t.details),s=((e,t)=>M(e,(e=>{const o=e.cells,n=L(t,((e,t)=>t>=0&&t0?[Ie(e.element,n,e.section,e.isNew)]:[]})))(e,D(r,(e=>e.column))),l=s.length>0?s[0].cells.length-1:0;return Ar(s,r[0].row,Math.min(r[0].column,l))},Pr=(e,t,o,n)=>((e,t,o,n,r)=>{const s=nn(t),l=n.getWidths(s,n),c=n.pixelWidth(),{newSizes:a,delta:i}=r.calcRedestributedWidths(l,c,o.pixelDelta,n.isRelative);er(s,a,n),n.adjustTableWidth(i)})(0,t,o,n.sizing,n.resize),$r=(e,t)=>{const o=dn(e),n=Dr(t);return P(n,((e,t)=>e+o[t.column].map(so).getOr(0)),0)},Mr=(e,t)=>((e,t)=>_n(e,t,(e=>!e.isLocked)))(e,t).map((t=>({details:t,pixelDelta:-$r(e,t)}))),Wr=(e,t,o,n)=>Gn(Nr,((e,t)=>Un(e,t).filter((e=>!R([e],(e=>0===e.column&&e.isLocked)))).map((t=>({detail:t,pixelDelta:$r(e,[t])})))),Pr,p,sr,e,t,o,n),jr=(e,t,o,n)=>Gn(Lr,Mr,Pr,kr,sr,e,t,o,n),Br=(e,t)=>t.column>=e.startCol&&t.column+t.colspan-1<=e.finishCol&&t.row>=e.startRow&&t.row+t.rowspan-1<=e.finishRow,Ir=(e,t,o)=>((e,t,o)=>{const n=sn(e,t,Ke),r=sn(e,o,Ke);return n.bind((e=>r.map((t=>{return o=e,n=t,{startRow:Math.min(o.row,n.row),startCol:Math.min(o.column,n.column),finishRow:Math.max(o.row+o.rowspan-1,n.row+n.rowspan-1),finishCol:Math.max(o.column+o.colspan-1,n.column+n.colspan-1)};var o,n}))))})(e,t,o).bind((t=>((e,t)=>{let o=!0;const n=w(Br,t);for(let r=t.startRow;r<=t.finishRow;r++)for(let s=t.startCol;s<=t.finishCol;s++)o=o&&rn(e,r,s).exists(n);return o?y.some(t):y.none()})(e,t))),zr=(e,t,o)=>{const n=Fr(e);return Ir(n,t,o)},Fr=on,Vr=e=>_e.fromDom(e.getBody()),Hr=e=>t=>Ke(t,Vr(e)),qr=e=>_e.fromDom(e.selection.getStart()),_r=e=>bo(e,"table"),Gr=(e,t,o)=>yo(e,t).bind((t=>yo(e,o).bind((e=>{return(o=_r,n=[t,e],((e,t,o)=>o.length>0?((e,t,o,n)=>n(e,t,o[0],o.slice(1)))(e,t,o,gr):y.none())(fr,((e,t)=>o(t)),n)).map((o=>({first:t,last:e,table:o})));var o,n})))),Ur=h,Kr=e=>{const t=(e,t)=>Vt(e,t).exists((e=>parseInt(e,10)>1));return e.length>0&&W(e,(e=>t(e,"rowspan")||t(e,"colspan")))?y.some(e):y.none()},Qr=(e,t,o)=>{return t.length<=1?y.none():(n=e,r=o.firstSelectedSelector,s=o.lastSelectedSelector,Gr(n,r,s).bind((e=>{const t=e=>Ke(n,e),o="thead,tfoot,tbody,table",r=bo(e.first,o,t),s=bo(e.last,o,t);return r.bind((t=>s.bind((o=>Ke(t,o)?zr(e.table,e.first,e.last):y.none()))))}))).map((e=>({bounds:e,cells:t})));var n,r,s},Xr="data-mce-first-selected",Yr="data-mce-last-selected",Jr={firstSelectedSelector:"td["+Xr+"],th["+Xr+"]",lastSelectedSelector:"td["+Yr+"],th["+Yr+"]"},Zr=e=>({element:e,mergable:y.none(),unmergable:y.none(),selection:[e]}),es=(e,t,o)=>({element:o,mergable:Qr(t,e,Jr),unmergable:Kr(e),selection:Ur(e)}),ts=e=>(t,o)=>{const n=ht(t),r="col"===n||"colgroup"===n?Ko(s=t).bind((e=>((e,t)=>((e,t)=>{const o=ko(e,t);return o.length>0?y.some(o):y.none()})(e,t))(e,Jr.firstSelectedSelector))).fold(g(s),(e=>e[0])):t;var s;return Co(r,e,o)},os=ts("th,td,caption"),ns=ts("th,td"),rs=e=>{return t=e.model.table.getSelectedCells(),D(t,_e.fromDom);var t},ss=St("th"),ls=(e,t)=>e&&t?"sectionCells":e?"section":"cells",cs=e=>{const t=A(e,(e=>ss(e.element)));return 0===t.length?y.some("td"):t.length===e.length?y.some("th"):y.none()},as=e=>{const t=D(e,(e=>(e=>{const t="thead"===e.section,o=te(cs(e.cells),"th");return"tfoot"===e.section?{type:"footer"}:t||o?{type:"header",subType:ls(t,o)}:{type:"body"}})(e).type)),o=T(t,"header"),n=T(t,"footer");if(o||n){const e=T(t,"body");return!o||e||n?o||e||!n?y.none():y.some("footer"):y.some("header")}return y.some("body")},is={structure:!1,style:!0},us={structure:!0,style:!1},ms=(e,t,o)=>({value:t+1}),ds=(e,t,o)=>{const n="A".charCodeAt(0),r=[];let s=t;for(;s>=0;)r.push(String.fromCharCode(n+s%26)),s=Math.floor(s/26)-1;return{value:r.reverse().join("")}},ps=e=>e.options.get("advtable_value_series"),gs=e=>{const t=parseFloat(e);return re(!(isNaN(t)||isNaN(e)),t)},hs=(e,t)=>et?1:0,fs=(e,t)=>oe(gs(e),gs(t),hs).getOrThunk((()=>((e,t)=>e.localeCompare(t))(e,t))),ws=e=>{const t=(e=>y.from(e.options.get("table_clone_elements")))(e),o=(o,n,r,s)=>(l,a,i,u,m=!1)=>{const d=_e.fromDom(e.getDoc()),p=Tr(r,d,t);return n(l)?o(l,a,p).bind((t=>{E(t.newRows,(t=>{((e,t)=>{e.dispatch("NewRow",{node:t})})(e,t.dom)})),E(t.newCells,(t=>{((e,t)=>{e.dispatch("NewCell",{node:t})})(e,t.dom)}));const o=((t,o,n,r)=>{const s=n.filter((e=>Xt(e)&&c(e))).or(o.cursor);return s.fold((()=>{const o=Go(t);return I(o).filter(Xt).map((o=>{const n=e.dom.createRng();return n.selectNode(o.dom),r&&(e.model.table.clearSelectedCells(t.dom),e.selection.setRng(n),It(o,"data-mce-selected","1")),n}))}),(o=>{const n=e.dom.createRng(),s=dr(pr,o);return n.setStart(s.element.dom,s.offset),n.setEnd(s.element.dom,s.offset),r&&(e.model.table.clearSelectedCells(t.dom),e.selection.setRng(n)),y.some(n)}))})(l,t,i,u);return Xt(l)&&((e=>{Ht(e,"data-mce-style");const t=e=>Ht(e,"data-mce-style");E(Go(e),t),E(Uo(e),t),E(Qo(e),t)})(l),m||((e,t,o)=>{e.dispatch("TableModified",{...o,table:t})})(e,l.dom,s)),o.map((e=>({rng:e,effect:s})))})):y.none()},c=e=>So(e,!0),a=(e,t,o)=>((e,t)=>({grid:e,cursor:t}))(e,((e,t,o)=>{var n,r;const s=He(e).rows;return y.from(null===(r=null===(n=s[t])||void 0===n?void 0:n.cells[o])||void 0===r?void 0:r.element).filter(c).orThunk((()=>(e=>F(e,(e=>F(e.cells,(e=>{const t=e.element;return re(c(t),t)})))))(s)))})(e,t,o)),i=(e,t,o,n)=>{const{cols:r,rows:s}=He(e),l=N(s,(e=>e.section)),c=D(l,(e=>N(e,(e=>{const o=Fe(e,t).element;return ht(o)})))),a=M(c,(e=>M(e,(e=>{const r=Fe(e[0],t).element;return"th"===ht(r)?e:(e=>{const r=D(e,(e=>{const o=Fe(e,t).element;return{row:e,text:y.from(Ro(o)).getOr("")}})),s=j(r,((e,t)=>{const r=o(e.text,t.text);return n?r:-1*r}));return D(s,(e=>e.row))})(e)}))));return[...r,...a]},u=(e,t,o,n)=>{const{cols:r,rows:s}=He(e),l=s[t].cells,c=D(l,(e=>{const t=e.element;return y.from(Ro(t)).getOr("")})),a=St("th"),i=D(s,(e=>{const t=D(e.cells,((e,t)=>({cell:e,column:t,reference:l[t],referenceText:c[t]})));return{...e,zippedCells:t}})),u=D(i,(e=>{const t=N(e.zippedCells,(e=>{const t=e.reference.element;return ht(t)})),r=M(t,(e=>{const t=e[0].reference.element;if(a(t))return D(e,(e=>e.cell));{const{pass:t,fail:r}=k(e,(e=>e.cell.isLocked)),s=j(r,((e,t)=>{const r=o(e.referenceText,t.referenceText);return n?r:-1*r})),l=P(t,((e,t)=>{const o=t.column,n=e.slice(0,o),r=e.slice(o);return n.concat([t]).concat(r)}),s);return D(l,(e=>e.cell))}}));return Ie(e.element,r,e.section,e.isNew)}));return[...r,...u]},m=i,f=u,w=(e,t,o,n,r)=>{const{cols:s,rows:l}=He(e),c=l.slice(0,t),a=[...s,...l.slice(t,o+1)];return{beforeRows:c,afterRows:l.slice(o+1,e.length),selectionGridBefore:a.map((e=>({...e,cells:e.cells.slice(0,n)}))),selectionGrid:a.map((e=>({...e,cells:e.cells.slice(n,r+1)}))),selectionGridAfter:a.map((e=>({...e,cells:e.cells.slice(r+1,e.cells.length)})))}},b=(e,t)=>{const o=D(t,((t,o)=>{const n=e.selectionGridBefore[o].cells,r=e.selectionGridAfter[o].cells;return{...t,cells:n.concat(t.cells).concat(r)}})),{cols:n,rows:r}=He(o);return[...n,...e.beforeRows,...r,...e.afterRows]},C=(e,t,o,n,r,s,l,c)=>{const a=w(e,o,n,r,s),u=i(a.selectionGrid,t-r,l,c);return b(a,u)},x=(e,t,o,n,r,s,l,c)=>{const a=w(e,o,n,r,s),i=u(a.selectionGrid,t-o,l,c);return b(a,i)},S=e=>P(e,((e,t)=>R(e,(e=>e.row===t.row))?e:e.concat([t])),[]).sort(((e,t)=>e.row-t.row)),T=e=>P(e,((e,t)=>R(e,(e=>e.column===t.column))?e:e.concat([t])),[]).sort(((e,t)=>e.column-t.column)),O=e=>P(e,((e,t)=>R(e,(e=>Ke(e.element,t.element)))?e:e.concat([t])),[]),A=e=>{const t=r(e.attributes)?U(e.attributes,((e,t)=>l(e)?e=>Ht(e,t):o=>It(o,t,e))):[];return[...t,...((e,t)=>{if(s(e)){for(let o=0,n=e.length;ot=>((e,t)=>{xo(e)?e.dom.classList.add(t):((e,t)=>{((e,t,o)=>{const n=fo(e,t).concat([o]);It(e,t,n.join(" "))})(e,"class",t)})(e,t)})(t,e))):[],t=>{const o=Ro(t)||"",r=(s=e.value,d(s)?String(s):n(s)?s:void 0);var s;const l=n(r)?r:o;ae(l)?((e,t)=>{const o=Tt(e).dom,n=_e.fromDom(o.createDocumentFragment()),r=((e,t)=>{const o=(t||document).createElement("div");return o.innerHTML=e,kt(_e.fromDom(o))})(t,o);jt(n,r),_t(e),$t(e,n)})(t,"
"):((e,t)=>{e.dom.textContent=t})(t,l)}]},L=(e,t,o,n,r,s,l,c)=>{let a;E(t,((t,i)=>{const u=t.element,m={sectionType:s(i),cellType:ht(u),getRowType:l(i),getColType:c(i),classes:(g=u,xo(g)?(e=>{const t=e.dom.classList,o=new Array(t.length);for(let e=0;efo(e,"class"))(g)),prev:null==a?void 0:a.raw,direction:o},d=e(m,n(i),r(i)),p=A(d);var g;E(p,(e=>e(u))),a=d}))},$=(e,t,o,n,r)=>{const s=C(e,r,0,e.length,r,r,o,n);return a(s,t[0].row,t[0].column)},W=(e,t,o,n,r)=>{const s=S(t),l=T(t),c=C(e,r,s[0].row,s[s.length-1].row,l[0].column,l[l.length-1].column,o,n);return a(c,t[0].row,t[0].column)},B=(e,t,o,n,r)=>{const s=m(e,r,o,n);return a(s,t.row,t.column)},z=(e,t,o,n,r)=>{const s=x(e,r,r,r,0,e[t[0].row].cells.length,o,n);return a(s,t[0].row,t[0].column)},V=(e,t,o,n,r)=>{const s=S(t),l=T(t),c=x(e,r,s[0].row,s[s.length-1].row,l[0].column,l[l.length-1].column,o,n);return a(c,t[0].row,t[0].column)},H=(e,t,o,n,r)=>{const s=f(e,r,o,n);return a(s,t.row,t.column)},q=(e,t,o,n)=>{const r=He(e).rows,s=D(r,(e=>Fe(e,n))),l=O(s),c=ie((()=>cs(l).getOr("")));return L(o,l,"column",h,g(n),(e=>r[e].section),(e=>ie((()=>{const t=r[e];return as([{cells:t.cells,section:t.section}]).getOr("")}))),(e=>c)),a(e,t.row,t.column)},_=(e,t,o,n)=>{const r=He(e).rows,s=r[n],l=O(s.cells),c=ie((()=>as([{cells:s.cells,section:s.section}]).getOr("")));return L(o,l,"row",g(n),h,(e=>s.section),(e=>c),(e=>ie((()=>{const t=D(r,(t=>Fe(t,e)));return cs(t).getOr("")})))),a(e,t.row,t.column)},G=(e,t,o,n,r)=>(s,l,c)=>Gn(((r,s)=>e(r,s,t,o,n)),r,p,p,sr,s,l,c),K=(e,t,o,n)=>(r,s,l)=>Gn(((n,r)=>e(n,r,t,o)),n,p,p,sr,r,s,l),Q=o(Wr,v,tr,us),X=o(jr,(t=>0==("table"===ht(Vr(e)))||Rr(t).columns>1),p,us);return{sortColumnRowsAsc:e=>o(G($,fs,!0,e,Kn),v,p,us),sortColumnRowsDesc:e=>o(G($,fs,!1,e,Kn),v,p,us),sortSelectionRowsAsc:e=>o(G(W,fs,!0,e,Kn),v,p,us),sortSelectionRowsDesc:e=>o(G(W,fs,!1,e,Kn),v,p,us),sortTableRowsAsc:e=>o(G(B,fs,!0,e,Un),v,p,us),sortTableRowsDesc:e=>o(G(B,fs,!1,e,Un),v,p,us),sortRowColumnsAsc:e=>o(G(z,fs,!0,e,Kn),v,p,us),sortRowColumnsDesc:e=>o(G(z,fs,!1,e,Kn),v,p,us),sortSelectionColumnsAsc:e=>o(G(V,fs,!0,e,Kn),v,p,us),sortSelectionColumnsDesc:e=>o(G(V,fs,!1,e,Kn),v,p,us),sortTableColumnsAsc:e=>o(G(H,fs,!0,e,Un),v,p,us),sortTableColumnsDesc:e=>o(G(H,fs,!1,e,Un),v,p,us),insertColumnBefore:Q,deleteColumn:X,populateColumn:(e,t)=>o(K(q,t,e,Un),v,p,is),populateRow:(e,t)=>o(K(_,t,e,Un),v,p,is)}},bs="data-snooker-locked-cols",vs=e=>Vt(e,bs).map((e=>M(e.split(","),(e=>{const t=parseInt(e,10);return isNaN(t)?[]:[t]})))).getOr([]),ys=(e,t)=>It(e,bs,j(t).join(",")),Cs=(e,t)=>{const o=vs(e);T(o,t)||ys(e,o.concat([t]))},xs=(e,t)=>{const o=vs(e);ys(e,A(o,(e=>t!==e)))},Ss="data-snooker-col-series",Ts=e=>Vt(e,Ss),Rs=(e,t)=>te(Ts(e).map((e=>e.toLowerCase())),t.toLowerCase()),Os=e=>((e,t)=>{const o=e.dom;return!(!o||!o.hasAttribute)&&o.hasAttribute(t)})(e,Ss),Ds=e=>{const t=Bn(e),o=on(e),n=rn(o,0,0).bind((e=>{const t=e.element;return $o(Jt(t,"width"),["fixed"])})).map((e=>28-e.value)).getOr(0);((e,t,o,n,r)=>{const s=on(e),l=r.getCellDelta(t),c=r.getWidths(s,r),a=0==s.grid.columns-1,i=n.clampTableDelta(c,0,l,r.minCellWidth(),a),u=((e,t,o,n,r)=>{const s=e.slice(0),l=(e=>0===e.length?Jn.none():1===e.length?Jn.only(0):Jn.left(0,1))(e),c=g(D(s,g(0)));return l.fold(c,(e=>n.singleColumnWidth(s[e],o)),((e,t)=>r.calcLeftEdgeDeltas(s,e,t,o,n.minCellWidth(),n.isRelative)),((e,t,l)=>r.calcMiddleDeltas(s,e,t,l,o,n.minCellWidth(),n.isRelative)),((e,t)=>r.calcRightEdgeDeltas(s,e,t,o,n.minCellWidth(),n.isRelative)))})(c,0,i,r,n),m=D(u,((e,t)=>e+c[t]));er(s,m,r),n.resizeTable(r.adjustTableWidth,i,a)})(e,n,0,Io(),t)},Es=(e,t,o,n,r)=>{((e,t)=>{const o=R(vs(e),(e=>0===e));o&&xs(e,0),t(),o&&Cs(e,1)})(e,(()=>{o.column(0,t.insertColumnBefore,!0,!0),Ds(e),ks(e,t,o,n,r)}))},ks=(e,t,o,n,r)=>{o.table(e,0,0,t.populateColumn(0,((e,t,o)=>{const n=r.generator(e,t,o);return{raw:n,value:n.value,classes:n.classes,attributes:{contenteditable:"false",...n.attributes,"data-mce-resize":!1===r.resizable?"false":null}}})),!0,!0),((e,t)=>{It(e,Ss,t)})(e,n),Cs(e,0)},As=e=>Ko(qr(e),Hr(e)),Ns=(e,t)=>{e.execCommand("mceTableToggleSeries",!1,t)},Ls=(e,t,o)=>t.onSetupCellOrRowToggle((()=>((e,t)=>As(e).exists((e=>ae(t)?!Os(e):Rs(e,t))))(e,o))),Ps=(e,t)=>({type:"togglemenuitem",text:"None",onAction:()=>{(e=>As(e).bind(Ts))(e).each((t=>{Ns(e,{name:t})}))},onSetup:Ls(e,t,"")}),$s=(e,t,o,n,r)=>({type:"togglemenuitem",text:o,value:n,icon:r,onAction:()=>Ns(e,{name:n}),onSetup:Ls(e,t,n)}),Ms=(e,t,o)=>U(o,((o,n)=>{const r=y.from(o.title).getOrThunk((()=>{return""===(e=n)?"":e.charAt(0).toUpperCase()+e.substring(1);var e}));return $s(e,t,r,n)})),Ws=e=>t=>{const o=t.getData();t.close(),e.undoManager.transact((()=>{e.execCommand("mceSortTableAdvanced",!1,o),e.focus(),e.addVisual()}))},js=e=>{const t={type:"listbox",name:"sortby",label:"Sort by",items:[{text:"Column",value:"column"},{text:"Row",value:"row"}]},o=Z(y.none()),n=t=>({type:"listbox",name:"roworcol",label:"column"===t?"Column":"Row",items:"column"===t?(()=>{const t=o.get().getOrDie("state must be present"),n=t.limit?t.finishCol+1-t.startCol:t.columns;return O(n,(o=>{const n=t.limit?t.startCol:0,r=(e=>{let t=e,o="";for(;Math.floor(t)>0;)--t,o+=String.fromCharCode("A".charCodeAt(0)+t%26),t/=26;return o.split("").reverse().join("")})(o+n+1);return{text:e.translate(["Column {0}",r]),value:`${o+n}`}}))})():(()=>{const t=o.get().getOrDie("state must be present"),n=t.limit?t.finishRow+1-t.startRow:t.rows;return O(n,(o=>{const n=t.limit?t.startRow:0,r=(o+n+1).toString();return{text:e.translate(["Row {0}",r]),value:`${o+n}`}}))})()}),r=e=>({type:"listbox",name:"sort",label:"Sort",items:["column"===e?{text:"Column",value:"column"}:{text:"Row",value:"row"},{text:"Selection",value:"selection"},{text:"Table",value:"table"}]}),s={type:"listbox",name:"order",label:"Order",items:[{text:"Ascending",value:"ascending"},{text:"Descending",value:"descending"}]},l=e=>({type:"panel",items:[{type:"grid",columns:2,items:[t,n(e),r(e),s]}]}),c=e=>({title:"Advanced Sort",size:"normal",body:l(e),buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"sort",text:"Sort",primary:!0}]}),a=()=>{o.set(y.none())},i=(t,n)=>{if("sortby"===n.name){const n=t.getData(),l=(r=n,s=o.get().getOrDie("state must be present"),"column"===r.sortby?{sortby:"column",roworcol:`${s.startCol}`,sort:"row"===r.sort?"column":r.sort,order:r.order}:{sortby:"row",roworcol:`${s.startRow}`,sort:"column"===r.sort?"row":r.sort,order:r.order}),u={...c(n.sortby),onChange:i,onClose:a,onSubmit:Ws(e),initialData:l};t.redial(u),t.focus("sortby")}var r,s};ns(qr(e)).each((t=>{Ko(t,Hr(e)).each((n=>{const r=es(rs(e),n,t),s=t=>{o.set(y.some(t));const n={sortby:"column",roworcol:`${t.startCol}`,sort:"column",order:"ascending"},r={...c("column"),onChange:i,onClose:a,onSubmit:Ws(e),initialData:n};e.windowManager.open(r)},l=Rr(n);r.mergable.fold((()=>{zr(n,t,t).each((e=>{const t={...e,...l,limit:!1};s(t)}))}),(e=>{const t={...e.bounds,...l,limit:!0};s(t)}))}))}))},Bs=(e,t,o,r)=>{const s=e=>"selection"===e,l=e=>"ascending"===e,c=t=>Ko(t,Hr(e)),a=()=>ns(qr(e),Hr(e)).bind((e=>c(e).bind((t=>zr(t,e,e))))),i=()=>a().map((e=>e.startCol)),u=()=>a().map((e=>e.startRow)),m=t=>(...o)=>{e.mode.isReadOnly()||t(...o)};e.addCommand("mceSortTableByColumnAsc",m((()=>{i().each((e=>{o.selection(t.sortTableRowsAsc(e))}))}))),e.addCommand("mceSortTableByColumnDesc",m((()=>{i().each((e=>{o.selection(t.sortTableRowsDesc(e))}))}))),e.addCommand("mceSortTableByRowAsc",m((()=>{u().each((e=>{o.selection(t.sortTableColumnsAsc(e))}))}))),e.addCommand("mceSortTableByRowDesc",m((()=>{u().each((e=>{o.selection(t.sortTableColumnsDesc(e))}))}))),e.addCommand("mceSortTableAdvanced",m(((e,n)=>(e=>{const n=parseInt(e.roworcol,10);"column"===e.sortby?((e,n)=>{(e=>"column"===e)(e.sort)?l(e.order)?o.selection(t.sortColumnRowsAsc(n)):o.selection(t.sortColumnRowsDesc(n)):s(e.sort)?l(e.order)?o.selection(t.sortSelectionRowsAsc(n)):o.selection(t.sortSelectionRowsDesc(n)):l(e.order)?o.selection(t.sortTableRowsAsc(n)):o.selection(t.sortTableRowsDesc(n))})(e,n):((e,n)=>{(e=>"row"===e)(e.sort)?l(e.order)?o.selection(t.sortRowColumnsAsc(n)):o.selection(t.sortRowColumnsDesc(n)):s(e.sort)?l(e.order)?o.selection(t.sortSelectionColumnsAsc(n)):o.selection(t.sortSelectionColumnsDesc(n)):l(e.order)?o.selection(t.sortTableColumnsAsc(n)):o.selection(t.sortTableColumnsDesc(n))})(e,n)})(n)))),e.addCommand("mceAdvancedTableSort",(()=>js(e))),e.addCommand("mceTableToggleSeries",m(((s,l)=>{const a=y.from(l.name).filter(n),i=c(qr(e));oe(a,i,((e,n)=>{Rs(n,e)?((e,t,o)=>{xs(e,0),(e=>{Ht(e,Ss)})(e),o.column(0,t.deleteColumn,!0,!0)})(n,t,o):X(r,e).each((r=>{(Os(n)?ks:Es)(n,t,o,e,r)}))}))})))},Is=e=>{const t=Z(y.none()),o=Z([]);let n=y.none();const r=St("caption"),s=()=>os(qr(e),Hr(e)).bind((t=>ne(oe(Ko(t),os((e=>_e.fromDom(e.selection.getEnd()))(e),Hr(e)).bind(Ko),((o,n)=>Ke(o,n)?r(t)?y.some(Zr(t)):y.some(es(rs(e),o,t)):y.none()))))),l=e=>Ko(e.element).map((t=>{const o=on(t),n=Kn(o,e).getOr([]),r=P(n,((e,t)=>(t.isLocked&&(e.onAny=!0,0===t.column?e.onFirst=!0:t.column+t.colspan>=o.grid.columns&&(e.onLast=!0)),e)),{onAny:!1,onFirst:!1,onLast:!1});return{mergeable:Xn(o,e).isSome(),unmergeable:Yn(o,e).isSome(),locked:r}})),c=()=>{t.set(ie(s)()),n=t.get().bind(l),E(o.get(),(e=>e()))},a=e=>(e(),o.set(o.get().concat([e])),()=>{o.set(A(o.get(),(t=>t!==e)))}),i=(o,n)=>a((()=>t.get().fold((()=>{o.setEnabled(!1)}),(t=>{o.setEnabled(!n(t)&&!e.mode.isReadOnly())}))));return e.on("NodeChange ExecCommand TableSelectorChange",c),{onSetupTable:e=>i(e,(e=>!1)),onSetupCellOrRow:e=>i(e,(e=>r(e.element))),onSetupColumn:e=>t=>i(t,(t=>r(t.element)||(e=>n.exists((t=>t.locked[e])))(e))),onSetupCellOrRowToggle:o=>n=>((o,n,s)=>a((()=>t.get().fold((()=>{o.setEnabled(!1),o.setActive(!1)}),(t=>{o.setEnabled(!(e=>r(e.element))(t)&&!e.mode.isReadOnly()),o.setActive(s(t))})))))(n,0,o),resetTargets:c,targets:()=>t.get()}};((e,t)=>{const{i18n:o=!0}=t;o&&tinymce.PluginManager.requireLangPack(e,"ar,bg-BG,ca,cs,da,de,el,es,eu,fa,fi,fr-FR,he-IL,hi,hr,hu-HU,id,it,ja,kk,ko-KR,ms,nb-NO,nl,pl,pt-BR,pt-PT,ro,ru,sk,sl-SI,sv-SE,th-TH,tr,uk,vi,zh-CN,zh-TW"),tinymce.PluginManager.add(e,$e(e,t))})("advtable",{setup:e=>{(e=>{(0,e.options.register)("advtable_value_series",{processor:"object",default:{numeric:{title:"Numeric",update:!0,resizable:!1,generator:ms},alpha:{title:"Alpha",update:!0,resizable:!1,generator:ds}}})})(e);const t=ws(e),o=Is(e),n=(e=>{const t=t=>{e.focus()},o=t=>Ko(t,Hr(e)),n=(n,r,s,l,c)=>{ns(qr(e)).each((e=>{o(e).each((o=>{const a=on(o),i=(e,t)=>sn(a,e,Ke).map((e=>e[t])),u=n.orThunk((()=>i(e,"row"))),m=r.orThunk((()=>i(e,"column"))),d=ne(oe(u,m,((e,t)=>rn(a,e,t).map((e=>e.element)))));d.bind((t=>{const n=Zr(t);return s(o,n,re(l,e),!0,c)})).each(t)}))}))};return{selection:(n,r)=>{ns(qr(e)).each((s=>{o(s).each((o=>{const l=es(rs(e),o,s);n(o,l,y.none(),!0,r).each(t)}))}))},row:(e,t,o,r)=>n(y.some(e),y.none(),t,o,r),column:(e,t,o,r)=>n(y.none(),y.some(e),t,o,r),table:(o,n,r,s,l,c)=>{const a=on(o),i=rn(a,n,r).map((e=>e.element)),u=ns(qr(e)),m=u.bind((e=>sn(a,e,Ke))).isSome(),d=i.bind((e=>{const t=Zr(e),n=m&&l?u:y.none();return s(o,t,n,m,c)}));d.each(t)}}})(e),r=ps(e);return Bs(e,t,n,r),((e,t,o,n)=>{const r=()=>Ko(qr(e),Hr(e)),s=(s,l=v)=>{const c=Ts(s),a=c.bind((e=>X(n,e)));oe(c,a,((n,c)=>{1===on(s).grid.columns?r().exists((e=>Ke(s,e)))?e.execCommand("mceTableDelete"):e.undoManager.transact((()=>{Gt(s)})):!0===c.update&&l()&&ks(s,t,o,n,c)}))};e.on("TableModified",(e=>{const t=_e.fromDom(e.table);s(t,(()=>!1!==e.structure))})),e.on("PreInit",(()=>{((e,t)=>{const o=e=>{const t=[];return i(e)?t:((e=>"thead"===e.name||"tbody"===e.name||"tfoot"===e.name)(e)?t.push(...o(e.firstChild)):"tr"===e.name&&t.push(e),t.concat(o(e.next)))},n=e=>o(e.firstChild);e.parser.addAttributeFilter(Ss,(e=>{var o;for(const r of e)if("table"===r.name){const e=r.attr(Ss);if(!1===(null===(o=t[e])||void 0===o?void 0:o.resizable)){const e=n(r);for(const t of e)u(t.firstChild)&&t.firstChild.attr("data-mce-resize","false")}}}))})(e,n)})),e.on("init",(()=>{const t=()=>{const t=ns(qr(e),Hr(e));return e.selection.isCollapsed()&&t.exists((t=>e.dom.isEmpty(t.dom)))};e.on("ExecCommand",(e=>{const o=e.command.toLowerCase();"delete"!==o&&"forwarddelete"!==o||!t()||r().each(s)}),!0),e.on("keyup",(e=>{const o=e.keyCode;8!==o&&46!==o||!t()||r().each(s)}))}))})(e,t,n,r),e.hasPlugin("table")&&(((e,t)=>{const o=(t,o)=>()=>e.execCommand(t,!1,o),n=t.onSetupCellOrRow,r=[{type:"menuitem",text:"Sort table by column ascending",onAction:o("mceSortTableByColumnAsc"),onSetup:n},{type:"menuitem",text:"Sort table by column descending",onAction:o("mceSortTableByColumnDesc"),onSetup:n},{type:"separator"},{type:"menuitem",text:"Advanced sort...",onAction:()=>js(e),onSetup:n}];e.ui.registry.addNestedMenuItem("advtablesort",{type:"nestedmenuitem",text:"Sort",getSubmenuItems:g(r)});const s=ps(e);if(1===Q(s)){const o=V(s)[0];e.ui.registry.addToggleMenuItem("advtablerownumbering",$s(e,t,"Row numbering",o,"table-row-numbering"))}else J(s)||e.ui.registry.addNestedMenuItem("advtablerownumbering",{type:"nestedmenuitem",text:"Row numbering",icon:"table-row-numbering",getSubmenuItems:()=>{const o=Ps(e,t),n=Ms(e,t,s);return[o].concat(n)}})})(e,o),((e,t)=>{const o=ps(e);if(1===Q(o)){const n=V(o)[0];e.ui.registry.addToggleButton("advtablerownumbering",{type:"togglebutton",tooltip:"Row numbering",icon:"table-row-numbering",onAction:()=>Ns(e,{name:n}),onSetup:Ls(e,t,n)})}else J(o)||e.ui.registry.addMenuButton("advtablerownumbering",{type:"menubutton",icon:"table-row-numbering",tooltip:"Row numbering",fetch:n=>{const r=Ps(e,t),s=Ms(e,t,o);return n([r].concat(s))},onSetup:t.onSetupCellOrRow})})(e,o)),{}}})}(); \ No newline at end of file diff --git a/plugins/advtemplate/index.js b/plugins/advtemplate/index.js new file mode 100644 index 00000000..35752f84 --- /dev/null +++ b/plugins/advtemplate/index.js @@ -0,0 +1 @@ +require('./plugin.js'); \ No newline at end of file diff --git a/plugins/advtemplate/index.mjs b/plugins/advtemplate/index.mjs new file mode 100644 index 00000000..d2860bc1 --- /dev/null +++ b/plugins/advtemplate/index.mjs @@ -0,0 +1 @@ +import './plugin.js'; \ No newline at end of file diff --git a/plugins/advtemplate/langs/ar.js b/plugins/advtemplate/langs/ar.js new file mode 100644 index 00000000..6d9e3600 --- /dev/null +++ b/plugins/advtemplate/langs/ar.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ar", { + "Actions": "\u0627\u0644\u0625\u062c\u0631\u0627\u0621\u0627\u062a", + "Are you sure you want to permanently delete the category and all its content?": "\u0647\u0644 \u0623\u0646\u062a \u0645\u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646\u0643 \u062a\u0631\u064a\u062f \u062d\u0630\u0641 \u0627\u0644\u0641\u0626\u0629 \u0648\u0643\u0627\u0641\u0629 \u0645\u062d\u062a\u0648\u064a\u0627\u062a\u0647\u0627 \u0628\u0634\u0643\u0644 \u062f\u0627\u0626\u0645\u061f", + "Are you sure you want to permanently delete the template?": "\u0647\u0644 \u0623\u0646\u062a \u0645\u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646\u0643 \u062a\u0631\u064a\u062f \u062d\u0630\u0641 \u0627\u0644\u0642\u0627\u0644\u0628 \u0628\u0634\u0643\u0644 \u062f\u0627\u0626\u0645\u061f", + "Cancel": "\u0625\u0644\u063a\u0627\u0621", + "Category": "\u0627\u0644\u0641\u0626\u0629", + "Category actions": "\u0625\u062c\u0631\u0627\u0621\u0627\u062a \u0627\u0644\u0641\u0626\u0629", + "Category name": "\u0627\u0633\u0645 \u0627\u0644\u0641\u0626\u0629", + "Choose category": "\u0627\u062e\u062a\u064a\u0627\u0631 \u0641\u0626\u0629", + "Collapse": "\u0637\u064a", + "Create category...": "\u0625\u0646\u0634\u0627\u0621 \u0641\u0626\u0629...", + "Delete": "\u062d\u0630\u0641", + "Delete all": "\u062d\u0630\u0641 \u0627\u0644\u0643\u0644", + "Expand": "\u062a\u0648\u0633\u064a\u0639", + "Filter templates": "\u0642\u0648\u0627\u0644\u0628 \u0639\u0648\u0627\u0645\u0644 \u0627\u0644\u062a\u0635\u0641\u064a\u0629", + "Insert": "\u0625\u062f\u0631\u0627\u062c", + "Insert template": "\u0625\u062f\u0631\u0627\u062c \u0642\u0627\u0644\u0628", + "Locked for editing": "\u0645\u0642\u0641\u0644 \u0623\u0645\u0627\u0645 \u0627\u0644\u062a\u0639\u062f\u064a\u0644", + "Move all items": "\u0646\u0642\u0644 \u0643\u0644 \u0627\u0644\u0639\u0646\u0627\u0635\u0631", + "Move all items...": "\u0646\u0642\u0644 \u0643\u0644 \u0627\u0644\u0639\u0646\u0627\u0635\u0631...", + "Move to": "\u0646\u0642\u0644 \u0625\u0644\u0649", + "Move to...": "\u0646\u0642\u0644 \u0625\u0644\u0649...", + "New category": "\u200f\u200f\u0641\u0626\u0629 \u062c\u062f\u064a\u062f\u0629", + "New template": "\u0642\u0627\u0644\u0628 \u062c\u062f\u064a\u062f", + "OK": "\u0645\u0648\u0627\u0641\u0642", + "Operation failed": "\u0641\u0634\u0644\u062a \u0627\u0644\u0639\u0645\u0644\u064a\u0629", + "Rename category": "\u0625\u0639\u0627\u062f\u0629 \u062a\u0633\u0645\u064a\u0629 \u0641\u0626\u0629", + "Rename template": "\u0625\u0639\u0627\u062f\u0629 \u062a\u0633\u0645\u064a\u0629 \u0642\u0627\u0644\u0628", + "Rename...": "\u0625\u0639\u0627\u062f\u0629 \u062a\u0633\u0645\u064a\u0629...", + "Save": "\u062d\u0641\u0638", + "Save as template": "\u062d\u0641\u0638 \u0643\u0642\u0627\u0644\u0628", + "Save as template...": "\u062d\u0641\u0638 \u0643\u0642\u0627\u0644\u0628...", + "Search": "\u0628\u062d\u062b", + "Select template to preview": "\u062a\u062d\u062f\u064a\u062f \u0642\u0627\u0644\u0628 \u0644\u0644\u0645\u0639\u0627\u064a\u0646\u0629", + "Template actions": "\u0625\u062c\u0631\u0627\u0621\u0627\u062a \u0627\u0644\u0642\u0627\u0644\u0628", + "Template name": "\u0627\u0633\u0645 \u0627\u0644\u0642\u0627\u0644\u0628", + "Template successfully saved": "\u062a\u0645 \u062d\u0641\u0638 \u0627\u0644\u0642\u0627\u0644\u0628 \u0628\u0646\u062c\u0627\u062d", + "Template...": "\u0642\u0627\u0644\u0628...", + "Templates": "\u0642\u0648\u0627\u0644\u0628", + "The category is empty": "\u0627\u0644\u0641\u0626\u0629 \u0641\u0627\u0631\u063a\u0629", + "Uncategorized": "\u063a\u064a\u0631 \u0645\u0635\u0646\u0641" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/bg-BG.js b/plugins/advtemplate/langs/bg-BG.js new file mode 100644 index 00000000..4f04e48f --- /dev/null +++ b/plugins/advtemplate/langs/bg-BG.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("bg-BG", { + "Actions": "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f", + "Are you sure you want to permanently delete the category and all its content?": "\u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0438\u0437\u0442\u0440\u0438\u0435\u0442\u0435 \u0437\u0430\u0432\u0438\u043d\u0430\u0433\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u0442\u0430 \u0438 \u0446\u044f\u043b\u043e\u0442\u043e \u0439 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435?", + "Are you sure you want to permanently delete the template?": "\u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0438\u0437\u0442\u0440\u0438\u0435\u0442\u0435 \u0437\u0430\u0432\u0438\u043d\u0430\u0433\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430?", + "Cancel": "\u041e\u0442\u043a\u0430\u0437", + "Category": "\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f", + "Category actions": "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438", + "Category name": "\u0418\u043c\u0435 \u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f", + "Choose category": "\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f", + "Collapse": "\u0421\u0432\u0438\u0432\u0430\u043d\u0435", + "Create category...": "\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f...", + "Delete": "\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435", + "Delete all": "\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438", + "Expand": "\u0420\u0430\u0437\u0448\u0438\u0440\u044f\u0432\u0430\u043d\u0435", + "Filter templates": "\u0424\u0438\u043b\u0442\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u0438", + "Insert": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435", + "Insert template": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d", + "Locked for editing": "\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u0437\u0430 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435", + "Move all items": "\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0438", + "Move all items...": "\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0438...", + "Move to": "\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u0432", + "Move to...": "\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u0432...", + "New category": "\u041d\u043e\u0432\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f", + "New template": "\u041d\u043e\u0432 \u0448\u0430\u0431\u043b\u043e\u043d", + "OK": "\u0414\u043e\u0431\u0440\u0435", + "Operation failed": "\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u0435 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0430", + "Rename category": "\u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f", + "Rename template": "\u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d", + "Rename...": "\u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435...", + "Save": "\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435", + "Save as template": "\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043a\u0430\u0442\u043e \u0448\u0430\u0431\u043b\u043e\u043d", + "Save as template...": "\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043a\u0430\u0442\u043e \u0448\u0430\u0431\u043b\u043e\u043d...", + "Search": "\u0422\u044a\u0440\u0441\u0435\u043d\u0435", + "Select template to preview": "\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d \u0437\u0430 \u043f\u0440\u0435\u0433\u043b\u0435\u0434", + "Template actions": "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0438", + "Template name": "\u0418\u043c\u0435 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d", + "Template successfully saved": "\u0428\u0430\u0431\u043b\u043e\u043d\u044a\u0442 \u0435 \u0437\u0430\u043f\u0430\u0437\u0435\u043d \u0443\u0441\u043f\u0435\u0448\u043d\u043e", + "Template...": "\u0428\u0430\u0431\u043b\u043e\u043d...", + "Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u0438", + "The category is empty": "\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u0442\u0430 \u0435 \u043f\u0440\u0430\u0437\u043d\u0430", + "Uncategorized": "\u0411\u0435\u0437 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/bg_BG.js b/plugins/advtemplate/langs/bg_BG.js new file mode 100644 index 00000000..a0abd25a --- /dev/null +++ b/plugins/advtemplate/langs/bg_BG.js @@ -0,0 +1,50 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("bg-BG", { + "Actions": "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f", + "Are you sure you want to permanently delete the category and all its content?": "\u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0438\u0437\u0442\u0440\u0438\u0435\u0442\u0435 \u0437\u0430\u0432\u0438\u043d\u0430\u0433\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u0442\u0430 \u0438 \u0446\u044f\u043b\u043e\u0442\u043e \u0439 \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435?", + "Are you sure you want to permanently delete the template?": "\u0421\u0438\u0433\u0443\u0440\u043d\u0438 \u043b\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0438\u0437\u0442\u0440\u0438\u0435\u0442\u0435 \u0437\u0430\u0432\u0438\u043d\u0430\u0433\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430?", + "Cancel": "\u041e\u0442\u043a\u0430\u0437", + "Category": "\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f", + "Category actions": "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438", + "Category name": "\u0418\u043c\u0435 \u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f", + "Choose category": "\u0418\u0437\u0431\u043e\u0440 \u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f", + "Collapse": "\u0421\u0432\u0438\u0432\u0430\u043d\u0435", + "Create category...": "\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f...", + "Delete": "\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435", + "Delete all": "\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438", + "Expand": "\u0420\u0430\u0437\u0448\u0438\u0440\u044f\u0432\u0430\u043d\u0435", + "Filter templates": "\u0424\u0438\u043b\u0442\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u0438", + "Insert": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435", + "Insert template": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d", + "Locked for editing": "\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u0437\u0430 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435", + "Move all items": "\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0438", + "Move all items...": "\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0438...", + "Move to": "\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u0432", + "Move to...": "\u041f\u0440\u0435\u043c\u0435\u0441\u0442\u0432\u0430\u043d\u0435 \u0432...", + "New category": "\u041d\u043e\u0432\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f", + "New template": "\u041d\u043e\u0432 \u0448\u0430\u0431\u043b\u043e\u043d", + "OK": "\u0414\u043e\u0431\u0440\u0435", + "Operation failed": "\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u0435 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u0430", + "Rename category": "\u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f", + "Rename template": "\u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d", + "Rename...": "\u041f\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0432\u0430\u043d\u0435...", + "Save": "\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435", + "Save as template": "\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043a\u0430\u0442\u043e \u0448\u0430\u0431\u043b\u043e\u043d", + "Save as template...": "\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435 \u043a\u0430\u0442\u043e \u0448\u0430\u0431\u043b\u043e\u043d...", + "Search": "\u0422\u044a\u0440\u0441\u0435\u043d\u0435", + "Select template to preview": "\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d \u0437\u0430 \u043f\u0440\u0435\u0433\u043b\u0435\u0434", + "Template actions": "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0438", + "Template name": "\u0418\u043c\u0435 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d", + "Template successfully saved": "\u0428\u0430\u0431\u043b\u043e\u043d\u044a\u0442 \u0435 \u0437\u0430\u043f\u0430\u0437\u0435\u043d \u0443\u0441\u043f\u0435\u0448\u043d\u043e", + "Template...": "\u0428\u0430\u0431\u043b\u043e\u043d...", + "Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u0438", + "The category is empty": "\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u0442\u0430 \u0435 \u043f\u0440\u0430\u0437\u043d\u0430", + "Uncategorized": "\u0411\u0435\u0437 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f" +}); + +console.warn('TinyMCE language code "bg_BG" is deprecated, please use "bg-BG" instead.'); \ No newline at end of file diff --git a/plugins/advtemplate/langs/ca.js b/plugins/advtemplate/langs/ca.js new file mode 100644 index 00000000..b2842d59 --- /dev/null +++ b/plugins/advtemplate/langs/ca.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ca", { + "Actions": "Accions", + "Are you sure you want to permanently delete the category and all its content?": "Segur que voleu suprimir permanentment la categoria i tot el seu contingut?", + "Are you sure you want to permanently delete the template?": "Segur que voleu suprimir permanentment la plantilla?", + "Cancel": "Cancel\xb7la", + "Category": "Categoria", + "Category actions": "Accions de categoria", + "Category name": "Nom de la categoria", + "Choose category": "Triar la categoria", + "Collapse": "Reduir", + "Create category...": "Crear la categoria...", + "Delete": "Suprimir", + "Delete all": "Suprimir-ho tot", + "Expand": "Expandir", + "Filter templates": "Plantilles de filtre", + "Insert": "Inserir", + "Insert template": "Inserir plantilla", + "Locked for editing": "Bloquejada per a l'edici\xf3", + "Move all items": "Despla\xe7ar tots els elements", + "Move all items...": "Despla\xe7ar tots els elements...", + "Move to": "Despla\xe7ar a", + "Move to...": "Despla\xe7ar a...", + "New category": "Categoria nova", + "New template": "Plantilla nova", + "OK": "D'acord", + "Operation failed": "L'operaci\xf3 ha fallat", + "Rename category": "Canviar el nom de la categoria", + "Rename template": "Canviar el nom de la plantilla", + "Rename...": "Canviar el nom...", + "Save": "Desar", + "Save as template": "Desar com a plantilla", + "Save as template...": "Desar com a plantilla...", + "Search": "Cerca", + "Select template to preview": "Seleccioneu la plantilla per obtenir-ne una visualitzaci\xf3 pr\xe8via", + "Template actions": "Accions de plantilla", + "Template name": "Nom de la plantilla", + "Template successfully saved": "La plantilla s'ha desat correctament", + "Template...": "Plantilla...", + "Templates": "Plantilles", + "The category is empty": "La categoria est\xe0 buida", + "Uncategorized": "Sense categoria" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/cs.js b/plugins/advtemplate/langs/cs.js new file mode 100644 index 00000000..57f45bc0 --- /dev/null +++ b/plugins/advtemplate/langs/cs.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("cs", { + "Actions": "Akce", + "Are you sure you want to permanently delete the category and all its content?": "Opravdu chcete trvale odstranit tuto kategorii a\xa0ve\u0161ker\xfd jej\xed obsah?", + "Are you sure you want to permanently delete the template?": "Opravdu chcete trvale odstranit tuto \u0161ablonu?", + "Cancel": "Zru\u0161it", + "Category": "Kategorie", + "Category actions": "Akce kategorie", + "Category name": "N\xe1zev kategorie", + "Choose category": "Zvolit kategorii", + "Collapse": "Sbalit", + "Create category...": "Vytvo\u0159it kategorii\u2026", + "Delete": "Odstranit", + "Delete all": "Odstranit v\u0161e", + "Expand": "Rozbalit", + "Filter templates": "Filtrovat \u0161ablony", + "Insert": "Vlo\u017eit", + "Insert template": "Vlo\u017eit \u0161ablonu", + "Locked for editing": "Uzam\u010deno pro \xfapravy", + "Move all items": "P\u0159esunout v\u0161echny polo\u017eky", + "Move all items...": "P\u0159esunout v\u0161echny polo\u017eky\u2026", + "Move to": "P\u0159esunout do", + "Move to...": "P\u0159esunout do\u2026", + "New category": "Nov\xe1 kategorie", + "New template": "Nov\xe1 \u0161ablona", + "OK": "OK", + "Operation failed": "Operace selhala", + "Rename category": "P\u0159ejmenovat kategorii", + "Rename template": "P\u0159ejmenovat \u0161ablonu", + "Rename...": "P\u0159ejmenovat\u2026", + "Save": "Ulo\u017eit", + "Save as template": "Ulo\u017eit jako \u0161ablonu", + "Save as template...": "Ulo\u017eit jako \u0161ablonu\u2026", + "Search": "Hledat", + "Select template to preview": "Vybrat \u0161ablonu k\xa0zobrazen\xed n\xe1hledu", + "Template actions": "Akce \u0161ablony", + "Template name": "N\xe1zev \u0161ablony", + "Template successfully saved": "\u0160ablona byla \xfasp\u011b\u0161n\u011b ulo\u017eena", + "Template...": "\u0160ablona\u2026", + "Templates": "\u0160ablony", + "The category is empty": "Kategorie je pr\xe1zdn\xe1", + "Uncategorized": "Nekategorizov\xe1no" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/da.js b/plugins/advtemplate/langs/da.js new file mode 100644 index 00000000..d2d58846 --- /dev/null +++ b/plugins/advtemplate/langs/da.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("da", { + "Actions": "Handlinger", + "Are you sure you want to permanently delete the category and all its content?": "Er du sikker p\xe5, at du vil slette kategorien og alt dens indhold permanent?", + "Are you sure you want to permanently delete the template?": "Er du sikker p\xe5, at du vil slette skabelonen permanent?", + "Cancel": "Annuller", + "Category": "Kategori", + "Category actions": "Kategori handlinger", + "Category name": "Navn p\xe5 kategori", + "Choose category": "V\xe6lg kategori", + "Collapse": "Skjul", + "Create category...": "Opret kategori...", + "Delete": "Slet", + "Delete all": "Slet alle", + "Expand": "Udvid", + "Filter templates": "Filtrer skabeloner", + "Insert": "Inds\xe6t", + "Insert template": "Inds\xe6t skabelon", + "Locked for editing": "L\xe5st til redigering", + "Move all items": "Flyt alle elementer", + "Move all items...": "Flyt alle elementer...", + "Move to": "Flyt til", + "Move to...": "Flyt til...", + "New category": "Ny kategori", + "New template": "Ny skabelon", + "OK": "OK", + "Operation failed": "Handlingen mislykkedes", + "Rename category": "Omd\xf8b kategori", + "Rename template": "Omd\xf8b skabelon", + "Rename...": "Omd\xf8b...", + "Save": "Gem", + "Save as template": "Gem som skabelon", + "Save as template...": "Gem som skabelon...", + "Search": "S\xf8g", + "Select template to preview": "V\xe6lg skabelon, der skal forh\xe5ndsvises", + "Template actions": "Handlinger for skabelon", + "Template name": "Navn p\xe5 skabelon", + "Template successfully saved": "Skabelonen blev gemt", + "Template...": "Skabelon...", + "Templates": "Skabeloner", + "The category is empty": "Kategorien er tom", + "Uncategorized": "Ikke-kategoriseret" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/de.js b/plugins/advtemplate/langs/de.js new file mode 100644 index 00000000..7a026727 --- /dev/null +++ b/plugins/advtemplate/langs/de.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("de", { + "Actions": "Aktionen", + "Are you sure you want to permanently delete the category and all its content?": "M\xf6chten Sie diese Kategorie einschlie\xdflich s\xe4mtlicher Inhalte wirklich endg\xfcltig l\xf6schen?", + "Are you sure you want to permanently delete the template?": "M\xf6chten Sie diese Vorlage wirklich endg\xfcltig l\xf6schen?", + "Cancel": "Abbrechen", + "Category": "Kategorie", + "Category actions": "Kategorieaktionen", + "Category name": "Kategoriename", + "Choose category": "Kategorie ausw\xe4hlen", + "Collapse": "Zuklappen", + "Create category...": "Kategorie erstellen\xa0...", + "Delete": "L\xf6schen", + "Delete all": "Alle l\xf6schen", + "Expand": "Erweitern", + "Filter templates": "Vorlagen filtern", + "Insert": "Einf\xfcgen", + "Insert template": "Vorlage einf\xfcgen", + "Locked for editing": "F\xfcr die Bearbeitung gesperrt", + "Move all items": "Alle Elemente verschieben", + "Move all items...": "Alle Elemente verschieben\xa0...", + "Move to": "Verschieben nach", + "Move to...": "Verschieben nach\xa0...", + "New category": "Neue Kategorie", + "New template": "Neue Vorlage", + "OK": "OK", + "Operation failed": "Vorgang fehlgeschlagen", + "Rename category": "Kategorie umbenennen", + "Rename template": "Vorlage umbenennen", + "Rename...": "Umbenennen\xa0...", + "Save": "Speichern", + "Save as template": "Als Vorlage speichern", + "Save as template...": "Als Vorlage speichern\xa0...", + "Search": "Suchen", + "Select template to preview": "Vorlage f\xfcr Vorschau ausw\xe4hlen", + "Template actions": "Vorlagenaktionen", + "Template name": "Vorlagenname", + "Template successfully saved": "Vorlage wurde gespeichert", + "Template...": "Vorlage\xa0...", + "Templates": "Vorlagen", + "The category is empty": "Die Kategorie ist leer", + "Uncategorized": "Nicht kategorisiert" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/el.js b/plugins/advtemplate/langs/el.js new file mode 100644 index 00000000..15257373 --- /dev/null +++ b/plugins/advtemplate/langs/el.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("el", { + "Actions": "\u0395\u03bd\u03ad\u03c1\u03b3\u03b5\u03b9\u03b5\u03c2", + "Are you sure you want to permanently delete the category and all its content?": "\u0395\u03af\u03c3\u03c4\u03b5 \u03b2\u03ad\u03b2\u03b1\u03b9\u03bf\u03b9 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03c4\u03b5 \u03bc\u03cc\u03bd\u03b9\u03bc\u03b1 \u03c4\u03b7\u03bd \u03ba\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1 \u03ba\u03b1\u03b9 \u03bf\u03bb\u03cc\u03ba\u03bb\u03b7\u03c1\u03bf \u03c4\u03bf \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03cc \u03c4\u03b7\u03c2;", + "Are you sure you want to permanently delete the template?": "\u0395\u03af\u03c3\u03c4\u03b5 \u03b2\u03ad\u03b2\u03b1\u03b9\u03bf\u03b9 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03c4\u03b5 \u03bc\u03cc\u03bd\u03b9\u03bc\u03b1 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c0\u03c1\u03cc\u03c4\u03c5\u03c0\u03bf;", + "Cancel": "\u0386\u03ba\u03c5\u03c1\u03bf", + "Category": "\u039a\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1", + "Category actions": "\u0395\u03bd\u03ad\u03c1\u03b3\u03b5\u03b9\u03b5\u03c2 \u03ba\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1\u03c2", + "Category name": "\u038c\u03bd\u03bf\u03bc\u03b1 \u03ba\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1\u03c2", + "Choose category": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03ba\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1\u03c2", + "Collapse": "\u03a3\u03cd\u03bc\u03c0\u03c4\u03c5\u03be\u03b7", + "Create category...": "\u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03ba\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1\u03c2...", + "Delete": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae", + "Delete all": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03cc\u03bb\u03c9\u03bd", + "Expand": "\u0391\u03bd\u03ac\u03c0\u03c4\u03c5\u03be\u03b7", + "Filter templates": "\u03a6\u03b9\u03bb\u03c4\u03c1\u03ac\u03c1\u03b9\u03c3\u03bc\u03b1 \u03c0\u03c1\u03bf\u03c4\u03cd\u03c0\u03c9\u03bd", + "Insert": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae", + "Insert template": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c0\u03c1\u03bf\u03c4\u03cd\u03c0\u03bf\u03c5", + "Locked for editing": "\u039a\u03bb\u03b5\u03b9\u03b4\u03c9\u03bc\u03ad\u03bd\u03bf \u03c0\u03c1\u03bf\u03c2 \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1", + "Move all items": "\u039c\u03b5\u03c4\u03b1\u03ba\u03af\u03bd\u03b7\u03c3\u03b7 \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03c9\u03bd", + "Move all items...": "\u039c\u03b5\u03c4\u03b1\u03ba\u03af\u03bd\u03b7\u03c3\u03b7 \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03c9\u03bd...", + "Move to": "\u039c\u03b5\u03c4\u03b1\u03ba\u03af\u03bd\u03b7\u03c3\u03b7 \u03c3\u03b5", + "Move to...": "\u039c\u03b5\u03c4\u03b1\u03ba\u03af\u03bd\u03b7\u03c3\u03b7 \u03c3\u03b5...", + "New category": "\u039d\u03ad\u03b1 \u03ba\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1", + "New template": "\u039d\u03ad\u03bf \u03c0\u03c1\u03cc\u03c4\u03c5\u03c0\u03bf", + "OK": "OK", + "Operation failed": "\u0397 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5", + "Rename category": "\u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1 \u03ba\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1\u03c2", + "Rename template": "\u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1 \u03c0\u03c1\u03bf\u03c4\u03cd\u03c0\u03bf\u03c5", + "Rename...": "\u039c\u03b5\u03c4\u03bf\u03bd\u03bf\u03bc\u03b1\u03c3\u03af\u03b1...", + "Save": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7", + "Save as template": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c9\u03c2 \u03c0\u03c1\u03cc\u03c4\u03c5\u03c0\u03bf", + "Save as template...": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c9\u03c2 \u03c0\u03c1\u03cc\u03c4\u03c5\u03c0\u03bf...", + "Search": "\u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7", + "Select template to preview": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03c0\u03c1\u03bf\u03c4\u03cd\u03c0\u03bf\u03c5 \u03b3\u03b9\u03b1 \u03c0\u03c1\u03bf\u03b5\u03c0\u03b9\u03c3\u03ba\u03cc\u03c0\u03b7\u03c3\u03b7", + "Template actions": "\u0395\u03bd\u03ad\u03c1\u03b3\u03b5\u03b9\u03b5\u03c2 \u03c0\u03c1\u03bf\u03c4\u03cd\u03c0\u03bf\u03c5", + "Template name": "\u038c\u03bd\u03bf\u03bc\u03b1 \u03c0\u03c1\u03bf\u03c4\u03cd\u03c0\u03bf\u03c5", + "Template successfully saved": "\u03a4\u03bf \u03c0\u03c1\u03cc\u03c4\u03c5\u03c0\u03bf \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03cd\u03c4\u03b7\u03ba\u03b5 \u03bc\u03b5 \u03b5\u03c0\u03b9\u03c4\u03c5\u03c7\u03af\u03b1", + "Template...": "\u03a0\u03c1\u03cc\u03c4\u03c5\u03c0\u03bf...", + "Templates": "\u03a0\u03c1\u03cc\u03c4\u03c5\u03c0\u03b1", + "The category is empty": "\u0397 \u03ba\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ba\u03b5\u03bd\u03ae", + "Uncategorized": "\u03a7\u03c9\u03c1\u03af\u03c2 \u03ba\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03b9\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/es.js b/plugins/advtemplate/langs/es.js new file mode 100644 index 00000000..5674d3c0 --- /dev/null +++ b/plugins/advtemplate/langs/es.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("es", { + "Actions": "Acciones", + "Are you sure you want to permanently delete the category and all its content?": "\xbfSeguro que desea eliminar la categor\xeda y todo su contenido de forma permanente?", + "Are you sure you want to permanently delete the template?": "\xbfSeguro que desea eliminar la plantilla de forma permanente?", + "Cancel": "Cancelar", + "Category": "Categor\xeda", + "Category actions": "Acciones de categor\xeda", + "Category name": "Nombre de categor\xeda", + "Choose category": "Elegir categor\xeda", + "Collapse": "Contraer", + "Create category...": "Crear categor\xeda...", + "Delete": "Eliminar", + "Delete all": "Eliminar todo", + "Expand": "Expandir", + "Filter templates": "Filtrar plantillas", + "Insert": "Insertar", + "Insert template": "Insertar plantilla", + "Locked for editing": "Bloqueada para su edici\xf3n", + "Move all items": "Mover todos los elementos", + "Move all items...": "Mover todos los elementos...", + "Move to": "Mover a", + "Move to...": "Mover a...", + "New category": "Nueva categor\xeda", + "New template": "Nueva plantilla", + "OK": "Ok", + "Operation failed": "Error en la operaci\xf3n", + "Rename category": "Cambiar nombre de categor\xeda", + "Rename template": "Cambiar nombre de plantilla", + "Rename...": "Cambiar nombre...", + "Save": "Guardar", + "Save as template": "Guardar como plantilla", + "Save as template...": "Guardar como plantilla...", + "Search": "Buscar", + "Select template to preview": "Seleccionar plantilla para obtener una vista previa", + "Template actions": "Acciones de plantilla", + "Template name": "Nombre de plantilla", + "Template successfully saved": "Nombre de plantilla guardado correctamente", + "Template...": "Plantilla...", + "Templates": "Plantillas", + "The category is empty": "La categor\xeda est\xe1 vac\xeda", + "Uncategorized": "Sin categor\xeda" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/eu.js b/plugins/advtemplate/langs/eu.js new file mode 100644 index 00000000..7fc2a480 --- /dev/null +++ b/plugins/advtemplate/langs/eu.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("eu", { + "Actions": "Ekintzak", + "Are you sure you want to permanently delete the category and all its content?": "Ziur kategoria eta bertako eduki guztia ezabatu nahi duzula?", + "Are you sure you want to permanently delete the template?": "Ziur txantiloia betiko ezabatu nahi duzula?", + "Cancel": "Utzi", + "Category": "Kategoria", + "Category actions": "Kategoriaren ekintzak", + "Category name": "Kategoriaren izena", + "Choose category": "Aukeratu kategoria", + "Collapse": "Tolestu", + "Create category...": "Sortu kategoria\u2026", + "Delete": "Ezabatu", + "Delete all": "Ezabatu guztia", + "Expand": "Zabaldu", + "Filter templates": "Iragazi txantiloiak", + "Insert": "Txertatu", + "Insert template": "Txertatu txantiloia", + "Locked for editing": "Editatzeko blokeatuta", + "Move all items": "Eraman elementu guztiak", + "Move all items...": "Eraman elementu guztiak\u2026", + "Move to": "Eraman hona", + "Move to...": "Eraman hona\u2026", + "New category": "Kategoria berria", + "New template": "Txantiloi berria", + "OK": "Ados", + "Operation failed": "Eragiketak huts egin du", + "Rename category": "Aldatu kategoriaren izena", + "Rename template": "Aldatu txantiloiaren izena", + "Rename...": "Aldatu izena\u2026", + "Save": "Gorde", + "Save as template": "Gorde txantiloi gisa", + "Save as template...": "Gorde txantiloi gisa\u2026", + "Search": "Bilatu", + "Select template to preview": "Hautatu txantiloia aurreikusteko", + "Template actions": "Txantiloiaren ekintzak", + "Template name": "Txantiloiaren izena", + "Template successfully saved": "Gorde da txantiloia", + "Template...": "Txantiloia\u2026", + "Templates": "Txantiloiak", + "The category is empty": "Kategoria hutsik dago", + "Uncategorized": "Kategorizatu gabe" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/fa.js b/plugins/advtemplate/langs/fa.js new file mode 100644 index 00000000..ebc9faa2 --- /dev/null +++ b/plugins/advtemplate/langs/fa.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("fa", { + "Actions": "\u0627\u0642\u062f\u0627\u0645\u0627\u062a", + "Are you sure you want to permanently delete the category and all its content?": "\u0645\u0637\u0645\u0626\u0646\u06cc\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u06cc\u0646 \u062f\u0633\u062a\u0647 \u0648 \u0647\u0645\u0647 \u0645\u062d\u062a\u0648\u06cc\u0627\u062a \u0622\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u0645\u06cc\u0634\u0647 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f\u061f", + "Are you sure you want to permanently delete the template?": "\u0645\u0637\u0645\u0626\u0646\u06cc\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u06cc\u0646 \u0627\u0644\u06af\u0648 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u0645\u06cc\u0634\u0647 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f\u061f", + "Cancel": "\u0644\u063a\u0648", + "Category": "\u062f\u0633\u062a\u0647", + "Category actions": "\u0639\u0645\u0644\u06a9\u0631\u062f \u062f\u0633\u062a\u0647\u200c\u0628\u0646\u062f\u06cc", + "Category name": "\u0646\u0627\u0645 \u062f\u0633\u062a\u0647", + "Choose category": "\u0627\u0646\u062a\u062e\u0627\u0628 \u062f\u0633\u062a\u0647", + "Collapse": "\u062c\u0645\u0639 \u0634\u062f\u0646", + "Create category...": "\u0627\u06cc\u062c\u0627\u062f \u062f\u0633\u062a\u0647...", + "Delete": "\u062d\u0630\u0641", + "Delete all": "\u062d\u0630\u0641 \u0647\u0645\u0647", + "Expand": "\u0628\u0627\u0632 \u0634\u062f\u0646", + "Filter templates": "\u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u0641\u06cc\u0644\u062a\u0631", + "Insert": "\u062f\u0631\u062c", + "Insert template": "\u062f\u0631\u062c \u0627\u0644\u06af\u0648", + "Locked for editing": "\u0628\u0631\u0627\u06cc \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0642\u0641\u0644 \u0634\u062f\u0647", + "Move all items": "\u0627\u0646\u062a\u0642\u0627\u0644 \u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062f", + "Move all items...": "\u0627\u0646\u062a\u0642\u0627\u0644 \u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062f...", + "Move to": "\u0627\u0646\u062a\u0642\u0627\u0644 \u0628\u0647", + "Move to...": "\u0627\u0646\u062a\u0642\u0627\u0644 \u0628\u0647...", + "New category": "\u062f\u0633\u062a\u0647 \u062c\u062f\u06cc\u062f", + "New template": "\u0627\u0644\u06af\u0648\u06cc \u062c\u062f\u06cc\u062f", + "OK": "\u062a\u0623\u06cc\u06cc\u062f", + "Operation failed": "\u0639\u0645\u0644\u06cc\u0627\u062a \u0646\u0627\u0645\u0648\u0641\u0642 \u0628\u0648\u062f", + "Rename category": "\u062a\u063a\u06cc\u06cc\u0631 \u0646\u0627\u0645 \u062f\u0633\u062a\u0647", + "Rename template": "\u062a\u063a\u06cc\u06cc\u0631 \u0646\u0627\u0645 \u0627\u0644\u06af\u0648", + "Rename...": "\u062a\u063a\u06cc\u06cc\u0631 \u0646\u0627\u0645...", + "Save": "\u0630\u062e\u064a\u0631\u0647", + "Save as template": "\u0630\u062e\u06cc\u0631\u0647 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0627\u0644\u06af\u0648", + "Save as template...": "\u0630\u062e\u06cc\u0631\u0647 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0627\u0644\u06af\u0648...", + "Search": "\u062c\u0633\u062a\u062c\u0648", + "Select template to preview": "\u0627\u0646\u062a\u062e\u0627\u0628 \u0627\u0644\u06af\u0648 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0634\u200c\u0646\u0645\u0627\u06cc\u0634", + "Template actions": "\u0639\u0645\u0644\u06a9\u0631\u062f \u0642\u0627\u0644\u0628", + "Template name": "\u0646\u0627\u0645 \u0627\u0644\u06af\u0648", + "Template successfully saved": "\u0627\u0644\u06af\u0648 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0630\u062e\u06cc\u0631\u0647 \u0634\u062f", + "Template...": "\u0627\u0644\u06af\u0648...", + "Templates": "\u0627\u0644\u06af\u0648\u0647\u0627", + "The category is empty": "\u062f\u0633\u062a\u0647 \u062e\u0627\u0644\u06cc \u0627\u0633\u062a", + "Uncategorized": "\u062f\u0633\u062a\u0647\u200c\u0628\u0646\u062f\u06cc\u200c\u0646\u0634\u062f\u0647" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/fi.js b/plugins/advtemplate/langs/fi.js new file mode 100644 index 00000000..394662c2 --- /dev/null +++ b/plugins/advtemplate/langs/fi.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("fi", { + "Actions": "Toiminnot", + "Are you sure you want to permanently delete the category and all its content?": "Haluatko varmasti poistaa kategorian ja kaiken sen sis\xe4ll\xf6n pysyv\xe4sti?", + "Are you sure you want to permanently delete the template?": "Haluatko varmasti poistaa mallin pysyv\xe4sti?", + "Cancel": "Peruuta", + "Category": "Kategoria", + "Category actions": "Kategorian toiminnot", + "Category name": "Kategorian nimi", + "Choose category": "Valitse kategoria", + "Collapse": "Tiivist\xe4", + "Create category...": "Luo kategoria...", + "Delete": "Poista", + "Delete all": "Poista kaikki", + "Expand": "Laajenna", + "Filter templates": "Suodata malleja", + "Insert": "Lis\xe4\xe4", + "Insert template": "Lis\xe4\xe4 malli", + "Locked for editing": "Muokkaaminen lukittu", + "Move all items": "Siirr\xe4 kaikki kohteet", + "Move all items...": "Siirr\xe4 kaikki kohteet...", + "Move to": "Siirr\xe4 kohteeseen", + "Move to...": "Siirr\xe4 kohteeseen...", + "New category": "Uusi kategoria", + "New template": "Uusi malli", + "OK": "OK", + "Operation failed": "Toiminto ep\xe4onnistui", + "Rename category": "Nime\xe4 kategoria uudelleen", + "Rename template": "Nime\xe4 malli uudelleen", + "Rename...": "Nime\xe4 uudelleen...", + "Save": "Tallenna", + "Save as template": "Tallenna mallina", + "Save as template...": "Tallenna mallina...", + "Search": "Hae", + "Select template to preview": "Valitse esikatseltava malli", + "Template actions": "Mallin toiminnot", + "Template name": "Mallin nimi", + "Template successfully saved": "Malli tallennettiin onnistuneesti", + "Template...": "Malli...", + "Templates": "Mallit", + "The category is empty": "Kategoria on tyhj\xe4", + "Uncategorized": "Kategorisoimaton" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/fr-FR.js b/plugins/advtemplate/langs/fr-FR.js new file mode 100644 index 00000000..4ddda42e --- /dev/null +++ b/plugins/advtemplate/langs/fr-FR.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("fr-FR", { + "Actions": "Actions", + "Are you sure you want to permanently delete the category and all its content?": "Voulez-vous vraiment supprimer d\xe9finitivement la cat\xe9gorie et l'ensemble de son contenu\xa0?", + "Are you sure you want to permanently delete the template?": "Voulez-vous vraiment supprimer d\xe9finitivement le mod\xe8le\xa0?", + "Cancel": "Annuler", + "Category": "Cat\xe9gorie", + "Category actions": "Actions de cat\xe9gorie", + "Category name": "Nom de cat\xe9gorie", + "Choose category": "Choisir une cat\xe9gorie", + "Collapse": "R\xe9duire", + "Create category...": "Cr\xe9er une cat\xe9gorie...", + "Delete": "Supprimer", + "Delete all": "Tout supprimer", + "Expand": "D\xe9velopper", + "Filter templates": "Filtrer les mod\xe8les", + "Insert": "Ins\xe9rer", + "Insert template": "Ins\xe9rer un mod\xe8le", + "Locked for editing": "Verrouill\xe9 pour modification", + "Move all items": "D\xe9placer tous les \xe9l\xe9ments", + "Move all items...": "D\xe9placer tous les \xe9l\xe9ments...", + "Move to": "D\xe9placer vers", + "Move to...": "D\xe9placer vers...", + "New category": "Nouvelle cat\xe9gorie", + "New template": "Nouveau mod\xe8le", + "OK": "OK", + "Operation failed": "\xc9chec de l'op\xe9ration", + "Rename category": "Renommer la cat\xe9gorie", + "Rename template": "Renommer le mod\xe8le", + "Rename...": "Renommer...", + "Save": "Enregistrer", + "Save as template": "Enregistrer en tant que mod\xe8le", + "Save as template...": "Enregistrer en tant que mod\xe8le...", + "Search": "Rechercher", + "Select template to preview": "S\xe9lectionner un mod\xe8le \xe0 pr\xe9visualiser", + "Template actions": "Mod\xe8les d'actions", + "Template name": "Nom du mod\xe8le", + "Template successfully saved": "Mod\xe8le enregistr\xe9 avec succ\xe8s", + "Template...": "Mod\xe8le...", + "Templates": "Mod\xe8les", + "The category is empty": "La cat\xe9gorie est vide", + "Uncategorized": "Non cat\xe9goris\xe9" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/fr_FR.js b/plugins/advtemplate/langs/fr_FR.js new file mode 100644 index 00000000..abb7640a --- /dev/null +++ b/plugins/advtemplate/langs/fr_FR.js @@ -0,0 +1,50 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("fr-FR", { + "Actions": "Actions", + "Are you sure you want to permanently delete the category and all its content?": "Voulez-vous vraiment supprimer d\xe9finitivement la cat\xe9gorie et l'ensemble de son contenu\xa0?", + "Are you sure you want to permanently delete the template?": "Voulez-vous vraiment supprimer d\xe9finitivement le mod\xe8le\xa0?", + "Cancel": "Annuler", + "Category": "Cat\xe9gorie", + "Category actions": "Actions de cat\xe9gorie", + "Category name": "Nom de cat\xe9gorie", + "Choose category": "Choisir une cat\xe9gorie", + "Collapse": "R\xe9duire", + "Create category...": "Cr\xe9er une cat\xe9gorie...", + "Delete": "Supprimer", + "Delete all": "Tout supprimer", + "Expand": "D\xe9velopper", + "Filter templates": "Filtrer les mod\xe8les", + "Insert": "Ins\xe9rer", + "Insert template": "Ins\xe9rer un mod\xe8le", + "Locked for editing": "Verrouill\xe9 pour modification", + "Move all items": "D\xe9placer tous les \xe9l\xe9ments", + "Move all items...": "D\xe9placer tous les \xe9l\xe9ments...", + "Move to": "D\xe9placer vers", + "Move to...": "D\xe9placer vers...", + "New category": "Nouvelle cat\xe9gorie", + "New template": "Nouveau mod\xe8le", + "OK": "OK", + "Operation failed": "\xc9chec de l'op\xe9ration", + "Rename category": "Renommer la cat\xe9gorie", + "Rename template": "Renommer le mod\xe8le", + "Rename...": "Renommer...", + "Save": "Enregistrer", + "Save as template": "Enregistrer en tant que mod\xe8le", + "Save as template...": "Enregistrer en tant que mod\xe8le...", + "Search": "Rechercher", + "Select template to preview": "S\xe9lectionner un mod\xe8le \xe0 pr\xe9visualiser", + "Template actions": "Mod\xe8les d'actions", + "Template name": "Nom du mod\xe8le", + "Template successfully saved": "Mod\xe8le enregistr\xe9 avec succ\xe8s", + "Template...": "Mod\xe8le...", + "Templates": "Mod\xe8les", + "The category is empty": "La cat\xe9gorie est vide", + "Uncategorized": "Non cat\xe9goris\xe9" +}); + +console.warn('TinyMCE language code "fr_FR" is deprecated, please use "fr-FR" instead.'); \ No newline at end of file diff --git a/plugins/advtemplate/langs/he-IL.js b/plugins/advtemplate/langs/he-IL.js new file mode 100644 index 00000000..96bd346f --- /dev/null +++ b/plugins/advtemplate/langs/he-IL.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("he-IL", { + "Actions": "\u05e4\u05e2\u05d5\u05dc\u05d5\u05ea", + "Are you sure you want to permanently delete the category and all its content?": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05de\u05d7\u05d5\u05e7 \u05dc\u05d2\u05de\u05e8\u05d9 \u05d0\u05ea \u05d4\u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4 \u05e2\u05dd \u05db\u05dc \u05d4\u05ea\u05d5\u05db\u05df \u05e9\u05dc\u05d4?", + "Are you sure you want to permanently delete the template?": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05de\u05d7\u05d5\u05e7 \u05dc\u05d2\u05de\u05e8\u05d9 \u05d0\u05ea \u05d4\u05ea\u05d1\u05e0\u05d9\u05ea \u05d4\u05d6\u05d5?", + "Cancel": "\u05d1\u05d9\u05d8\u05d5\u05dc", + "Category": "\u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4", + "Category actions": "\u05e4\u05e2\u05d5\u05dc\u05d5\u05ea \u05d4\u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4", + "Category name": "\u05e9\u05dd \u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4", + "Choose category": "\u05d1\u05d7\u05e8 \u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4", + "Collapse": "\u05db\u05d5\u05d5\u05e5", + "Create category...": "\u05e6\u05d5\u05e8 \u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4", + "Delete": "\u05de\u05d7\u05e7", + "Delete all": "\u05de\u05d7\u05e7 \u05d4\u05db\u05dc", + "Expand": "\u05d4\u05e8\u05d7\u05d1", + "Filter templates": "\u05e1\u05e0\u05df \u05ea\u05d1\u05e0\u05d9\u05d5\u05ea", + "Insert": "\u05d4\u05d5\u05e1\u05e3", + "Insert template": "\u05d4\u05db\u05e0\u05e1 \u05ea\u05d1\u05e0\u05d9\u05ea", + "Locked for editing": "\u05e0\u05e2\u05d5\u05dc\u05d4 \u05dc\u05e2\u05e8\u05d9\u05db\u05d4", + "Move all items": "\u05d4\u05d6\u05d6 \u05d0\u05ea \u05db\u05dc \u05d4\u05e4\u05e8\u05d9\u05d8\u05d9\u05dd", + "Move all items...": "\u05d4\u05d6\u05d6 \u05d0\u05ea \u05db\u05dc \u05d4\u05e4\u05e8\u05d9\u05d8\u05d9\u05dd...", + "Move to": "\u05d4\u05e2\u05d1\u05e8 \u05d0\u05dc", + "Move to...": "\u05d4\u05e2\u05d1\u05e8 \u05d0\u05dc...", + "New category": "\u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4 \u05d7\u05d3\u05e9\u05d4", + "New template": "\u05ea\u05d1\u05e0\u05d9\u05ea \u05d7\u05d3\u05e9\u05d4", + "OK": "\u05d0\u05d9\u05e9\u05d5\u05e8", + "Operation failed": "\u05d4\u05e4\u05e2\u05d5\u05dc\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4", + "Rename category": "\u05e9\u05e0\u05d4 \u05e9\u05dd \u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4", + "Rename template": "\u05e9\u05e0\u05d4 \u05e9\u05dd \u05ea\u05d1\u05e0\u05d9\u05ea", + "Rename...": "\u05e9\u05e0\u05d4 \u05e9\u05dd...", + "Save": "\u05e9\u05de\u05d5\u05e8", + "Save as template": "\u05e9\u05de\u05d5\u05e8 \u05db\u05ea\u05d1\u05e0\u05d9\u05ea", + "Save as template...": "\u05e9\u05de\u05d5\u05e8 \u05db\u05ea\u05d1\u05e0\u05d9\u05ea...", + "Search": "\u05d7\u05e4\u05e9", + "Select template to preview": "\u05d1\u05d7\u05e8 \u05ea\u05d1\u05e0\u05d9\u05ea \u05dc\u05ea\u05e6\u05d5\u05d2\u05d4 \u05de\u05e7\u05d3\u05d9\u05de\u05d4", + "Template actions": "\u05e4\u05e2\u05d5\u05dc\u05d5\u05ea \u05d4\u05ea\u05d1\u05e0\u05d9\u05ea", + "Template name": "\u05e9\u05dd \u05ea\u05d1\u05e0\u05d9\u05ea", + "Template successfully saved": "\u05d4\u05ea\u05d1\u05e0\u05d9\u05ea \u05e0\u05e9\u05de\u05e8\u05d4 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4", + "Template...": "\u05ea\u05d1\u05e0\u05d9\u05ea...", + "Templates": "\u05ea\u05d1\u05e0\u05d9\u05d5\u05ea", + "The category is empty": "\u05d4\u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4 \u05e8\u05d9\u05e7\u05d4", + "Uncategorized": "\u05dc\u05dc\u05d0 \u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/he_IL.js b/plugins/advtemplate/langs/he_IL.js new file mode 100644 index 00000000..04b6539f --- /dev/null +++ b/plugins/advtemplate/langs/he_IL.js @@ -0,0 +1,50 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("he-IL", { + "Actions": "\u05e4\u05e2\u05d5\u05dc\u05d5\u05ea", + "Are you sure you want to permanently delete the category and all its content?": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05de\u05d7\u05d5\u05e7 \u05dc\u05d2\u05de\u05e8\u05d9 \u05d0\u05ea \u05d4\u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4 \u05e2\u05dd \u05db\u05dc \u05d4\u05ea\u05d5\u05db\u05df \u05e9\u05dc\u05d4?", + "Are you sure you want to permanently delete the template?": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05de\u05d7\u05d5\u05e7 \u05dc\u05d2\u05de\u05e8\u05d9 \u05d0\u05ea \u05d4\u05ea\u05d1\u05e0\u05d9\u05ea \u05d4\u05d6\u05d5?", + "Cancel": "\u05d1\u05d9\u05d8\u05d5\u05dc", + "Category": "\u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4", + "Category actions": "\u05e4\u05e2\u05d5\u05dc\u05d5\u05ea \u05d4\u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4", + "Category name": "\u05e9\u05dd \u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4", + "Choose category": "\u05d1\u05d7\u05e8 \u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4", + "Collapse": "\u05db\u05d5\u05d5\u05e5", + "Create category...": "\u05e6\u05d5\u05e8 \u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4", + "Delete": "\u05de\u05d7\u05e7", + "Delete all": "\u05de\u05d7\u05e7 \u05d4\u05db\u05dc", + "Expand": "\u05d4\u05e8\u05d7\u05d1", + "Filter templates": "\u05e1\u05e0\u05df \u05ea\u05d1\u05e0\u05d9\u05d5\u05ea", + "Insert": "\u05d4\u05d5\u05e1\u05e3", + "Insert template": "\u05d4\u05db\u05e0\u05e1 \u05ea\u05d1\u05e0\u05d9\u05ea", + "Locked for editing": "\u05e0\u05e2\u05d5\u05dc\u05d4 \u05dc\u05e2\u05e8\u05d9\u05db\u05d4", + "Move all items": "\u05d4\u05d6\u05d6 \u05d0\u05ea \u05db\u05dc \u05d4\u05e4\u05e8\u05d9\u05d8\u05d9\u05dd", + "Move all items...": "\u05d4\u05d6\u05d6 \u05d0\u05ea \u05db\u05dc \u05d4\u05e4\u05e8\u05d9\u05d8\u05d9\u05dd...", + "Move to": "\u05d4\u05e2\u05d1\u05e8 \u05d0\u05dc", + "Move to...": "\u05d4\u05e2\u05d1\u05e8 \u05d0\u05dc...", + "New category": "\u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4 \u05d7\u05d3\u05e9\u05d4", + "New template": "\u05ea\u05d1\u05e0\u05d9\u05ea \u05d7\u05d3\u05e9\u05d4", + "OK": "\u05d0\u05d9\u05e9\u05d5\u05e8", + "Operation failed": "\u05d4\u05e4\u05e2\u05d5\u05dc\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4", + "Rename category": "\u05e9\u05e0\u05d4 \u05e9\u05dd \u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4", + "Rename template": "\u05e9\u05e0\u05d4 \u05e9\u05dd \u05ea\u05d1\u05e0\u05d9\u05ea", + "Rename...": "\u05e9\u05e0\u05d4 \u05e9\u05dd...", + "Save": "\u05e9\u05de\u05d5\u05e8", + "Save as template": "\u05e9\u05de\u05d5\u05e8 \u05db\u05ea\u05d1\u05e0\u05d9\u05ea", + "Save as template...": "\u05e9\u05de\u05d5\u05e8 \u05db\u05ea\u05d1\u05e0\u05d9\u05ea...", + "Search": "\u05d7\u05e4\u05e9", + "Select template to preview": "\u05d1\u05d7\u05e8 \u05ea\u05d1\u05e0\u05d9\u05ea \u05dc\u05ea\u05e6\u05d5\u05d2\u05d4 \u05de\u05e7\u05d3\u05d9\u05de\u05d4", + "Template actions": "\u05e4\u05e2\u05d5\u05dc\u05d5\u05ea \u05d4\u05ea\u05d1\u05e0\u05d9\u05ea", + "Template name": "\u05e9\u05dd \u05ea\u05d1\u05e0\u05d9\u05ea", + "Template successfully saved": "\u05d4\u05ea\u05d1\u05e0\u05d9\u05ea \u05e0\u05e9\u05de\u05e8\u05d4 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4", + "Template...": "\u05ea\u05d1\u05e0\u05d9\u05ea...", + "Templates": "\u05ea\u05d1\u05e0\u05d9\u05d5\u05ea", + "The category is empty": "\u05d4\u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4 \u05e8\u05d9\u05e7\u05d4", + "Uncategorized": "\u05dc\u05dc\u05d0 \u05e7\u05d8\u05d2\u05d5\u05e8\u05d9\u05d4" +}); + +console.warn('TinyMCE language code "he_IL" is deprecated, please use "he-IL" instead.'); \ No newline at end of file diff --git a/plugins/advtemplate/langs/hi.js b/plugins/advtemplate/langs/hi.js new file mode 100644 index 00000000..11f7ce92 --- /dev/null +++ b/plugins/advtemplate/langs/hi.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("hi", { + "Actions": "\u0915\u093e\u0930\u094d\u092f", + "Are you sure you want to permanently delete the category and all its content?": "\u0915\u094d\u092f\u093e \u0906\u092a \u0935\u093e\u0915\u0908 \u0936\u094d\u0930\u0947\u0923\u0940 \u0914\u0930 \u0909\u0938\u0915\u0940 \u0938\u092d\u0940 \u0938\u093e\u092e\u0917\u094d\u0930\u0940 \u0915\u094b \u0938\u094d\u0925\u093e\u092f\u0940 \u0930\u0942\u092a \u0938\u0947 \u0939\u091f\u093e\u0928\u093e \u091a\u093e\u0939\u0924\u0947 \u0939\u0948\u0902?", + "Are you sure you want to permanently delete the template?": "\u0915\u094d\u092f\u093e \u0906\u092a \u0935\u093e\u0915\u0908 \u091f\u0947\u092e\u094d\u092a\u0932\u0947\u091f \u0915\u094b \u0938\u094d\u0925\u093e\u092f\u0940 \u0930\u0942\u092a \u0938\u0947 \u0939\u091f\u093e\u0928\u093e \u091a\u093e\u0939\u0924\u0947 \u0939\u0948\u0902?", + "Cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u0947\u0902", + "Category": "\u0936\u094d\u0930\u0947\u0923\u0940", + "Category actions": "\u0915\u0948\u091f\u0947\u0917\u0930\u0940 \u0915\u094d\u0930\u093f\u092f\u093e\u090f\u0902", + "Category name": "\u0936\u094d\u0930\u0947\u0923\u0940 \u0915\u093e \u0928\u093e\u092e", + "Choose category": "\u0936\u094d\u0930\u0947\u0923\u0940 \u091a\u0941\u0928\u0947\u0902", + "Collapse": "\u0938\u0902\u0915\u094d\u0937\u093f\u092a\u094d\u0924 \u0915\u0930\u0947\u0902", + "Create category...": "\u0936\u094d\u0930\u0947\u0923\u0940 \u092c\u0928\u093e\u090f\u0902...", + "Delete": "\u0939\u091f\u093e\u090f\u0902", + "Delete all": "\u0938\u092d\u0940 \u0939\u091f\u093e\u090f\u0902", + "Expand": "\u0935\u093f\u0938\u094d\u0924\u0943\u0924 \u0915\u0930\u0947\u0902", + "Filter templates": "\u091f\u0947\u092e\u094d\u092a\u0932\u0947\u091f \u092b\u093c\u093f\u0932\u094d\u091f\u0930 \u0915\u0930\u0947\u0902", + "Insert": "\u0921\u093e\u0932\u0947\u0902", + "Insert template": "\u091f\u0947\u092e\u094d\u092a\u0932\u0947\u091f \u0921\u093e\u0932\u0947\u0902", + "Locked for editing": "\u0938\u0902\u092a\u093e\u0926\u0928 \u0915\u0947 \u0932\u093f\u090f \u0932\u0949\u0915 \u0915\u093f\u092f\u093e \u0917\u092f\u093e", + "Move all items": "\u0938\u092d\u0940 \u0906\u0907\u091f\u092e \u0932\u0947 \u091c\u093e\u090f\u0902", + "Move all items...": "\u0938\u092d\u0940 \u0906\u0907\u091f\u092e \u0932\u0947 \u091c\u093e\u090f\u0902...", + "Move to": "\u092f\u0939\u093e\u0902 \u0932\u0947 \u091c\u093e\u090f\u0902", + "Move to...": "\u092f\u0939\u093e\u0902 \u0932\u0947 \u091c\u093e\u090f\u0902...", + "New category": "\u0928\u0908 \u0936\u094d\u0930\u0947\u0923\u0940", + "New template": "\u0928\u092f\u093e \u091f\u0947\u092e\u094d\u092a\u0932\u0947\u091f", + "OK": "\u0920\u0940\u0915", + "Operation failed": "\u0911\u092a\u0930\u0947\u0936\u0928 \u0935\u093f\u092b\u0932 \u0930\u0939\u093e", + "Rename category": "\u0936\u094d\u0930\u0947\u0923\u0940 \u0915\u093e \u0928\u093e\u092e \u092c\u0926\u0932\u0947\u0902", + "Rename template": "\u091f\u0947\u092e\u094d\u092a\u0932\u0947\u091f \u0915\u093e \u0928\u093e\u092e \u092c\u0926\u0932\u0947\u0902", + "Rename...": "\u0928\u093e\u092e \u092c\u0926\u0932\u0947\u0902...", + "Save": "\u0938\u0939\u0947\u091c\u0947\u0902", + "Save as template": "\u091f\u0947\u092e\u094d\u092a\u0932\u0947\u091f \u0915\u0947 \u0930\u0942\u092a \u092e\u0947\u0902 \u0938\u0939\u0947\u091c\u0947\u0902", + "Save as template...": "\u091f\u0947\u092e\u094d\u092a\u0932\u0947\u091f \u0915\u0947 \u0930\u0942\u092a \u092e\u0947\u0902 \u0938\u0939\u0947\u091c\u0947\u0902...", + "Search": "\u0916\u094b\u091c\u0947\u0902", + "Select template to preview": "\u092a\u0942\u0930\u094d\u0935\u093e\u0935\u0932\u094b\u0915\u0928 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u091f\u0947\u092e\u094d\u092a\u0932\u0947\u091f \u0915\u093e \u091a\u092f\u0928 \u0915\u0930\u0947\u0902", + "Template actions": "\u091f\u0947\u092e\u094d\u092a\u094d\u0932\u0947\u091f \u0915\u094d\u0930\u093f\u092f\u093e\u090f\u0902", + "Template name": "\u091f\u0947\u092e\u094d\u092a\u0932\u0947\u091f \u0915\u093e \u0928\u093e\u092e", + "Template successfully saved": "\u091f\u0947\u092e\u094d\u200d\u092a\u0932\u0947\u091f \u0938\u092b\u0932\u0924\u093e\u092a\u0942\u0930\u094d\u0935\u0915 \u0938\u0939\u0947\u091c\u093e \u0917\u092f\u093e", + "Template...": "\u091f\u0947\u092e\u094d\u092a\u0932\u0947\u091f...", + "Templates": "\u091f\u0947\u092e\u094d\u092a\u0932\u0947\u091f", + "The category is empty": "\u0936\u094d\u0930\u0947\u0923\u0940 \u0916\u093e\u0932\u0940 \u0939\u0948", + "Uncategorized": "\u0936\u094d\u0930\u0947\u0923\u0940\u0930\u0939\u093f\u0924" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/hr.js b/plugins/advtemplate/langs/hr.js new file mode 100644 index 00000000..c6da661b --- /dev/null +++ b/plugins/advtemplate/langs/hr.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("hr", { + "Actions": "Radnje", + "Are you sure you want to permanently delete the category and all its content?": "Jeste li sigurni da \u017eelite trajno izbrisati tu kategoriju i sav njezin sadr\u017eaj?", + "Are you sure you want to permanently delete the template?": "Jeste li sigurni da \u017eelite trajno izbrisati taj predlo\u017eak?", + "Cancel": "Odustani", + "Category": "Kategorija", + "Category actions": "Radnje u kategoriji", + "Category name": "Naziv kategorije", + "Choose category": "Odaberite kategoriju", + "Collapse": "Sa\u017emi", + "Create category...": "Izrada kategorije...", + "Delete": "Izbri\u0161i", + "Delete all": "Izbri\u0161i sve", + "Expand": "Pro\u0161iri", + "Filter templates": "Filtriraj predlo\u0161ke", + "Insert": "Umetni", + "Insert template": "Umetni predlo\u017eak", + "Locked for editing": "Zaklju\u010dano za ure\u0111ivanje", + "Move all items": "Premjesti sve stavke", + "Move all items...": "Premjesti sve stavke...", + "Move to": "Premjesti u", + "Move to...": "Premjesti u...", + "New category": "Nova kategorija", + "New template": "Novi predlo\u017eak", + "OK": "U redu", + "Operation failed": "Radnja nije uspjela", + "Rename category": "Promijeni naziv kategorije", + "Rename template": "Promijeni naziv predlo\u0161ka", + "Rename...": "Promjena naziva...", + "Save": "Spremi", + "Save as template": "Spremi kao predlo\u017eak", + "Save as template...": "Spremi kao predlo\u017eak...", + "Search": "Tra\u017ei", + "Select template to preview": "Odaberite predlo\u017eak za pretpregled", + "Template actions": "Radnje na predlo\u0161ku", + "Template name": "Naziv predlo\u0161ka", + "Template successfully saved": "Predlo\u017eak je uspje\u0161no spremljen", + "Template...": "Predlo\u017eak...", + "Templates": "Predlo\u0161ci", + "The category is empty": "Kategorija je prazna", + "Uncategorized": "Nekategorizirano" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/hu-HU.js b/plugins/advtemplate/langs/hu-HU.js new file mode 100644 index 00000000..b35e937f --- /dev/null +++ b/plugins/advtemplate/langs/hu-HU.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("hu-HU", { + "Actions": "M\u0171veletek", + "Are you sure you want to permanently delete the category and all its content?": "Biztosan szeretn\xe9 v\xe9glegesen t\xf6r\xf6lni a kateg\xf3ri\xe1t \xe9s teljes tartalm\xe1t?", + "Are you sure you want to permanently delete the template?": "Biztosan szeretn\xe9 v\xe9glegesen t\xf6r\xf6lni a sablont?", + "Cancel": "M\xe9gse", + "Category": "Kateg\xf3ria", + "Category actions": "Kateg\xf3riam\u0171veletek", + "Category name": "Kateg\xf3ria neve", + "Choose category": "V\xe1lasszon kateg\xf3ri\xe1t", + "Collapse": "\xd6sszecsuk\xe1s", + "Create category...": "Kateg\xf3ria l\xe9trehoz\xe1sa...", + "Delete": "T\xf6rl\xe9s", + "Delete all": "\xd6sszes t\xf6rl\xe9se", + "Expand": "Kibont\xe1s", + "Filter templates": "Sablonok sz\u0171r\xe9se", + "Insert": "Besz\xfar\xe1s", + "Insert template": "Sablon besz\xfar\xe1sa", + "Locked for editing": "Szerkeszt\xe9shez z\xe1rolva", + "Move all items": "\xd6sszes elem \xe1thelyez\xe9se", + "Move all items...": "\xd6sszes elem \xe1thelyez\xe9se...", + "Move to": "\xc1thelyez\xe9s ide", + "Move to...": "\xc1thelyez\xe9s ide...", + "New category": "\xdaj kateg\xf3ria", + "New template": "\xdaj sablon", + "OK": "OK", + "Operation failed": "A m\u0171velet sikertelen volt", + "Rename category": "Kateg\xf3ria \xe1tnevez\xe9se", + "Rename template": "Sablon \xe1tnevez\xe9se", + "Rename...": "\xc1tnevez\xe9s...", + "Save": "Ment\xe9s", + "Save as template": "Ment\xe9s sablonk\xe9nt", + "Save as template...": "Ment\xe9s sablonk\xe9nt...", + "Search": "Keres\xe9s", + "Select template to preview": "V\xe1lasszon sablont az el\u0151n\xe9zet megtekint\xe9s\xe9hez", + "Template actions": "Sablonm\u0171veletek", + "Template name": "Sablon neve", + "Template successfully saved": "Sablon sikeresen mentve", + "Template...": "Sablon...", + "Templates": "Sablonok", + "The category is empty": "A kateg\xf3ria \xfcres", + "Uncategorized": "Nem kategoriz\xe1lt" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/hu_HU.js b/plugins/advtemplate/langs/hu_HU.js new file mode 100644 index 00000000..5f19b169 --- /dev/null +++ b/plugins/advtemplate/langs/hu_HU.js @@ -0,0 +1,50 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("hu-HU", { + "Actions": "M\u0171veletek", + "Are you sure you want to permanently delete the category and all its content?": "Biztosan szeretn\xe9 v\xe9glegesen t\xf6r\xf6lni a kateg\xf3ri\xe1t \xe9s teljes tartalm\xe1t?", + "Are you sure you want to permanently delete the template?": "Biztosan szeretn\xe9 v\xe9glegesen t\xf6r\xf6lni a sablont?", + "Cancel": "M\xe9gse", + "Category": "Kateg\xf3ria", + "Category actions": "Kateg\xf3riam\u0171veletek", + "Category name": "Kateg\xf3ria neve", + "Choose category": "V\xe1lasszon kateg\xf3ri\xe1t", + "Collapse": "\xd6sszecsuk\xe1s", + "Create category...": "Kateg\xf3ria l\xe9trehoz\xe1sa...", + "Delete": "T\xf6rl\xe9s", + "Delete all": "\xd6sszes t\xf6rl\xe9se", + "Expand": "Kibont\xe1s", + "Filter templates": "Sablonok sz\u0171r\xe9se", + "Insert": "Besz\xfar\xe1s", + "Insert template": "Sablon besz\xfar\xe1sa", + "Locked for editing": "Szerkeszt\xe9shez z\xe1rolva", + "Move all items": "\xd6sszes elem \xe1thelyez\xe9se", + "Move all items...": "\xd6sszes elem \xe1thelyez\xe9se...", + "Move to": "\xc1thelyez\xe9s ide", + "Move to...": "\xc1thelyez\xe9s ide...", + "New category": "\xdaj kateg\xf3ria", + "New template": "\xdaj sablon", + "OK": "OK", + "Operation failed": "A m\u0171velet sikertelen volt", + "Rename category": "Kateg\xf3ria \xe1tnevez\xe9se", + "Rename template": "Sablon \xe1tnevez\xe9se", + "Rename...": "\xc1tnevez\xe9s...", + "Save": "Ment\xe9s", + "Save as template": "Ment\xe9s sablonk\xe9nt", + "Save as template...": "Ment\xe9s sablonk\xe9nt...", + "Search": "Keres\xe9s", + "Select template to preview": "V\xe1lasszon sablont az el\u0151n\xe9zet megtekint\xe9s\xe9hez", + "Template actions": "Sablonm\u0171veletek", + "Template name": "Sablon neve", + "Template successfully saved": "Sablon sikeresen mentve", + "Template...": "Sablon...", + "Templates": "Sablonok", + "The category is empty": "A kateg\xf3ria \xfcres", + "Uncategorized": "Nem kategoriz\xe1lt" +}); + +console.warn('TinyMCE language code "hu_HU" is deprecated, please use "hu-HU" instead.'); \ No newline at end of file diff --git a/plugins/advtemplate/langs/id.js b/plugins/advtemplate/langs/id.js new file mode 100644 index 00000000..027743c4 --- /dev/null +++ b/plugins/advtemplate/langs/id.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("id", { + "Actions": "Tindakan", + "Are you sure you want to permanently delete the category and all its content?": "Anda yakin ingin menghapus kategori tersebut beserta semua isinya secara permanen?", + "Are you sure you want to permanently delete the template?": "Anda yakin ingin menghapus templat tersebut secara permanen?", + "Cancel": "Batal", + "Category": "Kategori", + "Category actions": "Tindakan kategori", + "Category name": "Nama kategori", + "Choose category": "Pilih kategori", + "Collapse": "Ciutkan", + "Create category...": "Buat kategori...", + "Delete": "Hapus", + "Delete all": "Hapus semua", + "Expand": "Perluas", + "Filter templates": "Filter templat", + "Insert": "Masukkan", + "Insert template": "Masukkan templat", + "Locked for editing": "Terkunci untuk pengeditan", + "Move all items": "Pindahkan semua item", + "Move all items...": "Pindahkan semua item...", + "Move to": "Pindahkan ke", + "Move to...": "Pindahkan ke...", + "New category": "Kategori baru", + "New template": "Templat baru", + "OK": "OK", + "Operation failed": "Operasi gagal", + "Rename category": "Ganti nama kategori", + "Rename template": "Ganti nama templat", + "Rename...": "Ganti nama...", + "Save": "Simpan", + "Save as template": "Simpan sebagai templat", + "Save as template...": "Simpan sebagai templat...", + "Search": "Cari", + "Select template to preview": "Pilih templat untuk melihat pratinjau", + "Template actions": "Tindakan templat", + "Template name": "Nama templat", + "Template successfully saved": "Templat berhasil disimpan", + "Template...": "Templat...", + "Templates": "Templat", + "The category is empty": "Kategori masih kosong", + "Uncategorized": "Tidak dikategorikan" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/it.js b/plugins/advtemplate/langs/it.js new file mode 100644 index 00000000..de2ea08b --- /dev/null +++ b/plugins/advtemplate/langs/it.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("it", { + "Actions": "Azioni", + "Are you sure you want to permanently delete the category and all its content?": "Eliminare definitivamente la categoria e tutto il relativo contenuto?", + "Are you sure you want to permanently delete the template?": "Eliminare definitivamente il modello?", + "Cancel": "Annulla", + "Category": "Categoria", + "Category actions": "Categorie azioni", + "Category name": "Nome categoria", + "Choose category": "Scegli categoria", + "Collapse": "Comprimi", + "Create category...": "Crea categoria...", + "Delete": "Elimina", + "Delete all": "Elimina tutto", + "Expand": "Espandi", + "Filter templates": "Filtra modelli", + "Insert": "Inserisci", + "Insert template": "Inserisci modello", + "Locked for editing": "Modifica non possibile", + "Move all items": "Sposta tutti gli elementi", + "Move all items...": "Sposta tutti gli elementi...", + "Move to": "Sposta in", + "Move to...": "Sposta in...", + "New category": "Nuova categoria", + "New template": "Nuovo modello", + "OK": "OK", + "Operation failed": "Operazione non riuscita", + "Rename category": "Rinomina categoria", + "Rename template": "Rinomina modello", + "Rename...": "Rinomina...", + "Save": "Salva", + "Save as template": "Salva come modello", + "Save as template...": "Salva come modello...", + "Search": "Cerca", + "Select template to preview": "Seleziona modello da visualizzare in anteprima", + "Template actions": "Azioni modello", + "Template name": "Nome modello", + "Template successfully saved": "Salvataggio del modello completato", + "Template...": "Modello...", + "Templates": "Modelli", + "The category is empty": "La categoria \xe8 vuota", + "Uncategorized": "Senza categoria" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/ja.js b/plugins/advtemplate/langs/ja.js new file mode 100644 index 00000000..d2d8e1c0 --- /dev/null +++ b/plugins/advtemplate/langs/ja.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ja", { + "Actions": "\u30a2\u30af\u30b7\u30e7\u30f3", + "Are you sure you want to permanently delete the category and all its content?": "\u5206\u985e\u3068\u305d\u306e\u5185\u5bb9\u3092\u5b8c\u5168\u306b\u524a\u9664\u3057\u307e\u3059\u304b\uff1f", + "Are you sure you want to permanently delete the template?": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u5b8c\u5168\u306b\u524a\u9664\u3057\u307e\u3059\u304b\uff1f", + "Cancel": "\u30ad\u30e3\u30f3\u30bb\u30eb", + "Category": "\u5206\u985e", + "Category actions": "\u30ab\u30c6\u30b4\u30ea\u30fc\u306e\u64cd\u4f5c", + "Category name": "\u5206\u985e\u540d", + "Choose category": "\u5206\u985e\u306e\u9078\u629e", + "Collapse": "\u6298\u308a\u305f\u305f\u3080", + "Create category...": "\u5206\u985e\u306e\u4f5c\u6210...", + "Delete": "\u524a\u9664", + "Delete all": "\u3059\u3079\u3066\u524a\u9664", + "Expand": "\u5c55\u958b", + "Filter templates": "\u30d5\u30a3\u30eb\u30bf\u30fc \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8", + "Insert": "\u633f\u5165", + "Insert template": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u633f\u5165", + "Locked for editing": "\u7de8\u96c6\u30ed\u30c3\u30af\u4e2d", + "Move all items": "\u3059\u3079\u3066\u306e\u30a2\u30a4\u30c6\u30e0\u3092\u524a\u9664", + "Move all items...": "\u3059\u3079\u3066\u306e\u30a2\u30a4\u30c6\u30e0\u3092\u524a\u9664...", + "Move to": "\u79fb\u52d5", + "Move to...": "\u79fb\u52d5...", + "New category": "\u65b0\u3057\u3044\u5206\u985e", + "New template": "\u65b0\u3057\u3044\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8", + "OK": "OK", + "Operation failed": "\u64cd\u4f5c\u304c\u5931\u6557\u3057\u307e\u3057\u305f", + "Rename category": "\u5206\u985e\u306e\u540d\u524d\u306e\u5909\u66f4", + "Rename template": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u540d\u524d\u306e\u5909\u66f4", + "Rename...": "\u540d\u524d\u306e\u5909\u66f4...", + "Save": "\u4fdd\u5b58", + "Save as template": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3068\u3057\u3066\u4fdd\u5b58", + "Save as template...": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3068\u3057\u3066\u4fdd\u5b58...", + "Search": "\u691c\u7d22", + "Select template to preview": "\u30d7\u30ec\u30d3\u30e5\u30fc\u3059\u308b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u9078\u629e", + "Template actions": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u64cd\u4f5c", + "Template name": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u540d", + "Template successfully saved": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u304c\u6b63\u5e38\u306b\u4fdd\u5b58\u3055\u308c\u307e\u3057\u305f", + "Template...": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8...", + "Templates": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8", + "The category is empty": "\u5206\u985e\u304c\u7a7a\u3067\u3059", + "Uncategorized": "\u672a\u5206\u985e" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/kk.js b/plugins/advtemplate/langs/kk.js new file mode 100644 index 00000000..8b731585 --- /dev/null +++ b/plugins/advtemplate/langs/kk.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("kk", { + "Actions": "\u04d8\u0440\u0435\u043a\u0435\u0442\u0442\u0435\u0440", + "Are you sure you want to permanently delete the category and all its content?": "\u0421\u0430\u043d\u0430\u0442 \u043f\u0435\u043d \u043e\u043d\u044b\u04a3 \u0431\u0430\u0440\u043b\u044b\u049b \u043c\u0430\u0437\u043c\u04b1\u043d\u044b\u043d \u0431\u0456\u0440\u0436\u043e\u043b\u0430 \u0436\u043e\u044e \u043a\u0435\u0440\u0435\u043a \u043f\u0435?", + "Are you sure you want to permanently delete the template?": "\u04ae\u043b\u0433\u0456\u043d\u0456 \u0431\u0456\u0440\u0436\u043e\u043b\u0430 \u0436\u043e\u044e \u043a\u0435\u0440\u0435\u043a \u043f\u0435?", + "Cancel": "\u0411\u043e\u043b\u0434\u044b\u0440\u043c\u0430\u0443", + "Category": "\u0421\u0430\u043d\u0430\u0442", + "Category actions": "\u0421\u0430\u043d\u0430\u0442 \u04d9\u0440\u0435\u043a\u0435\u0442\u0442\u0435\u0440\u0456", + "Category name": "\u0421\u0430\u043d\u0430\u0442 \u0430\u0442\u044b", + "Choose category": "\u0421\u0430\u043d\u0430\u0442\u0442\u044b \u0442\u0430\u04a3\u0434\u0430\u0443", + "Collapse": "\u0416\u0438\u044e", + "Create category...": "\u0421\u0430\u043d\u0430\u0442 \u0436\u0430\u0441\u0430\u0443", + "Delete": "\u0416\u043e\u044e", + "Delete all": "\u0411\u0430\u0440\u043b\u044b\u0493\u044b\u043d \u0436\u043e\u044e", + "Expand": "\u0416\u0430\u044e", + "Filter templates": "\u04ae\u043b\u0433\u0456\u043b\u0435\u0440\u0434\u0456 \u0441\u04af\u0437\u0433\u0456\u043b\u0435\u0443", + "Insert": "\u0415\u043d\u0433\u0456\u0437\u0443", + "Insert template": "\u04ae\u043b\u0433\u0456\u043d\u0456 \u0435\u043d\u0433\u0456\u0437\u0443", + "Locked for editing": "\u04e8\u04a3\u0434\u0435\u0443 \u049b\u04b1\u043b\u044b\u043f\u0442\u0430\u043b\u0493\u0430\u043d", + "Move all items": "\u0411\u0430\u0440\u043b\u044b\u049b \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0442\u0456 \u0436\u044b\u043b\u0436\u044b\u0442\u0443", + "Move all items...": "\u0411\u0430\u0440\u043b\u044b\u049b \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0442\u0456 \u0436\u044b\u043b\u0436\u044b\u0442\u0443...", + "Move to": "\u0416\u044b\u043b\u0436\u044b\u0442\u0443 \u043e\u0440\u043d\u044b", + "Move to...": "\u0416\u044b\u043b\u0436\u044b\u0442\u0443 \u043e\u0440\u043d\u044b...", + "New category": "\u0416\u0430\u04a3\u0430 \u0441\u0430\u043d\u0430\u0442", + "New template": "\u0416\u0430\u04a3\u0430 \u04af\u043b\u0433\u0456", + "OK": "\u041e\u041a", + "Operation failed": "\u0416\u04b1\u043c\u044b\u0441 \u0441\u04d9\u0442\u0441\u0456\u0437 \u0431\u043e\u043b\u0434\u044b", + "Rename category": "\u0421\u0430\u043d\u0430\u0442\u0442\u044b \u049b\u0430\u0439\u0442\u0430 \u0430\u0442\u0430\u0443", + "Rename template": "\u04ae\u043b\u0433\u0456\u043d\u0456 \u049b\u0430\u0439\u0442\u0430 \u0430\u0442\u0430\u0443", + "Rename...": "\u049a\u0430\u0439\u0442\u0430 \u0430\u0442\u0430\u0443...", + "Save": "\u0421\u0430\u049b\u0442\u0430\u0443", + "Save as template": "\u04ae\u043b\u0433\u0456 \u0440\u0435\u0442\u0456\u043d\u0434\u0435 \u0441\u0430\u049b\u0442\u0430\u0443", + "Save as template...": "\u04ae\u043b\u0433\u0456 \u0440\u0435\u0442\u0456\u043d\u0434\u0435 \u0441\u0430\u049b\u0442\u0430\u0443...", + "Search": "\u0406\u0437\u0434\u0435\u0443", + "Select template to preview": "\u0410\u043b\u0434\u044b\u043d \u0430\u043b\u0430 \u049b\u0430\u0440\u0430\u0439\u0442\u044b\u043d \u04af\u043b\u0433\u0456\u043d\u0456 \u0442\u0430\u04a3\u0434\u0430\u0443", + "Template actions": "\u04ae\u043b\u0433\u0456 \u04d9\u0440\u0435\u043a\u0435\u0442\u0442\u0435\u0440", + "Template name": "\u04ae\u043b\u0433\u0456\u043d\u0456\u04a3 \u0430\u0442\u044b", + "Template successfully saved": "\u04ae\u043b\u0433\u0456 \u0441\u04d9\u0442\u0442\u0456 \u0441\u0430\u049b\u0442\u0430\u043b\u0434\u044b", + "Template...": "\u04ae\u043b\u0433\u0456...", + "Templates": "\u04ae\u043b\u0433\u0456\u043b\u0435\u0440", + "The category is empty": "\u0421\u0430\u043d\u0430\u0442 \u0431\u043e\u0441", + "Uncategorized": "\u0421\u0430\u043d\u0430\u0442\u0441\u044b\u0437" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/ko-KR.js b/plugins/advtemplate/langs/ko-KR.js new file mode 100644 index 00000000..467fd04a --- /dev/null +++ b/plugins/advtemplate/langs/ko-KR.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ko-KR", { + "Actions": "\uc791\uc5c5", + "Are you sure you want to permanently delete the category and all its content?": "\uc774 \ubc94\uc8fc\uc640 \uadf8 \ub0b4\uc6a9 \uc804\uccb4\ub97c \uc815\ub9d0 \uc601\uad6c\uc801\uc73c\ub85c \uc0ad\uc81c\ud560\uae4c\uc694?", + "Are you sure you want to permanently delete the template?": "\uc774 \ud15c\ud50c\ub9bf\uc744 \uc815\ub9d0 \uc601\uad6c\uc801\uc73c\ub85c \uc0ad\uc81c\ud560\uae4c\uc694?", + "Cancel": "\ucde8\uc18c", + "Category": "\uce74\ud14c\uace0\ub9ac", + "Category actions": "\uce74\ud14c\uace0\ub9ac \uc791\uc5c5", + "Category name": "\uce74\ud14c\uace0\ub9ac \uc774\ub984", + "Choose category": "\uce74\ud14c\uace0\ub9ac \uc120\ud0dd", + "Collapse": "\uc811\uae30", + "Create category...": "\uce74\ud14c\uace0\ub9ac \ub9cc\ub4e4\uae30...", + "Delete": "\uc0ad\uc81c", + "Delete all": "\uc804\uccb4 \uc0ad\uc81c", + "Expand": "\ud3bc\uce58\uae30", + "Filter templates": "\ud544\ud130 \ud15c\ud50c\ub9bf", + "Insert": "\uc0bd\uc785", + "Insert template": "\ud15c\ud50c\ub9bf \uc0bd\uc785", + "Locked for editing": "\ud3b8\uc9d1\uc744 \uc704\ud574 \uc7a0\uae40", + "Move all items": "\uc804\uccb4 \ud56d\ubaa9 \uc774\ub3d9", + "Move all items...": "\uc804\uccb4 \ud56d\ubaa9 \uc774\ub3d9...", + "Move to": "\uc774\ub3d9 \uc7a5\uc18c", + "Move to...": "\uc774\ub3d9 \uc7a5\uc18c...", + "New category": "\uc0c8 \uce74\ud14c\uace0\ub9ac", + "New template": "\uc0c8 \ud15c\ud50c\ub9bf", + "OK": "\ud655\uc778", + "Operation failed": "\uc791\uc5c5 \uc2e4\ud328", + "Rename category": "\uce74\ud14c\uace0\ub9ac \uc774\ub984 \ubcc0\uacbd", + "Rename template": "\ud15c\ud50c\ub9bf \uc774\ub984 \ubcc0\uacbd", + "Rename...": "\uc774\ub984 \ubcc0\uacbd...", + "Save": "\uc800\uc7a5", + "Save as template": "\ud15c\ud50c\ub9bf\uc73c\ub85c \uc800\uc7a5", + "Save as template...": "\ud15c\ud50c\ub9bf\uc73c\ub85c \uc800\uc7a5...", + "Search": "\uac80\uc0c9", + "Select template to preview": "\ubbf8\ub9ac\ubcf4\uae30\ud560 \ud15c\ud50c\ub9bf \uc120\ud0dd", + "Template actions": "\ud15c\ud50c\ub9bf \uc791\uc5c5", + "Template name": "\ud15c\ud50c\ub9bf \uc774\ub984", + "Template successfully saved": "\ud15c\ud50c\ub9bf \uc131\uacf5\uc801\uc73c\ub85c \uc800\uc7a5\ub428", + "Template...": "\ud15c\ud50c\ub9bf...", + "Templates": "\ud15c\ud50c\ub9bf", + "The category is empty": "\uce74\ud14c\uace0\ub9ac\uac00 \ube44\uc5b4 \uc788\uc2b5\ub2c8\ub2e4", + "Uncategorized": "\ubbf8\ubd84\ub958 \uc0c1\ud0dc" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/ko_KR.js b/plugins/advtemplate/langs/ko_KR.js new file mode 100644 index 00000000..bf623a11 --- /dev/null +++ b/plugins/advtemplate/langs/ko_KR.js @@ -0,0 +1,50 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ko-KR", { + "Actions": "\uc791\uc5c5", + "Are you sure you want to permanently delete the category and all its content?": "\uc774 \ubc94\uc8fc\uc640 \uadf8 \ub0b4\uc6a9 \uc804\uccb4\ub97c \uc815\ub9d0 \uc601\uad6c\uc801\uc73c\ub85c \uc0ad\uc81c\ud560\uae4c\uc694?", + "Are you sure you want to permanently delete the template?": "\uc774 \ud15c\ud50c\ub9bf\uc744 \uc815\ub9d0 \uc601\uad6c\uc801\uc73c\ub85c \uc0ad\uc81c\ud560\uae4c\uc694?", + "Cancel": "\ucde8\uc18c", + "Category": "\uce74\ud14c\uace0\ub9ac", + "Category actions": "\uce74\ud14c\uace0\ub9ac \uc791\uc5c5", + "Category name": "\uce74\ud14c\uace0\ub9ac \uc774\ub984", + "Choose category": "\uce74\ud14c\uace0\ub9ac \uc120\ud0dd", + "Collapse": "\uc811\uae30", + "Create category...": "\uce74\ud14c\uace0\ub9ac \ub9cc\ub4e4\uae30...", + "Delete": "\uc0ad\uc81c", + "Delete all": "\uc804\uccb4 \uc0ad\uc81c", + "Expand": "\ud3bc\uce58\uae30", + "Filter templates": "\ud544\ud130 \ud15c\ud50c\ub9bf", + "Insert": "\uc0bd\uc785", + "Insert template": "\ud15c\ud50c\ub9bf \uc0bd\uc785", + "Locked for editing": "\ud3b8\uc9d1\uc744 \uc704\ud574 \uc7a0\uae40", + "Move all items": "\uc804\uccb4 \ud56d\ubaa9 \uc774\ub3d9", + "Move all items...": "\uc804\uccb4 \ud56d\ubaa9 \uc774\ub3d9...", + "Move to": "\uc774\ub3d9 \uc7a5\uc18c", + "Move to...": "\uc774\ub3d9 \uc7a5\uc18c...", + "New category": "\uc0c8 \uce74\ud14c\uace0\ub9ac", + "New template": "\uc0c8 \ud15c\ud50c\ub9bf", + "OK": "\ud655\uc778", + "Operation failed": "\uc791\uc5c5 \uc2e4\ud328", + "Rename category": "\uce74\ud14c\uace0\ub9ac \uc774\ub984 \ubcc0\uacbd", + "Rename template": "\ud15c\ud50c\ub9bf \uc774\ub984 \ubcc0\uacbd", + "Rename...": "\uc774\ub984 \ubcc0\uacbd...", + "Save": "\uc800\uc7a5", + "Save as template": "\ud15c\ud50c\ub9bf\uc73c\ub85c \uc800\uc7a5", + "Save as template...": "\ud15c\ud50c\ub9bf\uc73c\ub85c \uc800\uc7a5...", + "Search": "\uac80\uc0c9", + "Select template to preview": "\ubbf8\ub9ac\ubcf4\uae30\ud560 \ud15c\ud50c\ub9bf \uc120\ud0dd", + "Template actions": "\ud15c\ud50c\ub9bf \uc791\uc5c5", + "Template name": "\ud15c\ud50c\ub9bf \uc774\ub984", + "Template successfully saved": "\ud15c\ud50c\ub9bf \uc131\uacf5\uc801\uc73c\ub85c \uc800\uc7a5\ub428", + "Template...": "\ud15c\ud50c\ub9bf...", + "Templates": "\ud15c\ud50c\ub9bf", + "The category is empty": "\uce74\ud14c\uace0\ub9ac\uac00 \ube44\uc5b4 \uc788\uc2b5\ub2c8\ub2e4", + "Uncategorized": "\ubbf8\ubd84\ub958 \uc0c1\ud0dc" +}); + +console.warn('TinyMCE language code "ko_KR" is deprecated, please use "ko-KR" instead.'); \ No newline at end of file diff --git a/plugins/advtemplate/langs/ms.js b/plugins/advtemplate/langs/ms.js new file mode 100644 index 00000000..9ebf6c9b --- /dev/null +++ b/plugins/advtemplate/langs/ms.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ms", { + "Actions": "Tindakan", + "Are you sure you want to permanently delete the category and all its content?": "Adakah anda pasti mahu memadamkan kategori dan semua kandungannya secara kekal?", + "Are you sure you want to permanently delete the template?": "Adakah anda pasti mahu memadamkan templat secara kekal?", + "Cancel": "Batal", + "Category": "Kategori", + "Category actions": "Tindakan kategori", + "Category name": "Nama kategori", + "Choose category": "Pilih kategori", + "Collapse": "Runtuhkan", + "Create category...": "Cipta kategori...", + "Delete": "Padamkan", + "Delete all": "Padamkan semua", + "Expand": "Kembangkan", + "Filter templates": "Tapis templat", + "Insert": "Sisipkan", + "Insert template": "Sisipkan templat", + "Locked for editing": "Dikunci untuk suntingan", + "Move all items": "Alihkan semua item", + "Move all items...": "Alihkan semua item...", + "Move to": "Alihkan ke", + "Move to...": "Alihkan ke...", + "New category": "Kategori baharu", + "New template": "Templat baharu", + "OK": "OK", + "Operation failed": "Operasi gagal", + "Rename category": "Namakan semula kategori", + "Rename template": "Namakan semula templat", + "Rename...": "Namakan semula...", + "Save": "Simpan", + "Save as template": "Simpan sebagai templat", + "Save as template...": "Simpan sebagai templat...", + "Search": "Cari", + "Select template to preview": "Pilih templat untuk pratonton", + "Template actions": "Tindakan templat", + "Template name": "Nama templat", + "Template successfully saved": "Templat berjaya disimpan", + "Template...": "Templat...", + "Templates": "Templat", + "The category is empty": "Kategori ini kosong", + "Uncategorized": "Tidak dikategorikan" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/nb-NO.js b/plugins/advtemplate/langs/nb-NO.js new file mode 100644 index 00000000..cc106572 --- /dev/null +++ b/plugins/advtemplate/langs/nb-NO.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("nb-NO", { + "Actions": "Handlinger", + "Are you sure you want to permanently delete the category and all its content?": "Er du sikker p\xe5 at du vil slette kategorien og hele innholdet i den, permanent?", + "Are you sure you want to permanently delete the template?": "Er du sikker p\xe5 at du vil slette malen permanent?", + "Cancel": "Avbryt", + "Category": "Kategori", + "Category actions": "Kategorihandlinger", + "Category name": "Navn p\xe5 kategori", + "Choose category": "Velg kategori", + "Collapse": "Skjul", + "Create category...": "Opprett kategori ...", + "Delete": "Slett", + "Delete all": "Slett alle", + "Expand": "Vis", + "Filter templates": "Filtrer maler", + "Insert": "Sett inn", + "Insert template": "Sett inn mal", + "Locked for editing": "L\xe5st for redigering", + "Move all items": "Flytt alle elementer", + "Move all items...": "Flytt alle elementer ...", + "Move to": "Flytt til", + "Move to...": "Flytt til ...", + "New category": "Ny kategori", + "New template": "Ny mal", + "OK": "OK", + "Operation failed": "Handlingen ble ikke gjennomf\xf8rt", + "Rename category": "Gi kategori nytt navn", + "Rename template": "Gi mal nytt navn", + "Rename...": "Gi nytt navn ...", + "Save": "Lagre", + "Save as template": "Lagre som mal", + "Save as template...": "Lagre som mal ...", + "Search": "S\xf8k", + "Select template to preview": "Velg mal for forh\xe5ndsvisning", + "Template actions": "Malhandlinger", + "Template name": "Navn p\xe5 mal", + "Template successfully saved": "Malen har blitt lagret", + "Template...": "Mal ...", + "Templates": "Maler", + "The category is empty": "Kategorien er tom", + "Uncategorized": "Ukategorisert" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/nb_NO.js b/plugins/advtemplate/langs/nb_NO.js new file mode 100644 index 00000000..70ca9751 --- /dev/null +++ b/plugins/advtemplate/langs/nb_NO.js @@ -0,0 +1,50 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("nb-NO", { + "Actions": "Handlinger", + "Are you sure you want to permanently delete the category and all its content?": "Er du sikker p\xe5 at du vil slette kategorien og hele innholdet i den, permanent?", + "Are you sure you want to permanently delete the template?": "Er du sikker p\xe5 at du vil slette malen permanent?", + "Cancel": "Avbryt", + "Category": "Kategori", + "Category actions": "Kategorihandlinger", + "Category name": "Navn p\xe5 kategori", + "Choose category": "Velg kategori", + "Collapse": "Skjul", + "Create category...": "Opprett kategori ...", + "Delete": "Slett", + "Delete all": "Slett alle", + "Expand": "Vis", + "Filter templates": "Filtrer maler", + "Insert": "Sett inn", + "Insert template": "Sett inn mal", + "Locked for editing": "L\xe5st for redigering", + "Move all items": "Flytt alle elementer", + "Move all items...": "Flytt alle elementer ...", + "Move to": "Flytt til", + "Move to...": "Flytt til ...", + "New category": "Ny kategori", + "New template": "Ny mal", + "OK": "OK", + "Operation failed": "Handlingen ble ikke gjennomf\xf8rt", + "Rename category": "Gi kategori nytt navn", + "Rename template": "Gi mal nytt navn", + "Rename...": "Gi nytt navn ...", + "Save": "Lagre", + "Save as template": "Lagre som mal", + "Save as template...": "Lagre som mal ...", + "Search": "S\xf8k", + "Select template to preview": "Velg mal for forh\xe5ndsvisning", + "Template actions": "Malhandlinger", + "Template name": "Navn p\xe5 mal", + "Template successfully saved": "Malen har blitt lagret", + "Template...": "Mal ...", + "Templates": "Maler", + "The category is empty": "Kategorien er tom", + "Uncategorized": "Ukategorisert" +}); + +console.warn('TinyMCE language code "nb_NO" is deprecated, please use "nb-NO" instead.'); \ No newline at end of file diff --git a/plugins/advtemplate/langs/nl.js b/plugins/advtemplate/langs/nl.js new file mode 100644 index 00000000..e45d6aa6 --- /dev/null +++ b/plugins/advtemplate/langs/nl.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("nl", { + "Actions": "Acties", + "Are you sure you want to permanently delete the category and all its content?": "Weet je zeker dat je de categorie en alle bijbehorende inhoud wilt verwijderen?", + "Are you sure you want to permanently delete the template?": "Weet je zeker dat je de sjabloon permanent wilt verwijderen?", + "Cancel": "Annuleren", + "Category": "Categorie", + "Category actions": "Categorieacties", + "Category name": "Categorienaam", + "Choose category": "Categorie kiezen", + "Collapse": "Samenvouwen", + "Create category...": "Categorie maken...", + "Delete": "Verwijderen", + "Delete all": "Alles verwijderen", + "Expand": "Uitbreiden", + "Filter templates": "Filtersjablonen", + "Insert": "Invoegen", + "Insert template": "Sjabloon invoegen", + "Locked for editing": "Vergrendeld voor bewerking", + "Move all items": "Alle items verplaatsen", + "Move all items...": "Alle items verplaatsen...", + "Move to": "Verplaatsen naar", + "Move to...": "Verplaatsen naar...", + "New category": "Nieuwe categorie", + "New template": "Nieuwe sjabloon", + "OK": "OK", + "Operation failed": "Bewerking mislukt", + "Rename category": "Categorienaam wijzigen", + "Rename template": "Sjabloonnaam wijzigen", + "Rename...": "Naam wijzigen...", + "Save": "Opslaan", + "Save as template": "Opslaan als sjabloon", + "Save as template...": "Opslaan als sjabloon...", + "Search": "Zoeken", + "Select template to preview": "Sjabloon selecteren voor voorbeeldweergave", + "Template actions": "Sjabloonacties", + "Template name": "Sjabloonnaam", + "Template successfully saved": "Sjabloon is opgeslagen", + "Template...": "Sjabloon...", + "Templates": "Sjablonen", + "The category is empty": "De categorie is leeg", + "Uncategorized": "Niet-gecategoriseerd" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/pl.js b/plugins/advtemplate/langs/pl.js new file mode 100644 index 00000000..5e6454da --- /dev/null +++ b/plugins/advtemplate/langs/pl.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pl", { + "Actions": "Czynno\u015bci", + "Are you sure you want to permanently delete the category and all its content?": "Czy na pewno chcesz trwale usun\u0105\u0107 t\u0119 kategori\u0119 i ca\u0142\u0105 jej zawarto\u015b\u0107?", + "Are you sure you want to permanently delete the template?": "Czy na pewno chcesz trwale usun\u0105\u0107 ten szablon?", + "Cancel": "Anuluj", + "Category": "Kategoria", + "Category actions": "Dzia\u0142ania kategorii", + "Category name": "Nazwa kategorii", + "Choose category": "Wybierz kategori\u0119", + "Collapse": "Zwi\u0144", + "Create category...": "Utw\xf3rz kategori\u0119...", + "Delete": "Usu\u0144", + "Delete all": "Usu\u0144 wszystko", + "Expand": "Rozwi\u0144", + "Filter templates": "Szablony filtr\xf3w", + "Insert": "Wstaw", + "Insert template": "Wstaw szablon", + "Locked for editing": "Zablokowane do edycji", + "Move all items": "Przenie\u015b wszystkie elementy", + "Move all items...": "Przenie\u015b wszystkie elementy...", + "Move to": "Przenie\u015b do", + "Move to...": "Przenie\u015b do...", + "New category": "Nowa kategoria", + "New template": "Nowy szablon", + "OK": "OK", + "Operation failed": "Operacja nie powiod\u0142a si\u0119", + "Rename category": "Zmie\u0144 nazw\u0119 kategorii", + "Rename template": "Zmie\u0144 nazw\u0119 szablonu", + "Rename...": "Zmie\u0144 nazw\u0119...", + "Save": "Zapisz", + "Save as template": "Zapisz jako szablon", + "Save as template...": "Zapisz jako szablon...", + "Search": "Wyszukaj", + "Select template to preview": "Wybierz szablon, aby wy\u015bwietli\u0107 podgl\u0105d", + "Template actions": "Dzia\u0142ania szablonu", + "Template name": "Nazwa szablonu", + "Template successfully saved": "Zapisano pomy\u015blnie szablon", + "Template...": "Szablon...", + "Templates": "Szablony", + "The category is empty": "Kategoria jest pusta", + "Uncategorized": "Bez kategorii" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/pt-BR.js b/plugins/advtemplate/langs/pt-BR.js new file mode 100644 index 00000000..d4e59471 --- /dev/null +++ b/plugins/advtemplate/langs/pt-BR.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pt-BR", { + "Actions": "A\xe7\xf5es", + "Are you sure you want to permanently delete the category and all its content?": "Quer mesmo excluir permanentemente a categoria e todo o seu conte\xfado?", + "Are you sure you want to permanently delete the template?": "Quer mesmo excluir o modelo permanentemente?", + "Cancel": "Cancelar", + "Category": "Categoria", + "Category actions": "A\xe7\xf5es da categoria", + "Category name": "Nome da categoria", + "Choose category": "Escolher categoria", + "Collapse": "Recolher", + "Create category...": "Criar categoria...", + "Delete": "Excluir", + "Delete all": "Excluir tudo", + "Expand": "Expandir", + "Filter templates": "Filtrar modelos", + "Insert": "Inserir", + "Insert template": "Inserir modelo", + "Locked for editing": "Bloqueado para edi\xe7\xe3o", + "Move all items": "Mover todos os itens", + "Move all items...": "Mover todos os itens...", + "Move to": "Mover para", + "Move to...": "Mover para...", + "New category": "Nova categoria", + "New template": "Novo modelo", + "OK": "OK", + "Operation failed": "Falha na opera\xe7\xe3o", + "Rename category": "Renomear categoria", + "Rename template": "Renomear modelo", + "Rename...": "Renomear...", + "Save": "Salvar", + "Save as template": "Salvar como modelo", + "Save as template...": "Salvar como modelo...", + "Search": "Pesquisar", + "Select template to preview": "Selecionar modelo a visualizar", + "Template actions": "A\xe7\xf5es do modelo", + "Template name": "Nome do modelo", + "Template successfully saved": "Modelo salvo com \xeaxito", + "Template...": "Modelo...", + "Templates": "Modelos", + "The category is empty": "A categoria est\xe1 vazia", + "Uncategorized": "N\xe3o categorizado" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/pt-PT.js b/plugins/advtemplate/langs/pt-PT.js new file mode 100644 index 00000000..d4615ce2 --- /dev/null +++ b/plugins/advtemplate/langs/pt-PT.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pt-PT", { + "Actions": "A\xe7\xf5es", + "Are you sure you want to permanently delete the category and all its content?": "Tem a certeza de que pretende eliminar permanentemente a categoria e todo o seu conte\xfado?", + "Are you sure you want to permanently delete the template?": "Tem a certeza de que pretende eliminar permanentemente o modelo?", + "Cancel": "Cancelar", + "Category": "Categoria", + "Category actions": "A\xe7\xf5es de categoria", + "Category name": "Nome da categoria", + "Choose category": "Escolher categoria", + "Collapse": "Fechar", + "Create category...": "Criar categoria...", + "Delete": "Eliminar", + "Delete all": "Eliminar tudo", + "Expand": "Expandir", + "Filter templates": "Modelos de filtro", + "Insert": "Inserir", + "Insert template": "Inserir modelo", + "Locked for editing": "Bloqueado para edi\xe7\xe3o", + "Move all items": "Mover todos os itens", + "Move all items...": "Mover todos os itens...", + "Move to": "Mover para", + "Move to...": "Mover para...", + "New category": "Nova categoria", + "New template": "Novo modelo", + "OK": "OK", + "Operation failed": "Falha na opera\xe7\xe3o", + "Rename category": "Mudar nome da categoria", + "Rename template": "Mudar nome do modelo", + "Rename...": "Mudar nome...", + "Save": "Guardar", + "Save as template": "Guardar como modelo", + "Save as template...": "Guardar como modelo...", + "Search": "Pesquisar", + "Select template to preview": "Selecionar modelo a pr\xe9-visualizar", + "Template actions": "A\xe7\xf5es de modelo", + "Template name": "Nome do modelo", + "Template successfully saved": "Modelo guardado com \xeaxito", + "Template...": "Modelo...", + "Templates": "Modelos", + "The category is empty": "A categoria est\xe1 vazia", + "Uncategorized": "Sem categoria" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/pt_BR.js b/plugins/advtemplate/langs/pt_BR.js new file mode 100644 index 00000000..773e941a --- /dev/null +++ b/plugins/advtemplate/langs/pt_BR.js @@ -0,0 +1,50 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pt-BR", { + "Actions": "A\xe7\xf5es", + "Are you sure you want to permanently delete the category and all its content?": "Quer mesmo excluir permanentemente a categoria e todo o seu conte\xfado?", + "Are you sure you want to permanently delete the template?": "Quer mesmo excluir o modelo permanentemente?", + "Cancel": "Cancelar", + "Category": "Categoria", + "Category actions": "A\xe7\xf5es da categoria", + "Category name": "Nome da categoria", + "Choose category": "Escolher categoria", + "Collapse": "Recolher", + "Create category...": "Criar categoria...", + "Delete": "Excluir", + "Delete all": "Excluir tudo", + "Expand": "Expandir", + "Filter templates": "Filtrar modelos", + "Insert": "Inserir", + "Insert template": "Inserir modelo", + "Locked for editing": "Bloqueado para edi\xe7\xe3o", + "Move all items": "Mover todos os itens", + "Move all items...": "Mover todos os itens...", + "Move to": "Mover para", + "Move to...": "Mover para...", + "New category": "Nova categoria", + "New template": "Novo modelo", + "OK": "OK", + "Operation failed": "Falha na opera\xe7\xe3o", + "Rename category": "Renomear categoria", + "Rename template": "Renomear modelo", + "Rename...": "Renomear...", + "Save": "Salvar", + "Save as template": "Salvar como modelo", + "Save as template...": "Salvar como modelo...", + "Search": "Pesquisar", + "Select template to preview": "Selecionar modelo a visualizar", + "Template actions": "A\xe7\xf5es do modelo", + "Template name": "Nome do modelo", + "Template successfully saved": "Modelo salvo com \xeaxito", + "Template...": "Modelo...", + "Templates": "Modelos", + "The category is empty": "A categoria est\xe1 vazia", + "Uncategorized": "N\xe3o categorizado" +}); + +console.warn('TinyMCE language code "pt_BR" is deprecated, please use "pt-BR" instead.'); \ No newline at end of file diff --git a/plugins/advtemplate/langs/pt_PT.js b/plugins/advtemplate/langs/pt_PT.js new file mode 100644 index 00000000..8b90991f --- /dev/null +++ b/plugins/advtemplate/langs/pt_PT.js @@ -0,0 +1,50 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("pt-PT", { + "Actions": "A\xe7\xf5es", + "Are you sure you want to permanently delete the category and all its content?": "Tem a certeza de que pretende eliminar permanentemente a categoria e todo o seu conte\xfado?", + "Are you sure you want to permanently delete the template?": "Tem a certeza de que pretende eliminar permanentemente o modelo?", + "Cancel": "Cancelar", + "Category": "Categoria", + "Category actions": "A\xe7\xf5es de categoria", + "Category name": "Nome da categoria", + "Choose category": "Escolher categoria", + "Collapse": "Fechar", + "Create category...": "Criar categoria...", + "Delete": "Eliminar", + "Delete all": "Eliminar tudo", + "Expand": "Expandir", + "Filter templates": "Modelos de filtro", + "Insert": "Inserir", + "Insert template": "Inserir modelo", + "Locked for editing": "Bloqueado para edi\xe7\xe3o", + "Move all items": "Mover todos os itens", + "Move all items...": "Mover todos os itens...", + "Move to": "Mover para", + "Move to...": "Mover para...", + "New category": "Nova categoria", + "New template": "Novo modelo", + "OK": "OK", + "Operation failed": "Falha na opera\xe7\xe3o", + "Rename category": "Mudar nome da categoria", + "Rename template": "Mudar nome do modelo", + "Rename...": "Mudar nome...", + "Save": "Guardar", + "Save as template": "Guardar como modelo", + "Save as template...": "Guardar como modelo...", + "Search": "Pesquisar", + "Select template to preview": "Selecionar modelo a pr\xe9-visualizar", + "Template actions": "A\xe7\xf5es de modelo", + "Template name": "Nome do modelo", + "Template successfully saved": "Modelo guardado com \xeaxito", + "Template...": "Modelo...", + "Templates": "Modelos", + "The category is empty": "A categoria est\xe1 vazia", + "Uncategorized": "Sem categoria" +}); + +console.warn('TinyMCE language code "pt_PT" is deprecated, please use "pt-PT" instead.'); \ No newline at end of file diff --git a/plugins/advtemplate/langs/ro.js b/plugins/advtemplate/langs/ro.js new file mode 100644 index 00000000..1d1bfaec --- /dev/null +++ b/plugins/advtemplate/langs/ro.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ro", { + "Actions": "Ac\u021biuni", + "Are you sure you want to permanently delete the category and all its content?": "Sunte\u021bi sigur c\u0103 dori\u021bi s\u0103 \u0219terge\u021bi definitiv categoria \u0219i tot con\u021binutul acesteia?", + "Are you sure you want to permanently delete the template?": "Sunte\u021bi sigur c\u0103 dori\u021bi s\u0103 \u0219terge\u021bi definitiv \u0219ablonul?", + "Cancel": "Anulare", + "Category": "Categorie", + "Category actions": "Ac\u021biuni categorie", + "Category name": "Nume de categorie", + "Choose category": "Alegere categorie", + "Collapse": "Restr\xe2ngere", + "Create category...": "Creare categorie...", + "Delete": "\u0218tergere", + "Delete all": "\u0218terge\u021bi tot", + "Expand": "Extindere", + "Filter templates": "\u0218abloanele de filtre", + "Insert": "Inserare", + "Insert template": "Inserare \u0219ablon", + "Locked for editing": "Blocat pentru editare", + "Move all items": "Muta\u021bi toate elementele", + "Move all items...": "Muta\u021bi toate elementele\u2026", + "Move to": "Muta\u021bi \xeen", + "Move to...": "Muta\u021bi \xeen\u2026", + "New category": "Categorie nou\u0103", + "New template": "\u0218ablon nou", + "OK": "OK", + "Operation failed": "Opera\u021biune e\u0219uat\u0103", + "Rename category": "Redenumire categorie", + "Rename template": "Redenumire \u0219ablon", + "Rename...": "Redenumire\u2026", + "Save": "Salvare", + "Save as template": "Salvare ca \u0219ablon", + "Save as template...": "Salvare ca \u0219ablon\u2026", + "Search": "C\u0103utare", + "Select template to preview": "Selectare \u0219ablon pentru previzualizare", + "Template actions": "Ac\u021biuni \u0219ablon", + "Template name": "Nume \u0219ablon", + "Template successfully saved": "\u0218ablon salvat cu succes", + "Template...": "\u0218ablon\u2026", + "Templates": "\u0218abloane", + "The category is empty": "Categoria este goal\u0103", + "Uncategorized": "Neclasificat" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/ru.js b/plugins/advtemplate/langs/ru.js new file mode 100644 index 00000000..1fcb07fe --- /dev/null +++ b/plugins/advtemplate/langs/ru.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("ru", { + "Actions": "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f", + "Are you sure you want to permanently delete the category and all its content?": "\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u0443 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e \u0438 \u0432\u0441\u0435 \u0435\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0431\u0435\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f?", + "Are you sure you want to permanently delete the template?": "\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0448\u0430\u0431\u043b\u043e\u043d \u0431\u0435\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f?", + "Cancel": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c", + "Category": "\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f", + "Category actions": "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438", + "Category name": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438", + "Choose category": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e", + "Collapse": "\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c", + "Create category...": "\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e\u2026", + "Delete": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c", + "Delete all": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435", + "Expand": "\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c", + "Filter templates": "\u0424\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u044b", + "Insert": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c", + "Insert template": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d", + "Locked for editing": "\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043e", + "Move all items": "\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b", + "Move all items...": "\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b\u2026", + "Move to": "\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432", + "Move to...": "\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432\u2026", + "New category": "\u041d\u043e\u0432\u0430\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f", + "New template": "\u041d\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d", + "OK": "\u041e\u041a", + "Operation failed": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e", + "Rename category": "\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e", + "Rename template": "\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d", + "Rename...": "\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c\u2026", + "Save": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c", + "Save as template": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a \u0448\u0430\u0431\u043b\u043e\u043d", + "Save as template...": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a \u0448\u0430\u0431\u043b\u043e\u043d\u2026", + "Search": "\u041f\u043e\u0438\u0441\u043a", + "Select template to preview": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430", + "Template actions": "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430", + "Template name": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430", + "Template successfully saved": "\u0428\u0430\u0431\u043b\u043e\u043d \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d", + "Template...": "\u0428\u0430\u0431\u043b\u043e\u043d\u2026", + "Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u044b", + "The category is empty": "\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f \u043f\u0443\u0441\u0442\u0430", + "Uncategorized": "\u0411\u0435\u0437 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/sk.js b/plugins/advtemplate/langs/sk.js new file mode 100644 index 00000000..1478014c --- /dev/null +++ b/plugins/advtemplate/langs/sk.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sk", { + "Actions": "Akcie", + "Are you sure you want to permanently delete the category and all its content?": "Ste si ist\xed, \u017ee chcete natrvalo odstr\xe1ni\u0165 kateg\xf3riu a\xa0cel\xfd jej obsah?", + "Are you sure you want to permanently delete the template?": "Ste si ist\xed, \u017ee chcete \u0161abl\xf3nu natrvalo odstr\xe1ni\u0165?", + "Cancel": "Zru\u0161i\u0165", + "Category": "Kateg\xf3ria", + "Category actions": "Akcie kateg\xf3rie", + "Category name": "N\xe1zov kateg\xf3rie", + "Choose category": "Vybra\u0165 kateg\xf3riu", + "Collapse": "Zbali\u0165", + "Create category...": "Vytvori\u0165 kateg\xf3riu...", + "Delete": "Odstr\xe1ni\u0165", + "Delete all": "Odstr\xe1ni\u0165 v\u0161etko", + "Expand": "Rozbali\u0165", + "Filter templates": "Filtrova\u0165 \u0161abl\xf3ny", + "Insert": "Vlo\u017ei\u0165", + "Insert template": "Vlo\u017ei\u0165 \u0161abl\xf3nu", + "Locked for editing": "Uzamknut\xe9 pre \xfapravy", + "Move all items": "Presun\xfa\u0165 v\u0161etky polo\u017eky", + "Move all items...": "Presun\xfa\u0165 v\u0161etky polo\u017eky...", + "Move to": "Presun\xfa\u0165 do", + "Move to...": "Presun\xfa\u0165 do...", + "New category": "Nov\xe1 kateg\xf3ria", + "New template": "Nov\xe1 \u0161abl\xf3na", + "OK": "OK", + "Operation failed": "Oper\xe1cia bola ne\xfaspe\u0161n\xe1", + "Rename category": "Premenova\u0165 kateg\xf3riu", + "Rename template": "Premenova\u0165 \u0161abl\xf3nu", + "Rename...": "Premenova\u0165...", + "Save": "Ulo\u017ei\u0165", + "Save as template": "Ulo\u017ei\u0165 ako \u0161abl\xf3nu", + "Save as template...": "Ulo\u017ei\u0165 ako \u0161abl\xf3nu...", + "Search": "Vyh\u013eada\u0165", + "Select template to preview": "Vybra\u0165 \u0161abl\xf3nu na zobrazenie uk\xe1\u017eky", + "Template actions": "Akcie \u0161abl\xf3ny", + "Template name": "N\xe1zov \u0161abl\xf3ny", + "Template successfully saved": "\u0160abl\xf3na bola \xfaspe\u0161ne ulo\u017een\xe1", + "Template...": "\u0160abl\xf3na...", + "Templates": "\u0160abl\xf3ny", + "The category is empty": "Kateg\xf3ria je pr\xe1zdna", + "Uncategorized": "Nekategorizovan\xe9" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/sl-SI.js b/plugins/advtemplate/langs/sl-SI.js new file mode 100644 index 00000000..ad3f8c6c --- /dev/null +++ b/plugins/advtemplate/langs/sl-SI.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sl-SI", { + "Actions": "Dejanja", + "Are you sure you want to permanently delete the category and all its content?": "Ali ste prepri\u010dani, da \u017ealite trajno izbrisati kategorijo in vso njeno vsebino?", + "Are you sure you want to permanently delete the template?": "Ali ste prepri\u010dani, da \u017eelite trajno izbrisati predlogo?", + "Cancel": "Prekli\u010di", + "Category": "Kategorija", + "Category actions": "Dejanja za kategorijo", + "Category name": "Ime kategorije", + "Choose category": "Izberite kategorijo", + "Collapse": "Strni", + "Create category...": "Ustvari kategorijo ...", + "Delete": "Izbri\u0161i", + "Delete all": "Izbri\u0161i vse", + "Expand": "Raz\u0161iri", + "Filter templates": "Filtriranje predlog", + "Insert": "Vstavi", + "Insert template": "Vstavi predlogo", + "Locked for editing": "Zaklenjeno za urejanje", + "Move all items": "Premakni vse elemente", + "Move all items...": "Premakni vse elemente ...", + "Move to": "Premakni v", + "Move to...": "Premakni v ...", + "New category": "Nova kategorija", + "New template": "Nova predloga", + "OK": "V redu", + "Operation failed": "Postopek ni uspel", + "Rename category": "Preimenuj kategorijo", + "Rename template": "Preimenuj predlogo", + "Rename...": "Preimenuj ...", + "Save": "Shrani", + "Save as template": "Shrani kot predlogo", + "Save as template...": "Shrani kot predlogo ...", + "Search": "Iskanje", + "Select template to preview": "Izberite predlogo, za katero \u017eelite predogled", + "Template actions": "Dejanja za predlogo", + "Template name": "Ime predloge", + "Template successfully saved": "Predloga je uspe\u0161no shranjena", + "Template...": "Predloga ...", + "Templates": "Predloge", + "The category is empty": "Kategorija je prazna", + "Uncategorized": "Nekategorizirano" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/sl_SI.js b/plugins/advtemplate/langs/sl_SI.js new file mode 100644 index 00000000..81625fc2 --- /dev/null +++ b/plugins/advtemplate/langs/sl_SI.js @@ -0,0 +1,50 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sl-SI", { + "Actions": "Dejanja", + "Are you sure you want to permanently delete the category and all its content?": "Ali ste prepri\u010dani, da \u017ealite trajno izbrisati kategorijo in vso njeno vsebino?", + "Are you sure you want to permanently delete the template?": "Ali ste prepri\u010dani, da \u017eelite trajno izbrisati predlogo?", + "Cancel": "Prekli\u010di", + "Category": "Kategorija", + "Category actions": "Dejanja za kategorijo", + "Category name": "Ime kategorije", + "Choose category": "Izberite kategorijo", + "Collapse": "Strni", + "Create category...": "Ustvari kategorijo ...", + "Delete": "Izbri\u0161i", + "Delete all": "Izbri\u0161i vse", + "Expand": "Raz\u0161iri", + "Filter templates": "Filtriranje predlog", + "Insert": "Vstavi", + "Insert template": "Vstavi predlogo", + "Locked for editing": "Zaklenjeno za urejanje", + "Move all items": "Premakni vse elemente", + "Move all items...": "Premakni vse elemente ...", + "Move to": "Premakni v", + "Move to...": "Premakni v ...", + "New category": "Nova kategorija", + "New template": "Nova predloga", + "OK": "V redu", + "Operation failed": "Postopek ni uspel", + "Rename category": "Preimenuj kategorijo", + "Rename template": "Preimenuj predlogo", + "Rename...": "Preimenuj ...", + "Save": "Shrani", + "Save as template": "Shrani kot predlogo", + "Save as template...": "Shrani kot predlogo ...", + "Search": "Iskanje", + "Select template to preview": "Izberite predlogo, za katero \u017eelite predogled", + "Template actions": "Dejanja za predlogo", + "Template name": "Ime predloge", + "Template successfully saved": "Predloga je uspe\u0161no shranjena", + "Template...": "Predloga ...", + "Templates": "Predloge", + "The category is empty": "Kategorija je prazna", + "Uncategorized": "Nekategorizirano" +}); + +console.warn('TinyMCE language code "sl_SI" is deprecated, please use "sl-SI" instead.'); \ No newline at end of file diff --git a/plugins/advtemplate/langs/sv-SE.js b/plugins/advtemplate/langs/sv-SE.js new file mode 100644 index 00000000..de025c80 --- /dev/null +++ b/plugins/advtemplate/langs/sv-SE.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sv-SE", { + "Actions": "\xc5tg\xe4rder", + "Are you sure you want to permanently delete the category and all its content?": "\xc4r du s\xe4ker p\xe5 att du vill ta bort kategorin och allt dess inneh\xe5ll permanent?", + "Are you sure you want to permanently delete the template?": "\xc4r du s\xe4ker p\xe5 att du vill ta bort mallen permanent?", + "Cancel": "Avbryt", + "Category": "Kategori", + "Category actions": "Kategori\xe5tg\xe4rder", + "Category name": "Kategorinamn", + "Choose category": "V\xe4lj kategori", + "Collapse": "D\xf6lj", + "Create category...": "Skapa en kategori\xa0\u2026", + "Delete": "Radera", + "Delete all": "Radera allt", + "Expand": "Visa", + "Filter templates": "Filtrera mallar", + "Insert": "Infoga", + "Insert template": "Infoga mall", + "Locked for editing": "L\xe5st f\xf6r redigering", + "Move all items": "Flytta alla objekt", + "Move all items...": "Flytta alla objekt\xa0\u2026", + "Move to": "Flytta till", + "Move to...": "Flytta till\xa0\u2026", + "New category": "Ny kategori", + "New template": "Ny mall", + "OK": "OK", + "Operation failed": "\xc5tg\xe4rden misslyckades", + "Rename category": "Byt namn p\xe5 kategori", + "Rename template": "Byt namn p\xe5 mall", + "Rename...": "Byt namn\xa0\u2026", + "Save": "Spara", + "Save as template": "Spara som mall", + "Save as template...": "Spara som mall\xa0\u2026", + "Search": "S\xf6k", + "Select template to preview": "V\xe4lj en mall att f\xf6rhandsgranska", + "Template actions": "Mall\xe5tg\xe4rder", + "Template name": "Mallnamn", + "Template successfully saved": "Mallen har sparats", + "Template...": "Mall\xa0\u2026", + "Templates": "Mallar", + "The category is empty": "Kategorin \xe4r tom", + "Uncategorized": "Inte kategoriserat" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/sv_SE.js b/plugins/advtemplate/langs/sv_SE.js new file mode 100644 index 00000000..d9357213 --- /dev/null +++ b/plugins/advtemplate/langs/sv_SE.js @@ -0,0 +1,50 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("sv-SE", { + "Actions": "\xc5tg\xe4rder", + "Are you sure you want to permanently delete the category and all its content?": "\xc4r du s\xe4ker p\xe5 att du vill ta bort kategorin och allt dess inneh\xe5ll permanent?", + "Are you sure you want to permanently delete the template?": "\xc4r du s\xe4ker p\xe5 att du vill ta bort mallen permanent?", + "Cancel": "Avbryt", + "Category": "Kategori", + "Category actions": "Kategori\xe5tg\xe4rder", + "Category name": "Kategorinamn", + "Choose category": "V\xe4lj kategori", + "Collapse": "D\xf6lj", + "Create category...": "Skapa en kategori\xa0\u2026", + "Delete": "Radera", + "Delete all": "Radera allt", + "Expand": "Visa", + "Filter templates": "Filtrera mallar", + "Insert": "Infoga", + "Insert template": "Infoga mall", + "Locked for editing": "L\xe5st f\xf6r redigering", + "Move all items": "Flytta alla objekt", + "Move all items...": "Flytta alla objekt\xa0\u2026", + "Move to": "Flytta till", + "Move to...": "Flytta till\xa0\u2026", + "New category": "Ny kategori", + "New template": "Ny mall", + "OK": "OK", + "Operation failed": "\xc5tg\xe4rden misslyckades", + "Rename category": "Byt namn p\xe5 kategori", + "Rename template": "Byt namn p\xe5 mall", + "Rename...": "Byt namn\xa0\u2026", + "Save": "Spara", + "Save as template": "Spara som mall", + "Save as template...": "Spara som mall\xa0\u2026", + "Search": "S\xf6k", + "Select template to preview": "V\xe4lj en mall att f\xf6rhandsgranska", + "Template actions": "Mall\xe5tg\xe4rder", + "Template name": "Mallnamn", + "Template successfully saved": "Mallen har sparats", + "Template...": "Mall\xa0\u2026", + "Templates": "Mallar", + "The category is empty": "Kategorin \xe4r tom", + "Uncategorized": "Inte kategoriserat" +}); + +console.warn('TinyMCE language code "sv_SE" is deprecated, please use "sv-SE" instead.'); \ No newline at end of file diff --git a/plugins/advtemplate/langs/th-TH.js b/plugins/advtemplate/langs/th-TH.js new file mode 100644 index 00000000..c20e4200 --- /dev/null +++ b/plugins/advtemplate/langs/th-TH.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("th-TH", { + "Actions": "\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23", + "Are you sure you want to permanently delete the category and all its content?": "\u0e04\u0e38\u0e13\u0e41\u0e19\u0e48\u0e43\u0e08\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e25\u0e1a\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48\u0e41\u0e25\u0e30\u0e40\u0e19\u0e37\u0e49\u0e2d\u0e2b\u0e32\u0e43\u0e19\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e16\u0e32\u0e27\u0e23", + "Are you sure you want to permanently delete the template?": "\u0e04\u0e38\u0e13\u0e41\u0e19\u0e48\u0e43\u0e08\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e25\u0e1a\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e16\u0e32\u0e27\u0e23", + "Cancel": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01", + "Category": "\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48", + "Category actions": "\u0e41\u0e2d\u0e04\u0e0a\u0e31\u0e48\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48", + "Category name": "\u0e0a\u0e37\u0e48\u0e2d\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48", + "Choose category": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48", + "Collapse": "\u0e22\u0e38\u0e1a", + "Create category...": "\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48...", + "Delete": "\u0e25\u0e1a", + "Delete all": "\u0e25\u0e1a\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14", + "Expand": "\u0e02\u0e22\u0e32\u0e22", + "Filter templates": "\u0e01\u0e23\u0e2d\u0e07\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a", + "Insert": "\u0e41\u0e17\u0e23\u0e01", + "Insert template": "\u0e41\u0e17\u0e23\u0e01\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a", + "Locked for editing": "\u0e25\u0e47\u0e2d\u0e01\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e41\u0e01\u0e49\u0e44\u0e02", + "Move all items": "\u0e22\u0e49\u0e32\u0e22\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14", + "Move all items...": "\u0e22\u0e49\u0e32\u0e22\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14...", + "Move to": "\u0e22\u0e49\u0e32\u0e22\u0e44\u0e1b\u0e17\u0e35\u0e48", + "Move to...": "\u0e22\u0e49\u0e32\u0e22\u0e44\u0e1b\u0e17\u0e35\u0e48...", + "New category": "\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48\u0e43\u0e2b\u0e21\u0e48", + "New template": "\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e43\u0e2b\u0e21\u0e48", + "OK": "\u0e15\u0e01\u0e25\u0e07", + "Operation failed": "\u0e01\u0e32\u0e23\u0e1b\u0e0f\u0e34\u0e1a\u0e31\u0e15\u0e34\u0e07\u0e32\u0e19\u0e25\u0e49\u0e21\u0e40\u0e2b\u0e25\u0e27", + "Rename category": "\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e0a\u0e37\u0e48\u0e2d\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48", + "Rename template": "\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e0a\u0e37\u0e48\u0e2d\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a", + "Rename...": "\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e0a\u0e37\u0e48\u0e2d...", + "Save": "\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01", + "Save as template": "\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e40\u0e1b\u0e47\u0e19\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a", + "Save as template...": "\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e40\u0e1b\u0e47\u0e19\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a...", + "Search": "\u0e04\u0e49\u0e19\u0e2b\u0e32", + "Select template to preview": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e41\u0e2a\u0e14\u0e07\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07", + "Template actions": "\u0e41\u0e2d\u0e04\u0e0a\u0e31\u0e48\u0e19\u0e02\u0e2d\u0e07\u0e40\u0e17\u0e21\u0e40\u0e1e\u0e25\u0e15", + "Template name": "\u0e0a\u0e37\u0e48\u0e2d\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a", + "Template successfully saved": "\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e2a\u0e33\u0e40\u0e23\u0e47\u0e08\u0e41\u0e25\u0e49\u0e27", + "Template...": "\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a...", + "Templates": "\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a", + "The category is empty": "\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48\u0e27\u0e48\u0e32\u0e07\u0e40\u0e1b\u0e25\u0e48\u0e32", + "Uncategorized": "\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e08\u0e31\u0e14\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/th_TH.js b/plugins/advtemplate/langs/th_TH.js new file mode 100644 index 00000000..57e2b90c --- /dev/null +++ b/plugins/advtemplate/langs/th_TH.js @@ -0,0 +1,50 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("th-TH", { + "Actions": "\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23", + "Are you sure you want to permanently delete the category and all its content?": "\u0e04\u0e38\u0e13\u0e41\u0e19\u0e48\u0e43\u0e08\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e25\u0e1a\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48\u0e41\u0e25\u0e30\u0e40\u0e19\u0e37\u0e49\u0e2d\u0e2b\u0e32\u0e43\u0e19\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e16\u0e32\u0e27\u0e23", + "Are you sure you want to permanently delete the template?": "\u0e04\u0e38\u0e13\u0e41\u0e19\u0e48\u0e43\u0e08\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e25\u0e1a\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e16\u0e32\u0e27\u0e23", + "Cancel": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01", + "Category": "\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48", + "Category actions": "\u0e41\u0e2d\u0e04\u0e0a\u0e31\u0e48\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48", + "Category name": "\u0e0a\u0e37\u0e48\u0e2d\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48", + "Choose category": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48", + "Collapse": "\u0e22\u0e38\u0e1a", + "Create category...": "\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48...", + "Delete": "\u0e25\u0e1a", + "Delete all": "\u0e25\u0e1a\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14", + "Expand": "\u0e02\u0e22\u0e32\u0e22", + "Filter templates": "\u0e01\u0e23\u0e2d\u0e07\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a", + "Insert": "\u0e41\u0e17\u0e23\u0e01", + "Insert template": "\u0e41\u0e17\u0e23\u0e01\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a", + "Locked for editing": "\u0e25\u0e47\u0e2d\u0e01\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e41\u0e01\u0e49\u0e44\u0e02", + "Move all items": "\u0e22\u0e49\u0e32\u0e22\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14", + "Move all items...": "\u0e22\u0e49\u0e32\u0e22\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14...", + "Move to": "\u0e22\u0e49\u0e32\u0e22\u0e44\u0e1b\u0e17\u0e35\u0e48", + "Move to...": "\u0e22\u0e49\u0e32\u0e22\u0e44\u0e1b\u0e17\u0e35\u0e48...", + "New category": "\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48\u0e43\u0e2b\u0e21\u0e48", + "New template": "\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e43\u0e2b\u0e21\u0e48", + "OK": "\u0e15\u0e01\u0e25\u0e07", + "Operation failed": "\u0e01\u0e32\u0e23\u0e1b\u0e0f\u0e34\u0e1a\u0e31\u0e15\u0e34\u0e07\u0e32\u0e19\u0e25\u0e49\u0e21\u0e40\u0e2b\u0e25\u0e27", + "Rename category": "\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e0a\u0e37\u0e48\u0e2d\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48", + "Rename template": "\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e0a\u0e37\u0e48\u0e2d\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a", + "Rename...": "\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e0a\u0e37\u0e48\u0e2d...", + "Save": "\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01", + "Save as template": "\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e40\u0e1b\u0e47\u0e19\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a", + "Save as template...": "\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e40\u0e1b\u0e47\u0e19\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a...", + "Search": "\u0e04\u0e49\u0e19\u0e2b\u0e32", + "Select template to preview": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e41\u0e2a\u0e14\u0e07\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07", + "Template actions": "\u0e41\u0e2d\u0e04\u0e0a\u0e31\u0e48\u0e19\u0e02\u0e2d\u0e07\u0e40\u0e17\u0e21\u0e40\u0e1e\u0e25\u0e15", + "Template name": "\u0e0a\u0e37\u0e48\u0e2d\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a", + "Template successfully saved": "\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e2a\u0e33\u0e40\u0e23\u0e47\u0e08\u0e41\u0e25\u0e49\u0e27", + "Template...": "\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a...", + "Templates": "\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a", + "The category is empty": "\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48\u0e27\u0e48\u0e32\u0e07\u0e40\u0e1b\u0e25\u0e48\u0e32", + "Uncategorized": "\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e08\u0e31\u0e14\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48" +}); + +console.warn('TinyMCE language code "th_TH" is deprecated, please use "th-TH" instead.'); \ No newline at end of file diff --git a/plugins/advtemplate/langs/tr.js b/plugins/advtemplate/langs/tr.js new file mode 100644 index 00000000..ab78c8ad --- /dev/null +++ b/plugins/advtemplate/langs/tr.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("tr", { + "Actions": "\u0130\u015flemler", + "Are you sure you want to permanently delete the category and all its content?": "Kategoriyi ve t\xfcm i\xe7eri\u011fini kal\u0131c\u0131 olarak silmek istedi\u011finizden emin misiniz?", + "Are you sure you want to permanently delete the template?": "\u015eablonu kal\u0131c\u0131 olarak silmek istedi\u011finizden emin misiniz?", + "Cancel": "\u0130ptal", + "Category": "Kategori", + "Category actions": "Kategori eylemleri", + "Category name": "Kategori ad\u0131", + "Choose category": "Kategori se\xe7", + "Collapse": "Daralt", + "Create category...": "Kategori se\xe7...", + "Delete": "Sil", + "Delete all": "T\xfcm\xfcn\xfc sil", + "Expand": "Geni\u015flet", + "Filter templates": "\u015eablonlar\u0131 filtrele", + "Insert": "Ekle", + "Insert template": "\u015eablon ekle", + "Locked for editing": "D\xfczenleme i\xe7in kilitli", + "Move all items": "T\xfcm \xf6\u011feleri ta\u015f\u0131", + "Move all items...": "T\xfcm \xf6\u011feleri ta\u015f\u0131...", + "Move to": "\u015euraya ta\u015f\u0131", + "Move to...": "\u015euraya ta\u015f\u0131...", + "New category": "Yeni kategori", + "New template": "Yeni \u015fablon", + "OK": "Tamam", + "Operation failed": "\u0130\u015flem ba\u015far\u0131s\u0131z oldu", + "Rename category": "Kategoriyi yeniden adland\u0131r", + "Rename template": "\u015eablonu yeniden adland\u0131r", + "Rename...": "Yeniden adland\u0131r...", + "Save": "Kaydet", + "Save as template": "\u015eablon olarak kaydet", + "Save as template...": "\u015eablon olarak kaydet...", + "Search": "Ara", + "Select template to preview": "\xd6nizlenecek \u015fablonu se\xe7in", + "Template actions": "\u015eablon eylemleri", + "Template name": "\u015eablon ad\u0131", + "Template successfully saved": "\u015eablon ba\u015far\u0131yla kaydedildi", + "Template...": "\u015eablon...", + "Templates": "\u015eablonlar", + "The category is empty": "Kategori bo\u015f", + "Uncategorized": "Kategori d\u0131\u015f\u0131" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/uk.js b/plugins/advtemplate/langs/uk.js new file mode 100644 index 00000000..7c1185f4 --- /dev/null +++ b/plugins/advtemplate/langs/uk.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("uk", { + "Actions": "\u0414\u0456\u0457", + "Are you sure you want to permanently delete the category and all its content?": "\u0421\u043f\u0440\u0430\u0432\u0434\u0456 \u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0446\u044e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0456\u044e \u0442\u0430 \u0432\u0435\u0441\u044c \u0457\u0457 \u0432\u043c\u0456\u0441\u0442?", + "Are you sure you want to permanently delete the template?": "\u0421\u043f\u0440\u0430\u0432\u0434\u0456 \u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0446\u0435\u0439 \u0448\u0430\u0431\u043b\u043e\u043d?", + "Cancel": "\u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438", + "Category": "\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0456\u044f", + "Category actions": "\u0414\u0456\u0457 \u0437 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0456\u0454\u044e", + "Category name": "\u041d\u0430\u0437\u0432\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0456\u0457", + "Choose category": "\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044c \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0456\u044e", + "Collapse": "\u0417\u0433\u043e\u0440\u043d\u0443\u0442\u0438", + "Create category...": "\u0421\u0442\u0432\u043e\u0440\u0438\u0442\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0456\u044e...", + "Delete": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438", + "Delete all": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0432\u0441\u0435", + "Expand": "\u0420\u043e\u0437\u0433\u043e\u0440\u043d\u0443\u0442\u0438", + "Filter templates": "\u0424\u0456\u043b\u044c\u0442\u0440\u0443\u0432\u0430\u0442\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0438", + "Insert": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438", + "Insert template": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0448\u0430\u0431\u043b\u043e\u043d", + "Locked for editing": "\u041d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u043d\u043d\u044f", + "Move all items": "\u041f\u0435\u0440\u0435\u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u0432\u0441\u0456 \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0438", + "Move all items...": "\u041f\u0435\u0440\u0435\u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u0432\u0441\u0456 \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0438...", + "Move to": "\u041f\u0435\u0440\u0435\u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u0434\u043e", + "Move to...": "\u041f\u0435\u0440\u0435\u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u0434\u043e...", + "New category": "\u041d\u043e\u0432\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0456\u044f", + "New template": "\u041d\u043e\u0432\u0438\u0439 \u0448\u0430\u0431\u043b\u043e\u043d", + "OK": "\u0413\u0430\u0440\u0430\u0437\u0434", + "Operation failed": "\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0432\u0438\u043a\u043e\u043d\u0430\u0442\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0456\u044e", + "Rename category": "\u041f\u0435\u0440\u0435\u0439\u043c\u0435\u043d\u0443\u0432\u0430\u0442\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0456\u044e", + "Rename template": "\u041f\u0435\u0440\u0435\u0439\u043c\u0435\u043d\u0443\u0432\u0430\u0442\u0438 \u0448\u0430\u0431\u043b\u043e\u043d", + "Rename...": "\u041f\u0435\u0440\u0435\u0439\u043c\u0435\u043d\u0443\u0432\u0430\u0442\u0438...", + "Save": "\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438", + "Save as template": "\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u044f\u043a \u0448\u0430\u0431\u043b\u043e\u043d", + "Save as template...": "\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u044f\u043a \u0448\u0430\u0431\u043b\u043e\u043d...", + "Search": "\u041f\u043e\u0448\u0443\u043a", + "Select template to preview": "\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f \u043f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u044c\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434\u0443", + "Template actions": "\u0414\u0456\u0457 \u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c", + "Template name": "\u041d\u0430\u0437\u0432\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u0443", + "Template successfully saved": "\u0428\u0430\u0431\u043b\u043e\u043d \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043e", + "Template...": "\u0428\u0430\u0431\u043b\u043e\u043d...", + "Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u0438", + "The category is empty": "\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0456\u044f \u043f\u0443\u0441\u0442\u0430", + "Uncategorized": "\u0411\u0435\u0437 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0456\u0457" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/vi.js b/plugins/advtemplate/langs/vi.js new file mode 100644 index 00000000..48b6285f --- /dev/null +++ b/plugins/advtemplate/langs/vi.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("vi", { + "Actions": "C\xe1c h\xe0nh \u0111\u1ed9ng", + "Are you sure you want to permanently delete the category and all its content?": "B\u1ea1n c\xf3 ch\u1eafc ch\u1eafn l\xe0 b\u1ea1n mu\u1ed1n x\xf3a v\u0129nh vi\u1ec5n danh m\u1ee5c n\xe0y v\xe0 m\u1ecdi n\u1ed9i dung trong \u0111\xf3 kh\xf4ng?", + "Are you sure you want to permanently delete the template?": "B\u1ea1n c\xf3 ch\u1eafc ch\u1eafn l\xe0 b\u1ea1n mu\u1ed1n x\xf3a v\u0129nh vi\u1ec5n m\u1eabu n\xe0y kh\xf4ng?", + "Cancel": "H\u1ee7y b\u1ecf", + "Category": "Danh m\u1ee5c", + "Category actions": "H\xe0nh \u0111\u1ed9ng danh m\u1ee5c", + "Category name": "T\xean danh m\u1ee5c", + "Choose category": "Ch\u1ecdn danh m\u1ee5c", + "Collapse": "Thu g\u1ecdn", + "Create category...": "T\u1ea1o danh m\u1ee5c...", + "Delete": "X\xf3a", + "Delete all": "X\xf3a t\u1ea5t c\u1ea3", + "Expand": "M\u1edf r\u1ed9ng", + "Filter templates": "L\u1ecdc c\xe1c m\u1eabu", + "Insert": "Ch\xe8n", + "Insert template": "Ch\xe8n m\u1eabu", + "Locked for editing": "Kh\xf3a ch\u1ec9nh s\u1eeda", + "Move all items": "Di chuy\u1ec3n t\u1ea5t c\u1ea3 c\xe1c m\u1ee5c", + "Move all items...": "Di chuy\u1ec3n t\u1ea5t c\u1ea3 c\xe1c m\u1ee5c...", + "Move to": "Di chuy\u1ec3n \u0111\u1ebfn", + "Move to...": "Di chuy\u1ec3n \u0111\u1ebfn...", + "New category": "Danh m\u1ee5c m\u1edbi", + "New template": "M\u1eabu m\u1edbi", + "OK": "OK", + "Operation failed": "Thao t\xe1c th\u1ea5t b\u1ea1i", + "Rename category": "\u0110\u1ed5i t\xean danh m\u1ee5c", + "Rename template": "\u0110\u1ed5i t\xean m\u1eabu", + "Rename...": "\u0110\u1ed5i t\xean...", + "Save": "L\u01b0u", + "Save as template": "L\u01b0u d\u01b0\u1edbi d\u1ea1ng m\u1eabu", + "Save as template...": "L\u01b0u d\u01b0\u1edbi d\u1ea1ng m\u1eabu...", + "Search": "T\xecm ki\u1ebfm", + "Select template to preview": "Ch\u1ecdn m\u1eabu \u0111\u1ec3 xem tr\u01b0\u1edbc", + "Template actions": "H\xe0nh \u0111\u1ed9ng khu\xf4n m\u1eabu", + "Template name": "T\xean m\u1eabu", + "Template successfully saved": "\u0110\xe3 l\u01b0u m\u1eabu th\xe0nh c\xf4ng", + "Template...": "M\u1eabu...", + "Templates": "M\u1eabu", + "The category is empty": "Danh m\u1ee5c \u0111ang tr\u1ed1ng", + "Uncategorized": "Ch\u01b0a \u0111\u01b0\u1ee3c ph\xe2n lo\u1ea1i" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/zh-CN.js b/plugins/advtemplate/langs/zh-CN.js new file mode 100644 index 00000000..7f0060dd --- /dev/null +++ b/plugins/advtemplate/langs/zh-CN.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("zh-CN", { + "Actions": "\u64cd\u4f5c", + "Are you sure you want to permanently delete the category and all its content?": "\u662f\u5426\u786e\u5b9e\u8981\u6c38\u4e45\u5220\u9664\u8be5\u7c7b\u522b\u53ca\u5176\u6240\u6709\u5185\u5bb9\uff1f", + "Are you sure you want to permanently delete the template?": "\u662f\u5426\u786e\u5b9e\u8981\u6c38\u4e45\u5220\u9664\u8be5\u6a21\u677f\uff1f", + "Cancel": "\u53d6\u6d88", + "Category": "\u7c7b\u522b", + "Category actions": "\u7c7b\u522b\u64cd\u4f5c", + "Category name": "\u7c7b\u522b\u540d\u79f0", + "Choose category": "\u9009\u62e9\u7c7b\u522b", + "Collapse": "\u6298\u53e0", + "Create category...": "\u521b\u5efa\u7c7b\u522b...", + "Delete": "\u5220\u9664", + "Delete all": "\u5168\u90e8\u5220\u9664", + "Expand": "\u5c55\u5f00", + "Filter templates": "\u7b5b\u9009\u6a21\u677f", + "Insert": "\u63d2\u5165", + "Insert template": "\u63d2\u5165\u6a21\u677f", + "Locked for editing": "\u5df2\u9501\u5b9a\uff0c\u65e0\u6cd5\u7f16\u8f91", + "Move all items": "\u79fb\u52a8\u6240\u6709\u9879", + "Move all items...": "\u79fb\u52a8\u6240\u6709\u9879...", + "Move to": "\u79fb\u81f3", + "Move to...": "\u79fb\u81f3...", + "New category": "\u65b0\u5efa\u7c7b\u522b", + "New template": "\u65b0\u5efa\u6a21\u677f", + "OK": "\u786e\u5b9a", + "Operation failed": "\u64cd\u4f5c\u5931\u8d25", + "Rename category": "\u91cd\u547d\u540d\u7c7b\u522b", + "Rename template": "\u91cd\u547d\u540d\u6a21\u677f", + "Rename...": "\u91cd\u547d\u540d...", + "Save": "\u4fdd\u5b58", + "Save as template": "\u53e6\u5b58\u4e3a\u6a21\u677f", + "Save as template...": "\u53e6\u5b58\u4e3a\u6a21\u677f...", + "Search": "\u641c\u7d22", + "Select template to preview": "\u9009\u62e9\u8981\u9884\u89c8\u7684\u6a21\u677f", + "Template actions": "\u6a21\u677f\u64cd\u4f5c", + "Template name": "\u6a21\u677f\u540d\u79f0", + "Template successfully saved": "\u6210\u529f\u4fdd\u5b58\u4e86\u6a21\u677f", + "Template...": "\u6a21\u677f...", + "Templates": "\u6a21\u677f", + "The category is empty": "\u7c7b\u522b\u4e3a\u7a7a", + "Uncategorized": "\u672a\u5206\u7c7b" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/zh-TW.js b/plugins/advtemplate/langs/zh-TW.js new file mode 100644 index 00000000..9e3648a2 --- /dev/null +++ b/plugins/advtemplate/langs/zh-TW.js @@ -0,0 +1,48 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("zh-TW", { + "Actions": "\u52d5\u4f5c", + "Are you sure you want to permanently delete the category and all its content?": "\u662f\u5426\u78ba\u5b9a\u8981\u6c38\u4e45\u522a\u9664\u8a72\u985e\u5225\u53ca\u5176\u6240\u6709\u5167\u5bb9\uff1f", + "Are you sure you want to permanently delete the template?": "\u662f\u5426\u78ba\u5b9a\u8981\u6c38\u4e45\u522a\u9664\u6b64\u7bc4\u672c\uff1f", + "Cancel": "\u53d6\u6d88", + "Category": "\u985e\u5225", + "Category actions": "\u985e\u5225\u52d5\u4f5c", + "Category name": "\u985e\u5225\u540d\u7a31", + "Choose category": "\u9078\u64c7\u985e\u5225", + "Collapse": "\u647a\u758a", + "Create category...": "\u5efa\u7acb\u985e\u5225...", + "Delete": "\u522a\u9664", + "Delete all": "\u5168\u90e8\u522a\u9664", + "Expand": "\u5c55\u958b", + "Filter templates": "\u7be9\u9078\u7bc4\u672c", + "Insert": "\u63d2\u5165", + "Insert template": "\u63d2\u5165\u7bc4\u672c", + "Locked for editing": "\u5df2\u9396\u5b9a\uff0c\u7121\u6cd5\u7de8\u8f2f", + "Move all items": "\u79fb\u52d5\u6240\u6709\u9805\u76ee", + "Move all items...": "\u79fb\u52d5\u6240\u6709\u9805\u76ee...", + "Move to": "\u79fb\u81f3", + "Move to...": "\u79fb\u81f3...", + "New category": "\u65b0\u985e\u5225", + "New template": "\u65b0\u7bc4\u672c", + "OK": "\u78ba\u5b9a", + "Operation failed": "\u4f5c\u696d\u5931\u6557", + "Rename category": "\u91cd\u65b0\u547d\u540d\u985e\u5225", + "Rename template": "\u91cd\u65b0\u547d\u540d\u7bc4\u672c", + "Rename...": "\u91cd\u65b0\u547d\u540d...", + "Save": "\u5132\u5b58", + "Save as template": "\u53e6\u5b58\u70ba\u7bc4\u672c", + "Save as template...": "\u53e6\u5b58\u70ba\u7bc4\u672c...", + "Search": "\u641c\u5c0b", + "Select template to preview": "\u9078\u53d6\u8981\u9810\u89bd\u7684\u7bc4\u672c", + "Template actions": "\u7bc4\u672c\u52d5\u4f5c", + "Template name": "\u7bc4\u672c\u540d\u7a31", + "Template successfully saved": "\u7bc4\u672c\u5132\u5b58\u6210\u529f", + "Template...": "\u7bc4\u672c...", + "Templates": "\u7bc4\u672c", + "The category is empty": "\u985e\u5225\u70ba\u7a7a\u767d", + "Uncategorized": "\u672a\u5206\u985e" +}); \ No newline at end of file diff --git a/plugins/advtemplate/langs/zh_CN.js b/plugins/advtemplate/langs/zh_CN.js new file mode 100644 index 00000000..229d2ce4 --- /dev/null +++ b/plugins/advtemplate/langs/zh_CN.js @@ -0,0 +1,50 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("zh-CN", { + "Actions": "\u64cd\u4f5c", + "Are you sure you want to permanently delete the category and all its content?": "\u662f\u5426\u786e\u5b9e\u8981\u6c38\u4e45\u5220\u9664\u8be5\u7c7b\u522b\u53ca\u5176\u6240\u6709\u5185\u5bb9\uff1f", + "Are you sure you want to permanently delete the template?": "\u662f\u5426\u786e\u5b9e\u8981\u6c38\u4e45\u5220\u9664\u8be5\u6a21\u677f\uff1f", + "Cancel": "\u53d6\u6d88", + "Category": "\u7c7b\u522b", + "Category actions": "\u7c7b\u522b\u64cd\u4f5c", + "Category name": "\u7c7b\u522b\u540d\u79f0", + "Choose category": "\u9009\u62e9\u7c7b\u522b", + "Collapse": "\u6298\u53e0", + "Create category...": "\u521b\u5efa\u7c7b\u522b...", + "Delete": "\u5220\u9664", + "Delete all": "\u5168\u90e8\u5220\u9664", + "Expand": "\u5c55\u5f00", + "Filter templates": "\u7b5b\u9009\u6a21\u677f", + "Insert": "\u63d2\u5165", + "Insert template": "\u63d2\u5165\u6a21\u677f", + "Locked for editing": "\u5df2\u9501\u5b9a\uff0c\u65e0\u6cd5\u7f16\u8f91", + "Move all items": "\u79fb\u52a8\u6240\u6709\u9879", + "Move all items...": "\u79fb\u52a8\u6240\u6709\u9879...", + "Move to": "\u79fb\u81f3", + "Move to...": "\u79fb\u81f3...", + "New category": "\u65b0\u5efa\u7c7b\u522b", + "New template": "\u65b0\u5efa\u6a21\u677f", + "OK": "\u786e\u5b9a", + "Operation failed": "\u64cd\u4f5c\u5931\u8d25", + "Rename category": "\u91cd\u547d\u540d\u7c7b\u522b", + "Rename template": "\u91cd\u547d\u540d\u6a21\u677f", + "Rename...": "\u91cd\u547d\u540d...", + "Save": "\u4fdd\u5b58", + "Save as template": "\u53e6\u5b58\u4e3a\u6a21\u677f", + "Save as template...": "\u53e6\u5b58\u4e3a\u6a21\u677f...", + "Search": "\u641c\u7d22", + "Select template to preview": "\u9009\u62e9\u8981\u9884\u89c8\u7684\u6a21\u677f", + "Template actions": "\u6a21\u677f\u64cd\u4f5c", + "Template name": "\u6a21\u677f\u540d\u79f0", + "Template successfully saved": "\u6210\u529f\u4fdd\u5b58\u4e86\u6a21\u677f", + "Template...": "\u6a21\u677f...", + "Templates": "\u6a21\u677f", + "The category is empty": "\u7c7b\u522b\u4e3a\u7a7a", + "Uncategorized": "\u672a\u5206\u7c7b" +}); + +console.warn('TinyMCE language code "zh_CN" is deprecated, please use "zh-CN" instead.'); \ No newline at end of file diff --git a/plugins/advtemplate/langs/zh_TW.js b/plugins/advtemplate/langs/zh_TW.js new file mode 100644 index 00000000..a55c31b5 --- /dev/null +++ b/plugins/advtemplate/langs/zh_TW.js @@ -0,0 +1,50 @@ +/*! + * TinyMCE Language Pack + * + * Copyright (c) 2024 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + */ +tinymce.addI18n("zh-TW", { + "Actions": "\u52d5\u4f5c", + "Are you sure you want to permanently delete the category and all its content?": "\u662f\u5426\u78ba\u5b9a\u8981\u6c38\u4e45\u522a\u9664\u8a72\u985e\u5225\u53ca\u5176\u6240\u6709\u5167\u5bb9\uff1f", + "Are you sure you want to permanently delete the template?": "\u662f\u5426\u78ba\u5b9a\u8981\u6c38\u4e45\u522a\u9664\u6b64\u7bc4\u672c\uff1f", + "Cancel": "\u53d6\u6d88", + "Category": "\u985e\u5225", + "Category actions": "\u985e\u5225\u52d5\u4f5c", + "Category name": "\u985e\u5225\u540d\u7a31", + "Choose category": "\u9078\u64c7\u985e\u5225", + "Collapse": "\u647a\u758a", + "Create category...": "\u5efa\u7acb\u985e\u5225...", + "Delete": "\u522a\u9664", + "Delete all": "\u5168\u90e8\u522a\u9664", + "Expand": "\u5c55\u958b", + "Filter templates": "\u7be9\u9078\u7bc4\u672c", + "Insert": "\u63d2\u5165", + "Insert template": "\u63d2\u5165\u7bc4\u672c", + "Locked for editing": "\u5df2\u9396\u5b9a\uff0c\u7121\u6cd5\u7de8\u8f2f", + "Move all items": "\u79fb\u52d5\u6240\u6709\u9805\u76ee", + "Move all items...": "\u79fb\u52d5\u6240\u6709\u9805\u76ee...", + "Move to": "\u79fb\u81f3", + "Move to...": "\u79fb\u81f3...", + "New category": "\u65b0\u985e\u5225", + "New template": "\u65b0\u7bc4\u672c", + "OK": "\u78ba\u5b9a", + "Operation failed": "\u4f5c\u696d\u5931\u6557", + "Rename category": "\u91cd\u65b0\u547d\u540d\u985e\u5225", + "Rename template": "\u91cd\u65b0\u547d\u540d\u7bc4\u672c", + "Rename...": "\u91cd\u65b0\u547d\u540d...", + "Save": "\u5132\u5b58", + "Save as template": "\u53e6\u5b58\u70ba\u7bc4\u672c", + "Save as template...": "\u53e6\u5b58\u70ba\u7bc4\u672c...", + "Search": "\u641c\u5c0b", + "Select template to preview": "\u9078\u53d6\u8981\u9810\u89bd\u7684\u7bc4\u672c", + "Template actions": "\u7bc4\u672c\u52d5\u4f5c", + "Template name": "\u7bc4\u672c\u540d\u7a31", + "Template successfully saved": "\u7bc4\u672c\u5132\u5b58\u6210\u529f", + "Template...": "\u7bc4\u672c...", + "Templates": "\u7bc4\u672c", + "The category is empty": "\u985e\u5225\u70ba\u7a7a\u767d", + "Uncategorized": "\u672a\u5206\u985e" +}); + +console.warn('TinyMCE language code "zh_TW" is deprecated, please use "zh-TW" instead.'); \ No newline at end of file diff --git a/plugins/advtemplate/plugin.js b/plugins/advtemplate/plugin.js new file mode 100644 index 00000000..08c3f0f7 --- /dev/null +++ b/plugins/advtemplate/plugin.js @@ -0,0 +1,10 @@ +/*! + * Tiny Templates plugin + * + * Copyright (c) 2023 Ephox Corporation DBA Tiny Technologies, Inc. + * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ + * + * Version: 8.3.0-112 + */ + +!function(){"use strict";const e=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=r=e,(o=String).prototype.isPrototypeOf(n)||r.constructor?.name===o.name)?"string":t;var n,r,o})(t)===e,t=e=>t=>typeof t===e,n=e("string"),r=e("object"),o=e("array"),a=t("boolean"),s=e=>undefined===e;const i=e=>null==e,l=e=>!i(e),c=t("function"),d=t("number"),m=()=>{},u=e=>()=>e,p=e=>e,g=e=>e(),v=u(!1),h=u(!0);class y{tag;value;static singletonNone=new y(!1);constructor(e,t){this.tag=e,this.value=t}static some(e){return new y(!0,e)}static none(){return y.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?y.some(e(this.value)):y.none()}bind(e){return this.tag?e(this.value):y.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:y.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(e??"Called getOrDie on None")}static from(e){return l(e)?y.some(e):y.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}const f=Array.prototype.slice,w=Array.prototype.indexOf,b=Array.prototype.push,S=(e,t)=>((e,t)=>w.call(e,t))(e,t)>-1,x=(e,t)=>{for(let n=0,r=e.length;n{const n=e.length,r=new Array(n);for(let o=0;o{for(let n=0,r=e.length;n{const n=[];for(let r=0,o=e.length;r((e,t,n)=>{for(let r=0,o=e.length;r{for(let n=0,r=e.length;n(e=>{const t=[];for(let n=0,r=e.length;n{for(let n=0,r=e.length;n{const n=A(e);for(let r=0,o=n.length;rL(e,((e,n)=>({k:n,v:t(e,n)}))),L=(e,t)=>{const n={};return k(e,((e,r)=>{const o=t(e,r);n[o.k]=o.v})),n},I=(e,t)=>{const n=[];return k(e,((e,r)=>{n.push(t(e,r))})),n},M=(e,t)=>T.call(e,t),j=e=>{let t=e;return{get:()=>t,set:e=>{t=e}}},N=e=>{const t=t=>t(e),n=u(e),r=()=>o,o={tag:!0,inner:e,fold:(t,n)=>n(e),isValue:h,isError:v,map:t=>z.value(t(e)),mapError:r,bind:t,exists:t,forall:t,getOr:n,or:r,getOrThunk:n,orThunk:r,getOrDie:n,each:t=>{t(e)},toOptional:()=>y.some(e)};return o},B=e=>{const t=()=>n,n={tag:!1,inner:e,fold:(t,n)=>t(e),isValue:v,isError:h,map:t,mapError:t=>z.error(t(e)),bind:t,exists:v,forall:h,getOr:p,or:p,getOrThunk:g,orThunk:g,getOrDie:(r=String(e),()=>{throw new Error(r)}),each:m,toOptional:y.none};var r;return n},z={value:N,error:B,fromOption:(e,t)=>e.fold((()=>B(t)),N)},V=(e,t)=>e?y.some(t):y.none(),H=(e,t,n=0,r)=>{const o=e.indexOf(t,n);return-1!==o&&(!!s(r)||o+t.length<=r)},U=(F=/^\s+|\s+$/g,e=>e.replace(F,""));var F;const q=(e,t)=>{const{type:n,message:r}=t;e.notificationManager.open({type:n,text:r})},K=e=>{(e=>{switch(e){case"error":return console.error;case"info":return console.info;case"warn":return console.warn;default:return console.log}})(e.type)(e.message)},W=(e,t)=>{const{protect:n,allowList:r=[],blockList:o=[]}=null!=e?e:{};let a;return a=l(n)?n:r.length>0||o.length>0||t,{protect:a,allowList:r,blockList:o}},G=e=>{const{protect:t,allowList:n,blockList:r}=null!=e?e:{};return e=>{const o=e.toLowerCase();return n.length>0?!x(n,(e=>e.toLowerCase()===o)):r.length>0?x(r,(e=>e.toLowerCase()===o)):t}},Q=e=>{const t=G(e);return(e,n)=>{const r=((e,t)=>`${e}:${t}`)(n,e.toLowerCase());return t(r)}},J=(e,t,n,r)=>{const o=Reflect.get(e,"on"),a={protectedEventHandlers:[],cleanupScheduled:!1},s=(e,t)=>{r&&console.log(`[EventsProxy] ${e}`,t||"")},i=t=>{"invalid"===t&&a.protectedEventHandlers.length>0&&(s("Removing event handlers",a.protectedEventHandlers),_(a.protectedEventHandlers,(t=>{e.off(t.name,t.callback)})),a.protectedEventHandlers=[])},l=t.onStatusChange(i);return e.on("remove",l),(r,l,c)=>{s(`Adding event listener: ${r}`,{shouldProtect:n(r)});const d=((e,r)=>{const o=n(e),s=t.getStatus(),i=o&&"invalid"===s?m:r;return o&&a.protectedEventHandlers.push({name:e,callback:i}),i})(r,l);return a.cleanupScheduled||(a.cleanupScheduled=!0,window.setTimeout((()=>{i(t.getStatus()),a.cleanupScheduled=!1}),0)),Reflect.apply(o,e,[r,d,c])}},Y=(e,t,n)=>r=>{const o="invalid"!==t.getStatus()&&l(n)?n(r):m,a=((e,t,n)=>{const r=e=>{"invalid"===e&&n.setEnabled(!1)},o=()=>r(t.getStatus());r(t.getStatus()),e.on("NodeChange",o);const a=t.onStatusChange(r);return()=>{e.off("NodeChange",o),a()}})(e,t,r);return e=>{null==o||o(e),a()}},X=(e,t,n)=>(...r)=>{var o;return"invalid"===e.getStatus()?n:null!==(o=null==t?void 0:t(...r))&&void 0!==o?o:n},Z=(e,t)=>X(e,t,Promise.resolve([])),ee=(e,t)=>X(e,t,[]),te=(e,t)=>X(e,t,!1),ne=(e,t,r,o)=>{const a=t=>{const{command:a,value:s}=t,i=y.from(s).filter(n).map((e=>e.toLowerCase())),l=a.toLowerCase()===o.toLowerCase(),c=i.exists((e=>r.has(e))),d=i.exists((t=>t===e.queryCommandValue(o)));l&&c&&!d&&t.preventDefault()},s=t.onStatusChange((t=>{if("invalid"===t){e.on("BeforeExecCommand",a);const t=()=>{const t=e.queryCommandValue(o);r.has(t.toLowerCase())&&e.execCommand(o,!1,t)};e.initialized?t():e.on("init",t)}}));e.on("remove",(()=>{s(),e.off("BeforeExecCommand",a)}))},re=(e,t,r,o,a,s=!1)=>{const i=new Set,l=new Set,c=(e,t)=>{s&&console.log(`[UiProxy] ${e}`,t||"")};((e,t,n)=>{ne(e,t,n,"ToggleView")})(e,r,i),((e,t,n)=>{ne(e,t,n,"ToggleSidebar")})(e,r,l);const d=(t,n,s,i)=>{const l=a(t,s);return c(`${i}: ${t}`,{spec:n,context:o,shouldProtect:l}),l?{...n,onSetup:Y(e,r,n.onSetup)}:n};return new Proxy(t,{get:(e,t,s)=>{const m=Reflect.get(e,t,s);if(!n(t))return m;switch(t){case"addButton":case"addGroupToolbarButton":case"addToggleButton":case"addMenuButton":case"addSplitButton":return(...n)=>{const[r,o,...a]=n,s=d(r,o,"button",String(t));return Reflect.apply(m,e,[r,s,...a])};case"addMenuItem":case"addToggleMenuItem":case"addNestedMenuItem":return(...n)=>{const[r,o,...a]=n,s=d(r,o,"menuitem",String(t));return Reflect.apply(m,e,[r,s,...a])};case"addAutocompleter":return(...n)=>{const[s,i,...l]=n,d=a(s,"autocompleter");if(c(`${String(t)}: ${s}`,{spec:i,context:o,shouldProtect:d}),d){const t={...i,fetch:Z(r,i.fetch)};return Reflect.apply(m,e,[s,t,...l])}return Reflect.apply(m,e,[s,i,...l])};case"addSidebar":return(...n)=>{const[r,s,...i]=n,d=a(r,"sidebar");if(c(`${String(t)}: ${r}`,{spec:s,context:o,shouldProtect:d}),d){l.add(r.toLowerCase());const t={...s};return Reflect.apply(m,e,[r,t,...i])}return Reflect.apply(m,e,[r,s,...i])};case"addView":return(...n)=>{const[r,s,...l]=n,d=a(r,"view");if(c(`${String(t)}: ${r}`,{spec:s,context:o,shouldProtect:d}),d){i.add(r.toLowerCase());const t={...s};return Reflect.apply(m,e,[r,t,...l])}return Reflect.apply(m,e,[r,s,...l])};case"addContextMenu":return(...n)=>{const[s,i,...l]=n,d=a(s,"contextmenu");if(c(`${String(t)}: ${s}`,{spec:i,context:o,shouldProtect:d}),d){const t={...i,update:ee(r,i.update)};return Reflect.apply(m,e,[s,t,...l])}return Reflect.apply(m,e,[s,i,...l])};case"addContextToolbar":case"addContextForm":return(...n)=>{const[s,i,...l]=n,d=a(s,"contexttoolbar");if(c(`${String(t)}: ${s}`,{spec:i,context:o,shouldProtect:d}),d){const t={...i,predicate:te(r,i.predicate)};return Reflect.apply(m,e,[s,t,...l])}return Reflect.apply(m,e,[s,i,...l])};case"addIcon":case"getAll":case"addContext":return m}}})},oe=new Set(["addCommand","addCommands","addQueryStateHandler","addQueryValueHandler"]),ae=e=>(t,n)=>{e&&console.log(`[EditorProxy] ${t}`,n||"")},se=(e,t)=>{const{statusProvider:n,uiContext:r,protection:o,debug:a=!1}=t,{events:s,commands:i,ui:l}=o;ae(a)("Creating enhanced editor with options:",{hasStatusProvider:!!n,uiContext:r,debug:a,protection:o});const{editorUiProxy:d,editorCommandsProxy:u,editorEventListenerProxy:p}=((e,t,n,r,o,a,s)=>{const i=a.protect?{...e.ui,registry:re(e,e.ui.registry,t,n,Q(a),s)}:e.ui,l=r.protect?((e,t,n,r,o)=>{const a={protectedCommands:[],cleanupScheduled:!1},s=(e,t)=>{o&&console.log(`[CommandsProxy] ${e}`,t||"")},i=(e,t)=>{const o=r(e),s=n.getStatus();return o&&a.protectedCommands.push(e),o&&"invalid"===s?m:t},l=t=>{"invalid"===t&&a.protectedCommands.length>0&&(s("Removing commands",a.protectedCommands),_(a.protectedCommands,(t=>{e.editorCommands.removeCommand(t)})),a.protectedCommands=[])},c=()=>{a.cleanupScheduled||(a.cleanupScheduled=!0,window.setTimeout((()=>{l(n.getStatus()),a.cleanupScheduled=!1}),0))},d=n.onStatusChange(l);return e.on("remove",d),new Proxy(t,{get:(e,n,o)=>{if(s(`Accessing property: ${String(n)}`),"addCommand"===n){const a=Reflect.get(e,n,o);return(e,n,...o)=>{s(`Adding command: ${e}`,{shouldProtect:r(e)});const l=i(e,n);return c(),Reflect.apply(a,t,[e,l,...o])}}if("addCommands"===n){const r=Reflect.get(e,n,o);return(e,n="exec")=>{s(`Adding commands (${n})`,{commandCount:Object.keys(e).length,willApplyEnforcement:"exec"===n});const o="exec"!==n?e:D(e,((e,t)=>i(t,e)));return c(),Reflect.apply(r,t,[o,n])}}return Reflect.get(e,n,o)}})})(e,e.editorCommands,t,G(r),s):e.editorCommands;return{editorUiProxy:i,editorCommandsProxy:l,editorEventListenerProxy:o.protect?J(e,t,G(o),s):e.on.bind(e)}})(e,n,r||"",i,s,l,a),g=((e,t,n,r)=>(o,a,s)=>{const i=String(a);if("on"===a)return ae(r)("on intercepted"),n;if(oe.has(i))return ae(r)(`${i} intercepted`),t[i].bind(t);if("editorCommands"===a)return ae(r)("editorCommands accessed"),t;if("ui"===a)return ae(r)("ui accessed"),e;const l=Reflect.get(o,a,s);return c(l)?l.bind(o):l})(d,u,p,a);return new Proxy(e,{get:g,set:(e,t,n,r)=>Reflect.set(e,t,n,r),has:(e,t)=>Reflect.has(e,t),ownKeys:e=>Reflect.ownKeys(e),getOwnPropertyDescriptor:(e,t)=>Reflect.getOwnPropertyDescriptor(e,t),defineProperty:(e,t,n)=>Reflect.defineProperty(e,t,n),deleteProperty:(e,t)=>Reflect.deleteProperty(e,t),isExtensible:e=>Reflect.isExtensible(e),preventExtensions:e=>Reflect.preventExtensions(e),getPrototypeOf:e=>Reflect.getPrototypeOf(e),setPrototypeOf:(e,t)=>Reflect.setPrototypeOf(e,t)})},ie=e=>parseInt(e,10),le=(e,t)=>{const n=e-t;return 0===n?0:n>0?1:-1},ce=(e,t,n)=>({major:e,minor:t,patch:n}),de=e=>{const t=/([0-9]+)\.([0-9]+)\.([0-9]+)(?:(\-.+)?)/.exec(e);return t?ce(ie(t[1]),ie(t[2]),ie(t[3])):ce(0,0,0)},me=(e,t)=>!!e&&-1===((e,t)=>{const n=le(e.major,t.major);if(0!==n)return n;const r=le(e.minor,t.minor);if(0!==r)return r;const o=le(e.patch,t.patch);return 0!==o?o:0})((e=>de((e=>[e.majorVersion,e.minorVersion].join(".").split(".").slice(0,3).join("."))(e)))(e),de(t)),ue=de("8.3.0"),pe=`${ue.major}.${ue.minor}.0`,ge=`${ue.major+1}.0.0`,ve=(e,t)=>{const{setup:n,protection:r}=t;return(o,a)=>{if(!((e,t)=>me(e,pe)?(console.error(`The "${t}" plugin requires at least version ${pe} of TinyMCE.`),!1):!!me(e,ge)||(console.error(`The "${t}" plugin requires at least version ${pe} of TinyMCE but less than ${ge}.`),!1))(tinymce,e)||((e,t)=>!!(e=>{var t;const n=null===(t=e.options.get("license_key"))||void 0===t?void 0:t.toLowerCase(),r=e.options.get("online_license_key");return i(r)&&"gpl"===n})(e)&&(((e,t)=>{const{console:n,editor:r}=t;l(r)&&(e._skinLoaded?q(e,r):e.on("SkinLoaded",(()=>{q(e,r)}))),l(n)&&K(n)})(e,{console:{type:"error",message:[`The "${t}" plugin requires a valid TinyMCE license key.`,"Read more: https://www.tiny.cloud/docs/tinymce/latest/license-key/"].join(" ")}}),!0))(o,e))return{};const s=(e=>{const{protect:t=!0,events:n,commands:r,ui:o,api:a}=null!=e?e:{};return{protect:t,events:W(n,false),commands:W(r,true),ui:W(o,true),api:W(a,true)}})(r),d=((e="pre-validation")=>{const t=j(e),n=new Set;let r=!1;const{enableLogging:o=!1}={},a=(e,...t)=>{o&&console.log(`[StatusProvider] ${e}`,...t)};return{setStatus:e=>{const r=t.get();if(r===e)return a("Status unchanged:",e),!1;t.set(e),a("Status changed:",r,"->",e);const o={currentStatus:e,previousStatus:r},s=Array.from(n);return _(s,(e=>{e(o.currentStatus,o.previousStatus)})),!0},onStatusChange:e=>(n.add(e),a("Callback registered, total listeners:",n.size),()=>{n.delete(e)&&a("Callback unregistered, remaining listeners:",n.size)}),getStatus:t.get,hasListeners:()=>n.size>0,destroy:()=>{r||(a("Destroying StatusProvider, clearing",n.size,"listeners"),n.clear(),r=!0)}}})(),m=((e,t,n)=>{const r=`commercial-license-${t}`;return e.ui.registry.addContext(r,(()=>"invalid"!==n.getStatus()&&!e.mode.isReadOnly())),e.licenseKeyManager.validate({plugin:t}).then((e=>{n.setStatus(e?"valid":"invalid")}),(e=>{console.error(e),console.error(`An unknown error occurred when trying to validate "${t}" plugin.`),n.setStatus("invalid")})),{ui:{context:r}}})(o,e,d),u=s.protect?se(o,{statusProvider:d,uiContext:m.ui.context,debug:t.debug||!1,protection:s}):o,p=((e,t)=>({pluginCode:e,enforcer:{isInvalid:()=>"invalid"===t.getStatus(),onInvalid:e=>t.onStatusChange(((t,n)=>{"invalid"===t&&e(t,n)}))}}))(e,d);return((e,t,n,r)=>{if(t.protect&&t.api.protect&&l(e)){const a=G(t.api);return(o=e=>"invalid"===n.getStatus()&&a(e),(e,t)=>D(e,((e,n)=>c(e)?(...r)=>{if(o(n.toLowerCase())){const e=`Method "${l(t)?`${t}.`:""}${n}" is not available due to license key restrictions.`,r=new Error(e);throw console.error(e),r}return e(...r)}:e)))(e,r)}var o;return e})(n(u,a,p),s,d,e)}};class he extends Error{constructor(e){super(e),this.name="AdvTemplateError"}}const ye=e=>n(e)&&e.length>0,fe=e=>ye(e),we=e=>M(e,"id")&&fe(e.id),be=e=>M(e,"title")&&ye(e.title),Se=e=>M(e,"content")&&ye(e.content),xe=e=>r(e)&&we(e)&&be(e)&&M(e,"items")&&Re(e.items),Ce=e=>e.locked||!1,_e=(e,t)=>Pe(e.id,t).exists(Ce),Pe=(e,t)=>E(t,(t=>xe(t)&&S(C(t.items,(({id:e})=>e)),e))),Ee=e=>r(e)&&we(e)&&be(e)&&(e=>!M(e,"items")||Re(e.items))(e),Re=e=>o(e)&&O(e,Ee),$e=e=>M(e,"items")&&Ae(e.items),Oe=e=>r(e)&&be(e)&&((e=>Se(e))(e)||$e(e)),Ae=e=>o(e)&&O(e,Oe),Te=(e,t)=>n=>e(n)?z.value(n):z.error(t),ke=Te((e=>r(e)&&(e=>{for(const t in e)if(T.call(e,t))return!1;return!0})(e)),"response should contain empty object"),De=Te((e=>r(e)&&we(e)),"response should contain id"),Le=Te((e=>r(e)&&we(e)&&be(e)&&Se(e)),"response contains invalid template data"),Ie=e=>Re(e)?(e=>{const t=e=>$(e,(e=>xe(e)?[e.id,...t(e.items)]:[e.id])),n=t(e);return n.length===[...new Set(n)].length})(e)?z.value(e):z.error("response contains duplicated ids"):z.error("response contains invalid data"),Me=e=>t=>t.options.get(e),je=e=>{const t=(t,n)=>{var o,a;o=t,a=(e,t)=>(...o)=>((e,t,n)=>{return r(o=n)&&c(o.then)&&c(o.catch)?n.then((n=>t(n).fold((t=>Promise.reject(new he(`${e} ${t}`))),(e=>Promise.resolve(e))))):Promise.reject(new he(`${e} should return a Promise`));var o})(e,n,t(...o)),e.options.register(o,{processor:e=>c(e)?{valid:!0,value:a(o,e)}:{valid:!1,message:"Must be a function returning promise"},default:()=>Promise.reject(new he(`${o} option is not configured`))})};t("advtemplate_create_category",De),t("advtemplate_rename_category",ke),t("advtemplate_move_category_items",ke),t("advtemplate_delete_category",ke),t("advtemplate_create_template",De),t("advtemplate_rename_template",ke),t("advtemplate_update_template",ke),t("advtemplate_move_template",ke),t("advtemplate_get_template",Le),t("advtemplate_delete_template",ke),t("advtemplate_delete_all",ke),t("advtemplate_list",Ie),e.options.register("advtemplate_templates",{processor:Ae})},Ne=Me("advtemplate_create_category"),Be=Me("advtemplate_rename_category"),ze=Me("advtemplate_move_category_items"),Ve=Me("advtemplate_delete_category"),He=Me("advtemplate_create_template"),Ue=Me("advtemplate_rename_template"),Fe=Me("advtemplate_move_template"),qe=Me("advtemplate_get_template"),Ke=Me("advtemplate_delete_template"),We=Me("advtemplate_list"),Ge=Me("advtemplate_templates"),Qe=Me("content_style"),Je=Me("body_class"),Ye=Me("content_css_cors"),Xe=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},Ze=(e,t)=>{const n=(t||document).createElement(e);return Xe(n)},et=Xe,tt=e=>1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType||0===e.childElementCount,nt=()=>rt(0,0),rt=(e,t)=>({major:e,minor:t}),ot={nu:rt,detect:(e,t)=>{const n=String(t).toLowerCase();return 0===e.length?nt():((e,t)=>{const n=((e,t)=>{for(let n=0;nNumber(t.replace(n,"$"+e));return rt(r(1),r(2))})(e,n)},unknown:nt},at=(e,t)=>{const n=String(t).toLowerCase();return E(e,(e=>e.search(n)))},st=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,it=e=>t=>H(t,e),lt=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:e=>H(e,"edge/")&&H(e,"chrome")&&H(e,"safari")&&H(e,"applewebkit")},{name:"Chromium",brand:"Chromium",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,st],search:e=>H(e,"chrome")&&!H(e,"chromeframe")},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:e=>H(e,"msie")||H(e,"trident")},{name:"Opera",versionRegexes:[st,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:it("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:it("firefox")},{name:"Safari",versionRegexes:[st,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:e=>(H(e,"safari")||H(e,"mobile/"))&&H(e,"applewebkit")}],ct=[{name:"Windows",search:it("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:e=>H(e,"iphone")||H(e,"ipad"),versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:it("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"macOS",search:it("mac os x"),versionRegexes:[/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:it("linux"),versionRegexes:[]},{name:"Solaris",search:it("sunos"),versionRegexes:[]},{name:"FreeBSD",search:it("freebsd"),versionRegexes:[]},{name:"ChromeOS",search:it("cros"),versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/]}],dt={browsers:u(lt),oses:u(ct)},mt=e=>{const t=e.current,n=e.version,r=e=>()=>t===e;return{current:t,version:n,isEdge:r("Edge"),isChromium:r("Chromium"),isIE:r("IE"),isOpera:r("Opera"),isFirefox:r("Firefox"),isSafari:r("Safari")}},ut=()=>mt({current:void 0,version:ot.unknown()}),pt=mt,gt=e=>{const t=e.current,n=e.version,r=e=>()=>t===e;return{current:t,version:n,isWindows:r("Windows"),isiOS:r("iOS"),isAndroid:r("Android"),isMacOS:r("macOS"),isLinux:r("Linux"),isSolaris:r("Solaris"),isFreeBSD:r("FreeBSD"),isChromeOS:r("ChromeOS")}},vt=()=>gt({current:void 0,version:ot.unknown()}),ht=gt,yt=(e,t,n)=>{const r=dt.browsers(),o=dt.oses(),a=t.bind((e=>((e,t)=>((e,t)=>{for(let n=0;n{const n=t.brand.toLowerCase();return E(e,(e=>n===e.brand?.toLowerCase())).map((e=>({current:e.name,version:ot.nu(parseInt(t.version,10),0)})))})))(r,e))).orThunk((()=>((e,t)=>at(e,t).map((e=>{const n=ot.detect(e.versionRegexes,t);return{current:e.name,version:n}})))(r,e))).fold(ut,pt),s=((e,t)=>at(e,t).map((e=>{const n=ot.detect(e.versionRegexes,t);return{current:e.name,version:n}})))(o,e).fold(vt,ht),i=((e,t,n,r)=>{const o=e.isiOS()&&!0===/ipad/i.test(n),a=e.isiOS()&&!o,s=e.isiOS()||e.isAndroid(),i=s||r("(pointer:coarse)"),l=o||!a&&s&&r("(min-device-width:768px)"),c=a||s&&!l,d=t.isSafari()&&e.isiOS()&&!1===/safari/i.test(n),m=!c&&!l&&!d;return{isiPad:u(o),isiPhone:u(a),isTablet:u(l),isPhone:u(c),isTouch:u(i),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:u(d),isDesktop:u(m)}})(s,a,e,n);return{browser:a,os:s,deviceType:i}},ft=e=>window.matchMedia(e).matches;let wt=(e=>{let t,n=!1;return(...r)=>(n||(n=!0,t=e.apply(null,r)),t)})((()=>yt(window.navigator.userAgent,y.from(window.navigator.userAgentData),ft)));const bt=()=>wt(),St=()=>{const e=bt().os.isMacOS()||bt().os.isiOS();return`